Jakartified jetty (11.0.0.beta2)
Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/bom/pom.xml b/bom/pom.xml
index 5fcbaca..0096d6e 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -75,11 +75,6 @@
</dependency>
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
- <artifactId>jersey-jetty-connector</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-jdk-connector</artifactId>
<version>${project.version}</version>
</dependency>
@@ -90,11 +85,6 @@
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
- <artifactId>jersey-container-jetty-http</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>${project.version}</version>
</dependency>
@@ -105,11 +95,6 @@
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
- <artifactId>jersey-container-jetty-servlet</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jdk-http</artifactId>
<version>${project.version}</version>
</dependency>
@@ -370,11 +355,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-jetty</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.glassfish.jersey.test-framework</groupId>
<artifactId>jersey-test-framework-util</artifactId>
<version>${project.version}</version>
@@ -413,5 +393,33 @@
</site>
</distributionManagement>
</profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.connectors</groupId>
+ <artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-jetty-http</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-jetty-servlet</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+ <artifactId>jersey-test-framework-provider-jetty</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </profile>
</profiles>
</project>
diff --git a/connectors/jetty-connector/pom.xml b/connectors/jetty-connector/pom.xml
index fa6d9c0..9d799b6 100644
--- a/connectors/jetty-connector/pom.xml
+++ b/connectors/jetty-connector/pom.xml
@@ -41,7 +41,10 @@
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-client</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ </dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
diff --git a/connectors/jetty-connector/src/main/java/org/glassfish/jersey/jetty/connector/JettyConnector.java b/connectors/jetty-connector/src/main/java/org/glassfish/jersey/jetty/connector/JettyConnector.java
index 1c94e21..94d7ec4 100644
--- a/connectors/jetty-connector/src/main/java/org/glassfish/jersey/jetty/connector/JettyConnector.java
+++ b/connectors/jetty-connector/src/main/java/org/glassfish/jersey/jetty/connector/JettyConnector.java
@@ -23,6 +23,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.CookieStore;
+import java.net.InetSocketAddress;
import java.net.URI;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -35,16 +36,27 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.logging.Logger;
import jakarta.ws.rs.ProcessingException;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.core.Configuration;
+import jakarta.ws.rs.core.HttpHeaders;
import jakarta.ws.rs.core.MultivaluedMap;
import javax.net.ssl.SSLContext;
+import org.eclipse.jetty.client.ConnectionPool;
+import org.eclipse.jetty.client.HttpClientTransport;
+import org.eclipse.jetty.client.HttpDestination;
+import org.eclipse.jetty.client.HttpRequest;
+import org.eclipse.jetty.client.Origin;
+import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
+import org.eclipse.jetty.io.ClientConnector;
+import org.eclipse.jetty.io.Connection;
+import org.eclipse.jetty.io.EndPoint;
import org.glassfish.jersey.client.ClientProperties;
import org.glassfish.jersey.client.ClientRequest;
import org.glassfish.jersey.client.ClientResponse;
@@ -149,9 +161,12 @@
}
if (httpClient == null) {
final SSLContext sslContext = jaxrsClient.getSslContext();
- final SslContextFactory sslContextFactory = new SslContextFactory();
+ final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
sslContextFactory.setSslContext(sslContext);
- httpClient = new HttpClient(sslContextFactory);
+ final ClientConnector connector = new ClientConnector();
+ connector.setSslContextFactory(sslContextFactory);
+ final HttpClientTransport transport = new HttpClientTransportOverHTTP(connector);
+ httpClient = new HttpClient(transport);
}
this.client = httpClient;
@@ -240,6 +255,7 @@
@Override
public ClientResponse apply(final ClientRequest jerseyRequest) throws ProcessingException {
+ applyUserAgentHeader(jerseyRequest.getHeaders());
final Request jettyRequest = translateRequest(jerseyRequest);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(jerseyRequest.getHeaders(), jettyRequest);
final ContentProvider entity = getBytesProvider(jerseyRequest);
@@ -308,14 +324,34 @@
return request;
}
+ /**
+ * Re-write User-agent header set by Jetty; Jersey already sets this in its request (incl. Jetty version)
+ * it shall be propagated to Jetty client before HttpRequest instance is created.
+ * HttpRequest takes User Agent header from client then.
+ *
+ * @param headers - map of Jersey headers
+ */
+ private void applyUserAgentHeader(final MultivaluedMap<String, Object> headers) {
+ if (headers.containsKey(HttpHeaders.USER_AGENT)) {
+ final Map<String, String> stringHeaders =
+ HeaderUtils.asStringHeadersSingleValue(headers, configuration);
+ client.setUserAgentField(
+ new HttpField(HttpHeader.USER_AGENT,
+ HttpHeader.USER_AGENT.name(),
+ stringHeaders.get(HttpHeaders.USER_AGENT))
+ );
+ }
+ }
+
private Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers, final Request request) {
final Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers, configuration);
- // remove User-agent header set by Jetty; Jersey already sets this in its request (incl. Jetty version)
- request.getHeaders().remove(HttpHeader.USER_AGENT);
- for (final Map.Entry<String, String> e : stringHeaders.entrySet()) {
- request.getHeaders().add(e.getKey(), e.getValue());
- }
+ if (request instanceof HttpRequest) {
+ final HttpRequest httpRequest = (HttpRequest) request;
+ for (final Map.Entry<String, String> e : stringHeaders.entrySet()) {
+ httpRequest.addHeader(new HttpField(e.getKey(), e.getValue()));
+ }
+ }
return stringHeaders;
}
@@ -372,6 +408,7 @@
@Override
public Future<?> apply(final ClientRequest jerseyRequest, final AsyncConnectorCallback callback) {
+ applyUserAgentHeader(jerseyRequest.getHeaders());
final Request jettyRequest = translateRequest(jerseyRequest);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(jerseyRequest.getHeaders(), jettyRequest);
final ContentProvider entity = getStreamProvider(jerseyRequest);
diff --git a/connectors/jetty-connector/src/test/java/org/glassfish/jersey/jetty/connector/ProxyTest.java b/connectors/jetty-connector/src/test/java/org/glassfish/jersey/jetty/connector/ProxyTest.java
index dc6924f..3805260 100644
--- a/connectors/jetty-connector/src/test/java/org/glassfish/jersey/jetty/connector/ProxyTest.java
+++ b/connectors/jetty-connector/src/test/java/org/glassfish/jersey/jetty/connector/ProxyTest.java
@@ -26,9 +26,9 @@
import org.glassfish.jersey.test.JerseyTest;
import org.junit.Test;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Application;
diff --git a/connectors/pom.xml b/connectors/pom.xml
index 15c1fd6..daa8703 100644
--- a/connectors/pom.xml
+++ b/connectors/pom.xml
@@ -37,7 +37,6 @@
<module>apache-connector</module>
<module>grizzly-connector</module>
<module>jdk-connector</module>
- <module>jetty-connector</module>
<module>netty-connector</module>
</modules>
@@ -87,5 +86,14 @@
<module>helidon-connector</module>
</modules>
</profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <modules>
+ <module>jetty-connector</module>
+ </modules>
+ </profile>
</profiles>
</project>
diff --git a/containers/jetty-http/pom.xml b/containers/jetty-http/pom.xml
index d2abe36..ddfb891 100644
--- a/containers/jetty-http/pom.xml
+++ b/containers/jetty-http/pom.xml
@@ -37,6 +37,11 @@
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
+ <version>${servlet5.version}</version>
+ </dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
@@ -46,10 +51,6 @@
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-continuation</artifactId>
- </dependency>
</dependencies>
<build>
diff --git a/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainer.java b/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainer.java
index d80e43b..cd4aa9e 100644
--- a/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainer.java
+++ b/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainer.java
@@ -31,15 +31,18 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import jakarta.servlet.AsyncContext;
+import jakarta.servlet.AsyncEvent;
+import jakarta.servlet.AsyncListener;
import jakarta.ws.rs.core.Application;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.SecurityContext;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.internal.inject.AbstractBinder;
@@ -58,9 +61,6 @@
import org.glassfish.jersey.server.spi.Container;
import org.glassfish.jersey.server.spi.ContainerResponseWriter;
-import org.eclipse.jetty.continuation.Continuation;
-import org.eclipse.jetty.continuation.ContinuationListener;
-import org.eclipse.jetty.continuation.ContinuationSupport;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
@@ -251,12 +251,12 @@
private static final class ResponseWriter implements ContainerResponseWriter {
private final Response response;
- private final Continuation continuation;
+ private final AsyncContext context;
private final boolean configSetStatusOverSendError;
ResponseWriter(final Request request, final Response response, final boolean configSetStatusOverSendError) {
this.response = response;
- this.continuation = ContinuationSupport.getContinuation(request);
+ this.context = request.startAsync();
this.configSetStatusOverSendError = configSetStatusOverSendError;
}
@@ -293,21 +293,31 @@
try {
if (timeOut > 0) {
final long timeoutMillis = TimeUnit.MILLISECONDS.convert(timeOut, timeUnit);
- continuation.setTimeout(timeoutMillis);
+ context.setTimeout(timeoutMillis);
}
- continuation.addContinuationListener(new ContinuationListener() {
+ context.addListener(new AsyncListener() {
@Override
- public void onComplete(final Continuation continuation) {
+ public void onComplete(AsyncEvent asyncEvent) throws IOException {
+
}
@Override
- public void onTimeout(final Continuation continuation) {
+ public void onTimeout(AsyncEvent asyncEvent) throws IOException {
if (timeoutHandler != null) {
timeoutHandler.onTimeout(ResponseWriter.this);
}
}
+
+ @Override
+ public void onError(AsyncEvent asyncEvent) throws IOException {
+
+ }
+
+ @Override
+ public void onStartAsync(AsyncEvent asyncEvent) throws IOException {
+
+ }
});
- continuation.suspend(response);
return true;
} catch (final Exception ex) {
return false;
@@ -318,7 +328,7 @@
public void setSuspendTimeout(final long timeOut, final TimeUnit timeUnit) throws IllegalStateException {
if (timeOut > 0) {
final long timeoutMillis = TimeUnit.MILLISECONDS.convert(timeOut, timeUnit);
- continuation.setTimeout(timeoutMillis);
+ context.setTimeout(timeoutMillis);
}
}
@@ -329,8 +339,8 @@
} catch (final IOException e) {
LOGGER.log(Level.WARNING, LocalizationMessages.UNABLE_TO_CLOSE_RESPONSE(), e);
} finally {
- if (continuation.isSuspended()) {
- continuation.complete();
+ if (context.getRequest().isAsyncStarted()) {
+ context.complete();
}
LOGGER.log(Level.FINEST, "commit() called");
}
diff --git a/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainerFactory.java b/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainerFactory.java
index 85027a5..39f23e8 100644
--- a/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainerFactory.java
+++ b/containers/jetty-http/src/main/java/org/glassfish/jersey/jetty/JettyHttpContainerFactory.java
@@ -205,7 +205,8 @@
* @throws ProcessingException in case of any failure when creating a new Jetty {@code Server} instance.
* @throws IllegalArgumentException if {@code uri} is {@code null}.
*/
- public static Server createServer(final URI uri, final SslContextFactory sslContextFactory, final ResourceConfig config)
+ public static Server createServer(final URI uri, final SslContextFactory.Server sslContextFactory,
+ final ResourceConfig config)
throws ProcessingException {
final JettyHttpContainer container = ContainerFactory.createContainer(JettyHttpContainer.class, config);
return createServer(uri, sslContextFactory, container, true);
@@ -232,7 +233,7 @@
* @see JettyHttpContainer
*/
public static Server createServer(final URI uri,
- final SslContextFactory sslContextFactory,
+ final SslContextFactory.Server sslContextFactory,
final JettyHttpContainer handler,
final boolean start) {
if (uri == null) {
diff --git a/containers/pom.xml b/containers/pom.xml
index 69128aa..25f49f3 100644
--- a/containers/pom.xml
+++ b/containers/pom.xml
@@ -40,7 +40,6 @@
<module>jdk-http</module>
<module>jersey-servlet-core</module>
<module>jersey-servlet</module>
- <module>jetty-http</module>
<!-- TODO jakartify this -->
<!-- <module>jetty-servlet</module>-->
<module>netty-http</module>
@@ -76,4 +75,16 @@
<scope>test</scope>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <modules>
+ <module>jetty-http</module>
+ </modules>
+ </profile>
+ </profiles>
</project>
diff --git a/etc/travis/travis.sh b/etc/travis/travis.sh
index cbd0a16..2362130 100644
--- a/etc/travis/travis.sh
+++ b/etc/travis/travis.sh
@@ -28,9 +28,9 @@
mvn -version
if [ "$1" = "glassfish-copyright:copyright" ]; then
- mvn glassfish-copyright:copyright
+ mvn -B -V glassfish-copyright:copyright
else
- mvn -e -U -B -Peclipse_repo,staging clean install $1 >> $BUILD_OUTPUT 2>&1
+ mvn -e -U -B -V -Peclipse_repo,staging clean install $1 >> $BUILD_OUTPUT 2>&1
fi
# The build finished without returning an error so dump a tail of the output
diff --git a/ext/bean-validation/pom.xml b/ext/bean-validation/pom.xml
index da9ff99..4bf5d0f 100644
--- a/ext/bean-validation/pom.xml
+++ b/ext/bean-validation/pom.xml
@@ -125,10 +125,9 @@
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-bundle</artifactId>
+ <groupId>org.glassfish.jersey.test-framework</groupId>
+ <artifactId>jersey-test-framework-core</artifactId>
<version>${project.version}</version>
- <type>pom</type>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/ext/entity-filtering/pom.xml b/ext/entity-filtering/pom.xml
index 839c256..120c883 100644
--- a/ext/entity-filtering/pom.xml
+++ b/ext/entity-filtering/pom.xml
@@ -54,10 +54,9 @@
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-bundle</artifactId>
+ <groupId>org.glassfish.jersey.test-framework</groupId>
+ <artifactId>jersey-test-framework-core</artifactId>
<version>${project.version}</version>
- <type>pom</type>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/ext/microprofile/mp-config/pom.xml b/ext/microprofile/mp-config/pom.xml
index 5f01e72..224df05 100644
--- a/ext/microprofile/mp-config/pom.xml
+++ b/ext/microprofile/mp-config/pom.xml
@@ -49,13 +49,6 @@
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-jetty</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${project.version}</version>
@@ -84,4 +77,40 @@
</dependencies>
+ <profiles>
+ <profile>
+ <id>JettyExclude</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <testExcludes>
+ <testExclude>org/glassfish/jersey/microprofile/config/ExternalPropertiesConfigurationFactoryTest.java</testExclude>
+ </testExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+ <artifactId>jersey-test-framework-provider-jetty</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
+
</project>
diff --git a/media/json-jackson/pom.xml b/media/json-jackson/pom.xml
index 26b572f..28cb667 100644
--- a/media/json-jackson/pom.xml
+++ b/media/json-jackson/pom.xml
@@ -135,10 +135,9 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-bundle</artifactId>
+ <groupId>org.glassfish.jersey.test-framework</groupId>
+ <artifactId>jersey-test-framework-core</artifactId>
<version>${project.version}</version>
- <type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/media/multipart/pom.xml b/media/multipart/pom.xml
index ca1f3aa..dbc8e37 100644
--- a/media/multipart/pom.xml
+++ b/media/multipart/pom.xml
@@ -92,12 +92,6 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.glassfish.jersey.connectors</groupId>
- <artifactId>jersey-jetty-connector</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>junit</groupId>
@@ -105,4 +99,40 @@
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>JettyExclude</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <testExcludes>
+ <testExclude>org/glassfish/jersey/media/multipart/internal/MultiPartHeaderModificationTest.java</testExclude>
+ </testExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.connectors</groupId>
+ <artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
+
</project>
diff --git a/pom.xml b/pom.xml
index ffe6645..a4c1967 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1645,11 +1645,6 @@
<artifactId>jetty-webapp</artifactId>
<version>${jetty.version}</version>
</dependency>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-continuation</artifactId>
- <version>${jetty.version}</version>
- </dependency>
<dependency>
<groupId>org.simpleframework</groupId>
@@ -2160,7 +2155,7 @@
<javax.annotation.version>1.3.5</javax.annotation.version> <!--Deprecated, used only for @generated annotation in perf tests -->
<jetty.plugin.version>6.1.26</jetty.plugin.version>
- <jetty.version>9.4.28.v20200408</jetty.version>
+ <jetty.version>11.0.0.beta2</jetty.version>
<jetty.servlet.api.25.version>6.1.14</jetty.servlet.api.25.version>
<mimepull.version>1.9.13</mimepull.version>
diff --git a/test-framework/providers/bundle/pom.xml b/test-framework/providers/bundle/pom.xml
index eddf5d7..8227a40 100644
--- a/test-framework/providers/bundle/pom.xml
+++ b/test-framework/providers/bundle/pom.xml
@@ -60,13 +60,23 @@
</dependency>
<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-jetty</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-netty</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+ <artifactId>jersey-test-framework-provider-jetty</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
</project>
diff --git a/test-framework/providers/pom.xml b/test-framework/providers/pom.xml
index 96b76bb..10764da 100644
--- a/test-framework/providers/pom.xml
+++ b/test-framework/providers/pom.xml
@@ -17,7 +17,8 @@
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.glassfish.jersey.test-framework</groupId>
@@ -37,9 +38,19 @@
<module>external</module>
<module>grizzly2</module>
<module>inmemory</module>
- <module>jetty</module>
<module>jdk-http</module>
<module>netty</module>
<module>simple</module>
</modules>
+ <profiles>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <modules>
+ <module>jetty</module>
+ </modules>
+ </profile>
+ </profiles>
</project>
diff --git a/tests/e2e-client/pom.xml b/tests/e2e-client/pom.xml
index 57da3ca..3ba0b6a 100644
--- a/tests/e2e-client/pom.xml
+++ b/tests/e2e-client/pom.xml
@@ -124,11 +124,6 @@
</dependency>
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
- <artifactId>jersey-jetty-connector</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-jdk-connector</artifactId>
<scope>test</scope>
</dependency>
@@ -222,7 +217,45 @@
</pluginManagement>
</build>
</profile>
-
+ <profile>
+ <id>JettyExclude</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <testExcludes>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/connector/ssl/SslConnectorConfigurationTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/connector/ssl/SslConnectorHostnameVerifierTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/connector/ssl/SslHttpUrlConnectorTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/ShutdownHookMemoryLeakTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java</testExclude>
+ </testExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.connectors</groupId>
+ <artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
</profiles>
</project>
diff --git a/tests/e2e-entity/pom.xml b/tests/e2e-entity/pom.xml
index 06e9075..a37715b 100644
--- a/tests/e2e-entity/pom.xml
+++ b/tests/e2e-entity/pom.xml
@@ -164,11 +164,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.connectors</groupId>
- <artifactId>jersey-jetty-connector</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.glassfish.jersey.security</groupId>
<artifactId>oauth1-signature</artifactId>
<version>${project.version}</version>
@@ -257,7 +252,20 @@
</pluginManagement>
</build>
</profile>
-
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.connectors</groupId>
+ <artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
</profiles>
</project>
diff --git a/tests/e2e-server/pom.xml b/tests/e2e-server/pom.xml
index 95d4a0a..5b52538 100644
--- a/tests/e2e-server/pom.xml
+++ b/tests/e2e-server/pom.xml
@@ -164,11 +164,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.connectors</groupId>
- <artifactId>jersey-jetty-connector</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.glassfish.jersey.security</groupId>
<artifactId>oauth1-signature</artifactId>
<version>${project.version}</version>
@@ -258,7 +253,42 @@
</pluginManagement>
</build>
</profile>
-
+ <profile>
+ <id>JettyExclude</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <testExcludes>
+ <testExclude>org/glassfish/jersey/tests/e2e/server/mvc/spi/AbstractTemplateProcessorTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/server/mvc/MvcEncodingTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/server/monitoring/StatisticsDestroyTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/server/monitoring/ReloadApplicationEventTest.java</testExclude>
+ </testExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.connectors</groupId>
+ <artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
</profiles>
</project>
diff --git a/tests/e2e/pom.xml b/tests/e2e/pom.xml
index 3089c83..4fee8f9 100644
--- a/tests/e2e/pom.xml
+++ b/tests/e2e/pom.xml
@@ -141,11 +141,6 @@
</dependency>
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
- <artifactId>jersey-jetty-connector</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-jdk-connector</artifactId>
<scope>test</scope>
</dependency>
@@ -209,6 +204,50 @@
</properties>
</profile>
<profile>
+ <id>JettyExclude</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <testExcludes>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/Jersey2462Test.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/EscapedUriTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/GzipContentEncodingTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/HeadTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/JettyEmptyHeaderParamTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/LeadingSlashesTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/MatrixParamTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/QueryParamTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/ResponseWriterMetadataTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/ResponseWriterOutputStreamTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/TrailingSlashTest.java</testExclude>
+ <testExclude>org/glassfish/jersey/tests/e2e/container/JerseyContainerTest.java</testExclude>
+ </testExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.glassfish.jersey.connectors</groupId>
+ <artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
<id>sonar</id>
<build>
<pluginManagement>
diff --git a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/server/wadl/NoJAXBNoWadlTest.java b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/server/wadl/NoJAXBNoWadlTest.java
index 164faf5..dfaa771 100644
--- a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/server/wadl/NoJAXBNoWadlTest.java
+++ b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/server/wadl/NoJAXBNoWadlTest.java
@@ -67,8 +67,6 @@
@Test
public void testOptionsNoWadl() {
- final boolean shouldHaveJaxb = JdkVersion.getJdkVersion().getMajor() == 1;
-
// Make sure the test does not have JAX-B on a classpath
Assert.assertFalse(ServiceFinder.find("jakarta.xml.bind.JAXBContext").iterator().hasNext());
@@ -77,6 +75,6 @@
Assert.assertEquals("OPTIONS,PUT", headers);
}
System.out.println(readableStream.toString());
- Assert.assertEquals(!shouldHaveJaxb, readableStream.toString().contains(LocalizationMessages.WADL_FEATURE_DISABLED()));
+ Assert.assertTrue(readableStream.toString().contains(LocalizationMessages.WADL_FEATURE_DISABLED()));
}
}
diff --git a/tests/integration/jetty-response-close/pom.xml b/tests/integration/jetty-response-close/pom.xml
index 8a552f9..e8d9d2f 100644
--- a/tests/integration/jetty-response-close/pom.xml
+++ b/tests/integration/jetty-response-close/pom.xml
@@ -84,5 +84,4 @@
</plugin>
</plugins>
</build>
-
</project>
\ No newline at end of file
diff --git a/tests/integration/pom.xml b/tests/integration/pom.xml
index e1389e4..65cadd5 100644
--- a/tests/integration/pom.xml
+++ b/tests/integration/pom.xml
@@ -53,7 +53,6 @@
<module>jersey-1928</module>
<module>jersey-1960</module>
<module>jersey-1964</module>
- <module>jersey-2031</module>
<module>jersey-2136</module>
<module>jersey-2137</module>
<module>jersey-2154</module>
@@ -87,12 +86,9 @@
<module>jersey-4321</module>
<module>jersey-4507</module>
<module>jersey-4542</module>
- <module>jetty-response-close</module>
<module>microprofile</module>
- <module>property-check</module>
<module>security-digest</module>
<module>servlet-2.5-autodiscovery-1</module>
- <module>servlet-2.5-autodiscovery-2</module>
<module>servlet-2.5-filter</module>
<module>servlet-2.5-inflector-1</module>
<module>servlet-2.5-init-1</module>
@@ -103,9 +99,7 @@
<module>servlet-2.5-init-6</module>
<module>servlet-2.5-init-7</module>
<module>servlet-2.5-init-8</module>
- <module>servlet-2.5-mvc-1</module>
<module>servlet-2.5-mvc-2</module>
- <module>servlet-2.5-mvc-3</module>
<module>servlet-2.5-reload</module>
<module>servlet-3-async</module>
<module>servlet-3-chunked-io</module>
@@ -123,10 +117,8 @@
<module>servlet-3-init-provider</module>
<module>servlet-3-params</module>
<module>servlet-3-sse-1</module>
- <module>servlet-4.0-mvc-1</module>
<module>servlet-request-wrapper-binding-2</module>
<module>servlet-request-wrapper-binding</module>
- <module>servlet-tests</module>
<module>sonar-test</module>
<!-- <module>spring4</module>-->
<!-- <module>spring5</module>-->
@@ -192,7 +184,22 @@
</pluginManagement>
</build>
</profile>
-
+ <profile>
+ <id>Jetty11</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <modules>
+ <module>jersey-2031</module>
+ <module>jetty-response-close</module>
+ <module>property-check</module>
+ <module>servlet-2.5-autodiscovery-2</module>
+ <module>servlet-2.5-mvc-1</module>
+ <module>servlet-2.5-mvc-3</module>
+ <module>servlet-4.0-mvc-1</module>
+ <module>servlet-tests</module>
+ </modules>
+ </profile>
</profiles>
<build>
diff --git a/tests/integration/property-check/pom.xml b/tests/integration/property-check/pom.xml
index 11c7aa1..447aa85 100644
--- a/tests/integration/property-check/pom.xml
+++ b/tests/integration/property-check/pom.xml
@@ -66,6 +66,7 @@
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-jetty-connector</artifactId>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/tests/jmockit/pom.xml b/tests/jmockit/pom.xml
index a4dbf10..2feb713 100644
--- a/tests/jmockit/pom.xml
+++ b/tests/jmockit/pom.xml
@@ -45,13 +45,6 @@
<artifactId>jersey-media-multipart</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.glassfish.jersey.test-framework.providers</groupId>
- <artifactId>jersey-test-framework-provider-bundle</artifactId>
- <version>${project.version}</version>
- <type>pom</type>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.jmockit</groupId>