Merge "Move target platform to 2020-06 and update guava dependencies. Trivial: NPE protection"
diff --git a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.classpath b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.classpath
index 075009d..bc3587d 100644
--- a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.classpath
+++ b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.settings/org.eclipse.jdt.core.prefs b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.settings/org.eclipse.jdt.core.prefs
index 0c68a61..7adc0fb 100644
--- a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.settings/org.eclipse.jdt.core.prefs
+++ b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/META-INF/MANIFEST.MF b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/META-INF/MANIFEST.MF
index b39821d..1ba4d11 100644
--- a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/META-INF/MANIFEST.MF
+++ b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/META-INF/MANIFEST.MF
@@ -1,12 +1,12 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.papyrus.cdo.server.h2;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.cdo.server.db;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.cdo.server.net4j;bundle-version="[4.0.0,5.0.0)",
diff --git a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/pom.xml b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/pom.xml
index 80f4a3c..786672b 100644
--- a/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/pom.xml
+++ b/cdo-server/bundles/org.eclipse.papyrus.cdo.server.h2/pom.xml
@@ -1,13 +1,15 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
 		<groupId>org.eclipse.papyrus.cdo.server.bundles</groupId>
 		<artifactId>org.eclipse.papyrus.cdo.server.bundles</artifactId>
 		<version>1.0.0-SNAPSHOT</version>
 	</parent>
-  <groupId>org.eclipse.papyrus.cdo.server.h2</groupId>
-  <artifactId>org.eclipse.papyrus.cdo.server.h2</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>1.0.0-SNAPSHOT</version>
+	<groupId>org.eclipse.papyrus.cdo.server.h2</groupId>
+	<artifactId>org.eclipse.papyrus.cdo.server.h2</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<version>1.1.0-SNAPSHOT</version>
 
 </project>
\ No newline at end of file
diff --git a/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.target b/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.target
index 5867050..43894ca 100644
--- a/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.target
+++ b/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.target
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Papyrus CDO Server" sequenceNumber="1571148184">
+<target name="Papyrus CDO Server" sequenceNumber="1620304894">
   <locations>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.rcp.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.equinox.p2.discovery.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
-      <unit id="javax.xml" version="1.3.4.v201005080400"/>
-      <repository id="eclipse-2019-09" location="http://download.eclipse.org/releases/2019-09/"/>
+      <unit id="javax.xml" version="0.0.0"/>
+      <repository id="eclipse-latest" location="http://download.eclipse.org/releases/latest/"/>
     </location>
   </locations>
 </target>
diff --git a/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.tpd b/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.tpd
index 87355fc..498c606 100644
--- a/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.tpd
+++ b/cdo-server/releng/org.eclipse.papyrus.cdo.server.target/org.eclipse.papyrus.cdo.server.target.tpd
@@ -1,9 +1,9 @@
 target "Papyrus CDO Server" with source requirements
 
