[577380] Add a Java 18 project facet version
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
index 60840e1..2f6547a 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
+++ b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
@@ -35,6 +35,7 @@
     <runtime-component-version type="standard.jre" version="15"/>
     <runtime-component-version type="standard.jre" version="16"/>
     <runtime-component-version type="standard.jre" version="17"/>
+    <runtime-component-version type="standard.jre" version="18"/>
 
     <supported>
       <facet id="java" version="1.3"/>
@@ -111,6 +112,11 @@
       <runtime-component id="standard.jre" version="[17"/>
     </supported>
 
+    <supported>
+      <facet id="java" version="18"/>
+      <runtime-component id="standard.jre" version="[18"/>
+    </supported>
+
     <adapter>
       <runtime-component id="standard.jre"/>
       <factory class="org.eclipse.jst.common.project.facet.core.internal.StandardJreClasspathProvider$Factory"/>
@@ -157,6 +163,8 @@
 
     <project-facet-version facet="java" version="17"/>
 
+    <project-facet-version facet="java" version="18"/>
+
     <action facet="java" type="install" id="java.install">
       <delegate class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallDelegate"/>
       <config-factory class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallConfigFactory"/>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java
index 3835331..eff1689 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java
+++ b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java
@@ -47,6 +47,7 @@
     public static final IProjectFacetVersion VERSION_15 = FACET.getVersion( "15" ); //$NON-NLS-1$
     public static final IProjectFacetVersion VERSION_16 = FACET.getVersion( "16" ); //$NON-NLS-1$
     public static final IProjectFacetVersion VERSION_17 = FACET.getVersion( "17" ); //$NON-NLS-1$
+    public static final IProjectFacetVersion VERSION_18 = FACET.getVersion( "18" ); //$NON-NLS-1$
 
     @Deprecated
     public static final IProjectFacetVersion JAVA_13 = VERSION_1_3;
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java
index 491df79..178b3a9 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java
+++ b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java
@@ -48,6 +48,7 @@
     public static final IRuntimeComponentVersion VERSION_15 = TYPE.getVersion( "15" ); //$NON-NLS-1$
     public static final IRuntimeComponentVersion VERSION_16 = TYPE.getVersion( "16" ); //$NON-NLS-1$
     public static final IRuntimeComponentVersion VERSION_17 = TYPE.getVersion( "17" ); //$NON-NLS-1$
+    public static final IRuntimeComponentVersion VERSION_18 = TYPE.getVersion( "18" ); //$NON-NLS-1$
 
     @Deprecated
     public static final IRuntimeComponentVersion VERSION_5_0 = VERSION_1_5;
@@ -74,20 +75,24 @@
         /* Handle null, then LTS versions, then remaining versions backwards */
         if( jvmver == null ) 
         {
-            rcv = StandardJreRuntimeComponent.VERSION_1_8;
-        } 
+            rcv = StandardJreRuntimeComponent.VERSION_17;
+        }
         else if( jvmver.startsWith( "17" ) ) //$NON-NLS-1$
         {
-        	rcv = StandardJreRuntimeComponent.VERSION_11;
+            rcv = StandardJreRuntimeComponent.VERSION_17;
         }
         else if( jvmver.startsWith( "11" ) ) //$NON-NLS-1$
         {
-            rcv = StandardJreRuntimeComponent.VERSION_17;
+            rcv = StandardJreRuntimeComponent.VERSION_11;
         }
         else if( jvmver.startsWith( "1.8" ) ) //$NON-NLS-1$
         {
         	rcv = StandardJreRuntimeComponent.VERSION_1_8;
         }
+        else if( jvmver.startsWith( "18" ) ) //$NON-NLS-1$
+        {
+            rcv = StandardJreRuntimeComponent.VERSION_18;
+        }
         else if( jvmver.startsWith( "16" ) ) //$NON-NLS-1$
         {
             rcv = StandardJreRuntimeComponent.VERSION_16;
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java
index 05dfa17..06c1750 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java
+++ b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java
@@ -74,6 +74,7 @@
         FACET_VER_TO_EXEC_ENV.put( JavaFacet.VERSION_15, "JavaSE-15" ); //$NON-NLS-1$
         FACET_VER_TO_EXEC_ENV.put( JavaFacet.VERSION_16, "JavaSE-16" ); //$NON-NLS-1$
         FACET_VER_TO_EXEC_ENV.put( JavaFacet.VERSION_17, "JavaSE-17" ); //$NON-NLS-1$
+        FACET_VER_TO_EXEC_ENV.put( JavaFacet.VERSION_18, "JavaSE-18" ); //$NON-NLS-1$
     }
     
     public static String getCompilerLevel()