diff --git a/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations b/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations
index 659fa77..b16010b 100644
--- a/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations
+++ b/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations
@@ -53,7 +53,7 @@
     <editHelperAdviceConfiguration editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_I_vSgAI_Eeav1Me8hSVMqw" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
     <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_Qp1iUAI9Eeav1Me8hSVMqw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a FlowProperty" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.FlowProperty" name="FlowProperty" xmi:id="_hXwb4GFBEeWbSMDuSXx8SQ" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations description="Create a FlowProperty" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.ConfiguredFlowProperty" name="FlowProperty" xmi:id="_hXwb4GFBEeWbSMDuSXx8SQ" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
     <editHelperAdviceConfiguration editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_urzE0GFBEeWbSMDuSXx8SQ" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
     <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_EyD38Ie7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14ClassDiagramElementTypesExtensionTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14ClassDiagramElementTypesExtensionTest.java
index 96cde20..e7207c4 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14ClassDiagramElementTypesExtensionTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14ClassDiagramElementTypesExtensionTest.java
@@ -38,6 +38,7 @@
  * (since the ids can be used a specialization they are part of public API)
  * => This should be replaced by the api tolling when working with model
  */
+@SuppressWarnings("nls")
 public class SysML14ClassDiagramElementTypesExtensionTest {
 
 	public static final String CLASS_DIAGRAM_EXTENSION_ELEMENT_TYPE_PATH = "org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations"; //$NON-NLS-1$
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14CompositeDiagramElementTypesExtensionTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14CompositeDiagramElementTypesExtensionTest.java
index d02c6b0..92fb42c 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14CompositeDiagramElementTypesExtensionTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysML14CompositeDiagramElementTypesExtensionTest.java
@@ -38,9 +38,10 @@
  * (since the ids can be used a specialization they are part of public API)
  *
  */
+@SuppressWarnings("nls")
 public class SysML14CompositeDiagramElementTypesExtensionTest {
 
-	public static final String COMPOSITE_DIAGRAM_EXTENSION_ELEMENT_TYPE_PATH = "org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeDiagram-extension.elementtypesconfigurations"; //$NON-NLS-1$
+	public static final String COMPOSITE_DIAGRAM_EXTENSION_ELEMENT_TYPE_PATH = "org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeDiagram-extension.elementtypesconfigurations";
 
 	@BeforeClass
 	public static void loadSysMLDefinition() {
@@ -88,6 +89,9 @@
 		}
 	}	
 	
+	/**
+	 * Check that all parent specialization are known by the ElementTypeService
+	 */
 	@Test
 	public void checkElementTypeSpecialization() {
 		URI createPlatformPluginURI = URI.createPlatformPluginURI(COMPOSITE_DIAGRAM_EXTENSION_ELEMENT_TYPE_PATH, true);
@@ -112,5 +116,4 @@
 		}
 	}	
 
-
 }
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysMLDiUMLTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysMLDiUMLTest.java
index 4b373a7..340c89d 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysMLDiUMLTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/resources/SysMLDiUMLTest.java
@@ -13,6 +13,8 @@
  *****************************************************************************/
 package org.eclipse.papyrus.sysml14.diagram.common.tests.resources;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.emf.common.util.Diagnostic;
@@ -36,9 +38,10 @@
 /**
  * This class is to test the validity of sysmldi element types
  */
+@SuppressWarnings("nls")
 public class SysMLDiUMLTest {
 
-	public static final String SYSMLDI_ELEMENT_TYPE_PATH = "org.eclipse.papyrus.sysml14.diagram.common/resources/SysMLDiUML.typesconfigurations"; //$NON-NLS-1$
+	public static final String SYSMLDI_ELEMENT_TYPE_PATH = "org.eclipse.papyrus.sysml14.diagram.common/resources/SysMLDiUML.typesconfigurations";
 	
 	@BeforeClass
 	public static void loadSysMLDefinition() {
@@ -85,4 +88,24 @@
 		}
 	}	
 
