Bug #272819. NPE thrown in Bottom-up scenario. Plus some cleanup of source and property files.
diff --git a/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/CXFJAXWSSelectionLaunchable.java b/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/CXFJAXWSSelectionLaunchable.java
index 1487a1b..3a891ed 100644
--- a/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/CXFJAXWSSelectionLaunchable.java
+++ b/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/CXFJAXWSSelectionLaunchable.java
@@ -52,7 +52,7 @@
private IProject project;
private String serverComponentName;
- private String className;
+ private String className = "";
@Override
public void setInitialSelection(IStructuredSelection initialSelection) {
@@ -108,11 +108,7 @@
@Override
public IStructuredSelection getObjectSelection() {
- if (className != null) {
- IStructuredSelection objectSelection = new StructuredSelection(className);
- return objectSelection;
- }
- return super.getObjectSelection();
+ return new StructuredSelection(className);
}
public String getComponentName() {
@@ -152,7 +148,8 @@
IProject project = getProject();
if (project != null) {
validationStatus = JDTUtils.validateJavaTypeName(project.getName(), className);
- return validationStatus.isOK();
+ } else {
+ validationStatus = JDTUtils.validateJavaTypeName(className);
}
// IProject project = getProject();
@@ -165,7 +162,7 @@
// }
// return validationStatus.isOK();
// }
- return false;
+ return validationStatus.isOK();
}
private static class JavaViewerFilter extends ViewerFilter {
diff --git a/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/object/JAXWSSelectionTransformer.java b/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/object/JAXWSSelectionTransformer.java
index ed0458f..aedda27 100644
--- a/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/object/JAXWSSelectionTransformer.java
+++ b/bundles/org.eclipse.jst.ws.cxf.consumption.ui/src/org/eclipse/jst/ws/internal/cxf/consumption/ui/widgets/object/JAXWSSelectionTransformer.java
@@ -49,7 +49,7 @@
return structuredSelection;
}
}
- return StructuredSelection.EMPTY;
+ return value;
}
private String getFullyQualifiedJavaName(IFile resource) {
diff --git a/bundles/org.eclipse.jst.ws.cxf.core/src/org/eclipse/jst/ws/internal/cxf/facet/CXFFacetInstallDelegate.java b/bundles/org.eclipse.jst.ws.cxf.core/src/org/eclipse/jst/ws/internal/cxf/facet/CXFFacetInstallDelegate.java
index 3e748bc..6430265 100644
--- a/bundles/org.eclipse.jst.ws.cxf.core/src/org/eclipse/jst/ws/internal/cxf/facet/CXFFacetInstallDelegate.java
+++ b/bundles/org.eclipse.jst.ws.cxf.core/src/org/eclipse/jst/ws/internal/cxf/facet/CXFFacetInstallDelegate.java
@@ -168,8 +168,8 @@
List listeners = webapp.getListeners();
for (int i = 0; i < listeners.size(); i++) {
- org.eclipse.jst.javaee.core.Listener contextLoaderListener = (org.eclipse.jst.javaee.core.Listener) listeners
- .get(i);
+ org.eclipse.jst.javaee.core.Listener contextLoaderListener =
+ (org.eclipse.jst.javaee.core.Listener) listeners.get(i);
if (contextLoaderListener.getListenerClass().equals(
"org.springframework.web.context.ContextLoaderListener")) { //$NON-NLS-1$
return;
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.java b/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.java
index ac7be37..86de839 100644
--- a/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.java
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.java
@@ -22,6 +22,8 @@
"org.eclipse.jst.ws.internal.cxf.creation.core.CXFCreationCoreMessages"; //$NON-NLS-1$
public static String WSDL2JAVA_PROJECT_SELECTION_ERROR;
public static String WSDL2JAVA_VALID_PORTTYPE_MESSAGE;
+
+ public static String JAVA2WS_SERVICE_IMPL_NOT_FOUND;
static {
// initialize resource bundle
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.properties b/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.properties
index b025aac..30d8712 100644
--- a/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.properties
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/CXFCreationCoreMessages.properties
@@ -11,3 +11,5 @@
WSDL2JAVA_PROJECT_SELECTION_ERROR=Project configuration Error. Please select the "Service project:{0}" link in the "Configuration:" section and change the Service Project setting from {0} to {1}.
WSDL2JAVA_VALID_PORTTYPE_MESSAGE=The WSDL document must have a valid portType element
+
+JAVA2WS_SERVICE_IMPL_NOT_FOUND=The Service implementation "{0}" cannot be loaded from the "{1}" project. Please check that the project contains the class and that it is visible on the projects "Java Build Path".
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/commands/Java2WSValidateInputCommand.java b/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/commands/Java2WSValidateInputCommand.java
new file mode 100644
index 0000000..b65308d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.core/src/org/eclipse/jst/ws/internal/cxf/creation/core/commands/Java2WSValidateInputCommand.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Shane Clarke.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Shane Clarke - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.cxf.creation.core.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jst.ws.internal.cxf.core.model.Java2WSDataModel;
+import org.eclipse.jst.ws.internal.cxf.creation.core.CXFCreationCoreMessages;
+import org.eclipse.jst.ws.internal.cxf.creation.core.CXFCreationCorePlugin;
+import org.eclipse.jst.ws.jaxws.core.utils.JDTUtils;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+/**
+ *
+ * @author sclarke
+ *
+ */
+public class Java2WSValidateInputCommand extends AbstractDataModelOperation {
+
+ private Java2WSDataModel model;
+
+ public Java2WSValidateInputCommand(Java2WSDataModel model) {
+ this.model = model;
+ }
+
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ IStatus status = Status.OK_STATUS;
+ IJavaProject javaProject = JDTUtils.getJavaProject(model.getProjectName());
+ if (javaProject != null) {
+ IType type = JDTUtils.getType(javaProject, model.getJavaStartingPoint());
+ if (type == null || !type.exists()) {
+ status = new Status(IStatus.ERROR, CXFCreationCorePlugin.PLUGIN_ID,
+ CXFCreationCoreMessages.bind(CXFCreationCoreMessages.JAVA2WS_SERVICE_IMPL_NOT_FOUND,
+ new Object[] {model.getJavaStartingPoint(), model.getProjectName()}));
+ }
+ }
+ return status;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/widgets/Java2WSSelectSEIWidgetFactory.java b/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/widgets/Java2WSSelectSEIWidgetFactory.java
index c217069..29f797f 100644
--- a/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/widgets/Java2WSSelectSEIWidgetFactory.java
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/widgets/Java2WSSelectSEIWidgetFactory.java
@@ -41,6 +41,10 @@
private IType startingPointType;
public INamedWidgetContributor getFirstNamedWidget() {
+ if (startingPointType == null) {
+ return null;
+ }
+
if (interfaceWidgetContributor == null || classWidgetContributor == null) {
init();
}
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/wsrt/CXFWebService.java b/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/wsrt/CXFWebService.java
index 4e7f9cd..ce1be70 100644
--- a/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/wsrt/CXFWebService.java
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.ui/src/org/eclipse/jst/ws/internal/cxf/creation/ui/wsrt/CXFWebService.java
@@ -21,6 +21,7 @@
import org.eclipse.jst.ws.internal.cxf.creation.core.commands.Java2WSCommand;
import org.eclipse.jst.ws.internal.cxf.creation.core.commands.Java2WSDefaultingCommand;
import org.eclipse.jst.ws.internal.cxf.creation.core.commands.Java2WSSelectSEICommand;
+import org.eclipse.jst.ws.internal.cxf.creation.core.commands.Java2WSValidateInputCommand;
import org.eclipse.jst.ws.internal.cxf.creation.core.commands.WSDL2JavaCommand;
import org.eclipse.jst.ws.internal.cxf.creation.core.commands.WSDL2JavaDefaultingCommand;
import org.eclipse.jst.ws.internal.cxf.creation.core.commands.WSDL2JavaProjectSelectionCommand;
@@ -70,6 +71,7 @@
Java2WSDataModel java2WSDataModel = CXFFactory.eINSTANCE.createJava2WSDataModel();
java2WSDataModel.setProjectName(projectName);
java2WSDataModel.setJavaStartingPoint(this.getWebServiceInfo().getImplURL());
+ commands.add(new Java2WSValidateInputCommand(java2WSDataModel));
commands.add(new Java2WSDefaultingCommand(java2WSDataModel));
commands.add(new Java2WSSelectSEICommand(java2WSDataModel));
commands.add(new JAXWSAnnotateJavaCommand(java2WSDataModel));
diff --git a/bundles/org.eclipse.jst.ws.cxf.ui/src/org/eclipse/jst/ws/internal/cxf/ui/CXFUImessages.properties b/bundles/org.eclipse.jst.ws.cxf.ui/src/org/eclipse/jst/ws/internal/cxf/ui/CXFUImessages.properties
index 8f68d44..f41de49 100644
--- a/bundles/org.eclipse.jst.ws.cxf.ui/src/org/eclipse/jst/ws/internal/cxf/ui/CXFUImessages.properties
+++ b/bundles/org.eclipse.jst.ws.cxf.ui/src/org/eclipse/jst/ws/internal/cxf/ui/CXFUImessages.properties
@@ -66,20 +66,20 @@
JAXWS_GENERATE_RESPONSE_WRAPPER=@&ResponseWrapper
JAXWS_ANNOTATIONS_PROCESSING_GROUP_LABEL=JAX-WS Annotation Processing
JAXWS_ENABLE_ANNOTATION_PROCESSING=&Enable annotation validation processing
-JAXWS_ENABLE_ANNOTATION_PROCESSING_TOOLTIP=Turn JAX-WS annotation processing on or off in projects configured for {0} web services.
+JAXWS_ENABLE_ANNOTATION_PROCESSING_TOOLTIP=Turn JAX-WS annotation processing on or off in projects configured for {0} web services
JAVA2WS_SOAP12_BINDING_TOOLTIP=Specify to generate SOAP 1.2 binding
-JAVA2WS_CREATE_XSD_IMPORTS_TOOLTIP= Output schemas to separate files and use imports to load them instead of inlining them into the wsdl.
-JAVA2WS_DATABINDING_TOOLTIP= Specify the data binding. Default is jaxb for jaxws frontend.
-#JAVA2WS_DATABINDING_TOOLTIP= Specify the data binding (aegis or jaxb). Default is jaxb for jaxws frontend, and aegis for simple frontend.
-JAVA2WS_FRONTEND_TOOLTIP=Specify the frontend to use.
-#JAVA2WS_FRONTEND_TOOLTIP=Specify the frontend to use. jaxws and the simple frontend are supported.
+JAVA2WS_CREATE_XSD_IMPORTS_TOOLTIP= Output schemas to separate files and use imports to load them instead of inlining them into the wsdl
+JAVA2WS_DATABINDING_TOOLTIP= Specify the data binding. Default is jaxb for jaxws frontend
+#JAVA2WS_DATABINDING_TOOLTIP= Specify the data binding (aegis or jaxb). Default is jaxb for jaxws frontend, and aegis for simple frontend
+JAVA2WS_FRONTEND_TOOLTIP=Specify the frontend to use
+#JAVA2WS_FRONTEND_TOOLTIP=Specify the frontend to use. jaxws and the simple frontend are supported
JAVA2WS_GENERATE_WSDL_TOOLTIP=Specify to generate the WSDL file
JAVA2WS_GENERATE_WRAPPERBEAN_TOOLTIP=Specify to generate the wrapper and fault bean
JAVA2WS_GENERATE_CLIENT_TOOLTIP=Generate a client mainline using JAX-WS APIs\n.....\n javax.xml.ws.Service service = javax.xml.ws.Service.create(...);\n... client = service.getPort(...);\n
JAVA2WS_GENERATE_SERVER_TOOLTIP=Generate a server mainline using JAX-WS APIs\n.....\n javax.xml.ws.Endpoint.publish(...);\n.....\n
JAVA2WS_GENERATE_ANT_TOOLTIP=Specify to generate an Ant build.xml file
-JAVA2WS_BEANS_TOOLTIP=Specify the pathname of a file defining additional Spring beans to customise data binding configuration.
+JAVA2WS_BEANS_TOOLTIP=Specify the pathname of a file defining additional Spring beans to customise data binding configuration
JAVA2WS_TARGET_NAMESPACE_TOOLTIP=Specify the target namespace to use in the wsdl
JAVA2WS_SERVICE_NAME_TOOLTIP=Specify the service name to use in the generated wsdl
JAVA2WS_PORT_NAME_TOOLTIP=Specify the port name to use in the generated wsdl
@@ -103,7 +103,7 @@
JAVA2WS_SELECT_IMPLEMENTATION_TOOLTIP=Select the Implementation
WSDL2JAVA_FRONTEND_TOOLTIP=Specify the frontend. Default is JAXWS. Currently supports only JAXWS frontend
-WSDL2JAVA_DATABINDING_TOOLTIP=Specify the databinding. Default is JAXB. Currently supports only JAXB databinding.
+WSDL2JAVA_DATABINDING_TOOLTIP=Specify the databinding. Default is JAXB. Currently supports only JAXB databinding
WSDL2JAVA_WSDL_VERSION_TOOLTIP=Specify the wsdl version .Default is WSDL1.1. Currently suppports only WSDL1.1 version
WSDL2JAVA_GENERATE_IMPLEMENTATION_TOOLTIP=Generate starting point code for an implementation object
WSDL2JAVA_GENERATE_CLIENT_TOOLTIP=Generate the client code
@@ -114,11 +114,11 @@
WSDL2JAVA_DEFAULT_NAMESPACE_LOADING_TOOLTIP=Enables or disables loading of the default namespace package name mapping
WSDL2JAVA_EXCLUDE_NAMESPACE_LOADING_TOOLTIP=Enables or disables loading of the default excludes namespace mapping
WSDL2JAVA_WSDL_LOCATION_TOOLTIP=Specifies the value of the @WebService annotation's wsdlLocation property
-WSDL2JAVA_XML_CATALOG_TOOLTIP=Specify the URL of an XML catalog to use for resolving imported schemas and WSDL documents.
+WSDL2JAVA_XML_CATALOG_TOOLTIP=Specify the URL of an XML catalog to use for resolving imported schemas and WSDL documents
WSDL2JAVA_NO_ADDRESS_BINDING=Use the {0} proprietary WS-&Addressing type
-WSDL2JAVA_NO_ADDRESS_BINDING_TOOLTIP=Use the {0} proprietary WS-Addressing type instead of the JAX-WS 2.1 compliant mapping.
+WSDL2JAVA_NO_ADDRESS_BINDING_TOOLTIP=Use the {0} proprietary WS-Addressing type instead of the JAX-WS 2.1 compliant mapping
WSDL2JAVA_AUTO_NAME_RESOLUTION=Enable Auto Name Resolution
-WSDL2JAVA_AUTO_NAME_RESOLUTION_TOOLTIP=Automatically resolve naming conflicts without requiring the use of binding customizations.
+WSDL2JAVA_AUTO_NAME_RESOLUTION_TOOLTIP=Automatically resolve naming conflicts without requiring the use of binding customizations
WSDL2JAVA_XJC_ARGS_TOOLTIP=Specify the arguments to be passed to directly to the XJC
WSDL2JAVA_XJC_ARG_GROUP_TITLE=XJC Arguments
WSDL2JAVA_XJC_ARG_COLUMN_NAME=XJC Arg
@@ -141,7 +141,7 @@
WSDL2JAVA_OUTPUT_DIRECTORY_TOOLTIP=Specify the directory into which the generated code files are written
WSDL2JAVA_PACKAGE_NAME=&Package Name:
-WSDL2JAVA_PACKAGE_NAME_TOOLTIP=The java package name to use for the generated code.
+WSDL2JAVA_PACKAGE_NAME_TOOLTIP=The java package name to use for the generated code
WSDL2JAVA_PACKAGE_NAME_OPTIONAL=Specify &WSDL Namepsace to Package Name Mappings
WSDL2JAVA_PACKAGE_NAME_OPTIONAL_TOOLTIP=Optionally specify the wsdl namespace mapping to a particular java package name
@@ -153,7 +153,7 @@
WSDL2JAVA_SERVICE_NAME_TOOLTIP=Specify the name of the WSDL service for which code is to be generated. The default is to generate code for every service in the WSDL document
WSDL2JAVA_BINDING_FILES=&Binding Files:
-WSDL2JAVA_BINDING_NAME_TOOLTIP=Specify zero, or more, JAXWS or JAXB binding files.
+WSDL2JAVA_BINDING_NAME_TOOLTIP=Specify zero, or more, JAXWS or JAXB binding files
WSDL2JAVA_BINDING_FILES_ADD=&Add...
WSDL2JAVA_BINDING_FILES_REMOVE=&Remove...