Skip to content

Commit 1c0c19c

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

File tree

34 files changed

+165
-113
lines changed

34 files changed

+165
-113
lines changed

activemq-amqp/pom.xml

Lines changed: 1 addition & 1 deletion
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

Lines changed: 22 additions & 4 deletions
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>
@@ -121,13 +121,31 @@
121121
</dependency>
122122
<dependency>
123123
<groupId>org.eclipse.jetty.websocket</groupId>
124-
<artifactId>websocket-jetty-client</artifactId>
124+
<artifactId>jetty-websocket-core-client</artifactId>
125125
<scope>provided</scope>
126126
<optional>true</optional>
127127
</dependency>
128+
<dependency>
129+
<groupId>org.eclipse.jetty.websocket</groupId>
130+
<artifactId>jetty-websocket-jetty-client</artifactId>
131+
<scope>provided</scope>
132+
<optional>true</optional>
133+
</dependency>
128134
<dependency>
129135
<groupId>org.eclipse.jetty.websocket</groupId>
130-
<artifactId>websocket-jetty-server</artifactId>
136+
<artifactId>jetty-websocket-jetty-api</artifactId>
137+
<scope>provided</scope>
138+
<optional>true</optional>
139+
</dependency>
140+
<dependency>
141+
<groupId>org.eclipse.jetty.ee9.websocket</groupId>
142+
<artifactId>jetty-ee9-websocket-jakarta-client</artifactId>
143+
<scope>provided</scope>
144+
<optional>true</optional>
145+
</dependency>
146+
<dependency>
147+
<groupId>org.eclipse.jetty.ee9.websocket</groupId>
148+
<artifactId>jetty-ee9-websocket-jetty-server</artifactId>
131149
<scope>provided</scope>
132150
<optional>true</optional>
133151
</dependency>

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

Lines changed: 15 additions & 11 deletions
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 8 additions & 7 deletions
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

Lines changed: 4 additions & 4 deletions
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

Lines changed: 4 additions & 4 deletions
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

Lines changed: 8 additions & 7 deletions
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 renamed to activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty12/MQTTSocket.java

Lines changed: 3 additions & 3 deletions
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 renamed to activemq-http/src/main/java/org/apache/activemq/transport/ws/jetty12/StompSocket.java

Lines changed: 3 additions & 3 deletions
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

0 commit comments

Comments
 (0)