diff --git a/CHANGELOG.md b/CHANGELOG.md index d415feeb3b3..bce199e79c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,13 @@ All notable changes to this project will be documented in this file. - Fixed leakage of Vibur and Tomcat JDBC test dependencies in `jdbc-test` and `mysql` modules (#382) - Added timeout and retries for creation of `RemoteWebDriver` (#381, #373, #257) - Fixed double encoding of listNetwork's filter until it's fixed in docker-java (#385) +- Fixed various shading issues ### Changed - Added support for Docker networks (#372) - Added `getFirstMappedPort` method - Extracted Oracle XE container into a separate repository ([testcontainers/testcontainers-java-module-oracle-xe](https://github.com/testcontainers/testcontainers-java-module-oracle-xe)) +- Added shading tests ## [1.3.1] - 2017-06-22 ### Fixed diff --git a/core/pom.xml b/core/pom.xml index 2d981bf050a..755e3fc0156 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -34,6 +34,10 @@ org.glassfish.jersey.connectors * + + log4j + log4j + @@ -228,9 +232,17 @@ *:* + META-INF/NOTICE + META-INF/LICENSE + META-INF/DEPENDENCIES + META-INF/maven/ META-INF/*.SF META-INF/*.DSA META-INF/*.RSA + META-INF/io.netty.versions.properties + mozilla/public-suffix-list.txt + + META-INF/services/README.md META-INF/services/com.fasterxml.jackson.core.* META-INF/services/com.github.dockerjava.api.command.* META-INF/services/javax.ws.rs.ext.* diff --git a/modules/jdbc/pom.xml b/modules/jdbc/pom.xml index cc06c27bf42..0a3178d8e01 100644 --- a/modules/jdbc/pom.xml +++ b/modules/jdbc/pom.xml @@ -26,75 +26,4 @@ - - - - maven-shade-plugin - 2.4.3 - - - package - - shade - - - - - - - - - - - com.google.common - org.testcontainers.shaded.com.google.common - - - org.glassfish - org.testcontainers.shaded.org.glassfish - - - javax.ws.rs - org.testcontainers.shaded.javax.ws.rs - - - com.fasterxml.jackson - org.testcontainers.shaded.com.fasterxml.jackson - - - - - org.bouncycastle:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - *:* - - META-INF/services/com.fasterxml.jackson.core.* - META-INF/services/com.github.dockerjava.api.command.* - META-INF/services/javax.ws.rs.ext.* - META-INF/services/org.glassfish.hk2.extension.* - META-INF/services/org.jvnet.hk2.external.generator.* - META-INF/services/org.glassfish.jersey.internal.spi.* - - - - - - com.google.guava:* - org.glassfish.*:* - - - true - false - - - - diff --git a/modules/mysql/pom.xml b/modules/mysql/pom.xml index b367bc48766..d9b75b57f24 100644 --- a/modules/mysql/pom.xml +++ b/modules/mysql/pom.xml @@ -13,11 +13,6 @@ TestContainers :: JDBC :: MySQL - - ${project.groupId} - testcontainers - ${project.version} - ${project.groupId} jdbc diff --git a/modules/postgresql/pom.xml b/modules/postgresql/pom.xml index 7ef8f9eb091..f5100801283 100644 --- a/modules/postgresql/pom.xml +++ b/modules/postgresql/pom.xml @@ -13,11 +13,6 @@ TestContainers :: JDBC :: PostgreSQL - - ${project.groupId} - testcontainers - ${project.version} - ${project.groupId} jdbc diff --git a/modules/selenium/pom.xml b/modules/selenium/pom.xml index d5995b0c0e0..af4e894365b 100644 --- a/modules/selenium/pom.xml +++ b/modules/selenium/pom.xml @@ -19,19 +19,6 @@ testcontainers ${project.version} - - com.github.docker-java - docker-java - ${docker-java.version} - provided - - - - com.google.guava - guava - 18.0 - provided - @@ -57,45 +44,4 @@ - - - - maven-shade-plugin - 2.4.3 - - - package - - shade - - - - - - - com.google.common - org.testcontainers.shaded.com.google.common - - - - - org.bouncycastle:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - com.google.guava:* - - - true - false - - - - \ No newline at end of file diff --git a/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java b/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java index 7ae9b3787d9..219eae9ec39 100644 --- a/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java +++ b/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java @@ -24,7 +24,6 @@ import java.util.Date; import java.util.concurrent.TimeUnit; -import static com.google.common.base.Preconditions.checkState; import static java.time.temporal.ChronoUnit.SECONDS; /** @@ -87,8 +86,11 @@ protected Integer getLivenessCheckPort() { @Override protected void configure() { - checkState(desiredCapabilities != null); - if (! customImageNameIsSet) { + if (desiredCapabilities == null) { + throw new IllegalStateException(); + } + + if (!customImageNameIsSet) { super.setDockerImageName(getImageForCapabilities(desiredCapabilities)); } diff --git a/modules/virtuoso/pom.xml b/modules/virtuoso/pom.xml index 31db0c52880..7884346e640 100644 --- a/modules/virtuoso/pom.xml +++ b/modules/virtuoso/pom.xml @@ -19,11 +19,6 @@ - - ${project.groupId} - testcontainers - ${project.version} - ${project.groupId} jdbc diff --git a/shade-test/clashing-deps-jackson/pom.xml b/shade-test/clashing-deps-jackson/pom.xml index ae42ca1a51a..16812788ff3 100644 --- a/shade-test/clashing-deps-jackson/pom.xml +++ b/shade-test/clashing-deps-jackson/pom.xml @@ -13,6 +13,11 @@ clashing-deps-jackson + + org.testcontainers + testcontainers + ${project.version} + redis.clients jedis diff --git a/shade-test/clashing-deps-jersey/pom.xml b/shade-test/clashing-deps-jersey/pom.xml index 6ed4a65c49b..639f8965ca4 100644 --- a/shade-test/clashing-deps-jersey/pom.xml +++ b/shade-test/clashing-deps-jersey/pom.xml @@ -13,6 +13,11 @@ clashing-deps-jersey + + org.testcontainers + testcontainers + ${project.version} + com.sun.jersey jersey-client diff --git a/shade-test/jar-file/pom.xml b/shade-test/jar-file/pom.xml new file mode 100644 index 00000000000..2f07b4f10f9 --- /dev/null +++ b/shade-test/jar-file/pom.xml @@ -0,0 +1,24 @@ + + + + shade-test + org.testcontainers + 0-SNAPSHOT + ../pom.xml + + 4.0.0 + + jar-file + + + + org.assertj + assertj-core + 3.6.2 + test + + + + \ No newline at end of file diff --git a/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java b/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java new file mode 100644 index 00000000000..42dc9a0e631 --- /dev/null +++ b/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java @@ -0,0 +1,79 @@ +package org.testcontainers; + +import org.assertj.core.api.ListAssert; +import org.junit.*; + +import java.io.IOException; +import java.net.URI; +import java.nio.file.*; + +import static java.util.Collections.emptyMap; +import static org.assertj.core.api.Assertions.assertThat; + +public class JarFileShadingTest { + + private static FileSystem fileSystem; + + private static Path root; + + @BeforeClass + public static void setUp() throws Exception { + Path path = Paths.get("..", "..", "core", "target", "testcontainers-0-SNAPSHOT.jar"); + + fileSystem = FileSystems.newFileSystem(URI.create("jar:" + path.toUri()), emptyMap()); + + root = fileSystem.getRootDirectories().iterator().next(); + } + + @AfterClass + public static void tearDown() throws Exception { + fileSystem.close(); + } + + @Test + public void testPackages() throws Exception { + assertThatFileList(root).containsOnly( + "docker-java.properties", + "org/", + "META-INF/", + "com/" + ); + + assertThatFileList(root.resolve("org")).containsOnly( + "testcontainers/" + ); + + assertThatFileList(root.resolve("com")).containsOnly( + "github/" + ); + + assertThatFileList(root.resolve("com").resolve("github")).containsOnly( + "dockerjava/" + ); + } + + @Test + public void testMetaInf() throws Exception { + assertThatFileList(root.resolve("META-INF")).containsOnly( + "MANIFEST.MF", + "services/", + "native/" + ); + + assertThatFileList(root.resolve("META-INF").resolve("native")).containsOnly( + "liborg-testcontainers-shaded-netty-transport-native-epoll.so" + ); + } + + @Test + public void testMetaInfServices() throws Exception { + assertThatFileList(root.resolve("META-INF").resolve("services")) + .allMatch(it -> it.startsWith("org.testcontainers.")); + } + + private ListAssert assertThatFileList(Path path) throws IOException { + return (ListAssert) assertThat(Files.list(path)) + .extracting(Path::getFileName) + .extracting(Object::toString); + } +} diff --git a/shade-test/pom.xml b/shade-test/pom.xml index 41de7e9e7ef..bfbca79b8a1 100644 --- a/shade-test/pom.xml +++ b/shade-test/pom.xml @@ -17,18 +17,6 @@ clashing-deps-jackson clashing-deps-jersey service-lookup-dropwizard + jar-file - - - - org.testcontainers - testcontainers - ${project.version} - - - org.rnorth.visible-assertions - visible-assertions - 1.0.5 - - \ No newline at end of file diff --git a/shade-test/service-lookup-dropwizard/pom.xml b/shade-test/service-lookup-dropwizard/pom.xml index 5455079d350..8fdc7b27192 100644 --- a/shade-test/service-lookup-dropwizard/pom.xml +++ b/shade-test/service-lookup-dropwizard/pom.xml @@ -12,6 +12,11 @@ service-lookup-dropwizard + + org.testcontainers + testcontainers + ${project.version} + io.dropwizard dropwizard-core