https://bugzilla.redhat.com/show_bug.cgi?id=1189454 - Multiple-Instance
Loop Characteristics and process variables are not linked.
Regression caused by previous commit.
diff --git a/examples/plugins/org.eclipse.bpmn2.modeler.examples.datatypes/META-INF/MANIFEST.MF b/examples/plugins/org.eclipse.bpmn2.modeler.examples.datatypes/META-INF/MANIFEST.MF
index 2374f02..7deb82f 100644
--- a/examples/plugins/org.eclipse.bpmn2.modeler.examples.datatypes/META-INF/MANIFEST.MF
+++ b/examples/plugins/org.eclipse.bpmn2.modeler.examples.datatypes/META-INF/MANIFEST.MF
@@ -16,5 +16,5 @@
  org.eclipse.graphiti;bundle-version="0.11.0",
  org.eclipse.graphiti.ui;bundle-version="0.11.0",
  org.eclipse.bpmn2
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
diff --git a/examples/plugins/org.eclipse.bpmn2.modeler.examples.modelreader/META-INF/MANIFEST.MF b/examples/plugins/org.eclipse.bpmn2.modeler.examples.modelreader/META-INF/MANIFEST.MF
index cf0672b..b04ef87 100644
--- a/examples/plugins/org.eclipse.bpmn2.modeler.examples.modelreader/META-INF/MANIFEST.MF
+++ b/examples/plugins/org.eclipse.bpmn2.modeler.examples.modelreader/META-INF/MANIFEST.MF
@@ -16,4 +16,4 @@
  org.eclipse.bpmn2.modeler.core,
  org.eclipse.bpmn2.modeler.ui,
  org.eclipse.bpmn2
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmImportObjectEditor.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmImportObjectEditor.java
index ecc88bb..a0c83c7 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmImportObjectEditor.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmImportObjectEditor.java
@@ -10,34 +10,64 @@
  *******************************************************************************/
 package org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.property;
 
+import java.util.Hashtable;
+
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.ItemDefinition;
 import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractDetailComposite;
+import org.eclipse.bpmn2.modeler.core.merrimac.dialogs.ComboObjectEditor;
+import org.eclipse.bpmn2.modeler.core.utils.ModelUtil;
 import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.model.drools.ImportType;
 import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.util.JbpmModelUtil;
-import org.eclipse.bpmn2.modeler.ui.property.editors.ItemDefinitionStructureEditor;
+import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.jdt.core.IType;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
 
