Bug 501730 - [Designer] make the branch modular working

- Fixes to validation plugin
- Make component feature depend on main transformation feature
- Target platform change for milestone

Change-Id: I8898cd3f9d5872d5e6f0736eb160d43bb9923692
Signed-off-by: Francois Le Fevre - CEA <francois.le-fevre@cea.fr>
Signed-off-by: Ansgar Radermacher <ansgar.radermacher@cea.fr>

diff --git a/components/org.eclipse.papyrus.designer.components.validation/META-INF/MANIFEST.MF b/components/org.eclipse.papyrus.designer.components.validation/META-INF/MANIFEST.MF
index b89c19b..f8dac5d 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/META-INF/MANIFEST.MF
+++ b/components/org.eclipse.papyrus.designer.components.validation/META-INF/MANIFEST.MF
@@ -2,10 +2,14 @@
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.uml2.uml;bundle-version="3.0.1",
  org.eclipse.emf.validation;bundle-version="1.3.0",
- org.eclipse.papyrus.designer.transformation.core;bundle-version="0.7.5",
- org.eclipse.papyrus.designer.components.fcm.profile;bundle-version="0.7.4",
  org.eclipse.ui,
- org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0"
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="1.2.0",
+ org.eclipse.papyrus.designer.languages.idl.codegen,
+ org.eclipse.papyrus.designer.components.transformation;bundle-version="0.7.5",
+ org.eclipse.papyrus.designer.transformation.base;bundle-version="0.7.5",
+ org.eclipse.papyrus.designer.transformation.core;bundle-version="0.7.5",
+ org.eclipse.papyrus.designer.components.fcm.profile;bundle-version="0.7.5",
+ org.eclipse.papyrus.designer.transformation.library;bundle-version="0.7.5"
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 0.7.5.qualifier
@@ -15,3 +19,4 @@
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.papyrus.designer.components.validation;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.papyrus.designer.deployment.tools
diff --git a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/AggregationKindValid.java b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/AggregationKindValid.java
index eeb1068..9782166 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/AggregationKindValid.java
+++ b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/AggregationKindValid.java
@@ -10,7 +10,7 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.designer.components.FCM.ConfigurationProperty;
-import org.eclipse.papyrus.designer.components.transformation.core.Utils;
+import org.eclipse.papyrus.designer.deployment.tools.DepUtils;
 import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
 import org.eclipse.uml2.uml.AggregationKind;
 import org.eclipse.uml2.uml.Class;
