Bug 580187 - [Designer, releng] Create a minimal feature/RCP for code generation

- Remove UI dependency (org.eclipse.ui) in many MANIFEST.MF
	=> Activator extends class Plugin instead of AbstractUIPlugin
- Cleanup of non-required dependencies in many MANIFEST.MF files
- Remove upper restriction on css plugin (compatibility with 2023-12)
- Split oepr.ros2.preferences plugin in UI and non-UI part
	=> add additional plugin to feature and to pom
	=> TODO: StartupCheck is triggered via UI plugin. This needs some re-considerations
- Don't defined MARTE URI, since already defined in SW Designer

Change-Id: I281d3d55d0190b3299c5f430d41a42a7a6b27c02
Signed-off-by: aradermache <ansgar.radermacher@cea.fr>
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.bpc.profile/META-INF/MANIFEST.MF b/plugins/customization/org.eclipse.papyrus.robotics.bpc.profile/META-INF/MANIFEST.MF
index bfaeaad..0c33da8 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.bpc.profile/META-INF/MANIFEST.MF
+++ b/plugins/customization/org.eclipse.papyrus.robotics.bpc.profile/META-INF/MANIFEST.MF
@@ -1,6 +1,5 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.4.0,6.0.0)",
- org.eclipse.core.runtime,
+Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.emf.ecore.xmi;visibility:=reexport,
  org.eclipse.uml2.types;visibility:=reexport,
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.core/META-INF/MANIFEST.MF b/plugins/customization/org.eclipse.papyrus.robotics.core/META-INF/MANIFEST.MF
index 39ca3f3..219d213 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.core/META-INF/MANIFEST.MF
+++ b/plugins/customization/org.eclipse.papyrus.robotics.core/META-INF/MANIFEST.MF
@@ -30,7 +30,8 @@
  org.eclipse.papyrus.infra.services.edit;bundle-version="[3.2.0,5.0.0)",
  org.eclipse.emf.edit.ui;bundle-version="2.0.0",
  org.eclipse.papyrus.designer.languages.common.base;bundle-version="2.1.0",
- org.eclipse.papyrus.designer.uml.tools.utils;bundle-version="3.0.0"
+ org.eclipse.papyrus.designer.uml.tools.utils;bundle-version="3.0.0",
+ org.eclipse.papyrus.designer.transformation.base;bundle-version="3.0.0"
 Export-Package: org.eclipse.papyrus.robotics.core,
  org.eclipse.papyrus.robotics.core.commands,
  org.eclipse.papyrus.robotics.core.menu,
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/ChoiceTypeEditHelperAdvice.java b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/ChoiceTypeEditHelperAdvice.java
index b7b48bd..cb67dc1 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/ChoiceTypeEditHelperAdvice.java
+++ b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/ChoiceTypeEditHelperAdvice.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.DataTypes.ChoiceType;
+import org.eclipse.papyrus.designer.transformation.base.utils.StdModelLibs;
 import org.eclipse.papyrus.robotics.core.types.advice.AbstractApplyStereotypeEditHelperAdvice;
 import org.eclipse.papyrus.robotics.core.utils.MarteUtils;
 
@@ -28,7 +29,7 @@
 
 	@Override
 	protected URI getProfileURI() {
-		return MarteUtils.MARTE_PROFILE_URI;
+		return StdModelLibs.MARTE_PROFILE_URI;
 	}
 
 	@Override
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/CollectionTypeEditHelperAdvice.java b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/CollectionTypeEditHelperAdvice.java
index 64e33df..4bc2759 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/CollectionTypeEditHelperAdvice.java
+++ b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/CollectionTypeEditHelperAdvice.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.DataTypes.CollectionType;
+import org.eclipse.papyrus.designer.transformation.base.utils.StdModelLibs;
 import org.eclipse.papyrus.robotics.core.types.advice.AbstractApplyStereotypeEditHelperAdvice;
 import org.eclipse.papyrus.robotics.core.utils.MarteUtils;
 
@@ -28,7 +29,7 @@
 
 	@Override
 	protected URI getProfileURI() {
-		return MarteUtils.MARTE_PROFILE_URI;
+		return StdModelLibs.MARTE_PROFILE_URI;
 	}
 	
 	@Override
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/NfpTypeEditHelperAdvice.java b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/NfpTypeEditHelperAdvice.java
index 694c345..f3b3e93 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/NfpTypeEditHelperAdvice.java
+++ b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/NfpTypeEditHelperAdvice.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.MARTE.MARTE_Foundations.NFPs.NfpType;
+import org.eclipse.papyrus.designer.transformation.base.utils.StdModelLibs;
 import org.eclipse.papyrus.robotics.core.types.advice.AbstractApplyStereotypeEditHelperAdvice;
 import org.eclipse.papyrus.robotics.core.utils.MarteUtils;
 
@@ -28,7 +29,7 @@
 
 	@Override
 	protected URI getProfileURI() {
-		return MarteUtils.MARTE_PROFILE_URI;
+		return StdModelLibs.MARTE_PROFILE_URI;
 	}
 	
 	@Override
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/TupleTypeEditHelperAdvice.java b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/TupleTypeEditHelperAdvice.java
index 2aa6263..f95cb40 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/TupleTypeEditHelperAdvice.java
+++ b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/types/advice/marte/TupleTypeEditHelperAdvice.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.papyrus.MARTE.MARTE_Annexes.VSL.DataTypes.TupleType;
+import org.eclipse.papyrus.designer.transformation.base.utils.StdModelLibs;
 import org.eclipse.papyrus.robotics.core.types.advice.AbstractApplyStereotypeEditHelperAdvice;
 import org.eclipse.papyrus.robotics.core.utils.MarteUtils;
 
