Update to Jetty 10.0.3 for RAP Runtime 3.17.0 M3

This minimised change updates Eclipse Jetty from 9.4.x to 10.0.3 by
courtesy of the WebTools project. It removes depependencies that are not
available any more, and adds empty stubs for missing methods in the new
ServletContextWrapper. Commits that were required for temporarily
reactivate the old Jetty version in older milestones are reverted.

Also updates Eclipse Platform to 4.20 M3 build I20210519-1800.

This reverts commit 334f03bef1da2290319dac7e3cfaab7796296c04.
This reverts commit f1041cb5069ed4726f3d9a958be0dc8c4179cdbb.

Change-Id: I9a6b2f8e1cf16364bc863afa23d967e3bb77715a
Signed-off-by: Markus Knauer <mknauer@eclipsesource.com>
diff --git a/bundles/org.eclipse.rap.rwt.osgi/META-INF/MANIFEST.MF b/bundles/org.eclipse.rap.rwt.osgi/META-INF/MANIFEST.MF
index 5cb4806..477bed1 100644
--- a/bundles/org.eclipse.rap.rwt.osgi/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.rap.rwt.osgi/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@
 Bundle-Localization: plugin
 Bundle-SymbolicName: org.eclipse.rap.rwt.osgi
 Bundle-Version: 3.17.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: javax.servlet;version="[3.1.0,5.0.0)",
  javax.servlet.descriptor;version="[3.1.0,5.0.0)";resolution:=optional,
  javax.servlet.http;version="[3.1.0,5.0.0)",
diff --git a/bundles/org.eclipse.rap.rwt.osgi/src/org/eclipse/rap/rwt/osgi/internal/ServletContextWrapper.java b/bundles/org.eclipse.rap.rwt.osgi/src/org/eclipse/rap/rwt/osgi/internal/ServletContextWrapper.java
index 12b7eed..572d24a 100644
--- a/bundles/org.eclipse.rap.rwt.osgi/src/org/eclipse/rap/rwt/osgi/internal/ServletContextWrapper.java
+++ b/bundles/org.eclipse.rap.rwt.osgi/src/org/eclipse/rap/rwt/osgi/internal/ServletContextWrapper.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2015 Frank Appel and others.
+ * Copyright (c) 2011, 2021 Frank Appel and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,7 +14,12 @@
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.*;
+import java.util.Enumeration;
+import java.util.EventListener;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
 
 import javax.servlet.*;
 import javax.servlet.ServletRegistration.Dynamic;
@@ -342,4 +347,39 @@
   public void declareRoles( String... roleNames ) {
   }
 
+  @Override
+  public Dynamic addJspFile( String servletName, String jspFile ) {
+    return null;
+  }
+
+  @Override
+  public int getSessionTimeout() {
+    return servletContext.getSessionTimeout();
+  }
+
+  @Override
+  public void setSessionTimeout( int sessionTimeout ) {
+    servletContext.setSessionTimeout( sessionTimeout );
+  }
+
+  @Override
+  public String getRequestCharacterEncoding() {
+    return servletContext.getRequestCharacterEncoding();
+  }
+
+  @Override
+  public void setRequestCharacterEncoding( String encoding ) {
+    servletContext.setRequestCharacterEncoding( encoding );
+  }
+
+  @Override
+  public String getResponseCharacterEncoding() {
+    return servletContext.getResponseCharacterEncoding();
+  }
+
+  @Override
+  public void setResponseCharacterEncoding( String encoding ) {
+    servletContext.setResponseCharacterEncoding( encoding );
+  }
+
 }
diff --git a/features/org.eclipse.rap.e4.equinox.target.feature/.forceQualifierUpdate b/features/org.eclipse.rap.e4.equinox.target.feature/.forceQualifierUpdate
index a6f098a..a6e65ba 100644
--- a/features/org.eclipse.rap.e4.equinox.target.feature/.forceQualifierUpdate
+++ b/features/org.eclipse.rap.e4.equinox.target.feature/.forceQualifierUpdate
@@ -1 +1 @@
-2021-05-06T12:00:00+00:00
+2021-05-26T12:00:00+00:00
diff --git a/features/org.eclipse.rap.e4.equinox.target.feature/feature.xml b/features/org.eclipse.rap.e4.equinox.target.feature/feature.xml
index 3241ee7..e301c14 100644
--- a/features/org.eclipse.rap.e4.equinox.target.feature/feature.xml
+++ b/features/org.eclipse.rap.e4.equinox.target.feature/feature.xml
@@ -24,14 +24,14 @@
    </requires>
 
    <plugin
-         id="javax.servlet"
+         id="org.eclipse.jetty.servlet-api"
          download-size="0"
          install-size="0"
          version="0.0.0"
          unpack="false"/>
 
    <plugin
-         id="javax.servlet.source"
+         id="org.eclipse.jetty.servlet-api.source"
          download-size="0"
          install-size="0"
          version="0.0.0"
@@ -279,14 +279,14 @@
          id="org.eclipse.equinox.http.jetty"
          download-size="0"
          install-size="0"
