Rework project's Docker test setup

- use Docker Compose instead of fabric8io
- don't use local paths to support running with remote Docker contexts
- use latest Keycloak Docker image and make sure test realm works out-of-the-box
- add flag to avoid failing on missing properties during JSON deserialisation
  (newer Keycloak versions offer more properties in IDM API response payloads)
This commit is contained in:
AFaust
2025-02-14 17:28:12 +01:00
committed by Axel Faust
parent 6f7910aa93
commit d6a6b3c2bd
32 changed files with 769 additions and 2034 deletions

121
pom.xml
View File

@@ -80,8 +80,8 @@
<maven.compiler.version>3.13.0</maven.compiler.version>
<maven.shade.version>3.6.0</maven.shade.version>
<!-- last available Java adapter library version -->
<keycloak.version>22.0.3</keycloak.version>
<resteasy.version>3.15.1.Final</resteasy.version>
<!-- lowest common denominator of Repository / Share in 6.0 -->
<apache.httpclient.version>4.5.13</apache.httpclient.version>
<apache.httpcore.version>4.4.16</apache.httpcore.version>
@@ -89,28 +89,38 @@
<surf.version>9.0</surf.version>
<acosix.utility.version>1.4.3</acosix.utility.version>
<ootbee.support-tools.version>1.1.0.0</ootbee.support-tools.version>
<ootbee.support-tools.version>1.2.2.0</ootbee.support-tools.version>
<docker.tests.repositoryImageBuilder.preRun></docker.tests.repositoryImageBuilder.preRun>
<docker.tests.repositoryImageBuilder.postRun></docker.tests.repositoryImageBuilder.postRun>
<keycloak.docker.image>keycloak/keycloak</keycloak.docker.image>
<keycloak.docker.version>26.0</keycloak.docker.version>
<keycloak.docker.port>8081</keycloak.docker.port>
<!-- for when we run tests with ACS 7.0+ -->
<activemq.version>5.16.1</activemq.version>
<postgres.docker.version>16</postgres.docker.version>
<!-- Uncomment to test with latest release(s) -->
<!--
<docker.tests.repositoryBaseImage>alfresco/alfresco-content-repository-community:7.0.0</docker.tests.repositoryBaseImage>
<docker.tests.shareBaseImage>alfresco/alfresco-share:7.0.0</docker.tests.shareBaseImage>
<docker.tests.searchBaseImage>alfresco/alfresco-search-services:2.0.0.1</docker.tests.searchBaseImage>
<alfresco.activemq.docker.version>5.18-jre17-rockylinux8</alfresco.activemq.docker.version>
<docker.tests.repositoryVersionSpecificJavaOpts><![CDATA[-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${docker.tests.repositoryDebugPort} -Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding -Dencryption.keyAlgorithm=DESede -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=DESede -Dmessaging.broker.url=vm://localhost?broker.persistent=false]]></docker.tests.repositoryVersionSpecificJavaOpts>
<docker.tests.shareVersionSpecificJavaOpts>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${docker.tests.shareDebugPort}</docker.tests.shareVersionSpecificJavaOpts>
<alfresco.repo.docker.image>alfresco/alfresco-content-repository-community</alfresco.repo.docker.image>
<alfresco.repo.docker.version>23.2.0</alfresco.repo.docker.version>
<alfresco.repo.docker.tomcat.path>/usr/local/tomcat</alfresco.repo.docker.tomcat.path>
<alfresco.repo.docker.amp.path>/usr/local/tomcat/amps</alfresco.repo.docker.amp.path>
<alfresco.repo.docker.mmt.path>/usr/local/tomcat/alfresco-mmt</alfresco.repo.docker.mmt.path>
<alfresco.repo.docker.data.path>/usr/local/tomcat/alf_data</alfresco.repo.docker.data.path>
<alfresco.repo.docker.port>8080</alfresco.repo.docker.port>
<alfresco.repo.docker.debugPort>8888</alfresco.repo.docker.debugPort>
<alfresco.repo.docker.build.preRun>USER root</alfresco.repo.docker.build.preRun>
<alfresco.repo.docker.build.postRun>USER alfresco</alfresco.repo.docker.build.postRun>
<alfresco.repo.docker.chown.mask>alfresco:Alfresco</alfresco.repo.docker.chown.mask>
<docker.tests.repositoryImageBuilder.preRun>USER root</docker.tests.repositoryImageBuilder.preRun>
<docker.tests.repositoryImageBuilder.postRun>USER alfresco</docker.tests.repositoryImageBuilder.postRun>
<acosix.utility.version>1.3.0</acosix.utility.version>
-->
<alfresco.share.docker.image>alfresco/alfresco-share</alfresco.share.docker.image>
<alfresco.share.docker.version>23.2.0</alfresco.share.docker.version>
<alfresco.share.docker.tomcat.path>/usr/local/tomcat</alfresco.share.docker.tomcat.path>
<alfresco.share.docker.amp.path>/usr/local/tomcat/share_amps</alfresco.share.docker.amp.path>
<alfresco.share.docker.mmt.path>/usr/local/tomcat/alfresco-mmt</alfresco.share.docker.mmt.path>
<alfresco.share.docker.port>8180</alfresco.share.docker.port>
<alfresco.share.docker.debugPort>8889</alfresco.share.docker.debugPort>
<alfresco.aio.docker.version>5.1.5</alfresco.aio.docker.version>
<alfresco.solr6.docker.version>2.0.12</alfresco.solr6.docker.version>
</properties>
<dependencyManagement>
@@ -163,24 +173,6 @@
<artifactId>keycloak-admin-client-jakarta</artifactId>
<version>${keycloak.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!-- HttpClient already bundled by both Repository and Share web apps -->
<dependency>
@@ -218,14 +210,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>de.acosix.alfresco.utility</groupId>
<artifactId>de.acosix.alfresco.utility.core.repo</artifactId>
<version>${acosix.utility.version}</version>
<classifier>installable</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.acosix.alfresco.utility</groupId>
<artifactId>de.acosix.alfresco.utility.core.share</artifactId>
@@ -233,14 +217,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>de.acosix.alfresco.utility</groupId>
<artifactId>de.acosix.alfresco.utility.core.share</artifactId>
<version>${acosix.utility.version}</version>
<classifier>installable</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.acosix.alfresco.utility</groupId>
<artifactId>de.acosix.alfresco.utility.repo</artifactId>
@@ -263,14 +239,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>de.acosix.alfresco.utility</groupId>
<artifactId>de.acosix.alfresco.utility.share</artifactId>
<version>${acosix.utility.version}</version>
<classifier>installable</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.orderofthebee.support-tools</groupId>
<artifactId>support-tools-repo</artifactId>
@@ -284,21 +252,6 @@
<version>${ootbee.support-tools.version}</version>
<scope>test</scope>
</dependency>
<!-- relevant to support vm: transport for non-AMQ-Docker setup -->
<!-- transitive dependencies are already part of ACS -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>${activemq.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
@@ -312,6 +265,11 @@
</repository>
</repositories>
<modules>
<module>repository</module>
<module>share</module>
</modules>
<build>
<pluginManagement>
<plugins>
@@ -330,9 +288,14 @@
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>dockerTest</id>
<modules>
<module>repository</module>
<module>share</module>
</modules>
<modules>
<module>docker-test</module>
</modules>
</profile>
</profiles>
</project>