[149215] Change WLS generic servers to use wldeploy Ant task
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
index 89b97ea..a1058a8 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
@@ -16,6 +16,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.jst.server.core.PublishUtil;
import org.eclipse.jst.server.generic.core.internal.CorePlugin;
@@ -37,6 +38,15 @@
protected ServerRuntime fServerdefinition;
protected IModule fModule;
protected GenericServer fServer;
+ protected IPath fAssembleRoot;
+
+ protected AbstractModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
+ {
+ fModule=module;
+ fServerdefinition=server.getServerDefinition();
+ fServer=server;
+ fAssembleRoot = assembleRoot;
+ }
/**
* Assemble the module.
@@ -44,7 +54,7 @@
* @param monitor
* @throws CoreException
*/
- protected abstract IPath assemble(IProgressMonitor monitor) throws CoreException;
+ public abstract IPath assemble(IProgressMonitor monitor) throws CoreException;
/**
@@ -53,6 +63,12 @@
*
*/
public static class Factory {
+
+ public static IPath getDefaultAssembleRoot(IModule module, GenericServer server) {
+ ProjectModule pm =(ProjectModule)module.loadAdapter(ProjectModule.class, new NullProgressMonitor());
+ return ServerPlugin.getInstance().getTempDirectory(server.getServer().getId()).append(pm.getId());
+ }
+
/**
* Returns a concrete module assembler
*
@@ -62,12 +78,24 @@
*/
public static AbstractModuleAssembler getModuleAssembler(IModule module, GenericServer server)
{
-
+ return getModuleAssembler(module, server, getDefaultAssembleRoot(module, server));
+ }
+
+ /**
+ * Returns a concrete module assembler that assembles under the specified root path
+ *
+ * @param module
+ * @param server
+ * @param assembleRoot
+ * @return assembler
+ */
+ public static AbstractModuleAssembler getModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
+ {
if(isModuleType(module, "jst.web")) //$NON-NLS-1$
- return new WarModuleAssembler(module,server);
+ return new WarModuleAssembler(module,server,assembleRoot);
if(isModuleType(module, "jst.ear")) //$NON-NLS-1$
- return new EarModuleAssembler(module,server);
- return new DefaultModuleAssembler(module,server);
+ return new EarModuleAssembler(module,server,assembleRoot);
+ return new DefaultModuleAssembler(module,server,assembleRoot);
}
private static boolean isModuleType(IModule module, String moduleTypeId){
@@ -126,15 +154,9 @@
}
}
- protected IPath copyModule(IModule module,IProgressMonitor monitor)throws CoreException{
+ protected IPath copyModule(IModule module, IProgressMonitor monitor) throws CoreException {
ProjectModule pm =(ProjectModule)module.loadAdapter(ProjectModule.class, monitor);
- IPath to = getProjectWorkingLocation().append(pm.getId());
- PublishUtil.smartCopy(pm.members(), to, monitor);
- return to;
+ PublishUtil.smartCopy(pm.members(), fAssembleRoot, monitor);
+ return fAssembleRoot;
}
-
- private IPath getProjectWorkingLocation(){
- return ServerPlugin.getInstance().getTempDirectory(fServer.getServer().getId());
- }
-
}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
index 7d5b5e7..cb01d57 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
@@ -20,6 +20,7 @@
import java.util.Map;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+
import org.eclipse.ant.internal.ui.IAntUIConstants;
import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
import org.eclipse.core.runtime.CoreException;
@@ -72,14 +73,15 @@
*/
public static final String PUBLISHER_ID="org.eclipse.jst.server.generic.antpublisher"; //$NON-NLS-1$
- private static final String PROP_SERVER_PUBLISH_DIR = "server.publish.dir";//$NON-NLS-1$
- private static final String PROP_PROJECT_WORKING_DIR= "project.working.dir";//$NON-NLS-1$
- private static final String PROP_MODULE_DIR = "module.dir";//$NON-NLS-1$
- private static final String PROP_MODULE_NAME = "module.name";//$NON-NLS-1$
- private static final String PROP_PROJECT_NAME = "project.name";//$NON-NLS-1$
- private static final String MODULE_PUBLISH_TARGET_PREFIX = "target.publish."; //$NON-NLS-1$
- private static final String MODULE_UNPUBLISH_TARGET_PREFIX = "target.unpublish.";//$NON-NLS-1$
- private static final String DATA_NAME_BUILD_FILE="build.file";//$NON-NLS-1$
+ protected static final String PROP_SERVER_PUBLISH_DIR = "server.publish.dir";//$NON-NLS-1$
+ protected static final String PROP_PROJECT_WORKING_DIR= "project.working.dir";//$NON-NLS-1$
+ protected static final String PROP_MODULE_DIR = "module.dir";//$NON-NLS-1$
+ protected static final String PROP_MODULE_NAME = "module.name";//$NON-NLS-1$
+ protected static final String PROP_PROJECT_NAME = "project.name";//$NON-NLS-1$
+ protected static final String MODULE_PUBLISH_TARGET_PREFIX = "target.publish."; //$NON-NLS-1$
+ protected static final String MODULE_UNPUBLISH_TARGET_PREFIX = "target.unpublish.";//$NON-NLS-1$
+ protected static final String DATA_NAME_BUILD_FILE="build.file";//$NON-NLS-1$
+ protected static final String PROP_MODULE_ARCHIVE_NAME = "module.archive.name"; //$NON-NLS-1$
/* (non-Javadoc)
@@ -104,7 +106,7 @@
return null;
}
- private void assembleModule(IProgressMonitor monitor)throws CoreException{
+ protected void assembleModule(IProgressMonitor monitor)throws CoreException{
AbstractModuleAssembler assembler= AbstractModuleAssembler.Factory.getModuleAssembler(getModule()[0], getServer());
assembler.assemble(monitor);
}
@@ -220,6 +222,13 @@
String moduleName=guessModuleName(webModule);
props.put(PROP_PROJECT_WORKING_DIR,getProjectWorkingLocation().toString());
props.put(PROP_MODULE_NAME,moduleName);
+ if (isModuleType(webModule, "jst.ear")) {//$NON-NLS-1$
+ props.put( PROP_MODULE_ARCHIVE_NAME, moduleName +".ear" ); //$NON-NLS-1$
+ } else if (isModuleType(webModule, "jst.web")) { //$NON-NLS-1$
+ props.put( PROP_MODULE_ARCHIVE_NAME, moduleName +".war" ); //$NON-NLS-1$
+ } else if (isModuleType(webModule, "jst.ejb")) { //$NON-NLS-1$
+ props.put( PROP_MODULE_ARCHIVE_NAME, moduleName +".jar" ); //$NON-NLS-1$
+ }
if(webModule.getProject()!=null){
props.put(PROP_MODULE_DIR,getModuleWorkingDir().toString());
props.put(PROP_PROJECT_NAME,webModule.getProject().getName());
@@ -245,7 +254,6 @@
return module.getName();
}
String contextRoot = webModule.getURI(module);
- //TODO we should really pass the full uri including the file extension in the future
moduleName = contextRoot.substring(0,contextRoot.lastIndexOf('.'));
}
return moduleName;
@@ -294,6 +302,12 @@
//nothing to do
}
+ private static boolean isModuleType(IModule module, String moduleTypeId){
+ if(module.getModuleType()!=null && moduleTypeId.equals(module.getModuleType().getId()))
+ return true;
+ return false;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jst.server.generic.internal.core.GenericPublisher#unpublish(org.eclipse.wst.server.core.IModule, org.eclipse.core.runtime.IProgressMonitor)
*/
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/DefaultModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/DefaultModuleAssembler.java
index d0937e5..720dbf3 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/DefaultModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/DefaultModuleAssembler.java
@@ -12,15 +12,12 @@
*/
public class DefaultModuleAssembler extends AbstractModuleAssembler {
- protected DefaultModuleAssembler(IModule module, GenericServer server)
+ protected DefaultModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
{
- fModule=module;
- fServerdefinition=server.getServerDefinition();
- fServer=server;
+ super(module, server, assembleRoot);
}
-
- protected IPath assemble(IProgressMonitor monitor) throws CoreException {
+ public IPath assemble(IProgressMonitor monitor) throws CoreException {
return copyModule(fModule,monitor);
}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
index 4ca8e8d..e75cd7c 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
@@ -27,14 +27,12 @@
*/
public class EarModuleAssembler extends AbstractModuleAssembler {
- protected EarModuleAssembler(IModule module, GenericServer server)
+ protected EarModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
{
- fModule=module;
- fServerdefinition=server.getServerDefinition();
- fServer=server;
+ super(module, server, assembleRoot);
}
- protected IPath assemble(IProgressMonitor monitor) throws CoreException{
+ public IPath assemble(IProgressMonitor monitor) throws CoreException{
IPath parent =copyModule(fModule,monitor);
IEnterpriseApplication earModule = (IEnterpriseApplication)fModule.loadAdapter(IEnterpriseApplication.class, monitor);
IModule[] childModules = earModule.getModules();
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/WarModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/WarModuleAssembler.java
index 19d99ce..4b33578 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/WarModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/WarModuleAssembler.java
@@ -22,14 +22,12 @@
*/
public class WarModuleAssembler extends AbstractModuleAssembler {
- protected WarModuleAssembler(IModule module, GenericServer server)
+ protected WarModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
{
- fModule=module;
- fServerdefinition=server.getServerDefinition();
- fServer=server;
+ super(module, server, assembleRoot);
}
- protected IPath assemble(IProgressMonitor monitor) throws CoreException{
+ public IPath assemble(IProgressMonitor monitor) throws CoreException{
IPath parent =copyModule(fModule,monitor);
IWebModule webModule = (IWebModule)fModule.loadAdapter(IWebModule.class, monitor);
IModule[] childModules = webModule.getModules();