[572114] Update Preview servers to Jetty 10
diff --git a/features/org.eclipse.wst.server_adapters.feature/feature.xml b/features/org.eclipse.wst.server_adapters.feature/feature.xml
index 690abe9..2daf3c2 100644
--- a/features/org.eclipse.wst.server_adapters.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.feature/feature.xml
@@ -15,7 +15,7 @@
 <feature

       id="org.eclipse.wst.server_adapters.feature"

       label="%featureName"

-      version="3.2.801.qualifier"

+      version="3.2.900.qualifier"

       provider-name="%providerName"

       license-feature="org.eclipse.license"

       license-feature-version="1.0.1.qualifier">

@@ -53,6 +53,41 @@
          unpack="false"/>

 

    <plugin

+         id="org.eclipse.jetty.annotations"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.jetty.osgi.boot"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.jetty.plus"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.jetty.plus"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

+         id="org.eclipse.jetty.webapp"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

+   <plugin

          id="org.eclipse.wst.server.preview"

          download-size="0"

          install-size="0"

diff --git a/features/org.eclipse.wst.server_adapters.feature/pom.xml b/features/org.eclipse.wst.server_adapters.feature/pom.xml
index 3847529..059ffa3 100644
--- a/features/org.eclipse.wst.server_adapters.feature/pom.xml
+++ b/features/org.eclipse.wst.server_adapters.feature/pom.xml
@@ -22,7 +22,7 @@
 

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

   <artifactId>org.eclipse.wst.server_adapters.feature</artifactId>

-  <version>3.2.801-SNAPSHOT</version>

+  <version>3.2.900-SNAPSHOT</version>

   <packaging>eclipse-feature</packaging>

 

   <build>

diff --git a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
index d83c7c8..6821e36 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.preview.adapter;singleton:=true
-Bundle-Version: 1.1.500.qualifier
+Bundle-Version: 1.1.600.qualifier
 Bundle-Activator: org.eclipse.wst.server.preview.adapter.internal.core.PreviewPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/pom.xml b/plugins/org.eclipse.wst.server.preview.adapter/pom.xml
index 95c418b..c167bde 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/pom.xml
+++ b/plugins/org.eclipse.wst.server.preview.adapter/pom.xml
@@ -22,6 +22,6 @@
 

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

   <artifactId>org.eclipse.wst.server.preview.adapter</artifactId>

-  <version>1.1.500-SNAPSHOT</version>

+  <version>1.1.600-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
index 30e92da..cba0315 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2018 IBM Corporation and others.
+ * Copyright (c) 2007, 2021 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -50,9 +50,10 @@
 	// corresponds to CLASSPATH_BIN_INDEX_PREVIEW_SERVER	
 	private static final String[] REQUIRED_BUNDLE_IDS = new String[] {
 		getBundleForClass(javax.servlet.ServletContext.class),
-		"org.eclipse.jetty.continuation",
+		"org.slf4j.api",
 		"org.eclipse.jetty.http",
 		"org.eclipse.jetty.io",
+		"org.eclipse.jetty.osgi.boot",
 		"org.eclipse.jetty.security",
 		"org.eclipse.jetty.server",
 		"org.eclipse.jetty.servlet",
diff --git a/plugins/org.eclipse.wst.server.preview/.classpath b/plugins/org.eclipse.wst.server.preview/.classpath
index eca7bdb..e801ebf 100644
--- a/plugins/org.eclipse.wst.server.preview/.classpath
+++ b/plugins/org.eclipse.wst.server.preview/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/plugins/org.eclipse.wst.server.preview/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.server.preview/.settings/org.eclipse.jdt.core.prefs
index cba5ccb..d54ba5b 100644
--- a/plugins/org.eclipse.wst.server.preview/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.server.preview/.settings/org.eclipse.jdt.core.prefs
@@ -9,9 +9,9 @@
 org.eclipse.jdt.core.classpath.exclusionPatterns=disabled
 org.eclipse.jdt.core.classpath.multipleOutputLocations=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -24,6 +24,7 @@
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
@@ -50,6 +51,7 @@
 org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
 org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
@@ -71,7 +73,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
 org.eclipse.jdt.core.incompatibleJDKLevel=warning
 org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF
index 25c8826..77cb68b 100644
--- a/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF
@@ -2,23 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.preview; singleton:=true
-Bundle-Version: 1.1.701.qualifier
+Bundle-Version: 1.2.0.qualifier
 Bundle-Activator: org.eclipse.wst.server.preview.internal.PreviewServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.server.preview.internal;x-internal:=true
 Require-Bundle: org.apache.commons.logging;bundle-version="[1.0.4,2.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jetty.continuation;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.http;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.io;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.security;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.server;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.webapp;bundle-version="[9.4.7,10.0.0)",
- org.eclipse.jetty.xml;bundle-version="[9.4.7,10.0.0)"
-Import-Package: javax.servlet;version="[3.1.0,4.0.0)",
-  javax.servlet.http;version="[3.1.0,4.0.0)
+ org.eclipse.core.runtime;bundle-version="[3.21.0,4.0.0)",
+ org.eclipse.jetty.annotations;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.http;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.io;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.osgi.boot;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.plus;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.security;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.server;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.servlet;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.util;bundle-version="[10.0.1,11.0.0)",
+ org.eclipse.jetty.webapp;bundle-version="[10.0.1,11.0.0)"
+Import-Package: javax.servlet;version="[4.0.0,5.0.0)",
+ javax.servlet.http;version="[4.0.0,5.0.0)",
+ javax.transaction.xa
+Provide-Capability: osgi.extender;osgi.extender="osgi.serviceloader.registrar";version:Version="1.0",
+ osgi.extender;osgi.extender="osgi.serviceloader.processor";version:Version="1.0"
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Automatic-Module-Name: org.eclipse.wst.server.preview
diff --git a/plugins/org.eclipse.wst.server.preview/META-INF/services/osgi.serviceloader.processor b/plugins/org.eclipse.wst.server.preview/META-INF/services/osgi.serviceloader.processor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.preview/META-INF/services/osgi.serviceloader.processor
diff --git a/plugins/org.eclipse.wst.server.preview/META-INF/services/osgi.serviceloader.registrar b/plugins/org.eclipse.wst.server.preview/META-INF/services/osgi.serviceloader.registrar
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.preview/META-INF/services/osgi.serviceloader.registrar
diff --git a/plugins/org.eclipse.wst.server.preview/pom.xml b/plugins/org.eclipse.wst.server.preview/pom.xml
index 2ca40a1..69bd86c 100644
--- a/plugins/org.eclipse.wst.server.preview/pom.xml
+++ b/plugins/org.eclipse.wst.server.preview/pom.xml
@@ -23,6 +23,6 @@
 
   <groupId>org.eclipse.webtools.servertools</groupId>
   <artifactId>org.eclipse.wst.server.preview</artifactId>
-  <version>1.1.701-SNAPSHOT</version>
+  <version>1.2.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java
index ca67fed..18379cc 100644
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java
+++ b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2016 IBM Corporation and others.
+ * Copyright (c) 2008, 2021 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,8 @@
  *******************************************************************************/
 package org.eclipse.wst.server.preview.internal;
 
+import java.io.IOException;
+
 import org.eclipse.jetty.server.handler.ResourceHandler;
 import org.eclipse.jetty.util.resource.Resource;
 
@@ -22,7 +24,8 @@
 		this.context = context;
 	}
 