@@ -45,7 +45,7 @@
 		if (type instanceof Class) {
 			AggregationKind aggKind = attribute.getAggregation();
 			if (aggKind != AggregationKind.COMPOSITE_LITERAL) {
-				if (StereotypeUtil.isApplicable(attribute, ConfigurationProperty.class) && !Utils.isSingleton((Class) type)) {
+				if (StereotypeUtil.isApplicable(attribute, ConfigurationProperty.class) && !DepUtils.isSingleton((Class) type)) {
 					// no composition, but not singleton: warn user to make up a proper deployment plan
 					// validation has been made Qompass specific by checking whether the Configuration attribute is applicable
 
diff --git a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ConnectorConnectable.java b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ConnectorConnectable.java
index 5a1dd49..58680b3 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ConnectorConnectable.java
+++ b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ConnectorConnectable.java
@@ -18,8 +18,8 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.designer.components.FCM.InteractionComponent;
-import org.eclipse.papyrus.designer.components.transformation.core.templates.ConnectorBinding;
-import org.eclipse.papyrus.designer.components.transformation.core.transformations.TransformationException;
+import org.eclipse.papyrus.designer.components.transformation.templates.ConnectorBinding;
+import org.eclipse.papyrus.designer.transformation.base.utils.TransformationException;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Connector;
 import org.eclipse.uml2.uml.util.UMLUtil;
diff --git a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ExecutorIsNotUsedAsPartName.java b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ExecutorIsNotUsedAsPartName.java
index 78e57cd..43b7985 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ExecutorIsNotUsedAsPartName.java
+++ b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/ExecutorIsNotUsedAsPartName.java
@@ -18,7 +18,7 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.designer.components.FCM.RuleApplication;
-import org.eclipse.papyrus.designer.components.transformation.core.transformations.container.ContainerTrafo;
+import org.eclipse.papyrus.designer.components.transformation.container.ContainerTrafo;
 import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Property;
@@ -38,9 +38,9 @@
 		if (StereotypeUtil.isApplied(class_, RuleApplication.class)) {
 			// limit check to classes applying a container rule.
 			for (Property attribute : class_.getOwnedAttributes()) {
-				if (attribute.getName().equals(ContainerTrafo.executorPartName)) {
+				//FIXME if (attribute.getName().equals(ContainerTrafo.executorPartName)) {
 					return ctx.createFailureStatus("A property may not use the reserved name \"_executor\"");
-				}
+				//}
 			}
 		}
 		return ctx.createSuccessStatus();
diff --git a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/InitialEntryPoints.java b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/InitialEntryPoints.java
index 8badde1..746f717 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/InitialEntryPoints.java
+++ b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/InitialEntryPoints.java
@@ -20,8 +20,8 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.designer.components.FCM.DeploymentPlan;
-import org.eclipse.papyrus.designer.components.transformation.core.deployment.BootLoaderGen;
-import org.eclipse.papyrus.designer.components.transformation.core.deployment.DepUtils;
+import org.eclipse.papyrus.designer.deployment.tools.DepUtils;
+import org.eclipse.papyrus.designer.transformation.library.transformations.AbstractBootLoaderGen;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.InstanceSpecification;
@@ -66,7 +66,7 @@
 		Classifier cl = DepUtils.getClassifier(is);
 		if (cl instanceof Class) {
 			Class implementation = (Class) cl;
-			if (BootLoaderGen.hasUnconnectedStartRoutine(null, implementation, null)) {
+			if (AbstractBootLoaderGen.hasUnconnectedStartRoutine(null, implementation, null)) {
 				entryPoints.add(implementation.getName());
 			}
 		}
diff --git a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/SystemHasNoPorts.java b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/SystemHasNoPorts.java
index f68bb55..16b852f 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/SystemHasNoPorts.java
+++ b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/SystemHasNoPorts.java
@@ -18,7 +18,7 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.designer.components.FCM.DeploymentPlan;
-import org.eclipse.papyrus.designer.components.transformation.core.deployment.DepUtils;
+import org.eclipse.papyrus.designer.deployment.tools.DepUtils;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.InstanceSpecification;
 import org.eclipse.uml2.uml.Package;
diff --git a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/TemplateRefWithoutBinding.java b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/TemplateRefWithoutBinding.java
index 583f8ef..82908be 100644
--- a/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/TemplateRefWithoutBinding.java
+++ b/components/org.eclipse.papyrus.designer.components.validation/src/org/eclipse/papyrus/designer/components/validation/constraints/TemplateRefWithoutBinding.java
@@ -18,7 +18,7 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.designer.components.FCM.DerivedElement;
-import org.eclipse.papyrus.designer.components.transformation.core.templates.TemplateUtils;
+import org.eclipse.papyrus.designer.transformation.core.templates.TemplateUtils;
 import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
 import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Package;
diff --git a/releng/org.eclipse.papyrus.designer.components.main.feature/feature.xml b/releng/org.eclipse.papyrus.designer.components.main.feature/feature.xml
index b4d9828..bf9231e 100644
--- a/releng/org.eclipse.papyrus.designer.components.main.feature/feature.xml
+++ b/releng/org.eclipse.papyrus.designer.components.main.feature/feature.xml
@@ -39,16 +39,10 @@
       <import feature="org.eclipse.papyrus.designer.languages.common.feature"/>
       <import feature="org.eclipse.papyrus.designer.languages.cpp.feature"/>
       <import feature="org.eclipse.papyrus.designer.languages.java.feature"/>
+      <import feature="org.eclipse.papyrus.designer.transformation.main.feature"/>
    </requires>
 
    <plugin
-         id="org.eclipse.papyrus.designer.transformation.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.papyrus.designer.components.transformation.ui"
          download-size="0"
          install-size="0"
@@ -77,20 +71,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.papyrus.designer.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.papyrus.designer.components.transformation.cpp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.papyrus.designer.components.modellibs.core"
          download-size="0"
          install-size="0"
@@ -111,4 +91,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.papyrus.designer.components.transformation.cpp"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/targetplatform/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone.target b/targetplatform/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone.target
index 12ca63c..b2bc7f3 100644
--- a/targetplatform/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone.target
+++ b/targetplatform/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone/org.eclipse.papyrus.designer.targetplatform.neon-papyrusmilestone.target
@@ -27,9 +27,5 @@
 <unit id="org.eclipse.papyrus.marte.core.feature.feature.group" version="0.0.0"/>
 <repository location="https://hudson.eclipse.org/papyrus/view/MARTE/job/papyrus-marte-neon/ws/releng/org.eclipse.papyrus.marte.p2/target/repository/"/>
 </location>
-<!--location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.swt.dummyfragments.feature.group" version="0.0.0"/>
-<repository location="https://eclipseguru.github.io/missing-swt-fragments/"/>
-</location-->
 </locations>
 </target>
diff --git a/transformation/org.eclipse.papyrus.designer.transformation.library/src/org/eclipse/papyrus/designer/transformation/library/transformations/AbstractBootLoaderGen.java b/transformation/org.eclipse.papyrus.designer.transformation.library/src/org/eclipse/papyrus/designer/transformation/library/transformations/AbstractBootLoaderGen.java
index efda397..19179b2 100644
--- a/transformation/org.eclipse.papyrus.designer.transformation.library/src/org/eclipse/papyrus/designer/transformation/library/transformations/AbstractBootLoaderGen.java
+++ b/transformation/org.eclipse.papyrus.designer.transformation.library/src/org/eclipse/papyrus/designer/transformation/library/transformations/AbstractBootLoaderGen.java
@@ -173,7 +173,7 @@
 	 * @param containerSlot
 	 * @return
 	 */
-	public boolean hasUnconnectedStartRoutine(LazyCopier copier, Class implementation, Slot containerSlot) {
+	public static boolean hasUnconnectedStartRoutine(LazyCopier copier, Class implementation, Slot containerSlot) {
 		Port startPort = AllocUtils.getStartPort(implementation);
 		if (startPort != null) {
 			return !isConnected(copier, containerSlot, startPort);