[Releng] Add support for Java 16 and 17.
diff --git a/features/org.eclipse.oomph.setup.jdt-feature/feature.xml b/features/org.eclipse.oomph.setup.jdt-feature/feature.xml
index b0247d7..b748329 100644
--- a/features/org.eclipse.oomph.setup.jdt-feature/feature.xml
+++ b/features/org.eclipse.oomph.setup.jdt-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.oomph.setup.jdt"
       label="%featureName"
-      version="1.16.0.qualifier"
+      version="1.17.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.oomph.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.oomph.setup.jdt-feature/pom.xml b/features/org.eclipse.oomph.setup.jdt-feature/pom.xml
index 530aa73..9f6d530 100644
--- a/features/org.eclipse.oomph.setup.jdt-feature/pom.xml
+++ b/features/org.eclipse.oomph.setup.jdt-feature/pom.xml
@@ -20,6 +20,6 @@
   </parent>
   <groupId>org.eclipse.oomph.features</groupId>
   <artifactId>org.eclipse.oomph.setup.jdt</artifactId>
-  <version>1.16.0-SNAPSHOT</version>
+  <version>1.17.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.oomph.setup.sdk-feature/feature.xml b/features/org.eclipse.oomph.setup.sdk-feature/feature.xml
index ce71bb7..46cc162 100644
--- a/features/org.eclipse.oomph.setup.sdk-feature/feature.xml
+++ b/features/org.eclipse.oomph.setup.sdk-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.oomph.setup.sdk"
       label="%featureName"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.oomph.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.oomph.setup.sdk-feature/pom.xml b/features/org.eclipse.oomph.setup.sdk-feature/pom.xml
index c9830c5..d9376bb 100644
--- a/features/org.eclipse.oomph.setup.sdk-feature/pom.xml
+++ b/features/org.eclipse.oomph.setup.sdk-feature/pom.xml
@@ -20,6 +20,6 @@
   </parent>
   <groupId>org.eclipse.oomph.features</groupId>
   <artifactId>org.eclipse.oomph.setup.sdk</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/plugins/org.eclipse.oomph.setup.jdt/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.setup.jdt/META-INF/MANIFEST.MF
index b249110..9f32f87 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.oomph.setup.jdt/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.oomph.setup.jdt;singleton:=true
-Bundle-Version: 1.16.0.qualifier
+Bundle-Version: 1.17.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.oomph.setup.jdt;version="1.16.0";x-internal:=true,
- org.eclipse.oomph.setup.jdt.impl;version="1.16.0";x-internal:=true,
- org.eclipse.oomph.setup.jdt.util;version="1.16.0";x-internal:=true
+Export-Package: org.eclipse.oomph.setup.jdt;version="1.17.0";x-internal:=true,
+ org.eclipse.oomph.setup.jdt.impl;version="1.17.0";x-internal:=true,
+ org.eclipse.oomph.setup.jdt.util;version="1.17.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
  org.eclipse.oomph.setup;bundle-version="[1.18.0,2.0.0)";visibility:=reexport,
diff --git a/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore b/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore
index 5278176..26941e6 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore
+++ b/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore
@@ -73,6 +73,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.1"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.1 Location"/>
@@ -132,6 +140,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.2"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.2 Location"/>
@@ -187,6 +203,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.3"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.3 Location"/>
@@ -238,6 +262,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.4"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.4 Location"/>
@@ -285,6 +317,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.5"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.5 Location"/>
@@ -328,6 +368,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.6"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.6 Location"/>
@@ -367,6 +415,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.7"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.7 Location"/>
@@ -402,6 +458,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.8"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.8 Location"/>
@@ -433,6 +497,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-9"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 9 Location"/>
@@ -460,6 +532,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-10"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 10 Location"/>
@@ -483,6 +563,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-11"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 11 Location"/>
@@ -502,6 +590,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-12"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 12 Location"/>
@@ -517,6 +613,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-13"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 13 Location"/>
@@ -528,6 +632,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-14"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 14 Location"/>
@@ -535,12 +647,38 @@
       <details key="version" value="JavaSE-14"/>
     </eAnnotations>
     <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-15"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 15 Location"/>
       <details key="description" value="The location of a JDK or JRE compatible with Java 15."/>
       <details key="version" value="JavaSE-15"/>
     </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
+      <details key="name" value="jre.location-16"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 16 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 15."/>
+      <details key="version" value="JavaSE-16"/>
+    </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <details key="name" value="jre.location-17"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 17 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 17."/>
+      <details key="version" value="JavaSE-17"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" lowerBound="1"
diff --git a/plugins/org.eclipse.oomph.setup.jdt/pom.xml b/plugins/org.eclipse.oomph.setup.jdt/pom.xml
index ad388b9..00b4edd 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/pom.xml
+++ b/plugins/org.eclipse.oomph.setup.jdt/pom.xml
@@ -20,7 +20,7 @@
   </parent>
   <groupId>org.eclipse.oomph</groupId>
   <artifactId>org.eclipse.oomph.setup.jdt</artifactId>