-	public Resource getResource(String path) {
+	@Override
+	public Resource getResource(String path) throws IOException {
 		if (path == null || !path.startsWith(context + "/"))
 			return null;
 		
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java
index 94f795f..81e50d3 100644
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java
+++ b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2013 IBM Corporation and others.
+ * Copyright (c) 2007, 2021 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -50,7 +50,7 @@
 			server.setStopAtShutdown(true);
 			
 			WTPErrorHandler errorHandler = new WTPErrorHandler();
-			
+
 			HandlerList handlers = new HandlerList();
 			for (Module module : m) {
 				if (module.isStaticWeb()) {
@@ -107,4 +107,4 @@
 		}
 		return directory.delete();
 	}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java
index ad577f4..fc89f9d 100644
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java
+++ b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008,2014 IBM Corporation and others.
+ * Copyright (c) 2008, 2021 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -43,34 +43,36 @@
 		response.setStatus(HttpServletResponse.SC_NOT_FOUND);
 		response.setContentType(MimeTypes.Type.TEXT_HTML.toString());
 		
-		ByteArrayISO8859Writer writer = new ByteArrayISO8859Writer(1500);
+		try (ByteArrayISO8859Writer writer = new ByteArrayISO8859Writer(1500)) {
 		
-		String uri = request.getRequestURI();
-		uri = StringUtil.replace(uri, "<", "&lt;");
-		uri = StringUtil.replace(uri, ">", "&gt;");
-		
-		writer.write("<HTML>\n<HEAD>\n<TITLE>Error 404 - Not Found");
-		writer.write("</TITLE>\n<BODY>\n<H2>Error 404 - Not Found</H2>\n");
-		writer.write("No context on this server matched or handled this request.<BR>");
-		writer.write("Contexts known to this server are: <ul>");
-		
-		for (Module module : modules) {
-			writer.write("<li>");
-			writer.write(module.getName());
-			writer.write("(<a href=\"http://localhost:" + port + module.getContext() + "\">");
-			writer.write(module.getContext());
-			writer.write("</a>)</li>");
+			String uri = request.getRequestURI();
+			uri = StringUtil.replace(uri, "<", "&lt;");
+			uri = StringUtil.replace(uri, ">", "&gt;");
+			
+			writer.write("<HTML>\n<HEAD>\n<TITLE>Error 404 - Not Found");
+			writer.write("</TITLE>\n<BODY>\n<H2>Error 404 - Not Found</H2>\n");
+			writer.write("No context on this server matched or handled this request.<BR>");
+			writer.write("Contexts known to this server are: <ul>");
+			
+			for (Module module : modules) {
+				writer.write("<li>");
+				writer.write(module.getName());
+				writer.write("(<a href=\"http://localhost:" + port + module.getContext() + "\">");
+				writer.write(module.getContext());
+				writer.write("</a>)</li>");
+			}
+			
+			for (int i = 0; i < 10; i++) {
+				writer.write("\n<!-- Padding for IE                  -->");
+			}
+			
+			writer.write("\n</BODY>\n</HTML>\n");
+			writer.flush();
+			response.setContentLength(writer.size());
+			OutputStream out = response.getOutputStream();
+			writer.writeTo(out);
+			out.close();
 		}
-		
-		for (int i = 0; i < 10; i++)
-			writer.write("\n<!-- Padding for IE                  -->");
-		
-		writer.write("\n</BODY>\n</HTML>\n");
-		writer.flush();
-		response.setContentLength(writer.size());
-		OutputStream out = response.getOutputStream();
-		writer.writeTo(out);
-		out.close();
 	}
 
 }