@@ -28,7 +29,7 @@
 
 	@Override
 	protected URI getProfileURI() {
-		return MarteUtils.MARTE_PROFILE_URI;
+		return StdModelLibs.MARTE_PROFILE_URI;
 	}
 
 	@Override
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/utils/MarteUtils.java b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/utils/MarteUtils.java
index 84d0ca8..a688db9 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/utils/MarteUtils.java
+++ b/plugins/customization/org.eclipse.papyrus.robotics.core/src/org/eclipse/papyrus/robotics/core/utils/MarteUtils.java
@@ -15,11 +15,7 @@
 
 package org.eclipse.papyrus.robotics.core.utils;
 
-import org.eclipse.emf.common.util.URI;
-
 public class MarteUtils {
-	public static final URI MARTE_PROFILE_URI = URI.createURI("pathmap://Papyrus_LIBRARIES/MARTE.profile.uml"); //$NON-NLS-1$
-
 	public static final String MARTE_DATA_TYPES_SUBPROFILE = "MARTE::MARTE_Annexes::VSL::DataTypes"; //$NON-NLS-1$
 	public static final String MARTE_NFPS_SUBPROFILE = "MARTE::MARTE_Foundations::NFPs"; //$NON-NLS-1$
 }
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.css/META-INF/MANIFEST.MF b/plugins/customization/org.eclipse.papyrus.robotics.css/META-INF/MANIFEST.MF
index d6a5e59..96dbcb3 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.css/META-INF/MANIFEST.MF
+++ b/plugins/customization/org.eclipse.papyrus.robotics.css/META-INF/MANIFEST.MF
@@ -12,7 +12,7 @@
  org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[2.4.0,4.0.0)",
  org.eclipse.papyrus.robotics.profile;bundle-version="0.7.0",
  org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.4.0,6.0.0)",
- org.eclipse.e4.ui.css.core;bundle-version="[0.12.0,0.14.0)",
+ org.eclipse.e4.ui.css.core;bundle-version="[0.12.0,1.0.0)",
  org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[1.0.0,3.0.0)",
  org.eclipse.papyrus.robotics.core;bundle-version="0.7.0",
  org.eclipse.papyrus.infra.tools;bundle-version="[3.2.0,5.0.0)",
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.profile/META-INF/MANIFEST.MF b/plugins/customization/org.eclipse.papyrus.robotics.profile/META-INF/MANIFEST.MF
index a452d24..91ea265 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.profile/META-INF/MANIFEST.MF
+++ b/plugins/customization/org.eclipse.papyrus.robotics.profile/META-INF/MANIFEST.MF
@@ -1,12 +1,10 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.4.0,6.0.0)",
- org.eclipse.core.runtime;bundle-version="3.0.0",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.0.0",
  org.eclipse.emf.ecore;bundle-version="[2.20.0,3.0.0)";visibility:=reexport,
  org.eclipse.papyrus.robotics.bpc.profile;bundle-version="0.8.0";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="2.0.0";visibility:=reexport,
  org.eclipse.uml2.types;bundle-version="2.5.0";visibility:=reexport,
- org.eclipse.uml2.uml;bundle-version="5.5.0";visibility:=reexport,
- org.eclipse.papyrus.uml.tools.utils;bundle-version="[3.4.0,5.0.0)"
+ org.eclipse.uml2.uml;bundle-version="5.5.0";visibility:=reexport
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-ClassPath: .
diff --git a/plugins/customization/org.eclipse.papyrus.robotics.safety/META-INF/MANIFEST.MF b/plugins/customization/org.eclipse.papyrus.robotics.safety/META-INF/MANIFEST.MF
index 5800749..2101bf6 100644
--- a/plugins/customization/org.eclipse.papyrus.robotics.safety/META-INF/MANIFEST.MF
+++ b/plugins/customization/org.eclipse.papyrus.robotics.safety/META-INF/MANIFEST.MF
@@ -6,15 +6,8 @@
 Bundle-Activator: org.eclipse.papyrus.robotics.safety.Activator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
- org.eclipse.papyrus.infra.gmfdiag.css.theme;bundle-version="1.2.0",
  org.eclipse.emf.ecore;bundle-version="[2.20.0,3.0.0)",
- org.eclipse.gmf.runtime.notation;bundle-version="1.8.0",
- org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[2.4.0,4.0.0)",
  org.eclipse.papyrus.robotics.profile;bundle-version="0.7.0",
- org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.4.0,6.0.0)",
- org.eclipse.e4.ui.css.core;bundle-version="[0.12.0,0.14.0)",
- org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[1.0.0,3.0.0)",
- org.eclipse.papyrus.uml.diagram.composite;bundle-version="[3.2.0,6.0.0)",
  org.polarsys.esf.core.profile.esfarchitectureconcepts;bundle-version="0.7.0",
  org.eclipse.papyrus.robotics.core;bundle-version="0.7.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/META-INF/MANIFEST.MF
index f13289a..a0e29be 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/META-INF/MANIFEST.MF
@@ -5,8 +5,7 @@
  org.eclipse.papyrus.robotics.ros2.codegen.common.launch,
  org.eclipse.papyrus.robotics.ros2.codegen.common.message,
  org.eclipse.papyrus.robotics.ros2.codegen.common.utils
