Skip to content

Commit d0fee16

Browse files
author
jj
committed
uplift jetty to v12
Uplift ring-http-exchange to 1.2.0
1 parent f1e5b50 commit d0fee16

File tree

10 files changed

+99
-108
lines changed

10 files changed

+99
-108
lines changed

frameworks/Clojure/ring-http-exchange/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
<dependency>
115115
<groupId>org.clojars.jj</groupId>
116116
<artifactId>ring-http-exchange</artifactId>
117-
<version>1.1.0</version>
117+
<version>1.2.0</version>
118118
</dependency>
119119
<dependency>
120120
<groupId>metosin</groupId>

frameworks/Java/jetty/jetty-servlet.dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
FROM maven:3.6.1-jdk-11-slim as maven
1+
FROM maven:3-eclipse-temurin-24-alpine as maven
22
WORKDIR /jetty
33
COPY pom.xml pom.xml
44
COPY src src
55
RUN mvn compile assembly:single -q -P servlet
66

7-
FROM openjdk:11.0.3-jdk-slim
7+
FROM openjdk:25-jdk-slim
88
WORKDIR /jetty
99
COPY --from=maven /jetty/target/jetty-example-0.1-jar-with-dependencies.jar app.jar
1010

frameworks/Java/jetty/jetty.dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
FROM maven:3.6.1-jdk-11-slim as maven
1+
FROM maven:3-eclipse-temurin-24-alpine as maven
22
WORKDIR /jetty
33
COPY pom.xml pom.xml
44
COPY src src
55
RUN mvn compile assembly:single -q
66

7-
FROM openjdk:11.0.3-jdk-slim
7+
FROM openjdk:25-jdk-slim
88
WORKDIR /jetty
99
COPY --from=maven /jetty/target/jetty-example-0.1-jar-with-dependencies.jar app.jar
1010

frameworks/Java/jetty/pom.xml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99

1010
<properties>
1111
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
12-
<maven.compiler.source>11</maven.compiler.source>
13-
<maven.compiler.target>11</maven.compiler.target>
14-
<jetty.version>10.0.24</jetty.version>
12+
<maven.compiler.source>21</maven.compiler.source>
13+
<maven.compiler.target>21</maven.compiler.target>
14+
<jetty.version>12.0.22</jetty.version>
1515
<main.class>hello.handler.HelloWebServer</main.class>
1616
</properties>
1717