-         version="3.7.600.v20210224-2143"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.equinox.http.jetty.source"
          download-size="0"
          install-size="0"
-         version="3.7.600.v20210224-2143"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
@@ -471,115 +471,101 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.jetty.continuation"
-         download-size="0"
-         install-size="0"
-         version="9.4.37.v20210219"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jetty.continuation.source"
-         download-size="0"
-         install-size="0"
-         version="9.4.37.v20210219"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.jetty.http"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.http.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.io"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.io.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.security"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.security.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.server"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.server.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.servlet"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.servlet.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util.ajax"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util.ajax.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
@@ -855,4 +841,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="slf4j.api"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="slf4j.api.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/features/org.eclipse.rap.e4.equinox.target.feature/pom.xml b/features/org.eclipse.rap.e4.equinox.target.feature/pom.xml
index 0133f0d..6d65f36 100644
--- a/features/org.eclipse.rap.e4.equinox.target.feature/pom.xml
+++ b/features/org.eclipse.rap.e4.equinox.target.feature/pom.xml
@@ -41,11 +41,6 @@
       <layout>p2</layout>
       <url>${jetty-repo.url}</url>
     </repository>
-    <repository>
-      <id>platform-repo-old</id>
-      <layout>p2</layout>
-      <url>https://download.eclipse.org/eclipse/updates/4.19/R-4.19-202103031800/</url>
-    </repository>
   </repositories>
 
 </project>
diff --git a/features/org.eclipse.rap.equinox.target.feature/.forceQualifierUpdate b/features/org.eclipse.rap.equinox.target.feature/.forceQualifierUpdate
index a6f098a..a6e65ba 100644
--- a/features/org.eclipse.rap.equinox.target.feature/.forceQualifierUpdate
+++ b/features/org.eclipse.rap.equinox.target.feature/.forceQualifierUpdate
@@ -1 +1 @@
-2021-05-06T12:00:00+00:00
+2021-05-26T12:00:00+00:00
diff --git a/features/org.eclipse.rap.equinox.target.feature/feature.xml b/features/org.eclipse.rap.equinox.target.feature/feature.xml
index c32345c..cd6441b 100644
--- a/features/org.eclipse.rap.equinox.target.feature/feature.xml
+++ b/features/org.eclipse.rap.equinox.target.feature/feature.xml
@@ -24,14 +24,14 @@
    </requires>
 
    <plugin
-         id="javax.servlet"
+         id="org.eclipse.jetty.servlet-api"
          download-size="0"
          install-size="0"
          version="0.0.0"
          unpack="false"/>
 
    <plugin
-         id="javax.servlet.source"
+         id="org.eclipse.jetty.servlet-api.source"
          download-size="0"
          install-size="0"
          version="0.0.0"
@@ -279,14 +279,14 @@
          id="org.eclipse.equinox.http.jetty"
          download-size="0"
          install-size="0"
-         version="3.7.600.v20210224-2143"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.equinox.http.jetty.source"
          download-size="0"
          install-size="0"
-         version="3.7.600.v20210224-2143"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
@@ -471,115 +471,101 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.jetty.continuation"
-         download-size="0"
-         install-size="0"
-         version="9.4.37.v20210219"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jetty.continuation.source"
-         download-size="0"
-         install-size="0"
-         version="9.4.37.v20210219"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.jetty.http"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.http.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.io"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.io.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.security"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.security.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.server"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.server.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.servlet"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.servlet.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util.ajax"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
          id="org.eclipse.jetty.util.ajax.source"
          download-size="0"
          install-size="0"
-         version="9.4.37.v20210219"
+         version="0.0.0"
          unpack="false"/>
 
    <plugin
@@ -617,4 +603,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="slf4j.api"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="slf4j.api.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/features/org.eclipse.rap.equinox.target.feature/pom.xml b/features/org.eclipse.rap.equinox.target.feature/pom.xml
index 73ed8ca..ea94b7d 100644
--- a/features/org.eclipse.rap.equinox.target.feature/pom.xml
+++ b/features/org.eclipse.rap.equinox.target.feature/pom.xml
@@ -41,11 +41,6 @@
       <layout>p2</layout>
       <url>${jetty-repo.url}</url>
     </repository>
-    <repository>
-      <id>platform-repo-old</id>
-      <layout>p2</layout>
-      <url>https://download.eclipse.org/eclipse/updates/4.19/R-4.19-202103031800/</url>
-    </repository>
   </repositories>
 
 </project>
diff --git a/releng/org.eclipse.rap.build/pom.xml b/releng/org.eclipse.rap.build/pom.xml
index d7c5a0a..588a475 100644
--- a/releng/org.eclipse.rap.build/pom.xml
+++ b/releng/org.eclipse.rap.build/pom.xml
@@ -27,9 +27,9 @@
     <!-- disabled due to bug 393977
     <tycho-baseline-repo.url>http://download.eclipse.org/rt/rap/3.2/</tycho-baseline-repo.url>
      -->