-  <version>1.16.0-SNAPSHOT</version>
+  <version>1.17.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <build>
diff --git a/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/JRETask.java b/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/JRETask.java
index 8c7f58a..c806026 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/JRETask.java
+++ b/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/JRETask.java
@@ -49,6 +49,8 @@
  *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-13' type='JRE' label='JRE 13 Location' description='The location of a JDK or JRE compatible with Java 13.' version='JavaSE-13'"
  *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-14' type='JRE' label='JRE 14 Location' description='The location of a JDK or JRE compatible with Java 14.' version='JavaSE-14'"
  *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-15' type='JRE' label='JRE 15 Location' description='The location of a JDK or JRE compatible with Java 15.' version='JavaSE-15'"
+ *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-16' type='JRE' label='JRE 16 Location' description='The location of a JDK or JRE compatible with Java 15.' version='JavaSE-16'"
+ *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-17' type='JRE' label='JRE 17 Location' description='The location of a JDK or JRE compatible with Java 17.' version='JavaSE-17'"
  * @generated
  */
 public interface JRETask extends SetupTask
diff --git a/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/impl/JDTPackageImpl.java b/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/impl/JDTPackageImpl.java
index de116a1..5e1e0e9 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/impl/JDTPackageImpl.java
+++ b/plugins/org.eclipse.oomph.setup.jdt/src/org/eclipse/oomph/setup/jdt/impl/JDTPackageImpl.java
@@ -435,6 +435,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.2", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.2 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -493,6 +501,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.3", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.3 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -547,6 +563,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.4", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.4 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -597,6 +621,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.5", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.5 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -643,6 +675,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.6", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.6 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -685,6 +725,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.7", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.7 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -723,6 +771,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-1.8", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 1.8 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -757,6 +813,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-9", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 9 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -787,6 +851,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-10", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 10 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -813,6 +885,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-11", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 11 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -835,6 +915,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-12", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 12 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -853,6 +941,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-13", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 13 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -867,6 +963,14 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-14", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 14 Location", //$NON-NLS-1$ //$NON-NLS-2$
@@ -877,12 +981,44 @@
         new String[] { "value", "${jre.location-15}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 15 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
     addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-15", //$NON-NLS-1$ //$NON-NLS-2$
         "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
         "label", "JRE 15 Location", //$NON-NLS-1$ //$NON-NLS-2$
         "description", "The location of a JDK or JRE compatible with Java 15.", //$NON-NLS-1$ //$NON-NLS-2$
         "version", "JavaSE-15" //$NON-NLS-1$ //$NON-NLS-2$
     });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-16}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 16 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-16", //$NON-NLS-1$ //$NON-NLS-2$
+        "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
+        "label", "JRE 16 Location", //$NON-NLS-1$ //$NON-NLS-2$
+        "description", "The location of a JDK or JRE compatible with Java 15.", //$NON-NLS-1$ //$NON-NLS-2$
+        "version", "JavaSE-16" //$NON-NLS-1$ //$NON-NLS-2$
+    });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-17", //$NON-NLS-1$ //$NON-NLS-2$
+        "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
+        "label", "JRE 17 Location", //$NON-NLS-1$ //$NON-NLS-2$
+        "description", "The location of a JDK or JRE compatible with Java 17.", //$NON-NLS-1$ //$NON-NLS-2$
+        "version", "JavaSE-17" //$NON-NLS-1$ //$NON-NLS-2$
+    });
   }
 
   /**
diff --git a/setups/models/JDT.ecore b/setups/models/JDT.ecore
index 5dfde1d..1b322b2 100644
--- a/setups/models/JDT.ecore
+++ b/setups/models/JDT.ecore
@@ -73,6 +73,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.1"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.1 Location"/>
@@ -132,6 +140,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.2"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.2 Location"/>
@@ -187,6 +203,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.3"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.3 Location"/>
@@ -238,6 +262,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.4"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.4 Location"/>
@@ -285,6 +317,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.5"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.5 Location"/>
@@ -328,6 +368,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.6"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.6 Location"/>
@@ -367,6 +415,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.7"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.7 Location"/>
@@ -402,6 +458,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.8"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.8 Location"/>
@@ -433,6 +497,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-9"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 9 Location"/>
@@ -460,6 +532,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-10"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 10 Location"/>
@@ -483,6 +563,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-11"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 11 Location"/>
@@ -502,6 +590,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-12"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 12 Location"/>
@@ -517,6 +613,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-13"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 13 Location"/>
@@ -528,6 +632,14 @@
         <details key="value" value="${jre.location-15}"/>
         <details key="label" value="JRE 15 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-14"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 14 Location"/>
@@ -535,12 +647,38 @@
       <details key="version" value="JavaSE-14"/>
     </eAnnotations>
     <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-16}"/>
+        <details key="label" value="JRE 16 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-15"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 15 Location"/>
       <details key="description" value="The location of a JDK or JRE compatible with Java 15."/>
       <details key="version" value="JavaSE-15"/>
     </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-17}"/>
+        <details key="label" value="JRE 17 Location"/>
+      </eAnnotations>
+      <details key="name" value="jre.location-16"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 16 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 15."/>
+      <details key="version" value="JavaSE-16"/>
+    </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <details key="name" value="jre.location-17"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 17 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 17."/>
+      <details key="version" value="JavaSE-17"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" lowerBound="1"