Fixing the Bugzilla Issue â Bug 196173
Axis2: Cannot install Axis2 facet to a dynamic web project
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java
index 1997e6d..1d9a890 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java
@@ -34,6 +34,7 @@
import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDL2JavaGenerator;
import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDLPropertyReader;
import org.eclipse.jst.ws.axis2.core.utils.ClassLoadingUtil;
+import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
@@ -57,9 +58,8 @@
String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().
getLocation().toOSString();
- String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(
- workspaceDirectory,
- model.getWebProjectName());
+ String currentDynamicWebProjectDir = FacetContainerUtils.getProjectRoot(
+ model.getWebProjectName()).toOSString();
String matadataDir = FileUtils.addAnotherNodeToPath(
workspaceDirectory,
Axis2ConsumptionUIMessages.DIR_DOT_METADATA);
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
index 2aa17b2..8307468 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
@@ -33,32 +33,52 @@
import org.eclipse.wst.server.core.ServerCore;
public class FacetContainerUtils {
+
+ public static IPath getWorkspace(){
+ return ResourcesPlugin.getWorkspace().getRoot().getLocation();
+ }
+
+ public static IProject getProjectName(String project){
+ String projectString = replaceEscapecharactors(project.toString());
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(
+ getProjectNameFromFramewokNameString(projectString));
+ }
+
+ public static IPath getProjectRoot(String project){
+ String projectString = replaceEscapecharactors(project.toString());
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(
+ getProjectNameFromFramewokNameString(projectString)).getLocation();
+ }
public static String pathToWebProjectContainer(String project) {
-
- String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot()
- .getLocation().toOSString();
- String projectString = replaceEscapecharactors(project.toString());
-
- String currentDynamicWebProjectDir = J2EEUtils.getWebContentPath(
- ResourcesPlugin.getWorkspace().getRoot().getProject(
- getProjectNameFromFramewokNameString(projectString)
- )).toOSString();
-
- String webContainerDirString = Axis2CoreUtils.addAnotherNodeToPath(
- workspaceDirectory,
- currentDynamicWebProjectDir);
+ IPath projectRoot = getProjectRoot(project);
+ IPath currentDynamicWebProjectDir = J2EEUtils.getWebContentPath(
+ getProjectName(project));
+ IPath currentDynamicWebProjectDirWithoutProjectRoot = J2EEUtils.getWebContentPath(
+ getProjectName(project)).removeFirstSegments(1).makeAbsolute();
+ if(projectRoot.toOSString().contains(getWorkspace().toOSString())){
+ return getWorkspace()
+ .append(currentDynamicWebProjectDir).toOSString();
+ }else{
+ return projectRoot
+ .append(currentDynamicWebProjectDirWithoutProjectRoot).toOSString();
+ }
- return webContainerDirString;
}
public static String pathToWebProjectContainerWEBINF(String project) {
- IPath workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().getLocation();
- String projectString = replaceEscapecharactors(project.toString());
- IPath webContainerWEBINF = J2EEUtils.getWebInfPath(
- ResourcesPlugin.getWorkspace().getRoot().getProject(
- getProjectNameFromFramewokNameString(projectString)));
- return workspaceDirectory.append(webContainerWEBINF).toOSString();
+ IPath projectRoot = getProjectRoot(project);
+ IPath webContainerWEBINFDir = J2EEUtils.getWebInfPath(
+ getProjectName(project));
+ IPath webContainerWEBINFDirWithoutProjectRoot = J2EEUtils.getWebInfPath(
+ getProjectName(project)).removeFirstSegments(1).makeAbsolute();
+ if(projectRoot.toOSString().contains(getWorkspace().toOSString())){
+ return getWorkspace()
+ .append(webContainerWEBINFDir).toOSString();
+ }else{
+ return projectRoot
+ .append(webContainerWEBINFDirWithoutProjectRoot).toOSString();
+ }
}
public static String pathToWebProjectContainerMETAINF(String project) {
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
index 810a2da..a714e62 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
@@ -27,11 +27,13 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
import org.eclipse.jst.ws.axis2.creation.core.utils.CommonUtils;
import org.eclipse.jst.ws.axis2.creation.core.utils.ServiceXMLCreator;
+import org.eclipse.jst.ws.internal.common.J2EEUtils;
import org.eclipse.jst.ws.internal.common.ResourceUtils;
import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
@@ -119,10 +121,26 @@
}
//Copy the classes directory to the sevices directory
- IPath defaultClassesSubDirectory = ResourceUtils.getJavaOutputLocation(
+ String classesDirectory = null;
+ IPath projectRoot = FacetContainerUtils.getProjectRoot(project);
+ IPath defaultClassesSubDirectory = ResourceUtils.getJavaOutputLocation(
ResourcesPlugin.getWorkspace().getRoot().getProject(project));
- String classesDirectory = FileUtils.addAnotherNodeToPath(workspaceDirectory,
- defaultClassesSubDirectory.toOSString());
+ IPath defaultClassesSubDirectoryWithoutProjectRoot = ResourceUtils.getJavaOutputLocation(
+ ResourcesPlugin.getWorkspace().getRoot().getProject(project))
+ .removeFirstSegments(1).makeAbsolute();
+ if(projectRoot.toOSString().contains(FacetContainerUtils.getWorkspace().toOSString())){
+ classesDirectory = FacetContainerUtils.getWorkspace()
+ .append(defaultClassesSubDirectory).toOSString();
+ }else{
+ classesDirectory = projectRoot
+ .append(defaultClassesSubDirectoryWithoutProjectRoot).toOSString();
+ }
+
+// IPath defaultClassesSubDirectory = ResourceUtils.getJavaOutputLocation(
+// ResourcesPlugin.getWorkspace().getRoot().getProject(project));
+//
+// String classesDirectory = FileUtils.addAnotherNodeToPath(workspaceDirectory,
+// defaultClassesSubDirectory.toOSString());
//TODO copy only the relevent .classes to the aar
FileUtils.copyDirectory(new File(classesDirectory),
new File(servicesDirectory));
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
index 6987065..31b9603 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
@@ -25,6 +25,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
@@ -57,8 +58,10 @@
// String workspaceDirectory = ResourceUtils.getWorkspaceRoot().getLocation().toOSString();
String workspaceDirectory = ResourcesPlugin.getWorkspace()
.getRoot().getLocation().toOSString();
- String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,
- model.getWebProjectName());
+// String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,
+// model.getWebProjectName());
+ String currentDynamicWebProjectDir = FacetContainerUtils.getProjectRoot(
+ model.getWebProjectName()).toOSString();
String matadataDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,
Axis2CreationUIMessages.DIR_DOT_METADATA);
String matadataPluginsDir = FileUtils.addAnotherNodeToPath(matadataDir,
@@ -94,10 +97,25 @@
FileUtils.copyDirectory(currentProjectResourcesDir, new File(metaInfDirectory));
//Copy the classes directory to the sevices directory
- IPath defaultClassesSubDirectory = ResourceUtils.getJavaOutputLocation(
+ String classesDirectory = null;
+ IPath projectRoot = FacetContainerUtils.getProjectRoot(project);
+ IPath defaultClassesSubDirectory = ResourceUtils.getJavaOutputLocation(
ResourcesPlugin.getWorkspace().getRoot().getProject(project));
- String classesDirectory = FileUtils.addAnotherNodeToPath(workspaceDirectory,
- defaultClassesSubDirectory.toOSString());
+ IPath defaultClassesSubDirectoryWithoutProjectRoot = ResourceUtils.getJavaOutputLocation(
+ ResourcesPlugin.getWorkspace().getRoot().getProject(project))
+ .removeFirstSegments(1).makeAbsolute();
+ if(projectRoot.toOSString().contains(FacetContainerUtils.getWorkspace().toOSString())){
+ classesDirectory = FacetContainerUtils.getWorkspace()
+ .append(defaultClassesSubDirectory).toOSString();
+ }else{
+ classesDirectory = projectRoot
+ .append(defaultClassesSubDirectoryWithoutProjectRoot).toOSString();
+ }
+
+// IPath defaultClassesSubDirectory = ResourceUtils.getJavaOutputLocation(
+// ResourcesPlugin.getWorkspace().getRoot().getProject(project));
+// String classesDirectory = FileUtils.addAnotherNodeToPath(workspaceDirectory,
+// defaultClassesSubDirectory.toOSString());
//TODO copy only the relevent .classes to the aar
FileUtils.copyDirectory(new File(classesDirectory),
new File(currentservicesDirectory));
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
index 25f46f0..9a9d50c 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
@@ -31,6 +31,7 @@
import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDL2JavaGenerator;
import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDLPropertyReader;
import org.eclipse.jst.ws.axis2.core.utils.ClassLoadingUtil;
+import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
@@ -59,7 +60,9 @@
PathLoadingUtil.init(model);
String tempCodegenOutputLocation =PathLoadingUtil.getTempCodegenOutputLocation();
- String currentDynamicWebProjectDir = PathLoadingUtil.getCurrentDynamicWebProjectDir();
+// String currentDynamicWebProjectDir = PathLoadingUtil.getCurrentDynamicWebProjectDir();
+ String currentDynamicWebProjectDir = FacetContainerUtils.getProjectRoot(
+ model.getWebProjectName()).toOSString();
File tempCodegenLocationFile = new File(tempCodegenOutputLocation);
if (tempCodegenLocationFile.exists())FileUtils.deleteDirectories(tempCodegenOutputLocation);
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java
index b0640e5..d52355f 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java
@@ -24,6 +24,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jst.ws.axis2.consumption.core.utils.ContentCopyUtils;
+import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
@@ -50,14 +51,17 @@
IEnvironment environment = getEnvironment();
IStatusHandler statusHandler = environment.getStatusHandler();
- String currentDynamicWebProjectDir = J2EEUtils.getWebContentPath(
- ResourcesPlugin.getWorkspace().getRoot().getProject(
- model.getWebProjectName())
- ).toOSString();
-
- String webContainerDirString = FileUtils.addAnotherNodeToPath(
- ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString(),
- currentDynamicWebProjectDir);
+// String currentDynamicWebProjectDir = J2EEUtils.getWebContentPath(
+// ResourcesPlugin.getWorkspace().getRoot().getProject(
+// model.getWebProjectName())
+// ).toOSString();
+//
+// String webContainerDirString = FileUtils.addAnotherNodeToPath(
+// ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString(),
+// currentDynamicWebProjectDir);
+
+ String webContainerDirString = FacetContainerUtils.pathToWebProjectContainer(
+ model.getWebProjectName());
ContentCopyUtils contentCopyUtils = new ContentCopyUtils();