+	
+	/**
+	 * Check if there is a duplicated identifier in all loaded element types
+	 */
+	@Test
+	public void checkAlreadyExistingId() {
+		ElementTypeSetConfigurationRegistry instance = ElementTypeSetConfigurationRegistry.getInstance();
+		Map<String, Map<String, ElementTypeSetConfiguration>> elementTypeSetConfigurations = instance.getElementTypeSetConfigurations();
+		Map<String, ElementTypeSetConfiguration> map = elementTypeSetConfigurations.get("org.eclipse.papyrus.infra.services.edit.TypeContext");
+		List<String> alreadyCheckedIds = new ArrayList<>();
+		for (ElementTypeSetConfiguration elementTypeSetConfiguration : map.values()) {
+			EList<ElementTypeConfiguration> elementTypeConfigurations = elementTypeSetConfiguration.getElementTypeConfigurations();
+			for (ElementTypeConfiguration elementTypeConfiguration : elementTypeConfigurations) {
+				String identifier = elementTypeConfiguration.getIdentifier();
+				Assert.assertFalse("Duplicated elementtype identifer "+identifier, alreadyCheckedIds.contains(identifier));
+				alreadyCheckedIds.add(identifier);		
+		}
+	}
+	}
+	
 }
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/util/GraphicalSysMLServiceTypeUtilTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/util/GraphicalSysMLServiceTypeUtilTest.java
index e69efa5..87a21e2 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/util/GraphicalSysMLServiceTypeUtilTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common.tests/src/org/eclipse/papyrus/sysml14/diagram/common/tests/util/GraphicalSysMLServiceTypeUtilTest.java
@@ -26,8 +26,8 @@
 
 /**
  * Check constant of GraphicalSysMLServiceTypeUtil
- *
  */
