Enable tests on JDK 8 Signed-off-by: Jan Supol <jan.supol@oracle.com>
diff --git a/.gitignore b/.gitignore index 9f7d5b9..27753e1 100644 --- a/.gitignore +++ b/.gitignore
@@ -1,6 +1,7 @@ # maven noise target/ target-*/ +target11/ # gradle noise .gradle
diff --git a/test-framework/providers/bundle/pom.xml b/test-framework/providers/bundle/pom.xml index 8227a40..98f8c11 100644 --- a/test-framework/providers/bundle/pom.xml +++ b/test-framework/providers/bundle/pom.xml
@@ -63,20 +63,10 @@ <artifactId>jersey-test-framework-provider-netty</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> - <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/tests/e2e-client/pom.xml b/tests/e2e-client/pom.xml index 3ba0b6a..3c9152d 100644 --- a/tests/e2e-client/pom.xml +++ b/tests/e2e-client/pom.xml
@@ -128,6 +128,11 @@ <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> @@ -217,45 +222,6 @@ </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-client/src/test/java/org/glassfish/jersey/tests/e2e/client/ShutdownHookMemoryLeakTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/ShutdownHookMemoryLeakTest.java index e0e6372..5a0b830 100644 --- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/ShutdownHookMemoryLeakTest.java +++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/ShutdownHookMemoryLeakTest.java
@@ -39,6 +39,7 @@ import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; +import org.glassfish.jersey.tests.e2e.client.connector.ProviderFiltering; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -72,12 +73,12 @@ @Parameterized.Parameters public static List<ConnectorProvider[]> connectionProviders() { - return Arrays.asList(new ConnectorProvider[][] { + return Arrays.asList(ProviderFiltering.filterProviders(new ConnectorProvider[][] { {new GrizzlyConnectorProvider()}, {new JettyConnectorProvider()}, {new ApacheConnectorProvider()}, {new HttpUrlConnectorProvider()} - }); + })); } @Path(PATH)
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java index 95a2c53..9c04cc5 100644 --- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java +++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java
@@ -58,7 +58,7 @@ @Parameterized.Parameters(name = "{index}: {0}") public static List<Object[]> testData() { - return Arrays.asList(new Object[][]{ + return Arrays.asList(ProviderFiltering.filterProviders(new Object[][]{ // {HttpUrlConnectorProvider.class}, // cannot process PATCH without additional configuration {GrizzlyConnectorProvider.class}, {JettyConnectorProvider.class}, // unstable. @@ -66,7 +66,7 @@ {GrizzlyConnectorProvider.class}, {NettyConnectorProvider.class}, {JdkConnectorProvider.class}, - }); + })); } private final ConnectorProvider connectorProvider;
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ProviderFiltering.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ProviderFiltering.java new file mode 100644 index 0000000..db9f21f --- /dev/null +++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ProviderFiltering.java
@@ -0,0 +1,42 @@ +/* + * Copyright (c) 2020 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + + +package org.glassfish.jersey.tests.e2e.client.connector; + +import org.glassfish.jersey.internal.util.JdkVersion; +import org.glassfish.jersey.jetty.connector.JettyConnectorProvider; + +import java.util.LinkedList; +import java.util.List; + +public class ProviderFiltering { + public static <T> T[][] filterProviders(T[][] tofilter) { + final List<Object[]> filtered = new LinkedList<>(); + final JdkVersion version = JdkVersion.getJdkVersion(); + final boolean isJdk8 = version.getMajor() == 1; + for (Object[] provider : tofilter) { + if (!isJdk8 + || (provider[0] != JettyConnectorProvider.class && !JettyConnectorProvider.class.isInstance(provider[0]))) { + filtered.add(provider); + } + } + return filtered.toArray( + (T[][]) java.lang.reflect.Array.newInstance(tofilter.getClass().getComponentType(), + filtered.size()) + ); + } +}
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java index 48c6314..ebacf52 100644 --- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java +++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java
@@ -98,7 +98,7 @@ @Parameterized.Parameters(name = "{index}: {0} / modificationSupported= {1} / addHeader= {2}") public static List<Object[]> testData() { - return Arrays.asList(new Object[][] { + return Arrays.asList(ProviderFiltering.filterProviders(new Object[][] { {HttpUrlConnectorProvider.class, true, false}, {GrizzlyConnectorProvider.class, false, false}, // change to true when JERSEY-2341 fixed {JettyConnectorProvider.class, false, false}, // change to true when JERSEY-2341 fixed @@ -107,7 +107,7 @@ {GrizzlyConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed {JettyConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed {ApacheConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed - }); + })); } private final ConnectorProvider connectorProvider;
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java index e0315f4..8b22485 100644 --- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java +++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java
@@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -29,6 +29,7 @@ import org.glassfish.jersey.grizzly.connector.GrizzlyConnectorProvider; import org.glassfish.jersey.jetty.connector.JettyConnectorProvider; +import org.glassfish.jersey.tests.e2e.client.connector.ProviderFiltering; import org.junit.After; import org.junit.Before; import org.junit.runner.RunWith; @@ -56,12 +57,12 @@ */ @Parameterized.Parameters(name = "{index}: {0}") public static Iterable<Object[]> testData() { - return Arrays.asList(new Object[][] { + return Arrays.asList(ProviderFiltering.filterProviders(new Object[][] { {new HttpUrlConnectorProvider()}, {new GrizzlyConnectorProvider()}, {new JettyConnectorProvider()}, {new ApacheConnectorProvider()} - }); + })); } @Parameterized.Parameter(0)
diff --git a/tests/e2e-entity/pom.xml b/tests/e2e-entity/pom.xml index e33c365..bf41db4 100644 --- a/tests/e2e-entity/pom.xml +++ b/tests/e2e-entity/pom.xml
@@ -223,20 +223,6 @@ </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/pom.xml b/tests/e2e/pom.xml index 22758ec..80e534e 100644 --- a/tests/e2e/pom.xml +++ b/tests/e2e/pom.xml
@@ -140,6 +140,12 @@ <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>org.glassfish.jersey.security</groupId> <artifactId>oauth1-signature</artifactId> <version>${project.version}</version> @@ -211,17 +217,7 @@ <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> @@ -229,20 +225,6 @@ </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/container/HeadTest.java b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/HeadTest.java index 40bdf7d..0e14b3d 100644 --- a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/HeadTest.java +++ b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/HeadTest.java
@@ -18,7 +18,6 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; -import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; @@ -50,11 +49,12 @@ @RunWith(Parameterized.class) public class HeadTest extends JerseyContainerTest { - private static final List<TestContainerFactory> FACTORIES = Arrays.asList( + private static final List<TestContainerFactory> FACTORIES = listContainerFactories( new GrizzlyTestContainerFactory(), new InMemoryTestContainerFactory(), new SimpleTestContainerFactory(), - new JettyTestContainerFactory()); + new JettyTestContainerFactory() + ); @Parameterized.Parameters(name = "{0}") public static Collection<TestContainerFactory[]> parameters() throws Exception {
diff --git a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/JerseyContainerTest.java b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/JerseyContainerTest.java index fe2b087..3c1bd96 100644 --- a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/JerseyContainerTest.java +++ b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/container/JerseyContainerTest.java
@@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2018 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -16,11 +16,12 @@ package org.glassfish.jersey.tests.e2e.container; -import java.util.Arrays; import java.util.Collection; +import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; +import org.glassfish.jersey.internal.util.JdkVersion; import org.glassfish.jersey.test.JerseyTest; import org.glassfish.jersey.test.grizzly.GrizzlyTestContainerFactory; import org.glassfish.jersey.test.inmemory.InMemoryTestContainerFactory; @@ -39,7 +40,7 @@ @RunWith(Parameterized.class) public abstract class JerseyContainerTest extends JerseyTest { - private static final List<TestContainerFactory> FACTORIES = Arrays.asList( + private static final List<TestContainerFactory> FACTORIES = listContainerFactories( new GrizzlyTestContainerFactory(), new InMemoryTestContainerFactory(), new SimpleTestContainerFactory(), @@ -61,4 +62,16 @@ protected TestContainerFactory getTestContainerFactory() throws TestContainerException { return factory; } + + protected static List<TestContainerFactory> listContainerFactories(TestContainerFactory...factories) { + final JdkVersion version = JdkVersion.getJdkVersion(); + boolean isJDK8 = version.getMajor() == 1; + final List<TestContainerFactory> filtered = new LinkedList<>(); + for (TestContainerFactory factory : factories) { + if (!isJDK8 || !JettyTestContainerFactory.class.isInstance(factory)) { + filtered.add(factory); + } + } + return filtered; + } }