[releng] Prepare incubation features and plugins for Oxygen release
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project b/alf/org.eclipse.papyrus.uml.alf.feature/.project
old mode 100755
new mode 100644
similarity index 83%
copy from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project
copy to alf/org.eclipse.papyrus.uml.alf.feature/.project
index c3247ac..697b210
--- a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project
+++ b/alf/org.eclipse.papyrus.uml.alf.feature/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.papyrus.extra.dsml.validation.feature</name>
+	<name>org.eclipse.papyrus.uml.alf.feature</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/build.properties b/alf/org.eclipse.papyrus.uml.alf.feature/build.properties
old mode 100755
new mode 100644
similarity index 100%
rename from alf/org.eclipse.papyrus.uml.alf.extra.feature/build.properties
rename to alf/org.eclipse.papyrus.uml.alf.feature/build.properties
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/epl-v10.html b/alf/org.eclipse.papyrus.uml.alf.feature/epl-v10.html
old mode 100755
new mode 100644
similarity index 100%
rename from alf/org.eclipse.papyrus.uml.alf.extra.feature/epl-v10.html
rename to alf/org.eclipse.papyrus.uml.alf.feature/epl-v10.html
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/feature.properties b/alf/org.eclipse.papyrus.uml.alf.feature/feature.properties
old mode 100755
new mode 100644
similarity index 100%
rename from alf/org.eclipse.papyrus.uml.alf.extra.feature/feature.properties
rename to alf/org.eclipse.papyrus.uml.alf.feature/feature.properties
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/feature.xml b/alf/org.eclipse.papyrus.uml.alf.feature/feature.xml
old mode 100755
new mode 100644
similarity index 96%
rename from alf/org.eclipse.papyrus.uml.alf.extra.feature/feature.xml
rename to alf/org.eclipse.papyrus.uml.alf.feature/feature.xml
index a71091c..c4d998b
--- a/alf/org.eclipse.papyrus.uml.alf.extra.feature/feature.xml
+++ b/alf/org.eclipse.papyrus.uml.alf.feature/feature.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-      id="org.eclipse.papyrus.uml.alf.extra.feature"
+      id="org.eclipse.papyrus.uml.alf.feature"
       label="Papyrus ALF Properties View Integration (Incubation)"
       version="0.7.0.qualifier"
       provider-name="Eclipse Modeling Project">
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/license.html b/alf/org.eclipse.papyrus.uml.alf.feature/license.html
old mode 100755
new mode 100644
similarity index 100%
rename from alf/org.eclipse.papyrus.uml.alf.extra.feature/license.html
rename to alf/org.eclipse.papyrus.uml.alf.feature/license.html
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/pom.xml b/alf/org.eclipse.papyrus.uml.alf.feature/pom.xml
old mode 100755
new mode 100644
similarity index 82%
rename from alf/org.eclipse.papyrus.uml.alf.extra.feature/pom.xml
rename to alf/org.eclipse.papyrus.uml.alf.feature/pom.xml
index c55512f..988bd91
--- a/alf/org.eclipse.papyrus.uml.alf.extra.feature/pom.xml
+++ b/alf/org.eclipse.papyrus.uml.alf.feature/pom.xml
@@ -6,7 +6,7 @@
 		<artifactId>org.eclipse.papyrus.alf.parent</artifactId>
 		<version>3.0.0-SNAPSHOT</version>
 	</parent>
-	<artifactId>org.eclipse.papyrus.uml.alf.extra.feature</artifactId>
+	<artifactId>org.eclipse.papyrus.uml.alf.feature</artifactId>
 	<version>0.7.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 </project>
\ No newline at end of file
diff --git a/alf/pom.xml b/alf/pom.xml
index c1a8bb6..d08c62f 100755
--- a/alf/pom.xml
+++ b/alf/pom.xml
@@ -12,7 +12,7 @@
 	<modules>
 		<module>core</module>
 		<module>ui</module>
-		<module>org.eclipse.papyrus.uml.alf.extra.feature</module>
+		<module>org.eclipse.papyrus.uml.alf.feature</module>
 		
 		<!-- FIXME: was present in Papyrus core repositoy but unused in the build
 		<module>org.eclipse.papyrus.alf.sdk-feature</module>
diff --git a/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/DiagramTemplateEditor.java b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/DiagramTemplateEditor.java
index a221592..49634bf 100755
--- a/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/DiagramTemplateEditor.java
+++ b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/DiagramTemplateEditor.java
@@ -96,8 +96,12 @@
 import org.eclipse.papyrus.diagramtemplate.launcher.DiagramTemplateLauncher;
 import org.eclipse.papyrus.diagramtemplate.provider.DiagramTemplateItemProviderAdapterFactory;
 import org.eclipse.papyrus.diagramtemplate.utils.Messages;
-import org.eclipse.papyrus.uml.diagram.wizards.category.DiagramCategoryDescriptor;
-import org.eclipse.papyrus.uml.diagram.wizards.category.DiagramCategoryRegistry;
+import org.eclipse.papyrus.infra.architecture.ArchitectureDomainManager;
+import org.eclipse.papyrus.infra.architecture.representation.PapyrusRepresentationKind;
+import org.eclipse.papyrus.infra.core.architecture.RepresentationKind;
+import org.eclipse.papyrus.infra.core.architecture.merged.MergedArchitectureContext;
+import org.eclipse.papyrus.infra.core.architecture.merged.MergedArchitectureViewpoint;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
 import org.eclipse.papyrus.uml.diagram.wizards.kind.DiagramKindLabelProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
