[Releng] Add support for Java 18 and 19.
diff --git a/features/org.eclipse.oomph.setup.jdt-feature/feature.xml b/features/org.eclipse.oomph.setup.jdt-feature/feature.xml
index e2f9e77..b16e0b4 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.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.jdt-feature/pom.xml b/features/org.eclipse.oomph.setup.jdt-feature/pom.xml
index 2c3d74e..4b068db 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.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/plugins/org.eclipse.oomph.setup.jdt.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.setup.jdt.edit/META-INF/MANIFEST.MF
index fc4db9f..194ea26 100644
--- a/plugins/org.eclipse.oomph.setup.jdt.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.oomph.setup.jdt.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.oomph.setup.jdt.edit;singleton:=true
-Bundle-Version: 1.13.0.qualifier
+Bundle-Version: 1.14.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.oomph.setup.jdt.provider.JDTEditPlugin$Implementation
 Bundle-Vendor: %providerName
@@ -10,9 +10,9 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.oomph.setup.jdt.provider;version="1.5.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.24.0,4.0.0)",
- org.eclipse.oomph.setup.jdt;bundle-version="[1.18.0,2.0.0)";visibility:=reexport,
+ org.eclipse.oomph.setup.jdt;bundle-version="[1.19.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
- org.eclipse.oomph.base.edit;bundle-version="[1.14.0,2.0.0)";visibility:=reexport,
+ org.eclipse.oomph.base.edit;bundle-version="[1.15.0,2.0.0)";visibility:=reexport,
  org.eclipse.oomph.setup.edit;bundle-version="[1.16.0,2.0.0)";visibility:=reexport,
  org.eclipse.jdt.launching;bundle-version="[3.6.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.oomph.setup.jdt.edit/pom.xml b/plugins/org.eclipse.oomph.setup.jdt.edit/pom.xml
index 0b6af38..ee503b8 100644
--- a/plugins/org.eclipse.oomph.setup.jdt.edit/pom.xml
+++ b/plugins/org.eclipse.oomph.setup.jdt.edit/pom.xml
@@ -20,7 +20,7 @@
   </parent>
   <groupId>org.eclipse.oomph</groupId>
   <artifactId>org.eclipse.oomph.setup.jdt.edit</artifactId>
-  <version>1.13.0-SNAPSHOT</version>
+  <version>1.14.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <build>
diff --git a/plugins/org.eclipse.oomph.setup.jdt.edit/src/org/eclipse/oomph/setup/jdt/provider/JRETaskItemProvider.java b/plugins/org.eclipse.oomph.setup.jdt.edit/src/org/eclipse/oomph/setup/jdt/provider/JRETaskItemProvider.java
index a86fb38..cc3fabf 100644
--- a/plugins/org.eclipse.oomph.setup.jdt.edit/src/org/eclipse/oomph/setup/jdt/provider/JRETaskItemProvider.java
+++ b/plugins/org.eclipse.oomph.setup.jdt.edit/src/org/eclipse/oomph/setup/jdt/provider/JRETaskItemProvider.java
@@ -10,8 +10,6 @@
  */
 package org.eclipse.oomph.setup.jdt.provider;
 
-import org.eclipse.oomph.base.BaseFactory;
-import org.eclipse.oomph.base.BasePackage;
 import org.eclipse.oomph.setup.EAnnotationConstants;
 import org.eclipse.oomph.setup.jdt.JDTFactory;
 import org.eclipse.oomph.setup.jdt.JDTPackage;
@@ -368,8 +366,6 @@
   {
     super.collectNewChildDescriptors(newChildDescriptors, object);
 
-    newChildDescriptors.add(createChildParameter(BasePackage.Literals.MODEL_ELEMENT__ANNOTATIONS, BaseFactory.eINSTANCE.createAnnotation()));
-
     newChildDescriptors.add(createChildParameter(JDTPackage.Literals.JRE_TASK__JRE_LIBRARIES, JDTFactory.eINSTANCE.createJRELibrary()));
   }
 
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 684309d..169e0b8 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.oomph.setup.jdt/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.oomph.setup.jdt;singleton:=true
-Bundle-Version: 1.18.0.qualifier
+Bundle-Version: 1.19.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Export-Package: org.eclipse.oomph.setup.jdt;version="1.18.0";x-internal:=true,
- org.eclipse.oomph.setup.jdt.impl;version="1.18.0";x-internal:=true,
- org.eclipse.oomph.setup.jdt.util;version="1.18.0";x-internal:=true
+Export-Package: org.eclipse.oomph.setup.jdt;version="1.19.0";x-internal:=true,
+ org.eclipse.oomph.setup.jdt.impl;version="1.19.0";x-internal:=true,
+ org.eclipse.oomph.setup.jdt.util;version="1.19.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.24.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.23.0,2.0.0)";visibility:=reexport,
+ org.eclipse.oomph.setup;bundle-version="[1.25.0,2.0.0)";visibility:=reexport,
  org.eclipse.jdt.launching;bundle-version="[3.6.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.oomph.setup.jdt
diff --git a/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore b/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore
index 26941e6..3a645cd 100644
--- a/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore
+++ b/plugins/org.eclipse.oomph.setup.jdt/model/JDT.ecore
@@ -81,6 +81,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.1"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.1 Location"/>
@@ -211,6 +219,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.3"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.3 Location"/>
@@ -270,6 +286,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.4"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.4 Location"/>
@@ -325,6 +349,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.5"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.5 Location"/>
@@ -376,6 +408,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.6"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.6 Location"/>
@@ -423,6 +463,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.7"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.7 Location"/>
@@ -466,6 +514,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.8"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.8 Location"/>
@@ -505,6 +561,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-9"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 9 Location"/>
@@ -540,6 +604,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-10"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 10 Location"/>
@@ -571,6 +643,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-11"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 11 Location"/>
@@ -598,6 +678,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-12"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 12 Location"/>
@@ -621,6 +709,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-13"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 13 Location"/>
@@ -640,6 +736,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-14"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 14 Location"/>
@@ -655,6 +759,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-15"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 15 Location"/>
@@ -666,6 +778,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-16"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 16 Location"/>
@@ -673,12 +793,38 @@
       <details key="version" value="JavaSE-16"/>
     </eAnnotations>
     <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <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>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
