https://bugs.eclipse.org/bugs/show_bug.cgi?id=384055 - migrated to
Graphiti 0.9.0
diff --git a/org.eclipse.bpmn2.modeler.core/META-INF/MANIFEST.MF b/org.eclipse.bpmn2.modeler.core/META-INF/MANIFEST.MF
index 857543f..dc769c3 100644
--- a/org.eclipse.bpmn2.modeler.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.bpmn2.modeler.core/META-INF/MANIFEST.MF
@@ -9,8 +9,8 @@
  org.eclipse.emf.edit.ui,

  org.eclipse.emf.validation.ocl,

  org.eclipse.osgi,

- org.eclipse.graphiti;bundle-version="0.8.2",

- org.eclipse.graphiti.ui;bundle-version="0.8.2",

+ org.eclipse.graphiti;bundle-version="[0.9.0,1.0.0)",

+ org.eclipse.graphiti.ui;bundle-version="[0.9.0,1.0.0)",

  org.eclipse.gef,

  org.eclipse.bpmn2.edit,

  org.eclipse.bpmn2.editor,

diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/ModelHandler.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/ModelHandler.java
index 524db0d..a2861ab 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/ModelHandler.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/ModelHandler.java
@@ -75,6 +75,7 @@
 import org.eclipse.emf.ecore.EPackage;

 import org.eclipse.emf.ecore.EStructuralFeature;

 import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.resource.ResourceSet;

 import org.eclipse.emf.transaction.RecordingCommand;

 import org.eclipse.emf.transaction.TransactionalEditingDomain;

 import org.eclipse.emf.transaction.util.TransactionUtil;

@@ -132,7 +133,7 @@
 			break;

 		}

 		if (diagram!=null)

-			getDefinitions().setTargetNamespace(targetNamespace);

+			((Definitions)diagram.eContainer()).setTargetNamespace(targetNamespace);

 		

 		return diagram;

 	}

@@ -140,6 +141,7 @@
 	public BPMNDiagram createProcessDiagram(final String name) {

 	

 		EList<EObject> contents = resource.getContents();

+		ResourceSet rs = resource.getResourceSet();

 		TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(resource);

 		final BPMNDiagram bpmnDiagram = BpmnDiFactory.eINSTANCE.createBPMNDiagram();

 

diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/DefaultLayoutBPMNShapeFeature.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/DefaultLayoutBPMNShapeFeature.java
index cdf62e0..f969133 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/DefaultLayoutBPMNShapeFeature.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/DefaultLayoutBPMNShapeFeature.java
@@ -28,11 +28,6 @@
 		layoutConnections(context.getPictogramElement());

 		return true;

 	}

-

-	@Override

