[575519] Update WTP Common to add the Java 17 project facet
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml
index 35dd305..a402f51 100644
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml
+++ b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.common.fproj.enablement.jdt"
       label="%featureName"
-      version="3.22.0.qualifier"
+      version="3.23.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.jst.common.project.facet.core"
       license-feature="org.eclipse.license"
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/pom.xml b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/pom.xml
index 427bd96..96fcb77 100644
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/pom.xml
+++ b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/pom.xml
@@ -21,6 +21,6 @@
 

   <groupId>org.eclipse.webtools.common</groupId>

   <artifactId>org.eclipse.jst.common.fproj.enablement.jdt</artifactId>

-  <version>3.22.0-SNAPSHOT</version>

+  <version>3.23.0-SNAPSHOT</version>

   <packaging>eclipse-feature</packaging>

 </project>
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml
index cb0f8a6..ac8f6f1 100644
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature

       id="org.eclipse.jst.common.fproj.enablement.jdt.sdk"

       label="%featureName"

-      version="3.22.0.qualifier"

+      version="3.23.0.qualifier"

       provider-name="%providerName"

       plugin="org.eclipse.jst.common.fproj.enablement.jdt.sdk"

       license-feature="org.eclipse.license"

diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/pom.xml b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/pom.xml
index 4e2c142..21626bd 100644
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/pom.xml
+++ b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/pom.xml
@@ -21,6 +21,6 @@
 

   <groupId>org.eclipse.webtools.common</groupId>

   <artifactId>org.eclipse.jst.common.fproj.enablement.jdt.sdk</artifactId>

-  <version>3.22.0-SNAPSHOT</version>

+  <version>3.23.0-SNAPSHOT</version>

   <packaging>eclipse-feature</packaging>

 </project>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
index dd7d671..8cc5370 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Vendor: %providerName
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.10.0.qualifier
+Bundle-Version: 1.11.0.qualifier
 Bundle-ClassPath: .
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.common.project.facet.core,
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 1a2f4b5..60840e1 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
+++ b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
@@ -34,6 +34,7 @@
     <runtime-component-version type="standard.jre" version="14"/>
     <runtime-component-version type="standard.jre" version="15"/>
     <runtime-component-version type="standard.jre" version="16"/>
+    <runtime-component-version type="standard.jre" version="17"/>
 
     <supported>
       <facet id="java" version="1.3"/>
@@ -105,6 +106,11 @@
       <runtime-component id="standard.jre" version="[16"/>
     </supported>
 
+    <supported>
+      <facet id="java" version="17"/>
+      <runtime-component id="standard.jre" version="[17"/>
+    </supported>
+
     <adapter>
       <runtime-component id="standard.jre"/>
       <factory class="org.eclipse.jst.common.project.facet.core.internal.StandardJreClasspathProvider$Factory"/>
@@ -149,6 +155,8 @@
 
     <project-facet-version facet="java" version="16"/>
 
+    <project-facet-version facet="java" version="17"/>
+
     <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/pom.xml b/plugins/org.eclipse.jst.common.project.facet.core/pom.xml
index f6f4ae2..83ddc61 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/pom.xml
+++ b/plugins/org.eclipse.jst.common.project.facet.core/pom.xml
@@ -21,6 +21,6 @@
 

   <groupId>org.eclipse.webtools.common</groupId>

   <artifactId>org.eclipse.jst.common.project.facet.core</artifactId>

-  <version>1.10.0-SNAPSHOT</version>

+  <version>1.11.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>
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 455c727..3835331 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
@@ -10,7 +10,7 @@
  *    Carl Anderson - Java 9 support
  *    John Collier - Java 10-11, 13-15 support
  *    Leon Keuroglian - Java 12 support
- *    Nitin Dahyabhai - Java 12, 16 support
+ *    Nitin Dahyabhai - Java 12, 16, 17 support
  ******************************************************************************/
 
 package org.eclipse.jst.common.project.facet.core;
@@ -46,6 +46,7 @@
     public static final IProjectFacetVersion VERSION_14 = FACET.getVersion( "14" ); //$NON-NLS-1$
     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$
 
     @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 2989e7c..491df79 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
@@ -10,7 +10,7 @@
  *    Carl Anderson - Java 9 support
  *    John Collier - Java 10-11, 13-15 support
  *    Leon Keuroglian - Java 12 support
- *    Nitin Dahyabhai - Java 12, 16 support
+ *    Nitin Dahyabhai - Java 12, 16, 17 support
  ******************************************************************************/
 
 package org.eclipse.jst.common.project.facet.core;
@@ -47,6 +47,7 @@
     public static final IRuntimeComponentVersion VERSION_14 = TYPE.getVersion( "14" ); //$NON-NLS-1$
     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$
 
     @Deprecated
     public static final IRuntimeComponentVersion VERSION_5_0 = VERSION_1_5;
@@ -69,65 +70,75 @@
         
         final IRuntimeComponentVersion rcv;
         
