Skip to content

Commit d8a5b13

Browse files
ludochgae-java-bot
authored andcommitted
Upgrade Jetty client to v12.1 in tests and limit Jetty 9 usage. This change has no impact on the Jetty9 runtime, just tests and local api server used only in tests.
PiperOrigin-RevId: 877947902 Change-Id: Ic305ad1317ba4f68ce8c6f2ea279d96a418fcb7f
1 parent f7926de commit d8a5b13

15 files changed

Lines changed: 246 additions & 193 deletions

File tree

api_dev/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,12 +184,12 @@
184184
<dependency>
185185
<groupId>org.eclipse.jetty</groupId>
186186
<artifactId>jetty-server</artifactId>
187-
<version>${jetty.version}</version>
187+
<version>${jetty121.version}</version>
188188
</dependency>
189189
<dependency>
190-
<groupId>org.eclipse.jetty</groupId>
191-
<artifactId>jetty-servlet</artifactId>
192-
<version>${jetty.version}</version>
190+
<groupId>org.eclipse.jetty.ee8</groupId>
191+
<artifactId>jetty-ee8-servlet</artifactId>
192+
<version>${jetty121.version}</version>
193193
</dependency>
194194
<dependency>
195195
<groupId>org.apache.httpcomponents</groupId>

api_dev/src/main/java/com/google/appengine/tools/development/HttpApiServer.java

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,14 @@
1616

1717
package com.google.appengine.tools.development;
1818

19+
import com.google.common.base.VerifyException;
1920
import com.google.common.flogger.GoogleLogger;
2021
import java.io.Closeable;
2122
import java.io.IOException;
22-
import java.io.UncheckedIOException;
23+
import org.eclipse.jetty.ee8.servlet.ErrorPageErrorHandler;
24+
import org.eclipse.jetty.ee8.servlet.ServletContextHandler;
25+
import org.eclipse.jetty.ee8.servlet.ServletHolder;
2326
import org.eclipse.jetty.server.Server;
24-
import org.eclipse.jetty.server.handler.HandlerList;
25-
import org.eclipse.jetty.server.handler.ShutdownHandler;
26-
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
27-
import org.eclipse.jetty.servlet.ServletHandler;
28-
import org.eclipse.jetty.servlet.ServletHolder;
2927

3028
/**
3129
* Google App Engine API HTTP server, using the SDK API stubs for local testing of API calls.
@@ -46,7 +44,6 @@ public class HttpApiServer implements Closeable {
4644
"Incorrect --runtime_server_port or --runtime_server_host value";
4745
private static final String REQUEST_ENDPOINT = "/rpc_http";
4846
private final Server server;
49-
private final ShutdownHandler shutdownHandler;
5047

5148
/**
5249
* Simple command line interface to start an API server locally.
@@ -89,23 +86,17 @@ public static void main(String[] args) throws IOException {
8986
*/
9087
public HttpApiServer(int apiServerPort, String appEngineServerHost, int appEngineServerPort) {
9188
server = new Server(apiServerPort);
92-
93-
HandlerList handlers = new HandlerList();
94-
ServletHandler handler = new ServletHandler();
95-
ServletHolder servletHolder = handler.addServletWithMapping(ApiServlet.class, REQUEST_ENDPOINT);
89+
ServletContextHandler context = new ServletContextHandler();
90+
context.setContextPath("/");
91+
ServletHolder servletHolder = new ServletHolder(ApiServlet.class);
9692
servletHolder.setInitParameter("java_runtime_port", Integer.toString(appEngineServerPort));
9793
servletHolder.setInitParameter("java_runtime_host", appEngineServerHost);
98-
94+
context.addServlet(servletHolder, REQUEST_ENDPOINT);
9995
ErrorPageErrorHandler error = new ErrorPageErrorHandler();
10096
// Make debugging of config issues easy.
10197
error.setShowStacks(true);
102-
error.setServer(server);
103-
server.addBean(error);
104-
server.setHandler(handler);
105-
handlers.addHandler(handler);
106-
shutdownHandler = new ShutdownHandler("stop", false, true);
107-
handlers.addHandler(shutdownHandler);
108-
server.setHandler(handlers);
98+
context.setErrorHandler(error);
99+
server.setHandler(context);
109100
}
110101

