diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.modelexplorer/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.modelexplorer/META-INF/MANIFEST.MF
index b8f7b96..5859f35 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.modelexplorer/META-INF/MANIFEST.MF
@@ -31,7 +31,7 @@
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.9.0,2.0.0)",
  org.eclipse.papyrus.emf.facet.efacet.metamodel;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.emf.facet.query.java.metamodel;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)"
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)"
 Bundle-ManifestVersion: 2
 Bundle-Activator: org.eclipse.papyrus.infra.siriusdiag.modelexplorer.Activator
 Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.properties/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.properties/META-INF/MANIFEST.MF
index 35aec94..ccc51d2 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.properties/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@
  org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)",
  org.eclipse.osgi;bundle-version="[3.16.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.emf.ui;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.infra.emf;bundle-version="[4.1.0,5.0.0)"
 Bundle-Activator: org.eclipse.papyrus.infra.siriusdiag.properties.Activator
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.architecture/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.architecture/META-INF/MANIFEST.MF
index efdc64a..3955397 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.architecture/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.architecture/META-INF/MANIFEST.MF
@@ -18,8 +18,8 @@
  org.eclipse.papyrus.infra.core.sashwindows.di;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.papyrus.infra.architecture.representation;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)",
- org.eclipse.sirius.ui;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.core.architecture;bundle-version="[3.1.0,4.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.sirius;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.edit/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.edit/META-INF/MANIFEST.MF
index f5ba92c..22782dc 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.edit/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation.edit/META-INF/MANIFEST.MF
@@ -25,9 +25,9 @@
  org.eclipse.papyrus.infra.architecture.representation.edit;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.infra.emf.expressions;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.infra.emf.expressions.edit;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.ui;bundle-version="[6.4.2,7.0.0)"
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ui;bundle-version="[7.0.0,8.0.0)"
 Import-Package: org.osgi.framework;version="[1.10.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation/META-INF/MANIFEST.MF
index cef57a2..d12348a 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.representation/META-INF/MANIFEST.MF
@@ -17,9 +17,9 @@
  org.eclipse.papyrus.infra.constraints;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.papyrus.infra.types;bundle-version="[5.0.0,6.0.0)",
  org.eclipse.papyrus.infra.architecture.representation;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.sirius;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.emf.expressions;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.papyrus.infra.tools;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)"
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.sirius/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.sirius/META-INF/MANIFEST.MF
index 2ab2cb1..af9e562 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.sirius/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.sirius/META-INF/MANIFEST.MF
@@ -15,6 +15,6 @@
  org.eclipse.papyrus.infra.core;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.papyrus.infra.core.log;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.representation;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius;bundle-version="[6.4.0,7.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.ui.workbench;bundle-version="[3.122.0,4.0.0)"
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/META-INF/MANIFEST.MF b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/META-INF/MANIFEST.MF
index ac94a17..6445db8 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/META-INF/MANIFEST.MF
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/META-INF/MANIFEST.MF
@@ -26,19 +26,19 @@
  org.eclipse.papyrus.emf.facet.custom.ui;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.papyrus.emf.facet.custom.core;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.papyrus.infra.tools;bundle-version="[4.1.0,5.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.core.architecture;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.9.0,2.0.0)",
  org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.sirius.ecore.extender;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.ecore.extender;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.internationalization.common;bundle-version="[2.0.0,3.0.0)",
  com.google.guava;bundle-version="[30.1.0,31.0.0)",