@@ -23,8 +23,8 @@
2323
</activation>
2424
<dependencies>
2525
<dependency>
26-
<groupId>org.eclipse.jetty</groupId>
27-
<artifactId>jetty-server</artifactId>
26+
<groupId>org.eclipse.jetty.ee10</groupId>
27+
<artifactId>jetty-ee10-servlet</artifactId>
2828
<version>${jetty.version}</version>
2929
</dependency>
3030
</dependencies>
@@ -34,7 +34,7 @@
3434
<inherited>true</inherited>
3535
<groupId>org.apache.maven.plugins</groupId>
3636
<artifactId>maven-compiler-plugin</artifactId>
37-
<version>3.8.0</version>
37+
<version>3.14.0</version>
3838
<configuration>
3939
<excludes>
4040
<exclude>hello/servlet/**</exclude>
@@ -52,14 +52,14 @@
5252
</properties>
5353
<dependencies>
5454
<dependency>
55-
<groupId>org.eclipse.jetty</groupId>
56-
<artifactId>jetty-servlet</artifactId>
55+
<groupId>org.eclipse.jetty.ee10</groupId>
56+
<artifactId>jetty-ee10-servlet</artifactId>
5757
<version>${jetty.version}</version>
5858
</dependency>
5959
<dependency>
60-
<groupId>com.sun.activation</groupId>
61-
<artifactId>jakarta.activation</artifactId>
62-
<version>1.2.1</version>
60+
<groupId>jakarta.activation</groupId>
61+
<artifactId>jakarta.activation-api</artifactId>
62+
<version>2.1.3</version>
6363
</dependency>
6464
</dependencies>
6565
<build>
Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,16 @@
11
package hello.handler;
22

3-
import java.io.IOException;
4-
5-
import javax.servlet.ServletException;
6-
import javax.servlet.http.HttpServletRequest;
7-
import javax.servlet.http.HttpServletResponse;
8-
9-
import org.eclipse.jetty.server.Handler;
10-
import org.eclipse.jetty.server.HttpConfiguration;
11-
import org.eclipse.jetty.server.HttpConnectionFactory;
12-
import org.eclipse.jetty.server.Request;
13-
import org.eclipse.jetty.server.Server;
14-
import org.eclipse.jetty.server.ServerConnector;
3+
import org.eclipse.jetty.server.*;
154
import org.eclipse.jetty.server.handler.AbstractHandler;
16-
import org.eclipse.jetty.server.handler.AbstractHandlerContainer;
5+
import org.eclipse.jetty.util.Callback;
176

187

198
/**
209
* An implementation of the TechEmpower benchmark tests using the Jetty web
2110
* server.
2211
*/
23-
public final class HelloWebServer
24-
{
25-
public static void main(String[] args) throws Exception
26-
{
12+
public final class HelloWebServer {
13+
public static void main(String[] args) throws Exception {
2714
Server server = new Server(8080);
2815
ServerConnector connector = server.getBean(ServerConnector.class);
2916
HttpConfiguration config = connector.getBean(HttpConnectionFactory.class).getHttpConfiguration();
@@ -39,7 +26,7 @@ public static void main(String[] args) throws Exception
3926

4027
public static class PathHandler extends AbstractHandler
4128
{
42-
JsonHandler _jsonHandler=new JsonHandler();
29+
JsonHandler _jsonHandler= JsonHandler.createJsonHandler();
4330
PlainTextHandler _plainHandler=new PlainTextHandler();
4431

4532
public PathHandler()
@@ -57,13 +44,15 @@ public void setServer(Server server)
5744
}
5845

5946
@Override
60-
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
61-
{
62-
if ("/plaintext".equals(target))
63-
_plainHandler.handle(target,baseRequest,request,response);
64-
else if ("/json".equals(target))
65-
_jsonHandler.handle(target,baseRequest,request,response);
47+
public boolean handle(Request request, Response response, Callback callback) {
48+
String uri = request.getHttpURI().getPath();
49+
50+
if ("/plaintext".equals(uri))
51+
return _plainHandler.handle(request,response,callback);
52+
else if ("/json".equals(uri))
53+
return _jsonHandler.handle(request,response,callback);
54+
else
55+
return false;
6656
}
67-
6857
}
6958
}
Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,41 @@
11
package hello.handler;
22

3-
import java.io.IOException;
4-
import java.util.Collections;
5-
import java.util.Map;
6-
7-
import javax.servlet.ServletException;
8-
import javax.servlet.http.HttpServletRequest;
9-
import javax.servlet.http.HttpServletResponse;
10-
113
import org.eclipse.jetty.http.HttpField;
12-
import org.eclipse.jetty.http.HttpHeader;
13-
import org.eclipse.jetty.http.PreEncodedHttpField;
144
import org.eclipse.jetty.server.Request;
5+
import org.eclipse.jetty.server.Response;
156
import org.eclipse.jetty.server.handler.AbstractHandler;
16-
import org.eclipse.jetty.util.ajax.JSON;
7+
import org.eclipse.jetty.util.Callback;
178

9+
import java.nio.ByteBuffer;
10+
import java.nio.charset.StandardCharsets;
1811

1912

20-
public class JsonHandler extends AbstractHandler
21-
{
22-
private JSON json = new JSON();
23-
HttpField contentType = new PreEncodedHttpField(HttpHeader.CONTENT_TYPE,"application/json");
13+
public class JsonHandler extends AbstractHandler {
2414

25-
@Override
26-
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
27-
{
28-
baseRequest.setHandled(true);
29-
baseRequest.getResponse().getHttpFields().add(contentType);
30-
Map<String,String> map = Collections.singletonMap("message","Hello, World!");
31-
json.append(response.getWriter(),map);
15+
private static final HttpField JSON_HEADER = new HttpField("Content-Type", "application/json");
16+
private static final String JSON_RESPONSE = "{\"message\": \"hello, world!\"}";
17+
18+
private JsonHandler() {
3219
}
3320

34-
}
21+
public static JsonHandler createJsonHandler() {
22+
return new JsonHandler();
23+
}
24+
25+
@Override
26+
public boolean handle(Request request, Response response, Callback callback) {
27+
try {
28+
response.setStatus(200);
29+
response.getHeaders().add(JSON_HEADER);
30+
31+
byte[] contentBytes = JSON_RESPONSE.getBytes(StandardCharsets.UTF_8);
32+
ByteBuffer contentBuffer = ByteBuffer.wrap(contentBytes);
33+
response.getHeaders().put("Content-Length", String.valueOf(contentBytes.length));
34+
35+
response.write(true, contentBuffer, callback);
36+
} catch (Exception e) {
37+
callback.failed(e);
38+
}
39+
return true;
40+
}
41+
}
Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,35 @@
11
package hello.handler;
22

3-
import java.io.IOException;
4-
import java.nio.ByteBuffer;
5-
import java.nio.charset.StandardCharsets;
6-
7-
import javax.servlet.ServletException;
8-
import javax.servlet.http.HttpServletRequest;
9-
import javax.servlet.http.HttpServletResponse;
10-
113
import org.eclipse.jetty.http.HttpField;
124
import org.eclipse.jetty.http.HttpHeader;
135
import org.eclipse.jetty.http.MimeTypes;
146
import org.eclipse.jetty.http.PreEncodedHttpField;
157
import org.eclipse.jetty.server.Request;
8+
import org.eclipse.jetty.server.Response;
169
import org.eclipse.jetty.server.handler.AbstractHandler;
17-
import org.eclipse.jetty.util.BufferUtil;
10+
import org.eclipse.jetty.util.Callback;
1811

19-
public class PlainTextHandler extends AbstractHandler
20-
{
21-
ByteBuffer helloWorld = BufferUtil.toBuffer("Hello, World!");
22-
HttpField contentType = new PreEncodedHttpField(HttpHeader.CONTENT_TYPE,MimeTypes.Type.TEXT_PLAIN.asString());
12+
import java.nio.ByteBuffer;
13+
import java.nio.charset.StandardCharsets;
14+
15+
public class PlainTextHandler extends AbstractHandler {
16+
private static final String RESPONSE_BODY = "Hello, World!";
17+
private static final HttpField contentType = new PreEncodedHttpField(HttpHeader.CONTENT_TYPE, MimeTypes.Type.TEXT_PLAIN.asString());
2318

2419
@Override
25-
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
26-
{
27-
baseRequest.setHandled(true);
28-
baseRequest.getResponse().getHttpFields().add(contentType);
29-
baseRequest.getResponse().getHttpOutput().sendContent(helloWorld.slice());
20+
public boolean handle(Request request, Response response, Callback callback) {
21+
try {
22+
response.setStatus(200);
23+
response.getHeaders().put(contentType);
24+
25+
byte[] contentBytes = RESPONSE_BODY.getBytes(StandardCharsets.UTF_8);
26+
ByteBuffer contentBuffer = ByteBuffer.wrap(contentBytes);
27+
response.getHeaders().put("Content-Length", String.valueOf(contentBytes.length));
28+
29+
response.write(true, contentBuffer, callback);
30+
} catch (Exception e) {
31+
callback.failed(e);
32+
}
33+
return true;
3034
}
3135
}

frameworks/Java/jetty/src/main/java/hello/servlet/HelloWebServerServlet.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package hello.servlet;
22

3+
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
34
import org.eclipse.jetty.server.HttpConfiguration;
45
import org.eclipse.jetty.server.HttpConnectionFactory;
56
import org.eclipse.jetty.server.Server;
67
import org.eclipse.jetty.server.ServerConnector;
7-
import org.eclipse.jetty.servlet.ServletContextHandler;
88

99

1010
/**
@@ -26,7 +26,7 @@ public static void main(String[] args) throws Exception
2626
context.setContextPath("/");
2727
server.setHandler(context);
2828

29-
context.addServlet(org.eclipse.jetty.servlet.DefaultServlet.class,"/");
29+
context.addServlet(org.eclipse.jetty.ee10.servlet.DefaultServlet.class,"/");
3030
context.addServlet(JsonServlet.class,"/json");
3131
context.addServlet(PlaintextServlet.class,"/plaintext");
3232

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,28 @@
11
package hello.servlet;
22

3+
import jakarta.servlet.GenericServlet;
4+
import jakarta.servlet.ServletRequest;
5+
import jakarta.servlet.ServletResponse;
6+
import jakarta.servlet.http.HttpServletResponse;
7+
import org.eclipse.jetty.util.ajax.JSON;
8+
39
import java.io.IOException;
410
import java.util.Collections;
511
import java.util.Map;
612

7-
import javax.servlet.GenericServlet;
8-
import javax.servlet.ServletException;
9-
import javax.servlet.ServletRequest;
10-
import javax.servlet.ServletResponse;
11-
import javax.servlet.http.HttpServletResponse;
12-
13-
import org.eclipse.jetty.util.ajax.JSON;
14-
1513

1614

1715
public class JsonServlet extends GenericServlet
1816
{
19-
private JSON json = new JSON();
17+
private final JSON json = new JSON();
2018

2119
@Override
22-
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
20+
public void service(ServletRequest req, ServletResponse res) throws IOException
2321
{
2422
HttpServletResponse response= (HttpServletResponse)res;
2523
response.setContentType("application/json");
2624
Map<String,String> map = Collections.singletonMap("message","Hello, World!");
2725

2826
json.append(response.getWriter(),map);
2927
}
30-
3128
}

frameworks/Java/jetty/src/main/java/hello/servlet/PlaintextServlet.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,19 @@
11
package hello.servlet;
22

3+
import jakarta.servlet.GenericServlet;
4+
import jakarta.servlet.ServletRequest;
5+
import jakarta.servlet.ServletResponse;
6+
import jakarta.servlet.http.HttpServletResponse;
7+
import org.eclipse.jetty.http.MimeTypes;
8+
39
import java.io.IOException;
410
import java.nio.charset.StandardCharsets;
5-
import java.util.Collections;
6-
import java.util.Map;
7-
8-
import javax.activation.MimeType;
9-
import javax.servlet.GenericServlet;
10-
import javax.servlet.ServletException;
11-
import javax.servlet.ServletRequest;
12-
import javax.servlet.ServletResponse;
13-
import javax.servlet.http.HttpServletRequest;
14-
import javax.servlet.http.HttpServletResponse;
15-
16-
import org.eclipse.jetty.http.MimeTypes;
1711

1812
public class PlaintextServlet extends GenericServlet
1913
{
2014
byte[] helloWorld = "Hello, World!".getBytes(StandardCharsets.ISO_8859_1);
2115
@Override
22-
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
16+
public void service(ServletRequest req, ServletResponse res) throws IOException
2317
{
2418
HttpServletResponse response= (HttpServletResponse)res;
2519
response.setContentType(MimeTypes.Type.TEXT_PLAIN.asString());

0 commit comments

Comments
 (0)