-    <jetty-repo.url>https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.37.v20210219/</jetty-repo.url>
+    <jetty-repo.url>https://download.eclipse.org/webtools/jetty/10.0.3/repository/</jetty-repo.url>
     <orbit-repo.url>https://download.eclipse.org/tools/orbit/downloads/2021-06/</orbit-repo.url>
-    <platform-repo.url>https://download.eclipse.org/eclipse/updates/4.20-I-builds/I20210429-1800/</platform-repo.url>
+    <platform-repo.url>https://download.eclipse.org/eclipse/updates/4.20-I-builds/I20210519-1800/</platform-repo.url>
     <rap-extra-repo.url>https://download.eclipse.org/rt/rap/base-platforms/3.14/extra-dependencies/</rap-extra-repo.url>
     <license-repo.url>https://download.eclipse.org/cbi/updates/license/</license-repo.url>
     <!-- The build type, N for nighty builds, S for stable builds. S-builds will be signed. -->
@@ -62,11 +62,6 @@
       <layout>p2</layout>
       <url>${license-repo.url}</url>
     </repository>
-    <repository>
-      <id>platform-repo-old</id>
-      <layout>p2</layout>
-      <url>https://download.eclipse.org/eclipse/updates/4.19/R-4.19-202103031800/</url>
-    </repository>
   </repositories>
 
   <build>
diff --git a/releng/org.eclipse.rap.build/repository/pom.xml b/releng/org.eclipse.rap.build/repository/pom.xml
index e13591e..a510209 100644
--- a/releng/org.eclipse.rap.build/repository/pom.xml
+++ b/releng/org.eclipse.rap.build/repository/pom.xml
@@ -40,11 +40,6 @@
       <layout>p2</layout>
       <url>${jetty-repo.url}</url>
     </repository>
-    <repository>
-      <id>platform-repo-old</id>
-      <layout>p2</layout>
-      <url>https://download.eclipse.org/eclipse/updates/4.19/R-4.19-202103031800/</url>
-    </repository>
   </repositories>
 
   <build>
diff --git a/tests/org.eclipse.rap.rwt.cluster.testfixture/META-INF/MANIFEST.MF b/tests/org.eclipse.rap.rwt.cluster.testfixture/META-INF/MANIFEST.MF
index 822c1a8..f88f95c 100644
--- a/tests/org.eclipse.rap.rwt.cluster.testfixture/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.rap.rwt.cluster.testfixture/META-INF/MANIFEST.MF
@@ -23,17 +23,16 @@
  org.apache.catalina.tribes.membership;version="[7.0.0,8.0.0)",
  org.apache.catalina.tribes.transport;version="[7.0.0,8.0.0)",
  org.apache.catalina.tribes.transport.nio;version="[7.0.0,8.0.0)",
- org.eclipse.jetty.continuation;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.http;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.io;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.security;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.server;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.server.handler;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.server.session;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.servlet;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.util.component;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.util.log;version="[9.4.1,9.5.0)",
- org.eclipse.jetty.util.resource;version="[9.4.1,9.5.0)",
+ org.eclipse.jetty.http;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.io;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.security;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.server;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.server.handler;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.server.session;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.servlet;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.util.component;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.util.log;version="[10.0.0,11.0.0)",
+ org.eclipse.jetty.util.resource;version="[10.0.0,11.0.0)",
  org.eclipse.rap.rwt.application;version="[3.17.0,4.0.0)",
  org.eclipse.rap.rwt.engine;version="[3.17.0,4.0.0)",
  org.eclipse.rap.rwt.internal.application;version="[3.17.0,4.0.0)",
diff --git a/tests/org.eclipse.rap.rwt.cluster.testfixture/src/org/eclipse/rap/rwt/cluster/testfixture/internal/jetty/JettyController.java b/tests/org.eclipse.rap.rwt.cluster.testfixture/src/org/eclipse/rap/rwt/cluster/testfixture/internal/jetty/JettyController.java
index f8133dd..d33c727 100644
--- a/tests/org.eclipse.rap.rwt.cluster.testfixture/src/org/eclipse/rap/rwt/cluster/testfixture/internal/jetty/JettyController.java
+++ b/tests/org.eclipse.rap.rwt.cluster.testfixture/src/org/eclipse/rap/rwt/cluster/testfixture/internal/jetty/JettyController.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2017 EclipseSource and others.
+ * Copyright (c) 2011, 2021 EclipseSource and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,8 +14,8 @@
 import java.io.IOException;
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.logging.Handler;
 
-import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.HandlerContainer;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
@@ -24,7 +24,7 @@
 import org.eclipse.jetty.servlet.DefaultServlet;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.resource.FileResource;
+import org.eclipse.jetty.util.resource.PathResource;
 import org.eclipse.rap.rwt.cluster.testfixture.internal.util.FileUtil;
 
 
@@ -99,10 +99,10 @@
     }
   }
 
-  private FileResource createServletContextPath() {
+  private PathResource createServletContextPath() {
     File contextRoot = FileUtil.getTempDir( this.toString() );
     try {
-      return new FileResource( contextRoot.toURI().toURL() );
+      return new PathResource( contextRoot.toURI().toURL() );
     } catch( Exception e ) {
       throw new RuntimeException( e );
     }