+
+        /* Handle null, then LTS versions, then remaining versions backwards */
         if( jvmver == null ) 
         {
             rcv = StandardJreRuntimeComponent.VERSION_1_8;
         } 
-        else if( jvmver.startsWith( "1.3" ) ) //$NON-NLS-1$
+        else if( jvmver.startsWith( "17" ) ) //$NON-NLS-1$
         {
-            rcv = StandardJreRuntimeComponent.VERSION_1_3;
-        }
-        else if( jvmver.startsWith( "1.4" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_4;
-        }
-        else if( jvmver.startsWith( "1.5" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_5;
-        }
-        else if( jvmver.startsWith( "1.6" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_6;
-        }
-        else if( jvmver.startsWith( "1.7" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_7;
-        }
-        else if( jvmver.startsWith( "1.8" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_8;
-        }
-        else if( jvmver.startsWith( "9" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_9;
-        }
-        else if( jvmver.startsWith( "10" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_10;
+        	rcv = StandardJreRuntimeComponent.VERSION_11;
         }
         else if( jvmver.startsWith( "11" ) ) //$NON-NLS-1$
         {
-            rcv = StandardJreRuntimeComponent.VERSION_11;
+            rcv = StandardJreRuntimeComponent.VERSION_17;
         }
-        else if( jvmver.startsWith( "12" ) ) //$NON-NLS-1$
+        else if( jvmver.startsWith( "1.8" ) ) //$NON-NLS-1$
         {
-            rcv = StandardJreRuntimeComponent.VERSION_12;
+        	rcv = StandardJreRuntimeComponent.VERSION_1_8;
         }
-        else if( jvmver.startsWith( "13" ) ) //$NON-NLS-1$
+        else if( jvmver.startsWith( "16" ) ) //$NON-NLS-1$
         {
-            rcv = StandardJreRuntimeComponent.VERSION_13;
-        }
-        else if( jvmver.startsWith( "14" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_14;
+            rcv = StandardJreRuntimeComponent.VERSION_16;
         }
         else if( jvmver.startsWith( "15" ) ) //$NON-NLS-1$
         {
             rcv = StandardJreRuntimeComponent.VERSION_15;
         }
-        else
+        else if( jvmver.startsWith( "14" ) ) //$NON-NLS-1$
         {
-            rcv = StandardJreRuntimeComponent.VERSION_16;
+            rcv = StandardJreRuntimeComponent.VERSION_14;
+        }
+        else if( jvmver.startsWith( "13" ) ) //$NON-NLS-1$
+        {
+            rcv = StandardJreRuntimeComponent.VERSION_13;
+        }
+        else if( jvmver.startsWith( "12" ) ) //$NON-NLS-1$
+        {
+            rcv = StandardJreRuntimeComponent.VERSION_12;
+        }
+        else if( jvmver.startsWith( "10" ) ) //$NON-NLS-1$
+        {
+            rcv = StandardJreRuntimeComponent.VERSION_10;
+        }
+        else if( jvmver.startsWith( "9" ) ) //$NON-NLS-1$
+        {
+            rcv = StandardJreRuntimeComponent.VERSION_9;
+        }
+        else if( jvmver.startsWith( "1.7" ) ) //$NON-NLS-1$
+        {
+        	rcv = StandardJreRuntimeComponent.VERSION_1_7;
+        }
+        else if( jvmver.startsWith( "1.6" ) ) //$NON-NLS-1$
+        {
+        	rcv = StandardJreRuntimeComponent.VERSION_1_6;
+        }
+        else if( jvmver.startsWith( "1.5" ) ) //$NON-NLS-1$
+        {
+        	rcv = StandardJreRuntimeComponent.VERSION_1_5;
+        }
+        else if( jvmver.startsWith( "1.4" ) ) //$NON-NLS-1$
+        {
+        	rcv = StandardJreRuntimeComponent.VERSION_1_4;
+        }
+        else if( jvmver.startsWith( "1.3" ) ) //$NON-NLS-1$
+        {
+        	rcv = StandardJreRuntimeComponent.VERSION_1_3;
+        }
+        else
+        { // Unrecognizable, so use the Eclipse Platform minimum
+            rcv = StandardJreRuntimeComponent.VERSION_11;
         }
         
         final Map<String,String> properties = new HashMap<String,String>();
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 09aafbc..05dfa17 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
@@ -10,7 +10,7 @@
  *    Carl Anderson - Java 9 support
  *    John Collier - Java 10-11, 13-15 support
  *    Leon Keuroglian - Java 12 support
- *    Nitin Dahyabhai - Java 12, 16 support
+ *    Nitin Dahyabhai - Java 12, 16, 17 support
  ******************************************************************************/
 
 package org.eclipse.jst.common.project.facet.core.internal;
@@ -73,6 +73,7 @@
         FACET_VER_TO_EXEC_ENV.put( JavaFacet.VERSION_14, "JavaSE-14" ); //$NON-NLS-1$
         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$
     }
     
     public static String getCompilerLevel()