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