This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/main by this push:
new 8abb11abab CXF-8717: Migration path for Jetty 11 (#997)
8abb11abab is described below
commit 8abb11abab186d2a76fafb41ab610f3c292d5fa8
Author: Andriy Redko <[email protected]>
AuthorDate: Thu Oct 6 21:32:05 2022 -0400
CXF-8717: Migration path for Jetty 11 (#997)
---
distribution/javadoc/pom.xml | 19 ++---
.../cxf/transport/http_jetty/JettyHTTPHandler.java | 5 ++
.../http_jetty/JettyHTTPServerEngine.java | 2 +-
rt/transports/pom.xml | 12 +--
rt/transports/websocket/pom.xml | 5 ++
.../websocket/WebSocketDestinationFactory.java | 8 +-
.../websocket/jetty/JettyWebSocketHandler.java | 52 ------------
.../Jetty11WebSocketDestination.java} | 97 +++++++++-------------
.../{jetty9 => jetty11}/JettyWebSocketHandler.java | 24 ++++--
.../jetty/JettyWebSocketDestinationTest.java | 5 +-
.../jaxrs/servlet/jetty/AbstractJettyServer.java | 2 +
11 files changed, 82 insertions(+), 149 deletions(-)
diff --git a/distribution/javadoc/pom.xml b/distribution/javadoc/pom.xml
index a9041e5711..b354e591cd 100644
--- a/distribution/javadoc/pom.xml
+++ b/distribution/javadoc/pom.xml
@@ -145,6 +145,11 @@
<artifactId>cxf-rt-ws-transfer</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-websocket</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
@@ -712,18 +717,4 @@
</plugins>
</pluginManagement>
</build>
- <profiles>
- <!-- TODO: This profile includes modules which are still on 'javax.*'
namespace and
- are not migrated to Jakarta -->
- <profile>
- <id>javax</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-websocket</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
- </profile>
- </profiles>
</project>
diff --git
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPHandler.java
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPHandler.java
index 8e4f7a55dd..e4f54d08e0 100644
---
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPHandler.java
+++
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPHandler.java
@@ -28,6 +28,7 @@ import org.apache.cxf.Bus;
import org.apache.cxf.transport.http.HttpUrlUtil;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.ContextHandler;
public class JettyHTTPHandler extends AbstractHandler {
private static final String METHOD_TRACE = "TRACE";
@@ -81,6 +82,10 @@ public class JettyHTTPHandler extends AbstractHandler {
}
}
+
+ public ContextHandler createContextHandler() {
+ return new ContextHandler();
+ }
public Bus getBus() {
return jettyHTTPDestination != null ? jettyHTTPDestination.getBus() :
bus;
diff --git
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
index a184d56b2c..be513a6838 100644
---
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
+++
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
@@ -490,7 +490,7 @@ public class JettyHTTPServerEngine implements ServerEngine,
HttpServerEngineSupp
}
String contextName = HttpUriMapper.getContextName(url.getPath());
- ContextHandler context = new ContextHandler();
+ ContextHandler context = handler.createContextHandler();
context.setContextPath(contextName);
// bind the jetty http handler with the context handler
if (isSessionSupport) {
diff --git a/rt/transports/pom.xml b/rt/transports/pom.xml
index 615dc72e01..58deb3efd2 100644
--- a/rt/transports/pom.xml
+++ b/rt/transports/pom.xml
@@ -40,16 +40,6 @@
<module>http-netty/netty-client</module>
<module>udp</module>
<module>jms</module>
+ <module>websocket</module>
</modules>
-
- <profiles>
- <!-- TODO: This profile includes modules which are still on 'javax.*'
namespace and
- are not migrated to Jakarta -->
- <profile>
- <id>javax</id>
- <modules>
- <module>websocket</module>
- </modules>
- </profile>
- </profiles>
</project>
diff --git a/rt/transports/websocket/pom.xml b/rt/transports/websocket/pom.xml
index b57f19c1c7..c6a44b4a27 100644
--- a/rt/transports/websocket/pom.xml
+++ b/rt/transports/websocket/pom.xml
@@ -131,6 +131,11 @@
<artifactId>jetty-http</artifactId>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty.websocket</groupId>
+ <artifactId>websocket-jetty-server</artifactId>
+ <version>${cxf.jetty11.version}</version>
+ </dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-jakarta-server</artifactId>
diff --git
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/WebSocketDestinationFactory.java
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/WebSocketDestinationFactory.java
index 05a059a4a5..4126f0d4ad 100644
---
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/WebSocketDestinationFactory.java
+++
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/WebSocketDestinationFactory.java
@@ -43,8 +43,8 @@ public class WebSocketDestinationFactory implements
HttpDestinationFactory {
probeClass("org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory");
private static final boolean UNDERTOW_AVAILABLE =
probeClass("org.apache.cxf.transport.http_undertow.UndertowHTTPServerEngineFactory");
- private static final Constructor<?> JETTY9_WEBSOCKET_DESTINATION_CTR =
-
probeConstructor("org.apache.cxf.transport.websocket.jetty9.Jetty9WebSocketDestination");
+ private static final Constructor<?> JETTY11_WEBSOCKET_DESTINATION_CTR =
+
probeConstructor("org.apache.cxf.transport.websocket.jetty11.Jetty11WebSocketDestination");
private static final Constructor<?> UNDERTOW_WEBSOCKET_DESTINATION_CTR =
probeUndertowConstructor("org.apache.cxf.transport.websocket.undertow.UndertowWebSocketDestination");
private static final Constructor<?>
ATMOSPHERE_WEBSOCKET_JETTY_DESTINATION_CTR =
@@ -110,7 +110,7 @@ public class WebSocketDestinationFactory implements
HttpDestinationFactory {
// for the embedded mode, we stick to jetty if jetty is available
JettyHTTPServerEngineFactory serverEngineFactory = bus
.getExtension(JettyHTTPServerEngineFactory.class);
- return
createJettyHTTPDestination(JETTY9_WEBSOCKET_DESTINATION_CTR, bus, registry,
+ return
createJettyHTTPDestination(JETTY11_WEBSOCKET_DESTINATION_CTR, bus, registry,
endpointInfo,
serverEngineFactory);
} else if (UNDERTOW_AVAILABLE) {
// use UndertowWebSocketDestination
@@ -132,7 +132,7 @@ public class WebSocketDestinationFactory implements
HttpDestinationFactory {
endpointInfo.getAddress());
}
// use jetty-websocket
- return createJettyHTTPDestination(JETTY9_WEBSOCKET_DESTINATION_CTR,
bus, registry,
+ return createJettyHTTPDestination(JETTY11_WEBSOCKET_DESTINATION_CTR,
bus, registry,
endpointInfo, null);
}
diff --git
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketHandler.java
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketHandler.java
deleted file mode 100644
index 66bbb4c3ed..0000000000
---
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.transport.websocket.jetty;
-
-import java.io.IOException;
-
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import org.apache.cxf.transport.http_jetty.JettyHTTPDestination;
-import org.apache.cxf.transport.http_jetty.JettyHTTPHandler;
-import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.websocket.server.WebSocketServerFactory;
-
-/**
- * The extended version of JettyHTTPHandler that can support websocket.
- */
-class JettyWebSocketHandler extends JettyHTTPHandler {
- private WebSocketServerFactory webSocketFactory;
-
- JettyWebSocketHandler(JettyHTTPDestination jhd, boolean cmExact,
- WebSocketServerFactory webSocketFactory) {
- super(jhd, cmExact);
- this.webSocketFactory = webSocketFactory;
- }
-
- @Override
- public void handle(String target, Request baseRequest, HttpServletRequest
request,
- HttpServletResponse response) throws IOException,
ServletException {
- if (webSocketFactory.acceptWebSocket(request, response)) {
- baseRequest.setHandled(true);
- } else {
- super.handle(target, baseRequest, request, response);
- }
- }
-}
diff --git
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty9/Jetty9WebSocketDestination.java
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty11/Jetty11WebSocketDestination.java
similarity index 79%
rename from
rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty9/Jetty9WebSocketDestination.java
rename to
rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty11/Jetty11WebSocketDestination.java
index 86b4e2b737..37a63b3631 100644
---
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty9/Jetty9WebSocketDestination.java
+++
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty11/Jetty11WebSocketDestination.java
@@ -17,17 +17,17 @@
* under the License.
*/
-package org.apache.cxf.transport.websocket.jetty9;
+package org.apache.cxf.transport.websocket.jetty11;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
+import java.net.InetSocketAddress;
import java.net.URL;
import java.nio.ByteBuffer;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Locale;
-import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionException;
import java.util.logging.Level;
@@ -57,30 +57,28 @@ import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.websocket.api.Session;
+import org.eclipse.jetty.websocket.api.UpgradeRequest;
import org.eclipse.jetty.websocket.api.WebSocketAdapter;
-import org.eclipse.jetty.websocket.server.WebSocketHandler;
-import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest;
-import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse;
-import org.eclipse.jetty.websocket.servlet.WebSocketCreator;
-import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
+import org.eclipse.jetty.websocket.server.JettyServerUpgradeRequest;
+import org.eclipse.jetty.websocket.server.JettyServerUpgradeResponse;
+import org.eclipse.jetty.websocket.server.JettyWebSocketCreator;
+import org.eclipse.jetty.websocket.server.JettyWebSocketServerContainer;
/**
*
*/
-public class Jetty9WebSocketDestination extends JettyHTTPDestination implements
+public class Jetty11WebSocketDestination extends JettyHTTPDestination
implements
WebSocketDestinationService {
- private static final Logger LOG =
LogUtils.getL7dLogger(Jetty9WebSocketDestination.class);
+ private static final Logger LOG =
LogUtils.getL7dLogger(Jetty11WebSocketDestination.class);
//REVISIT make these keys configurable
private static final String REQUEST_ID_KEY =
WebSocketConstants.DEFAULT_REQUEST_ID_KEY;
private static final String RESPONSE_ID_KEY =
WebSocketConstants.DEFAULT_RESPONSE_ID_KEY;
private final Executor executor;
+ private JettyWebSocketServerContainer webSocketServerContainer;
- private WebSocketHandler webSockethandler;
- private WebSocketServletFactory webSocketFactory;
-
- public Jetty9WebSocketDestination(Bus bus, DestinationRegistry registry,
EndpointInfo ei,
+ public Jetty11WebSocketDestination(Bus bus, DestinationRegistry registry,
EndpointInfo ei,
JettyHTTPServerEngineFactory
serverEngineFactory) throws IOException {
super(bus, registry, ei,
serverEngineFactory == null ? null : new
URL(getNonWSAddress(ei)),
@@ -98,10 +96,10 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
final HttpServletRequest request,
final HttpServletResponse response) throws IOException {
- WebSocketServletFactory wsf = getWebSocketFactory(config, context);
+ JettyWebSocketServerContainer wssc = getWebSocketContainer(context);
+ JettyWebSocketCreator creator = getCreator();
- if (wsf.isUpgradeRequest(request, response)
- && wsf.acceptWebSocket(request, response)) {
+ if (wssc.upgrade(creator, request, response)) {
((Request)request).setHandled(true);
return;
}
@@ -125,32 +123,20 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
ContextHandler h = c.getContextHandler();
return h.getServer();
}
-
- private WebSocketServletFactory getWebSocketFactory(ServletConfig config,
ServletContext context) {
- if (webSocketFactory == null) {
- Server server = getServer(config, context);
- return getWebSocketFactory(server);
- }
- return webSocketFactory;
+
+ public JettyWebSocketCreator getCreator() {
+ return new Creator();
}
- public synchronized WebSocketServletFactory getWebSocketFactory(Server
server) {
- if (webSocketFactory == null) {
- webSockethandler = new WebSocketHandler() {
- @Override
- public void configure(WebSocketServletFactory factory) {
- }
- };
- try {
- webSockethandler.setServer(server);
- webSockethandler.start();
- } catch (Exception e) {
- e.printStackTrace();
+ public synchronized JettyWebSocketServerContainer
getWebSocketContainer(ServletContext context) {
+ if (webSocketServerContainer == null) {
+ webSocketServerContainer =
JettyWebSocketServerContainer.getContainer(context);
+ if (webSocketServerContainer == null) {
+ webSocketServerContainer =
JettyWebSocketServerContainer.ensureContainer(context);
}
- webSocketFactory = webSockethandler.getWebSocketFactory();
- webSocketFactory.setCreator(new Creator());
+ return webSocketServerContainer;
}
- return webSocketFactory;
+ return webSocketServerContainer;
}
@Override
@@ -160,11 +146,6 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
@Override
public void shutdown() {
- try {
- webSockethandler.stop();
- } catch (Exception e) {
- //nothing needed
- }
super.shutdown();
}
@@ -178,7 +159,7 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
public void run() {
HttpServletResponse response = null;
try {
- WebSocketServletHolder holder = new
Jetty9WebSocketHolder(session);
+ WebSocketServletHolder holder = new
Jetty11WebSocketHolder(session);
response = createServletResponse(holder);
HttpServletRequest request = createServletRequest(data,
offset, length, holder, session);
String reqid = request.getHeader(REQUEST_ID_KEY);
@@ -232,10 +213,10 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
}
// hide this jetty9 interface here to avoid CNFE on WebSocketCreator
- private class Creator implements WebSocketCreator {
+ private class Creator implements JettyWebSocketCreator {
@Override
- public Object createWebSocket(ServletUpgradeRequest req,
ServletUpgradeResponse resp) {
+ public Object createWebSocket(JettyServerUpgradeRequest req,
JettyServerUpgradeResponse resp) {
return new WebSocketAdapter() {
Session session;
@Override
@@ -262,16 +243,16 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
}
- class Jetty9WebSocketHolder implements WebSocketServletHolder {
+ class Jetty11WebSocketHolder implements WebSocketServletHolder {
final Session session;
- Jetty9WebSocketHolder(Session s) {
+ Jetty11WebSocketHolder(Session s) {
session = s;
}
public String getAuthType() {
return null;
}
public String getContextPath() {
- return
((ServletUpgradeRequest)session.getUpgradeRequest()).getHttpServletRequest().getContextPath();
+ return
getHttpServletRequest(session.getUpgradeRequest()).getContextPath();
}
public String getLocalAddr() {
return null;
@@ -331,21 +312,25 @@ public class Jetty9WebSocketDestination extends
JettyHTTPDestination implements
return null;
}
public int getServerPort() {
- return session.getLocalAddress().getPort();
+ return ((InetSocketAddress)session.getLocalAddress()).getPort();
}
public Principal getUserPrincipal() {
return null;
}
public Object getAttribute(String name) {
- return
((ServletUpgradeRequest)session.getUpgradeRequest()).getHttpServletRequest().getAttribute(name);
+ final UpgradeRequest upgradeRequest = session.getUpgradeRequest();
+ return getHttpServletRequest(upgradeRequest).getAttribute(name);
}
@Override
public void write(byte[] data, int offset, int length) throws
IOException {
- try {
- session.getRemote().sendBytesByFuture(ByteBuffer.wrap(data,
offset, length)).get();
- } catch (InterruptedException | ExecutionException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ session.getRemote().sendBytes(ByteBuffer.wrap(data, offset,
length));
+ }
+
+ private HttpServletRequest getHttpServletRequest(final UpgradeRequest
upgradeRequest) {
+ if (upgradeRequest instanceof JettyServerUpgradeRequest) {
+ return
((JettyServerUpgradeRequest)upgradeRequest).getHttpServletRequest();
+ } else {
+ throw new IllegalStateException("Unsupported upgrade request
class: " + upgradeRequest.getClass());
}
}
}
diff --git
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty9/JettyWebSocketHandler.java
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty11/JettyWebSocketHandler.java
similarity index 66%
rename from
rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty9/JettyWebSocketHandler.java
rename to
rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty11/JettyWebSocketHandler.java
index f08e3ea6a1..a2d6c9f4a2 100644
---
a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty9/JettyWebSocketHandler.java
+++
b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty11/JettyWebSocketHandler.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.transport.websocket.jetty9;
+package org.apache.cxf.transport.websocket.jetty11;
import java.io.IOException;
@@ -26,24 +26,27 @@ import jakarta.servlet.http.HttpServletResponse;
import org.apache.cxf.transport.http_jetty.JettyHTTPDestination;
import org.apache.cxf.transport.http_jetty.JettyHTTPHandler;
import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
+import org.eclipse.jetty.server.handler.ContextHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.websocket.server.JettyWebSocketServerContainer;
+import
org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer;
/**
* The extended version of JettyHTTPHandler that can support websocket.
*/
class JettyWebSocketHandler extends JettyHTTPHandler {
- final Jetty9WebSocketDestination webSocketDestination;
- WebSocketServletFactory webSocketFactory;
+ final Jetty11WebSocketDestination webSocketDestination;
+ JettyWebSocketServerContainer webSocketContainer;
JettyWebSocketHandler(JettyHTTPDestination jhd, boolean cmExact,
- Jetty9WebSocketDestination wsd) {
+ Jetty11WebSocketDestination wsd) {
super(jhd, cmExact);
this.webSocketDestination = wsd;
}
@Override
public void doStart() throws Exception {
- webSocketFactory =
webSocketDestination.getWebSocketFactory(this.getServer());
+ webSocketContainer =
webSocketDestination.getWebSocketContainer(getServletContext());
super.doStart();
}
@@ -54,12 +57,17 @@ class JettyWebSocketHandler extends JettyHTTPHandler {
HttpServletResponse response)
throws IOException, ServletException {
- if (webSocketFactory.isUpgradeRequest(request, response)
- && webSocketFactory.acceptWebSocket(request, response)) {
+ if (webSocketContainer.upgrade(webSocketDestination.getCreator(),
request, response)) {
baseRequest.setHandled(true);
return;
}
super.handle(target, baseRequest, request, response);
}
+ @Override
+ public ContextHandler createContextHandler() {
+ final ServletContextHandler handler = new ServletContextHandler();
+ JettyWebSocketServletContainerInitializer.configure(handler, null);
+ return handler;
+ }
}
diff --git
a/rt/transports/websocket/src/test/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketDestinationTest.java
b/rt/transports/websocket/src/test/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketDestinationTest.java
index 711d7d7253..b04bc323ba 100644
---
a/rt/transports/websocket/src/test/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketDestinationTest.java
+++
b/rt/transports/websocket/src/test/java/org/apache/cxf/transport/websocket/jetty/JettyWebSocketDestinationTest.java
@@ -30,8 +30,7 @@ import org.apache.cxf.transport.http.DestinationRegistry;
import org.apache.cxf.transport.http.HTTPTransportFactory;
import org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine;
import org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory;
-import org.apache.cxf.transport.websocket.jetty9.Jetty9WebSocketDestination;
-
+import org.apache.cxf.transport.websocket.jetty11.Jetty11WebSocketDestination;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.junit.Before;
@@ -76,7 +75,7 @@ public class JettyWebSocketDestinationTest {
assertNull(registry.getDestinationForPath(ENDPOINT_ADDRESS));
}
- private static class TestJettyWebSocketDestination extends
Jetty9WebSocketDestination {
+ private static class TestJettyWebSocketDestination extends
Jetty11WebSocketDestination {
TestJettyWebSocketDestination(Bus bus, DestinationRegistry registry,
EndpointInfo ei,
JettyHTTPServerEngineFactory
serverEngineFactory,
JettyHTTPServerEngine engine) throws
IOException {
diff --git
a/systests/rs-http-sci/src/test/java/org/apache/cxf/jaxrs/servlet/jetty/AbstractJettyServer.java
b/systests/rs-http-sci/src/test/java/org/apache/cxf/jaxrs/servlet/jetty/AbstractJettyServer.java
index a739ab7222..0b50353f13 100644
---
a/systests/rs-http-sci/src/test/java/org/apache/cxf/jaxrs/servlet/jetty/AbstractJettyServer.java
+++
b/systests/rs-http-sci/src/test/java/org/apache/cxf/jaxrs/servlet/jetty/AbstractJettyServer.java
@@ -24,6 +24,7 @@ import org.eclipse.jetty.annotations.AnnotationConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.webapp.Configuration;
+import org.eclipse.jetty.webapp.WebAppConfiguration;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.webapp.WebXmlConfiguration;
@@ -50,6 +51,7 @@ public abstract class AbstractJettyServer extends
AbstractBusTestServerBase {
context.setClassLoader(Thread.currentThread().getContextClassLoader());
context.setConfigurations(new Configuration[] {
new WebXmlConfiguration(),
+ new WebAppConfiguration(),
new AnnotationConfiguration()
});