-	protected void layoutPictogramElement(PictogramElement pe) {

-		super.layoutPictogramElement(pe);

-	}

 	

 	public void layoutConnections(PictogramElement shape) {

 		Diagram diagram = getDiagram();

diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java
index cedc354..ae1adaf 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/preferences/Bpmn2Preferences.java
@@ -169,7 +169,7 @@
 	 * @return project preferences

 	 */

 	public static Bpmn2Preferences getInstance(URI resourceURI) {

-		String filename = resourceURI.toPlatformString(true);

+		String filename = resourceURI.trimSegments(1).toPlatformString(true);

 		IProject project = ResourcesPlugin.getWorkspace().getRoot().findMember(filename).getProject();

 		return getInstance(project);

 	}

diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/StyleUtil.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/StyleUtil.java
index ce2b964..e9439d5 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/StyleUtil.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/StyleUtil.java
@@ -129,6 +129,8 @@
 					Font f = ss.getTextFont();

 					((AbstractText)ga).setFont(gaService.manageFont(diagram, f.getName(), f.getSize(), f.isItalic(), f.isBold()));

 					ga.setForeground(gaService.manageColor(diagram, foreground));

+					// Text does not have a fill style (yet)

+					return;

 				}

 				else {

 					s.setForeground(gaService.manageColor(diagram, foreground));

diff --git a/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/META-INF/MANIFEST.MF b/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/META-INF/MANIFEST.MF
index b476dca..7d4c9e3 100644
--- a/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/META-INF/MANIFEST.MF
+++ b/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/META-INF/MANIFEST.MF
@@ -6,8 +6,8 @@
 Bundle-Activator: org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.Activator

 Bundle-Vendor: Eclipse.org

 Require-Bundle: org.eclipse.ui.ide,

- org.eclipse.graphiti;bundle-version="0.8.2",

- org.eclipse.graphiti.ui;bundle-version="0.8.2",

+ org.eclipse.graphiti;bundle-version="[0.9.0,1.0.0)",

+ org.eclipse.graphiti.ui;bundle-version="[0.9.0,1.0.0)",

  org.eclipse.bpmn2.modeler.core,

  org.eclipse.emf.transaction;bundle-version="1.4.0",

  org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100",

diff --git a/org.eclipse.bpmn2.modeler.ui/META-INF/MANIFEST.MF b/org.eclipse.bpmn2.modeler.ui/META-INF/MANIFEST.MF
index 5d7b2aa..d3f89cf 100644
--- a/org.eclipse.bpmn2.modeler.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.bpmn2.modeler.ui/META-INF/MANIFEST.MF
@@ -8,8 +8,8 @@
 Bundle-Localization: plugin

 Require-Bundle: org.eclipse.ui.ide,

  org.eclipse.osgi,

- org.eclipse.graphiti;bundle-version="0.8.2",

- org.eclipse.graphiti.ui;bundle-version="0.8.2",

+ org.eclipse.graphiti;bundle-version="[0.9.0,1.0.0)",

+ org.eclipse.graphiti.ui;bundle-version="[0.9.0,1.0.0)",

  org.eclipse.bpmn2.modeler.core,

  org.eclipse.emf.transaction;bundle-version="1.4.0",

  org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100",

diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java
index d80adfe..c1f7ed2 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java
@@ -56,17 +56,21 @@
 import org.eclipse.emf.transaction.RecordingCommand;

 import org.eclipse.emf.transaction.TransactionalEditingDomain.Lifecycle;

 import org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl;

+import org.eclipse.emf.transaction.util.TransactionUtil;

 import org.eclipse.gef.ContextMenuProvider;

+import org.eclipse.gef.DefaultEditDomain;

 import org.eclipse.graphiti.features.IFeatureProvider;

 import org.eclipse.graphiti.mm.algorithms.GraphicsAlgorithm;

 import org.eclipse.graphiti.mm.pictograms.Diagram;

 import org.eclipse.graphiti.mm.pictograms.PictogramElement;

 import org.eclipse.graphiti.services.Graphiti;

 import org.eclipse.graphiti.services.IPeService;

+import org.eclipse.graphiti.ui.editor.DefaultUpdateBehavior;

 import org.eclipse.graphiti.ui.editor.DiagramEditor;

 import org.eclipse.graphiti.ui.editor.DiagramEditorContextMenuProvider;

 import org.eclipse.graphiti.ui.editor.DiagramEditorInput;

 import org.eclipse.graphiti.ui.internal.editor.GFPaletteRoot;

+import org.eclipse.graphiti.ui.internal.services.GraphitiUiInternal;

 import org.eclipse.jface.action.IMenuManager;

 import org.eclipse.jface.util.IPropertyChangeListener;

 import org.eclipse.jface.util.PropertyChangeEvent;

@@ -197,6 +201,11 @@
 		addSelectionListener();

 		addFileChangeListener();

 	}

+	

+	@Override

+	protected DefaultUpdateBehavior createUpdateBehavior() {

+		return new BPMN2EditorUpdateBehavior(this);

+	}

 

 	public Bpmn2Preferences getPreferences() {

 		if (preferences==null) {

@@ -230,7 +239,7 @@
 	}

 	

 	private void getModelPathFromInput(DiagramEditorInput input) {

-		URI uri = input.getDiagram().eResource().getURI();

+		URI uri = input.getUri();

 		String uriString = uri.trimFragment().toPlatformString(true);

 		modelFile = BPMN2DiagramCreator.getModelFile(new Path(uriString));

 	}

@@ -250,16 +259,16 @@
 		BPMN2DiagramCreator creator = new BPMN2DiagramCreator();

 		creator.setDiagramFile(diagramFile);

 

-		Bpmn2DiagramEditorInput input = creator.createDiagram(diagramType,targetNamespace,false);

+		Bpmn2DiagramEditorInput input = creator.createDiagram(diagramType,targetNamespace,this);

 		diagramUri = creator.getUri();

 

 		return input;

 	}

 