@@ -242,7 +246,7 @@
 	/**
 	 * List of diagram categories to consider
 	 */
-	List<String> diagramCategories = new ArrayList<String>();
+	Collection<ViewPrototype> representationsKinds = new ArrayList<ViewPrototype>();
 
 	/**
 	 * The IFile object corresponding to the model to process
@@ -417,8 +421,20 @@
 	 * Helper method to initialize the diagram categories (kinds)
 	 */
 	protected void initializeDiagramCategories() {
-		for (DiagramCategoryDescriptor diagramCategoryDescriptor : DiagramCategoryRegistry.getInstance().getDiagramCategories()) {
-			diagramCategories.add(diagramCategoryDescriptor.getLabel());
+		ArchitectureDomainManager manager = ArchitectureDomainManager.getInstance();
+		Collection<MergedArchitectureContext> contexts = manager.getVisibleArchitectureContexts();
+
+		for (MergedArchitectureContext mergedArchitectureContext : contexts) {
+			Collection<MergedArchitectureViewpoint> viewpoints = mergedArchitectureContext.getViewpoints();
+
+			for (MergedArchitectureViewpoint mergedArchitectureViewpoint : viewpoints) {
+				Collection<RepresentationKind> representations = mergedArchitectureViewpoint.getRepresentationKinds();
+				for (RepresentationKind representationKind : representations) {
+					if (representationKind instanceof PapyrusRepresentationKind) {
+						representationsKinds.add(ViewPrototype.get((PapyrusRepresentationKind) representationKind));
+					}
+				}
+			}
 		}
 	}
 
@@ -430,7 +446,7 @@
 	 * @param list
 	 *            the list to search in
 	 * @return
-	 *         true if found false else
+	 * 		true if found false else
 	 */
 	protected boolean containsElement(EObject object, List<?> list) {
 		if (list != null) {
@@ -1015,7 +1031,7 @@
 		});
 		diagramCheckboxTableViewer.setContentProvider(new DiagramKindContentProvider());
 		diagramCheckboxTableViewer.setLabelProvider(new DiagramKindLabelProvider());
-		diagramCheckboxTableViewer.setInput(diagramCategories);
+		diagramCheckboxTableViewer.setInput(representationsKinds);
 
 		diagramCheckboxTableViewer.setCheckStateProvider(new ICheckStateProvider() {
 
diff --git a/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/provider/DiagramKindContentProvider.java b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/provider/DiagramKindContentProvider.java
index f934c2d..f9efabf 100755
--- a/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/provider/DiagramKindContentProvider.java
+++ b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/editor/provider/DiagramKindContentProvider.java
@@ -21,6 +21,7 @@
 import org.eclipse.papyrus.commands.CreationCommandDescriptor;
 import org.eclipse.papyrus.commands.CreationCommandRegistry;
 import org.eclipse.papyrus.commands.ICreationCommandRegistry;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
 
 /**
  *
@@ -53,13 +54,13 @@
 	 */
 	public Object[] getElements(Object inputElement) {
 		if (inputElement instanceof List) {
-			List<String> categories = (List<String>) inputElement;
+			List<ViewPrototype> categories = (List<ViewPrototype>) inputElement;
 
-			List<CreationCommandDescriptor> result = new ArrayList<CreationCommandDescriptor>();
+			List<ViewPrototype> result = new ArrayList<ViewPrototype>();
 			for (CreationCommandDescriptor desc : getCreationCommandRegistry().getCommandDescriptors()) {
-				for (String category : categories) {
-					if (category.equalsIgnoreCase(desc.getLanguage())) {
-						result.add(desc);
+				for (ViewPrototype category : categories) {
+					if (category.getLabel().equalsIgnoreCase(desc.getLabel())) {
+						result.add(category);
 						break;
 					}
 				}
diff --git a/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/launcher/DiagramTemplateLauncher.java b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/launcher/DiagramTemplateLauncher.java
index b6d9f65..9aec860 100755
--- a/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/launcher/DiagramTemplateLauncher.java
+++ b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.editor/src/org/eclipse/papyrus/diagramtemplate/launcher/DiagramTemplateLauncher.java
@@ -46,15 +46,21 @@
 import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.papyrus.commands.CreationCommandDescriptor;
+import org.eclipse.papyrus.commands.CreationCommandRegistry;
+import org.eclipse.papyrus.commands.ICreationCommandRegistry;
 import org.eclipse.papyrus.diagramtemplate.AbstractSelection;
 import org.eclipse.papyrus.diagramtemplate.DiagramDefinition;
 import org.eclipse.papyrus.diagramtemplate.Selection;
 import org.eclipse.papyrus.diagramtemplate.SelectionKind;
 import org.eclipse.papyrus.diagramtemplate.SelectionRef;
 import org.eclipse.papyrus.diagramtemplate.Template;
-import org.eclipse.papyrus.diagramtemplate.editor.provider.DiagramKindContentProvider;
 import org.eclipse.papyrus.diagramtemplate.utils.Messages;
 import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;
+import org.eclipse.papyrus.infra.architecture.ArchitectureDomainManager;
+import org.eclipse.papyrus.infra.architecture.representation.PapyrusRepresentationKind;
+import org.eclipse.papyrus.infra.core.architecture.RepresentationKind;
+import org.eclipse.papyrus.infra.core.architecture.merged.MergedArchitectureContext;
+import org.eclipse.papyrus.infra.core.architecture.merged.MergedArchitectureViewpoint;
 import org.eclipse.papyrus.infra.core.editor.BackboneException;
 import org.eclipse.papyrus.infra.core.resource.ModelMultiException;
 import org.eclipse.papyrus.infra.core.resource.ModelSet;
@@ -65,8 +71,7 @@
 import org.eclipse.papyrus.infra.core.utils.DiResourceSet;
 import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationUtils;
 import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;
-import org.eclipse.papyrus.uml.diagram.wizards.category.DiagramCategoryDescriptor;
-import org.eclipse.papyrus.uml.diagram.wizards.category.DiagramCategoryRegistry;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
@@ -127,7 +132,7 @@
 	 * Get the singleton
 	 *
 	 * @return
-	 *         the DiagramTemplateLauncher singleton
+	 * 		the DiagramTemplateLauncher singleton
 	 */
 	public final synchronized static DiagramTemplateLauncher getInstance() {
 		if (instance == null) {
@@ -139,31 +144,71 @@
 	/**
 	 * List of diagram categories to consider
 	 */
-	protected List<String> diagramCategories;
+	protected List<ViewPrototype> representationsKinds;
 
-	protected void initializeDiagramCategories() {
-		diagramCategories = new ArrayList<String>();
-		for (DiagramCategoryDescriptor diagramCategoryDescriptor : DiagramCategoryRegistry.getInstance().getDiagramCategories()) {
-			diagramCategories.add(diagramCategoryDescriptor.getLabel());
+	protected void initializeDiagramCategories(ModelSet modelSet) {
+		representationsKinds = new ArrayList<ViewPrototype>();
+
+		ArchitectureDomainManager manager = ArchitectureDomainManager.getInstance();
+		Collection<MergedArchitectureContext> contexts = manager.getVisibleArchitectureContexts();
+
+		for (MergedArchitectureContext mergedArchitectureContext : contexts) {
+			Collection<MergedArchitectureViewpoint> viewpoints = mergedArchitectureContext.getViewpoints();
+
+			for (MergedArchitectureViewpoint mergedArchitectureViewpoint : viewpoints) {
+				Collection<RepresentationKind> representations = mergedArchitectureViewpoint.getRepresentationKinds();
+				for (RepresentationKind representationKind : representations) {
+					if (representationKind instanceof PapyrusRepresentationKind) {
+						representationsKinds.add(ViewPrototype.get((PapyrusRepresentationKind) representationKind));
+					}
+				}
+			}
 		}
 	}
 
 	/**
+	 * Gets the creation command registry.
+	 *
+	 * @return the creation command registry
+	 */
+	private ICreationCommandRegistry getCreationCommandRegistry() {
+		return CreationCommandRegistry.getInstance(org.eclipse.papyrus.infra.ui.Activator.PLUGIN_ID);
+	}
+
+	public Object[] getCommands(Object inputElement) {
+		if (inputElement instanceof List) {
+			List<ViewPrototype> categories = (List<ViewPrototype>) inputElement;
+
+			List<CreationCommandDescriptor> result = new ArrayList<CreationCommandDescriptor>();
+			for (CreationCommandDescriptor desc : getCreationCommandRegistry().getCommandDescriptors()) {
+				for (ViewPrototype category : categories) {
+					if (category.getLabel().equalsIgnoreCase(desc.getLabel())) {
+						result.add(desc);
+						break;
+					}
+				}
+			}
+
+			return result.toArray();
+		}
+		return null;
+	}
+
+	/**
 	 * Util method to get the CreationCommandDescriptor corresponding to a commandID
 	 *
 	 * @param commandID
 	 *            the commandID to find
 	 * @return
-	 *         the corresponding CreationCommandDescriptor
+	 * 		the corresponding CreationCommandDescriptor
 	 */
 	protected CreationCommandDescriptor getCreation(String commandID) {
-		DiagramKindContentProvider provider = new DiagramKindContentProvider();
-		List<Object> diagramsKindlist = Arrays.asList(provider.getElements(diagramCategories));
+		List<Object> diagramsKindlist = Arrays.asList(getCommands(representationsKinds));
 
 		for (Object object : diagramsKindlist) {
 			CreationCommandDescriptor command = (CreationCommandDescriptor) object;
 
-			if (command.getCommandId().compareTo(commandID) == 0) {
+			if (command.getCommandId().equals(commandID)) {
 				return command;
 			}
 		}
@@ -346,7 +391,7 @@
 	 * @param position
 	 *            position is used to try to distribute the drop
 	 * @return
-	 *         the editPart in which the element has been actually added
+	 * 		the editPart in which the element has been actually added
 	 */
 	protected EditPart showElementIn(EObject elementToShow, DiagramEditor activeEditor, EditPart editPart, int position) {
 
@@ -413,7 +458,7 @@
 	 * @param stereotypedBy
 	 *            the qulifiedName of the stereotype to match
 	 * @return
-	 *         true if matches false else.
+	 * 		true if matches false else.
 	 */
 	protected boolean matchStereotypedBy(EObject element, String stereotypedBy) {
 		if (element instanceof Element) {
@@ -627,7 +672,7 @@
 	 *            The template to execute
 	 */
 	public void execute(Template template) {
-		initializeDiagramCategories();
+
 		diagramsInResource = new ArrayList<String>();
 		diagramsCreated = new HashMap<String, AbstractSelection>();
 		creationReport = new HashMap<EObject, CreationReportKind>();
@@ -635,6 +680,8 @@
 		if (template != null) {
 			ModelSet modelSet = new DiResourceSet();
 
+
+
 			if (template.getTargetRoot().eResource() != null) {
 				String targetModelLocation = template.getTargetRoot().eResource().getURI().toPlatformString(false);
 				IFile targetModelfile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(targetModelLocation));
@@ -645,6 +692,7 @@
 
 					try {
 						modelSet.loadModels(file);
+						initializeDiagramCategories(modelSet);
 					} catch (ModelMultiException ex) {
 						ex.printStackTrace(System.out);
 					}
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/.project b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/.project
old mode 100755
new mode 100644
similarity index 84%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/.project
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/.project
index 18aae01..3602d3c
--- a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/.project
+++ b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.papyrus.extra.diagramtemplate.feature</name>
+	<name>org.eclipse.papyrus.diagramtemplate.feature</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/build.properties b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/build.properties
old mode 100755
new mode 100644
similarity index 100%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/build.properties
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/build.properties
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/epl-v10.html b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/epl-v10.html
old mode 100755
new mode 100644
similarity index 100%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/epl-v10.html
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/epl-v10.html
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/feature.properties b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/feature.properties
old mode 100755
new mode 100644
similarity index 100%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/feature.properties
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/feature.properties
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/feature.xml b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/feature.xml
old mode 100755
new mode 100644
similarity index 86%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/feature.xml
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/feature.xml
index e01d43b..d828c5f
--- a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/feature.xml
+++ b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/feature.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><feature id="org.eclipse.papyrus.extra.diagramtemplate.feature" label="Papyrus Diagram Template (Incubation)" provider-name="Eclipse Modeling Project" version="1.2.0.qualifier">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><feature id="org.eclipse.papyrus.diagramtemplate.feature" label="Papyrus Diagram Template (Incubation)" provider-name="Eclipse Modeling Project" version="1.2.0.qualifier">
 
    <copyright url="http://www.eclipse.org/legal/epl-v10.html">
       Copyright (c) 2008-2012 CEA LIST, Atos Origin, Conselleria de
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/license.html b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/license.html
old mode 100755
new mode 100644
similarity index 100%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/license.html
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/license.html
diff --git a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/pom.xml b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/pom.xml
old mode 100755
new mode 100644
similarity index 79%
rename from diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/pom.xml
rename to diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/pom.xml
index c2ee99e..f173561
--- a/diagramtemplate/org.eclipse.papyrus.extra.diagramtemplate.feature/pom.xml
+++ b/diagramtemplate/org.eclipse.papyrus.diagramtemplate.feature/pom.xml
@@ -6,6 +6,6 @@
 		<artifactId>org.eclipse.papyrus.diagramtemplate.parent</artifactId>
 		<version>1.2.0-SNAPSHOT</version>
 	</parent>
-	<artifactId>org.eclipse.papyrus.extra.diagramtemplate.feature</artifactId>
+	<artifactId>org.eclipse.papyrus.diagramtemplate.feature</artifactId>
 	<packaging>eclipse-feature</packaging>
 </project>
\ No newline at end of file
diff --git a/diagramtemplate/pom.xml b/diagramtemplate/pom.xml
index fe9915c..2ddb967 100755
--- a/diagramtemplate/pom.xml
+++ b/diagramtemplate/pom.xml
@@ -15,7 +15,7 @@
 		<!--FIXME: Was already commented in the Papyrus  core build <module>org.eclipse.papyrus.diagramtemplate.doc</module> -->
 		<module>org.eclipse.papyrus.diagramtemplate.edit</module>
 		<module>org.eclipse.papyrus.diagramtemplate.editor</module>
-		<module>org.eclipse.papyrus.extra.diagramtemplate.feature</module>
+		<module>org.eclipse.papyrus.diagramtemplate.feature</module>
 	</modules>	
 	
 </project>
\ No newline at end of file
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/.project
old mode 100755
new mode 100644
similarity index 84%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/.project
index c3247ac..8a990d8
--- a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project
+++ b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.papyrus.extra.dsml.validation.feature</name>
+	<name>org.eclipse.papyrus.dsml.validation.feature</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/build.properties b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/build.properties
old mode 100755
new mode 100644
similarity index 100%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/build.properties
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/build.properties
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/epl-v10.html b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/epl-v10.html
old mode 100755
new mode 100644
similarity index 100%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/epl-v10.html
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/epl-v10.html
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/feature.properties b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/feature.properties
old mode 100755
new mode 100644
similarity index 100%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/feature.properties
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/feature.properties
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/feature.xml b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/feature.xml
old mode 100755
new mode 100644
similarity index 91%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/feature.xml
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/feature.xml
index 61a5b0a..26e20da
--- a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/feature.xml
+++ b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/feature.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><feature id="org.eclipse.papyrus.extra.dsml.validation.feature" label="%featureName" provider-name="%providerName" version="1.2.0.qualifier">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><feature id="org.eclipse.papyrus.dsml.validation.feature" label="%featureName" provider-name="%providerName" version="1.2.0.qualifier">
 
    <copyright url="http://www.eclipse.org/legal/epl-v10.html">
       Copyright (c) 2012 CEA LIST
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/license.html b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/license.html
old mode 100755
new mode 100644
similarity index 100%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/license.html
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/license.html
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/pom.xml b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/pom.xml
old mode 100755
new mode 100644
similarity index 79%
rename from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/pom.xml
rename to dsml.validation/org.eclipse.papyrus.dsml.validation.feature/pom.xml
index 78e76dd..795fd58
--- a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/pom.xml
+++ b/dsml.validation/org.eclipse.papyrus.dsml.validation.feature/pom.xml
@@ -6,6 +6,6 @@
 		<groupId>org.eclipse.papyrus</groupId>
 		<version>1.2.0-SNAPSHOT</version>
 	</parent>
-	<artifactId>org.eclipse.papyrus.extra.dsml.validation.feature</artifactId>
+	<artifactId>org.eclipse.papyrus.dsml.validation.feature</artifactId>
 	<packaging>eclipse-feature</packaging>
 </project>
\ No newline at end of file
diff --git a/dsml.validation/pom.xml b/dsml.validation/pom.xml
index df82060..1d7aa04 100755
--- a/dsml.validation/pom.xml
+++ b/dsml.validation/pom.xml
@@ -17,7 +17,7 @@
 		<module>org.eclipse.papyrus.dsml.validation.model.ui</module>
 		<module>org.eclipse.papyrus.dsml.validation.properties</module>
 		<module>org.eclipse.papyrus.dsml.validation.wizard</module>
-		<module>org.eclipse.papyrus.extra.dsml.validation.feature</module>
+		<module>org.eclipse.papyrus.dsml.validation.feature</module>
 	</modules>	
 	
 </project>
\ No newline at end of file
diff --git a/org.eclipse.papyrus.incubation.p2/category.xml b/org.eclipse.papyrus.incubation.p2/category.xml
index 64cf280..ce66f9c 100755
--- a/org.eclipse.papyrus.incubation.p2/category.xml
+++ b/org.eclipse.papyrus.incubation.p2/category.xml
@@ -6,18 +6,18 @@
    <feature url="features/org.eclipse.papyrus.uml.export.feature.source_1.2.0.qualifier.jar" id="org.eclipse.papyrus.uml.export.feature.source" version="1.2.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
-   <!-- TODO restore when compilation error solved
-   <feature url="features/org.eclipse.papyrus.extra.diagramtemplate.feature_1.2.0.qualifier.jar" id="org.eclipse.papyrus.extra.diagramtemplate.feature" version="1.2.0.qualifier">
+   
+   <feature url="features/org.eclipse.papyrus.diagramtemplate.feature_1.2.0.qualifier.jar" id="org.eclipse.papyrus.diagramtemplate.feature" version="1.2.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
-   <feature url="features/org.eclipse.papyrus.extra.diagramtemplate.feature.source_1.2.0.qualifier.jar" id="org.eclipse.papyrus.extra.diagramtemplate.feature.source" version="1.2.0.qualifier">
+   <feature url="features/org.eclipse.papyrus.diagramtemplate.feature.source_1.2.0.qualifier.jar" id="org.eclipse.papyrus.diagramtemplate.feature.source" version="1.2.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
-   -->
-   <feature url="features/org.eclipse.papyrus.uml.alf.extra.feature_0.7.0.qualifier.jar" id="org.eclipse.papyrus.uml.alf.extra.feature" version="0.7.0.qualifier">
+
+   <feature url="features/org.eclipse.papyrus.uml.alf.feature_0.7.0.qualifier.jar" id="org.eclipse.papyrus.uml.alf.feature" version="0.7.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
-   <feature url="features/org.eclipse.papyrus.uml.alf.extra.feature.source_0.7.0.qualifier.jar" id="org.eclipse.papyrus.uml.alf.extra.feature.source" version="0.7.0.qualifier">
+   <feature url="features/org.eclipse.papyrus.uml.alf.feature.source_0.7.0.qualifier.jar" id="org.eclipse.papyrus.uml.alf.feature.source" version="0.7.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
    <feature url="features/org.eclipse.papyrus.layers.feature_1.2.0.qualifier.jar" id="org.eclipse.papyrus.layers.feature" version="1.2.0.qualifier">
@@ -33,17 +33,22 @@
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
 
-   <feature url="features/org.eclipse.papyrus.extra.dsml.validation.feature_1.2.0.qualifier.jar" id="org.eclipse.papyrus.extra.dsml.validation.feature" version="1.2.0.qualifier">
+   <feature url="features/org.eclipse.papyrus.dsml.validation.feature_1.2.0.qualifier.jar" id="org.eclipse.papyrus.dsml.validation.feature" version="1.2.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
-   <feature url="features/org.eclipse.papyrus.extra.dsml.validation.feature.source_1.2.0.qualifier.jar" id="org.eclipse.papyrus.extra.dsml.validation.feature.source" version="1.2.0.qualifier">
+   <feature url="features/org.eclipse.papyrus.dsml.validation.feature.source_1.2.0.qualifier.jar" id="org.eclipse.papyrus.dsml.validation.feature.source" version="1.2.0.qualifier">
       <category name="org.eclipse.papyrus.incubation.category"/>
    </feature>
-   
+   <feature url="features/org.eclipse.papyrus.refactoring.feature_0.0.1.qualifier.jar" id="org.eclipse.papyrus.refactoring.feature" version="0.0.1.qualifier">
+      <category name="org.eclipse.papyrus.incubation.category"/>
+   </feature>
+   <feature url="features/org.eclipse.papyrus.refactoring.feature.source_0.0.1.qualifier.jar" id="org.eclipse.papyrus.refactoring.feature.source" version="0.0.1.qualifier">
+      <category name="org.eclipse.papyrus.incubation.category"/>
+   </feature>
    
    <category-def name="org.eclipse.papyrus.incubation.category" label="Papyrus Incubation">
       <description>
-         Papyrus incubating features
+         Papyrus Incubation features
       </description>
    </category-def>
    <repository-reference location="http://download.eclipse.org/elk/updates/releases/0.1.0/" enabled="true" />
diff --git a/pom.xml b/pom.xml
index 10080f9..5508b96 100755
--- a/pom.xml
+++ b/pom.xml
@@ -7,8 +7,8 @@
 	<packaging>pom</packaging>
 	<modules>
 		<module>umlexport</module>
-		<!-- compilation error 11/04/2017 <module>refactoring</module> -->
-		<!-- compilation error 11/04/2017 <module>diagramtemplate</module>   -->
+		<module>refactoring</module>
+		<module>diagramtemplate</module>
 		<module>alf</module>
 		<module>layers</module>
 		<module>elk</module>
diff --git a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project b/refactoring/org.eclipse.papyrus.refactoring.feature/.project
old mode 100755
new mode 100644
similarity index 83%
copy from dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project
copy to refactoring/org.eclipse.papyrus.refactoring.feature/.project
index c3247ac..e7eb34e
--- a/dsml.validation/org.eclipse.papyrus.extra.dsml.validation.feature/.project
+++ b/refactoring/org.eclipse.papyrus.refactoring.feature/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.papyrus.extra.dsml.validation.feature</name>
+	<name>org.eclipse.papyrus.refactoring.feature</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/refactoring/org.eclipse.papyrus.refactoring.feature/build.properties b/refactoring/org.eclipse.papyrus.refactoring.feature/build.properties
new file mode 100644
index 0000000..e57ce11
--- /dev/null
+++ b/refactoring/org.eclipse.papyrus.refactoring.feature/build.properties
@@ -0,0 +1,7 @@
+bin.includes = feature.xml,\
+               epl-v10.html,\
+               feature.properties,\
+               license.html
+src.includes = build.properties,\
+               epl-v10.html,\
+               license.html
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/epl-v10.html b/refactoring/org.eclipse.papyrus.refactoring.feature/epl-v10.html
old mode 100755
new mode 100644
similarity index 100%
copy from alf/org.eclipse.papyrus.uml.alf.extra.feature/epl-v10.html
copy to refactoring/org.eclipse.papyrus.refactoring.feature/epl-v10.html
diff --git a/refactoring/org.eclipse.papyrus.refactoring.feature/feature.properties b/refactoring/org.eclipse.papyrus.refactoring.feature/feature.properties
new file mode 100644
index 0000000..e95d199
--- /dev/null
+++ b/refactoring/org.eclipse.papyrus.refactoring.feature/feature.properties
@@ -0,0 +1,138 @@
+# NLS_MESSAGEFORMAT_VAR
+
+# "featureName" property - name of the feature
+featureName=Papyrus Model Refactoring (Incubation)
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse Modeling Project 
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 9, 2014\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+\t- Content may be structured and packaged into modules to facilitate delivering,\n\
+\t  extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+\t  plug-in fragments ("Fragments"), and features ("Features").\n\
+\t- Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+\t  in a directory named "plugins".\n\
+\t- A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+\t  Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+\t  Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+\t  numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+\t- Features may also include other Features ("Included Features"). Within a Feature, files\n\
+\t  named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+\t- The top-level (root) directory\n\
+\t- Plug-in and Fragment directories\n\
+\t- Inside Plug-ins and Fragments packaged as JARs\n\
+\t- Sub-directories of the directory named "src" of certain Plug-ins\n\
+\t- Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+\t- Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+\t- Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+\t- Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+\t- Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+\t- Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+\t1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+\t   the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+\t   extending or updating the functionality of an Eclipse-based product.\n\
+\t2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+\t   Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+\t3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+\t   govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+\t   Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+\t   with the Specification. Such Installable Software Agreement must inform the user of the\n\
+\t   terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+\t   the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+\t   indication of agreement by the user, the provisioning Technology will complete installation\n\
+\t   of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/refactoring/org.eclipse.papyrus.refactoring.feature/feature.xml b/refactoring/org.eclipse.papyrus.refactoring.feature/feature.xml
new file mode 100644
index 0000000..3d4ebda
--- /dev/null
+++ b/refactoring/org.eclipse.papyrus.refactoring.feature/feature.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.papyrus.refactoring.feature"
+      label="%featureName"
+      version="0.0.1.qualifier"
+      provider-name="%providerName">
+
+   <description url="http://www.eclipse.com/papyrus">
+      This feature add model refactoring facilities to Papyrus.
+   </description>
+
+   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+      Copyright (c) 2017 CEA LIST.
+All rights reserved.   This program and the accompanying materials
+are made available under the terms of the Eclipse Public License
+v1.0 which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html.
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.papyrus.refactoring"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.papyrus.uml.refactoring.mutation"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.papyrus.uml.refactoring.qvtTransformation"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.papyrus.uml.refactoring.replace"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/alf/org.eclipse.papyrus.uml.alf.extra.feature/license.html b/refactoring/org.eclipse.papyrus.refactoring.feature/license.html
old mode 100755
new mode 100644
similarity index 100%
copy from alf/org.eclipse.papyrus.uml.alf.extra.feature/license.html
copy to refactoring/org.eclipse.papyrus.refactoring.feature/license.html
diff --git a/refactoring/org.eclipse.papyrus.refactoring.feature/pom.xml b/refactoring/org.eclipse.papyrus.refactoring.feature/pom.xml
new file mode 100644
index 0000000..5ffe9cc
--- /dev/null
+++ b/refactoring/org.eclipse.papyrus.refactoring.feature/pom.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.papyrus</groupId>
+		<artifactId>org.eclipse.papyrus.refactoring.parent</artifactId>
+		<version>0.0.1-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.refactoring.feature</artifactId>
+	<packaging>eclipse-feature</packaging>
+</project>
\ No newline at end of file
diff --git a/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/helper/MutationTransformation.java b/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/helper/MutationTransformation.java
index 6862af5..2c45594 100755
--- a/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/helper/MutationTransformation.java
+++ b/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/helper/MutationTransformation.java
@@ -17,8 +17,6 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
@@ -33,6 +31,7 @@
 import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
 import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
 import org.eclipse.gmf.runtime.emf.type.core.IElementType;
 import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
 import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
@@ -49,10 +48,11 @@
 import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;
 import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
 import org.eclipse.papyrus.infra.emf.gmf.command.GMFtoEMFCommandWrapper;
 import org.eclipse.papyrus.infra.gmfdiag.common.commands.SemanticElementAdapter;
-import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationUtils;
 import org.eclipse.papyrus.infra.gmfdiag.common.service.visualtype.VisualTypeService;
+import org.eclipse.papyrus.infra.services.edit.context.TypeContext;
 import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
 import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
 import org.eclipse.papyrus.refactoring.refactoringOnElement.ITransformationOnElement;
@@ -144,7 +144,17 @@
 			return;
 		}
 
-		fProvider = ElementEditServiceUtils.getCommandProvider(fNewElementType);
+		IClientContext context = null;
+		try {
+			context = TypeContext.getContext(parent);
+		} catch (ServiceException e) {
+			Activator.log.error(e);
+		}
+
+		if (context == null) {
+			return;
+		}
+		fProvider = ElementEditServiceUtils.getCommandProvider(fNewElementType, context);
 		if (fProvider == null) {
 			return;
 		}
diff --git a/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/ui/MutationRefactoring.java b/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/ui/MutationRefactoring.java
index 380383e..fb6c6ba 100755
--- a/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/ui/MutationRefactoring.java
+++ b/refactoring/org.eclipse.papyrus.uml.refactoring.mutation/src/org/eclipse/papyrus/uml/refactoring/mutation/ui/MutationRefactoring.java
@@ -40,7 +40,7 @@
 import org.eclipse.papyrus.infra.newchild.CreationMenuRegistry;
 import org.eclipse.papyrus.infra.newchild.elementcreationmenumodel.CreationMenu;
 import org.eclipse.papyrus.infra.newchild.elementcreationmenumodel.Folder;
-import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext;
+import org.eclipse.papyrus.infra.services.edit.context.TypeContext;
 import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
 import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
 import org.eclipse.papyrus.refactoring.Activator;
@@ -120,60 +120,70 @@
 		fNewTypeTreeViewer.setComparator(new ViewerComparator());
 
 		Map<IElementType, EObject> umlTypesInput = new HashMap<>();
+		// EObject modelRoot = PapyrusRefactoringUtils.getUMLRoot(fModelSet);
+		// Model model = modelRoot instanceof Model ? (Model) modelRoot : null;
+		// if (model != null) {
+		// for (Profile profile : model.getAllAppliedProfiles()) {
+		// // TODO retrieve the elementTypes according to the applied profiles
+		// }
+		// }
+
+
+		ElementTypeRegistry registry = ElementTypeRegistry.getInstance();
+		EObject elementToMutate = getElementToMutate();
+		EObject elementToMutateParent = elementToMutate.eContainer() != null ? elementToMutate.eContainer() : elementToMutate;
+		IElementType relationshipType = UMLElementTypes.RELATIONSHIP;
+
+		IClientContext context = null;
 		try {
-			// EObject modelRoot = PapyrusRefactoringUtils.getUMLRoot(fModelSet);
-			// Model model = modelRoot instanceof Model ? (Model) modelRoot : null;
-			// if (model != null) {
-			// for (Profile profile : model.getAllAppliedProfiles()) {
-			// // TODO retrieve the elementTypes according to the applied profiles
-			// }
-			// }
-
-
-			ElementTypeRegistry registry = ElementTypeRegistry.getInstance();
-			EObject elementToMutate = getElementToMutate();
-			EObject elementToMutateParent = elementToMutate.eContainer() != null ? elementToMutate.eContainer() : elementToMutate;
-			IElementType relationshipType = UMLElementTypes.RELATIONSHIP;
-			IClientContext clientContext = TypeContext.getContext();
-			IElementType elementToMutateType = registry.getElementType(elementToMutate, clientContext);
-			boolean elementToMutateIsRelationship = Arrays.asList(elementToMutateType.getAllSuperTypes()).contains(relationshipType);
-
-			Set<IElementType> relationshipTypes = new HashSet<>();
-			Set<IElementType> nodeTypes = new HashSet<>();
-
-			for (Folder folder : CreationMenuRegistry.getInstance().getRootFolder()) {
-				// System.err.println(folder.getLabel() + ", " + folder.eContents().size());
-				for (EObject eObject : folder.eContents()) {
-					if (eObject instanceof CreationMenu) {
-						CreationMenu creationMenu = (CreationMenu) eObject;
-						IElementType menuElementType = registry.getType(creationMenu.getElementTypeIdRef());
-						if (menuElementType == null) {
-							continue;
-						}
-
-						if (Arrays.asList(menuElementType.getAllSuperTypes()).contains(relationshipType)) {
-							relationshipTypes.add(menuElementType);
-						} else {
-							nodeTypes.add(menuElementType);
-						}
-					}
-				}
-			}
-
-			if (elementToMutateIsRelationship) {
-				umlTypesInput = getRelationshipTypes(elementToMutateParent, elementToMutate, relationshipTypes);
-			} else {
-				umlTypesInput = getNodeTypes(elementToMutateParent, elementToMutate, nodeTypes);
-			}
-
-			umlTypesInput.remove(elementToMutateType);
-			// System.err.println("finalMenu, " + umlTypesInput.size());
-
-
+			context = TypeContext.getContext(elementToMutate);
 		} catch (ServiceException e) {
 			Activator.log.error(e);
 		}
 
+		if (context == null) {
+			return;
+		}
+		IElementType elementToMutateType = registry.getElementType(elementToMutate, context);
+		boolean elementToMutateIsRelationship = Arrays.asList(elementToMutateType.getAllSuperTypes()).contains(relationshipType);
+
+		Set<IElementType> relationshipTypes = new HashSet<>();
+		Set<IElementType> nodeTypes = new HashSet<>();
+
+		for (Folder folder : CreationMenuRegistry.getInstance().getRootFolder()) {
+			// System.err.println(folder.getLabel() + ", " + folder.eContents().size());
+			for (EObject eObject : folder.eContents()) {
+				if (eObject instanceof CreationMenu) {
+					CreationMenu creationMenu = (CreationMenu) eObject;
+					IElementType menuElementType = registry.getType(creationMenu.getElementType().getIdentifier());
+					if (!context.includes(menuElementType)) {
+						continue;
+					}
+					if (menuElementType == null) {
+						continue;
+					}
+
+					if (Arrays.asList(menuElementType.getAllSuperTypes()).contains(relationshipType)) {
+						relationshipTypes.add(menuElementType);
+					} else {
+						nodeTypes.add(menuElementType);
+					}
+				}
+			}
+		}
+
+		if (elementToMutateIsRelationship) {
+			umlTypesInput = getRelationshipTypes(elementToMutateParent, elementToMutate, relationshipTypes);
+		} else {
+			umlTypesInput = getNodeTypes(elementToMutateParent, elementToMutate, nodeTypes);
+		}
+
+		umlTypesInput.remove(elementToMutateType);
+		// System.err.println("finalMenu, " + umlTypesInput.size());
+
+
+
+
 		fNewTypeTreeViewer.setLabelProvider(new ElementTypeLabelProvider());
 		fNewTypeTreeViewer.setContentProvider(new ElemenetTypeContentProvider());
 		fNewTypeTreeViewer.setInput(umlTypesInput);
diff --git a/refactoring/pom.xml b/refactoring/pom.xml
index 465651f..8158be2 100755
--- a/refactoring/pom.xml
+++ b/refactoring/pom.xml
@@ -15,7 +15,7 @@
 		<module>org.eclipse.papyrus.uml.refactoring.mutation</module>
 		<module>org.eclipse.papyrus.uml.refactoring.qvtTransformation</module>
 		<module>org.eclipse.papyrus.uml.refactoring.replace</module>
-		<!-- FIXME: A feature is missing for this incubating component -->
+		<module>org.eclipse.papyrus.refactoring.feature</module>
 	</modules>	
 	
 </project>
\ No newline at end of file