+      <details key="name" value="jre.location-18"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 18 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 18."/>
+      <details key="version" value="JavaSE-18"/>
+    </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <details key="name" value="jre.location-19"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 19 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 19."/>
+      <details key="version" value="JavaSE-19"/>
+    </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 57981a5..83bae35 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.18.0-SNAPSHOT</version>
+  <version>1.19.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 c806026..d1f506c 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
@@ -51,6 +51,8 @@
  *        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'"
+ *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-18' type='JRE' label='JRE 18 Location' description='The location of a JDK or JRE compatible with Java 18.' version='JavaSE-18'"
+ *        annotation="http://www.eclipse.org/oomph/setup/Variable name='jre.location-19' type='JRE' label='JRE 19 Location' description='The location of a JDK or JRE compatible with Java 19.' version='JavaSE-19'"
  * @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 f692b7c..48e8c7c 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
@@ -455,6 +455,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -583,6 +591,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -641,6 +657,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -695,6 +719,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -745,6 +777,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -791,6 +831,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -833,6 +881,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -871,6 +927,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -905,6 +969,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -935,6 +1007,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -961,6 +1041,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -983,6 +1071,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -1001,6 +1097,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -1015,6 +1119,14 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
@@ -1025,12 +1137,44 @@
         new String[] { "value", "${jre.location-17}", //$NON-NLS-1$ //$NON-NLS-2$
             "label", "JRE 17 Location" //$NON-NLS-1$ //$NON-NLS-2$
         });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 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$
     });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-18}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 18 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-18", //$NON-NLS-1$ //$NON-NLS-2$
+        "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
+        "label", "JRE 18 Location", //$NON-NLS-1$ //$NON-NLS-2$
+        "description", "The location of a JDK or JRE compatible with Java 18.", //$NON-NLS-1$ //$NON-NLS-2$
+        "version", "JavaSE-18" //$NON-NLS-1$ //$NON-NLS-2$
+    });
+    addAnnotation(jreTaskEClass, new boolean[] { true }, "Choice", //$NON-NLS-1$
+        new String[] { "value", "${jre.location-19}", //$NON-NLS-1$ //$NON-NLS-2$
+            "label", "JRE 19 Location" //$NON-NLS-1$ //$NON-NLS-2$
+        });
+    addAnnotation(jreTaskEClass, source, new String[] { "name", "jre.location-19", //$NON-NLS-1$ //$NON-NLS-2$
+        "type", "JRE", //$NON-NLS-1$ //$NON-NLS-2$
+        "label", "JRE 19 Location", //$NON-NLS-1$ //$NON-NLS-2$
+        "description", "The location of a JDK or JRE compatible with Java 19.", //$NON-NLS-1$ //$NON-NLS-2$
+        "version", "JavaSE-19" //$NON-NLS-1$ //$NON-NLS-2$
+    });
   }
 
   /**
diff --git a/setups/models/JDT.ecore b/setups/models/JDT.ecore
index 1b322b2..53bfb5c 100644
--- a/setups/models/JDT.ecore
+++ b/setups/models/JDT.ecore
@@ -81,6 +81,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.1"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.1 Location"/>
@@ -211,6 +219,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.3"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.3 Location"/>
@@ -270,6 +286,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.4"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.4 Location"/>
@@ -325,6 +349,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.5"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.5 Location"/>
@@ -376,6 +408,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.6"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.6 Location"/>
@@ -423,6 +463,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.7"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.7 Location"/>
@@ -466,6 +514,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-1.8"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 1.8 Location"/>
@@ -505,6 +561,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-9"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 9 Location"/>
@@ -540,6 +604,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-10"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 10 Location"/>
@@ -571,6 +643,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-11"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 11 Location"/>
@@ -598,6 +678,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-12"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 12 Location"/>
@@ -621,6 +709,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-13"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 13 Location"/>
@@ -640,6 +736,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-14"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 14 Location"/>
@@ -655,6 +759,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-15"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 15 Location"/>
@@ -666,6 +778,14 @@
         <details key="value" value="${jre.location-17}"/>
         <details key="label" value="JRE 17 Location"/>
       </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <details key="name" value="jre.location-16"/>
       <details key="type" value="JRE"/>
       <details key="label" value="JRE 16 Location"/>
@@ -673,12 +793,38 @@
       <details key="version" value="JavaSE-16"/>
     </eAnnotations>
     <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-18}"/>
+        <details key="label" value="JRE 18 Location"/>
+      </eAnnotations>
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
       <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>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <eAnnotations source="Choice">
+        <details key="value" value="${jre.location-19}"/>
+        <details key="label" value="JRE 19 Location"/>
+      </eAnnotations>
+      <details key="name" value="jre.location-18"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 18 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 18."/>
+      <details key="version" value="JavaSE-18"/>
+    </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/oomph/setup/Variable">
+      <details key="name" value="jre.location-19"/>
+      <details key="type" value="JRE"/>
+      <details key="label" value="JRE 19 Location"/>
+      <details key="description" value="The location of a JDK or JRE compatible with Java 19."/>
+      <details key="version" value="JavaSE-19"/>
+    </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"