Skip to content

Commit 93cd60b

Browse files
committed
[AMQ-9359] Jetty-12 conversion
1 parent bb4c8aa commit 93cd60b

File tree

20 files changed

+109
-74
lines changed

20 files changed

+109
-74
lines changed

activemq-amqp/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
</dependency>
115115
<dependency>
116116
<groupId>org.eclipse.jetty.websocket</groupId>
117-
<artifactId>websocket-jetty-server</artifactId>
117+
<artifactId>jetty-websocket-jetty-server</artifactId>
118118
<scope>test</scope>
119119
</dependency>
120120
<dependency>

activemq-http/pom.xml

+6-6
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@
6565
<artifactId>jetty-xml</artifactId>
6666
</dependency>
6767
<dependency>
68-
<groupId>org.eclipse.jetty</groupId>
69-
<artifactId>jetty-webapp</artifactId>
68+
<groupId>org.eclipse.jetty.ee9</groupId>
69+
<artifactId>jetty-ee9-webapp</artifactId>
7070
</dependency>
7171
<dependency>
7272
<groupId>org.apache.httpcomponents</groupId>
@@ -120,14 +120,14 @@
120120
<scope>test</scope>
121121
</dependency>
122122
<dependency>
123-
<groupId>org.eclipse.jetty.websocket</groupId>
124-
<artifactId>websocket-jetty-client</artifactId>
123+
<groupId>org.eclipse.jetty.ee9.websocket</groupId>
124+
<artifactId>jetty-ee9-websocket-jakarta-client</artifactId>
125125
<scope>provided</scope>
126126
<optional>true</optional>
127127
</dependency>
128128
<dependency>
129-
<groupId>org.eclipse.jetty.websocket</groupId>
130-
<artifactId>websocket-jetty-server</artifactId>
129+
<groupId>org.eclipse.jetty.ee9.websocket</groupId>
130+
<artifactId>jetty-ee9-websocket-jetty-server</artifactId>
131131
<scope>provided</scope>
132132
<optional>true</optional>
133133
</dependency>

activemq-http/src/main/java/org/apache/activemq/transport/WebTransportServerSupport.java

+15-11
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@
2121
import java.net.URI;
2222
import java.util.Map;
2323

