From 54bae27565c0254e522e45b654f9b8869edf23dc Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Wed, 9 Apr 2025 21:48:30 +1000 Subject: [PATCH 1/4] Update Jetty version to 12.1.0.alpha2 for testing Signed-off-by: Lachlan Roberts --- pom.xml | 2 +- .../jetty/JettyContainerService.java | 10 ++++-- .../jetty/ee10/JettyContainerService.java | 11 +++--- runtime/runtime_impl_jetty12/pom.xml | 16 +++++++++ .../jetty/delegate/impl/ContentChunk.java | 34 ++----------------- .../delegate/impl/DelegateRpcExchange.java | 10 +++--- .../delegate/internal/DelegateEndpoint.java | 11 ++++-- .../delegate/internal/DelegateHttpStream.java | 5 +++ 8 files changed, 53 insertions(+), 46 deletions(-) diff --git a/pom.xml b/pom.xml index 38e40b985..cb8196e23 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 1.8 UTF-8 9.4.57.v20241219 - 12.0.18 + 12.1.0.alpha2 1.71.0 4.1.119.Final 2.0.17 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 64c4a4378..90f06d7fd 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/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..986acd805 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,10 +54,10 @@ 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; @@ -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/runtime_impl_jetty12/pom.xml b/runtime/runtime_impl_jetty12/pom.xml index ba4bc36b4..81613d9e0 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 @@ -572,6 +586,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"); From a9a45a50a3cc8840b5e1b15266912be8a7cf6d83 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Thu, 26 Jun 2025 11:40:37 +1000 Subject: [PATCH 2/4] update jetty version to 12.1.0.beta0 Signed-off-by: Lachlan Roberts --- pom.xml | 2 +- .../ee10/EE10AppVersionHandlerFactory.java | 116 ++++-------------- 2 files changed, 25 insertions(+), 93 deletions(-) diff --git a/pom.xml b/pom.xml index cb8196e23..45f0500d9 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 1.8 UTF-8 9.4.57.v20241219 - 12.1.0.alpha2 + 12.1.0.beta0 1.71.0 4.1.119.Final 2.0.17 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..f3897e610 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,21 +25,14 @@ 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; @@ -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); } } } From f373f8c278dec3b96c75a9a016f740eff5d80ae4 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Mon, 28 Jul 2025 19:32:03 +1000 Subject: [PATCH 3/4] update jetty version to 12.1.0.beta2 Signed-off-by: Lachlan Roberts --- pom.xml | 2 +- runtime/runtime_impl_jetty12/pom.xml | 2 +- shared_sdk_jetty12/pom.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 1465fb3f1..22bee36c1 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 1.8 UTF-8 9.4.57.v20241219 - 12.1.0.beta0 + 12.1.0.beta2 2.0.17 https://oss.sonatype.org/content/repositories/google-snapshots/ sonatype-nexus-snapshots diff --git a/runtime/runtime_impl_jetty12/pom.xml b/runtime/runtime_impl_jetty12/pom.xml index 7492314ee..4d677c6b9 100644 --- a/runtime/runtime_impl_jetty12/pom.xml +++ b/runtime/runtime_impl_jetty12/pom.xml @@ -504,7 +504,7 @@ 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.ee:jetty-ee-webapp org.eclipse.jetty:jetty-client org.eclipse.jetty:jetty-continuation org.eclipse.jetty:jetty-http diff --git a/shared_sdk_jetty12/pom.xml b/shared_sdk_jetty12/pom.xml index 6a1a54da7..80e5e54bd 100644 --- a/shared_sdk_jetty12/pom.xml +++ b/shared_sdk_jetty12/pom.xml @@ -73,8 +73,8 @@ ${jetty12.version}
- org.eclipse.jetty - jetty-ee + org.eclipse.jetty.ee + jetty-ee-webapp ${jetty12.version} From 95e6804b0a879bea9bbeddd08101bce296af5a64 Mon Sep 17 00:00:00 2001 From: Ludovic Champenois Date: Wed, 30 Jul 2025 08:54:37 -0700 Subject: [PATCH 4/4] With Jetty 12.1, try to use only the EE11 artifacts to serve the current GAE EE10 runtime. For now we keep the ee10 names, but use ee11 jars, and in master pom the servlet 6.1.0 as well as the lib/annotations and lib/ee11-annotations as these 2 directories were a single ee10-annotations directory. --- .../testing/ee10/FakeHttpServletResponse.java | 5 ++++ .../appengine/tools/info/Jetty12Sdk.java | 28 ++++++++++++------- .../testapps/jetty12_testapp/pom.xml | 4 +-- .../setup/testapps/jetty12/JettyServer.java | 2 +- .../tools/admin/ApplicationTest.java | 2 +- jetty12_assembly/pom.xml | 12 ++++---- .../appengine/tools/admin/Application.java | 2 +- local_runtime_shared_jetty12/pom.xml | 4 +-- pom.xml | 2 +- quickstartgenerator_jetty12_ee10/pom.xml | 4 +-- .../jetty/QuickStartGenerator.java | 4 +-- runtime/local_jetty12/pom.xml | 20 ++++++------- runtime/local_jetty12_ee10/pom.xml | 16 +++++------ .../AppEngineAnnotationConfiguration.java | 4 +-- .../jetty/ee10/AppEngineWebAppContext.java | 4 +-- .../jetty/ee10/DevAppEngineWebAppContext.java | 4 +-- .../jetty/ee10/FixupJspServlet.java | 2 +- .../jetty/ee10/JettyContainerService.java | 20 ++++++------- .../jetty/ee10/LocalResourceFileServlet.java | 6 ++-- .../jetty/ee10/StaticFileFilter.java | 2 +- runtime/runtime_impl_jetty12/pom.xml | 28 +++++++++---------- .../jetty/ee10/AppEngineWebAppContext.java | 20 ++++++------- .../ee10/EE10AppVersionHandlerFactory.java | 16 +++++------ .../runtime/jetty/ee10/RequestListener.java | 2 +- .../jetty/ee10/ResourceFileServlet.java | 6 ++-- .../ee10/TransactionCleanupListener.java | 2 +- .../runtime/jetty9/SizeLimitHandlerTest.java | 2 +- .../runtime/jetty9/SizeLimitIgnoreTest.java | 2 +- shared_sdk_jetty12/pom.xml | 4 +-- .../jetty/EE10AppEngineAuthentication.java | 2 +- .../jetty/EE10SessionManagerHandler.java | 4 +-- 31 files changed, 124 insertions(+), 111 deletions(-) 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 22bee36c1..4af6a87d6 100644 --- a/pom.xml +++ b/pom.xml @@ -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_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 986acd805..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 @@ -61,12 +61,12 @@ 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() }; 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 4d677c6b9..bde4ccd42 100644 --- a/runtime/runtime_impl_jetty12/pom.xml +++ b/runtime/runtime_impl_jetty12/pom.xml @@ -154,8 +154,8 @@ true - org.eclipse.jetty.ee10 - jetty-ee10-quickstart + org.eclipse.jetty.ee11 + jetty-ee11-quickstart ${jetty12.version} @@ -166,8 +166,8 @@ true - org.eclipse.jetty.ee10 - jetty-ee10-servlets + org.eclipse.jetty.ee11 + jetty-ee11-servlets ${jetty12.version} true @@ -325,8 +325,8 @@ ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-annotations + org.eclipse.jetty.ee11 + jetty-ee11-annotations ${jetty12.version} @@ -496,14 +496,14 @@ 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.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 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 f3897e610..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 @@ -29,14 +29,14 @@ import java.io.File; 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.ErrorHandler; -import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler; -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; 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 80e5e54bd..cf3b43f60 100644 --- a/shared_sdk_jetty12/pom.xml +++ b/shared_sdk_jetty12/pom.xml @@ -68,8 +68,8 @@ ${jetty12.version} - org.eclipse.jetty.ee10 - jetty-ee10-servlet + org.eclipse.jetty.ee11 + jetty-ee11-servlet ${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;