diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ee347a4ebf..5921da6c1db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ All notable changes to this project will be documented in this file. - Deprecated `WaitStrategy` and implementations in favour of classes with same names in `org.testcontainers.containers.strategy` ([\#600](https://github.com/testcontainers/testcontainers-java/pull/600)) - Added `ContainerState` interface representing the state of a started container ([\#600](https://github.com/testcontainers/testcontainers-java/pull/600)) - Added `WaitStrategyTarget` interface which is the target of the new `WaitStrategy` ([\#600](https://github.com/testcontainers/testcontainers-java/pull/600)) +- *Breaking:* Removed hard-coded `wnameless` Oracle database image name. Users should instead place a file on the classpath named `testcontainers.properties` containing `oracle.container.image=IMAGE`, where IMAGE is a suitable image name and tag/SHA hash. For information, the approach recommended by Oracle for creating an Oracle XE docker image is described [here](https://blogs.oracle.com/oraclewebcentersuite/implement-oracle-database-xe-as-docker-containers). - Added `DockerHealthcheckWaitStrategy` that is based on Docker's built-in [healthcheck](https://docs.docker.com/engine/reference/builder/#healthcheck) ([\#618](https://github.com/testcontainers/testcontainers-java/pull/618)). ## [1.6.0] - 2018-01-28 diff --git a/modules/jdbc-test/src/test/resources/testcontainers.properties b/modules/jdbc-test/src/test/resources/testcontainers.properties new file mode 100644 index 00000000000..19b5c4680e8 --- /dev/null +++ b/modules/jdbc-test/src/test/resources/testcontainers.properties @@ -0,0 +1 @@ +oracle.container.image=wnameless/oracle-xe-11g@sha256:15ff9ef50b4f90613c9780b589c57d98a8a9d496decec854316d96396ec5c085 diff --git a/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java b/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java index 41dce1693a7..3cb6d888ebd 100644 --- a/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java +++ b/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java @@ -8,13 +8,24 @@ public class OracleContainer extends JdbcDatabaseContainer { public static final String NAME = "oracle"; - public static final String IMAGE = TestcontainersConfiguration.getInstance() - .getProperties().getProperty("oracle.container.image","wnameless/oracle-xe-11g"); + private static final int ORACLE_PORT = 1521; private static final int APEX_HTTP_PORT = 8080; + private static String resolveImageName() { + String image = TestcontainersConfiguration.getInstance() + .getProperties().getProperty("oracle.container.image"); + + if (image == null) { + throw new IllegalStateException("An image to use for Oracle containers must be configured. " + + "To do this, please place a file on the classpath named `testcontainers.properties`, " + + "containing `oracle.container.image=IMAGE`, where IMAGE is a suitable image name and tag."); + } + return image; + } + public OracleContainer() { - super(IMAGE + "@sha256:15ff9ef50b4f90613c9780b589c57d98a8a9d496decec854316d96396ec5c085"); + super(resolveImageName()); } public OracleContainer(String dockerImageName) { diff --git a/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainerProvider.java b/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainerProvider.java index 1aea9f7e443..4ce0fb2cdfb 100644 --- a/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainerProvider.java +++ b/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainerProvider.java @@ -11,6 +11,11 @@ public boolean supports(String databaseType) { @Override public JdbcDatabaseContainer newInstance(String tag) { - return new OracleContainer(OracleContainer.IMAGE + ":" + tag); + + if (!tag.equalsIgnoreCase("latest")) { + throw new UnsupportedOperationException("Oracle database tag should be set in the configured image name"); + } + + return new OracleContainer(); } } diff --git a/modules/oracle-xe/src/test/resources/logback-test.xml b/modules/oracle-xe/src/test/resources/logback-test.xml new file mode 100644 index 00000000000..ed0e5b2659e --- /dev/null +++ b/modules/oracle-xe/src/test/resources/logback-test.xml @@ -0,0 +1,29 @@ + + + + + + %d{HH:mm:ss.SSS} %-5level %logger - %msg%n + + + + + + + + + + + + + + + + + + + PROFILER + DENY + + \ No newline at end of file diff --git a/modules/oracle-xe/src/test/resources/testcontainers.properties b/modules/oracle-xe/src/test/resources/testcontainers.properties new file mode 100644 index 00000000000..19b5c4680e8 --- /dev/null +++ b/modules/oracle-xe/src/test/resources/testcontainers.properties @@ -0,0 +1 @@ +oracle.container.image=wnameless/oracle-xe-11g@sha256:15ff9ef50b4f90613c9780b589c57d98a8a9d496decec854316d96396ec5c085