24-
import org.apache.activemq.transport.http.BlockingQueueTransport;
2524
import org.apache.activemq.util.InetAddressUtil;
2625
import org.apache.activemq.util.IntrospectionSupport;
27-
import org.eclipse.jetty.security.ConstraintMapping;
28-
import org.eclipse.jetty.security.ConstraintSecurityHandler;
26+
import org.eclipse.jetty.ee9.nested.ServletConstraint;
27+
import org.eclipse.jetty.ee9.security.ConstraintMapping;
28+
import org.eclipse.jetty.ee9.security.ConstraintSecurityHandler;
2929
import org.eclipse.jetty.server.Connector;
3030
import org.eclipse.jetty.server.Server;
31-
import org.eclipse.jetty.util.resource.Resource;
32-
import org.eclipse.jetty.util.security.Constraint;
31+
import org.eclipse.jetty.util.resource.ResourceFactory;
3332
import org.eclipse.jetty.xml.XmlConfiguration;
3433
import org.slf4j.Logger;
3534
import org.slf4j.LoggerFactory;
@@ -57,13 +56,13 @@ private <T> void setConnectorProperty(String name, Class<T> type, T value) throw
5756
protected void createServer() {
5857
LOG.info("Starting Jetty server");
5958
if (jettyOptions.getConfig() != null) {
60-
try {
59+
try (ResourceFactory.Closeable resourceFactory = ResourceFactory.closeable()) {
6160
LOG.info("Configuring Jetty server using {}", jettyOptions.getConfig());
6261
File file = new File(jettyOptions.getConfig());
6362
if (!file.exists()) {
6463
throw new IllegalArgumentException("Jetty XML not found: " + file.getAbsolutePath());
6564
}
66-
XmlConfiguration xmlConfiguration = new XmlConfiguration(Resource.newResource(file));
65+
XmlConfiguration xmlConfiguration = new XmlConfiguration(resourceFactory.newResource(file.getPath()));
6766
server = (Server) xmlConfiguration.configure();
6867
} catch (Throwable t) {
6968
throw new IllegalStateException("Jetty configuration can't be loaded", t);
@@ -111,12 +110,17 @@ public URI bind() throws Exception {
111110

112111
protected void configureTraceMethod(ConstraintSecurityHandler securityHandler,
113112
boolean enableTrace) {
114-
Constraint constraint = new Constraint();
115-
constraint.setName("trace-security");
113+
114+
ServletConstraint servletConstraint;
116115
//If enableTrace is true, then we want to set authenticate to false to allow it
117-
constraint.setAuthenticate(!enableTrace);
116+
if(enableTrace) {
117+
servletConstraint = new ServletConstraint("trace-security", ServletConstraint.ANY_AUTH);
118+
} else {
119+
servletConstraint = new ServletConstraint("trace-security", ServletConstraint.ANY_ROLE);
120+
}
121+
118122
ConstraintMapping mapping = new ConstraintMapping();
119-
mapping.setConstraint(constraint);
123+
mapping.setConstraint(servletConstraint);
120124
mapping.setMethod("TRACE");
121125
mapping.setPathSpec("/");
122126
securityHandler.addConstraintMapping(mapping);

activemq-http/src/main/java/org/apache/activemq/transport/discovery/http/EmbeddedJettyServer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import java.net.URI;
2020

2121
import org.eclipse.jetty.server.Server;
22-
import org.eclipse.jetty.servlet.ServletContextHandler;
23-
import org.eclipse.jetty.servlet.ServletHolder;
22+
import org.eclipse.jetty.ee9.servlet.ServletContextHandler;
23+
import org.eclipse.jetty.ee9.servlet.ServletHolder;
2424

2525
public class EmbeddedJettyServer implements org.apache.activemq.Service {
2626

activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportServer.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,15 @@
2727
import org.apache.activemq.transport.util.TextWireFormat;
2828
import org.apache.activemq.transport.xstream.XStreamWireFormat;
2929
import org.apache.activemq.util.ServiceStopper;
30-
import org.eclipse.jetty.security.ConstraintSecurityHandler;
30+
import org.eclipse.jetty.ee9.security.ConstraintSecurityHandler;
3131
import org.eclipse.jetty.server.ConnectionFactory;
3232
import org.eclipse.jetty.server.Connector;
33+
import org.eclipse.jetty.server.Handler;
3334
import org.eclipse.jetty.server.HttpConnectionFactory;
3435
import org.eclipse.jetty.server.Server;
35-
import org.eclipse.jetty.server.handler.HandlerWrapper;
36-
import org.eclipse.jetty.servlet.ServletContextHandler;
37-
import org.eclipse.jetty.servlet.ServletHolder;
36+
import org.eclipse.jetty.server.Handler.Wrapper;
37+
import org.eclipse.jetty.ee9.servlet.ServletContextHandler;
38+
import org.eclipse.jetty.ee9.servlet.ServletHolder;
3839

3940
public class HttpTransportServer extends WebTransportServerSupport {
4041

@@ -135,11 +136,11 @@ private int getConnectorLocalPort() throws Exception {
135136
}
136137

137138
private void addGzipHandler(ServletContextHandler contextHandler) throws Exception {
138-
HandlerWrapper handler = null;
139+
Handler.Wrapper handler = null;
139140
try {
140-
handler = (HandlerWrapper) forName("org.eclipse.jetty.servlets.gzip.GzipHandler").getConstructor().newInstance();
141+
handler = (Handler.Wrapper) forName("org.eclipse.jetty.servlets.gzip.GzipHandler").getConstructor().newInstance();
141142
} catch (Throwable t) {
142-
handler = (HandlerWrapper) forName("org.eclipse.jetty.server.handler.gzip.GzipHandler").getConstructor().newInstance();
143+
handler = (Handler.Wrapper) forName("org.eclipse.jetty.server.handler.gzip.GzipHandler").getConstructor().newInstance();
143144
}
144145
contextHandler.insertHandler(handler);
145146
}

activemq-http/src/main/java/org/apache/activemq/transport/ws/StompWSConnection.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525

2626
import org.apache.activemq.transport.stomp.StompFrame;
2727
import org.apache.activemq.transport.stomp.StompWireFormat;
28-
import org.eclipse.jetty.websocket.api.Session;
29-
import org.eclipse.jetty.websocket.api.WebSocketAdapter;
30-
import org.eclipse.jetty.websocket.api.WebSocketListener;
28+
import org.eclipse.jetty.ee9.websocket.api.Session;
29+
import org.eclipse.jetty.ee9.websocket.api.WebSocketAdapter;
30+
import org.eclipse.jetty.ee9.websocket.api.WebSocketListener;
3131
import org.slf4j.Logger;
3232
import org.slf4j.LoggerFactory;
3333

@@ -142,7 +142,7 @@ public void onWebSocketClose(int statusCode, String reason) {
142142
}
143143

144144
@Override
145-
public void onWebSocketConnect(org.eclipse.jetty.websocket.api.Session session) {
145+
public void onWebSocketConnect(org.eclipse.jetty.ee9.websocket.api.Session session) {
146146
this.connection = session;
147147
this.connection.setIdleTimeout(Duration.ZERO);
148148
this.connectLatch.countDown();

activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportProxy.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import org.apache.activemq.util.IntrospectionSupport;
3535
import org.apache.activemq.util.ServiceStopper;
3636
import org.apache.activemq.wireformat.WireFormat;
37-
import org.eclipse.jetty.websocket.api.Session;
38-
import org.eclipse.jetty.websocket.api.WebSocketListener;
37+
import org.eclipse.jetty.ee9.websocket.api.Session;
38+
import org.eclipse.jetty.ee9.websocket.api.WebSocketListener;
3939
import org.slf4j.Logger;
4040
import org.slf4j.LoggerFactory;
4141

@@ -222,8 +222,8 @@ public void onWebSocketConnect(Session session) {
222222
this.session.setIdleTimeout(Duration.ZERO);
223223

224224
if (wsTransport.getMaxFrameSize() > 0) {
225-
this.session.getPolicy().setMaxBinaryMessageSize(wsTransport.getMaxFrameSize());
226-
this.session.getPolicy().setMaxTextMessageSize(wsTransport.getMaxFrameSize());
225+
this.session.setMaxBinaryMessageSize(wsTransport.getMaxFrameSize());
226+
this.session.setMaxTextMessageSize(wsTransport.getMaxFrameSize());
227227
}
228228
}
229229

activemq-http/src/main/java/org/apache/activemq/transport/ws/WSTransportServer.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@
2828
import org.apache.activemq.command.BrokerInfo;
2929
import org.apache.activemq.transport.SocketConnectorFactory;
3030
import org.apache.activemq.transport.WebTransportServerSupport;
31-
import org.apache.activemq.transport.ws.jetty11.WSServlet;
31+
import org.apache.activemq.transport.ws.jetty12.WSServlet;
3232
import org.apache.activemq.util.IntrospectionSupport;
3333
import org.apache.activemq.util.ServiceStopper;
34-
import org.eclipse.jetty.security.ConstraintSecurityHandler;
3534
import org.eclipse.jetty.server.ConnectionFactory;
3635
import org.eclipse.jetty.server.Connector;
3736
import org.eclipse.jetty.server.HttpConnectionFactory;
3837
import org.eclipse.jetty.server.Server;
39-
import org.eclipse.jetty.servlet.ServletContextHandler;
40-
import org.eclipse.jetty.servlet.ServletHolder;
41-
import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer;
38+
import org.eclipse.jetty.ee9.security.ConstraintSecurityHandler;
39+
import org.eclipse.jetty.ee9.servlet.ServletContextHandler;
40+
import org.eclipse.jetty.ee9.servlet.ServletHolder;
41+
import org.eclipse.jetty.ee9.websocket.server.config.JettyWebSocketServletContainerInitializer;
4242
import org.slf4j.Logger;
4343
import org.slf4j.LoggerFactory;
4444

@@ -77,6 +77,7 @@ protected void doStart() throws Exception {
7777

7878
ServletContextHandler contextHandler =
7979
new ServletContextHandler(server, "/", ServletContextHandler.SECURITY);
80+
// server.setHandler(contextHandler); Future: Jetty 12 EE10 API change
8081

8182
ServletHolder holder = new ServletHolder();
8283
JettyWebSocketServletContainerInitializer.configure(contextHandler, null);
@@ -96,7 +97,7 @@ protected void doStart() throws Exception {
9697
contextHandler.addServlet(holder, "/");
9798

9899
contextHandler.setAttribute("acceptListener", getAcceptListener());
99-
100+
100101
server.start();
101102

102103
// Update the Connect To URI with our actual location in case the configured port
@@ -118,7 +119,7 @@ protected void doStart() throws Exception {
118119
LOG.info("Listening for connections at {}", getConnectURI());
119120
}
120121

121-
private Servlet createWSServlet() throws Exception {
122+
private WSServlet createWSServlet() throws Exception {
122123
servlet = new WSServlet();
123124
servlet.setTransportOptions(transportOptions);
124125
servlet.setBrokerService(brokerService);

activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty11/MQTTSocket.java activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty12/MQTTSocket.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.activemq.transport.ws.jetty11;
17+
package org.apache.activemq.transport.ws.jetty12;
1818

1919
import java.io.IOException;
2020
import java.nio.ByteBuffer;
@@ -26,8 +26,8 @@
2626
import org.apache.activemq.transport.ws.AbstractMQTTSocket;
2727
import org.apache.activemq.util.ByteSequence;
2828
import org.apache.activemq.util.IOExceptionSupport;
29-
import org.eclipse.jetty.websocket.api.Session;
30-
import org.eclipse.jetty.websocket.api.WebSocketListener;
29+
import org.eclipse.jetty.ee9.websocket.api.WebSocketListener;
30+
import org.eclipse.jetty.ee9.websocket.api.Session;
3131
import org.fusesource.hawtbuf.Buffer;
3232
import org.fusesource.hawtbuf.DataByteArrayInputStream;
3333
import org.fusesource.mqtt.codec.DISCONNECT;

activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty11/StompSocket.java activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty12/StompSocket.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.activemq.transport.ws.jetty11;
17+
package org.apache.activemq.transport.ws.jetty12;
1818

1919
import java.io.IOException;
2020
import java.time.Duration;
@@ -24,8 +24,8 @@
2424
import org.apache.activemq.transport.stomp.StompFrame;
2525
import org.apache.activemq.transport.ws.AbstractStompSocket;
2626
import org.apache.activemq.util.IOExceptionSupport;
27-
import org.eclipse.jetty.websocket.api.Session;
28-
import org.eclipse.jetty.websocket.api.WebSocketListener;
27+
import org.eclipse.jetty.ee9.websocket.api.Session;
28+
import org.eclipse.jetty.ee9.websocket.api.WebSocketListener;
2929
import org.slf4j.Logger;
3030
import org.slf4j.LoggerFactory;
3131

activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty11/WSServlet.java activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty12/WSServlet.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package org.apache.activemq.transport.ws.jetty11;
18+
package org.apache.activemq.transport.ws.jetty12;
1919

2020
import java.io.IOException;
2121
import java.net.URI;
@@ -38,12 +38,12 @@
3838
import org.apache.activemq.transport.TransportFactory;
3939
import org.apache.activemq.transport.util.HttpTransportUtils;
4040
import org.apache.activemq.transport.ws.WSTransportProxy;
41-
import org.eclipse.jetty.websocket.api.WebSocketListener;
42-
import org.eclipse.jetty.websocket.server.JettyServerUpgradeRequest;
43-
import org.eclipse.jetty.websocket.server.JettyServerUpgradeResponse;
44-
import org.eclipse.jetty.websocket.server.JettyWebSocketCreator;
45-
import org.eclipse.jetty.websocket.server.JettyWebSocketServlet;
46-
import org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory;
41+
import org.eclipse.jetty.ee9.websocket.api.WebSocketListener;
42+
import org.eclipse.jetty.ee9.websocket.server.JettyServerUpgradeRequest;
43+
import org.eclipse.jetty.ee9.websocket.server.JettyServerUpgradeResponse;
44+
import org.eclipse.jetty.ee9.websocket.server.JettyWebSocketCreator;
45+
import org.eclipse.jetty.ee9.websocket.server.JettyWebSocketServlet;
46+
import org.eclipse.jetty.ee9.websocket.server.JettyWebSocketServletFactory;
4747

4848
/**
4949
* Handle connection upgrade requests and creates web sockets

activemq-web-console/pom.xml

+7-2
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,11 @@
248248
</dependency>
249249

250250
<!-- web container -->
251+
<dependency>
252+
<groupId>org.eclipse.jetty.ee9</groupId>
253+
<artifactId>jetty-ee9-webapp</artifactId>
254+
<scope>test</scope>
255+
</dependency>
251256
<dependency>
252257
<groupId>org.eclipse.jetty</groupId>
253258
<artifactId>jetty-server</artifactId>
@@ -330,8 +335,8 @@
330335
</dependency>
331336

332337
<dependency>
333-
<groupId>org.eclipse.jetty</groupId>
334-
<artifactId>apache-jsp</artifactId>
338+
<groupId>org.eclipse.jetty.ee9</groupId>
339+
<artifactId>jetty-ee9-apache-jsp</artifactId>
335340
<scope>provided</scope>
336341
<exclusions>
337342
<exclusion>

activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.apache.activemq.web.config.JspConfigurer;
2121
import org.eclipse.jetty.server.Server;
2222
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
23-
import org.eclipse.jetty.webapp.WebAppContext;
23+
import org.eclipse.jetty.ee9.webapp.WebAppContext;
2424

2525
/**
2626
* A simple bootstrap class for starting Jetty in your IDE using the local web

activemq-web-demo/pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@
188188
<artifactId>jetty-server</artifactId>
189189
<scope>test</scope>
190190
</dependency>
191+
<dependency>
192+
<groupId>org.eclipse.jetty.ee9</groupId>
193+
<artifactId>jetty-ee9-webapp</artifactId>
194+
<scope>test</scope>
195+
</dependency>
191196
<dependency>
192197
<groupId>org.eclipse.jetty</groupId>
193198
<artifactId>jetty-client</artifactId>

activemq-web-demo/src/test/java/org/apache/activemq/web/JettyServer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.eclipse.jetty.server.Connector;
2323
import org.eclipse.jetty.server.Server;
2424
import org.eclipse.jetty.server.ServerConnector;
25-
import org.eclipse.jetty.webapp.WebAppContext;
25+
import org.eclipse.jetty.ee9.webapp.WebAppContext;
2626

2727
/**
2828
* A simple bootstrap class for starting Jetty in your IDE using the local web

0 commit comments

Comments
 (0)