-	@Override

-	public void doSave(IProgressMonitor monitor) {

+	private void saveModelFile() {

 		modelHandler.save();

 		((BasicCommandStack) getEditingDomain().getCommandStack()).saveIsDone();

+		updateDirtyState();

 	}

 

 	@Override

@@ -288,7 +297,7 @@
 				if (modelFile.exists()) {

 					bpmnResource.load(null);

 				} else {

-					doSave(null);

+					saveModelFile();

 				}

 			} catch (IOException e) {

 				Status status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);

@@ -318,7 +327,7 @@
 		if (diagramType != Bpmn2DiagramType.NONE) {

 			BPMNDiagram bpmnDiagram = modelHandler.createDiagramType(diagramType, targetNamespace);

 			featureProvider.link(diagram, bpmnDiagram);

-			BPMN2Editor.this.doSave(null);

+			saveModelFile();

 		}

 		

 		DIImport di = new DIImport();

diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2EditorUpdateBehavior.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2EditorUpdateBehavior.java
new file mode 100644
index 0000000..2303d56
--- /dev/null
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2EditorUpdateBehavior.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ *
+ * @author Bob Brodt
+ ******************************************************************************/
+
+package org.eclipse.bpmn2.modeler.ui.editor;
+
+import org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceSetImpl;
+import org.eclipse.core.commands.operations.DefaultOperationHistory;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl;
+import org.eclipse.emf.workspace.IWorkspaceCommandStack;
+import org.eclipse.emf.workspace.WorkspaceEditingDomainFactory;
+import org.eclipse.graphiti.ui.editor.DefaultUpdateBehavior;
+import org.eclipse.graphiti.ui.editor.DiagramEditor;
+import org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl;
+
+/**
+ * This overrides the DefaultUpdateBehavior provider class from Graphiti. This is necessary
+ * because we want to provide our own ResourceSet implementation instead of being forced to
+ * deal with the default ResourceSetImpl. See  createResourceSetAndEditingDomain() for details.
+ * 
+ * @author Bob Brodt
+ *
+ */
+public class BPMN2EditorUpdateBehavior extends DefaultUpdateBehavior {
+	
+		private TransactionalEditingDomain editingDomain;
+
+		/**
+		 * @param diagramEditor
+		 */
+		public BPMN2EditorUpdateBehavior(DiagramEditor diagramEditor) {
+			super(diagramEditor);
+		}
+		
+		public TransactionalEditingDomain getEditingDomain() {
+			if (editingDomain==null)
+				createEditingDomain();
+			return editingDomain;
+		}
+
+		@Override
+		public void createEditingDomain() {
+			if (editingDomain==null) {
+//			TransactionalEditingDomain editingDomain = GraphitiUiInternal.getEmfService().createResourceSetAndEditingDomain();
+				editingDomain = createResourceSetAndEditingDomain();
+				initializeEditingDomain(editingDomain);
+			}
+		}
+		
+		public TransactionalEditingDomain createResourceSetAndEditingDomain() {
+			// Argh!! This is the ONLY line of code that actually differs (significantly) from
+			// the Graphiti EMF Service. Here we want to substitute our own Bpmn2ModelerResourceSetImpl
+			// instead of using a ResourceSetImpl.
+			final ResourceSet resourceSet = new Bpmn2ModelerResourceSetImpl();
+			final IWorkspaceCommandStack workspaceCommandStack = new GFWorkspaceCommandStackImpl(new DefaultOperationHistory());
+		
+			final TransactionalEditingDomainImpl editingDomain = new TransactionalEditingDomainImpl(new ComposedAdapterFactory(
+					ComposedAdapterFactory.Descriptor.Registry.INSTANCE), workspaceCommandStack, resourceSet);
+			WorkspaceEditingDomainFactory.INSTANCE.mapResourceSet(editingDomain);
+			return editingDomain;
+		}
+
+	}
\ No newline at end of file
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2MultiPageEditor.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2MultiPageEditor.java
index 2d09c26..dfa2b62 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2MultiPageEditor.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2MultiPageEditor.java
@@ -20,6 +20,7 @@
 import org.eclipse.gef.ContextMenuProvider;

 import org.eclipse.gef.ui.actions.ActionRegistry;

 import org.eclipse.gef.ui.actions.WorkbenchPartAction;