+@SuppressWarnings("nls")
 public class GraphicalSysMLServiceTypeUtilTest {
 
 	@BeforeClass
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations b/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations
index f77ff71..576b089 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations
@@ -6,14 +6,6 @@
       <stereotypesQualifiedNames>SysML::Blocks::Block</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations hint="InformationFlow_Edge" identifier="org.eclipse.papyrus.sysmldi.ItemFlow_InformationFlow_Edge" name="ItemFlow" xmi:id="_LoKXncJQEeSX9MoKMBV5Gw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
-    <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/InformationFlow.gif" xmi:id="_LoKXnsJQEeSX9MoKMBV5Gw"/>
-    <specializedTypesID>org.eclipse.papyrus.SysML14.ItemFlow</specializedTypesID>
-    <specializedTypesID>org.eclipse.papyrus.umldi.InformationFlow_Edge</specializedTypesID>
-    <matcherConfiguration xmi:id="_LoKXn8JQEeSX9MoKMBV5Gw" xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
-      <stereotypesQualifiedNames>SysML::PortsAndFlows::ItemFlow</stereotypesQualifiedNames>
-    </matcherConfiguration>
-  </elementTypeConfigurations>
   <elementTypeConfigurations description="" hint="FlowPort_Label" identifier="org.eclipse.papyrus.sysmldi.FlowPort_Label" name="FlowPort (FlowPort_Label)" xmi:id="_tjVDYM1xEeSsRbN4ihgqDg" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
     <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Property.gif" xmi:id="_tjVDYc1xEeSsRbN4ihgqDg"/>
     <specializedTypesID>org.eclipse.papyrus.SysML14.FlowPort</specializedTypesID>
@@ -75,11 +67,6 @@
       <stereotypesQualifiedNames>SysML::Activities::ControlOperator</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations hint="Constraint_Label" identifier="org.eclipse.papyrus.sysmldi.Constraint_Label" name="Constraint (Constraint_Label)" xmi:id="_C-T9IOT-EeSduaYa-5Nr1A" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
-    <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Constraint.gif" xmi:id="_C-T9IeT-EeSduaYa-5Nr1A"/>
-    <specializedTypesID>org.eclipse.papyrus.uml.Constraint</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_Dro1UIxDEeWFTecuNLV29Q" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-  </elementTypeConfigurations>
   <elementTypeConfigurations description="Create an Actor in a UML Class Diagram" hint="Class_Shape" identifier="org.eclipse.papyrus.sysmldi.Actor_Class" name="Actor" xmi:id="_HQFw0OduEeSUQvXhEVQh8w" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
     <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Actor.gif" xmi:id="_HQFw0eduEeSUQvXhEVQh8w"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Actor</specializedTypesID>
@@ -286,7 +273,7 @@
   </elementTypeConfigurations>
   <elementTypeConfigurations description="Create a FlowProperty" hint="SysML::Block::FlowProperty_label" identifier="org.eclipse.papyrus.sysmldi.FlowProperty_label" name="FlowProperty" xmi:id="_8uHkEGHFEeWbSMDuSXx8SQ" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
     <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Property.gif" xmi:id="_OG0VQGHGEeWbSMDuSXx8SQ"/>
-    <specializedTypesID>org.eclipse.papyrus.SysML14.FlowProperty</specializedTypesID>
+    <specializedTypesID>org.eclipse.papyrus.SysML14.ConfiguredFlowProperty</specializedTypesID>
     <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_vr2oUIe8EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
   </elementTypeConfigurations>
   <elementTypeConfigurations hint="NamedElement_DefaultShape" identifier="org.eclipse.papyrus.sysmldi.TestCase_Activity_NamedElement_Shape" name="Activity (NamedElement_Shape)" xmi:id="_v_yCYGW5EeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeDiagram-extension.elementtypesconfigurations b/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeDiagram-extension.elementtypesconfigurations
index f77edaa..d18ad3c 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeDiagram-extension.elementtypesconfigurations
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14CompositeDiagram-extension.elementtypesconfigurations
@@ -70,7 +70,7 @@
     <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_rArxtU_tEeWS1Mofp4ST9Q" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.diagram.common.advices.CreateOrSelectBlockPropertyTypeEditHelperAdvice"/>
     <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_zl-UgIe8EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_QUZYQFI9EeWJN-igpLcdKA" description="Port_Shape FlowPort_Icon" identifier="org.eclipse.papyrus.sysmldi.FlowPort_Port_Shape" name="FlowPort (FlowPort_Icon)" hint="FlowPort_Icon">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_QUZYQFI9EeWJN-igpLcdKA" description="Port_Shape FlowPort_Icon" identifier="org.eclipse.papyrus.sysmldi.FlowPort_Icon" name="FlowPort (FlowPort_Icon)" hint="FlowPort_Icon">
     <specializedTypesID>org.eclipse.papyrus.SysML14.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_Shape</specializedTypesID>
     <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_QUZYQlI9EeWJN-igpLcdKA">
@@ -92,7 +92,7 @@
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
     <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_1CJ-oIe8EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_F1JsoIosEeWtc9KcHKfIiw" description="use to display a constraint in the typed constrain property" identifier="org.eclipse.papyrus.sysmldi.Constraint_Label" name="Constraint_Label" hint="Constraint_Label">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_F1JsoIosEeWtc9KcHKfIiw" description="Used to display a constraint in the typed constraint property" identifier="org.eclipse.papyrus.sysmldi.Constraint_Label" name="Constraint_Label" hint="Constraint_Label">
     <specializedTypesID>org.eclipse.papyrus.uml.Constraint</specializedTypesID>
     <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_Hhhu4IosEeWtc9KcHKfIiw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/edit/parts/FlowPortEditPart.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/edit/parts/FlowPortEditPart.java
index fa7f421..7a223dc 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/edit/parts/FlowPortEditPart.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/edit/parts/FlowPortEditPart.java
@@ -14,15 +14,13 @@
 package org.eclipse.papyrus.sysml14.diagram.common.edit.parts;
 
 import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
 import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
 import org.eclipse.papyrus.sysml14.diagram.common.Activator;
 import org.eclipse.papyrus.sysml14.diagram.common.figure.FlowPortFigure;
-import org.eclipse.papyrus.sysml14.diagram.common.locator.FixedPortPositionLocator;
-import org.eclipse.papyrus.uml.diagram.common.figure.node.AffixedNamedElementFigure;
+import org.eclipse.papyrus.uml.diagram.composite.custom.edit.parts.ResizablePortEditPart;
+import org.eclipse.papyrus.uml.diagram.composite.custom.figures.PortFigure;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.util.UMLUtil;
@@ -30,7 +28,7 @@
 /**
  * This class implements an edit part for FlowPort represented as border items.
  */
-public class FlowPortEditPart extends org.eclipse.papyrus.uml.diagram.common.editparts.AroundBorderItemEditPart {
+public class FlowPortEditPart extends ResizablePortEditPart {
 
 	private FlowPortFigure aprimaryShape;
 
@@ -44,8 +42,8 @@
 	}
 
 	@Override
-	public AffixedNamedElementFigure getPrimaryShape() {
-		return (FlowPortFigure) aprimaryShape;
+	public PortFigure getPrimaryShape() {
+		return aprimaryShape;
 	}
 	
 	@Override
@@ -53,14 +51,6 @@
 		aprimaryShape = new FlowPortFigure();
 		return aprimaryShape;
 	}
-
-	
-	@Override
-	public IBorderItemLocator getNewBorderItemLocator(IFigure mainFigure) {
-		org.eclipse.papyrus.uml.diagram.common.locator.PortPositionLocator portPositionLocator= new FixedPortPositionLocator(mainFigure, PositionConstants.NONE);
-		portPositionLocator.setBorderItemOffset(0);
-		return portPositionLocator;
-	}
 	
 	/**
 	 * @see org.eclipse.papyrus.uml.diagram.common.editparts.RoundedBorderNamedElementEditPart#refreshVisuals()
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/locator/FixedPortPositionLocator.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/locator/FixedPortPositionLocator.java
index e4526e7..30492fa 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/locator/FixedPortPositionLocator.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/locator/FixedPortPositionLocator.java
@@ -19,7 +19,7 @@
 import org.eclipse.papyrus.uml.diagram.common.locator.PortPositionLocator;
 
 /**
- * This locator is used to fix bug about PortPositionLocator sometimes the computedPosition is bad due to a bad toleance about location.
+ * This locator is used to fix bug about PortPositionLocator sometimes the computedPosition is bad due to a bad tolerance about location.
  * 
  * @deprecated
  */
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/provider/AbstractParserProvider.java b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/provider/AbstractParserProvider.java
index 6d3dc8c..fabbd76 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/provider/AbstractParserProvider.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.common/src/org/eclipse/papyrus/sysml14/diagram/common/provider/AbstractParserProvider.java
@@ -30,7 +30,7 @@
 public abstract class AbstractParserProvider extends AbstractProvider implements IParserProvider {
 
 	/** map from graphical hint to parsers */
-	protected Map<String, IParser> graphicalHintToParser = new HashMap<String, IParser>();
+	protected Map<String, IParser> graphicalHintToParser = new HashMap<>();
 
 
 	/**
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internaBlockDiagramConfig.expansionmodel b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internaBlockDiagramConfig.expansionmodel
index 3256f7e..a9acc27 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internaBlockDiagramConfig.expansionmodel
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internaBlockDiagramConfig.expansionmodel
@@ -6,6 +6,6 @@
     <gmftRepresentations xmi:id="_EDXlcHzEEeWVMv-LGO6tZw" editPartQualifiedName="org.eclipse.papyrus.sysml14.diagram.common.edit.parts.SysMLConnectorAppliedStereotypeEditPart" name="Applied Stereotype label for a connector  @papyrus.req org.eclipse.papyrus.sysml14.diagram.internalblock#Req_004" viewFactory="org.eclipse.gmf.runtime.diagram.ui.view.factories.optimal.DecorationNodeViewFactory" reusedID="6025"/>
   </usages>
   <libraries xmi:id="_rC19oNnoEeSqwOe5_frWm3" name="Independant Representations">
-    <representations xsi:type="expansionmodel:Representation" xmi:id="_rC19oNnoEeSqwOe5_frWm4" editPartQualifiedName="org.eclipse.papyrus.sysml14.diagram.common.edit.parts.FlowPortEditPart" name="Flow Port As Icon" viewFactory="org.eclipse.papyrus.sysml14.diagram.common.internal.factory.FlowPortViewFactory" graphicalElementType="org.eclipse.papyrus.sysmldi.FlowPort_Port_Shape"/>
+    <representations xsi:type="expansionmodel:Representation" xmi:id="_rC19oNnoEeSqwOe5_frWm4" editPartQualifiedName="org.eclipse.papyrus.sysml14.diagram.common.edit.parts.FlowPortEditPart" name="Flow Port As Icon" viewFactory="org.eclipse.papyrus.sysml14.diagram.common.internal.factory.FlowPortViewFactory" graphicalElementType="org.eclipse.papyrus.sysmldi.FlowPort_Icon"/>
   </libraries>
 </expansionmodel:DiagramExpansion>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration
index 811ad15..e597d9a 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/palette/internalBlockDiagram.paletteconfiguration
@@ -255,7 +255,7 @@
           pluginID="org.eclipse.papyrus.sysml14.edit"
           iconPath="icons/full/obj16/FlowPort.gif"/>
       <elementDescriptors
-          elementTypeId="org.eclipse.papyrus.sysmldi.FlowPort_Port_Shape"/>
+          elementTypeId="org.eclipse.papyrus.sysmldi.FlowPort_Icon"/>
     </ownedConfigurations>
     <ownedConfigurations
         xsi:type="paletteconfiguration:ToolConfiguration"
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/locator/ParameterPositionLocator.java b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/locator/ParameterPositionLocator.java
index 818a025..f7cb7ef 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/locator/ParameterPositionLocator.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/locator/ParameterPositionLocator.java
@@ -25,6 +25,17 @@
  */
 public class ParameterPositionLocator extends PortPositionLocator {
 
+
+	
+	// FIXME: Use that after Neon.2
+//	/**
+//	 * Constructor.
+//	 * @param parentFigure
+//	 */
+//	public ParameterPositionLocator(IFigure parentFigure) {
+//		super(parentFigure);
+//	}		
+//	
 	/**
 	 * Constructor.
 	 *
diff --git a/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/provider/SysMLFlowPortDirectionLabelProvider.java b/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/provider/SysMLFlowPortDirectionLabelProvider.java
index e4f0fd3..54a04a1 100644
--- a/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/provider/SysMLFlowPortDirectionLabelProvider.java
+++ b/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/provider/SysMLFlowPortDirectionLabelProvider.java
@@ -23,7 +23,7 @@
 import org.eclipse.uml2.uml.Port;
 
 /**
- * This label provider allows to display N/A for the direction of the FlowPort when its requred!
+ * This label provider allows to display N/A for the direction of the FlowPort when its required!
  *
  * @author Vincent Lorenzo
  *
diff --git a/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/utils/Constants.java b/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/utils/Constants.java
index 2629c2a..e66635c 100644
--- a/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/utils/Constants.java
+++ b/table/org.eclipse.papyrus.sysml14.nattable.common/src/org/eclipse/papyrus/sysml14/nattable/common/utils/Constants.java
@@ -17,12 +17,13 @@
 public final class Constants {
 
 	private Constants() {
-		// to prevent instanciation
+		// to prevent instantiation
 	}
 
 
 	/**
 	 * The qualified name of the property direction
+	 * @deprecated
 	 */
 	@Deprecated
 	public static final String STEREOTYPE_FLOWPORT_DIRECTION = "SysML::PortsAndFlows::FlowPort::direction"; //$NON-NLS-1$
