From af5863cdf041536fb053019a2e0cfbd87be1b533 Mon Sep 17 00:00:00 2001 From: Silvio Giebl Date: Thu, 29 Feb 2024 00:54:09 +0100 Subject: [PATCH] Fix wrong permission setup for HiveMQ container (#8399) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: EddĂș MelĂ©ndez Gonzales --- modules/hivemq/build.gradle | 3 +-- .../testcontainers/hivemq/HiveMQContainer.java | 6 +++--- .../ContainerWithExtensionFromDirectoryIT.java | 17 +++++++++++++---- .../hivemq/ContainerWithExtensionIT.java | 16 ++++++++++++---- .../ContainerWithExtensionSubclassIT.java | 2 +- .../ContainerWithFileInExtensionHomeIT.java | 15 +++++++++++---- .../hivemq/ContainerWithFileInHomeIT.java | 2 +- .../hivemq/ContainerWithLicenseIT.java | 2 +- .../hivemq/CreateFileInCopiedDirectoryIT.java | 2 +- .../CreateFileInExtensionDirectoryIT.java | 15 +++++++++++---- .../hivemq/HiveMQTestContainerCore.java | 2 +- .../hivemq/docs/DemoExtensionTestsIT.java | 2 +- .../testcontainers/hivemq/docs/DemoFilesIT.java | 6 +++--- .../hivemq/docs/DemoHiveMQContainerIT.java | 4 ++-- 14 files changed, 62 insertions(+), 32 deletions(-) diff --git a/modules/hivemq/build.gradle b/modules/hivemq/build.gradle index 7aca932667b..6c03e07254d 100644 --- a/modules/hivemq/build.gradle +++ b/modules/hivemq/build.gradle @@ -11,14 +11,13 @@ dependencies { shaded("org.jboss.shrinkwrap:shrinkwrap-impl-base:1.2.6") shaded("net.lingala.zip4j:zip4j:2.11.5") - testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.1") + testImplementation("org.junit.jupiter:junit-jupiter:5.10.1") testImplementation(project(":junit-jupiter")) testImplementation("com.hivemq:hivemq-extension-sdk:4.24.0") testImplementation("com.hivemq:hivemq-mqtt-client:1.3.3") testImplementation("org.apache.httpcomponents:httpclient:4.5.14") testImplementation("ch.qos.logback:logback-classic:1.4.14") testImplementation 'org.assertj:assertj-core:3.25.1' - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.1") } test { diff --git a/modules/hivemq/src/main/java/org/testcontainers/hivemq/HiveMQContainer.java b/modules/hivemq/src/main/java/org/testcontainers/hivemq/HiveMQContainer.java index 4638f758745..29e78920917 100644 --- a/modules/hivemq/src/main/java/org/testcontainers/hivemq/HiveMQContainer.java +++ b/modules/hivemq/src/main/java/org/testcontainers/hivemq/HiveMQContainer.java @@ -134,9 +134,9 @@ protected void configure() { setCommand( "-c", removeCommand + - "cp -r '/opt/hivemq/temp-extensions/'* /opt/hivemq/extensions/ " + - "; chmod -R 777 /opt/hivemq/extensions " + - "&& /opt/docker-entrypoint.sh /opt/hivemq/bin/run.sh" + "cp -r '/opt/hivemq/temp-extensions/'* /opt/hivemq/extensions/ ; " + + "chmod -R 777 /opt/hivemq/extensions ; " + + "/opt/docker-entrypoint.sh /opt/hivemq/bin/run.sh" ); } diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionFromDirectoryIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionFromDirectoryIT.java index 6fef56c0a2d..a5b6170a228 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionFromDirectoryIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionFromDirectoryIT.java @@ -1,7 +1,10 @@ package org.testcontainers.hivemq; +import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.slf4j.event.Level; import org.testcontainers.hivemq.util.TestPublishModifiedUtil; import org.testcontainers.utility.DockerImageName; @@ -11,12 +14,18 @@ class ContainerWithExtensionFromDirectoryIT { - @Test + @ParameterizedTest + @ValueSource( + strings = { + "2020.1", // first version that provided a container image + "2024.3", // version that runs the image as a non-root user by default + } + ) @Timeout(value = 3, unit = TimeUnit.MINUTES) - void test() throws Exception { + void test(final @NotNull String hivemqCeTag) throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag(hivemqCeTag) ) .withExtension(MountableFile.forClasspathResource("/modifier-extension")) .waitForExtension("Modifier Extension") @@ -33,7 +42,7 @@ void test() throws Exception { void test_wrongDirectoryName() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .withExtension(MountableFile.forClasspathResource("/modifier-extension-wrong-name")) .waitForExtension("Modifier Extension") diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionIT.java index eda3f236e2c..2b255912da9 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionIT.java @@ -1,7 +1,9 @@ package org.testcontainers.hivemq; -import org.junit.jupiter.api.Test; +import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Timeout; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.testcontainers.hivemq.util.MyExtension; import org.testcontainers.hivemq.util.TestPublishModifiedUtil; import org.testcontainers.utility.DockerImageName; @@ -11,9 +13,15 @@ class ContainerWithExtensionIT { - @Test + @ParameterizedTest + @ValueSource( + strings = { + "2020.1", // first version that provided a container image + "2024.3", // version that runs the image as a non-root user by default + } + ) @Timeout(value = 3, unit = TimeUnit.MINUTES) - void test() throws Exception { + void test(final @NotNull String hivemqCeTag) throws Exception { final HiveMQExtension hiveMQExtension = HiveMQExtension .builder() .id("extension-1") @@ -24,7 +32,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag(hivemqCeTag) ) .withHiveMQConfig(MountableFile.forClasspathResource("/inMemoryConfig.xml")) .waitForExtension(hiveMQExtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionSubclassIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionSubclassIT.java index cd1df9ce8e7..a907b8f2d2e 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionSubclassIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithExtensionSubclassIT.java @@ -25,7 +25,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .waitForExtension(hiveMQExtension) .withExtension(hiveMQExtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInExtensionHomeIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInExtensionHomeIT.java index dde5e677a15..c3c74b0dce7 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInExtensionHomeIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInExtensionHomeIT.java @@ -9,8 +9,9 @@ import com.hivemq.extension.sdk.api.services.Services; import com.hivemq.extension.sdk.api.services.intializer.ClientInitializer; import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.testcontainers.hivemq.util.TestPublishModifiedUtil; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; @@ -22,9 +23,15 @@ class ContainerWithFileInExtensionHomeIT { - @Test + @ParameterizedTest + @ValueSource( + strings = { + "2020.1", // first version that provided a container image + "2024.3", // version that runs the image as a non-root user by default + } + ) @Timeout(value = 3, unit = TimeUnit.MINUTES) - void test() throws Exception { + void test(final @NotNull String hivemqCeTag) throws Exception { final HiveMQExtension hiveMQExtension = HiveMQExtension .builder() .id("extension-1") @@ -35,7 +42,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag(hivemqCeTag) ) .withHiveMQConfig(MountableFile.forClasspathResource("/inMemoryConfig.xml")) .withExtension(hiveMQExtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInHomeIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInHomeIT.java index 78a51398bf3..c8e19316788 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInHomeIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithFileInHomeIT.java @@ -35,7 +35,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .withHiveMQConfig(MountableFile.forClasspathResource("/inMemoryConfig.xml")) .withExtension(hiveMQExtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithLicenseIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithLicenseIT.java index f6aa6ed08f0..3973abddb0b 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithLicenseIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/ContainerWithLicenseIT.java @@ -35,7 +35,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .withHiveMQConfig(MountableFile.forClasspathResource("/inMemoryConfig.xml")) .withExtension(hiveMQExtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInCopiedDirectoryIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInCopiedDirectoryIT.java index c0e95f61cf6..df0f3ef3b9c 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInCopiedDirectoryIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInCopiedDirectoryIT.java @@ -47,7 +47,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .withHiveMQConfig(MountableFile.forClasspathResource("/inMemoryConfig.xml")) .withExtension(extension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInExtensionDirectoryIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInExtensionDirectoryIT.java index 3e7bec94e6e..6f65ebb1e9f 100755 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInExtensionDirectoryIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/CreateFileInExtensionDirectoryIT.java @@ -9,8 +9,9 @@ import com.hivemq.extension.sdk.api.services.Services; import com.hivemq.extension.sdk.api.services.intializer.ClientInitializer; import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.testcontainers.hivemq.util.TestPublishModifiedUtil; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; @@ -23,9 +24,15 @@ class CreateFileInExtensionDirectoryIT { - @Test + @ParameterizedTest + @ValueSource( + strings = { + "2020.1", // first version that provided a container image + "2024.3", // version that runs the image as a non-root user by default + } + ) @Timeout(value = 3, unit = TimeUnit.MINUTES) - void test() throws Exception { + void test(final @NotNull String hivemqCeTag) throws Exception { final HiveMQExtension hiveMQExtension = HiveMQExtension .builder() .id("extension-1") @@ -36,7 +43,7 @@ void test() throws Exception { try ( final HiveMQContainer hivemq = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag(hivemqCeTag) ) .withHiveMQConfig(MountableFile.forClasspathResource("/inMemoryConfig.xml")) .waitForExtension(hiveMQExtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/HiveMQTestContainerCore.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/HiveMQTestContainerCore.java index 32097e52641..ede972e957d 100644 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/HiveMQTestContainerCore.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/HiveMQTestContainerCore.java @@ -16,7 +16,7 @@ class HiveMQTestContainerCore { @NotNull - final HiveMQContainer container = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3")); + final HiveMQContainer container = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3")); @TempDir File tempDir; diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoExtensionTestsIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoExtensionTestsIT.java index f3289413a36..a1ff664649d 100644 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoExtensionTestsIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoExtensionTestsIT.java @@ -38,7 +38,7 @@ class DemoExtensionTestsIT { @Container final HiveMQContainer hivemqWithClasspathExtension = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .waitForExtension(hiveMQEClasspathxtension) .withExtension(hiveMQEClasspathxtension) diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoFilesIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoFilesIT.java index a76fa60576f..8fe08b24750 100644 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoFilesIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoFilesIT.java @@ -19,7 +19,7 @@ class DemoFilesIT { // hivemqHome { final HiveMQContainer hivemqFileInHome = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .withFileInHomeFolder( MountableFile.forHostPath("src/test/resources/additionalFile.txt"), @@ -31,7 +31,7 @@ class DemoFilesIT { // extensionHome { @Container final HiveMQContainer hivemqFileInExtensionHome = new HiveMQContainer( - DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3") + DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3") ) .withExtension( HiveMQExtension @@ -52,7 +52,7 @@ class DemoFilesIT { // withLicenses { @Container - final HiveMQContainer hivemq = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3")) + final HiveMQContainer hivemq = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3")) .withLicense(MountableFile.forHostPath("src/test/resources/myLicense.lic")) .withLicense(MountableFile.forHostPath("src/test/resources/myExtensionLicense.elic")); diff --git a/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoHiveMQContainerIT.java b/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoHiveMQContainerIT.java index db6e3e58251..ed063617537 100644 --- a/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoHiveMQContainerIT.java +++ b/modules/hivemq/src/test/java/org/testcontainers/hivemq/docs/DemoHiveMQContainerIT.java @@ -18,7 +18,7 @@ class DemoHiveMQContainerIT { // ceVersion { @Container - final HiveMQContainer hivemqCe = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce").withTag("2021.3")) + final HiveMQContainer hivemqCe = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce").withTag("2024.3")) .withLogLevel(Level.DEBUG); // } @@ -43,7 +43,7 @@ class DemoHiveMQContainerIT { // specificVersion { @Container - final HiveMQContainer hivemqSpecificVersion = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce:2021.3")); + final HiveMQContainer hivemqSpecificVersion = new HiveMQContainer(DockerImageName.parse("hivemq/hivemq-ce:2024.3")); // }