https://issues.jboss.org/browse/JBIDE-9789 - defer to other plugins that wish to handle Modules with id="bpel.module". Also fix some bpel plugin version dependencies.
diff --git a/plugins/org.eclipse.bpel.apache.ode.deploy.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.bpel.apache.ode.deploy.ui/META-INF/MANIFEST.MF
index 004ad7e..3690ebf 100644
--- a/plugins/org.eclipse.bpel.apache.ode.deploy.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.bpel.apache.ode.deploy.ui/META-INF/MANIFEST.MF
@@ -11,8 +11,8 @@
org.eclipse.ui.editors;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ui.forms;bundle-version="[3.3.100,4.0.0)",
- org.eclipse.bpel.apache.ode.deploy.model;bundle-version="0.8.0",
- org.eclipse.bpel.model;bundle-version="0.8.0",
+ org.eclipse.bpel.apache.ode.deploy.model;bundle-version="1.0.0",
+ org.eclipse.bpel.model;bundle-version="1.0.0",
org.eclipse.wst.wsdl;bundle-version="[1.1.200,2.0.0)",
org.eclipse.xsd;bundle-version="[2.4.0,3.0.0)",
javax.wsdl;bundle-version="[1.5.0,1.6.0)",
diff --git a/plugins/org.eclipse.bpel.apache.ode.runtime/META-INF/MANIFEST.MF b/plugins/org.eclipse.bpel.apache.ode.runtime/META-INF/MANIFEST.MF
index 4341757..b0e03e9 100644
--- a/plugins/org.eclipse.bpel.apache.ode.runtime/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.bpel.apache.ode.runtime/META-INF/MANIFEST.MF
@@ -11,10 +11,10 @@
org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
org.eclipse.jst.server.generic.core;bundle-version="[1.0.305,2.0.0)",
org.eclipse.wst.wsdl;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.bpel.model;bundle-version="0.1.0",
+ org.eclipse.bpel.model;bundle-version="1.0.0",
org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)",
org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.bpel.runtimes;bundle-version="0.1.0",
+ org.eclipse.bpel.runtimes;bundle-version="1.0.0",
org.eclipse.jst.server.generic.ui;bundle-version="[1.0.305,2.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
org.eclipse.bpel.ui;bundle-version="0.1.0",
diff --git a/plugins/org.eclipse.bpel.runtimes/plugin.xml b/plugins/org.eclipse.bpel.runtimes/plugin.xml
index 1cfed84..b5db7a2 100644
--- a/plugins/org.eclipse.bpel.runtimes/plugin.xml
+++ b/plugins/org.eclipse.bpel.runtimes/plugin.xml
@@ -130,7 +130,8 @@
<moduleFactory
projects="true"
class="org.eclipse.bpel.runtimes.module.BPELModuleFactoryDelegate"
- id="org.eclipse.bpel.runtimes.module.moduleFactory">
+ id="org.eclipse.bpel.runtimes.module.moduleFactory"
+ order="10">
<moduleType
versions="1.1, 2.0"
types="bpel.module">
@@ -145,7 +146,8 @@
<extension point="org.eclipse.wst.server.core.moduleArtifactAdapters">
<moduleArtifactAdapter
id="org.eclipse.bpel.runtimes.module.artifactAdapter1"
- class="org.eclipse.bpel.runtimes.module.BPELDeployableArtifactAdapterFactory">
+ class="org.eclipse.bpel.runtimes.module.BPELDeployableArtifactAdapterFactory"
+ priority="0">
<enablement>
<with variable="selection">
<adapt type="org.eclipse.core.resources.IProject"/>
@@ -154,7 +156,8 @@
</moduleArtifactAdapter>
<moduleArtifactAdapter
id="org.eclipse.bpel.runtimes.module.artifactAdapter2"
- class="org.eclipse.bpel.runtimes.module.BPELDeployableArtifactAdapterFactory">
+ class="org.eclipse.bpel.runtimes.module.BPELDeployableArtifactAdapterFactory"
+ priority="0">
<enablement>
<with variable="selection">
<adapt type="org.eclipse.core.resources.IFile"/>
diff --git a/plugins/org.eclipse.bpel.runtimes/src/org/eclipse/bpel/runtimes/module/BPELModuleFactoryDelegate.java b/plugins/org.eclipse.bpel.runtimes/src/org/eclipse/bpel/runtimes/module/BPELModuleFactoryDelegate.java
index 637e825..7416a69 100644
--- a/plugins/org.eclipse.bpel.runtimes/src/org/eclipse/bpel/runtimes/module/BPELModuleFactoryDelegate.java
+++ b/plugins/org.eclipse.bpel.runtimes/src/org/eclipse/bpel/runtimes/module/BPELModuleFactoryDelegate.java
@@ -36,6 +36,7 @@
import org.eclipse.wst.server.core.internal.ModuleFactory;
import org.eclipse.wst.server.core.internal.ServerPlugin;
import org.eclipse.wst.server.core.model.ModuleDelegate;
+import org.eclipse.wst.server.core.model.ModuleFactoryDelegate;
import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
/**
@@ -100,6 +101,7 @@
return md;
}
+ @SuppressWarnings("restriction")
protected boolean canHandleProject(IProject p) {
boolean result = FacetedProjectUtilities.isProjectOfType(p, IBPELModuleFacetConstants.BPEL20_PROJECT_FACET);
return result;
@@ -111,13 +113,29 @@
}
List<IModule> projectModules = new ArrayList<IModule>();
+ IProject project = component.getProject();
+
try {
- if (canHandleProject(component.getProject())) {
- canHandleProject(component.getProject());
+ if (canHandleProject(project)) {
+ // defer to other ProjectModuleFactoryDelegates who think they can handle BPEL modules
+ ModuleFactory[] factories = ServerPlugin.getModuleFactories();
+ for (int i = 0; i < factories.length; i++) {
+ if(!factories[i].getId().equals(BPEL_FACTORY)) { // it's not me!
+ ModuleFactoryDelegate d = factories[i].getDelegate(new NullProgressMonitor());
+ if (d instanceof ProjectModuleFactoryDelegate) {
+ ProjectModuleFactoryDelegate pd = (ProjectModuleFactoryDelegate)d;
+ IModule[] modules = pd.getModules(project);
+ if (modules!=null && modules.length>0)
+ // return empty array - let the other guy handle this one
+ return new IModule[0];
+ }
+ }
+ }
+
String type = IBPELModuleFacetConstants.BPEL20_MODULE_TYPE;
String version = IBPELModuleFacetConstants.BPEL20_MODULE_VERSION;
- IModule module = createModule(component.getName(), component.getName(), type, version, component.getProject());
- FlatComponentDeployable moduleDelegate = createModuleDelegate(component.getProject(), component);
+ IModule module = createModule(component.getName(), component.getName(), type, version, project);
+ FlatComponentDeployable moduleDelegate = createModuleDelegate(project, component);
moduleDelegates.put(module, moduleDelegate);
projectModules.add(module);