- org.eclipse.sirius.common;bundle-version="[6.4.0,7.0.0)",
- org.eclipse.sirius.common.ui;bundle-version="[6.4.0,7.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.common;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.internationalization.utils;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.sirius.ui;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.uml.tools;bundle-version="[5.1.0,6.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
  org.eclipse.papyrus.infra.emf.gmf;bundle-version="[2.1.0,3.0.0)",
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/editor/NestedSiriusDiagramViewEditor.java b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/editor/NestedSiriusDiagramViewEditor.java
index 2dc2dc2..7d0c577 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/editor/NestedSiriusDiagramViewEditor.java
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/editor/NestedSiriusDiagramViewEditor.java
@@ -80,13 +80,13 @@
 import org.eclipse.sirius.diagram.DSemanticDiagram;
 import org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack;
 import org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl;
+import org.eclipse.sirius.tools.api.SiriusPlugin;
 import org.eclipse.sirius.ui.business.api.dialect.DialectUI;
 import org.eclipse.sirius.ui.business.api.dialect.DialectUIManager;
 import org.eclipse.sirius.ui.business.api.session.IEditingSession;
 import org.eclipse.sirius.ui.business.api.session.SessionUIManager;
 import org.eclipse.sirius.ui.business.internal.dialect.DialectUIManagerImpl;
 import org.eclipse.sirius.viewpoint.DRepresentation;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
 import org.eclipse.sirius.viewpoint.description.audit.provider.AuditItemProviderAdapterFactory;
 import org.eclipse.sirius.viewpoint.description.provider.DescriptionItemProviderAdapterFactory;
 import org.eclipse.sirius.viewpoint.description.style.provider.StyleItemProviderAdapterFactory;
diff --git a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/sessions/PapyrusLocalSessionCreationOperation.java b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/sessions/PapyrusLocalSessionCreationOperation.java
index 5429094..ef1a82c 100755
--- a/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/sessions/PapyrusLocalSessionCreationOperation.java
+++ b/plugins/infra/siriusdiag/org.eclipse.papyrus.infra.siriusdiag.ui/src/org/eclipse/papyrus/infra/siriusdiag/ui/internal/sessions/PapyrusLocalSessionCreationOperation.java
@@ -27,7 +27,7 @@
 import org.eclipse.sirius.business.api.session.DefaultLocalSessionCreationOperation;
 import org.eclipse.sirius.business.api.session.Session;
 import org.eclipse.sirius.business.api.session.factory.SessionFactory;
-import org.eclipse.sirius.viewpoint.Messages;
+import org.eclipse.sirius.tools.api.Messages;
 
 /**
  * A common operation to create a session and open it.
@@ -43,12 +43,12 @@
 	 * Constructor.
 	 *
 	 * @param sessionResourceURI
-	 *                                       the {@link URI} of the Resource {@link Session} model
+	 *            the {@link URI} of the Resource {@link Session} model
 	 * @param monitor
-	 *                                       {@link IProgressMonitor} to show progression of
-	 *                                       {@link Session} creation
+	 *            {@link IProgressMonitor} to show progression of
+	 *            {@link Session} creation
 	 * @param transactionalEditingDomain
-	 *                                       the editing domain to use
+	 *            the editing domain to use
 	 */
 	public PapyrusLocalSessionCreationOperation(final URI sessionResourceURI, final IProgressMonitor monitor, final TransactionalEditingDomain transactionalEditingDomain) {
 		super(sessionResourceURI, monitor);
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/META-INF/MANIFEST.MF b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/META-INF/MANIFEST.MF
index 3c56095..a010a19 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/META-INF/MANIFEST.MF
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/META-INF/MANIFEST.MF
@@ -5,15 +5,15 @@
 Bundle-Version: 0.7.0.qualifier
 Automatic-Module-Name: org.eclipse.papyrus.uml.sirius.clazz.diagram
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Require-Bundle: org.eclipse.sirius;bundle-version="[6.4.0,7.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)",
+Require-Bundle: org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.ui;bundle-version="[3.119.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
  com.google.guava;bundle-version="[30.1.0,31.0.0)",
- org.eclipse.sirius.ecore.extender;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.ecore.extender;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.emf.transaction;bundle-version="[1.9.0,2.0.0)",
- org.eclipse.sirius.common;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.common;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.uml.sirius.common.diagram;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.uml.profile;bundle-version="[4.2.0,5.0.0)"
 Bundle-Activator: org.eclipse.papyrus.uml.sirius.clazz.diagram.Activator
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java
index c1efadc..745383f 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.clazz.diagram/src/org/eclipse/papyrus/uml/sirius/clazz/diagram/services/ClassDiagramServices.java
@@ -60,9 +60,9 @@
 import org.eclipse.sirius.diagram.DNodeList;
 import org.eclipse.sirius.diagram.DSemanticDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DSemanticDiagramSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DSemanticDiagramSpec;
 import org.eclipse.sirius.viewpoint.DSemanticDecorator;
 import org.eclipse.sirius.viewpoint.FontFormat;
 import org.eclipse.swt.widgets.Display;
@@ -172,8 +172,11 @@
 
 	/**
 	 * Move the given Element
-	 * @param semanticObjectToDrop semantic element to drop
-	 * @param targetContainerView the target container view
+	 * 
+	 * @param semanticObjectToDrop
+	 *            semantic element to drop
+	 * @param targetContainerView
+	 *            the target container view
 	 * @return the element
 	 */
 	public EObject dndElement(EObject semanticObjectToDrop, EObject targetContainerView) {
@@ -186,7 +189,7 @@
 				targetModel = (Model) target;
 			}
 			if (targetModel != null) {
-				targetModel.getPackagedElements().add((PackageableElement)element);
+				targetModel.getPackagedElements().add((PackageableElement) element);
 			}
 
 		}
@@ -195,10 +198,15 @@
 
 	/**
 	 * Create a new Abstraction Link between the source and the target.
-	 * @param context, the current context
-	 * @param sourceview, the source view
-	 * @param source, the semantic source element
-	 * @param target, the semantic target element
+	 * 
+	 * @param context,
+	 *            the current context
+	 * @param sourceview,
+	 *            the source view
+	 * @param source,
+	 *            the semantic source element
+	 * @param target,
+	 *            the semantic target element
 	 * @return nothing
 	 */
 	public static void createAbstractionLink(EObject context, EObject sourceView, Element source, Element target) {
@@ -216,7 +224,9 @@
 
 	/**
 	 * Get diagram root.
-	 * @param context the current context (view)
+	 * 
+	 * @param context
+	 *            the current context (view)
 	 * @return the root diagram owning the element
 	 */
 	private static EObject getDiagramRoot(EObject sourceView) {
@@ -228,9 +238,13 @@
 
 	/**
 	 * Create a new Containment Link between the source and the target
-	 * @param context the current context
-	 * @param source, the source element
-	 * @param target, the target element
+	 * 
+	 * @param context
+	 *            the current context
+	 * @param source,
+	 *            the source element
+	 * @param target,
+	 *            the target element
 	 * @return nothing
 	 */
 	public static void createContainmentLink(EObject context, Element source, Element target) {
@@ -248,7 +262,9 @@
 
 	/**
 	 * Precondition test if sirius diagram or not.
-	 * @param context the current context
+	 * 
+	 * @param context
+	 *            the current context
 	 * @return true if context is a DDiagram
 	 */
 	public boolean isDDiagram(EObject self) {
@@ -257,7 +273,9 @@
 
 	/**
 	 * Test if element is ClassNodeList.
-	 * @param context the current context
+	 * 
+	 * @param context
+	 *            the current context
 	 * @return true if class node list mapping
 	 */
 	public boolean isClassNodeListContainer(EObject self) {
@@ -268,10 +286,12 @@
 			return false;
 		}
 	}
-	
+
 	/**
 	 * Test if element is ClassNodeContainer.
-	 * @param context the current context
+	 * 
+	 * @param context
+	 *            the current context
 	 * @return true if class node container mapping
 	 */
 	public boolean isClassNodeContainer(EObject self) {
@@ -286,7 +306,9 @@
 
 	/**
 	 * Get the target element for the containment link.
-	 * @param context the current context
+	 * 
+	 * @param context
+	 *            the current context
 	 * @return containment link lists
 	 */
 	public static EList<?> getContainmentLinkTarget(Element source) {
@@ -303,7 +325,9 @@
 
 	/**
 	 * Get the feature which will contain the element.
-	 * @param context the current context
+	 * 
+	 * @param context
+	 *            the current context
 	 * @return the name of the feature
 	 */
 	public String getFeatureName(EObject context) {
@@ -317,7 +341,9 @@
 
 	/**
 	 * Precondition check is data type.
-	 * @param context the current context
+	 * 
+	 * @param context
+	 *            the current context
 	 * @return true is DataType and not enumeration or PrimitiveType
 	 */
 	public boolean isDataType(EObject context) {
@@ -327,7 +353,8 @@
 	/**
 	 * Get the feature to contain the element
 	 * 
-	 * @param context the current context
+	 * @param context
+	 *            the current context
 	 * @return the target feature
 	 */
 	public String getTypeTarget(EObject context) {
@@ -341,8 +368,10 @@
 	/**
 	 * Check if the oldcontainer was a class.
 	 * 
-	 * @param context the current context
-	 * @param oldContainer the current context
+	 * @param context
+	 *            the current context
+	 * @param oldContainer
+	 *            the current context
 	 * @return true if the source is a class or an interface
 	 */
 	public boolean ifSourceIsClass(EObject context, EObject oldContainer) {
@@ -356,8 +385,10 @@
 	/**
 	 * Get the feature to contain the element
 	 * 
-	 * @param context the current context
-	 * @param newContainerView the new container view
+	 * @param context
+	 *            the current context
+	 * @param newContainerView
+	 *            the new container view
 	 * @return the target name
 	 */
 	public String getTypeTarget(EObject context, EObject newContainerView) {
@@ -371,19 +402,17 @@
 	/**
 	 * Check if the container is valid or not
 	 * 
-	 * @param context the current context
-	 * @param newContainerView the new container view
+	 * @param context
+	 *            the current context
+	 * @param newContainerView
+	 *            the new container view
 	 * @return true if the container can contain the element to create
 	 */
 	public boolean isValidContainer(EObject context, EObject newContainerView) {
 		if (newContainerView instanceof DSemanticDiagramSpec) {
 			return context.eContainer().equals(((DSemanticDiagramSpec) newContainerView).getTarget());
-
-		} else if (newContainerView instanceof DNodeContainerSpec)
-
-		{
+		} else if (newContainerView instanceof DNodeContainerSpec) {
 			return context.eContainer().equals(((DNodeContainerSpec) newContainerView).getTarget());
-
 		}
 		return false;
 	}
@@ -392,11 +421,16 @@
 	/**
 	 * Check if the source and target are valid
 	 * 
-	 * @param context the current context
-	 * @param sourceView the source view
-	 * @param targetView the target  view
-	 * @param source the semantic source element
-	 * @param target the semantic target element
+	 * @param context
+	 *            the current context
+	 * @param sourceView
+	 *            the source view
+	 * @param targetView
+	 *            the target view
+	 * @param source
+	 *            the semantic source element
+	 * @param target
+	 *            the semantic target element
 	 * @return true if the source and target are valid
 	 */
 	public boolean isValidSourecAndTarget(EObject context, EObject sourceView, EObject targetView, Element source,
@@ -406,9 +440,13 @@
 
 	/**
 	 * Create a new Dependency Link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createDependencyLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -430,9 +468,13 @@
 
 	/**
 	 * Create a new Association Class Link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public AssociationClass createAssociationClassLink(EObject context, EObject sourceView, Element source,
 			Element target) {
@@ -465,9 +507,13 @@
 
 	/**
 	 * Create a new Element Import Link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createElementImportLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -484,9 +530,13 @@
 
 	/**
 	 * Create a new Generalization Link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createGeneralizationLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -503,9 +553,13 @@
 
 	/**
 	 * Create a new Information Flow Link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createInformationFlowLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -534,9 +588,13 @@
 
 	/**
 	 * Create a new Interface Realization Link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public InterfaceRealization createInterfaceRealizationLink(EObject context, EObject sourceView, Element source,
 			Element target) {
@@ -567,9 +625,13 @@
 
 	/**
 	 * Create a new Realization link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createRealizationLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -591,9 +653,13 @@
 
 	/**
 	 * Create a new Substitution link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createSubstitutionLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -612,9 +678,13 @@
 
 	/**
 	 * Create a new Package Import link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createPackageImportLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -632,9 +702,13 @@
 
 	/**
 	 * Create a new Package Merge link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createPackageMergeLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -652,9 +726,13 @@
 
 	/**
 	 * Create a new Usage link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createUsageLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -679,9 +757,13 @@
 
 	/**
 	 * Create a new Generalization Set link.
-	 * @param sourceView the source view
-	 * @param target the semantic target element
-	 * @param targetView the target  view
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param target
+	 *            the semantic target element
+	 * @param targetView
+	 *            the target view
 	 */
 	public void createGeneralizationSetLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (sourceView instanceof DDiagramElement) {
@@ -733,9 +815,13 @@
 
 	/**
 	 * Create a new Link link.
-	 * @param sourceView the source view
-	 * @param source the semantic source element
-	 * @param target the semantic target element
+	 * 
+	 * @param sourceView
+	 *            the source view
+	 * @param source
+	 *            the semantic source element
+	 * @param target
+	 *            the semantic target element
 	 */
 	public void createLink(EObject context, EObject sourceView, Element source, Element target) {
 		if (source instanceof Comment) {
@@ -776,8 +862,11 @@
 
 	/**
 	 * Get the target element of the Link link.
-	 * @param source the semantic source element
-	 * @param target the semantic target element
+	 * 
+	 * @param source
+	 *            the semantic source element
+	 * @param target
+	 *            the semantic target element
 	 */
 	public boolean isNotObservationSourceWithCommentTarget(EObject context, Element source, Element target) {
 		if ((source instanceof TimeObservation || source instanceof DurationObservation) && target instanceof Comment) {
@@ -847,7 +936,8 @@
 	/**
 	 * Compute label for InformationItem
 	 * 
-	 * @param elem the current InformationItem element
+	 * @param elem
+	 *            the current InformationItem element
 	 * @return the label of InformationItem element
 	 */
 	public String buildLabel(Element elem) {
@@ -872,7 +962,8 @@
 	/**
 	 * Get the symbol path for decorator
 	 * 
-	 * @param elem the current  element
+	 * @param elem
+	 *            the current element
 	 * @return the path of symbol to use
 	 */
 
@@ -903,10 +994,15 @@
 
 	/**
 	 * Create a new Instance Specification link.
-	 * @param context the context element
-	 * @param sourceView the source view
-	 * @param source the semantic source element
-	 * @param target the semantic target element
+	 * 
+	 * @param context
+	 *            the context element
+	 * @param sourceView
+	 *            the source view
+	 * @param source
+	 *            the semantic source element
+	 * @param target
+	 *            the semantic target element
 	 * @return the instance specification to create
 	 */
 	public InstanceSpecification createInstanceSpecification(EObject context, EObject sourceView, Element source,
@@ -987,8 +1083,10 @@
 	/**
 	 * Add the new created instance specification to the model
 	 * 
-	 * @param context    the new created instance specification
-	 * @param sourceView the source view
+	 * @param context
+	 *            the new created instance specification
+	 * @param sourceView
+	 *            the source view
 	 */
 	public void addInstanceSpecificationToModel(EObject context, EObject sourceView) {
 		if (sourceView instanceof DDiagramElement) {
@@ -1006,9 +1104,11 @@
 	 * Service used to determine if the selected containment edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectContainmentLinkPrecondition(Element context, Element target) {
@@ -1020,9 +1120,11 @@
 	 * Service used to determine if the selected Dependency edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectDependencyLinkPrecondition(Element context, Element target) {
@@ -1034,9 +1136,11 @@
 	 * Service used to determine if the selected ElementImport edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectElementImportLinkPrecondition(Element context, Element target) {
@@ -1048,9 +1152,11 @@
 	 * Service used to determine if the selected Generalization edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectGeneralizationLinkPrecondition(Element context, Element target) {
@@ -1062,9 +1168,11 @@
 	 * Service used to determine if the selected GeneralizationSet edge target could
 	 * be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectGeneralizationSetLinkPrecondition(Element context, Element target) {
@@ -1075,9 +1183,11 @@
 	 * Service used to determine if the selected InformationFlow edge target could
 	 * be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectInformationFlowLinkPrecondition(Element context, Element target) {
@@ -1089,9 +1199,11 @@
 	 * Service used to determine if the selected InstanceSpecification edge target
 	 * could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectInstanceSpecLinkPrecondition(Element context, Element target) {
@@ -1102,9 +1214,11 @@
 	 * Service used to determine if the selected PackageImport/PackageMerge edge
 	 * source could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectPackageImportMergeLinkSourcePrecondition(Element context, Element newSource) {
@@ -1115,9 +1229,11 @@
 	 * Service used to determine if the selected Realization edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectRealizationLinkPrecondition(Element context, Element newSource) {
@@ -1130,9 +1246,11 @@
 	 * Service used to determine if the selected Substitution edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectSubstitutionLinkPrecondition(Element context, Element newSource) {
@@ -1144,9 +1262,11 @@
 	 * Service used to determine if the selected InterfaceRealization edge source
 	 * could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectInterfaceRealizationLinkSourcePrecondition(Element context, Element newSource) {
@@ -1157,9 +1277,11 @@
 	 * Service used to determine if the selected InterfaceRealization edge target
 	 * could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newTarget  Represents the target element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newTarget
+	 *            Represents the target element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectInterfaceRealizationLinkTargetPrecondition(Element context, Element newTarget) {
@@ -1170,9 +1292,11 @@
 	 * Service used to determine if the selected Usage edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectUsageLinkPrecondition(Element context, Element newSource) {
@@ -1184,9 +1308,11 @@
 	 * Service used to determine if the selected Link edge source could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectLinkSourcePrecondition(Element context, Element newSource) {
@@ -1197,9 +1323,11 @@
 	 * Service used to determine if the selected Link edge target could be
 	 * reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newSource  Represents the source element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newSource
+	 *            Represents the source element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectLinkTargetPrecondition(Element context, Element newSource) {
@@ -1212,9 +1340,11 @@
 	 * Service used to determine if the selected PackageImport/PackageMerge edge
 	 * target could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param newTarget  Represents the target element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param newTarget
+	 *            Represents the target element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectPackageImportMergeLinkTargetPrecondition(Element context, Element newtarget) {
@@ -1225,9 +1355,11 @@
 	 * Service used to determine if the selected Association edge source/target
 	 * could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectAssociationLinkPrecondition(Element context, Element target) {
@@ -1239,9 +1371,11 @@
 	 * Service used to determine if the selected Abstraction edge source/target
 	 * could be reconnected to an element.
 	 *
-	 * @param context Element attached to the existing edge
-	 * @param target  Represents the semantic element pointed by the edge after
-	 *                reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return true if the edge could be reconnected
 	 */
 	public boolean reconnectAbstractionLinkPrecondition(Element context, Element target) {
@@ -1252,16 +1386,22 @@
 	/**
 	 * Service used to reconnect a Containment edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param sourceView Represents the graphical element pointed by the edge before
-	 *                   reconnecting
-	 * @param targetView Represents the graphical element pointed by the edge after
-	 *                   reconnecting
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param sourceView
+	 *            Represents the graphical element pointed by the edge before
+	 *            reconnecting
+	 * @param targetView
+	 *            Represents the graphical element pointed by the edge after
+	 *            reconnecting
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectContainmentEdgeSource(Element context, DEdge edgeView, EdgeTarget sourceView,
@@ -1296,16 +1436,22 @@
 	/**
 	 * Service used to reconnect a Containment edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param sourceView Represents the graphical element pointed by the edge before
-	 *                   reconnecting
-	 * @param targetView Represents the graphical element pointed by the edge after
-	 *                   reconnecting
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param sourceView
+	 *            Represents the graphical element pointed by the edge before
+	 *            reconnecting
+	 * @param targetView
+	 *            Represents the graphical element pointed by the edge after
+	 *            reconnecting
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectContainmentEdgeTarget(Element context, DEdge edgeView, EdgeTarget sourceView,
@@ -1351,11 +1497,14 @@
 	/**
 	 * Service used to reconnect a Dependency edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectDependencyEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1383,16 +1532,22 @@
 	/**
 	 * Service used to reconnect a Containment edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param sourceView Represents the graphical element pointed by the edge before
-	 *                   reconnecting
-	 * @param targetView Represents the graphical element pointed by the edge after
-	 *                   reconnecting
-	 * @param source     Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param target     Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param sourceView
+	 *            Represents the graphical element pointed by the edge before
+	 *            reconnecting
+	 * @param targetView
+	 *            Represents the graphical element pointed by the edge after
+	 *            reconnecting
+	 * @param source
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectDependencyEdgeTarget(Element context, DEdge edgeView, EdgeTarget sourceView,
@@ -1405,16 +1560,22 @@
 	/**
 	 * Service used to reconnect an ElementImport edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param sourceView Represents the graphical element pointed by the edge before
-	 *                   reconnecting
-	 * @param targetView Represents the graphical element pointed by the edge after
-	 *                   reconnecting
-	 * @param source     Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param target     Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param sourceView
+	 *            Represents the graphical element pointed by the edge before
+	 *            reconnecting
+	 * @param targetView
+	 *            Represents the graphical element pointed by the edge after
+	 *            reconnecting
+	 * @param source
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectElementImportEdgeSource(Element context, Element source, Element target) {
@@ -1426,10 +1587,12 @@
 	/**
 	 * Service used to reconnect an ElementImport edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 *                   reconnecting
-	 * @param target     Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 *            reconnecting
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectElementImportEdgeTarget(Element context, Element source, Element target) {
@@ -1440,11 +1603,14 @@
 	/**
 	 * Service used to reconnect a Generalization edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param source     Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param target     Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param source
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectGeneralizationEdgeSource(Element context, Element source, Element target) {
@@ -1456,11 +1622,14 @@
 	/**
 	 * Service used to reconnect a Generalization edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param source     Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param target     Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param source
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectGeneralizationEdgeTarget(Element context, Element source, Element target) {
@@ -1471,11 +1640,14 @@
 	/**
 	 * Service used to reconnect a GeneralizationSet edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectGeneralizationSetEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1500,11 +1672,14 @@
 	/**
 	 * Service used to reconnect a GeneralizationSet edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectGeneralizationSetEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1526,11 +1701,14 @@
 	/**
 	 * Service used to reconnect an InformationFlow edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectInformationFlowEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1556,11 +1734,14 @@
 	/**
 	 * Service used to reconnect an informationFlow edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectInformationFlowEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1572,11 +1753,14 @@
 	/**
 	 * Service used to reconnect an InstanceSpecifictaion edge source/target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectInstanceSpecEdge(Element context, Element oldSource, Element newSource) {
@@ -1589,11 +1773,14 @@
 	/**
 	 * Service used to reconnect an PacakgeImport edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectPackageImportEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1605,11 +1792,14 @@
 	/**
 	 * Service used to reconnect a PacakgeImport edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectPackageImportEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1620,11 +1810,14 @@
 	/**
 	 * Service used to reconnect a PackageMerge edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectPackageMergeEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1636,11 +1829,14 @@
 	/**
 	 * Service used to reconnect a PackageMerge edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectPackageMergeEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1651,11 +1847,14 @@
 	/**
 	 * Service used to reconnect a Realization edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 
@@ -1681,11 +1880,14 @@
 	/**
 	 * Service used to reconnect a Realization edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectRealizationEdgeTarget(Element context, Element source, Element target) {
@@ -1697,11 +1899,14 @@
 	/**
 	 * Service used to reconnect a Substitution edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectSubstitutionEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1716,11 +1921,14 @@
 	/**
 	 * Service used to reconnect a Substitution edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectSubstitutionEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1733,11 +1941,14 @@
 	/**
 	 * Service used to reconnect a InterfaceRealization edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectInterfaceRealizationEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1752,11 +1963,14 @@
 	/**
 	 * Service used to reconnect a InterfaceRealization edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectInterfaceRealizationEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1769,11 +1983,14 @@
 	/**
 	 * Service used to reconnect a Usage edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectUsageEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1798,11 +2015,14 @@
 	/**
 	 * Service used to reconnect a Usage edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param source     Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param target     Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param source
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param target
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectUsageEdgeTarget(Element context, Element source, Element target) {
@@ -1814,12 +2034,16 @@
 	/**
 	 * Service used to reconnect a Link edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param oldsource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param oldsource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectLinkEdgeSource(Element context, DEdge edgeView, Element oldSource, Element newSource) {
@@ -1851,12 +2075,16 @@
 	/**
 	 * Service used to reconnect a Link edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectLinkEdgeTarget(Element context, DEdge edgeView, Element oldTarget, Element newTarget) {
@@ -1879,11 +2107,14 @@
 	/**
 	 * Service used to reconnect a Abstraction edge source.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectAbstractionEdgeSource(Element context, Element oldSource, Element newSource) {
@@ -1895,11 +2126,14 @@
 	/**
 	 * Service used to reconnect a Abstraction edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectAbstractionEdgeTarget(Element context, Element oldTarget, Element newTarget) {
@@ -1911,12 +2145,16 @@
 	/**
 	 * Service used to reconnect a Link edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param oldSource  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newSource  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param oldSource
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newSource
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectAssociationEdgeSource(Element context, DEdge edgeView, Element oldSource, Element newSource) {
@@ -1979,8 +2217,10 @@
 	/**
 	 * Find an attribute in a list of attributes
 	 * 
-	 * @param attributes list of attributes
-	 * @param target     the searched attribute
+	 * @param attributes
+	 *            list of attributes
+	 * @param target
+	 *            the searched attribute
 	 * @return the found attribute
 	 */
 	private Property findAttributToBeModified(EList<Property> attributes, Element target) {
@@ -1996,12 +2236,16 @@
 	/**
 	 * Service used to reconnect a Link edge target.
 	 *
-	 * @param context    Element attached to the existing edge
-	 * @param edgeView   Represents the graphical new edge
-	 * @param oldTarget  Represents the semantic element pointed by the edge before
-	 *                   reconnecting
-	 * @param newTarget  Represents the semantic element pointed by the edge after
-	 *                   reconnecting
+	 * @param context
+	 *            Element attached to the existing edge
+	 * @param edgeView
+	 *            Represents the graphical new edge
+	 * @param oldTarget
+	 *            Represents the semantic element pointed by the edge before
+	 *            reconnecting
+	 * @param newTarget
+	 *            Represents the semantic element pointed by the edge after
+	 *            reconnecting
 	 * @return the Element attached to the edge once it has been modified
 	 */
 	public void reconnectAssociationEdgeTarget(Element context, DEdge edgeView, Element oldTarget, Element newTarget) {
@@ -2048,7 +2292,8 @@
 	 * Check if the current element is instance of instance specification Link or
 	 * Class.
 	 * 
-	 * @param elem the current element to be checked
+	 * @param elem
+	 *            the current element to be checked
 	 * @return true if instance specification Class, otherwise return false
 	 */
 	public boolean isNotInstanceSpecificationLink(Element elem) {
@@ -2059,7 +2304,8 @@
 	 * Check if the current element is instance of instance specification Link or
 	 * Class.
 	 * 
-	 * @param elem the current element to be checked
+	 * @param elem
+	 *            the current element to be checked
 	 * @return true if instance specification Class, otherwise return false
 	 */
 	public boolean isInstanceSpecificationEdge(EObject elem) {
@@ -2074,7 +2320,8 @@
 	/**
 	 * Get the target element of the instance specification link.
 	 * 
-	 * @param elem the instance specification Link
+	 * @param elem
+	 *            the instance specification Link
 	 * @return the target element of the current instance specification link
 	 */
 	public EObject getTargetOfInstanceSpecification(EObject elem) {
@@ -2094,7 +2341,8 @@
 	/**
 	 * Get the source element of the instance specification link.
 	 * 
-	 * @param elem the instance specification Link
+	 * @param elem
+	 *            the instance specification Link
 	 * @return the source element of the current instance specification link
 	 */
 	public EObject getSourceOfInstanceSpecification(EObject elem) {
@@ -2114,7 +2362,8 @@
 	/**
 	 * Compute the label of the given association.
 	 *
-	 * @param association the {@link Association} for which to retrieve a label.
+	 * @param association
+	 *            the {@link Association} for which to retrieve a label.
 	 * @return the computed label.
 	 */
 	public String computeAssociationBeginLabel(Association association) {
@@ -2128,7 +2377,8 @@
 	/**
 	 * Compute the association edge begin name
 	 * 
-	 * @param association the current association
+	 * @param association
+	 *            the current association
 	 * @return the begin name
 	 */
 	public String computeAssociationClassBeginLabel(Association association) {
@@ -2139,7 +2389,8 @@
 	/**
 	 * Compute the association edge end name
 	 * 
-	 * @param association the current association
+	 * @param association
+	 *            the current association
 	 * @return the end name
 	 */
 	public String computeAssociationClassEndLabel(Association association) {
@@ -2150,7 +2401,8 @@
 	/**
 	 * Compute the instance specification edge begin name
 	 * 
-	 * @param context the current instance specification
+	 * @param context
+	 *            the current instance specification
 	 * @return the begin name
 	 */
 	public String computeInstanceSpecBeginLabel(EObject context) {
@@ -2163,7 +2415,8 @@
 	/**
 	 * Compute the instance specification edge end name
 	 * 
-	 * @param context the current instance specification
+	 * @param context
+	 *            the current instance specification
 	 * @return the end name
 	 */
 	public String computeInstanceSpecEndLabel(EObject context) {
@@ -2176,7 +2429,8 @@
 	/**
 	 * Compute the label of the given association.
 	 *
-	 * @param association the {@link Association} for which to retrieve a label.
+	 * @param association
+	 *            the {@link Association} for which to retrieve a label.
 	 * @return the computed label.
 	 */
 	public String computeAssociationEndLabel(Association association) {
@@ -2187,7 +2441,8 @@
 	 * Compute label forn_ary association edge.
 	 *
 	 * @param association
-	 * @param view        edge
+	 * @param view
+	 *            edge
 	 * @return label
 	 */
 	public String computeAssociationNAryBeginLabel(Association association, DDiagramElement view) {
@@ -2197,8 +2452,10 @@
 	/**
 	 * Create an association between two elements.
 	 *
-	 * @param source association source
-	 * @param target association target
+	 * @param source
+	 *            association source
+	 * @param target
+	 *            association target
 	 * @return The association
 	 */
 	private Association createAssociation(Element source, Element target, int assocType) {
@@ -2255,11 +2512,16 @@
 	/**
 	 * Create a new association.
 	 *
-	 * @param object     Object
-	 * @param source     selected source
-	 * @param target     selected Target
-	 * @param sourceView Source view
-	 * @param targetView Target view
+	 * @param object
+	 *            Object
+	 * @param source
+	 *            selected source
+	 * @param target
+	 *            selected Target
+	 * @param sourceView
+	 *            Source view
+	 * @param targetView
+	 *            Target view
 	 * @return Association
 	 */
 	public Association createAssociation(EObject object, Element source, Element target, EObject sourceView,
@@ -2286,8 +2548,10 @@
 	/**
 	 * Add an end to an existing association.
 	 *
-	 * @param source Association or element
-	 * @param target element or association
+	 * @param source
+	 *            Association or element
+	 * @param target
+	 *            element or association
 	 */
 	private Association createAssociationAddEnd(Element source, Element target) {
 		Association association;
@@ -2313,7 +2577,8 @@
 	/**
 	 * Precondition for n-ary association creation.
 	 *
-	 * @param object selected association
+	 * @param object
+	 *            selected association
 	 * @return true if association is binary and no end have no qualifiers
 	 */
 	public boolean createNaryAssociationPrecondition(EObject object) {
@@ -2323,7 +2588,8 @@
 	/**
 	 * Create an operation in a class.
 	 *
-	 * @param type the container {@link org.eclipse.uml2.uml.Type} element
+	 * @param type
+	 *            the container {@link org.eclipse.uml2.uml.Type} element
 	 * @return New operation
 	 */
 	public Operation createOperation(org.eclipse.uml2.uml.Type type) {
@@ -2333,7 +2599,8 @@
 	/**
 	 * Create new qualifier for association
 	 *
-	 * @param association selected association
+	 * @param association
+	 *            selected association
 	 */
 	public void createQualifier(Association association) {
 		// Display a selection pop-up to choose the end
@@ -2362,8 +2629,10 @@
 	/**
 	 * Delete selected edge fron a N-Ary association
 	 *
-	 * @param association association
-	 * @param element     edge to delete
+	 * @param association
+	 *            association
+	 * @param element
+	 *            edge to delete
 	 */
 	public void deleteNAryAssociation(Association association, DDiagramElement element) {
 		if (isNary(association)) {
@@ -2376,8 +2645,10 @@
 	/**
 	 * Edit the qualifier label
 	 *
-	 * @param context            property association end element
-	 * @param editedLabelContent edit label content
+	 * @param context
+	 *            property association end element
+	 * @param editedLabelContent
+	 *            edit label content
 	 * @return end
 	 */
 	public Element editQualifierLabel(Property context, String editedLabelContent) {
@@ -2415,8 +2686,10 @@
 	 * Iterate over the given {@link Collection} of root elements to find a
 	 * {@link Type} element with the given name.
 	 *
-	 * @param roots    the elements to inspect
-	 * @param typeName the name to match
+	 * @param roots
+	 *            the elements to inspect
+	 * @param typeName
+	 *            the name to match
 	 * @return the found {@link Type} or <code>null</code>
 	 */
 	public Type findTypeByName(Collection<EObject> roots, String typeName) {
@@ -2427,8 +2700,10 @@
 	 * With the given {@link EObject} iterate over root elements to find a
 	 * {@link Type} element with the given name.
 	 *
-	 * @param object   the elements to inspect
-	 * @param typeName the name to match
+	 * @param object
+	 *            the elements to inspect
+	 * @param typeName
+	 *            the name to match
 	 * @return the found {@link Type} or <code>null</code>
 	 */
 	public Type findTypeByName(EObject object, String typeName) {
@@ -2479,9 +2754,12 @@
 	/**
 	 * Fix association.
 	 *
-	 * @param host Host
-	 * @param a    Association
-	 * @param b    Association
+	 * @param host
+	 *            Host
+	 * @param a
+	 *            Association
+	 * @param b
+	 *            Association
 	 */
 	public void fixAssociation(EObject host, EObject a, EObject b) {
 		if (a instanceof Association && b instanceof Type) {
@@ -2494,7 +2772,8 @@
 	/**
 	 * Get abstract label format.
 	 *
-	 * @param object EObject
+	 * @param object
+	 *            EObject
 	 * @return Abstract label format
 	 */
 	public List<FontFormat> getAbstractBoldLabelFormat(EObject object) {
@@ -2508,7 +2787,8 @@
 	/**
 	 * Get abstract label format.
 	 *
-	 * @param object EObject
+	 * @param object
+	 *            EObject
 	 * @return Abstract label format
 	 */
 	public FontFormat getAbstractItalicLabelFormat(EObject object) {
@@ -2519,7 +2799,8 @@
 	/**
 	 * Get all the stereotype applications according to the selected diagram.
 	 *
-	 * @param diagram Current diagram
+	 * @param diagram
+	 *            Current diagram
 	 * @return Stereotype applications
 	 */
 	public Collection<Object> getAllStereotypeApplications(DDiagram diagram) {
@@ -2530,8 +2811,10 @@
 	/**
 	 * Get list of association. Check in diagram only two ends are presents.
 	 *
-	 * @param container package
-	 * @param diagram   diagram
+	 * @param container
+	 *            package
+	 * @param diagram
+	 *            diagram
 	 * @return list of binary association
 	 */
 	public List<Association> getAssociation(Package container, DDiagram diagram) {
@@ -2551,7 +2834,8 @@
 	 * displayed as node in a Diagram. Note that a Property cross reference will
 	 * lead to retrieve the cross references of this property.
 	 *
-	 * @param diagram a diagram.
+	 * @param diagram
+	 *            a diagram.
 	 * @return the list of cross reference of the given
 	 */
 	public Collection<EObject> getAssociationInverseRefs(DDiagram diagram) {
@@ -2561,7 +2845,8 @@
 	/**
 	 * Get base class associated to a stereotype application.
 	 *
-	 * @param stereotypeApplication Stereotype application
+	 * @param stereotypeApplication
+	 *            Stereotype application
 	 * @return Base class
 	 */
 	public Element getBaseClass(EObject stereotypeApplication) {
@@ -2571,7 +2856,8 @@
 	/**
 	 * Get broken associations.
 	 *
-	 * @param container the current container.
+	 * @param container
+	 *            the current container.
 	 * @return a list of association which might be considered as "broken", we are
 	 *         not able to display them as edges.
 	 */
@@ -2589,8 +2875,10 @@
 	 * Get list of n-ary association. Check in diagram if more than two ends are
 	 * presents.
 	 *
-	 * @param container package
-	 * @param diagram   diagram
+	 * @param container
+	 *            package
+	 * @param diagram
+	 *            diagram
 	 * @return list of n-ary association
 	 */
 	public List<Association> getNAryAssociation(Package container, DDiagram diagram) {
@@ -2611,7 +2899,8 @@
 	/**
 	 * Get source for n-ary association.
 	 *
-	 * @param association association
+	 * @param association
+	 *            association
 	 * @return list of source.
 	 */
 	public EList<Type> getNAryAssociationSource(Association association) {
@@ -2621,7 +2910,8 @@
 	/**
 	 * Get navigable owned end of an association
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return Association
 	 */
 	public List<Property> getNavigableOwnedEnds(Association association) {
@@ -2640,7 +2930,8 @@
 	/**
 	 * Return a set of classes from model.
 	 *
-	 * @param element an element in model
+	 * @param element
+	 *            an element in model
 	 * @return set of classes or empty collection
 	 */
 	public Collection<Class> getSemanticCandidatesClasses(Element element) {
@@ -2658,8 +2949,10 @@
 	/**
 	 * Get association end qualifier for a classifier.
 	 *
-	 * @param classifier association end
-	 * @param diagram    Diagram
+	 * @param classifier
+	 *            association end
+	 * @param diagram
+	 *            Diagram
 	 * @return List of qualifier
 	 */
 	public List<Property> getSemanticCandidatesQualifier(Classifier classifier, DDiagram diagram) {
@@ -2680,8 +2973,10 @@
 	/**
 	 * Get the type of the association source end.
 	 *
-	 * @param association association
-	 * @param diagram     diagram
+	 * @param association
+	 *            association
+	 * @param diagram
+	 *            diagram
 	 * @return type of the source
 	 */
 	public Element getSourceType(Association association, DDiagram diagram) {
@@ -2706,7 +3001,8 @@
 	/**
 	 * Get stereotype application label.
 	 *
-	 * @param stereotypeApplication Stereotype application
+	 * @param stereotypeApplication
+	 *            Stereotype application
 	 * @return The stereotype name.
 	 */
 	public String getStereotypeApplicationLabel(EObject stereotypeApplication) {
@@ -2717,8 +3013,10 @@
 	/**
 	 * Get tagged value label.
 	 *
-	 * @param feature Feature
-	 * @param view    Stereotype application view
+	 * @param feature
+	 *            Feature
+	 * @param view
+	 *            Stereotype application view
 	 * @return Tagged value label featureName = value
 	 */
 	public String getTaggedValueLabel(EStructuralFeature feature, DDiagramElement view) {
@@ -2731,7 +3029,8 @@
 	/**
 	 * Get tagged values.
 	 *
-	 * @param stereotypeApplication Container
+	 * @param stereotypeApplication
+	 *            Container
 	 * @return Collection of tagged values
 	 */
 	public Collection<Object> getTaggedValues(EObject stereotypeApplication) {
@@ -2748,7 +3047,8 @@
 	/**
 	 * Get the list of broken ends.
 	 *
-	 * @param association association
+	 * @param association
+	 *            association
 	 * @return List
 	 */
 	public List<Type> getTargetBrokenAssociationToClasse(Association association) {
@@ -2761,8 +3061,10 @@
 	/**
 	 * Get the type of the association target end.
 	 *
-	 * @param association association
-	 * @param diagram     diagram
+	 * @param association
+	 *            association
+	 * @param diagram
+	 *            diagram
 	 * @return Type of the target
 	 */
 	public Element getTargetType(Association association, DDiagram diagram) {
@@ -2804,7 +3106,8 @@
 	 * displayed as node in a Diagram. Note that a Property cross reference will
 	 * lead to retrieve the cross references of this property.
 	 *
-	 * @param diagram a diagram.
+	 * @param diagram
+	 *            a diagram.
 	 * @return the list of cross reference of the given
 	 */
 	public Collection<EObject> getTemplateBindingInverseRefs(DDiagram diagram) {
@@ -2814,8 +3117,10 @@
 	/**
 	 * Return collection of visible association class in a diagram.
 	 *
-	 * @param diagram   Diagram
-	 * @param container Container of the associationClass
+	 * @param diagram
+	 *            Diagram
+	 * @param container
+	 *            Container of the associationClass
 	 * @return Set of visible association Classes or empty collection
 	 */
 	public Collection<EObject> getVisibleAssociationClass(DSemanticDiagram diagram, EObject container) {
@@ -2888,7 +3193,8 @@
 	/**
 	 * Check an element is not a Class.
 	 *
-	 * @param element Element
+	 * @param element
+	 *            Element
 	 * @return return true if the element is not a Class
 	 */
 	public boolean isNotTypeOfClass(EObject element) {
@@ -2898,7 +3204,8 @@
 	/**
 	 * Check if an element is a package.
 	 *
-	 * @param element Element
+	 * @param element
+	 *            Element
 	 * @return True if element is a package
 	 */
 	public boolean isPackage(EObject element) {
@@ -2908,7 +3215,8 @@
 	/**
 	 * Check is a feature is static.
 	 *
-	 * @param feature Feature
+	 * @param feature
+	 *            Feature
 	 * @return True if it is a static feature
 	 */
 	public boolean isStatic(Feature feature) {
@@ -2918,7 +3226,8 @@
 	/**
 	 * Check if an element is type of class.
 	 *
-	 * @param element Element
+	 * @param element
+	 *            Element
 	 * @return True if element is a class
 	 */
 	public boolean isTypeOfClass(EObject element) {
@@ -2946,8 +3255,10 @@
 	/**
 	 * Check if an association can be created.
 	 *
-	 * @param self      association
-	 * @param preSource selected element
+	 * @param self
+	 *            association
+	 * @param preSource
+	 *            selected element
 	 * @return true if valid
 	 */
 	public boolean isValidAssociation(EObject self, Element preSource) {
@@ -2968,9 +3279,12 @@
 	 * association. If an association is selected is should not be an aggregation or
 	 * a composite
 	 *
-	 * @param self      association
-	 * @param preSource User select element as source
-	 * @param preTarget user select element as target
+	 * @param self
+	 *            association
+	 * @param preSource
+	 *            User select element as source
+	 * @param preTarget
+	 *            user select element as target
 	 * @return true if valid
 	 */
 	public boolean isValidAssociation(EObject self, Element preSource, Element preTarget) {
@@ -3005,9 +3319,12 @@
 	 * association. If an association is selected is should not be an aggregation or
 	 * a composite
 	 *
-	 * @param self      association
-	 * @param preSource User select element as source
-	 * @param preTarget user select element as target
+	 * @param self
+	 *            association
+	 * @param preSource
+	 *            User select element as source
+	 * @param preTarget
+	 *            user select element as target
 	 * @return true if valid
 	 */
 	public boolean isValidNaryAssociation(EObject self, Element preSource, Element preTarget) {
@@ -3022,7 +3339,8 @@
 	/**
 	 * Check is an association source is composite.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if source is composite
 	 */
 	public boolean sourceIsComposite(Association association) {
@@ -3032,8 +3350,10 @@
 	/**
 	 * Check is an association source is navigable.
 	 *
-	 * @param association Association
-	 * @param element     Edge element
+	 * @param association
+	 *            Association
+	 * @param element
+	 *            Edge element
 	 * @return True if source is navigable
 	 */
 	public boolean sourceIsNavigable(Association association, DDiagramElement element) {
@@ -3043,7 +3363,8 @@
 	/**
 	 * Check is an association source is navigable and composite.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if source is navigable and composite
 	 */
 	public boolean sourceIsNavigableAndTargetIsComposite(Association association) {
@@ -3053,7 +3374,8 @@
 	/**
 	 * Check is an association source is navigable and shared.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if source is navigable and shared
 	 */
 	public boolean sourceIsNavigableAndTargetIsShared(Association association) {
@@ -3063,7 +3385,8 @@
 	/**
 	 * Check is an association source is shared.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if source is shared
 	 */
 	public boolean sourceIsShared(Association association) {
@@ -3073,7 +3396,8 @@
 	/**
 	 * Check is an association target is composite.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if target is composite
 	 */
 	public boolean targetIsComposite(Association association) {
@@ -3083,7 +3407,8 @@
 	/**
 	 * Check is an association target is navigable.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if target is navigable
 	 */
 	public boolean targetIsNavigable(Association association) {
@@ -3093,7 +3418,8 @@
 	/**
 	 * Check is an association target is navigable and composite.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if target is navigable and composite
 	 */
 	public boolean targetIsNavigableAndSourceIsComposite(Association association) {
@@ -3103,7 +3429,8 @@
 	/**
 	 * Check is an association target is navigable and shared.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if target is navigable and shared
 	 */
 	public boolean targetIsNavigableAndSourceIsShared(Association association) {
@@ -3113,7 +3440,8 @@
 	/**
 	 * Check is an association target is shared.
 	 *
-	 * @param association Association
+	 * @param association
+	 *            Association
 	 * @return True if target is shared
 	 */
 	public boolean targetIsShared(Association association) {
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/META-INF/MANIFEST.MF b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/META-INF/MANIFEST.MF
index af2b00e..91b70d6 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/META-INF/MANIFEST.MF
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/META-INF/MANIFEST.MF
@@ -5,16 +5,16 @@
 Bundle-Version: 0.7.0.qualifier
 Automatic-Module-Name: org.eclipse.papyrus.uml.sirius.common.diagram
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Require-Bundle: org.eclipse.sirius;bundle-version="[6.4.2,7.0.0)",
+Require-Bundle: org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
  com.google.guava;bundle-version="[30.1.0,31.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
  org.eclipse.draw2d;bundle-version="[3.10.0,4.0.0)",
- org.eclipse.sirius.common;bundle-version="[6.4.0,7.0.0)",
- org.eclipse.sirius.common.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.ecore.extender;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.common;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ecore.extender;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
  org.eclipse.ui;bundle-version="[3.119.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)",
@@ -22,11 +22,11 @@
  org.eclipse.gef;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.papyrus.infra.ui;bundle-version="[3.1.1,4.0.0)",
  org.eclipse.ui.workbench;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.9.0,2.0.0)",
  org.eclipse.gmf.runtime.draw2d.ui;bundle-version="[1.9.1,2.0.0)",
  org.eclipse.ui.ide;bundle-version="[3.18.100,4.0.0)",
- org.eclipse.sirius.common.ui;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.common.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.services.edit;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.papyrus.infra.core;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.papyrus.infra.types;bundle-version="[5.0.0,6.0.0)",
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AbstractDiagramServices.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AbstractDiagramServices.java
index a9a0765..a32322b 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AbstractDiagramServices.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AbstractDiagramServices.java
@@ -19,9 +19,7 @@
 import java.util.List;
 
 import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.edit.command.AddCommand;
 import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.command.SetCommand;
@@ -31,47 +29,25 @@
 import org.eclipse.sirius.business.api.session.SessionManager;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DEdge;
 import org.eclipse.sirius.diagram.DSemanticDiagram;
-import org.eclipse.sirius.diagram.EdgeTarget;
 import org.eclipse.sirius.diagram.business.api.helper.graphicalfilters.HideFilterHelper;
 import org.eclipse.sirius.diagram.business.api.query.DDiagramElementQuery;
 import org.eclipse.sirius.diagram.business.internal.helper.task.operations.CreateViewTask;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.description.AbstractNodeMapping;
 import org.eclipse.sirius.diagram.description.DiagramElementMapping;
 import org.eclipse.sirius.diagram.description.tool.CreateView;
 import org.eclipse.sirius.diagram.description.tool.ToolFactory;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
 import org.eclipse.sirius.ecore.extender.business.api.accessor.exception.FeatureNotFoundException;
 import org.eclipse.sirius.ecore.extender.business.api.accessor.exception.MetaClassNotFoundException;
 import org.eclipse.sirius.tools.api.command.CommandContext;
 import org.eclipse.sirius.viewpoint.DRepresentation;
 import org.eclipse.sirius.viewpoint.DSemanticDecorator;
-import org.eclipse.uml2.uml.Artifact;
-import org.eclipse.uml2.uml.Association;
-import org.eclipse.uml2.uml.Class;
-import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.Connector;
-import org.eclipse.uml2.uml.ConnectorEnd;
-import org.eclipse.uml2.uml.Dependency;
-import org.eclipse.uml2.uml.Deployment;
 import org.eclipse.uml2.uml.Element;
-import org.eclipse.uml2.uml.EncapsulatedClassifier;
-import org.eclipse.uml2.uml.ExecutionEnvironment;
-import org.eclipse.uml2.uml.Feature;
-import org.eclipse.uml2.uml.Generalization;
-import org.eclipse.uml2.uml.Interface;
-import org.eclipse.uml2.uml.InterfaceRealization;
-import org.eclipse.uml2.uml.Manifestation;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.Package;
-import org.eclipse.uml2.uml.PackageImport;
-import org.eclipse.uml2.uml.PackageableElement;
-import org.eclipse.uml2.uml.Port;
-import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Stereotype;
 import org.eclipse.uml2.uml.UMLPackage;
 import org.eclipse.uml2.uml.UseCase;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AssociationServices.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AssociationServices.java
index 594baf3..35df490 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AssociationServices.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/core/services/AssociationServices.java
@@ -23,8 +23,8 @@
 import org.eclipse.sirius.diagram.DDiagramElement;
 import org.eclipse.sirius.diagram.DEdge;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.AggregationKind;
 import org.eclipse.uml2.uml.Association;
 import org.eclipse.uml2.uml.Classifier;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/refresh/CommonDiagramRefreshExtension.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/refresh/CommonDiagramRefreshExtension.java
index e5a3d88..a35f4d3 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/refresh/CommonDiagramRefreshExtension.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/refresh/CommonDiagramRefreshExtension.java
@@ -66,7 +66,7 @@
 import org.eclipse.sirius.diagram.ui.internal.refresh.GMFHelper;
 import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
 import org.eclipse.sirius.ext.base.Option;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
+import org.eclipse.sirius.tools.api.SiriusPlugin;
 import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
 
 /**
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/services/DiagramServices.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/services/DiagramServices.java
index 14027a4..b1a31c0 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/services/DiagramServices.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.common.diagram/src/org/eclipse/papyrus/uml/sirius/common/diagram/services/DiagramServices.java
@@ -40,8 +40,6 @@
 import org.eclipse.sirius.diagram.business.api.componentization.DiagramMappingsManager;
 import org.eclipse.sirius.diagram.business.api.componentization.DiagramMappingsManagerRegistry;
 import org.eclipse.sirius.diagram.business.internal.helper.decoration.DecorationHelperInternal;
-import org.eclipse.sirius.diagram.business.internal.metamodel.helper.MappingHelper;
-import org.eclipse.sirius.diagram.business.internal.metamodel.operations.DDiagramSpecOperations;
 import org.eclipse.sirius.diagram.business.internal.sync.DDiagramElementSynchronizer;
 import org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer;
 import org.eclipse.sirius.diagram.business.internal.sync.DEdgeCandidate;
@@ -55,8 +53,10 @@
 import org.eclipse.sirius.diagram.description.MappingBasedDecoration;
 import org.eclipse.sirius.diagram.description.NodeMapping;
 import org.eclipse.sirius.diagram.description.filter.FilterDescription;
+import org.eclipse.sirius.diagram.model.business.internal.helper.MappingHelper;
+import org.eclipse.sirius.diagram.model.business.internal.operations.DDiagramSpecOperations;
 import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
+import org.eclipse.sirius.tools.api.SiriusPlugin;
 import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
 import org.eclipse.sirius.viewpoint.description.SemanticBasedDecoration;
 
@@ -166,7 +166,7 @@
 	}
 
 	public EdgeMapping getEdgeMapping(final DiagramDescription description, String mappingName) {
-		for (final EdgeMapping edgeMapping : description.getAllEdgeMappings()) {
+		for (final EdgeMapping edgeMapping : description.getEdgeMappings()) {
 			if (edgeMapping.getName().equals(mappingName)) {
 				return edgeMapping;
 			}
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.diagram.architecture/META-INF/MANIFEST.MF b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.diagram.architecture/META-INF/MANIFEST.MF
index 1460711..a47c3f3 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.diagram.architecture/META-INF/MANIFEST.MF
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.diagram.architecture/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.papyrus.infra.architecture;bundle-version="[3.1.0,4.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.representation.architecture;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.representation;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.0,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.uml.diagram.common;bundle-version="[5.0.0,6.0.0)",
  org.eclipse.papyrus.uml.diagram.activity;bundle-version="[5.0.0,6.0.0)",
  org.eclipse.papyrus.uml.diagram.clazz;bundle-version="[5.0.0,6.0.0)",
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/META-INF/MANIFEST.MF b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/META-INF/MANIFEST.MF
index 0fb5f30..bc1286c 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/META-INF/MANIFEST.MF
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/META-INF/MANIFEST.MF
@@ -4,16 +4,16 @@
 Bundle-Version: 0.7.0.qualifier
 Require-Bundle: org.eclipse.ui;bundle-version="[3.119.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.20.100,4.0.0)",
- org.eclipse.sirius;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.sequence;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.sequence;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
  com.google.guava;bundle-version="[27.1.0,31.0.0)",
  org.eclipse.papyrus.uml.sirius.common.diagram;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.9.0,2.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.sequence.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.common;bundle-version="[6.4.2,7.0.0)"
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.sequence.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common;bundle-version="[7.0.0,8.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-Activator: org.eclipse.papyrus.uml.sirius.sequence.diagram.Activator
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/provider/SiriusGraphicalNodeEditPolicy.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/provider/SiriusGraphicalNodeEditPolicy.java
index 1f1ee81..9f48817 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/provider/SiriusGraphicalNodeEditPolicy.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/provider/SiriusGraphicalNodeEditPolicy.java
@@ -122,9 +122,9 @@
 import org.eclipse.sirius.diagram.ui.tools.api.util.GMFNotationHelper;
 import org.eclipse.sirius.ext.base.Option;
 import org.eclipse.sirius.ext.gmf.runtime.editparts.GraphicalHelper;
+import org.eclipse.sirius.tools.api.SiriusPlugin;
 import org.eclipse.sirius.viewpoint.DMappingBased;
 import org.eclipse.sirius.viewpoint.DSemanticDecorator;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
 import org.eclipse.sirius.viewpoint.description.tool.ToolPackage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Display;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/GeneralOrderingService.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/GeneralOrderingService.java
index 563c1aa..e4e4cfd 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/GeneralOrderingService.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/GeneralOrderingService.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.uml.sirius.common.diagram.core.services.LabelServices;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.ExecutionSpecification;
 import org.eclipse.uml2.uml.GeneralOrdering;
 import org.eclipse.uml2.uml.InteractionFragment;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/MessageService.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/MessageService.java
index 799f3af..58454f0 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/MessageService.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/MessageService.java
@@ -25,7 +25,7 @@
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.papyrus.uml.sirius.common.diagram.core.services.LabelServices;
 import org.eclipse.papyrus.uml.sirius.common.diagram.core.services.OperationServices;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.ordering.EventEnd;
 import org.eclipse.uml2.uml.Behavior;
 import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/ReorderService.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/ReorderService.java
index 6ebf655..5f9851f 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/ReorderService.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/ReorderService.java
@@ -25,7 +25,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.uml.sirius.common.diagram.core.services.LabelServices;
 import org.eclipse.papyrus.uml.sirius.sequence.diagram.utils.ReorderSequenceRegistry;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.ordering.EventEnd;
 import org.eclipse.sirius.diagram.sequence.ordering.SingleEventEnd;
 import org.eclipse.uml2.uml.CombinedFragment;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/TimeObservationConstraintService.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/TimeObservationConstraintService.java
index 2e65d77..2435f3e 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/TimeObservationConstraintService.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.sequence.diagram/src/org/eclipse/papyrus/uml/sirius/sequence/diagram/services/TimeObservationConstraintService.java
@@ -20,7 +20,7 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.uml.sirius.common.diagram.core.services.LabelServices;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.description.style.Side;
 import org.eclipse.uml2.uml.CombinedFragment;
 import org.eclipse.uml2.uml.Constraint;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.statemachine.diagram/META-INF/MANIFEST.MF b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.statemachine.diagram/META-INF/MANIFEST.MF
index 23c8b20..f8fdaa4 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.statemachine.diagram/META-INF/MANIFEST.MF
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.statemachine.diagram/META-INF/MANIFEST.MF
@@ -12,16 +12,16 @@
  org.eclipse.sirius.common.acceleo.aql,
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
  org.eclipse.papyrus.uml.sirius.common.diagram;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.9.0,2.0.0)",
  org.eclipse.papyrus.infra.emf.gmf;bundle-version="[2.1.0,3.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="[4.2.0,5.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.uml.diagram.statemachine;bundle-version="[5.0.0,6.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.common.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.common;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.formatdata;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.formatdata;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.uml.tools.utils;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.papyrus.editor;bundle-version="[3.0.0,4.0.0)",
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/META-INF/MANIFEST.MF b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/META-INF/MANIFEST.MF
index 7fcc7f0..e6d9e0d 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/META-INF/MANIFEST.MF
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/META-INF/MANIFEST.MF
@@ -8,14 +8,14 @@
 Require-Bundle: org.eclipse.ui;bundle-version="[3.200.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.24.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.16.0,4.0.0)",
- org.eclipse.sirius;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.common.acceleo.aql;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common.acceleo.aql;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
  org.eclipse.papyrus.uml.sirius.common.diagram;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.common.xtext;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.common.xtext;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.9.0,2.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.uml.xtext.integration.ui;bundle-version="[3.1.0,4.0.0)",
  org.eclipse.papyrus.uml.textedit.state.xtext.ui;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors;bundle-version="[2.0.0,3.0.0)",
@@ -27,9 +27,9 @@
  org.eclipse.xtext.xbase;bundle-version="[2.25.0,3.0.0)",
  org.eclipse.papyrus.extensionpoints.editors;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.papyrus.infra.core.log;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="[4.2.0,5.0.0)",
- org.eclipse.sirius.diagram.sequence.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.sequence;bundle-version="[6.4.2,7.0.0)"
+ org.eclipse.sirius.diagram.sequence.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.sequence;bundle-version="[7.0.0,8.0.0)"
 Bundle-Activator: org.eclipse.papyrus.uml.sirius.xtext.integration.ui.Activator
 Bundle-Vendor: %providerName
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/XtextSiriusEditPartFactory.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/XtextSiriusEditPartFactory.java
index 9a0c12e..d17d959 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/XtextSiriusEditPartFactory.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/XtextSiriusEditPartFactory.java
@@ -37,7 +37,7 @@
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ObservationPoint;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Operand;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.State;
-import org.eclipse.sirius.diagram.sequence.business.internal.metamodel.SequenceDDiagramSpec;
+import org.eclipse.sirius.diagram.sequence.model.business.internal.SequenceDDiagramSpec;
 import org.eclipse.sirius.diagram.sequence.ui.tool.internal.edit.part.CombinedFragmentCompartmentEditPart;
 import org.eclipse.sirius.diagram.sequence.ui.tool.internal.edit.part.CombinedFragmentEditPart;
 import org.eclipse.sirius.diagram.sequence.ui.tool.internal.edit.part.EndOfLifeEditPart;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextDEdgeNameEditPart.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextDEdgeNameEditPart.java
index 3984d3d..9052513 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextDEdgeNameEditPart.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextDEdgeNameEditPart.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.configuration.IDirectEditorConfiguration;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.DirectEditorsUtil;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.IDirectEditorsIds;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeNameEditPart;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.widgets.Display;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNode3EditPart.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNode3EditPart.java
index 0f900bc..2017ef3 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNode3EditPart.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNode3EditPart.java
@@ -39,7 +39,7 @@
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.DirectEditorsUtil;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.IDirectEditorsIds;
 import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.description.tool.DirectEditLabel;
 import org.eclipse.sirius.diagram.tools.internal.command.builders.DirectEditCommandBuilder;
 import org.eclipse.sirius.diagram.ui.graphical.edit.policies.ToolBasedLabelDirectEditPolicy;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerName2EditPart.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerName2EditPart.java
index 319226b..734dc37 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerName2EditPart.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerName2EditPart.java
@@ -25,7 +25,7 @@
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.DirectEditorsUtil;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.IDirectEditorsIds;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeContainerName2EditPart;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.widgets.Display;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerNameEditPart.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerNameEditPart.java
index 8719d36..a342423 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerNameEditPart.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeContainerNameEditPart.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.configuration.IDirectEditorConfiguration;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.DirectEditorsUtil;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.IDirectEditorsIds;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeContainerNameEditPart;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.widgets.Display;
diff --git a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeNameEditPart.java b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeNameEditPart.java
index 1c2935f..a10af02 100755
--- a/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeNameEditPart.java
+++ b/plugins/uml/sirius/org.eclipse.papyrus.uml.sirius.xtext.integration.ui/src/org/eclipse/papyrus/uml/sirius/xtext/integration/ui/editpart/XtextSiriusDNodeNameEditPart.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.configuration.IDirectEditorConfiguration;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.DirectEditorsUtil;
 import org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors.utils.IDirectEditorsIds;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeNameEditPart;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.widgets.Display;
diff --git a/releng-sirius/category/pom.xml b/releng-sirius/category/pom.xml
index 3de3155..7e2f899 100755
--- a/releng-sirius/category/pom.xml
+++ b/releng-sirius/category/pom.xml
@@ -43,7 +43,11 @@
 							<skipWebContentGeneration>true</skipWebContentGeneration>
 							<associateSites>
 								<!-- Sirius Update site -->
-								<site>https://download.eclipse.org/sirius/updates/releases/6.5.1/2020-09</site>
+								<site>https://download.eclipse.org/sirius/updates/milestones/7.0.0M3/2021-06/</site>
+								<!-- GMF Runtime Update site-->
+								<site>https://download.eclipse.org/modeling/gmp/gmf-runtime/updates/milestones/S202202011016/</site>
+								<!-- Orbit Update site-->
+								<site>https://download.eclipse.org/tools/orbit/downloads/drops/R20211213173813/repository/</site>
 							</associateSites>
 						</configuration>
 					</execution>
diff --git a/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.target b/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.target
index ba592e1..5dc4eae 100755
--- a/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.target
+++ b/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.target
@@ -1,14 +1,25 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Papyrus-Sirius - 2021-12" sequenceNumber="1643708942">
+<target name="Papyrus-Sirius - 2021-12" sequenceNumber="1643881514">
   <locations>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.apache.batik.anim" version="1.14.0.v20210324-0332"/>
+      <unit id="org.apache.batik.dom" version="1.14.0.v20210324-0332"/>
+      <unit id="org.apache.batik.dom.svg" version="1.14.0.v20210324-0332"/>
+      <unit id="org.apache.batik.xml" version="1.14.0.v20210324-0332"/>
+      <repository id="orbit" location="https://download.eclipse.org/tools/orbit/downloads/drops/R20211213173813/repository/"/>
+    </location>
+    <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.gmf.runtime.sdk.feature.group" version="1.14.1.202202011016"/>
+      <repository id="gmfRuntime" location="https://download.eclipse.org/modeling/gmp/gmf-runtime/updates/milestones/S202202011016/"/>
+    </location>
+    <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.papyrus.junit.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.papyrus.junit.framework" version="0.0.0"/>
       <unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.papyrus.toolsmiths.feature.feature.group" version="0.0.0"/>
-      <repository id="Papyrus-M1-2022-03" location="https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/6.1/M1/"/>
+      <repository id="Papyrus-M2-2022-03" location="https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/6.1/M2/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
@@ -26,24 +37,24 @@
       <repository id="platform" location="https://download.eclipse.org/eclipse/updates/4.22/R-4.22-202111241800/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.sirius.aql.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.doc.feature.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.interpreter.feature.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.properties.feature.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.runtime.acceleo.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.runtime.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.runtime.ide.ui.acceleo.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.runtime.ide.ui.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.runtime.ide.xtext.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.runtime.ocl.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.specifier.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.specifier.ide.ui.acceleo.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.specifier.ide.ui.aql.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.specifier.ide.ui.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.specifier.properties.feature.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.tests.feature.group" version="6.5.1.202106111115"/>
-      <unit id="org.eclipse.sirius.tests.support.feature.group" version="6.5.1.202106111115"/>
-      <repository id="sirius" location="https://download.eclipse.org/sirius/updates/releases/6.5.1/2020-09"/>
+      <unit id="org.eclipse.sirius.aql.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.doc.feature.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.interpreter.feature.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.properties.feature.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.runtime.acceleo.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.runtime.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.runtime.ide.ui.acceleo.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.runtime.ide.ui.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.runtime.ide.xtext.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.runtime.ocl.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.specifier.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.specifier.ide.ui.acceleo.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.specifier.ide.ui.aql.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.specifier.ide.ui.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.specifier.properties.feature.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.tests.feature.group" version="7.0.0.202202011700"/>
+      <unit id="org.eclipse.sirius.tests.support.feature.group" version="7.0.0.202202011700"/>
+      <repository id="sirius" location="https://download.eclipse.org/sirius/updates/milestones/7.0.0M3/2021-06/"/>
     </location>
   </locations>
 </target>
diff --git a/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.tpd b/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.tpd
index ad2fbf8..7fd0f13 100755
--- a/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.tpd
+++ b/releng-sirius/targetplatform/org.eclipse.papyrus.sirius.releng.main.targetplatform.tpd
@@ -1,18 +1,24 @@
 target "Papyrus-Sirius - 2021-12" with source requirements
 // build with simrel commit e014ee7948cbdea3d3eea7591de339b4bc25d0ed
 
-/** Manual dependencies */
-//// manualUpdate
-//location "https://ci.eclipse.org/papyrus/job/Papyrus-SiriusIntegration-RequiredChanges-bug-577691/lastSuccessfulBuild/artifact/repository" Papyrus-2021-12-patched {
-//	org.eclipse.papyrus.sdk.feature.feature.group lazy
-//}
-//// manualUpdate
-//location "https://ci.eclipse.org/papyrus/job/Papyrus-SiriusIntegration-RequiredChanges-bug-577691-toolsmiths/lastSuccessfulBuild/artifact/repository" Papyrus-Toolsmiths-2021-12-patched {
-//	org.eclipse.papyrus.junit.feature.feature.group lazy
-//}
+//manualUpdate
+location orbit "https://download.eclipse.org/tools/orbit/downloads/drops/R20211213173813/repository/" {
+	// update batik to be in adequation with latest gmf runtime https://www.eclipse.org/lists/mdt-papyrus.dev/msg04486.html 
+	org.apache.batik.anim [1.14.0,1.15.0)
+	org.apache.batik.dom [1.14.0,1.15.0)
+	org.apache.batik.dom.svg [1.14.0,1.15.0)
+	org.apache.batik.xml [1.14.0,1.15.0)
+}
 
+//manual update
+//updateFrom("GMF Runtime 1.14.1 for SimRel 2022-03",0)
 
-location "https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/6.1/M1/" Papyrus-M1-2022-03{
+location gmfRuntime "https://download.eclipse.org/modeling/gmp/gmf-runtime/updates/milestones/S202202011016/" {
+	org.eclipse.gmf.runtime.sdk.feature.group
+}
+
+//manualUpdate
+location "https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/6.1/M2/" Papyrus-M2-2022-03{
  org.eclipse.papyrus.junit.feature.feature.group lazy
  org.eclipse.papyrus.junit.framework lazy 
  org.eclipse.papyrus.sdk.feature.feature.group lazy
@@ -45,8 +51,8 @@
 	org.eclipse.sdk.feature.group
 }
 
-// updateFrom("Sirius for SimRel 2021-09",0)
-location sirius "https://download.eclipse.org/sirius/updates/releases/6.5.1/2020-09" {
+// updateFrom("Sirius",0)
+location sirius "https://download.eclipse.org/sirius/updates/milestones/7.0.0M3/2021-06/" {
 	org.eclipse.sirius.aql.feature.group
 	org.eclipse.sirius.doc.feature.feature.group
 	org.eclipse.sirius.interpreter.feature.feature.group
diff --git a/tests/junit/framework/org.eclipse.papyrus.siriusdiag.junit.utils/META-INF/MANIFEST.MF b/tests/junit/framework/org.eclipse.papyrus.siriusdiag.junit.utils/META-INF/MANIFEST.MF
index 1ea665e..92271d8 100644
--- a/tests/junit/framework/org.eclipse.papyrus.siriusdiag.junit.utils/META-INF/MANIFEST.MF
+++ b/tests/junit/framework/org.eclipse.papyrus.siriusdiag.junit.utils/META-INF/MANIFEST.MF
@@ -34,13 +34,13 @@
  org.eclipse.xtext.ui;bundle-version="[2.22.0,3.0.0)",
  org.junit;bundle-version="[4.13.0,5.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.ui;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.sirius;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.junit.utils;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.sirius.tests.junit.support;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.tests.junit.support;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.ui.workbench;bundle-version="[3.122.0,4.0.0)",
- org.eclipse.sirius.common.ui;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.common.ui;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="[4.0.0,5.0.0)"
 Export-Package: org.eclipse.papyrus.sirusdiag.junit.utils.rules
 Bundle-Vendor: %Bundle-Vendor
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/META-INF/MANIFEST.MF
index 3510a4c..10021c2 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/META-INF/MANIFEST.MF
@@ -25,7 +25,7 @@
  org.eclipse.papyrus.infra.services.edit;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.style;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.papyrus.uml.sirius.clazz.diagram;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.modelexplorer;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.properties;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.representation;bundle-version="[0.7.0,1.0.0)",
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Abstraction_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Abstraction_CreationTest.java
index b81e43e..b71673d 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Abstraction_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Abstraction_CreationTest.java
@@ -25,7 +25,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_AssociationClass_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_AssociationClass_CreationTest.java
index e9a9735..7c06d7c 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_AssociationClass_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_AssociationClass_CreationTest.java
@@ -26,7 +26,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DNodeContainer;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Association_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Association_CreationTest.java
index 79542fe..b4779b8 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Association_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Association_CreationTest.java
@@ -25,7 +25,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_CompositeAssociation_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_CompositeAssociation_CreationTest.java
index 888bd46..fc68e48 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_CompositeAssociation_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_CompositeAssociation_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.AggregationKind;
 import org.eclipse.uml2.uml.Association;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Containment_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Containment_CreationTest.java
index b269c6f..84bf741 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Containment_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Containment_CreationTest.java
@@ -25,7 +25,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DNodeContainer;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Dependency_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Dependency_CreationTest.java
index 8c1c67c..7593029 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Dependency_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Dependency_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_ElementImport_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_ElementImport_CreationTest.java
index 7e11b86..4f401d6 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_ElementImport_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_ElementImport_CreationTest.java
@@ -25,7 +25,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DNodeContainer;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.ElementImport;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_GeneralizationSet_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_GeneralizationSet_CreationTest.java
index b87a914..898b9f0 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_GeneralizationSet_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_GeneralizationSet_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Generalization_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Generalization_CreationTest.java
index 1701ffe..3501e27 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Generalization_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Generalization_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InformationFlow_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InformationFlow_CreationTest.java
index 35647bb..936a687 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InformationFlow_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InformationFlow_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InterfaceRealization_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InterfaceRealization_CreationTest.java
index da78fa9..02ae09f 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InterfaceRealization_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_InterfaceRealization_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Link_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Link_CreationTest.java
index d64e5f5..95068c2 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Link_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Link_CreationTest.java
@@ -24,8 +24,8 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.Constraint;
 import org.eclipse.uml2.uml.Element;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageImport_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageImport_CreationTest.java
index 79e30aa..65e398a 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageImport_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageImport_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageMerge_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageMerge_CreationTest.java
index 3ecaa9a..7b4444f 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageMerge_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_PackageMerge_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Realization_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Realization_CreationTest.java
index 4be8994..7efea09 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Realization_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Realization_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_SharedAssociation_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_SharedAssociation_CreationTest.java
index e34bfa8..929d573 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_SharedAssociation_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_SharedAssociation_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.AggregationKind;
 import org.eclipse.uml2.uml.Association;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Substitution_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Substitution_CreationTest.java
index 91d9499..5901cf8 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Substitution_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Substitution_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Usage_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Usage_CreationTest.java
index 073cb4e..3979091 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Usage_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/edges/Edge_Usage_CreationTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_ClassToPackage_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_ClassToPackage_CreationTest.java
index 27f9009..6fd1e30 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_ClassToPackage_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_ClassToPackage_CreationTest.java
@@ -26,7 +26,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DDiagramElement;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Operation_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Operation_CreationTest.java
index a02777d..7dacff7 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Operation_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Operation_CreationTest.java
@@ -23,9 +23,9 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListElementSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListElementSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_PackageToModel_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_PackageToModel_CreationTest.java
index 3f2233a..b2c05ea 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_PackageToModel_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_PackageToModel_CreationTest.java
@@ -26,7 +26,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DDiagramElement;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Property_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Property_CreationTest.java
index 15b377a..75c043d 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Property_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/subNodes/SubNode_Property_CreationTest.java
@@ -23,9 +23,9 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListElementSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListElementSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Comment_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Comment_CreationTest.java
index 019c693..dfb07e4 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Comment_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Comment_CreationTest.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Constraint_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Constraint_CreationTest.java
index 0ff8df0..f074e06 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Constraint_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_Constraint_CreationTest.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_InformationItem_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_InformationItem_CreationTest.java
index 7e03410..8f05549 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_InformationItem_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/creation/topNodes/TopNode_InformationItem_CreationTest.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Abstraction_DeleteSemanticTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Abstraction_DeleteSemanticTest.java
index 1e06660..54b0a15 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Abstraction_DeleteSemanticTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Abstraction_DeleteSemanticTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Dependency_DeleteSemanticTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Dependency_DeleteSemanticTest.java
index 92c1154..5236501 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Dependency_DeleteSemanticTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Dependency_DeleteSemanticTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Generalization_DeleteSemanticTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Generalization_DeleteSemanticTest.java
index b260294..d2e630e 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Generalization_DeleteSemanticTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_Generalization_DeleteSemanticTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.Generalization;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_InformationFlow_DeleteSemanticTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_InformationFlow_DeleteSemanticTest.java
index 47e6a60..d597f9a 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_InformationFlow_DeleteSemanticTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/edges/Edge_InformationFlow_DeleteSemanticTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.PackageableElement;
 import org.eclipse.uml2.uml.internal.impl.PackageImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_Comment_DeleteSemanticTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_Comment_DeleteSemanticTest.java
index 2ad14b3..660cddb 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_Comment_DeleteSemanticTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_Comment_DeleteSemanticTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.Comment;
 import org.eclipse.uml2.uml.Model;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_DurationObservation_DeleteSemanticTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_DurationObservation_DeleteSemanticTest.java
index 5cf5192..89904b3 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_DurationObservation_DeleteSemanticTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/semantic/nodes/TopNode_DurationObservation_DeleteSemanticTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Abstraction_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Abstraction_DeleteViewTest.java
index ee74ab8..c49ef4c 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Abstraction_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Abstraction_DeleteViewTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Dependency_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Dependency_DeleteViewTest.java
index 6d1de40..49f17ec 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Dependency_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Dependency_DeleteViewTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Generalization_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Generalization_DeleteViewTest.java
index e202935..af40ad2 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Generalization_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_Generalization_DeleteViewTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
 import org.eclipse.uml2.uml.Generalization;
 import org.eclipse.uml2.uml.Model;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_InformationFlow_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_InformationFlow_DeleteViewTest.java
index 166ba44..c4d2541 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_InformationFlow_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/edges/Edge_InformationFlow_DeleteViewTest.java
@@ -26,7 +26,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.PackageableElement;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Class_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Class_DeleteViewTest.java
index 88b2f91..cb39d33 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Class_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Class_DeleteViewTest.java
@@ -28,7 +28,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeContainerEditPart;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Comment_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Comment_DeleteViewTest.java
index c24191d..0fac7c8 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Comment_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_Comment_DeleteViewTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeEditPart;
 import org.eclipse.uml2.uml.Comment;
 import org.eclipse.uml2.uml.Model;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DataType_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DataType_DeleteViewTest.java
index 4b5e3f9..e06437b 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DataType_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DataType_DeleteViewTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeContainerEditPart;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DurationObservation_DeleteViewTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DurationObservation_DeleteViewTest.java
index ff2a569..682c21b 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DurationObservation_DeleteViewTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/delete/view/nodes/TopNode_DurationObservation_DeleteViewTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeContainerEditPart;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_ClassToPackage_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_ClassToPackage_DropTest.java
index 35d23a6..16699cc 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_ClassToPackage_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_ClassToPackage_DropTest.java
@@ -26,7 +26,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DDiagramElement;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.internal.impl.PackageImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java
index 92513d5..e8d653a 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_OperationToClass_DropTest.java
@@ -23,9 +23,9 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListElementSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListElementSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PackageToModel_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PackageToModel_DropTest.java
index b308da7..059ae6f 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PackageToModel_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PackageToModel_DropTest.java
@@ -26,7 +26,7 @@
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DDiagramElement;
 import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.internal.impl.ModelImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java
index c0c27b0..e8c673e 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/subNodes/SubNode_PropertyToClass_DropTest.java
@@ -23,9 +23,9 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListElementSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeListSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListElementSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeListSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.internal.impl.ClassImpl;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java
index c77651b..7077b1d 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Comment_TopNode_DropTest.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.Model;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java
index 593d036..cf17adb 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/Constraint_TopNode_DropTest.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java
index da53089..9581d9d 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.clazz.tests/src/org/eclipse/papyrus/uml/siriusdiag/clazz/tests/drop/topNodes/InformationItem_TopNode_DropTest.java
@@ -23,7 +23,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.NamedElement;
 import org.junit.Assert;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/META-INF/MANIFEST.MF
index 5cf73fa..17ba139 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/META-INF/MANIFEST.MF
@@ -25,7 +25,7 @@
  org.eclipse.papyrus.infra.services.edit;bundle-version="[4.1.0,5.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.style;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.papyrus.uml.sirius.sequence.diagram;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.modelexplorer;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.properties;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.infra.siriusdiag.representation;bundle-version="[0.7.0,1.0.0)",
@@ -36,8 +36,8 @@
  org.eclipse.papyrus.uml.sirius.common.diagram;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.uml.sirius.diagram.architecture;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.siriusdiag.junit.utils;bundle-version="[0.7.0,1.0.0)",
- org.eclipse.sirius.diagram.sequence;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.diagram.sequence;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.ext.base;bundle-version="[7.0.0,8.0.0)",
  com.google.guava;bundle-version="[30.1.0,31.0.0)"
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.papyrus.junit.utils.rules
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_CreationTest.java
index fa5438f..a0e7a77 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_CreationTest.java
@@ -28,8 +28,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_LifelineExecution_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_LifelineExecution_CreationTest.java
index e432a6f..551c1b5 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_LifelineExecution_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_AsynchroMessage_LifelineExecution_CreationTest.java
@@ -29,8 +29,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Execution;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceEvent;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DeleteMessage_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DeleteMessage_CreationTest.java
index 5e9661c..fa6b2e1 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DeleteMessage_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DeleteMessage_CreationTest.java
@@ -28,8 +28,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationConstraint_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationConstraint_CreationTest.java
index bf3a420..10b2f7f 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationConstraint_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationConstraint_CreationTest.java
@@ -27,8 +27,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Execution;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.uml2.uml.ActionExecutionSpecification;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationObservation_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationObservation_CreationTest.java
index 1b1018f..f8999cb 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationObservation_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_DurationObservation_CreationTest.java
@@ -27,8 +27,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Execution;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.uml2.uml.ActionExecutionSpecification;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_GeneralOrdering_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_GeneralOrdering_CreationTest.java
index 6361c84..6e2c634 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_GeneralOrdering_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_GeneralOrdering_CreationTest.java
@@ -27,8 +27,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Execution;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.uml2.uml.ActionExecutionSpecification;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageFound_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageFound_CreationTest.java
index 1483708..f93ec9c 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageFound_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageFound_CreationTest.java
@@ -28,8 +28,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageLost_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageLost_CreationTest.java
index 1555a37..5f8eb51 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageLost_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_MessageLost_CreationTest.java
@@ -29,8 +29,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_Message_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_Message_CreationTest.java
index 8e719f5..f0ff044 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_Message_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_Message_CreationTest.java
@@ -28,8 +28,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_ReplyMessage_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_ReplyMessage_CreationTest.java
index 7a64f69..e6a66c8 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_ReplyMessage_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_ReplyMessage_CreationTest.java
@@ -28,8 +28,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_SynchroMessage_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_SynchroMessage_CreationTest.java
index b15630a..0da2daf 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_SynchroMessage_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/edges/Edge_SynchroMessage_CreationTest.java
@@ -28,8 +28,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DEdgeSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DEdgeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_ActionExecution_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_ActionExecution_CreationTest.java
index 9959f4c..f94bf6b 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_ActionExecution_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_ActionExecution_CreationTest.java
@@ -28,7 +28,7 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.ActionExecutionSpecification;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_CombinedFragment_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_CombinedFragment_CreationTest.java
index 828c759..c767178 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_CombinedFragment_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_CombinedFragment_CreationTest.java
@@ -29,8 +29,8 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.CombinedFragment;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Comment_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Comment_CreationTest.java
index 3761ff4..26c13d1 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Comment_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Comment_CreationTest.java
@@ -28,7 +28,7 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Constraint_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Constraint_CreationTest.java
index 639f55f..8e8cec6 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Constraint_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Constraint_CreationTest.java
@@ -28,7 +28,7 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Gate_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Gate_CreationTest.java
index 5585ac6..7cd7d98 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Gate_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Gate_CreationTest.java
@@ -28,7 +28,7 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Gate;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_InteractionUse_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_InteractionUse_CreationTest.java
index 2c9bb3d..fc651c1 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_InteractionUse_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_InteractionUse_CreationTest.java
@@ -28,7 +28,7 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeContainerSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeContainerSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Lifeline_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Lifeline_CreationTest.java
index e30a0f0..9f23fcc 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Lifeline_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_Lifeline_CreationTest.java
@@ -22,7 +22,7 @@
 import org.eclipse.papyrus.junit.utils.rules.PluginResource;
 import org.eclipse.papyrus.sirusdiag.junit.utils.rules.SiriusDiagramEditorFixture;
 import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_StateInvariant_CreationTest.java b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_StateInvariant_CreationTest.java
index cc42806..8f5b161 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_StateInvariant_CreationTest.java
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.sequence.tests/src/org/eclipse/papyrus/uml/siriusdiag/sequence/tests/creation/nodes/Node_StateInvariant_CreationTest.java
@@ -27,7 +27,7 @@
 import org.eclipse.papyrus.uml.siriusdiag.sequence.tests.SequenceDiagramTestsTool;
 import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.business.internal.metamodel.spec.DNodeSpec;
+import org.eclipse.sirius.diagram.model.business.internal.spec.DNodeSpec;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.ISequenceElementAccessor;
 import org.eclipse.sirius.diagram.sequence.business.internal.elements.Lifeline;
 import org.eclipse.uml2.uml.Interaction;
diff --git a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.statemachine.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.statemachine.tests/META-INF/MANIFEST.MF
index d1a8b41..68763c9 100755
--- a/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.statemachine.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/uml/siriusdiag/org.eclipse.papyrus.uml.siriusdiag.statemachine.tests/META-INF/MANIFEST.MF
@@ -9,8 +9,8 @@
  org.eclipse.papyrus.junit.framework;bundle-version="[2.1.0,3.0.0)",
  org.junit;bundle-version="[4.13.0,5.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
- org.eclipse.sirius.tests.junit;bundle-version="[6.4.2,7.0.0)",
- org.eclipse.sirius.diagram.ui;bundle-version="[6.4.2,7.0.0)",
+ org.eclipse.sirius.tests.junit;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.sirius.diagram.ui;bundle-version="[7.0.0,8.0.0)",
  org.eclipse.papyrus.siriusdiag.junit.utils;bundle-version="[0.7.0,1.0.0)",
  org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.papyrus.infra.emf.gmf;bundle-version="[2.1.0,3.0.0)"