-Require-Bundle: org.eclipse.ui,
- org.eclipse.papyrus.designer.transformation.core;bundle-version="0.7.0",
+Require-Bundle: org.eclipse.papyrus.designer.transformation.core;bundle-version="0.7.0",
  org.eclipse.uml2.uml;bundle-version="4.0.0",
  org.eclipse.papyrus.uml.tools.utils;bundle-version="[3.4.0,5.0.0)",
  org.eclipse.papyrus.infra.core.log;bundle-version="[1.2.0,3.0.0)",
@@ -17,29 +16,19 @@
  org.eclipse.xtext.xbase.lib,
  org.eclipse.xtend.lib,
  org.eclipse.xtend.lib.macro,
- org.eclipse.uml2.uml.profile.standard;bundle-version="1.0.0",
  org.eclipse.papyrus.marte.static.profile;bundle-version="1.2.0",
- org.eclipse.papyrus.designer.transformation.profile;bundle-version="0.7.0",
  org.eclipse.papyrus.designer.transformation.base;bundle-version="0.8.1",
  org.eclipse.papyrus.designer.deployment.tools;bundle-version="0.7.0",
- org.eclipse.papyrus.designer.languages.cpp.codegen;bundle-version="1.1.0",
  org.eclipse.papyrus.designer.transformation.extensions;bundle-version="0.7.0",
  org.eclipse.papyrus.designer.deployment.profile;bundle-version="0.7.0",
  org.eclipse.papyrus.designer.languages.common.extensionpoints;bundle-version="1.1.0",
  org.eclipse.papyrus.designer.infra.base;bundle-version="1.1.0",
- org.eclipse.papyrus.designer.languages.common.profile,
- org.eclipse.papyrus.designer.infra.ui;bundle-version="1.1.0",
  org.eclipse.papyrus.robotics.profile;bundle-version="0.7.0",
- org.eclipse.papyrus.designer.transformation.library;bundle-version="0.7.0",
  org.eclipse.papyrus.robotics.core;bundle-version="0.7.0",
  org.eclipse.papyrus.robotics.ros2.base;bundle-version="0.7.0",
- org.eclipse.cdt.managedbuilder.core;bundle-version="8.0.0",
- org.eclipse.cdt.core;bundle-version="5.4.0",
- org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.4.0,6.0.0)",
  org.eclipse.papyrus.robotics.ros2.preferences;bundle-version="0.7.0",
  org.eclipse.papyrus.robotics.codegen.common;bundle-version="0.8.0",
  org.eclipse.core.runtime;bundle-version="3.0.0",
- org.eclipse.papyrus.infra.tools;bundle-version="[3.2.0,5.0.0)",
  org.eclipse.emf.transaction;bundle-version="1.9.0",
  org.eclipse.papyrus.robotics.library;bundle-version="0.8.0",
  org.eclipse.papyrus.designer.languages.common.base;bundle-version="2.1.0",
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.notation b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.notation
index 9952ead..511d71c 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.notation
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.notation
@@ -53,7 +53,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Xwr9fVkEemTJIu6MXTrdg"/>
       </children>
       <element xmi:type="uml:Class" href="ros2Library.uml#_G73NQ_VgEemTJIu6MXTrdg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Xu2wfVkEemTJIu6MXTrdg" x="64" y="51" width="357"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Xu2wfVkEemTJIu6MXTrdg" x="64" y="51" width="317" height="170"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="__Ij2wPVkEemTJIu6MXTrdg" type="Class_Shape">
       <children xmi:type="notation:DecorationNode" xmi:id="__Ij2wvVkEemTJIu6MXTrdg" type="Class_NameLabel"/>
@@ -107,17 +107,17 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Ikd3_VkEemTJIu6MXTrdg"/>
       </children>
       <element xmi:type="uml:Class" href="ros2Library.uml#_G73NUPVgEemTJIu6MXTrdg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Ij2wfVkEemTJIu6MXTrdg" x="60" y="300" width="361" height="161"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Ij2wfVkEemTJIu6MXTrdg" x="60" y="300" width="321" height="161"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_Y390MPVlEemTJIu6MXTrdg" type="Comment_Shape">
       <children xmi:type="notation:DecorationNode" xmi:id="_Y390MvVlEemTJIu6MXTrdg" type="Comment_BodyLabel"/>
       <element xmi:type="uml:Comment" href="ros2Library.uml#_G73NQfVgEemTJIu6MXTrdg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y390MfVlEemTJIu6MXTrdg" x="520" y="81"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y390MfVlEemTJIu6MXTrdg" x="460" y="81"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_Z2vJkPVlEemTJIu6MXTrdg" type="Comment_Shape">
       <children xmi:type="notation:DecorationNode" xmi:id="_Z2vwoPVlEemTJIu6MXTrdg" type="Comment_BodyLabel"/>
       <element xmi:type="uml:Comment" href="ros2Library.uml#_G73NQvVgEemTJIu6MXTrdg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z2vJkfVlEemTJIu6MXTrdg" x="520" y="311" width="264"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z2vJkfVlEemTJIu6MXTrdg" x="460" y="311" width="264"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_Ay4SABNKEeqSqNoV_scP8g" type="StereotypeComment">
       <styles xmi:type="notation:TitleStyle" xmi:id="_Ay4SARNKEeqSqNoV_scP8g"/>
