diff --git a/api_dev/src/main/java/com/google/appengine/tools/development/testing/ee10/FakeHttpServletResponse.java b/api_dev/src/main/java/com/google/appengine/tools/development/testing/ee10/FakeHttpServletResponse.java index 012cf0702..c94a733ab 100644 --- a/api_dev/src/main/java/com/google/appengine/tools/development/testing/ee10/FakeHttpServletResponse.java +++ b/api_dev/src/main/java/com/google/appengine/tools/development/testing/ee10/FakeHttpServletResponse.java @@ -364,6 +364,11 @@ private void checkCommit() { } } + @Override + public void sendRedirect(String string, int i, boolean bln) throws IOException { + throw new UnsupportedOperationException("Not supported yet."); + } + private static class FakeServletOutputStream extends ServletOutputStream { private final ByteArrayOutputStream byteStream; diff --git a/api_dev/src/main/java/com/google/appengine/tools/info/Jetty12Sdk.java b/api_dev/src/main/java/com/google/appengine/tools/info/Jetty12Sdk.java index b1676d91d..c5516e84e 100644 --- a/api_dev/src/main/java/com/google/appengine/tools/info/Jetty12Sdk.java +++ b/api_dev/src/main/java/com/google/appengine/tools/info/Jetty12Sdk.java @@ -117,13 +117,14 @@ public String getQuickStartClasspath() { Boolean.getBoolean("appengine.use.EE10") ? new File(getSdkRoot(), "lib/tools/quickstart/quickstartgenerator-jetty12-ee10.jar") : new File(getSdkRoot(), "lib/tools/quickstart/quickstartgenerator-jetty12.jar"); - String avoidJars = Boolean.getBoolean("appengine.use.EE10") ? "ee8" : "ee10"; + String avoidJars = Boolean.getBoolean("appengine.use.EE10") ? "ee8" : "ee11"; File jettyDir = new File(getSdkRoot(), JETTY12_HOME_LIB_PATH); for (File f : jettyDir.listFiles()) { if (!f.isDirectory() && !(f.getName().contains("cdi-") || f.getName().contains("ee9") + || f.getName().contains("ee10") || f.getName().contains(avoidJars))) { list.add(f.getAbsolutePath()); } @@ -134,12 +135,17 @@ public String getQuickStartClasspath() { // Note: Do not put the Apache JSP files in the classpath. If needed, they should be part of // the application itself under WEB-INF/lib. if (Boolean.getBoolean("appengine.use.EE10")) { - for (String subdir : new String[] {"ee10-annotations"}) { + for (String subdir : new String[] {"ee11-annotations"}) { for (File f : new File(jettyDir, subdir).listFiles()) { list.add(f.getAbsolutePath()); } } - for (String subdir : new String[] {"ee10-jaspi"}) { + for (String subdir : new String[] {"annotations"}) { + for (File f : new File(jettyDir, subdir).listFiles()) { + list.add(f.getAbsolutePath()); + } + } + for (String subdir : new String[] {"ee11-jaspi"}) { for (File f : new File(jettyDir, subdir).listFiles()) { list.add(f.getAbsolutePath()); } @@ -171,9 +177,10 @@ private List getImplLibFiles() { lf.addAll(getJetty12Jars("logging")); // We also want the devserver to be able to handle annotated servlet, via ASM: if (Boolean.getBoolean("appengine.use.EE10")) { - lf.addAll(getJetty12Jars("ee10-annotations")); - lf.addAll(getJetty12Jars("ee10-apache-jsp")); - lf.addAll(getJetty12Jars("ee10-glassfish-jstl")); + lf.addAll(getJetty12Jars("annotations")); + lf.addAll(getJetty12Jars("ee11-annotations")); + lf.addAll(getJetty12Jars("ee11-apache-jsp")); + lf.addAll(getJetty12Jars("ee11-glassfish-jstl")); } else { lf.addAll(getJetty12Jars("ee8-annotations")); lf.addAll(getJetty12Jars("ee8-apache-jsp")); @@ -223,7 +230,8 @@ private List getJetty12Jars(String subDir) { // in our runtime (private Jetty dependency we do not want to expose to the customer). if (!(f.getName().contains("-cdi-") || f.getName().contains("jetty-servlet-api-") // no javax. if needed should be in shared - || f.getName().contains("ee9") // we want ee10 only. jakarta apis should be in shared + || f.getName().contains("ee9") // we want ee11 only. jakarta apis should be in shared + || f.getName().contains("ee10") // we want ee11 only. jakarta apis should be in shared || f.getName().contains("jetty-jakarta-servlet-api") // old )) { jars.add(f); @@ -236,9 +244,9 @@ private List getJetty12Jars(String subDir) { List getJetty12JspJars() { if (Boolean.getBoolean("appengine.use.EE10")) { - List lf = getJetty12Jars("ee10-apache-jsp"); - lf.addAll(getJetty12Jars("ee10-glassfish-jstl")); - lf.add(getJetty12Jar("ee10-servlet-")); + List lf = getJetty12Jars("ee11-apache-jsp"); + lf.addAll(getJetty12Jars("ee11-glassfish-jstl")); + lf.add(getJetty12Jar("ee11-servlet-")); return lf; } List lf = getJetty12Jars("ee8-apache-jsp"); diff --git a/appengine_setup/testapps/jetty12_testapp/pom.xml b/appengine_setup/testapps/jetty12_testapp/pom.xml index efa17f424..a03c14647 100644 --- a/appengine_setup/testapps/jetty12_testapp/pom.xml +++ b/appengine_setup/testapps/jetty12_testapp/pom.xml @@ -46,8 +46,8 @@ ${jetty.version} - org.eclipse.jetty.ee10 - jetty-ee10-servlet + org.eclipse.jetty.ee11 + jetty-ee11-servlet ${jetty.version} diff --git a/appengine_setup/testapps/jetty12_testapp/src/main/java/com/google/appengine/setup/testapps/jetty12/JettyServer.java b/appengine_setup/testapps/jetty12_testapp/src/main/java/com/google/appengine/setup/testapps/jetty12/JettyServer.java index 3d8dc1a38..dfb956b28 100644 --- a/appengine_setup/testapps/jetty12_testapp/src/main/java/com/google/appengine/setup/testapps/jetty12/JettyServer.java +++ b/appengine_setup/testapps/jetty12_testapp/src/main/java/com/google/appengine/setup/testapps/jetty12/JettyServer.java @@ -24,7 +24,7 @@ import com.google.appengine.setup.testapps.jetty12.servlets.TaskQueueTestServlet; import jakarta.servlet.DispatcherType; import java.util.EnumSet; -import org.eclipse.jetty.ee10.servlet.ServletHandler; +import org.eclipse.jetty.ee11.servlet.ServletHandler; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; diff --git a/e2etests/stagingtests/src/test/java/com/google/appengine/tools/admin/ApplicationTest.java b/e2etests/stagingtests/src/test/java/com/google/appengine/tools/admin/ApplicationTest.java index a60f326ac..748623d89 100644 --- a/e2etests/stagingtests/src/test/java/com/google/appengine/tools/admin/ApplicationTest.java +++ b/e2etests/stagingtests/src/test/java/com/google/appengine/tools/admin/ApplicationTest.java @@ -1674,7 +1674,7 @@ public void testStageGaeStandardJava8WithOnlyJasperContextInitializer() } else if (Boolean.getBoolean("appengine.use.EE10")) { expectedJasperInitializer = "\"ContainerInitializer" - + "{org.eclipse.jetty.ee10.apache.jsp.JettyJasperInitializer" + + "{org.eclipse.jetty.ee11.apache.jsp.JettyJasperInitializer" + ",interested=[],applicable=[],annotated=[]}\""; } else { expectedJasperInitializer diff --git a/jetty12_assembly/pom.xml b/jetty12_assembly/pom.xml index 8afd140ff..23c9dc51f 100644 --- a/jetty12_assembly/pom.xml +++ b/jetty12_assembly/pom.xml @@ -78,12 +78,12 @@ org.eclipse.jetty.ee8.apache-jsp-${jetty12.version}-nolog.jar - org.eclipse.jetty.ee10 - jetty-ee10-apache-jsp + org.eclipse.jetty.ee11 + jetty-ee11-apache-jsp true nolog - ${assembly-directory}/jetty12/jetty-home/lib/ee10-apache-jsp - org.eclipse.jetty.ee10.apache-jsp-${jetty12.version}-nolog.jar + ${assembly-directory}/jetty12/jetty-home/lib/ee11-apache-jsp + org.eclipse.jetty.ee11.apache-jsp-${jetty12.version}-nolog.jar @@ -130,8 +130,8 @@ ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-apache-jsp + org.eclipse.jetty.ee11 + jetty-ee11-apache-jsp ${jetty12.version} diff --git a/lib/tools_api/src/main/java/com/google/appengine/tools/admin/Application.java b/lib/tools_api/src/main/java/com/google/appengine/tools/admin/Application.java index 3742b3c86..22f76e4e7 100644 --- a/lib/tools_api/src/main/java/com/google/appengine/tools/admin/Application.java +++ b/lib/tools_api/src/main/java/com/google/appengine/tools/admin/Application.java @@ -1029,7 +1029,7 @@ private void fallThroughToRuntimeOnContextInitializers() { String containerInitializer = matcher.group(1); if ("org.eclipse.jetty.apache.jsp.JettyJasperInitializer".equals(containerInitializer) || "org.eclipse.jetty.ee8.apache.jsp.JettyJasperInitializer".equals(containerInitializer) - || "org.eclipse.jetty.ee10.apache.jsp.JettyJasperInitializer" + || "org.eclipse.jetty.ee11.apache.jsp.JettyJasperInitializer" .equals(containerInitializer)) { foundJasperInitializer = true; } diff --git a/local_runtime_shared_jetty12/pom.xml b/local_runtime_shared_jetty12/pom.xml index 6ad0d7d34..334335d49 100644 --- a/local_runtime_shared_jetty12/pom.xml +++ b/local_runtime_shared_jetty12/pom.xml @@ -56,8 +56,8 @@ - org.eclipse.jetty.ee10 - jetty-ee10-jspc-maven-plugin + org.eclipse.jetty.ee11 + jetty-ee11-jspc-maven-plugin ${jetty12.version} diff --git a/pom.xml b/pom.xml index 589a8e5de..4af6a87d6 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 1.8 UTF-8 9.4.57.v20241219 - 12.0.23 + 12.1.0.beta2 2.0.17 https://oss.sonatype.org/content/repositories/google-snapshots/ sonatype-nexus-snapshots @@ -499,7 +499,7 @@ jakarta.servlet jakarta.servlet-api - 6.0.0 + 6.1.0 javax.servlet.jsp.jstl diff --git a/quickstartgenerator_jetty12_ee10/pom.xml b/quickstartgenerator_jetty12_ee10/pom.xml index 217228250..f8af5dba1 100644 --- a/quickstartgenerator_jetty12_ee10/pom.xml +++ b/quickstartgenerator_jetty12_ee10/pom.xml @@ -30,8 +30,8 @@ AppEngine :: quickstartgenerator Jetty12 EE10 - org.eclipse.jetty.ee10 - jetty-ee10-quickstart + org.eclipse.jetty.ee11 + jetty-ee11-quickstart ${jetty12.version} diff --git a/quickstartgenerator_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/QuickStartGenerator.java b/quickstartgenerator_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/QuickStartGenerator.java index b2cf8d827..02fd11497 100644 --- a/quickstartgenerator_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/QuickStartGenerator.java +++ b/quickstartgenerator_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/QuickStartGenerator.java @@ -17,8 +17,8 @@ package com.google.appengine.tools.development.jetty; import java.io.File; -import org.eclipse.jetty.ee10.quickstart.QuickStartConfiguration; -import org.eclipse.jetty.ee10.webapp.WebAppContext; +import org.eclipse.jetty.ee11.quickstart.QuickStartConfiguration; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.resource.ResourceFactory; diff --git a/runtime/local_jetty12/pom.xml b/runtime/local_jetty12/pom.xml index c9e785d8f..895467b8e 100644 --- a/runtime/local_jetty12/pom.xml +++ b/runtime/local_jetty12/pom.xml @@ -153,8 +153,8 @@ ${project.version} - org.eclipse.jetty.ee10 - jetty-ee10-servlet + org.eclipse.jetty.ee11 + jetty-ee11-servlet @@ -164,20 +164,20 @@ ${project.version} - org.eclipse.jetty.ee10 - jetty-ee10-annotations + org.eclipse.jetty.ee11 + jetty-ee11-annotations - org.eclipse.jetty.ee10 - jetty-ee10-apache-jsp + org.eclipse.jetty.ee11 + jetty-ee11-apache-jsp - org.eclipse.jetty.ee10 - jetty-ee10-webapp + org.eclipse.jetty.ee11 + jetty-ee11-webapp - org.eclipse.jetty.ee10 - jetty-ee10-servlet + org.eclipse.jetty.ee11 + jetty-ee11-servlet diff --git a/runtime/local_jetty12/src/main/java/com/google/appengine/tools/development/jetty/JettyContainerService.java b/runtime/local_jetty12/src/main/java/com/google/appengine/tools/development/jetty/JettyContainerService.java index c96653905..fc8b2aff6 100644 --- a/runtime/local_jetty12/src/main/java/com/google/appengine/tools/development/jetty/JettyContainerService.java +++ b/runtime/local_jetty12/src/main/java/com/google/appengine/tools/development/jetty/JettyContainerService.java @@ -49,6 +49,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Semaphore; @@ -509,9 +510,12 @@ private void fullWebAppScanner(int interval) throws IOException { scanner.setReportExistingFilesOnStartup(false); scanner.setScanDepth(3); - scanner.addListener((Scanner.BulkListener) filenames -> { - log.info("A file has changed, reloading the web application."); - reloadWebApp(); + scanner.addListener(new Scanner.BulkListener() { + @Override + public void pathsChanged(Map changeSet) throws Exception { + log.info("A file has changed, reloading the web application."); + reloadWebApp(); + } }); LifeCycle.start(scanner); diff --git a/runtime/local_jetty12_ee10/pom.xml b/runtime/local_jetty12_ee10/pom.xml index 5433e7714..4d63db6cd 100644 --- a/runtime/local_jetty12_ee10/pom.xml +++ b/runtime/local_jetty12_ee10/pom.xml @@ -78,13 +78,13 @@ proto1 - org.eclipse.jetty.ee10 - jetty-ee10-webapp + org.eclipse.jetty.ee11 + jetty-ee11-webapp ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-servlet + org.eclipse.jetty.ee11 + jetty-ee11-servlet ${jetty12.version} @@ -93,8 +93,8 @@ ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-annotations + org.eclipse.jetty.ee11 + jetty-ee11-annotations ${jetty12.version} @@ -104,8 +104,8 @@ - org.eclipse.jetty.ee10 - jetty-ee10-apache-jsp + org.eclipse.jetty.ee11 + jetty-ee11-apache-jsp ${jetty12.version} diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineAnnotationConfiguration.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineAnnotationConfiguration.java index 51bf52a63..bcb8e2512 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineAnnotationConfiguration.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineAnnotationConfiguration.java @@ -19,8 +19,8 @@ import jakarta.servlet.ServletContainerInitializer; import java.util.ArrayList; import java.util.List; -import org.eclipse.jetty.ee10.annotations.AnnotationConfiguration; -import org.eclipse.jetty.ee10.apache.jsp.JettyJasperInitializer; +import org.eclipse.jetty.ee11.annotations.AnnotationConfiguration; +import org.eclipse.jetty.ee11.apache.jsp.JettyJasperInitializer; /** * Customization of AnnotationConfiguration which correctly configures the JSP Jasper initializer. diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineWebAppContext.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineWebAppContext.java index 3be84fc7d..071d1eca1 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineWebAppContext.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/AppEngineWebAppContext.java @@ -19,8 +19,8 @@ import com.google.apphosting.api.ApiProxy; import com.google.apphosting.runtime.jetty.EE10AppEngineAuthentication; import java.io.File; -import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler; -import org.eclipse.jetty.ee10.webapp.WebAppContext; +import org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.eclipse.jetty.security.Constraint; import org.eclipse.jetty.security.SecurityHandler; import org.eclipse.jetty.server.Request; diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/DevAppEngineWebAppContext.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/DevAppEngineWebAppContext.java index e30812d5c..f92da9e01 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/DevAppEngineWebAppContext.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/DevAppEngineWebAppContext.java @@ -25,8 +25,8 @@ import java.util.List; import java.util.Set; import java.util.logging.Logger; -import org.eclipse.jetty.ee10.servlet.security.ConstraintMapping; -import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler; +import org.eclipse.jetty.ee11.servlet.security.ConstraintMapping; +import org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler; import org.eclipse.jetty.http.HttpField; import org.eclipse.jetty.security.Constraint; import org.eclipse.jetty.server.Context; diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/FixupJspServlet.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/FixupJspServlet.java index 1030841bb..fb978736d 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/FixupJspServlet.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/FixupJspServlet.java @@ -20,7 +20,7 @@ import jakarta.servlet.ServletException; import java.lang.reflect.InvocationTargetException; import org.apache.tomcat.InstanceManager; -import org.eclipse.jetty.ee10.jsp.JettyJspServlet; +import org.eclipse.jetty.ee11.jsp.JettyJspServlet; /** {@code FixupJspServlet} adds some logic to work around bugs in the Jasper {@link JspServlet}. */ public class FixupJspServlet extends JettyJspServlet { diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/JettyContainerService.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/JettyContainerService.java index c5a393268..00e2ce18b 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/JettyContainerService.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/JettyContainerService.java @@ -54,19 +54,19 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Semaphore; -import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; -import org.eclipse.jetty.ee10.servlet.ServletApiRequest; -import org.eclipse.jetty.ee10.servlet.ServletContextRequest; -import org.eclipse.jetty.ee10.servlet.ServletHolder; -import org.eclipse.jetty.ee10.webapp.Configuration; -import org.eclipse.jetty.ee10.webapp.JettyWebXmlConfiguration; -import org.eclipse.jetty.ee10.webapp.WebAppContext; +import org.eclipse.jetty.ee11.servlet.ServletApiRequest; +import org.eclipse.jetty.ee11.servlet.ServletContextRequest; +import org.eclipse.jetty.ee11.servlet.ServletHolder; +import org.eclipse.jetty.ee11.webapp.Configuration; +import org.eclipse.jetty.ee11.webapp.JettyWebXmlConfiguration; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.eclipse.jetty.server.Context; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.HttpConfiguration; @@ -116,10 +116,10 @@ public class JettyContainerService extends AbstractContainerService */ private static final String[] CONFIG_CLASSES = new String[] { - org.eclipse.jetty.ee10.webapp.WebInfConfiguration.class.getCanonicalName(), - org.eclipse.jetty.ee10.webapp.WebXmlConfiguration.class.getCanonicalName(), - org.eclipse.jetty.ee10.webapp.MetaInfConfiguration.class.getCanonicalName(), - org.eclipse.jetty.ee10.webapp.FragmentConfiguration.class.getCanonicalName(), + org.eclipse.jetty.ee11.webapp.WebInfConfiguration.class.getCanonicalName(), + org.eclipse.jetty.ee11.webapp.WebXmlConfiguration.class.getCanonicalName(), + org.eclipse.jetty.ee11.webapp.MetaInfConfiguration.class.getCanonicalName(), + org.eclipse.jetty.ee11.webapp.FragmentConfiguration.class.getCanonicalName(), // Special annotationConfiguration to deal with Jasper ServletContainerInitializer. AppEngineAnnotationConfiguration.class.getCanonicalName() }; @@ -517,9 +517,12 @@ private void fullWebAppScanner(int interval) throws IOException { scanner.setReportExistingFilesOnStartup(false); scanner.setScanDepth(3); - scanner.addListener((Scanner.BulkListener) filenames -> { - log.info("A file has changed, reloading the web application."); - reloadWebApp(); + scanner.addListener(new Scanner.BulkListener() { + @Override + public void pathsChanged(Map changeSet) throws Exception { + log.info("A file has changed, reloading the web application."); + reloadWebApp(); + } }); LifeCycle.start(scanner); diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/LocalResourceFileServlet.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/LocalResourceFileServlet.java index 36f1e1ce3..1c86fbb1a 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/LocalResourceFileServlet.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/LocalResourceFileServlet.java @@ -29,9 +29,9 @@ import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; -import org.eclipse.jetty.ee10.servlet.ServletContextHandler; -import org.eclipse.jetty.ee10.servlet.ServletHandler; -import org.eclipse.jetty.ee10.servlet.ServletMapping; +import org.eclipse.jetty.ee11.servlet.ServletContextHandler; +import org.eclipse.jetty.ee11.servlet.ServletHandler; +import org.eclipse.jetty.ee11.servlet.ServletMapping; import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.resource.ResourceFactory; diff --git a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/StaticFileFilter.java b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/StaticFileFilter.java index b8f95e1c5..f859f8669 100644 --- a/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/StaticFileFilter.java +++ b/runtime/local_jetty12_ee10/src/main/java/com/google/appengine/tools/development/jetty/ee10/StaticFileFilter.java @@ -33,7 +33,7 @@ import java.nio.file.InvalidPathException; import java.util.logging.Level; import java.util.logging.Logger; -import org.eclipse.jetty.ee10.servlet.ServletContextHandler; +import org.eclipse.jetty.ee11.servlet.ServletContextHandler; import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.resource.ResourceFactory; diff --git a/runtime/runtime_impl_jetty12/pom.xml b/runtime/runtime_impl_jetty12/pom.xml index 7277ed773..bde4ccd42 100644 --- a/runtime/runtime_impl_jetty12/pom.xml +++ b/runtime/runtime_impl_jetty12/pom.xml @@ -121,6 +121,20 @@ ${jetty12.version} jar + + org.eclipse.jetty.compression + jetty-compression-common + true + ${jetty12.version} + jar + + + org.eclipse.jetty.compression + jetty-compression-gzip + true + ${jetty12.version} + jar + org.eclipse.jetty.ee8 jetty-ee8-quickstart @@ -140,8 +154,8 @@ true - org.eclipse.jetty.ee10 - jetty-ee10-quickstart + org.eclipse.jetty.ee11 + jetty-ee11-quickstart ${jetty12.version} @@ -152,8 +166,8 @@ true - org.eclipse.jetty.ee10 - jetty-ee10-servlets + org.eclipse.jetty.ee11 + jetty-ee11-servlets ${jetty12.version} true @@ -311,8 +325,8 @@ ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-annotations + org.eclipse.jetty.ee11 + jetty-ee11-annotations ${jetty12.version} @@ -482,15 +496,15 @@ org.eclipse.jetty.ee8:jetty-ee8-servlets org.eclipse.jetty.ee8:jetty-ee8-webapp org.eclipse.jetty.ee8:jetty-ee8-nested - org.eclipse.jetty.ee10:jetty-ee10-annotations - org.eclipse.jetty.ee10:jetty-ee10-jndi - org.eclipse.jetty.ee10:jetty-ee10-plus - org.eclipse.jetty.ee10:jetty-ee10-quickstart - - org.eclipse.jetty.ee10:jetty-ee10-servlet - org.eclipse.jetty.ee10:jetty-ee10-servlets - org.eclipse.jetty.ee10:jetty-ee10-webapp - org.eclipse.jetty:jetty-ee + org.eclipse.jetty.ee11:jetty-ee11-annotations + org.eclipse.jetty.ee11:jetty-ee11-jndi + org.eclipse.jetty.ee11:jetty-ee11-plus + org.eclipse.jetty.ee11:jetty-ee11-quickstart + + org.eclipse.jetty.ee11:jetty-ee11-servlet + org.eclipse.jetty.ee11:jetty-ee11-servlets + org.eclipse.jetty.ee11:jetty-ee11-webapp + org.eclipse.jetty.ee:jetty-ee-webapp org.eclipse.jetty:jetty-client org.eclipse.jetty:jetty-continuation org.eclipse.jetty:jetty-http @@ -500,6 +514,8 @@ org.eclipse.jetty:jetty-server org.eclipse.jetty:jetty-session org.eclipse.jetty:jetty-security + org.eclipse.jetty.compression:jetty-compression-common + org.eclipse.jetty.compression:jetty-compression-gzip org.slf4j:slf4j-jdk14 org.slf4j:slf4j-api org.eclipse.jetty:jetty-util-ajax diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/ContentChunk.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/ContentChunk.java index 48ead32cf..076a6dffe 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/ContentChunk.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/ContentChunk.java @@ -17,43 +17,15 @@ package com.google.apphosting.runtime.jetty.delegate.impl; import java.nio.ByteBuffer; -import java.util.Objects; - -import org.eclipse.jetty.io.Content; -import org.eclipse.jetty.io.Retainable; +import org.eclipse.jetty.io.internal.ByteBufferChunk; import org.eclipse.jetty.util.BufferUtil; -public class ContentChunk extends Retainable.ReferenceCounter implements Content.Chunk { - private final ByteBuffer byteBuffer; - private final boolean last; - +public class ContentChunk extends ByteBufferChunk.WithReferenceCount { public ContentChunk(byte[] bytes) { this(BufferUtil.toBuffer(bytes), true); } public ContentChunk(ByteBuffer byteBuffer, boolean last) { - this.byteBuffer = Objects.requireNonNull(byteBuffer); - this.last = last; - } - - @Override - public ByteBuffer getByteBuffer() { - return byteBuffer; - } - - @Override - public boolean isLast() { - return last; - } - - @Override - public String toString() { - - return String.format( - "%s@%x[l=%b,b=%s]", - getClass().getSimpleName(), - hashCode(), - isLast(), - BufferUtil.toDetailString(getByteBuffer())); + super(byteBuffer, last); } } \ No newline at end of file diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/DelegateRpcExchange.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/DelegateRpcExchange.java index afee2b2f4..b66484e21 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/DelegateRpcExchange.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/impl/DelegateRpcExchange.java @@ -33,8 +33,8 @@ import java.util.concurrent.atomic.AtomicReference; import org.eclipse.jetty.http.HttpFields; import org.eclipse.jetty.http.HttpMethod; -import org.eclipse.jetty.io.ByteBufferAccumulator; import org.eclipse.jetty.io.Content; +import org.eclipse.jetty.io.RetainableByteBuffer; import org.eclipse.jetty.util.Attributes; import org.eclipse.jetty.util.Callback; @@ -46,7 +46,7 @@ public class DelegateRpcExchange implements DelegateExchange { private final HttpPb.HttpRequest _request; private final AtomicReference _content = new AtomicReference<>(); private final MutableUpResponse _response; - private final ByteBufferAccumulator accumulator = new ByteBufferAccumulator(); + private final RetainableByteBuffer.DynamicCapacity accumulator = new RetainableByteBuffer.DynamicCapacity(); private final CompletableFuture _completion = new CompletableFuture<>(); private final Attributes _attributes = new Attributes.Lazy(); private final String _httpMethod; @@ -158,13 +158,15 @@ public void addHeader(String name, String value) { @Override public void write(boolean last, ByteBuffer content, Callback callback) { - if (content != null) accumulator.copyBuffer(content); + if (content != null) { + accumulator.append(content); + } callback.succeeded(); } @Override public void succeeded() { - _response.setHttpResponseResponse(ByteString.copyFrom(accumulator.takeByteBuffer())); + _response.setHttpResponseResponse(ByteString.copyFrom(accumulator.takeByteArray())); _response.setError(RuntimePb.UPResponse.ERROR.OK_VALUE); _completion.complete(null); } diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateEndpoint.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateEndpoint.java index ccc955f75..3394dc41d 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateEndpoint.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateEndpoint.java @@ -18,7 +18,7 @@ import com.google.apphosting.runtime.jetty.delegate.api.DelegateExchange; import java.io.IOException; -import java.net.InetSocketAddress; +import java.net.SocketAddress; import java.nio.ByteBuffer; import java.nio.channels.ReadPendingException; import java.nio.channels.WritePendingException; @@ -40,12 +40,12 @@ public DelegateExchange getDelegateExchange() { } @Override - public InetSocketAddress getLocalAddress() { + public SocketAddress getLocalSocketAddress() { return _exchange.getLocalAddr(); } @Override - public InetSocketAddress getRemoteAddress() { + public SocketAddress getRemoteSocketAddress() { return _exchange.getRemoteAddr(); } @@ -121,6 +121,11 @@ public boolean isFillInterested() { @Override public void write(Callback callback, ByteBuffer... buffers) throws WritePendingException {} + @Override + public Callback cancelWrite(Throwable throwable) { + return null; + } + @Override public Connection getConnection() { return null; diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateHttpStream.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateHttpStream.java index ab937a5be..00a41a8a6 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateHttpStream.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/delegate/internal/DelegateHttpStream.java @@ -88,6 +88,11 @@ public void send( delegateExchange.write(last, content, callback); } + @Override + public Runnable cancelSend(Throwable throwable, Callback callback) { + return null; + } + @Override public void push(MetaData.Request request) { throw new UnsupportedOperationException("push not supported"); diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/AppEngineWebAppContext.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/AppEngineWebAppContext.java index 1758b7128..70abd6705 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/AppEngineWebAppContext.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/AppEngineWebAppContext.java @@ -47,16 +47,16 @@ import java.util.Objects; import java.util.Scanner; import java.util.concurrent.CopyOnWriteArrayList; -import org.eclipse.jetty.ee10.servlet.FilterHolder; -import org.eclipse.jetty.ee10.servlet.FilterMapping; -import org.eclipse.jetty.ee10.servlet.Holder; -import org.eclipse.jetty.ee10.servlet.ListenerHolder; -import org.eclipse.jetty.ee10.servlet.ServletHandler; -import org.eclipse.jetty.ee10.servlet.ServletHolder; -import org.eclipse.jetty.ee10.servlet.ServletMapping; -import org.eclipse.jetty.ee10.servlet.security.ConstraintMapping; -import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler; -import org.eclipse.jetty.ee10.webapp.WebAppContext; +import org.eclipse.jetty.ee11.servlet.FilterHolder; +import org.eclipse.jetty.ee11.servlet.FilterMapping; +import org.eclipse.jetty.ee11.servlet.Holder; +import org.eclipse.jetty.ee11.servlet.ListenerHolder; +import org.eclipse.jetty.ee11.servlet.ServletHandler; +import org.eclipse.jetty.ee11.servlet.ServletHolder; +import org.eclipse.jetty.ee11.servlet.ServletMapping; +import org.eclipse.jetty.ee11.servlet.security.ConstraintMapping; +import org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.eclipse.jetty.security.Constraint; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/EE10AppVersionHandlerFactory.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/EE10AppVersionHandlerFactory.java index 18705e231..3834f4aae 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/EE10AppVersionHandlerFactory.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/EE10AppVersionHandlerFactory.java @@ -25,25 +25,18 @@ import com.google.apphosting.runtime.jetty.EE10SessionManagerHandler; import com.google.common.flogger.GoogleLogger; import com.google.common.html.HtmlEscapers; -import jakarta.servlet.RequestDispatcher; -import jakarta.servlet.ServletContext; import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.io.File; -import java.io.IOException; import java.io.PrintWriter; import javax.servlet.jsp.JspFactory; -import org.eclipse.jetty.ee10.annotations.AnnotationConfiguration; -import org.eclipse.jetty.ee10.quickstart.QuickStartConfiguration; -import org.eclipse.jetty.ee10.servlet.Dispatcher; -import org.eclipse.jetty.ee10.servlet.ErrorHandler; -import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler; -import org.eclipse.jetty.ee10.servlet.ServletContextRequest; -import org.eclipse.jetty.ee10.webapp.FragmentConfiguration; -import org.eclipse.jetty.ee10.webapp.MetaInfConfiguration; -import org.eclipse.jetty.ee10.webapp.WebInfConfiguration; -import org.eclipse.jetty.ee10.webapp.WebXmlConfiguration; +import org.eclipse.jetty.ee11.annotations.AnnotationConfiguration; +import org.eclipse.jetty.ee11.quickstart.QuickStartConfiguration; +import org.eclipse.jetty.ee11.servlet.ErrorHandler; +import org.eclipse.jetty.ee11.servlet.ErrorPageErrorHandler; +import org.eclipse.jetty.ee11.webapp.FragmentConfiguration; +import org.eclipse.jetty.ee11.webapp.MetaInfConfiguration; +import org.eclipse.jetty.ee11.webapp.WebInfConfiguration; +import org.eclipse.jetty.ee11.webapp.WebXmlConfiguration; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.io.Content; import org.eclipse.jetty.server.Context; @@ -77,12 +70,6 @@ public class EE10AppVersionHandlerFactory implements AppVersionHandlerFactory { */ private static final String USE_ANNOTATION_SCANNING = "use.annotationscanning"; - /** - * A "private" request attribute to indicate if the dispatch to a most recent error page has run - * to completion. Note an error page itself may generate errors. - */ - static final String ERROR_PAGE_HANDLED = ErrorHandler.ERROR_PAGE + ".handled"; - private final Server server; private final String serverInfo; private final boolean useJettyErrorPageHandler; @@ -223,93 +210,38 @@ public void exitScope(Context context, Request request) { } } - /** - * {@code NullErrorHandler} does nothing when an error occurs. The exception is already stored in - * an attribute of {@code request}, but we don't do any rendering of it into the response, UNLESS - * the webapp has a designated error page (servlet, jsp, or static html) for the current error - * condition (exception type or error code). - */ private static class NullErrorHandler extends ErrorPageErrorHandler { - @Override - public boolean handle(Request request, Response response, Callback callback) throws Exception { - logger.atFine().log("Custom Jetty ErrorHandler received an error notification."); - mayHandleByErrorPage(request, response, callback); - // We don't want Jetty to do anything further. - return true; - } /** - * Try to invoke a custom error page if a handler is available. If not, render a simple HTML - * response for {@link HttpServletResponse#sendError} calls, but do nothing for unhandled - * exceptions. - * - *

This is loosely based on {@link ErrorPageErrorHandler#handle} but has been modified to add - * a fallback simple HTML response (because Jetty's default response is not satisfactory) and to - * set a special {@code ERROR_PAGE_HANDLED} attribute that disables our default behavior of - * returning the exception to the appserver for rendering. + * Override the response generation when not mapped to a servlet error page. */ - private void mayHandleByErrorPage(Request request, Response response, Callback callback) - throws IOException { - ServletContextRequest contextRequest = Request.as(request, ServletContextRequest.class); - HttpServletRequest httpServletRequest = contextRequest.getServletApiRequest(); - HttpServletResponse httpServletResponse = contextRequest.getHttpServletResponse(); - // Extract some error handling info from Jetty's proprietary attributes. - Throwable error = (Throwable) contextRequest.getAttribute(RequestDispatcher.ERROR_EXCEPTION); - Integer code = (Integer) contextRequest.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); - String message = (String) contextRequest.getAttribute(RequestDispatcher.ERROR_MESSAGE); - // Now try to find an error handler... - String errorPage = getErrorPage(httpServletRequest); - // If we found an error handler, dispatch to it. - if (errorPage != null) { - // Check for reentry into the same error page. - String oldErrorPage = (String) request.getAttribute(ErrorHandler.ERROR_PAGE); - if (oldErrorPage == null || !oldErrorPage.equals(errorPage)) { - request.setAttribute(ErrorHandler.ERROR_PAGE, errorPage); - ServletContext servletContext = httpServletRequest.getServletContext(); - Dispatcher dispatcher = (Dispatcher) servletContext.getRequestDispatcher(errorPage); - try { - if (dispatcher != null) { - dispatcher.error(httpServletRequest, httpServletResponse); - // Set this special attribute iff the dispatch actually works! - // We use this attribute to decide if we want to keep the response content - // or let the Runtime generate the default error page - // TODO: an invalid html dispatch (404) will mask the exception - request.setAttribute(ERROR_PAGE_HANDLED, errorPage); - callback.succeeded(); - return; - } else { - logger.atWarning().log("No error page %s", errorPage); - } - } catch (ServletException e) { - logger.atWarning().withCause(e).log("Failed to handle error page."); - } - } - } + @Override + protected void generateResponse( + Request request, + Response response, + int code, + String message, + Throwable cause, + Callback callback) { // If we got an error code (e.g. this is a call to HttpServletResponse#sendError), // then render our own HTML. XFE has logic to do this, but the PFE only invokes it // for error conditions that it or the AppServer detect. - if (code != null && message != null) { - // This template is based on the default XFE error response. - response.getHeaders().put(HttpHeader.CONTENT_TYPE, "text/html; charset=UTF-8"); - String messageEscaped = HtmlEscapers.htmlEscaper().escape(message); - try (PrintWriter writer = new PrintWriter(Content.Sink.asOutputStream(response))) { - writer.println(""); - writer.println(""); - writer.println("" + code + " " + messageEscaped + ""); - writer.println(""); - writer.println(""); - writer.println("

Error: " + messageEscaped + "

"); - writer.println(""); - writer.close(); - callback.succeeded(); - } catch (Throwable t) { - callback.failed(t); - } - return; + // This template is based on the default XFE error response. + response.getHeaders().put(HttpHeader.CONTENT_TYPE, "text/html; charset=UTF-8"); + String messageEscaped = HtmlEscapers.htmlEscaper().escape(message); + try (PrintWriter writer = new PrintWriter(Content.Sink.asOutputStream(response))) { + writer.println(""); + writer.println(""); + writer.println("" + code + " " + messageEscaped + ""); + writer.println(""); + writer.println(""); + writer.println("

Error: " + messageEscaped + "

"); + writer.println(""); + writer.close(); + callback.succeeded(); + } catch (Throwable t) { + callback.failed(t); } - // If we got this far and *did* have an exception, it will be - // retrieved and thrown at the end of JettyServletEngineAdapter#serviceRequest. - throw new IllegalStateException(error); } } } diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/RequestListener.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/RequestListener.java index da709a2ee..1e52db386 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/RequestListener.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/RequestListener.java @@ -19,7 +19,7 @@ import jakarta.servlet.ServletException; import java.io.IOException; import java.util.EventListener; -import org.eclipse.jetty.ee10.webapp.WebAppContext; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.eclipse.jetty.server.Request; /** diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/ResourceFileServlet.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/ResourceFileServlet.java index ce7574238..6c1cae2b3 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/ResourceFileServlet.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/ResourceFileServlet.java @@ -30,9 +30,9 @@ import java.io.IOException; import java.net.URL; import java.util.Objects; -import org.eclipse.jetty.ee10.servlet.ServletContextHandler; -import org.eclipse.jetty.ee10.servlet.ServletHandler; -import org.eclipse.jetty.ee10.servlet.ServletMapping; +import org.eclipse.jetty.ee11.servlet.ServletContextHandler; +import org.eclipse.jetty.ee11.servlet.ServletHandler; +import org.eclipse.jetty.ee11.servlet.ServletMapping; import org.eclipse.jetty.server.AliasCheck; import org.eclipse.jetty.server.AllowedResourceAliasChecker; import org.eclipse.jetty.server.handler.ContextHandler; diff --git a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/TransactionCleanupListener.java b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/TransactionCleanupListener.java index 559d0aa95..0a8928f61 100644 --- a/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/TransactionCleanupListener.java +++ b/runtime/runtime_impl_jetty12/src/main/java/com/google/apphosting/runtime/jetty/ee10/TransactionCleanupListener.java @@ -23,7 +23,7 @@ import java.util.Collection; import java.util.logging.Level; import java.util.logging.Logger; -import org.eclipse.jetty.ee10.webapp.WebAppContext; +import org.eclipse.jetty.ee11.webapp.WebAppContext; import org.eclipse.jetty.server.Request; /** diff --git a/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitHandlerTest.java b/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitHandlerTest.java index 541250925..70852ecf1 100644 --- a/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitHandlerTest.java +++ b/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitHandlerTest.java @@ -389,7 +389,7 @@ private void assertEnvironment() throws Exception { match = "org.eclipse.jetty.ee8"; break; case "ee10": - match = "org.eclipse.jetty.ee10"; + match = "org.eclipse.jetty.ee11"; break; default: throw new IllegalArgumentException(environment); diff --git a/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitIgnoreTest.java b/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitIgnoreTest.java index 88c87a643..6c969b37c 100644 --- a/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitIgnoreTest.java +++ b/runtime/test/src/test/java/com/google/apphosting/runtime/jetty9/SizeLimitIgnoreTest.java @@ -152,7 +152,7 @@ private void assertEnvironment() throws Exception { match = "org.eclipse.jetty.ee8"; break; case "ee10": - match = "org.eclipse.jetty.ee10"; + match = "org.eclipse.jetty.ee11"; break; default: throw new IllegalArgumentException(environment); diff --git a/shared_sdk_jetty12/pom.xml b/shared_sdk_jetty12/pom.xml index 6a1a54da7..cf3b43f60 100644 --- a/shared_sdk_jetty12/pom.xml +++ b/shared_sdk_jetty12/pom.xml @@ -68,13 +68,13 @@ ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-servlet + org.eclipse.jetty.ee11 + jetty-ee11-servlet ${jetty12.version} - org.eclipse.jetty - jetty-ee + org.eclipse.jetty.ee + jetty-ee-webapp ${jetty12.version} diff --git a/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10AppEngineAuthentication.java b/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10AppEngineAuthentication.java index 315171f73..7834f29c9 100644 --- a/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10AppEngineAuthentication.java +++ b/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10AppEngineAuthentication.java @@ -29,7 +29,7 @@ import java.util.HashSet; import java.util.function.Function; import javax.security.auth.Subject; -import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler; +import org.eclipse.jetty.ee11.servlet.security.ConstraintSecurityHandler; import org.eclipse.jetty.http.HttpURI; import org.eclipse.jetty.security.AuthenticationState; import org.eclipse.jetty.security.Authenticator; diff --git a/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10SessionManagerHandler.java b/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10SessionManagerHandler.java index 44cbef2b7..4f20fb3a2 100644 --- a/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10SessionManagerHandler.java +++ b/shared_sdk_jetty12/src/main/java/com/google/apphosting/runtime/jetty/EE10SessionManagerHandler.java @@ -23,8 +23,8 @@ import java.security.SecureRandom; import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; -import org.eclipse.jetty.ee10.servlet.ServletContextHandler; -import org.eclipse.jetty.ee10.servlet.SessionHandler; +import org.eclipse.jetty.ee11.servlet.ServletContextHandler; +import org.eclipse.jetty.ee11.servlet.SessionHandler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.session.CachingSessionDataStore; import org.eclipse.jetty.session.DefaultSessionIdManager;