*** empty log message ***
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java
index 6f9e47b..dc0e0d3 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleDataModel.java
@@ -116,8 +116,7 @@
private Object getOutputContainerValue() {
if(!isSet(DEPENDENT_MODULE)) return null;
DependentModule depModule = getDependentModule();
- URI moduleRoot = ModuleCore.getOutputContainerRoot(getWorkBenchModuleValue());
- return ModuleURIUtil.concat(moduleRoot, depModule.getDeployedPath());
+ return depModule.getDeployedPath();
}
private URI getHandleValue() {
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleOperation.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleOperation.java
index 68cf391..b10aba6 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleOperation.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/modulecore/builder/DependentDeployableModuleOperation.java
@@ -16,11 +16,14 @@
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.core.internal.resources.Resource;
+import org.eclipse.core.internal.resources.Workspace;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -68,13 +71,33 @@
//if consumes simply copy resources to output directory
IResource sourceResource = getResource(absoluteInputContainer);
if(sourceResource == null) return;
- sourceResource.copy(absoluteInputContainer, true, new NullProgressMonitor());
+ smartCopy(sourceResource, absoluteOutputContainer, new NullProgressMonitor());
+ //sourceResource.copy(absoluteOutputContainer, true, new NullProgressMonitor());
} else {
String zipName = getZipFileName();
- zipAndCopyResource(getResource(absoluteInputContainer), absoluteInputContainer.append(zipName).toString());
+ zipAndCopyResource(getResource(absoluteInputContainer), absoluteOutputContainer.append(zipName).toString());
}
}
/**
+ * @param sourceResource
+ * @param absoluteInputContainer
+ * @param monitor
+ * @throws CoreException
+ */
+ //TODO this is a bit sloppy; there must be existing API somewhere.
+ private void smartCopy(IResource sourceResource, IPath absoluteOutputContainer, NullProgressMonitor monitor) throws CoreException {
+ Resource targetResource =((Workspace)ResourcesPlugin.getWorkspace()).newResource(absoluteOutputContainer, sourceResource.getType());
+ if(!targetResource.exists()){
+ sourceResource.copy(absoluteOutputContainer, true, monitor);
+ } else if(sourceResource.getType() == Resource.FOLDER){
+ IFolder folder = (IFolder)sourceResource;
+ IResource [] members = folder.members();
+ for(int i=0;i<members.length;i++){
+ smartCopy(members[i], absoluteOutputContainer.append(IPath.SEPARATOR+members[i].getName()), monitor);
+ }
+ }
+ }
+ /**
* @param resource
* @param zipName
* @return
@@ -95,8 +118,9 @@
WorkbenchModule workbenchModule = (WorkbenchModule)depDataModel.getProperty(DependentDeployableModuleDataModel.CONTAINING_WBMODULE);
IProject currentModuleProject = ModuleCore.getContainingProject(workbenchModule.getHandle());
IPath currentModuleProjectPath = currentModuleProject.getFullPath();
- URI outputContainerURI = (URI)depDataModel.getProperty(DependentDeployableModuleDataModel.OUTPUT_CONTAINER);
- return currentModuleProjectPath.append(outputContainerURI.toString());
+ URI outputContainerURI = ModuleCore.getOutputContainerRoot(workbenchModule);
+ URI deployPath = (URI)depDataModel.getProperty(DependentDeployableModuleDataModel.OUTPUT_CONTAINER);
+ return currentModuleProjectPath.append(outputContainerURI.toString()).append(deployPath.toString());
} catch (UnresolveableURIException e) {
}
return null;