-public class JbpmImportObjectEditor extends ItemDefinitionStructureEditor {
+public class JbpmImportObjectEditor extends ComboObjectEditor {
 
+	private final Definitions definitions;
+
+	
 	public JbpmImportObjectEditor(AbstractDetailComposite parent, EObject object, EStructuralFeature feature) {
-		super(parent, object);
+		super(parent, object, feature);
+		definitions = ModelUtil.getDefinitions(object);
 	}
 
 	@Override
-	protected boolean canAdd() {
+	protected boolean canCreateNew() {
 		return true;
 	}
 	
 	@Override
-	protected void buttonClicked(int buttonId) {
-		if (buttonId==ID_ADD_BUTTON) {
-		    IType type = JbpmModelUtil.showImportDialog(object);
-			ImportType imp = JbpmModelUtil.addImport(type, object);
-			if (imp!=null)
-				setText(imp.getName());
+	protected Hashtable<String, Object> getChoiceOfValues(EObject object, EStructuralFeature feature) {
+		Hashtable<String, Object> choices = new Hashtable<String, Object>();
+		// The object is either an Interface or ImportType, both types reference
+		// a Java implementation class which may be defined in either a drools <import>
+		// or a BPMN2 <itemDefinition>.
+		TreeIterator<EObject> iter = definitions.eAllContents();
+		while (iter.hasNext()) {
+			EObject o = iter.next();
+			String choice = null;
+			if (o instanceof ImportType) {
+				choice = ((ImportType)o).getName();
+			}
+			else if (o instanceof ItemDefinition) {
+				choice = ModelUtil.getStringWrapperTextValue(((ItemDefinition)o).getStructureRef());
+			}
+			if (choice!=null && !choices.containsKey(choice))
+				choices.put(choice, choice);
 		}
-		else
-			super.buttonClicked(buttonId);
+		return choices;
+	}
+
+	@Override
+	protected void buttonClicked(int buttonId) {
+	    IType type = JbpmModelUtil.showImportDialog(object);
+		ImportType imp = JbpmModelUtil.addImport(type, object);
+		if (imp!=null)
+			setValue(imp.getName());
 	}
 }
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionDetailComposite.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionDetailComposite.java
index 375507d..b727a31 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionDetailComposite.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionDetailComposite.java
@@ -46,7 +46,7 @@
 			String displayName = ExtendedPropertiesProvider.getLabel(object, reference);
 			
 			if (def.getItemKind().equals(ItemKind.INFORMATION)) {
-				JbpmImportObjectEditor editor = new JbpmImportObjectEditor(this,object,reference);
+				JbpmItemDefinitionStructureEditor editor = new JbpmItemDefinitionStructureEditor(this,object,reference);
 				editor.createControl(parent,displayName);
 			}
 			else {
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionStructureEditor.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionStructureEditor.java
new file mode 100644
index 0000000..0a318d9
--- /dev/null
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmItemDefinitionStructureEditor.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2012 Red Hat, Inc. 
+ * All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ *
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ *******************************************************************************/
+package org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.property;
+
+
+import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractDetailComposite;
+import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.model.drools.ImportType;
+import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.util.JbpmModelUtil;
+import org.eclipse.bpmn2.modeler.ui.property.editors.ItemDefinitionStructureEditor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jdt.core.IType;
+
+public class JbpmItemDefinitionStructureEditor extends ItemDefinitionStructureEditor {
+
+	public JbpmItemDefinitionStructureEditor(AbstractDetailComposite parent, EObject object, EStructuralFeature feature) {
+		super(parent, object);
+	}
+
+	@Override
+	protected boolean canAdd() {
+		return true;
+	}
+	
+	@Override
+	protected void buttonClicked(int buttonId) {
+		if (buttonId==ID_ADD_BUTTON) {
+		    IType type = JbpmModelUtil.showImportDialog(object);
+			ImportType imp = JbpmModelUtil.addImport(type, object);
+			if (imp!=null)
+				setText(imp.getName());
+		}
+		else
+			super.buttonClicked(buttonId);
+	}
+}
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/Messages.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/Messages.java
index a98b21a..cd80776 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/Messages.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/Messages.java
@@ -38,6 +38,7 @@
 	public static String JbpmDescriptionPropertySection_Remove_MetaData_Button;
 	public static String JbpmImportObjectEditor_Browse;
 	public static String JbpmImportObjectEditor_Invalid_Character;
+	public static String JbpmImportObjectEditor_DuplicateItemDefinition_Error;
 	public static String JbpmImportTypeDetailComposite_Title;
 	public static String JbpmInterfacePropertySection_Import_Action;
 	public static String JbpmIoParametersDetailComposite_Input_Mapping_Title;
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/messages.properties b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/messages.properties
index 57af94f..869456a 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/messages.properties
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/messages.properties
@@ -31,7 +31,8 @@
 JbpmDescriptionPropertySection_MetaData_Value=Value
 JbpmDescriptionPropertySection_Remove_MetaData_Button=Remove MetaData
 JbpmImportObjectEditor_Browse=Browse Types...
-JbpmImportObjectEditor_Invalid_Character=The characters "{0}" are not valid - expecting a Java Package name
+JbpmImportObjectEditor_Invalid_Character=The character "{0}" is not valid - expecting a Java Package name
+JbpmImportObjectEditor_DuplicateItemDefinition_Error=An Item Definition with this data structure name already exists
 JbpmImportTypeDetailComposite_Title=Import
 JbpmInterfacePropertySection_Import_Action=Import
 JbpmIoParametersDetailComposite_Input_Mapping_Title=Input Data Mapping