111102
/**
@@ -128,9 +119,9 @@ public void start(boolean blocking) {
128119
@Override
129120
public void close() {
130121
try {
131-
shutdownHandler.sendShutdown();
132-
} catch (IOException e) {
133-
throw new UncheckedIOException(e);
122+
server.stop();
123+
} catch (Exception e) {
124+
throw new VerifyException(e);
134125
}
135126
}
136127

api_dev/src/test/java/com/google/appengine/api/urlfetch/URLFetchServiceImplTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@
5858
import javax.servlet.http.HttpServlet;
5959
import javax.servlet.http.HttpServletRequest;
6060
import javax.servlet.http.HttpServletResponse;
61+
import org.eclipse.jetty.ee8.servlet.ServletContextHandler;
62+
import org.eclipse.jetty.ee8.servlet.ServletHolder;
6163
import org.eclipse.jetty.server.Server;
62-
import org.eclipse.jetty.servlet.ServletHandler;
63-
import org.eclipse.jetty.servlet.ServletHolder;
6464
import org.junit.After;
6565
import org.junit.Before;
6666
import org.junit.Test;
@@ -1040,7 +1040,7 @@ public void testCookieReuse() throws Exception {
10401040

10411041
int port = PortPicker.create().pickUnusedPort();
10421042
Server server = new Server(port);
1043-
ServletHandler handler = new ServletHandler();
1043+
ServletContextHandler handler = new ServletContextHandler();
10441044
server.setHandler(handler);
10451045

10461046
HttpServlet setCookieServlet = new HttpServlet() {
@@ -1052,7 +1052,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
10521052
resp.setStatus(200);
10531053
}
10541054
};
1055-
handler.addServletWithMapping(new ServletHolder(setCookieServlet), "/setcookie");
1055+
handler.addServlet(new ServletHolder(setCookieServlet), "/setcookie");
10561056

10571057
HttpServlet getCookieServlet = new HttpServlet() {
10581058
@Override
@@ -1067,7 +1067,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
10671067
resp.setHeader("Content-Type", "text/txt");
10681068
}
10691069
};
1070-
handler.addServletWithMapping(new ServletHolder(getCookieServlet), "/getcookie");
1070+
handler.addServlet(new ServletHolder(getCookieServlet), "/getcookie");
10711071
server.start();
10721072

10731073
try {

api_dev/src/test/java/com/google/appengine/api/urlfetch/dev/LocalURLFetchServiceIntegrationTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
import com.google.common.collect.ImmutableList;
4242
import com.google.common.collect.ImmutableMap;
4343
import com.google.common.collect.ImmutableSet;
44-
import com.google.common.io.CharStreams;
4544
import com.google.common.flogger.GoogleLogger;
45+
import com.google.common.io.CharStreams;
4646
import java.io.BufferedReader;
4747
import java.io.IOException;
4848
import java.io.PrintWriter;
@@ -60,9 +60,9 @@
6060
import javax.servlet.http.HttpServlet;
6161
import javax.servlet.http.HttpServletRequest;
6262
import javax.servlet.http.HttpServletResponse;
63+
import org.eclipse.jetty.ee8.servlet.ServletContextHandler;
64+
import org.eclipse.jetty.ee8.servlet.ServletHolder;
6365
import org.eclipse.jetty.server.Server;
64-
import org.eclipse.jetty.servlet.ServletHandler;
65-
import org.eclipse.jetty.servlet.ServletHolder;
6666
import org.junit.After;
6767
import org.junit.Before;
6868
import org.junit.Test;
@@ -88,7 +88,7 @@ public class LocalURLFetchServiceIntegrationTest {
8888

8989
private URLFetchService fetchService;
9090
private Server server;
91-
private ServletHandler servletHandler;
91+
private ServletContextHandler servletHandler;
9292
private int port;
9393

9494
@Before
@@ -100,7 +100,7 @@ public final void setUp() throws Exception {
100100
fetchService = URLFetchServiceFactory.getURLFetchService();
101101
port = portPicker.pickUnusedPort();
102102
server = new Server(port);
103-
servletHandler = new ServletHandler();
103+
servletHandler = new ServletContextHandler();
104104
server.setHandler(servletHandler);
105105
}
106106

@@ -768,7 +768,7 @@ private void startServer() throws Exception {
768768
}
769769

770770
private void addServlet(String servletPath, HttpServlet servlet) {
771-
servletHandler.addServletWithMapping(new ServletHolder(servlet), servletPath);
771+
servletHandler.addServlet(new ServletHolder(servlet), servletPath);
772772
}
773773

774774
private static final class TestServlet extends HttpServlet {

e2etests/stagingtests/src/test/java/com/google/appengine/tools/admin/ApplicationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1692,7 +1692,8 @@ public void testMimetypes() throws Exception {
16921692
assertThat(Application.guessContentTypeFromName("foo.class")).isEqualTo("application/java-vm");
16931693
assertThat(Application.guessContentTypeFromName("foo.css")).isEqualTo("text/css");
16941694
assertThat(Application.guessContentTypeFromName("foo.gif")).isEqualTo("image/gif");
1695-
assertThat(Application.guessContentTypeFromName("foo.ico")).isEqualTo("image/x-icon");
1695+
assertThat(Application.guessContentTypeFromName("foo.ico"))
1696+
.isIn(Arrays.asList("image/vnd.microsoft.icon", "image/x-icon"));
16961697
assertThat(Application.guessContentTypeFromName("foo.java")).isEqualTo("text/plain");
16971698
assertThat(Application.guessContentTypeFromName("foo.jar"))
16981699
.isEqualTo("application/java-archive");

lib/tools_api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@
303303
<include>org.apache.ant:ant</include>
304304
<include>org.apache.httpcomponents:httpclient</include>
305305
<include>org.apache.httpcomponents:httpcore:*</include>
306-
<!-- Jetty here for mimetype only, can be either 9 or 12.-->
306+
<!-- Jetty here for mimetype only, can be 12.1.x -->
307307
<include>org.eclipse.jetty:jetty-http</include>
308308
<include>org.eclipse.jetty:jetty-util</include>
309309
<include>org.slf4j:slf4j-api</include>

runtime/test/pom.xml

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,25 @@
4343
<artifactId>appengine-api-stubs</artifactId>
4444
</dependency>
4545
<dependency>
46-
<groupId>org.eclipse.jetty</groupId>
47-
<artifactId>jetty-server</artifactId>
48-
<version>${jetty.version}</version>
46+
<groupId>org.eclipse.jetty</groupId>
47+
<artifactId>jetty-server</artifactId>
48+
<version>${jetty121.version}</version>
49+
</dependency>
50+
<dependency>
51+
<groupId>org.eclipse.jetty.ee8</groupId>
52+
<artifactId>jetty-ee8-servlet</artifactId>
53+
<version>${jetty121.version}</version>
4954
</dependency>
50-
<dependency>
51-
<groupId>org.eclipse.jetty</groupId>
52-
<artifactId>jetty-servlet</artifactId>
53-
<version>${jetty.version}</version>
55+
<dependency>
56+
<groupId>org.eclipse.jetty</groupId>
57+
<artifactId>jetty-util</artifactId>
58+
<version>${jetty121.version}</version>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.eclipse.jetty</groupId>
62+
<artifactId>jetty-client</artifactId>
63+
<version>${jetty121.version}</version>
64+
<scope>test</scope>
5465
</dependency>
5566
<dependency>
5667
<groupId>com.google.appengine</groupId>
@@ -79,8 +90,8 @@
7990
<scope>runtime</scope>
8091
</dependency>
8192
<dependency>
82-
<groupId>javax.activation</groupId>
83-
<artifactId>activation</artifactId>
93+
<groupId>javax.activation</groupId>
94+
<artifactId>activation</artifactId>
8495
</dependency>
8596
<dependency>
8697
<groupId>com.google.flogger</groupId>
@@ -112,23 +123,17 @@
112123
<artifactId>appengine-utils</artifactId>
113124
<scope>test</scope>
114125
</dependency>
115-
<dependency>
116-
<groupId>org.eclipse.jetty</groupId>
117-
<artifactId>jetty-client</artifactId>
118-
<version>${jetty.version}</version>
119-
<scope>test</scope>
120-
</dependency>
121126
<dependency>
122127
<groupId>org.awaitility</groupId>
123128
<artifactId>awaitility</artifactId>
124129
<version>4.3.0</version>
125130
<scope>test</scope>
126131
</dependency>
127-
<dependency>
132+
<dependency>
128133
<groupId>com.google.appengine</groupId>
129134
<artifactId>appengine-tools-sdk</artifactId>
130135
<scope>test</scope>
131-
</dependency>
136+
</dependency>
132137
</dependencies>
133138

134139
<build>

0 commit comments

Comments
 (0)