@@ -231,6 +231,22 @@
       <element xsi:nil="true"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hg2t8q4zEeq7FZkihd40fQ" x="260" y="300"/>
     </children>
+    <children xmi:type="notation:Shape" xmi:id="_OSwIcJULEe6yobVqGRMybg" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_OSwIcZULEe6yobVqGRMybg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_OSwIc5ULEe6yobVqGRMybg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ros2Library.uml#_G73NQ_VgEemTJIu6MXTrdg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OSwIcpULEe6yobVqGRMybg" x="264" y="51"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_OS9j05ULEe6yobVqGRMybg" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_OS9j1JULEe6yobVqGRMybg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_OS9j1pULEe6yobVqGRMybg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ros2Library.uml#_G73NUPVgEemTJIu6MXTrdg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OS9j1ZULEe6yobVqGRMybg" x="260" y="300"/>
+    </children>
     <styles xmi:type="notation:StringValueStyle" xmi:id="_9eT7cfVkEemTJIu6MXTrdg" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_9eT7cvVkEemTJIu6MXTrdg"/>
     <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_9eT7c_VkEemTJIu6MXTrdg" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
@@ -272,7 +288,7 @@
       <element xsi:nil="true"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e4ucwvVlEemTJIu6MXTrdg" points="[552, 100, -643984, -643984]$[421, 100, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e8BBUPVlEemTJIu6MXTrdg" id="(0.0,0.31666666666666665)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e8BBUfVlEemTJIu6MXTrdg" id="(1.0,0.23444976076555024)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e8BBUfVlEemTJIu6MXTrdg" id="(1.0,0.28823529411764703)"/>
     </edges>
     <edges xmi:type="notation:Connector" xmi:id="_Ay4SBBNKEeqSqNoV_scP8g" type="StereotypeCommentLink" source="_-Xu2wPVkEemTJIu6MXTrdg" target="_Ay4SABNKEeqSqNoV_scP8g">
       <styles xmi:type="notation:FontStyle" xmi:id="_Ay4SBRNKEeqSqNoV_scP8g"/>
@@ -414,6 +430,26 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hg2t964zEeq7FZkihd40fQ"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hg2t-K4zEeq7FZkihd40fQ"/>
     </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_OSwIdJULEe6yobVqGRMybg" type="StereotypeCommentLink" source="_-Xu2wPVkEemTJIu6MXTrdg" target="_OSwIcJULEe6yobVqGRMybg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_OSwIdZULEe6yobVqGRMybg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_OSwIeZULEe6yobVqGRMybg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ros2Library.uml#_G73NQ_VgEemTJIu6MXTrdg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OSwIdpULEe6yobVqGRMybg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OSwId5ULEe6yobVqGRMybg"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OSwIeJULEe6yobVqGRMybg"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_OS9j15ULEe6yobVqGRMybg" type="StereotypeCommentLink" source="__Ij2wPVkEemTJIu6MXTrdg" target="_OS9j05ULEe6yobVqGRMybg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_OS9j2JULEe6yobVqGRMybg"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_OS9j3JULEe6yobVqGRMybg" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ros2Library.uml#_G73NUPVgEemTJIu6MXTrdg"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OS9j2ZULEe6yobVqGRMybg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OS9j2pULEe6yobVqGRMybg"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OS9j25ULEe6yobVqGRMybg"/>
+    </edges>
   </notation:Diagram>
   <notation:Diagram xmi:id="_ukx7QHNvEeqPZecp7_XFqQ" type="PapyrusUMLStateMachineDiagram" name="ROS states" measurementUnit="Pixel">
     <children xmi:type="notation:Shape" xmi:id="_ukx7QXNvEeqPZecp7_XFqQ" type="StateMachine_Shape">
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.uml b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.uml
index 32e3493..b6aea6b 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.uml
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/models/library/ros2Library.uml
@@ -9,10 +9,10 @@
     </packageImport>
     <packagedElement xmi:type="uml:Package" xmi:id="_G73NQPVgEemTJIu6MXTrdg" name="m2mtransformations">
       <ownedComment xmi:type="uml:Comment" xmi:id="_G73NQfVgEemTJIu6MXTrdg" annotatedElement="_G73NQ_VgEemTJIu6MXTrdg">
-        <body>Standard transformation chain for ROS.</body>
+        <body>Standard transformation chain for ROS 2.</body>
       </ownedComment>
       <ownedComment xmi:type="uml:Comment" xmi:id="_G73NQvVgEemTJIu6MXTrdg" annotatedElement="_G73NUPVgEemTJIu6MXTrdg">
-        <body>Transformation chain from ROS, if an explicit deployment plan is used</body>
+        <body>Transformation chain for ROS 2, if an explicit deployment plan is used</body>
       </ownedComment>
       <packagedElement xmi:type="uml:Class" xmi:id="_G73NQ_VgEemTJIu6MXTrdg" name="ROSChain">
         <ownedAttribute xmi:type="uml:Property" xmi:id="_G73NRPVgEemTJIu6MXTrdg" name="manualTransformations">
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/Activator.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/Activator.java
index aa91e34..692968e 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/Activator.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/Activator.java
@@ -14,14 +14,14 @@
 
 package org.eclipse.papyrus.robotics.ros2.codegen.common;
 
+import org.eclipse.core.runtime.Plugin;
 import org.eclipse.papyrus.infra.core.log.LogHelper;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
 /**
  * The activator class controls the plug-in life cycle
  */
-public class Activator extends AbstractUIPlugin {
+public class Activator extends Plugin {
 
 	// The plug-in ID
 	public static final String PLUGIN_ID = "org.eclipse.papyrus.robotics.ros2.codegen.common"; //$NON-NLS-1$
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/launch/LaunchScript.xtend b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/launch/LaunchScript.xtend
index e156e9d..584498c 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/launch/LaunchScript.xtend
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.common/src/org/eclipse/papyrus/robotics/ros2/codegen/common/launch/LaunchScript.xtend
@@ -242,7 +242,7 @@
 	'''
 
 	/**
-	 * an XML based aunch script (XML)
+	 * an XML based launch script (XML)
 	 */
 	static def createLaunchScriptXML(Class system) '''
 		<launch>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.cpp/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.cpp/META-INF/MANIFEST.MF
index 8b273e8..3a552fa 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.cpp/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen.cpp/META-INF/MANIFEST.MF
@@ -18,7 +18,6 @@
  org.eclipse.papyrus.designer.transformation.base;bundle-version="0.8.1",
  org.eclipse.papyrus.designer.deployment.tools;bundle-version="0.7.0",
  org.eclipse.papyrus.designer.languages.cpp.codegen;bundle-version="1.1.0",
- org.eclipse.papyrus.designer.transformation.extensions;bundle-version="0.7.0",
  org.eclipse.papyrus.designer.languages.common.extensionpoints;bundle-version="1.1.0",
  org.eclipse.papyrus.designer.infra.base;bundle-version="1.1.0",
  org.eclipse.papyrus.designer.languages.common.profile,
@@ -28,7 +27,6 @@
  org.eclipse.papyrus.robotics.ros2.base;bundle-version="0.7.0",
  org.eclipse.cdt.managedbuilder.core;bundle-version="8.0.0",
  org.eclipse.cdt.core;bundle-version="5.4.0",
- org.eclipse.papyrus.uml.diagram.common;bundle-version="[3.4.0,6.0.0)",
  org.eclipse.papyrus.robotics.ros2.preferences;bundle-version="0.7.0",
  org.eclipse.papyrus.robotics.codegen.common;bundle-version="0.8.0",
  org.eclipse.core.runtime;bundle-version="3.0.0",
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.base/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.base/META-INF/MANIFEST.MF
index 953394e..692b902 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.base/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.base/META-INF/MANIFEST.MF
@@ -1,5 +1,5 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui
+Require-Bundle: org.eclipse.uml2.uml;bundle-version="5.5.0"
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 0.9.0.qualifier
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.extra/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.extra/META-INF/MANIFEST.MF
index b6f53c6..381deb4 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.extra/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.extra/META-INF/MANIFEST.MF
@@ -1,5 +1,5 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui
+Require-Bundle: org.eclipse.uml2.uml;bundle-version="5.5.0"
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 0.9.0.qualifier
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.hrim/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.hrim/META-INF/MANIFEST.MF
index 2ae4918..44235e4 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.hrim/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.hrim/META-INF/MANIFEST.MF
@@ -1,5 +1,5 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui
+Require-Bundle: org.eclipse.uml2.uml;bundle-version="5.5.0"
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 0.9.0.qualifier
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.nav2/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.nav2/META-INF/MANIFEST.MF
index dc4b051..f5d895e 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.nav2/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.library.nav2/META-INF/MANIFEST.MF
@@ -1,5 +1,5 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui
+Require-Bundle: org.eclipse.uml2.uml;bundle-version="5.5.0"
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 0.9.0.qualifier
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/.classpath b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/.classpath
new file mode 100644
index 0000000..1db08c6
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/.classpath
@@ -0,0 +1,7 @@
+<?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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/.project b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/.project
new file mode 100644
index 0000000..6242d2f
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.robotics.ros2.preferences.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..27ca28c
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui;bundle-version="[3.100.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="3.0.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="[1.2.0,3.0.0)",
+ org.eclipse.jface.text;bundle-version="3.0.0",
+ org.eclipse.papyrus.robotics.ros2.base;bundle-version="0.8.0",
+ org.eclipse.papyrus.robotics.ros2.preferences;bundle-version="0.9.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 0.9.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.robotics.ros2.preferences.ui;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Automatic-Module-Name: org.eclipse.papyrus.robotics.transformation.ros.library
+Export-Package: org.eclipse.papyrus.robotics.ros2.preferences.ui
+Bundle-Activator: org.eclipse.papyrus.robotics.ros2.preferences.ui.Activator
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/about.html b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/about.html
new file mode 100644
index 0000000..778e1ba
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/about.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/build.properties b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/build.properties
new file mode 100644
index 0000000..caf99d0
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/build.properties
@@ -0,0 +1,11 @@
+#
+#Thu Jun 28 15:46:18 CEST 2012
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               .classpath,\
+               .project,\
+               about.html,\
+               plugin.properties
+src.includes = about.html
+source.. = src/
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/plugin.properties b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/plugin.properties
new file mode 100644
index 0000000..ef2981c
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/plugin.properties
@@ -0,0 +1,11 @@
+# Copyright (c) CEA LIST.
+#
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+
+pluginName=Papyrus for Robotics: handle ROS 2 preferences (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/plugin.xml b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/plugin.xml
new file mode 100644
index 0000000..8664477
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+			class="org.eclipse.papyrus.robotics.ros2.preferences.ui.Ros2CodeGenPreferencePage"
+			id="org.eclipse.papyrus.robotics.ros2.preferences.ui.Ros2CodeGenPreferencePage"
+			name="ROS 2 code generation preferences">
+		</page>
+	</extension>
+	
+	<extension point="org.eclipse.ui.startup">
+		<startup class="org.eclipse.papyrus.robotics.ros2.preferences.ui.StartupCheck"/>
+	</extension>
+</plugin>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/pom.xml b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/pom.xml
new file mode 100644
index 0000000..819925d
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/pom.xml
@@ -0,0 +1,13 @@
+<?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.robotics</groupId>
+		<artifactId>org.eclipse.papyrus.robotics.ros2</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.papyrus.robotics.ros2.preferences.ui</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<description>Papyrus for Robotics: handle ROS 2 preferences</description>
+</project>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/Activator.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/Activator.java
new file mode 100644
index 0000000..84d10dc
--- /dev/null
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/Activator.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * Contributors:
+ *  Ansgar Radermacher  ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.robotics.ros2.preferences.ui;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.papyrus.robotics.ros2.preferences.ui"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	public static LogHelper log;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+
+		// register the login helper
+		log = new LogHelper(plugin);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2CodeGenPreferencePage.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/Ros2CodeGenPreferencePage.java
similarity index 95%
rename from plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2CodeGenPreferencePage.java
rename to plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/Ros2CodeGenPreferencePage.java
index 78d0420..adf7c6f 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2CodeGenPreferencePage.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/Ros2CodeGenPreferencePage.java
@@ -12,7 +12,7 @@
  *   Ansgar Radermacher - Initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.papyrus.robotics.ros2.preferences;
+package org.eclipse.papyrus.robotics.ros2.preferences.ui;
 
 import org.eclipse.jface.preference.ComboFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
@@ -20,6 +20,8 @@
 import org.eclipse.jface.preference.StringFieldEditor;
 import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.papyrus.robotics.ros2.preferences.Ros2Distributions;
+import org.eclipse.papyrus.robotics.ros2.preferences.Ros2PreferenceConstants;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridData;
@@ -31,7 +33,7 @@
 
 /**
  * This class represents a preference page that is contributed to the
- * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage /samp>,
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
  * we can use the field support built into JFace that allows us to create a page
  * that is small and knows how to save, restore and apply itself.
  * <p>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/StartupCheck.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/StartupCheck.java
similarity index 67%
rename from plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/StartupCheck.java
rename to plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/StartupCheck.java
index 17c99ec..9b787cd 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/StartupCheck.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences.ui/src/org/eclipse/papyrus/robotics/ros2/preferences/ui/StartupCheck.java
@@ -14,11 +14,18 @@
  *
  *****************************************************************************/
 
-package org.eclipse.papyrus.robotics.ros2.preferences;
+package org.eclipse.papyrus.robotics.ros2.preferences.ui;
 
 import org.eclipse.papyrus.robotics.ros2.base.EnvironmentUtils;
+import org.eclipse.papyrus.robotics.ros2.preferences.Ros2PreferenceUtils;
 import org.eclipse.ui.IStartup;
 
+/**
+ * Initialize the startup here. We cannot do this in the activator of other P4R plugins, as
+ * the build via colcon does not trigger any P4R plugin loading (unless we add additional
+ * build commands).
+ * TODO: needs re-consideration in the context of web-based RCP
+ */
 public class StartupCheck implements IStartup {
 
 	@Override
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/META-INF/MANIFEST.MF b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/META-INF/MANIFEST.MF
index 9341fa7..caf8840 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/META-INF/MANIFEST.MF
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/META-INF/MANIFEST.MF
@@ -1,6 +1,5 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui;bundle-version="[3.100.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="3.0.0",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.0.0",
  org.eclipse.papyrus.infra.core.log;bundle-version="[1.2.0,3.0.0)",
  org.eclipse.jface.text;bundle-version="3.0.0",
  org.eclipse.papyrus.robotics.ros2.base;bundle-version="0.8.0"
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/plugin.xml b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/plugin.xml
index 7c89497..b0a6607 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/plugin.xml
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/plugin.xml
@@ -6,17 +6,4 @@
 			class="org.eclipse.papyrus.robotics.ros2.preferences.Ros2PreferenceInitializer">
 		</initializer>
 	</extension>
-
-	<extension point="org.eclipse.ui.preferencePages">
-		<page
-			category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
-			class="org.eclipse.papyrus.robotics.ros2.preferences.Ros2CodeGenPreferencePage"
-			id="org.eclipse.papyrus.robotics.ros2.preferences.Ros2CodeGenPreferencePage"
-			name="ROS 2 code generation preferences">
-		</page>
-	</extension>
-	
-	<extension point="org.eclipse.ui.startup">
-		<startup class="org.eclipse.papyrus.robotics.ros2.preferences.StartupCheck"/>
-	</extension>
 </plugin>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Activator.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Activator.java
index 7131abb..dc109a9 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Activator.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Activator.java
@@ -13,14 +13,14 @@
  *****************************************************************************/
 package org.eclipse.papyrus.robotics.ros2.preferences;
 
+import org.eclipse.core.runtime.Plugin;
 import org.eclipse.papyrus.infra.core.log.LogHelper;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
 /**
  * The activator class controls the plug-in life cycle
  */
-public class Activator extends AbstractUIPlugin {
+public class Activator extends Plugin {
 
 	// The plug-in ID
 	public static final String PLUGIN_ID = "org.eclipse.papyrus.robotics.ros2.preferences"; //$NON-NLS-1$
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceConstants.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceConstants.java
index 792bfcb..71814cc 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceConstants.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceConstants.java
@@ -13,37 +13,50 @@
 
 package org.eclipse.papyrus.robotics.ros2.preferences;
 
+/**
+ * ROS2 preference constants (key + default value)
+ */
 public class Ros2PreferenceConstants {
 
 	/**
 	 * used ROS 2 distribution
 	 */
 	public static final String P_ROS_DISTRO = "rosDistro"; //$NON-NLS-1$
+	public static final String P_DEFAULT_ROS_DISTRO = Ros2Distributions.HUMBLE;
 
 	/**
 	 * list of paths in which to charge setup.bash files
 	 */
 	public static final String P_SETUP_PATH = "rosSetupPath"; //$NON-NLS-1$
+	public static final String P_DEFAULT_SETUP_PATH = "/opt/ros/" + P_DEFAULT_ROS_DISTRO; //$NON-NLS-1$
 
 	/**
 	 * colcon build options, e.g. --symlink-install
 	 */
 	public static final String P_COLCON_OPTIONS = "colcon-options"; //$NON-NLS-1$
+	public static final String P_DEFAULT_COLCON_OPTIONS = "--symlink-install"; //$NON-NLS-1$
 
 	/**
 	 * colcon option to build a particular package
 	 */
 	public static final String P_COLCON_PACKAGES = "colcon-packages"; //$NON-NLS-1$
+	public static final String P_DEFAULT_COLCON_PACKAGES = "--packages-up-to"; //$NON-NLS-1$
 
 	/**
 	 * maintainer name and e-mail
 	 */
 	public static final String P_MAINTAINER_NAME = "maintainer-name"; //$NON-NLS-1$
+	public static final String P_DEFAULT_MAINTAINER_NAME = "maintainer"; //$NON-NLS-1$
+
 	public static final String P_MAINTAINER_MAIL = "maintainer-mail"; //$NON-NLS-1$
+	public static final String P_DEFAULT_MAINTAINER_MAIL = "maintainer@somewhere.net"; //$NON-NLS-1$
 
 	/**
 	 * author name and e-mail
 	 */
 	public static final String P_AUTHOR_NAME = "author-name"; //$NON-NLS-1$
+	public static final String P_DEFAULT_AUTHOR_NAME = "author"; //$NON-NLS-1$
+	
 	public static final String P_AUTHOR_MAIL = "author-mail"; //$NON-NLS-1$
+	public static final String P_DEFAULT_AUTHOR_MAIL = "author@somewhere.net"; //$NON-NLS-1$
 }
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceInitializer.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceInitializer.java
index 063c019..e2b7deb 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceInitializer.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceInitializer.java
@@ -14,9 +14,10 @@
 package org.eclipse.papyrus.robotics.ros2.preferences;
 
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
 import org.eclipse.papyrus.robotics.ros2.base.EnvironmentUtils;
 
 
@@ -27,30 +28,32 @@
 	 *
 	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
 	 */
-	@SuppressWarnings("nls")
 	@Override
 	public void initializeDefaultPreferences() {
-		IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-		store.setDefault(Ros2PreferenceConstants.P_ROS_DISTRO, Ros2Distributions.HUMBLE);
-		store.setDefault(Ros2PreferenceConstants.P_SETUP_PATH, "/opt/ros/" + Ros2Distributions.HUMBLE);
-		store.setDefault(Ros2PreferenceConstants.P_COLCON_OPTIONS, "--symlink-install");
-		store.setDefault(Ros2PreferenceConstants.P_COLCON_PACKAGES, "--packages-up-to");
-		store.setDefault(Ros2PreferenceConstants.P_MAINTAINER_NAME, "maintainer");
-		store.setDefault(Ros2PreferenceConstants.P_MAINTAINER_MAIL, "maintainer@somewhere.net");
-		store.setDefault(Ros2PreferenceConstants.P_AUTHOR_NAME, "author");
-		store.setDefault(Ros2PreferenceConstants.P_AUTHOR_MAIL, "author@somewhere.net");
-
-		IPropertyChangeListener changeListener = new IPropertyChangeListener() {
-
+		IEclipsePreferences prefs = DefaultScope.INSTANCE.getNode(Activator.PLUGIN_ID);
+		prefs.put(Ros2PreferenceConstants.P_ROS_DISTRO, Ros2PreferenceConstants.P_DEFAULT_ROS_DISTRO);
+		prefs.put(Ros2PreferenceConstants.P_SETUP_PATH, Ros2PreferenceConstants.P_DEFAULT_SETUP_PATH);
+		prefs.put(Ros2PreferenceConstants.P_COLCON_OPTIONS, Ros2PreferenceConstants.P_DEFAULT_COLCON_OPTIONS);
+		prefs.put(Ros2PreferenceConstants.P_COLCON_PACKAGES, Ros2PreferenceConstants.P_DEFAULT_COLCON_PACKAGES);
+		prefs.put(Ros2PreferenceConstants.P_MAINTAINER_NAME, Ros2PreferenceConstants.P_DEFAULT_MAINTAINER_NAME);
+		prefs.put(Ros2PreferenceConstants.P_MAINTAINER_MAIL, Ros2PreferenceConstants.P_DEFAULT_MAINTAINER_MAIL);
+		prefs.put(Ros2PreferenceConstants.P_AUTHOR_NAME, Ros2PreferenceConstants.P_DEFAULT_AUTHOR_NAME);
+		prefs.put(Ros2PreferenceConstants.P_AUTHOR_MAIL, Ros2PreferenceConstants.P_DEFAULT_AUTHOR_MAIL);
+		
+		/**
+		 * if the user changes the ROS2 setup path, re-run setup jobs.
+		 */
+		IPreferenceChangeListener changeListener = new IPreferenceChangeListener() {
+			
 			@Override
-			public void propertyChange(PropertyChangeEvent event) {
+			public void preferenceChange(PreferenceChangeEvent changeEvent) {
 				// update ROS 2 environment variables
-				if (event.getProperty() == Ros2PreferenceConstants.P_SETUP_PATH) {
+				if (changeEvent.getKey() == Ros2PreferenceConstants.P_SETUP_PATH) {
 					EnvironmentUtils.waitForSetupJob();
 					EnvironmentUtils.runCheckAndApplySetupJob(Ros2PreferenceUtils.getSetupPath());
-				}
+				}				
 			}
 		};
-		store.addPropertyChangeListener(changeListener);
+		prefs.addPreferenceChangeListener(changeListener);
 	}
 }
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceUtils.java b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceUtils.java
index f6e0b9a..6ae905d 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceUtils.java
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.preferences/src/org/eclipse/papyrus/robotics/ros2/preferences/Ros2PreferenceUtils.java
@@ -13,7 +13,8 @@
 
 package org.eclipse.papyrus.robotics.ros2.preferences;
 
-import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 
 /**
  * Utility class that returns the preference values (eventually taking
@@ -21,51 +22,51 @@
  */
 public class Ros2PreferenceUtils {
 
-	protected static IPreferenceStore preferenceStore = null;
+	protected static IEclipsePreferences prefs = null;
 
 	public static String getRosDistroStr() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_ROS_DISTRO);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_ROS_DISTRO, Ros2PreferenceConstants.P_DEFAULT_ROS_DISTRO);
 	}
 
 	public static String getSetupPath() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_SETUP_PATH);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_SETUP_PATH, Ros2PreferenceConstants.P_DEFAULT_SETUP_PATH);
 	}
 
 	public static String getColconOptions() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_COLCON_OPTIONS);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_COLCON_OPTIONS, Ros2PreferenceConstants.P_DEFAULT_COLCON_OPTIONS);
 	}
 
 	public static String getColconPackageOptions() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_COLCON_PACKAGES);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_COLCON_PACKAGES, Ros2PreferenceConstants.P_DEFAULT_COLCON_PACKAGES);
 	}
 
 	public static String getMaintainerName() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_MAINTAINER_NAME);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_MAINTAINER_NAME, Ros2PreferenceConstants.P_DEFAULT_MAINTAINER_NAME);
 	}
 
 	public static String getMaintainerMail() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_MAINTAINER_MAIL);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_MAINTAINER_MAIL, Ros2PreferenceConstants.P_DEFAULT_MAINTAINER_MAIL);
 	}
 
 	public static String getAuthorName() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_AUTHOR_NAME);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_AUTHOR_NAME, Ros2PreferenceConstants.P_DEFAULT_AUTHOR_NAME);
 	}
 
 	public static String getAuthorMail() {
-		initPreferenceStore();
-		return preferenceStore.getString(Ros2PreferenceConstants.P_AUTHOR_MAIL);
+		initprefs();
+		return prefs.get(Ros2PreferenceConstants.P_AUTHOR_MAIL, Ros2PreferenceConstants.P_DEFAULT_AUTHOR_MAIL);
 	}
 