-location "http://download.eclipse.org/releases/2019-09/" eclipse-2019-09 {
+location "http://download.eclipse.org/releases/latest/" eclipse-latest {
 	org.eclipse.rcp.feature.group lazy
 	org.eclipse.equinox.executable.feature.group lazy
 	org.eclipse.equinox.p2.discovery.feature.feature.group lazy
 	org.eclipse.emf.cdo.sdk.feature.group lazy
-	javax.xml
+	javax.xml lazy
 }
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.ecore b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.ecore
old mode 100644
new mode 100755
index 41f3382..647393f
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.ecore
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.ecore
@@ -201,20 +201,108 @@
       <details key="documentation" value="The superclass of architectural description languages or architecture frameworks. It defines a collection of viewpoints on models."/>
     </eAnnotations>
     <eOperations name="ceationCommandClassExists" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eOperations name="conversionCommandClassExists" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="isConsistentWith" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Query whether the context is consistent with some other {@code context}. At the least, this means that it is of the same metaclass: an {@link ArchitectureFramework} is not consistent with an {@link ArchitectureDescriptionLanguage}."/>
+      </eAnnotations>
+      <eParameters name="context" lowerBound="1" eType="#//ArchitectureContext"/>
+    </eOperations>
+    <eOperations name="contextExtensionsAreConsistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A context must be {@linkplain #isConsistentWith(ArchitectureContext consistent with} all contexts that it extends."/>
+      </eAnnotations>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context" unique="false">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="contextGeneralizationIsConsistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A context must be {@linkplain #isConsistentWith(ArchitectureContext consistent with} all the context that it specializes (if any)."/>
+      </eAnnotations>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context" unique="false">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="creationCommandClassRequired" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A context requires a {@linkplain #getCreationCommandClass() creation command class} if it {@linkplain #isExtension() is not an extension} of some other context."/>
+      </eAnnotations>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context" unique="false">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="allExtendedContexts" upperBound="-1" eType="#//ArchitectureContext">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Query the graph of all contexts that this context extends, in breadth-first order from those directly extended."/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="allGeneralContexts" upperBound="-1" eType="#//ArchitectureContext">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Query the chain of all contexts that this context specializes, from most specific to most general."/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="extensionCycle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A context may not extend itself, neither directly not indirectly."/>
+      </eAnnotations>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context" unique="false">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="generalizationCycle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A context may not specialize itself, neither directly not indirectly."/>
+      </eAnnotations>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context" unique="false">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eParameters>
+    </eOperations>
+    <eOperations name="generalNotExtended" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="A context must not extend any {@linkplain #allGeneralContexts() context that it specializes}, neither directly nor indirectly."/>
+      </eAnnotations>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+      <eParameters name="context" unique="false">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -255,13 +343,15 @@
         <details key="propertyCategory" value="Context"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationCommandClass" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationCommandClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The fully qualified name of a command that creates models applying this context. The command must implement the org.eclipse.papyrus.infra.architecture.commands.IModelCreationCommand inteface"/>
         <details key="propertyDescription" value="The fully qualified name of a command that creates models applying this context. The command must implement the org.eclipse.papyrus.infra.architecture.commands.IModelCreationCommand inteface"/>
         <details key="propertyCategory" value="Context"/>
       </eAnnotations>
+      <eAnnotations source="http://www.eclipse.org/papyrus/infra/core/architecture">
+        <details key="classConstraint" value="bundleclass://org.eclipse.papyrus.infra.architecture/org.eclipse.papyrus.infra.architecture.commands.IModelCreationCommand"/>
+      </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="conversionCommandClass"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -270,6 +360,27 @@
         <details key="propertyDescription" value="The fully qualified name of a command that refactors models that switched to this context. The command must implement the org.eclipse.papyrus.infra.architecture.commands.IModelConversionCommand inteface"/>
         <details key="propertyCategory" value="Context"/>
       </eAnnotations>
+      <eAnnotations source="http://www.eclipse.org/papyrus/infra/core/architecture">
+        <details key="classConstraint" value="bundleclass://org.eclipse.papyrus.infra.architecture/org.eclipse.papyrus.infra.architecture.commands.IModelConversionCommand"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="generalContext" eType="#//ArchitectureContext">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="An {@link ArchitectureContext} of the same kind that this context specializes."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedContexts" upperBound="-1"
+        eType="#//ArchitectureContext">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="{@link ArchitectureContext}s to which this context contributes additional definitions."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extension" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
+        volatile="true" transient="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Whether this context is an {@linkplain #getExtendedContexts() extension of other contexts}. Extension contexts are not presented in their own right in model creation wizards and other UI components."/>
+      </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ArchitectureFramework" eSuperTypes="#//ArchitectureContext">
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.genmodel b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.genmodel
index c426b31..e0adb7a 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.genmodel
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.genmodel
@@ -88,6 +88,9 @@
           ecoreFeature="ecore:EAttribute Architecture.ecore#//ArchitectureContext/creationCommandClass"/>
       <genFeatures createChild="false" propertyCategory="Context" propertyDescription="The fully qualified name of a command that refactors models that switched to this context. The command must implement the org.eclipse.papyrus.infra.architecture.commands.IModelConversionCommand inteface"
           ecoreFeature="ecore:EAttribute Architecture.ecore#//ArchitectureContext/conversionCommandClass"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Architecture.ecore#//ArchitectureContext/generalContext"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Architecture.ecore#//ArchitectureContext/extendedContexts"/>
+      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute Architecture.ecore#//ArchitectureContext/extension"/>
       <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/ceationCommandClassExists">
         <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/ceationCommandClassExists/diagnostics"/>
         <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/ceationCommandClassExists/context"/>
@@ -96,6 +99,35 @@
         <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/conversionCommandClassExists/diagnostics"/>
         <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/conversionCommandClassExists/context"/>
       </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/isConsistentWith">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/isConsistentWith/context"/>
+      </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/contextExtensionsAreConsistent">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/contextExtensionsAreConsistent/diagnostics"/>
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/contextExtensionsAreConsistent/context"/>
+      </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/contextGeneralizationIsConsistent">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/contextGeneralizationIsConsistent/diagnostics"/>
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/contextGeneralizationIsConsistent/context"/>
+      </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/creationCommandClassRequired">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/creationCommandClassRequired/diagnostics"/>
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/creationCommandClassRequired/context"/>
+      </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/allExtendedContexts"/>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/allGeneralContexts"/>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/extensionCycle">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/extensionCycle/diagnostics"/>
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/extensionCycle/context"/>
+      </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/generalizationCycle">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/generalizationCycle/diagnostics"/>
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/generalizationCycle/context"/>
+      </genOperations>
+      <genOperations ecoreOperation="Architecture.ecore#//ArchitectureContext/generalNotExtended">
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/generalNotExtended/diagnostics"/>
+        <genParameters ecoreParameter="Architecture.ecore#//ArchitectureContext/generalNotExtended/context"/>
+      </genOperations>
     </genClasses>
     <genClasses ecoreClass="Architecture.ecore#//ArchitectureFramework"/>
     <genClasses ecoreClass="Architecture.ecore#//ArchitectureDescription">
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.uml b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.uml
deleted file mode 100644
index 4cadc77..0000000
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/Architecture.uml
+++ /dev/null
@@ -1,216 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
-  <uml:Model xmi:id="_46bO0F_sEeecE-N4uvmt0g" name="architecture" URI="http://www.eclipse.org/papyrus/infra/core/architecture">
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bO0V_sEeecE-N4uvmt0g" name="ADElement" isAbstract="true">
-      <ownedAttribute xmi:id="_46bO0l_sEeecE-N4uvmt0g" name="id" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO01_sEeecE-N4uvmt0g" name="name" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO1F_sEeecE-N4uvmt0g" name="description" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO1V_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO1l_sEeecE-N4uvmt0g" name="qualifiedName" visibility="public" isOrdered="true" isReadOnly="true" isDerived="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO11_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO2F_sEeecE-N4uvmt0g" name="icon" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO2V_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bO2l_sEeecE-N4uvmt0g" name="ArchitectureDomain">
-      <generalization xmi:id="_46bO21_sEeecE-N4uvmt0g" general="_46bO0V_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bO3F_sEeecE-N4uvmt0g" name="stakeholders" type="_46bO5V_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_46bO8V_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO3V_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO3l_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO31_sEeecE-N4uvmt0g" name="concerns" type="_46bO61_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_46bO7l_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO4F_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO4V_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO4l_sEeecE-N4uvmt0g" name="contexts" type="_46bO8l_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_46bPM1_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO41_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO5F_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bO5V_sEeecE-N4uvmt0g" name="Stakeholder">
-      <generalization xmi:id="_46bO5l_sEeecE-N4uvmt0g" general="_46bO0V_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bO51_sEeecE-N4uvmt0g" name="concerns" type="_46bO61_sEeecE-N4uvmt0g" isOrdered="true" association="_46bO71_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO6F_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO6V_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO6l_sEeecE-N4uvmt0g" name="domain" type="_46bO2l_sEeecE-N4uvmt0g" isOrdered="true" association="_46bO8V_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bO61_sEeecE-N4uvmt0g" name="Concern">
-      <generalization xmi:id="_46bO7F_sEeecE-N4uvmt0g" general="_46bO0V_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bO7V_sEeecE-N4uvmt0g" name="domain" type="_46bO2l_sEeecE-N4uvmt0g" isOrdered="true" association="_46bO7l_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bO7l_sEeecE-N4uvmt0g" memberEnd="_46bO31_sEeecE-N4uvmt0g _46bO7V_sEeecE-N4uvmt0g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bO71_sEeecE-N4uvmt0g" memberEnd="_46bO51_sEeecE-N4uvmt0g _46bO8F_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bO8F_sEeecE-N4uvmt0g" type="_46bO5V_sEeecE-N4uvmt0g" association="_46bO71_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bO8V_sEeecE-N4uvmt0g" memberEnd="_46bO3F_sEeecE-N4uvmt0g _46bO6l_sEeecE-N4uvmt0g"/>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bO8l_sEeecE-N4uvmt0g" name="ArchitectureContext" isAbstract="true">
-      <generalization xmi:id="_46bO81_sEeecE-N4uvmt0g" general="_46bO0V_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bO9F_sEeecE-N4uvmt0g" name="viewpoints" type="_46bPC1_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_46bPLl_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO9V_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO9l_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO91_sEeecE-N4uvmt0g" name="defaultViewpoints" type="_46bPC1_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPL1_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO-F_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO-V_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO-l_sEeecE-N4uvmt0g" name="elementTypes" isOrdered="true" association="_46bPMV_sEeecE-N4uvmt0g">
-        <type xmi:type="uml:Class" href="ElementTypesConfigurations.uml#_44q7UV_sEeecE-N4uvmt0g"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO-1_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bO_F_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bO_V_sEeecE-N4uvmt0g" name="domain" type="_46bO2l_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPM1_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bO_l_sEeecE-N4uvmt0g" name="extensionPrefix" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bO_1_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bPAF_sEeecE-N4uvmt0g" name="creationCommandClass" visibility="public" type="_46bPBF_sEeecE-N4uvmt0g" isOrdered="true"/>
-      <ownedAttribute xmi:id="_46bPAV_sEeecE-N4uvmt0g" name="conversionCommandClass" visibility="public" type="_46bPCF_sEeecE-N4uvmt0g" isOrdered="true">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPAl_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <nestedClassifier xmi:type="uml:Class" xmi:id="_46bPA1_sEeecE-N4uvmt0g" name="Wildcard"/>
-      <nestedClassifier xmi:type="uml:PrimitiveType" xmi:id="_46bPBF_sEeecE-N4uvmt0g" name="EJavaClass_Wildcard">
-        <templateBinding xmi:id="_46bPBV_sEeecE-N4uvmt0g">
-          <parameterSubstitution xmi:id="_46bPBl_sEeecE-N4uvmt0g" actual="_46bPA1_sEeecE-N4uvmt0g">
-            <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EJavaClass-_ownedElement.0-_ownedParameter.0"/>
-          </parameterSubstitution>
-          <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EJavaClass-_ownedElement.0"/>
-        </templateBinding>
-      </nestedClassifier>
-      <nestedClassifier xmi:type="uml:Class" xmi:id="_46bPB1_sEeecE-N4uvmt0g" name="Wildcard"/>
-      <nestedClassifier xmi:type="uml:PrimitiveType" xmi:id="_46bPCF_sEeecE-N4uvmt0g" name="EJavaClass_Wildcard">
-        <templateBinding xmi:id="_46bPCV_sEeecE-N4uvmt0g">
-          <parameterSubstitution xmi:id="_46bPCl_sEeecE-N4uvmt0g" actual="_46bPB1_sEeecE-N4uvmt0g">
-            <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EJavaClass-_ownedElement.0-_ownedParameter.0"/>
-          </parameterSubstitution>
-          <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EJavaClass-_ownedElement.0"/>
-        </templateBinding>
-      </nestedClassifier>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bPC1_sEeecE-N4uvmt0g" name="ArchitectureViewpoint">
-      <generalization xmi:id="_46bPDF_sEeecE-N4uvmt0g" general="_46bO0V_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bPDV_sEeecE-N4uvmt0g" name="concerns" type="_46bO61_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPFF_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPDl_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bPD1_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bPEF_sEeecE-N4uvmt0g" name="representationKinds" type="_46bPFl_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPLF_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPEV_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bPEl_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bPE1_sEeecE-N4uvmt0g" name="context" type="_46bO8l_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPLl_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPFF_sEeecE-N4uvmt0g" memberEnd="_46bPDV_sEeecE-N4uvmt0g _46bPFV_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPFV_sEeecE-N4uvmt0g" type="_46bPC1_sEeecE-N4uvmt0g" association="_46bPFF_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bPFl_sEeecE-N4uvmt0g" name="RepresentationKind" isAbstract="true">
-      <generalization xmi:id="_46bPF1_sEeecE-N4uvmt0g" general="_46bO0V_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bPGF_sEeecE-N4uvmt0g" name="language" type="_46bPHF_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPJV_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bPGV_sEeecE-N4uvmt0g" name="concerns" type="_46bO61_sEeecE-N4uvmt0g" isOrdered="true" association="_46bPKl_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPGl_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bPG1_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_3prHYMrzEem0O816XhrVeA" name="grayedIcon" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3prHYcrzEem0O816XhrVeA"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bPHF_sEeecE-N4uvmt0g" name="ArchitectureDescriptionLanguage">
-      <generalization xmi:id="_46bPHV_sEeecE-N4uvmt0g" general="_46bO8l_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bPHl_sEeecE-N4uvmt0g" name="representationKinds" type="_46bPFl_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_46bPJV_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPH1_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bPIF_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_46bPIV_sEeecE-N4uvmt0g" name="metamodel" isOrdered="true" association="_46bPJl_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_46bPIl_sEeecE-N4uvmt0g" name="profiles" isOrdered="true" association="_46bPKF_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPI1_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bPJF_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPJV_sEeecE-N4uvmt0g" memberEnd="_46bPHl_sEeecE-N4uvmt0g _46bPGF_sEeecE-N4uvmt0g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPJl_sEeecE-N4uvmt0g" memberEnd="_46bPIV_sEeecE-N4uvmt0g _46bPJ1_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPJ1_sEeecE-N4uvmt0g" type="_46bPHF_sEeecE-N4uvmt0g" association="_46bPJl_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPKF_sEeecE-N4uvmt0g" memberEnd="_46bPIl_sEeecE-N4uvmt0g _46bPKV_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPKV_sEeecE-N4uvmt0g" type="_46bPHF_sEeecE-N4uvmt0g" association="_46bPKF_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPKl_sEeecE-N4uvmt0g" memberEnd="_46bPGV_sEeecE-N4uvmt0g _46bPK1_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPK1_sEeecE-N4uvmt0g" type="_46bPFl_sEeecE-N4uvmt0g" association="_46bPKl_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPLF_sEeecE-N4uvmt0g" memberEnd="_46bPEF_sEeecE-N4uvmt0g _46bPLV_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPLV_sEeecE-N4uvmt0g" type="_46bPC1_sEeecE-N4uvmt0g" association="_46bPLF_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPLl_sEeecE-N4uvmt0g" memberEnd="_46bO9F_sEeecE-N4uvmt0g _46bPE1_sEeecE-N4uvmt0g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPL1_sEeecE-N4uvmt0g" memberEnd="_46bO91_sEeecE-N4uvmt0g _46bPMF_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPMF_sEeecE-N4uvmt0g" type="_46bO8l_sEeecE-N4uvmt0g" association="_46bPL1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPMV_sEeecE-N4uvmt0g" memberEnd="_46bO-l_sEeecE-N4uvmt0g _46bPMl_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_46bPMl_sEeecE-N4uvmt0g" type="_46bO8l_sEeecE-N4uvmt0g" association="_46bPMV_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_46bPM1_sEeecE-N4uvmt0g" memberEnd="_46bO4l_sEeecE-N4uvmt0g _46bO_V_sEeecE-N4uvmt0g"/>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bPNF_sEeecE-N4uvmt0g" name="ArchitectureFramework">
-      <generalization xmi:id="_46bPNV_sEeecE-N4uvmt0g" general="_46bO8l_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bPNl_sEeecE-N4uvmt0g" name="ArchitectureDescription">
-      <ownedAttribute xmi:id="_46bPN1_sEeecE-N4uvmt0g" name="contextId" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPOF_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_46bPOV_sEeecE-N4uvmt0g" name="ArchitectureDescriptionPreferences">
-      <ownedAttribute xmi:id="_46bPOl_sEeecE-N4uvmt0g" name="viewpointIds" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_46bPO1_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46bPPF_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <profileApplication xmi:id="_46bPPV_sEeecE-N4uvmt0g">
-      <eAnnotations xmi:id="_46bPPl_sEeecE-N4uvmt0g" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
-      </eAnnotations>
-      <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
-    </profileApplication>
-  </uml:Model>
-  <Ecore:EPackage xmi:id="_46bPP1_sEeecE-N4uvmt0g" base_Package="_46bO0F_sEeecE-N4uvmt0g" nsPrefix="architecture" basePackage="org.eclipse.papyrus.infra.core"/>
-  <Ecore:EClass xmi:id="_46bPQF_sEeecE-N4uvmt0g" base_Class="_46bO0V_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPQV_sEeecE-N4uvmt0g" base_Class="_46bO2l_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPQl_sEeecE-N4uvmt0g" base_Property="_46bO3F_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPQ1_sEeecE-N4uvmt0g" base_Property="_46bO31_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPRF_sEeecE-N4uvmt0g" base_Property="_46bO4l_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPRV_sEeecE-N4uvmt0g" base_Class="_46bO5V_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPRl_sEeecE-N4uvmt0g" base_Property="_46bO51_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPR1_sEeecE-N4uvmt0g" base_Property="_46bO6l_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPSF_sEeecE-N4uvmt0g" base_Class="_46bO61_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPSV_sEeecE-N4uvmt0g" base_Property="_46bO7V_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPSl_sEeecE-N4uvmt0g" base_Class="_46bO8l_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPS1_sEeecE-N4uvmt0g" base_Property="_46bO9F_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPTF_sEeecE-N4uvmt0g" base_Property="_46bO91_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPTV_sEeecE-N4uvmt0g" base_Property="_46bO-l_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPTl_sEeecE-N4uvmt0g" base_Property="_46bO_V_sEeecE-N4uvmt0g"/>
-  <Ecore:EGenericType xmi:id="_46bPT1_sEeecE-N4uvmt0g" base_Class="_46bPA1_sEeecE-N4uvmt0g"/>
-  <Ecore:EGenericType xmi:id="_46bPUF_sEeecE-N4uvmt0g" base_DataType="_46bPBF_sEeecE-N4uvmt0g"/>
-  <Ecore:EGenericType xmi:id="_46bPUV_sEeecE-N4uvmt0g" base_Class="_46bPB1_sEeecE-N4uvmt0g"/>
-  <Ecore:EGenericType xmi:id="_46bPUl_sEeecE-N4uvmt0g" base_DataType="_46bPCF_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPU1_sEeecE-N4uvmt0g" base_Class="_46bPC1_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPVF_sEeecE-N4uvmt0g" base_Property="_46bPDV_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPVV_sEeecE-N4uvmt0g" base_Property="_46bPEF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPVl_sEeecE-N4uvmt0g" base_Property="_46bPE1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPV1_sEeecE-N4uvmt0g" base_Class="_46bPFl_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPWF_sEeecE-N4uvmt0g" base_Property="_46bPGF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPWV_sEeecE-N4uvmt0g" base_Property="_46bPGV_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPWl_sEeecE-N4uvmt0g" base_Class="_46bPHF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPW1_sEeecE-N4uvmt0g" base_Property="_46bPHl_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPXF_sEeecE-N4uvmt0g" base_Property="_46bPIV_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_46bPXV_sEeecE-N4uvmt0g" base_Property="_46bPIl_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPXl_sEeecE-N4uvmt0g" base_Class="_46bPNF_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPX1_sEeecE-N4uvmt0g" base_Class="_46bPNl_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_46bPYF_sEeecE-N4uvmt0g" base_Class="_46bPOV_sEeecE-N4uvmt0g"/>
-</xmi:XMI>
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/ElementTypesConfigurations.uml b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/ElementTypesConfigurations.uml
deleted file mode 100644
index 18f519c..0000000
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/model/ElementTypesConfigurations.uml
+++ /dev/null
@@ -1,251 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
-  <uml:Model xmi:id="_44q7UF_sEeecE-N4uvmt0g" name="types" URI="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2">
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7UV_sEeecE-N4uvmt0g" name="ElementTypeSetConfiguration">
-      <generalization xmi:id="_44q7Ul_sEeecE-N4uvmt0g" general="_44q7XF_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7U1_sEeecE-N4uvmt0g" name="elementTypeConfigurations" type="_44q7Y1_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7dl_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7VF_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_44q7VV_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7Vl_sEeecE-N4uvmt0g" name="adviceBindingsConfigurations" type="_44q7eF_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7ol_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7V1_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_44q7WF_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7WV_sEeecE-N4uvmt0g" name="metamodelNsURI" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-      <interfaceRealization xmi:id="_44q7Wl_sEeecE-N4uvmt0g" client="_44q7UV_sEeecE-N4uvmt0g" supplier="_44q7X1_sEeecE-N4uvmt0g" contract="_44q7X1_sEeecE-N4uvmt0g"/>
-      <interfaceRealization xmi:id="_44q7W1_sEeecE-N4uvmt0g" client="_44q7UV_sEeecE-N4uvmt0g" supplier="_44q7YV_sEeecE-N4uvmt0g" contract="_44q7YV_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7XF_sEeecE-N4uvmt0g" name="ConfigurationElement" isAbstract="true">
-      <ownedAttribute xmi:id="_44q7XV_sEeecE-N4uvmt0g" name="description" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7Xl_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Interface" xmi:id="_44q7X1_sEeecE-N4uvmt0g" name="IdentifiedConfiguration">
-      <ownedAttribute xmi:id="_44q7YF_sEeecE-N4uvmt0g" name="identifier" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Interface" xmi:id="_44q7YV_sEeecE-N4uvmt0g" name="NamedConfiguration">
-      <ownedAttribute xmi:id="_44q7Yl_sEeecE-N4uvmt0g" name="name" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7Y1_sEeecE-N4uvmt0g" name="ElementTypeConfiguration" isAbstract="true">
-      <generalization xmi:id="_44q7ZF_sEeecE-N4uvmt0g" general="_44q7XF_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7ZV_sEeecE-N4uvmt0g" name="hint" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7Zl_sEeecE-N4uvmt0g"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_44q7Z1_sEeecE-N4uvmt0g" value="">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        </defaultValue>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7aF_sEeecE-N4uvmt0g" name="kind" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7aV_sEeecE-N4uvmt0g"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_44q7al_sEeecE-N4uvmt0g" value="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
-          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        </defaultValue>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7a1_sEeecE-N4uvmt0g" name="iconEntry" type="_44q7b1_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7dF_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7bF_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <interfaceRealization xmi:id="_44q7bV_sEeecE-N4uvmt0g" client="_44q7Y1_sEeecE-N4uvmt0g" supplier="_44q7X1_sEeecE-N4uvmt0g" contract="_44q7X1_sEeecE-N4uvmt0g"/>
-      <interfaceRealization xmi:id="_44q7bl_sEeecE-N4uvmt0g" client="_44q7Y1_sEeecE-N4uvmt0g" supplier="_44q7YV_sEeecE-N4uvmt0g" contract="_44q7YV_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7b1_sEeecE-N4uvmt0g" name="IconEntry">
-      <ownedAttribute xmi:id="_44q7cF_sEeecE-N4uvmt0g" name="iconPath" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7cV_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7cl_sEeecE-N4uvmt0g" name="bundleId" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7c1_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7dF_sEeecE-N4uvmt0g" memberEnd="_44q7a1_sEeecE-N4uvmt0g _44q7dV_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7dV_sEeecE-N4uvmt0g" type="_44q7Y1_sEeecE-N4uvmt0g" association="_44q7dF_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7dl_sEeecE-N4uvmt0g" memberEnd="_44q7U1_sEeecE-N4uvmt0g _44q7d1_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7d1_sEeecE-N4uvmt0g" type="_44q7UV_sEeecE-N4uvmt0g" association="_44q7dl_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7eF_sEeecE-N4uvmt0g" name="AbstractAdviceBindingConfiguration" isAbstract="true">
-      <generalization xmi:id="_44q7eV_sEeecE-N4uvmt0g" general="_44q7gl_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7el_sEeecE-N4uvmt0g" name="target" type="_44q7Y1_sEeecE-N4uvmt0g" isOrdered="true" association="_44q7jl_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7e1_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7fF_sEeecE-N4uvmt0g" name="containerConfiguration" type="_44q7kF_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7m1_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7fV_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7fl_sEeecE-N4uvmt0g" name="matcherConfiguration" type="_44q7ll_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7nV_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7f1_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7gF_sEeecE-N4uvmt0g" name="inheritance" visibility="public" type="_44q7n1_sEeecE-N4uvmt0g" isOrdered="true"/>
-      <interfaceRealization xmi:id="_44q7gV_sEeecE-N4uvmt0g" client="_44q7eF_sEeecE-N4uvmt0g" supplier="_44q7X1_sEeecE-N4uvmt0g" contract="_44q7X1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7gl_sEeecE-N4uvmt0g" name="AdviceConfiguration" isAbstract="true">
-      <generalization xmi:id="_44q7g1_sEeecE-N4uvmt0g" general="_44q7XF_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7hF_sEeecE-N4uvmt0g" name="before" type="_44q7gl_sEeecE-N4uvmt0g" isOrdered="true" association="_44q7il_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7hV_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_44q7hl_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7h1_sEeecE-N4uvmt0g" name="after" type="_44q7gl_sEeecE-N4uvmt0g" isOrdered="true" association="_44q7jF_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7iF_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_44q7iV_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7il_sEeecE-N4uvmt0g" memberEnd="_44q7hF_sEeecE-N4uvmt0g _44q7i1_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7i1_sEeecE-N4uvmt0g" type="_44q7gl_sEeecE-N4uvmt0g" association="_44q7il_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7jF_sEeecE-N4uvmt0g" memberEnd="_44q7h1_sEeecE-N4uvmt0g _44q7jV_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7jV_sEeecE-N4uvmt0g" type="_44q7gl_sEeecE-N4uvmt0g" association="_44q7jF_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7jl_sEeecE-N4uvmt0g" memberEnd="_44q7el_sEeecE-N4uvmt0g _44q7j1_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7j1_sEeecE-N4uvmt0g" type="_44q7eF_sEeecE-N4uvmt0g" association="_44q7jl_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7kF_sEeecE-N4uvmt0g" name="ContainerConfiguration">
-      <ownedAttribute xmi:id="_44q7kV_sEeecE-N4uvmt0g" name="containerMatcherConfiguration" type="_44q7ll_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7l1_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7kl_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7k1_sEeecE-N4uvmt0g" name="eContainmentFeatures" isOrdered="true" association="_44q7mV_sEeecE-N4uvmt0g">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7lF_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_44q7lV_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7ll_sEeecE-N4uvmt0g" name="AbstractMatcherConfiguration" isAbstract="true"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7l1_sEeecE-N4uvmt0g" memberEnd="_44q7kV_sEeecE-N4uvmt0g _44q7mF_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7mF_sEeecE-N4uvmt0g" type="_44q7kF_sEeecE-N4uvmt0g" association="_44q7l1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7mV_sEeecE-N4uvmt0g" memberEnd="_44q7k1_sEeecE-N4uvmt0g _44q7ml_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7ml_sEeecE-N4uvmt0g" type="_44q7kF_sEeecE-N4uvmt0g" association="_44q7mV_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7m1_sEeecE-N4uvmt0g" memberEnd="_44q7fF_sEeecE-N4uvmt0g _44q7nF_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7nF_sEeecE-N4uvmt0g" type="_44q7eF_sEeecE-N4uvmt0g" association="_44q7m1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7nV_sEeecE-N4uvmt0g" memberEnd="_44q7fl_sEeecE-N4uvmt0g _44q7nl_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7nl_sEeecE-N4uvmt0g" type="_44q7eF_sEeecE-N4uvmt0g" association="_44q7nV_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_44q7n1_sEeecE-N4uvmt0g" name="InheritanceKind">
-      <ownedLiteral xmi:id="_44q7oF_sEeecE-N4uvmt0g" name="none"/>
-      <ownedLiteral xmi:id="_44q7oV_sEeecE-N4uvmt0g" name="all"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7ol_sEeecE-N4uvmt0g" memberEnd="_44q7Vl_sEeecE-N4uvmt0g _44q7o1_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7o1_sEeecE-N4uvmt0g" type="_44q7UV_sEeecE-N4uvmt0g" association="_44q7ol_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7pF_sEeecE-N4uvmt0g" name="SpecializationTypeConfiguration">
-      <generalization xmi:id="_44q7pV_sEeecE-N4uvmt0g" general="_44q7Y1_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7pl_sEeecE-N4uvmt0g" name="editHelperAdviceConfiguration" type="_44q7r1_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7sl_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7p1_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7qF_sEeecE-N4uvmt0g" name="containerConfiguration" type="_44q7kF_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7s1_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7qV_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7ql_sEeecE-N4uvmt0g" name="matcherConfiguration" type="_44q7ll_sEeecE-N4uvmt0g" isOrdered="true" aggregation="composite" association="_44q7tV_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7q1_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7rF_sEeecE-N4uvmt0g" name="specializedTypes" type="_44q7Y1_sEeecE-N4uvmt0g" isOrdered="true" association="_44q7t1_sEeecE-N4uvmt0g">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7rV_sEeecE-N4uvmt0g"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_44q7rl_sEeecE-N4uvmt0g" value="*"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7r1_sEeecE-N4uvmt0g" name="AbstractEditHelperAdviceConfiguration" isAbstract="true">
-      <generalization xmi:id="_44q7sF_sEeecE-N4uvmt0g" general="_44q7gl_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7sV_sEeecE-N4uvmt0g" name="target" type="_44q7pF_sEeecE-N4uvmt0g" isOrdered="true" association="_44q7sl_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7sl_sEeecE-N4uvmt0g" memberEnd="_44q7pl_sEeecE-N4uvmt0g _44q7sV_sEeecE-N4uvmt0g"/>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7s1_sEeecE-N4uvmt0g" memberEnd="_44q7qF_sEeecE-N4uvmt0g _44q7tF_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7tF_sEeecE-N4uvmt0g" type="_44q7pF_sEeecE-N4uvmt0g" association="_44q7s1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7tV_sEeecE-N4uvmt0g" memberEnd="_44q7ql_sEeecE-N4uvmt0g _44q7tl_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7tl_sEeecE-N4uvmt0g" type="_44q7pF_sEeecE-N4uvmt0g" association="_44q7tV_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7t1_sEeecE-N4uvmt0g" memberEnd="_44q7rF_sEeecE-N4uvmt0g _44q7uF_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7uF_sEeecE-N4uvmt0g" type="_44q7pF_sEeecE-N4uvmt0g" association="_44q7t1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7uV_sEeecE-N4uvmt0g" name="MetamodelTypeConfiguration">
-      <generalization xmi:id="_44q7ul_sEeecE-N4uvmt0g" general="_44q7Y1_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7u1_sEeecE-N4uvmt0g" name="eClass" isOrdered="true" association="_44q7v1_sEeecE-N4uvmt0g">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EClass"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7vF_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:id="_44q7vV_sEeecE-N4uvmt0g" name="editHelperClassName" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_44q7vl_sEeecE-N4uvmt0g"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Association" xmi:id="_44q7v1_sEeecE-N4uvmt0g" memberEnd="_44q7u1_sEeecE-N4uvmt0g _44q7wF_sEeecE-N4uvmt0g">
-      <ownedEnd xmi:id="_44q7wF_sEeecE-N4uvmt0g" type="_44q7uV_sEeecE-N4uvmt0g" association="_44q7v1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7wV_sEeecE-N4uvmt0g" name="EditHelperAdviceConfiguration">
-      <generalization xmi:id="_44q7wl_sEeecE-N4uvmt0g" general="_44q7r1_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7w1_sEeecE-N4uvmt0g" name="editHelperAdviceClassName" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7xF_sEeecE-N4uvmt0g" name="AdviceBindingConfiguration">
-      <generalization xmi:id="_44q7xV_sEeecE-N4uvmt0g" general="_44q7eF_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7xl_sEeecE-N4uvmt0g" name="editHelperAdviceClassName" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7x1_sEeecE-N4uvmt0g" name="MatcherConfiguration">
-      <generalization xmi:id="_44q7yF_sEeecE-N4uvmt0g" general="_44q7ll_sEeecE-N4uvmt0g"/>
-      <ownedAttribute xmi:id="_44q7yV_sEeecE-N4uvmt0g" name="matcherClassName" visibility="public" isOrdered="true">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7yl_sEeecE-N4uvmt0g" name="ExternallyRegisteredType">
-      <generalization xmi:id="_44q7y1_sEeecE-N4uvmt0g" general="_44q7Y1_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_44q7zF_sEeecE-N4uvmt0g" name="ExternallyRegisteredAdvice">
-      <generalization xmi:id="_44q7zV_sEeecE-N4uvmt0g" general="_44q7xF_sEeecE-N4uvmt0g"/>
-    </packagedElement>
-    <profileApplication xmi:id="_44q7zl_sEeecE-N4uvmt0g">
-      <eAnnotations xmi:id="_44q7z1_sEeecE-N4uvmt0g" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
-      </eAnnotations>
-      <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
-    </profileApplication>
-  </uml:Model>
-  <Ecore:EPackage xmi:id="_44q70F_sEeecE-N4uvmt0g" base_Package="_44q7UF_sEeecE-N4uvmt0g" nsPrefix="elementtypesconfigurations" basePackage="org.eclipse.papyrus.infra"/>
-  <Ecore:EClass xmi:id="_44q70V_sEeecE-N4uvmt0g" base_Class="_44q7UV_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q70l_sEeecE-N4uvmt0g" base_Property="_44q7U1_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q701_sEeecE-N4uvmt0g" base_Property="_44q7Vl_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q71F_sEeecE-N4uvmt0g" base_Class="_44q7XF_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q71V_sEeecE-N4uvmt0g" base_Interface="_44q7X1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q71l_sEeecE-N4uvmt0g" base_Interface="_44q7YV_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q711_sEeecE-N4uvmt0g" base_Class="_44q7Y1_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q72F_sEeecE-N4uvmt0g" base_Property="_44q7a1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q72V_sEeecE-N4uvmt0g" base_Class="_44q7b1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q72l_sEeecE-N4uvmt0g" base_Class="_44q7eF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q721_sEeecE-N4uvmt0g" base_Property="_44q7el_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q73F_sEeecE-N4uvmt0g" base_Property="_44q7fF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q73V_sEeecE-N4uvmt0g" base_Property="_44q7fl_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q73l_sEeecE-N4uvmt0g" base_Class="_44q7gl_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q731_sEeecE-N4uvmt0g" base_Property="_44q7hF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q74F_sEeecE-N4uvmt0g" base_Property="_44q7h1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44q74V_sEeecE-N4uvmt0g" base_Class="_44q7kF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q74l_sEeecE-N4uvmt0g" base_Property="_44q7kV_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44q741_sEeecE-N4uvmt0g" base_Property="_44q7k1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44riYF_sEeecE-N4uvmt0g" base_Class="_44q7ll_sEeecE-N4uvmt0g"/>
-  <Ecore:EEnum xmi:id="_44riYV_sEeecE-N4uvmt0g" base_Enumeration="_44q7n1_sEeecE-N4uvmt0g"/>
-  <Ecore:EEnumLiteral xmi:id="_44riYl_sEeecE-N4uvmt0g" base_EnumerationLiteral="_44q7oF_sEeecE-N4uvmt0g" literal="none"/>
-  <Ecore:EEnumLiteral xmi:id="_44riY1_sEeecE-N4uvmt0g" base_EnumerationLiteral="_44q7oV_sEeecE-N4uvmt0g" literal="all"/>
-  <Ecore:EClass xmi:id="_44riZF_sEeecE-N4uvmt0g" base_Class="_44q7pF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44riZV_sEeecE-N4uvmt0g" base_Property="_44q7pl_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44riZl_sEeecE-N4uvmt0g" base_Property="_44q7qF_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44riZ1_sEeecE-N4uvmt0g" base_Property="_44q7ql_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44riaF_sEeecE-N4uvmt0g" base_Property="_44q7rF_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44riaV_sEeecE-N4uvmt0g" base_Class="_44q7r1_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44rial_sEeecE-N4uvmt0g" base_Property="_44q7sV_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44ria1_sEeecE-N4uvmt0g" base_Class="_44q7uV_sEeecE-N4uvmt0g"/>
-  <Ecore:EReference xmi:id="_44ribF_sEeecE-N4uvmt0g" base_Property="_44q7u1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44ribV_sEeecE-N4uvmt0g" base_Class="_44q7wV_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44ribl_sEeecE-N4uvmt0g" base_Class="_44q7xF_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44rib1_sEeecE-N4uvmt0g" base_Class="_44q7x1_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44ricF_sEeecE-N4uvmt0g" base_Class="_44q7yl_sEeecE-N4uvmt0g"/>
-  <Ecore:EClass xmi:id="_44ricV_sEeecE-N4uvmt0g" base_Class="_44q7zF_sEeecE-N4uvmt0g"/>
-</xmi:XMI>
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ADElementImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ADElementImpl.java
index 1ade72f..df6f803 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ADElementImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ADElementImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -19,6 +20,7 @@
 
 import org.eclipse.papyrus.infra.core.architecture.ADElement;
 import org.eclipse.papyrus.infra.core.architecture.ArchitecturePackage;
+import org.eclipse.papyrus.infra.core.architecture.internal.operations.ADElementOperations;
 
 /**
  * <!-- begin-user-doc -->
@@ -180,13 +182,11 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public String getQualifiedName() {
-		// TODO: implement this method to return the 'Qualified Name' attribute
-		// Ensure that you remove @generated or mark it @generated NOT
-		throw new UnsupportedOperationException();
+		return ADElementOperations.getQualifiedName(this);
 	}
 
 	/**
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureContextImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureContextImpl.java
index 1797c2d..d84aede 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureContextImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureContextImpl.java
@@ -1,6 +1,6 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
- * 
+ * Copyright (c) 2017, 2021 CEA LIST, Christian W. Damus, and others.
+ *
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
@@ -10,6 +10,8 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
+ * 
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -20,25 +22,19 @@
 
 import org.eclipse.emf.common.notify.NotificationChain;
 
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.DiagnosticChain;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-import org.eclipse.emf.ecore.util.EObjectValidator;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import org.eclipse.papyrus.infra.core.architecture.ArchitectureContext;
 import org.eclipse.papyrus.infra.core.architecture.ArchitectureDomain;
 import org.eclipse.papyrus.infra.core.architecture.ArchitecturePackage;
 import org.eclipse.papyrus.infra.core.architecture.ArchitectureViewpoint;
-
-import org.eclipse.papyrus.infra.core.architecture.util.ArchitectureValidator;
+import org.eclipse.papyrus.infra.core.architecture.internal.operations.ArchitectureContextOperations;
 
 import org.eclipse.papyrus.infra.types.ElementTypeSetConfiguration;
 
@@ -57,6 +53,9 @@
  *   <li>{@link org.eclipse.papyrus.infra.core.architecture.impl.ArchitectureContextImpl#getExtensionPrefix <em>Extension Prefix</em>}</li>
  *   <li>{@link org.eclipse.papyrus.infra.core.architecture.impl.ArchitectureContextImpl#getCreationCommandClass <em>Creation Command Class</em>}</li>
  *   <li>{@link org.eclipse.papyrus.infra.core.architecture.impl.ArchitectureContextImpl#getConversionCommandClass <em>Conversion Command Class</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.infra.core.architecture.impl.ArchitectureContextImpl#getGeneralContext <em>General Context</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.infra.core.architecture.impl.ArchitectureContextImpl#getExtendedContexts <em>Extended Contexts</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.infra.core.architecture.impl.ArchitectureContextImpl#isExtension <em>Extension</em>}</li>
  * </ul>
  *
  * @generated
@@ -93,6 +92,16 @@
 	protected static final String CONVERSION_COMMAND_CLASS_EDEFAULT = null;
 
 	/**
+	 * The default value of the '{@link #isExtension() <em>Extension</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExtension()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EXTENSION_EDEFAULT = false;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -240,24 +249,17 @@
 	 * @generated
 	 */
 	@Override
-	public boolean ceationCommandClassExists(DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics.add
-					(new BasicDiagnostic
-						(Diagnostic.ERROR,
-						 ArchitectureValidator.DIAGNOSTIC_SOURCE,
-						 ArchitectureValidator.ARCHITECTURE_CONTEXT__CEATION_COMMAND_CLASS_EXISTS,
-						 EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "ceationCommandClassExists", EObjectValidator.getObjectLabel(this, context) }), //$NON-NLS-1$ //$NON-NLS-2$
-						 new Object [] { this }));
-			}
-			return false;
-		}
-		return true;
+	public ArchitectureContext getGeneralContext() {
+		return (ArchitectureContext)eDynamicGet(ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT, ArchitecturePackage.Literals.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT, true, true);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ArchitectureContext basicGetGeneralContext() {
+		return (ArchitectureContext)eDynamicGet(ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT, ArchitecturePackage.Literals.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT, false, true);
 	}
 
 	/**
@@ -266,24 +268,137 @@
 	 * @generated
 	 */
 	@Override
+	public void setGeneralContext(ArchitectureContext newGeneralContext) {
+		eDynamicSet(ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT, ArchitecturePackage.Literals.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT, newGeneralContext);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public EList<ArchitectureContext> getExtendedContexts() {
+		return (EList<ArchitectureContext>)eDynamicGet(ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS, ArchitecturePackage.Literals.ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS, true, true);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean isExtension() {
+		return ArchitectureContextOperations.isExtension(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	public boolean ceationCommandClassExists(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.ceationCommandClassExists(this, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
 	public boolean conversionCommandClassExists(DiagnosticChain diagnostics, Map<Object, Object> context) {
-		// TODO: implement this method
-		// -> specify the condition that violates the invariant
-		// -> verify the details of the diagnostic, including severity and message
-		// Ensure that you remove @generated or mark it @generated NOT
-		if (false) {
-			if (diagnostics != null) {
-				diagnostics.add
-					(new BasicDiagnostic
-						(Diagnostic.ERROR,
-						 ArchitectureValidator.DIAGNOSTIC_SOURCE,
-						 ArchitectureValidator.ARCHITECTURE_CONTEXT__CONVERSION_COMMAND_CLASS_EXISTS,
-						 EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "conversionCommandClassExists", EObjectValidator.getObjectLabel(this, context) }), //$NON-NLS-1$ //$NON-NLS-2$
-						 new Object [] { this }));
-			}
-			return false;
-		}
-		return true;
+		return ArchitectureContextOperations.conversionCommandClassExists(this, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean isConsistentWith(ArchitectureContext context) {
+		return ArchitectureContextOperations.isConsistentWith(this, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean contextExtensionsAreConsistent(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.contextExtensionsAreConsistent(this, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean contextGeneralizationIsConsistent(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.contextGeneralizationIsConsistent(this, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean creationCommandClassRequired(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.creationCommandClassRequired(this, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public EList<ArchitectureContext> allExtendedContexts() {
+		return ArchitectureContextOperations.allExtendedContexts(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public EList<ArchitectureContext> allGeneralContexts() {
+		return ArchitectureContextOperations.allGeneralContexts(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean extensionCycle(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.extensionCycle(this, diagnostics, context);
+	}
+					
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean generalizationCycle(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.generalizationCycle(this, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public boolean generalNotExtended(DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return ArchitectureContextOperations.generalNotExtended(this, diagnostics, context);
 	}
 
 	/**
@@ -298,8 +413,9 @@
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT__VIEWPOINTS:
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getViewpoints()).basicAdd(otherEnd, msgs);
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT__DOMAIN:
-				if (eInternalContainer() != null)
+				if (eInternalContainer() != null) {
 					msgs = eBasicRemoveFromContainer(msgs);
+				}
 				return basicSetDomain((ArchitectureDomain)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
@@ -357,6 +473,15 @@
 				return getCreationCommandClass();
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT__CONVERSION_COMMAND_CLASS:
 				return getConversionCommandClass();
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT:
+				if (resolve) {
+					return getGeneralContext();
+				}
+				return basicGetGeneralContext();
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS:
+				return getExtendedContexts();
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENSION:
+				return isExtension();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -394,6 +519,13 @@
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT__CONVERSION_COMMAND_CLASS:
 				setConversionCommandClass((String)newValue);
 				return;
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT:
+				setGeneralContext((ArchitectureContext)newValue);
+				return;
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS:
+				getExtendedContexts().clear();
+				getExtendedContexts().addAll((Collection<? extends ArchitectureContext>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -427,6 +559,12 @@
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT__CONVERSION_COMMAND_CLASS:
 				setConversionCommandClass(CONVERSION_COMMAND_CLASS_EDEFAULT);
 				return;
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT:
+				setGeneralContext((ArchitectureContext)null);
+				return;
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS:
+				getExtendedContexts().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -453,6 +591,12 @@
 				return CREATION_COMMAND_CLASS_EDEFAULT == null ? getCreationCommandClass() != null : !CREATION_COMMAND_CLASS_EDEFAULT.equals(getCreationCommandClass());
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT__CONVERSION_COMMAND_CLASS:
 				return CONVERSION_COMMAND_CLASS_EDEFAULT == null ? getConversionCommandClass() != null : !CONVERSION_COMMAND_CLASS_EDEFAULT.equals(getConversionCommandClass());
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__GENERAL_CONTEXT:
+				return basicGetGeneralContext() != null;
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS:
+				return !getExtendedContexts().isEmpty();
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT__EXTENSION:
+				return isExtension() != EXTENSION_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -470,6 +614,24 @@
 				return ceationCommandClassExists((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
 			case ArchitecturePackage.ARCHITECTURE_CONTEXT___CONVERSION_COMMAND_CLASS_EXISTS__DIAGNOSTICCHAIN_MAP:
 				return conversionCommandClassExists((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___IS_CONSISTENT_WITH__ARCHITECTURECONTEXT:
+				return isConsistentWith((ArchitectureContext)arguments.get(0));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___CONTEXT_EXTENSIONS_ARE_CONSISTENT__DIAGNOSTICCHAIN_MAP:
+				return contextExtensionsAreConsistent((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___CONTEXT_GENERALIZATION_IS_CONSISTENT__DIAGNOSTICCHAIN_MAP:
+				return contextGeneralizationIsConsistent((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___CREATION_COMMAND_CLASS_REQUIRED__DIAGNOSTICCHAIN_MAP:
+				return creationCommandClassRequired((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___ALL_EXTENDED_CONTEXTS:
+				return allExtendedContexts();
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___ALL_GENERAL_CONTEXTS:
+				return allGeneralContexts();
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___EXTENSION_CYCLE__DIAGNOSTICCHAIN_MAP:
+				return extensionCycle((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___GENERALIZATION_CYCLE__DIAGNOSTICCHAIN_MAP:
+				return generalizationCycle((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case ArchitecturePackage.ARCHITECTURE_CONTEXT___GENERAL_NOT_EXTENDED__DIAGNOSTICCHAIN_MAP:
+				return generalNotExtended((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
 		}
 		return super.eInvoke(operationID, arguments);
 	}
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureDescriptionLanguageImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureDescriptionLanguageImpl.java
index f425de0..af4f2b0 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureDescriptionLanguageImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureDescriptionLanguageImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -170,7 +171,9 @@
 			case ArchitecturePackage.ARCHITECTURE_DESCRIPTION_LANGUAGE__REPRESENTATION_KINDS:
 				return getRepresentationKinds();
 			case ArchitecturePackage.ARCHITECTURE_DESCRIPTION_LANGUAGE__METAMODEL:
-				if (resolve) return getMetamodel();
+				if (resolve) {
+					return getMetamodel();
+				}
 				return basicGetMetamodel();
 			case ArchitecturePackage.ARCHITECTURE_DESCRIPTION_LANGUAGE__PROFILES:
 				return getProfiles();
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitecturePackageImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitecturePackageImpl.java
index e9d91fa..2131f8c 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitecturePackageImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitecturePackageImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -173,7 +174,9 @@
 	 * @generated
 	 */
 	public static ArchitecturePackage init() {
-		if (isInited) return (ArchitecturePackage)EPackage.Registry.INSTANCE.getEPackage(ArchitecturePackage.eNS_URI);
+		if (isInited) {
+			return (ArchitecturePackage)EPackage.Registry.INSTANCE.getEPackage(ArchitecturePackage.eNS_URI);
+		}
 
 		// Obtain or create and register package
 		Object registeredArchitecturePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
@@ -575,6 +578,36 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getArchitectureContext_GeneralContext() {
+		return (EReference)architectureContextEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getArchitectureContext_ExtendedContexts() {
+		return (EReference)architectureContextEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getArchitectureContext_Extension() {
+		return (EAttribute)architectureContextEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EOperation getArchitectureContext__CeationCommandClassExists__DiagnosticChain_Map() {
 		return architectureContextEClass.getEOperations().get(0);
 	}
@@ -595,6 +628,96 @@
 	 * @generated
 	 */
 	@Override
+	public EOperation getArchitectureContext__IsConsistentWith__ArchitectureContext() {
+		return architectureContextEClass.getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__ContextExtensionsAreConsistent__DiagnosticChain_Map() {
+		return architectureContextEClass.getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__ContextGeneralizationIsConsistent__DiagnosticChain_Map() {
+		return architectureContextEClass.getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__CreationCommandClassRequired__DiagnosticChain_Map() {
+		return architectureContextEClass.getEOperations().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__AllExtendedContexts() {
+		return architectureContextEClass.getEOperations().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__AllGeneralContexts() {
+		return architectureContextEClass.getEOperations().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__ExtensionCycle__DiagnosticChain_Map() {
+		return architectureContextEClass.getEOperations().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__GeneralizationCycle__DiagnosticChain_Map() {
+		return architectureContextEClass.getEOperations().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getArchitectureContext__GeneralNotExtended__DiagnosticChain_Map() {
+		return architectureContextEClass.getEOperations().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getArchitectureFramework() {
 		return architectureFrameworkEClass;
 	}
@@ -684,7 +807,9 @@
 	 * @generated
 	 */
 	public void createPackageContents() {
-		if (isCreated) return;
+		if (isCreated) {
+			return;
+		}
 		isCreated = true;
 
 		// Create classes and their features
@@ -731,8 +856,20 @@
 		createEAttribute(architectureContextEClass, ARCHITECTURE_CONTEXT__EXTENSION_PREFIX);
 		createEAttribute(architectureContextEClass, ARCHITECTURE_CONTEXT__CREATION_COMMAND_CLASS);
 		createEAttribute(architectureContextEClass, ARCHITECTURE_CONTEXT__CONVERSION_COMMAND_CLASS);
+		createEReference(architectureContextEClass, ARCHITECTURE_CONTEXT__GENERAL_CONTEXT);
+		createEReference(architectureContextEClass, ARCHITECTURE_CONTEXT__EXTENDED_CONTEXTS);
+		createEAttribute(architectureContextEClass, ARCHITECTURE_CONTEXT__EXTENSION);
 		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___CEATION_COMMAND_CLASS_EXISTS__DIAGNOSTICCHAIN_MAP);
 		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___CONVERSION_COMMAND_CLASS_EXISTS__DIAGNOSTICCHAIN_MAP);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___IS_CONSISTENT_WITH__ARCHITECTURECONTEXT);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___CONTEXT_EXTENSIONS_ARE_CONSISTENT__DIAGNOSTICCHAIN_MAP);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___CONTEXT_GENERALIZATION_IS_CONSISTENT__DIAGNOSTICCHAIN_MAP);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___CREATION_COMMAND_CLASS_REQUIRED__DIAGNOSTICCHAIN_MAP);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___ALL_EXTENDED_CONTEXTS);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___ALL_GENERAL_CONTEXTS);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___EXTENSION_CYCLE__DIAGNOSTICCHAIN_MAP);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___GENERALIZATION_CYCLE__DIAGNOSTICCHAIN_MAP);
+		createEOperation(architectureContextEClass, ARCHITECTURE_CONTEXT___GENERAL_NOT_EXTENDED__DIAGNOSTICCHAIN_MAP);
 
 		architectureFrameworkEClass = createEClass(ARCHITECTURE_FRAMEWORK);
 
@@ -761,7 +898,9 @@
 	 * @generated
 	 */
 	public void initializePackageContents() {
-		if (isInitialized) return;
+		if (isInitialized) {
+			return;
+		}
 		isInitialized = true;
 
 		// Initialize package
@@ -771,7 +910,6 @@
 
 		// Obtain other dependent packages
 		ElementTypesConfigurationsPackage theElementTypesConfigurationsPackage = (ElementTypesConfigurationsPackage)EPackage.Registry.INSTANCE.getEPackage(ElementTypesConfigurationsPackage.eNS_URI);
-		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
 
 		// Create type parameters
 
@@ -829,24 +967,88 @@
 		initEReference(getArchitectureContext_ElementTypes(), theElementTypesConfigurationsPackage.getElementTypeSetConfiguration(), null, "elementTypes", null, 0, -1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getArchitectureContext_Domain(), this.getArchitectureDomain(), this.getArchitectureDomain_Contexts(), "domain", null, 1, 1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEAttribute(getArchitectureContext_ExtensionPrefix(), ecorePackage.getEString(), "extensionPrefix", null, 0, 1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getArchitectureContext_CreationCommandClass(), ecorePackage.getEString(), "creationCommandClass", null, 1, 1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getArchitectureContext_CreationCommandClass(), ecorePackage.getEString(), "creationCommandClass", null, 0, 1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEAttribute(getArchitectureContext_ConversionCommandClass(), ecorePackage.getEString(), "conversionCommandClass", null, 0, 1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getArchitectureContext_GeneralContext(), this.getArchitectureContext(), null, "generalContext", null, 0, 1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getArchitectureContext_ExtendedContexts(), this.getArchitectureContext(), null, "extendedContexts", null, 0, -1, ArchitectureContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getArchitectureContext_Extension(), ecorePackage.getEBoolean(), "extension", null, 1, 1, ArchitectureContext.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		EOperation op = initEOperation(getArchitectureContext__CeationCommandClassExists__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "ceationCommandClassExists", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-		addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-		EGenericType g1 = createEGenericType(theEcorePackage.getEMap());
-		EGenericType g2 = createEGenericType(theEcorePackage.getEJavaObject());
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		EGenericType g1 = createEGenericType(ecorePackage.getEMap());
+		EGenericType g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(theEcorePackage.getEJavaObject());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
 		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
 
 		op = initEOperation(getArchitectureContext__ConversionCommandClassExists__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "conversionCommandClassExists", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-		addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
-		g1 = createEGenericType(theEcorePackage.getEMap());
-		g2 = createEGenericType(theEcorePackage.getEJavaObject());
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(theEcorePackage.getEJavaObject());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__IsConsistentWith__ArchitectureContext(), ecorePackage.getEBoolean(), "isConsistentWith", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, this.getArchitectureContext(), "context", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__ContextExtensionsAreConsistent__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "contextExtensionsAreConsistent", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__ContextGeneralizationIsConsistent__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "contextGeneralizationIsConsistent", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__CreationCommandClassRequired__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "creationCommandClassRequired", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		initEOperation(getArchitectureContext__AllExtendedContexts(), this.getArchitectureContext(), "allExtendedContexts", 0, -1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		initEOperation(getArchitectureContext__AllGeneralContexts(), this.getArchitectureContext(), "allGeneralContexts", 0, -1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__ExtensionCycle__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "extensionCycle", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__GeneralizationCycle__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "generalizationCycle", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+
+		op = initEOperation(getArchitectureContext__GeneralNotExtended__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "generalNotExtended", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
 		addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
 
@@ -863,6 +1065,32 @@
 
 		// Create resource
 		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/papyrus/infra/core/architecture
+		createArchitectureAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/papyrus/infra/core/architecture</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createArchitectureAnnotations() {
+		String source = "http://www.eclipse.org/papyrus/infra/core/architecture"; //$NON-NLS-1$
+		addAnnotation
+		  (getArchitectureContext_CreationCommandClass(),
+		   source,
+		   new String[] {
+			   "classConstraint", "bundleclass://org.eclipse.papyrus.infra.architecture/org.eclipse.papyrus.infra.architecture.commands.IModelCreationCommand" //$NON-NLS-1$ //$NON-NLS-2$
+		   });
+		addAnnotation
+		  (getArchitectureContext_ConversionCommandClass(),
+		   source,
+		   new String[] {
+			   "classConstraint", "bundleclass://org.eclipse.papyrus.infra.architecture/org.eclipse.papyrus.infra.architecture.commands.IModelConversionCommand" //$NON-NLS-1$ //$NON-NLS-2$
+		   });
 	}
 
 } //ArchitecturePackageImpl
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureViewpointImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureViewpointImpl.java
index 2db3a89..49b5651 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureViewpointImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ArchitectureViewpointImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -124,8 +125,9 @@
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case ArchitecturePackage.ARCHITECTURE_VIEWPOINT__CONTEXT:
-				if (eInternalContainer() != null)
+				if (eInternalContainer() != null) {
 					msgs = eBasicRemoveFromContainer(msgs);
+				}
 				return basicSetContext((ArchitectureContext)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ConcernImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ConcernImpl.java
index 402d420..ff000e3 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ConcernImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/ConcernImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -94,8 +95,9 @@
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case ArchitecturePackage.CONCERN__DOMAIN:
-				if (eInternalContainer() != null)
+				if (eInternalContainer() != null) {
 					msgs = eBasicRemoveFromContainer(msgs);
+				}
 				return basicSetDomain((ArchitectureDomain)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/RepresentationKindImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/RepresentationKindImpl.java
index f1235e0..93ddf04 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/RepresentationKindImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/RepresentationKindImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -142,8 +143,9 @@
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case ArchitecturePackage.REPRESENTATION_KIND__LANGUAGE:
-				if (eInternalContainer() != null)
+				if (eInternalContainer() != null) {
 					msgs = eBasicRemoveFromContainer(msgs);
+				}
 				return basicSetLanguage((ArchitectureDescriptionLanguage)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/StakeholderImpl.java b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/StakeholderImpl.java
index 6b0a9d5..ddd2260 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/StakeholderImpl.java
+++ b/cdo/bundles/org.eclipse.papyrus.infra.core.architecture.cdo/src/org/eclipse/papyrus/infra/core/architecture/cdo/StakeholderImpl.java
@@ -1,5 +1,5 @@
 /**
- *  Copyright (c) 2017 CEA LIST and others.
+ *  Copyright (c) 2017, 2021 CEA LIST and others.
  * 
  *  All rights reserved. This program and the accompanying materials
  *  are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  * 
  *  Contributors:
  *  Maged Elaasar - Initial API and implementation
+ *  Christian W. Damus - bug 570486
  */
 package org.eclipse.papyrus.infra.core.architecture.cdo;
 
@@ -111,8 +112,9 @@
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case ArchitecturePackage.STAKEHOLDER__DOMAIN:
-				if (eInternalContainer() != null)
+				if (eInternalContainer() != null) {
 					msgs = eBasicRemoveFromContainer(msgs);
+				}
 				return basicSetDomain((ArchitectureDomain)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
diff --git a/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF b/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF
index aa84339..6ed86f7 100644
--- a/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF
+++ b/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF
@@ -14,7 +14,7 @@
  org.eclipse.gmf.runtime.notation;bundle-version="[1.10.0,2.0.0)";visibility:=reexport,
  org.eclipse.papyrus.infra.gmfdiag.css.model;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.core.databinding.observable;bundle-version="[1.10.0,2.0.0)"
-Import-Package: com.google.common.collect;version="[27.1.0,28.0.0)"
+Import-Package: com.google.common.collect;version="[30.1.0, 31.0.0)"
 Automatic-Module-Name: org.eclipse.papyrus.infra.gmfdiag.css.cdo
 Export-Package: org.eclipse.papyrus.infra.gmfdiag.css.cdo;version="2.2.1",
  org.eclipse.papyrus.infra.gmfdiag.css.cdo.factory;version="2.2.1",
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
index 6f5b07e..a84c254 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
@@ -122,7 +122,7 @@
 				-->
 				<replacestring from="private static final int ADAPTING = 1 &lt;&lt; 7;" to="private boolean adapting;" />
 				<replacestring from="(eFlags &amp; ADAPTING) == 0" to="!adapting" />
-				<replacestring from="eFlags |= ADAPTING;" to="adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view != null &amp;&amp; !view.isClosed()) {" />
+				<replacestring from="eFlags |= ADAPTING;" to="adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null &amp;&amp; !view.isClosed())) {" />
 				<replacestring from="eFlags &amp;= ~ADAPTING;" to="adapting = false; }" />
 
 				<tokenfilter>
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
index 23ca989..e87eae0 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
@@ -912,7 +912,7 @@
 	public EList<Adapter> eAdapters() {
 
 		if (!adapting && !eBasicHasAdapters()) {
-			adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view != null && !view.isClosed()) {
+			adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null && !view.isClosed())) {
 
 			CacheAdapter cacheAdapter = getCacheAdapter();
 
diff --git a/cdo/features/org.eclipse.papyrus.cdo.feature/feature.xml b/cdo/features/org.eclipse.papyrus.cdo.feature/feature.xml
index aa461d2..a9633f3 100755
--- a/cdo/features/org.eclipse.papyrus.cdo.feature/feature.xml
+++ b/cdo/features/org.eclipse.papyrus.cdo.feature/feature.xml
@@ -34,6 +34,11 @@
 
    <requires>
       <import feature="org.eclipse.papyrus.sdk.feature" version="5.0.0" match="compatible"/>
+      <import plugin="org.eclipse.emf.cdo.ecore" version="1.1.2" match="compatible"/>
+      <import plugin="org.eclipse.emf.cdo.gmf.notation" version="1.10.1" match="compatible"/>
+      <import plugin="org.eclipse.emf.cdo.genmodel" version="1.0.0" match="compatible"/>
+      <import feature="org.eclipse.emf.cdo.sdk" version="5.6.0" match="compatible"/>
+      <import feature="org.eclipse.emf.cdo.dawn" version="2.3.0" match="compatible"/>
    </requires>
 
    <plugin
@@ -57,13 +62,6 @@
          version="0.0.0"
          unpack="false"/>
 
-   <!--<plugin
-         id="org.eclipse.papyrus.cdo.ui.customization.properties"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/> -->
-
    <plugin
          id="org.eclipse.papyrus.cdo.validation.problems"
          download-size="0"
@@ -104,7 +102,7 @@
          download-size="0"
          install-size="0"
          version="0.0.0"/>
-         
+
    <plugin
          id="org.eclipse.papyrus.cdo.security"
          download-size="0"
diff --git a/cdo/pom.xml b/cdo/pom.xml
index aed75f6..8c624a4 100755
--- a/cdo/pom.xml
+++ b/cdo/pom.xml
@@ -18,16 +18,9 @@
 		<xtext.version>2.23.0</xtext.version>
 		<jacoco.version>0.8.6</jacoco.version>
 		<testConfig>CI_TESTS_CONFIG</testConfig>
-		<test.argLine>-Xms512m -Xmx2048m -XX:SoftRefLRUPolicyMSPerMB=100
-		</test.argLine>
+		<test.argLine>-Xms512m -Xmx2048m -XX:SoftRefLRUPolicyMSPerMB=100</test.argLine>
 		<java.release>11</java.release>
 		<mylyn.wikitext.version>3.0.29</mylyn.wikitext.version>
-
-		<targetPlatform.groupID>org.eclipse.papyrus.cdo
-		</targetPlatform.groupID>
-		<targetPlatform.artifactID>org.eclipse.papyrus.cdo.targetplatform
-		</targetPlatform.artifactID>
-		<targetPlatform.version>1.2.0-SNAPSHOT</targetPlatform.version>
 	</properties>
 
 
@@ -44,8 +37,7 @@
 		<pluginRepository>
 			<id>org.eclipse.cbi.maven.plugins</id>
 			<name>Eclipse CBI</name>
-			<url>https://repo.eclipse.org/content/repositories/cbi-releases/
-			</url>
+			<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
 			<releases>
 				<enabled>true</enabled>
 			</releases>
@@ -335,26 +327,35 @@
 
 	<profiles>
 		<profile>
-			<id>eclipsehippIntegration</id>
+			<id>release</id>
 			<activation>
-				<property>
-					<name>HUDSON_URL</name>
-				</property>
+				<activeByDefault>true</activeByDefault>
 			</activation>
 			<properties>
-				<target.suffix>eclipse</target.suffix> <!-- set to 'eclipse' when building on HIPP, to improve performances -->
+				<targetPlatform.groupID>org.eclipse.papyrus.cdo</targetPlatform.groupID>
+				<targetPlatform.artifactID>org.eclipse.papyrus.cdo.targetplatform</targetPlatform.artifactID>
+				<targetPlatform.version>1.2.0-SNAPSHOT</targetPlatform.version>
 			</properties>
+			<modules>
+				<module>releng/targetplatforms/${targetPlatform.artifactID}</module>
+			</modules>
 		</profile>
 		<profile>
-			<id>localIntegration</id>
+			<id>nightly</id>
 			<activation>
 				<property>
-					<name>!HUDSON_URL</name>
+					<name>targetstream</name>
+					<value>nightly</value>
 				</property>
 			</activation>
 			<properties>
-				<target.suffix>portable</target.suffix>
+				<targetPlatform.groupID>org.eclipse.papyrus.cdo</targetPlatform.groupID>
+				<targetPlatform.artifactID>org.eclipse.papyrus.cdo.nightly.targetplatform</targetPlatform.artifactID>
+				<targetPlatform.version>1.2.0-SNAPSHOT</targetPlatform.version>
 			</properties>
+			<modules>
+				<module>releng/targetplatforms/${targetPlatform.artifactID}</module>
+			</modules>
 		</profile>
 
 		<profile>
diff --git a/cdo/releng/org.eclipse.papyrus.cdo.p2/category.xml b/cdo/releng/org.eclipse.papyrus.cdo.p2/category.xml
index 9ef1f8e..bd89e96 100755
--- a/cdo/releng/org.eclipse.papyrus.cdo.p2/category.xml
+++ b/cdo/releng/org.eclipse.papyrus.cdo.p2/category.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <site>
    <feature url="features/org.eclipse.papyrus.cdo.feature_1.2.0.qualifier.jar" id="org.eclipse.papyrus.cdo.feature" version="1.2.0.qualifier">
       <category name="org.eclipse.papyrus.collaborativemodeling"/>
@@ -23,4 +22,5 @@
          This category provides the CDO&apos;ified version of metamodels (UML, CSS, style, ...), in order to get the best perfomance with CDO.
       </description>
    </category-def>
+   <repository-reference location="https://download.eclipse.org/modeling/emf/cdo/updates/integration/latest/" enabled="true" />
 </site>
diff --git a/cdo/releng/pom.xml b/cdo/releng/pom.xml
index 4fd2539..ad3991c 100755
--- a/cdo/releng/pom.xml
+++ b/cdo/releng/pom.xml
@@ -17,7 +17,6 @@
 	<!-- Modules to build -->
 	<modules>
 		<module>org.eclipse.papyrus.cdo.p2</module>
-		<module>targetplatforms</module>
 	</modules>
 	
 </project>
\ No newline at end of file
diff --git a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/org.eclipse.papyrus.cdo.nightly.targetplatform.target b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/org.eclipse.papyrus.cdo.nightly.targetplatform.target
new file mode 100755
index 0000000..90eecf5
--- /dev/null
+++ b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/org.eclipse.papyrus.cdo.nightly.targetplatform.target
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="CollaborativeModeling CDO - Papyrus Nightly" sequenceNumber="1620202902">
+  <locations>
+    <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="0.0.0"/>
+      <unit id="org.eclipse.papyrus.junit.utils" version="0.0.0"/>
+      <unit id="org.eclipse.papyrus.junit.framework" version="0.0.0"/>
+      <unit id="org.eclipse.papyrus.toolsmiths.feature.feature.group" version="0.0.0"/>
+      <repository id="papyrus" location="https://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/master/"/>
+    </location>
+    <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
+      <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+      <unit id="org.eclipse.uml2.sdk.feature.group" version="0.0.0"/>
+      <repository id="eclipse" location="https://download.eclipse.org/releases/latest/"/>
+    </location>
+    <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.dawn.feature.group" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.ecore" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.genmodel" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.gmf.notation" version="0.0.0"/>
+      <repository id="cdo" location="https://download.eclipse.org/modeling/emf/cdo/updates/integration/latest/"/>
+    </location>
+  </locations>
+</target>
diff --git a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/org.eclipse.papyrus.cdo.nightly.targetplatform.tpd b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/org.eclipse.papyrus.cdo.nightly.targetplatform.tpd
new file mode 100755
index 0000000..1df2e48
--- /dev/null
+++ b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/org.eclipse.papyrus.cdo.nightly.targetplatform.tpd
@@ -0,0 +1,25 @@
+target "CollaborativeModeling CDO - Papyrus Nightly" with source requirements
+
+/** Manual dependencies */
+/* Papyrus Nightly */
+location "https://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/master/" papyrus {
+	org.eclipse.papyrus.sdk.feature.feature.group lazy
+	org.eclipse.papyrus.junit.utils lazy
+	org.eclipse.papyrus.junit.framework lazy
+	org.eclipse.papyrus.toolsmiths.feature.feature.group lazy
+}
+
+location "https://download.eclipse.org/releases/latest/" eclipse {
+	org.eclipse.sdk.feature.group lazy
+	org.eclipse.emf.sdk.feature.group lazy
+	org.eclipse.uml2.sdk.feature.group lazy
+}
+
+// manual update 
+location cdo "https://download.eclipse.org/modeling/emf/cdo/updates/integration/latest/" {
+	org.eclipse.emf.cdo.sdk.feature.group lazy
+	org.eclipse.emf.cdo.dawn.feature.group lazy
+	org.eclipse.emf.cdo.ecore lazy
+	org.eclipse.emf.cdo.genmodel lazy
+	org.eclipse.emf.cdo.gmf.notation lazy
+}
diff --git a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/pom.xml b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/pom.xml
new file mode 100755
index 0000000..f483e7e
--- /dev/null
+++ b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.nightly.targetplatform/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.eclipse.papyrus.cdo</groupId>
+		<artifactId>org.eclipse.papyrus.cdo-targetplatforms</artifactId>		
+		<version>1.2.0-SNAPSHOT</version>
+	</parent>	
+	
+	<artifactId>org.eclipse.papyrus.cdo.nightly.targetplatform</artifactId>
+	<packaging>eclipse-target-definition</packaging>
+	
+</project>
\ No newline at end of file
diff --git a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target
index af0b8e8..5daea4e 100755
--- a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target
+++ b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target
@@ -1,33 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="CollaborativeModeling CDO - Papyrus Nightly" sequenceNumber="1610359110">
+<target name="CollaborativeModeling CDO - Papyrus latest release" sequenceNumber="1620202942">
   <locations>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.papyrus.junit.utils" version="0.0.0"/>
       <unit id="org.eclipse.papyrus.junit.framework" version="0.0.0"/>
       <unit id="org.eclipse.papyrus.toolsmiths.feature.feature.group" version="0.0.0"/>
-      <repository id="papyrus" location="https://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/master/"/>
+      <repository id="papyrus" location="https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/5.2/I2/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.uml2.sdk.feature.group" version="0.0.0"/>
-      <repository id="eclipse" location="https://download.eclipse.org/releases/2020-12/"/>
+      <repository id="eclipse" location="https://download.eclipse.org/releases/2021-03/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.emf.cdo.explorer" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.dawn" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.dawn.gmf" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.admin" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.explorer.ui" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.ui.admin" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.server.ocl" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.dawn.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.cdo.ecore" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.genmodel" version="0.0.0"/>
       <unit id="org.eclipse.emf.cdo.gmf.notation" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.security" version="0.0.0"/>
-      <unit id="org.eclipse.emf.cdo.ui.compare" version="0.0.0"/>
       <repository id="cdo" location="https://download.eclipse.org/modeling/emf/cdo/updates/integration/latest/"/>
     </location>
   </locations>
diff --git a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd
index da55580..e867ee2 100755
--- a/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd
+++ b/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd
@@ -1,39 +1,25 @@
-target "CollaborativeModeling CDO - Papyrus Nightly" with source requirements
-
-
+target "CollaborativeModeling CDO - Papyrus latest release" with source requirements
 
 /** Manual dependencies */
-
 /* Papyrus Nightly */
-location "https://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/master/" papyrus {
- org.eclipse.papyrus.sdk.feature.feature.group lazy
- org.eclipse.papyrus.junit.utils lazy
- org.eclipse.papyrus.junit.framework lazy
- org.eclipse.papyrus.toolsmiths.feature.feature.group lazy
+location "https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/5.2/I2/" papyrus {
+	org.eclipse.papyrus.sdk.feature.feature.group lazy
+	org.eclipse.papyrus.junit.utils lazy
+	org.eclipse.papyrus.junit.framework lazy
+	org.eclipse.papyrus.toolsmiths.feature.feature.group lazy
 }
 
-location "https://download.eclipse.org/releases/2020-12/" eclipse {
- org.eclipse.sdk.feature.group lazy
- org.eclipse.emf.sdk.feature.group lazy
- org.eclipse.uml2.sdk.feature.group lazy
+location "https://download.eclipse.org/releases/2021-03/" eclipse {
+	org.eclipse.sdk.feature.group lazy
+	org.eclipse.emf.sdk.feature.group lazy
+	org.eclipse.uml2.sdk.feature.group lazy
 }
 
-
-//location Sysml "http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/2019-06"{
-// 	org.eclipse.papyrus.sysml14.feature.feature.group
-//}
- 
-//manual update 
+// manual update 
 location cdo "https://download.eclipse.org/modeling/emf/cdo/updates/integration/latest/" {
- org.eclipse.emf.cdo.explorer lazy
- org.eclipse.emf.cdo.dawn lazy
- org.eclipse.emf.cdo.dawn.gmf lazy
- org.eclipse.emf.cdo.admin lazy
- org.eclipse.emf.cdo.explorer.ui lazy
- org.eclipse.emf.cdo.ui.admin lazy
- org.eclipse.emf.cdo.server.ocl lazy
- org.eclipse.emf.cdo.ecore lazy
- org.eclipse.emf.cdo.gmf.notation lazy
- org.eclipse.emf.cdo.security lazy
- org.eclipse.emf.cdo.ui.compare lazy
+	org.eclipse.emf.cdo.sdk.feature.group lazy
+	org.eclipse.emf.cdo.dawn.feature.group lazy
+	org.eclipse.emf.cdo.ecore lazy
+	org.eclipse.emf.cdo.genmodel lazy
+	org.eclipse.emf.cdo.gmf.notation lazy
 }
diff --git a/cdo/releng/targetplatforms/pom.xml b/cdo/releng/targetplatforms/pom.xml
index 763fde5..cda2cfa 100755
--- a/cdo/releng/targetplatforms/pom.xml
+++ b/cdo/releng/targetplatforms/pom.xml
@@ -1,18 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
-	
+
 	<parent>
 		<groupId>org.eclipse.papyrus.cdo</groupId>
-		<artifactId>org.eclipse.papyrus.cdo-releng</artifactId>		
+		<artifactId>org.eclipse.papyrus.cdo-releng</artifactId>
 		<version>1.2.0-SNAPSHOT</version>
 	</parent>
-	
+
 	<artifactId>org.eclipse.papyrus.cdo-targetplatforms</artifactId>
 	<packaging>pom</packaging>
-	
-	<modules>
-		<module>org.eclipse.papyrus.cdo.targetplatform</module>
-	</modules>
-	
+
 </project>
\ No newline at end of file
diff --git a/cdo/tests/org.eclipse.papyrus.cdo.core.tests/META-INF/MANIFEST.MF b/cdo/tests/org.eclipse.papyrus.cdo.core.tests/META-INF/MANIFEST.MF
index 10c4361..760c7f0 100755
--- a/cdo/tests/org.eclipse.papyrus.cdo.core.tests/META-INF/MANIFEST.MF
+++ b/cdo/tests/org.eclipse.papyrus.cdo.core.tests/META-INF/MANIFEST.MF
@@ -30,7 +30,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Description: %pluginDescription
 Bundle-SymbolicName: org.eclipse.papyrus.cdo.core.tests
-Import-Package: com.google.common.base;version="[27.1.0,28.0.0)",
- com.google.common.collect;version="[27.1.0,28.0.0)",
- com.google.common.io;version="[27.1.0,28.0.0)"
+Import-Package: com.google.common.base;version="[30.1.0, 31.0.0)",
+ com.google.common.collect;version="[30.1.0, 31.0.0)",
+ com.google.common.io;version="[30.1.0, 31.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/cdo/tests/org.eclipse.papyrus.cdo.ui.tests/META-INF/MANIFEST.MF b/cdo/tests/org.eclipse.papyrus.cdo.ui.tests/META-INF/MANIFEST.MF
index d6ba57c..fc7be4d 100755
--- a/cdo/tests/org.eclipse.papyrus.cdo.ui.tests/META-INF/MANIFEST.MF
+++ b/cdo/tests/org.eclipse.papyrus.cdo.ui.tests/META-INF/MANIFEST.MF
@@ -26,7 +26,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Description: %pluginDescription
 Bundle-SymbolicName: org.eclipse.papyrus.cdo.ui.tests;singleton:=true
-Import-Package: com.google.common.base;version="[27.1.0,28.0.0)",
- com.google.common.cache;version="[27.1.0,28.0.0)",
- com.google.common.collect;version="[27.1.0,28.0.0)"
+Import-Package: com.google.common.base;version="[30.1.0, 31.0.0)",
+ com.google.common.cache;version="[30.1.0, 31.0.0)",
+ com.google.common.collect;version="[30.1.0, 31.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/META-INF/MANIFEST.MF b/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/META-INF/MANIFEST.MF
index e632819..c9138a4 100755
--- a/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/META-INF/MANIFEST.MF
+++ b/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/META-INF/MANIFEST.MF
@@ -14,6 +14,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Description: %pluginDescription
 Bundle-SymbolicName: org.eclipse.papyrus.cdo.uml.search.ui.tests
-Import-Package: com.google.common.base;version="[27.1.0,28.0.0)",
- com.google.common.collect;version="[27.1.0,28.0.0)"
+Import-Package: com.google.common.base;version="[30.1.0, 31.0.0)",
+ com.google.common.collect;version="[30.1.0, 31.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-11