Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Brodt2015-09-11 17:30:06 +0000
committerBob Brodt2015-09-11 17:38:11 +0000
commitbd28e52fa29dc479279b091bebf622463986d2df (patch)
treefe9c6fa9b1230b50befea063754da9e8c1c28c9a
parent1dbf792b50e70c19e608ab77f74e35564c199b2c (diff)
downloadorg.eclipse.bpmn2-modeler-bd28e52fa29dc479279b091bebf622463986d2df.tar.gz
org.eclipse.bpmn2-modeler-bd28e52fa29dc479279b091bebf622463986d2df.tar.xz
org.eclipse.bpmn2-modeler-bd28e52fa29dc479279b091bebf622463986d2df.zip
https://bugzilla.redhat.com/show_bug.cgi?id=1235689 - Custom Service
Task is losing information after round-tripping from Web Designer to JBDS https://bugs.eclipse.org/bugs/show_bug.cgi?id=477103 - Incorrect use of "targetNamespace" to identify the Target Runtime of a bpmn2 file
-rw-r--r--features/org.eclipse.bpmn2.modeler/.project2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ObjectPropertyProvider.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java27
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java20
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelExtensionDescriptor.java4
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java16
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/drools/util/DroolsResourceImpl.java15
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCustomTaskPropertySection.java4
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java5
9 files changed, 52 insertions, 43 deletions
diff --git a/features/org.eclipse.bpmn2.modeler/.project b/features/org.eclipse.bpmn2.modeler/.project
index 615b7abd..8c9a2814 100644
--- a/features/org.eclipse.bpmn2.modeler/.project
+++ b/features/org.eclipse.bpmn2.modeler/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.bpmn2.modeler</name>
+ <name>org.eclipse.bpmn2-modeler.git</name>
<comment></comment>
<projects>
</projects>
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ObjectPropertyProvider.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ObjectPropertyProvider.java
index 7334a199..89789bdd 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ObjectPropertyProvider.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ObjectPropertyProvider.java
@@ -172,7 +172,7 @@ public class ObjectPropertyProvider extends AdapterImpl implements IResourceProv
if (rs!=null) {
for (Resource r : rs.getResources()) {
if (r instanceof Bpmn2Resource) {
- return resource;
+ return r;
}
}
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java
index 801119e6..e2ea2934 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java
@@ -437,25 +437,16 @@ public class Bpmn2ModelerResourceImpl extends Bpmn2ResourceImpl {
*/
protected static class Bpmn2ModelerXmlHandler extends BpmnXmlHandler {
- Bpmn2Preferences preferences = null;
- ImportUtil importHandler = new ImportUtil();
- String targetNamespace = null;
+ protected Bpmn2Preferences preferences = null;
+ protected ImportUtil importHandler = new ImportUtil();
+ protected String targetNamespace = null;
public Bpmn2ModelerXmlHandler(XMLResource xmiResource, XMLHelper helper, Map<?, ?> options) {
super(xmiResource, helper, options);
}
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- // read the targetNamespace as early as possible
- if ("bpmn2:definitions".equals(qName)) { //$NON-NLS-1$
- targetNamespace = attributes.getValue("targetNamespace"); //$NON-NLS-1$
- if (targetNamespace != null) {
- ((Bpmn2ModelerXmlHelper)helper).initializeTargetRuntime(targetNamespace);
- }
- }
-
- super.startElement(uri, localName, qName, attributes);
+
+ protected String getTargetNamespace(Definitions defs) {
+ return defs.getTargetNamespace();
}
@Override
@@ -758,7 +749,11 @@ public class Bpmn2ModelerResourceImpl extends Bpmn2ResourceImpl {
}
else if (obj instanceof Definitions) {
// fetch the targetNamespace from Definitions object
- targetNamespace = ((Definitions)obj).getTargetNamespace();
+ // NO! This is already handled in startElement()
+// targetNamespace = ((Definitions)obj).getTargetNamespace();
+ targetNamespace = getTargetNamespace((Definitions)obj);
+ ((Bpmn2ModelerXmlHelper)helper).initializeTargetRuntime(targetNamespace);
+
}
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java
index 7a01986c..d097b430 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java
@@ -75,6 +75,7 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Display;
@@ -84,7 +85,6 @@ import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
import org.osgi.service.prefs.BackingStoreException;
import org.osgi.service.prefs.Preferences;
@@ -1646,13 +1646,17 @@ public class Bpmn2Preferences implements IResourceChangeListener, IPropertyChang
IViewPart[] parts = page.getViews();
for (int i = 0; i < parts.length; i++) {
- if (parts[i] instanceof ResourceNavigator) {
- ResourceNavigator navigator = (ResourceNavigator) parts[i];
- StructuredSelection sel = (StructuredSelection) navigator.getTreeViewer().getSelection();
- IResource resource = (IResource) sel.getFirstElement();
- if (resource!=null) {
- activeProject = resource.getProject();
- break;
+ if (parts[i].getViewSite().getSelectionProvider()!=null) {
+ ISelection s = parts[i].getViewSite().getSelectionProvider().getSelection();
+ if (s instanceof StructuredSelection) {
+ StructuredSelection ss = (StructuredSelection) s;
+ Object o = ss.getFirstElement();
+ if (o instanceof IResource) {
+ IResource r = (IResource) o;
+ activeProject = r.getProject();
+ if (activeProject!=null)
+ break;
+ }
}
}
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelExtensionDescriptor.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelExtensionDescriptor.java
index fff6ea28..53c33163 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelExtensionDescriptor.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/runtime/ModelExtensionDescriptor.java
@@ -404,7 +404,9 @@ public class ModelExtensionDescriptor extends BaseRuntimeExtensionDescriptor {
*/
public EObject basicCreateObject(EClass eClass) {
EPackage pkg = eClass.getEPackage();
- return pkg.getEFactoryInstance().create(eClass);
+ EObject object = pkg.getEFactoryInstance().create(eClass);
+ TargetRuntimeAdapter.adapt(object, targetRuntime);
+ return object;
}
/**
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java
index 146fb917..26af0756 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java
@@ -95,8 +95,8 @@ import org.xml.sax.InputSource;
public class JBPM5RuntimeExtension implements IBpmn2RuntimeExtension {
public final static String JBPM5_RUNTIME_ID = "org.jboss.runtime.jbpm5"; //$NON-NLS-1$
-
- private static final String DROOLS_NAMESPACE = "http://www.jboss.org/drools"; //$NON-NLS-1$
+ public final static String DROOLS_NAMESPACE = "http://www.jboss.org/drools"; //$NON-NLS-1$
+
private List<WorkItemDefinition> workItemDefinitions;
/* (non-Javadoc)
@@ -194,7 +194,7 @@ public class JBPM5RuntimeExtension implements IBpmn2RuntimeExtension {
java.util.Iterator<WorkItemDefinition> widIterator = workItemDefinitions.iterator();
while(widIterator.hasNext()) {
final WorkItemDefinition wid = widIterator.next();
- final CustomTaskDescriptor ctd = convertWIDtoCT(wid);
+ final CustomTaskDescriptor ctd = convertWIDtoCT(inputFile.getProject(),wid);
if (ctd != null) {
if (targetRuntime.customTaskExists(ctd.getId())) {
Display.getDefault().asyncExec( new Runnable() {
@@ -240,7 +240,7 @@ public class JBPM5RuntimeExtension implements IBpmn2RuntimeExtension {
* @param wid
* @return
*/
- private CustomTaskDescriptor convertWIDtoCT ( WorkItemDefinition wid ) {
+ private CustomTaskDescriptor convertWIDtoCT(IProject project, WorkItemDefinition wid) {
if (wid != null) {
String id = wid.getName();
String name = wid.getDisplayName();
@@ -256,7 +256,6 @@ public class JBPM5RuntimeExtension implements IBpmn2RuntimeExtension {
setBasicProps ( ct, wid);
// push the icon into the image registry
- IProject project = Bpmn2Preferences.getActiveProject();
String iconPath = getWIDPropertyValue("icon", wid); //$NON-NLS-1$
if (iconPath != null) {
Path tempPath = new Path(iconPath);
@@ -271,10 +270,8 @@ public class JBPM5RuntimeExtension implements IBpmn2RuntimeExtension {
ImageDescriptor image = ImageDescriptor.createFromURL(url);
CustomTaskImageProvider.registerImage(iconPath, image);
}
- } catch (CoreException e1) {
+ } catch (Exception e1) {
e1.printStackTrace();
- } catch (MalformedURLException e) {
- e.printStackTrace();
}
}
@@ -441,7 +438,8 @@ public class JBPM5RuntimeExtension implements IBpmn2RuntimeExtension {
String[] basicProps = new String[] { "taskName", "displayName", "icon" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
for (int i = 0; i < basicProps.length; i++) {
Property prop = getPropertyFromWID(basicProps[i], wid);
- ct.getProperties().add(prop);
+ if (prop!=null)
+ ct.getProperties().add(prop);
}
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/drools/util/DroolsResourceImpl.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/drools/util/DroolsResourceImpl.java
index 21c2e449..4992ad03 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/drools/util/DroolsResourceImpl.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/drools/util/DroolsResourceImpl.java
@@ -13,7 +13,6 @@
package org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.model.drools.util;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -32,7 +31,6 @@ import org.eclipse.bpmn2.DataOutputAssociation;
import org.eclipse.bpmn2.DataStore;
import org.eclipse.bpmn2.Definitions;
import org.eclipse.bpmn2.Event;
-import org.eclipse.bpmn2.ExtensionAttributeValue;
import org.eclipse.bpmn2.InputSet;
import org.eclipse.bpmn2.Interface;
import org.eclipse.bpmn2.ItemAwareElement;
@@ -46,7 +44,10 @@ import org.eclipse.bpmn2.RootElement;
import org.eclipse.bpmn2.ThrowEvent;
import org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl;
import org.eclipse.bpmn2.modeler.core.model.ModelDecorator;
+import org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceImpl.Bpmn2ModelerXmlHelper;
+import org.eclipse.bpmn2.modeler.core.runtime.TargetRuntimeAdapter;
import org.eclipse.bpmn2.modeler.core.utils.ModelUtil;
+import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.JBPM5RuntimeExtension;
import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.ProcessVariableNameChangeAdapter;
import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.model.drools.DroolsFactory;
import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.model.drools.DroolsPackage;
@@ -68,13 +69,14 @@ import org.eclipse.emf.ecore.impl.EAttributeImpl;
import org.eclipse.emf.ecore.util.BasicFeatureMap;
import org.eclipse.emf.ecore.util.BasicInternalEList;
import org.eclipse.emf.ecore.util.ExtendedMetaData;
-import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.xmi.XMLHelper;
import org.eclipse.emf.ecore.xmi.XMLLoad;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.XMLSave;
import org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl;
import org.eclipse.emf.ecore.xmi.impl.XMLString;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
@@ -456,7 +458,12 @@ public class DroolsResourceImpl extends Bpmn2ModelerResourceImpl {
public DroolsXmlHandler(XMLResource xmiResource, XMLHelper helper, Map<?, ?> options) {
super(xmiResource, helper, options);
}
-
+
+ @Override
+ protected String getTargetNamespace(Definitions defs) {
+ return JBPM5RuntimeExtension.DROOLS_NAMESPACE;
+ }
+
@Override
protected EStructuralFeature getFeature(EObject object, String prefix, String name, boolean isElement)
{
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCustomTaskPropertySection.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCustomTaskPropertySection.java
index ea578756..d63a8fc9 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCustomTaskPropertySection.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmCustomTaskPropertySection.java
@@ -40,9 +40,9 @@ public class JbpmCustomTaskPropertySection extends JbpmTaskPropertySection imple
public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
if (super.appliesTo(part, selection)) {
// only show this property section if the selected Task is a "custom task"
- // that is, it has a "displayName" extension attribute
+ // that is, it has a "taskName" extension attribute
EObject be = getBusinessObjectForSelection(selection);
- return ModelDecorator.getAnyAttribute(be, "displayName") != null; //$NON-NLS-1$
+ return ModelDecorator.getAnyAttribute(be, "taskName") != null; //$NON-NLS-1$
}
return false;
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java
index 33e170a1..5120a30d 100644
--- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java
@@ -329,7 +329,10 @@ public class Bpmn2EditorItemProviderAdapterFactory extends Bpmn2ItemProviderAdap
}
private ExtendedPropertiesAdapter getTargetRuntimeAdapter(EObject object) {
- TargetRuntime rt = TargetRuntime.getRuntime(object);
+ ObjectPropertyProvider factoryAdapter = ObjectPropertyProvider.getAdapter(object.eClass().getEPackage().getEFactoryInstance());
+ TargetRuntime rt = TargetRuntime.getRuntime(factoryAdapter.getResource());
+ if (rt==null)
+ rt = TargetRuntime.getRuntime(object);
PropertyExtensionDescriptor ped = rt.getPropertyExtension(object.getClass());
if (ped==null && rt != TargetRuntime.getDefaultRuntime())
ped = TargetRuntime.getDefaultRuntime().getPropertyExtension(object.getClass());

Back to the top