-	public static void initPreferenceStore() {
-		if (preferenceStore == null) {
-			preferenceStore = Activator.getDefault().getPreferenceStore();
+	public static void initprefs() {
+		if (prefs == null) {
+			prefs = InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID);
 		}
 	}
 }
diff --git a/plugins/ros2/pom.xml b/plugins/ros2/pom.xml
index a35e5de..4e3866d 100644
--- a/plugins/ros2/pom.xml
+++ b/plugins/ros2/pom.xml
@@ -24,6 +24,7 @@
 		<module>org.eclipse.papyrus.robotics.ros2.launch</module>
 		<module>org.eclipse.papyrus.robotics.ros2.codegen.tests</module>
 		<module>org.eclipse.papyrus.robotics.ros2.preferences</module>
+		<module>org.eclipse.papyrus.robotics.ros2.preferences.ui</module>
 		<module>org.eclipse.papyrus.robotics.ros2.library.base</module>
 		<module>org.eclipse.papyrus.robotics.ros2.library.extra</module>
 		<module>org.eclipse.papyrus.robotics.ros2.library.nav2</module>
diff --git a/releng/org.eclipse.papyrus.robotics.ros2.feature/feature.xml b/releng/org.eclipse.papyrus.robotics.ros2.feature/feature.xml
index 555ed86..d2ff5d0 100644
--- a/releng/org.eclipse.papyrus.robotics.ros2.feature/feature.xml
+++ b/releng/org.eclipse.papyrus.robotics.ros2.feature/feature.xml
@@ -131,4 +131,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.papyrus.robotics.ros2.preferences.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>