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);