+import org.eclipse.graphiti.dt.IDiagramTypeProvider;

 import org.eclipse.graphiti.mm.pictograms.ContainerShape;

 import org.eclipse.graphiti.mm.pictograms.FreeFormConnection;

 import org.eclipse.graphiti.mm.pictograms.PictogramElement;

@@ -378,7 +379,7 @@
 

 		@Override

 		protected ContextMenuProvider createContextMenuProvider() {

-			return new DiagramEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry(), getConfigurationProvider()) {

+			return new DiagramEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry(), getDiagramTypeProvider()) {

 				@Override

 				public void buildContextMenu(IMenuManager manager) {

 					super.buildContextMenu(manager);

diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java
index 25e37af..ba2a39c 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java
@@ -45,10 +45,10 @@
 	private URI uri;

 

 	public Bpmn2DiagramEditorInput createDiagram(Bpmn2DiagramType diagramType, String targetNamespace) throws CoreException {

-		return createDiagram(diagramType, targetNamespace, true);

+		return createDiagram(diagramType, targetNamespace, null);

 	}

 

-	public Bpmn2DiagramEditorInput createDiagram(Bpmn2DiagramType diagramType, String targetNamespace, boolean openEditor) throws CoreException {

+	public Bpmn2DiagramEditorInput createDiagram(Bpmn2DiagramType diagramType, String targetNamespace, BPMN2Editor diagramEditor) throws CoreException {

 		if (diagramFolder != null && !diagramFolder.exists()) {

 			diagramFolder.create(false, true, null);

 		}

@@ -57,7 +57,7 @@
 				diagramFile.getFullPath().removeFileExtension().lastSegment(), true);

 		uri = URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);

 

-		TransactionalEditingDomain domain = FileService.createEmfFileForDiagram(uri, diagram);

+		TransactionalEditingDomain domain = FileService.createEmfFileForDiagram(uri, diagram, diagramEditor);

 

 		String providerId = GraphitiUi.getExtensionManager().getDiagramTypeProviderId(diagram.getDiagramTypeId());

 		final Bpmn2DiagramEditorInput editorInput = new Bpmn2DiagramEditorInput(EcoreUtil.getURI(diagram), domain,

@@ -65,7 +65,7 @@
 		editorInput.setInitialDiagramType(diagramType);

 		editorInput.setTargetNamespace(targetNamespace);

 

-		if (openEditor) {

+		if (diagramEditor==null) {

 			openEditor(editorInput);

 		}

 

diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java
index f885d17..582a02c 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java
@@ -26,7 +26,7 @@
 	private String targetNamespace;

 

 	Bpmn2DiagramEditorInput(URI diagramUri, TransactionalEditingDomain domain, String providerId) {

-		super(diagramUri, domain, providerId);

+		super(diagramUri, providerId);

 		this.domain = domain;

 	}

 

diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java
index 8dc7bb1..cec066c 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java
@@ -23,6 +23,7 @@
 import java.util.Set;

 

 import org.eclipse.bpmn2.modeler.core.model.Bpmn2ModelerResourceSetImpl;

+import org.eclipse.bpmn2.modeler.ui.editor.BPMN2Editor;

 import org.eclipse.core.commands.operations.DefaultOperationHistory;

 import org.eclipse.core.resources.IWorkspaceRunnable;

 import org.eclipse.core.resources.ResourcesPlugin;

@@ -39,35 +40,36 @@
 import org.eclipse.emf.transaction.Transaction;

 import org.eclipse.emf.transaction.TransactionalEditingDomain;

 import org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl;

+import org.eclipse.emf.transaction.util.TransactionUtil;

 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;

 import org.eclipse.emf.workspace.WorkspaceEditingDomainFactory;

 import org.eclipse.graphiti.mm.pictograms.Diagram;

-import org.eclipse.graphiti.ui.editor.DiagramEditorFactory;

 import org.eclipse.emf.workspace.IWorkspaceCommandStack;

 import org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl;

 

 public class FileService {

 

-	public static class MyDiagramEditorFactory extends DiagramEditorFactory {

-		public static TransactionalEditingDomain createResourceSetAndEditingDomain() {

-			final ResourceSet resourceSet = new Bpmn2ModelerResourceSetImpl();

-			final IWorkspaceCommandStack workspaceCommandStack = new GFWorkspaceCommandStackImpl(new DefaultOperationHistory());

+	public static TransactionalEditingDomain createEmfFileForDiagram(URI diagramResourceUri, final Diagram diagram, BPMN2Editor diagramEditor) {

 

-			final TransactionalEditingDomainImpl editingDomain = new TransactionalEditingDomainImpl(new ComposedAdapterFactory(

-					ComposedAdapterFactory.Descriptor.Registry.INSTANCE), workspaceCommandStack, resourceSet);

-			WorkspaceEditingDomainFactory.INSTANCE.mapResourceSet(editingDomain);

-			return editingDomain;

+		ResourceSet resourceSet = null;

+		TransactionalEditingDomain editingDomain = null;

+		if (diagramEditor==null) {

+			// Create a resource set and EditingDomain

+			resourceSet = new Bpmn2ModelerResourceSetImpl();

+			editingDomain = TransactionUtil.getEditingDomain(resourceSet);

+			if (editingDomain == null) {

+				// Not yet existing, create one

+				editingDomain = TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(resourceSet);

+			}

 		}

-	}

-	

-	public static TransactionalEditingDomain createEmfFileForDiagram(URI diagramResourceUri, final Diagram diagram) {

-

-		// Create a resource set and EditingDomain

-		final TransactionalEditingDomain editingDomain = MyDiagramEditorFactory.createResourceSetAndEditingDomain();

-		final ResourceSet resourceSet = editingDomain.getResourceSet();

+		else {

+			editingDomain = diagramEditor.getEditingDomain();

+			resourceSet = diagramEditor.getResourceSet();

+		}

+		

 		// Create a resource for this file.

 		final Resource resource = resourceSet.createResource(diagramResourceUri);

-		final CommandStack commandStack = editingDomain.getCommandStack();

+		CommandStack commandStack = editingDomain.getCommandStack();

 		commandStack.execute(new RecordingCommand(editingDomain) {

 

 			@Override

diff --git a/org.eclipse.bpmn2.modeler.updatesite.feature/associate.properties b/org.eclipse.bpmn2.modeler.updatesite.feature/associate.properties
index 93af443..5dfb8e9 100644
--- a/org.eclipse.bpmn2.modeler.updatesite.feature/associate.properties
+++ b/org.eclipse.bpmn2.modeler.updatesite.feature/associate.properties
@@ -1,4 +1,4 @@
 # associate site(s) - use comma to separate list - to add to the resulting repo 

 # TODO: change bpmn2 metamodel download location as soon as an official update site is available

 # https://hudson.eclipse.org/hudson/job/bpmn2-nightly/ws/org.eclipse.bpmn2.site/target/site/ should point to an download.eclipse.org update site 

-associate.sites=http://download.eclipse.org/graphiti/updates/0.8.2/,https://hudson.eclipse.org/hudson/job/bpmn2-nightly/ws/org.eclipse.bpmn2.site/target/site/,http://download.eclipse.org/bpmn2-modeler/site/,http://download.eclipse.org/bpel/site/

+associate.sites=http://download.eclipse.org/graphiti/updates/0.9.0/,https://hudson.eclipse.org/hudson/job/bpmn2-nightly/ws/org.eclipse.bpmn2.site/target/site/,http://download.eclipse.org/bpmn2-modeler/site/,http://download.eclipse.org/bpel/site/