Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
<h2.version>2.2.220</h2.version>
<hibernate-orm.plugin.version>6.2.5.Final</hibernate-orm.plugin.version>
<hibernate.c3p0.version>6.2.5.Final</hibernate.c3p0.version>
<infinispan.version>14.0.10.Final</infinispan.version>
<infinispan.version>14.0.13.Final</infinispan.version>
<infinispan.protostream.processor.version>4.6.2.Final</infinispan.protostream.processor.version>

<!--JAKARTA-->
Expand Down Expand Up @@ -823,6 +823,16 @@
<artifactId>infinispan-core-jakarta</artifactId>
<version>${infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-commons</artifactId>
<version>${infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-commons-jakarta</artifactId>
<version>${infinispan.version}</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-cachestore-remote</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.testcontainers.containers.MariaDBContainer;
import org.testcontainers.containers.MySQLContainer;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.images.PullPolicy;
import org.testcontainers.utility.DockerImageName;

public class DatabaseContainer {
Expand Down Expand Up @@ -107,6 +108,13 @@ private GenericContainer<?> createContainer() {
String MARIADB_IMAGE = System.getProperty("kc.db.mariadb.container.image");
String MYSQL_IMAGE = System.getProperty("kc.db.mysql.container.image");
String INFINISPAN_IMAGE = System.getProperty("kc.infinispan.container.image");
if (INFINISPAN_IMAGE.matches("quay.io/infinispan/.*-SNAPSHOT")) {
// If the image name ends with SNAPSHOT, someone is trying to use a snapshot release of Infinispan.
// Then switch to the closest match of the Infinispan test container
INFINISPAN_IMAGE = INFINISPAN_IMAGE.replaceAll("quay.io/infinispan/", "quay.io/infinispan-test/");
INFINISPAN_IMAGE = INFINISPAN_IMAGE.replaceAll("[0-9]*-SNAPSHOT$", "x");
}

String MSSQL_IMAGE = System.getProperty("kc.db.mssql.container.image");

switch (alias) {
Expand All @@ -123,8 +131,13 @@ private GenericContainer<?> createContainer() {
DockerImageName MSSQL = DockerImageName.parse(MSSQL_IMAGE).asCompatibleSubstituteFor("sqlserver");
return configureJdbcContainer(new MSSQLServerContainer<>(MSSQL));
case "infinispan":
return configureInfinispanUser(new GenericContainer<>(INFINISPAN_IMAGE))
GenericContainer<?> infinispanContainer = configureInfinispanUser(new GenericContainer<>(INFINISPAN_IMAGE))
.withExposedPorts(11222);
// the images in the 'infinispan-test' repository point to tags that are frequently refreshed, therefore, always pull them
if (infinispanContainer.getDockerImageName().startsWith("quay.io/infinispan-test")) {
infinispanContainer.withImagePullPolicy(PullPolicy.alwaysPull());
}
return infinispanContainer;
default:
throw new RuntimeException("Unsupported database: " + alias);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.keycloak.testsuite.arquillian.HotRodContainerProvider;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.images.PullPolicy;
import org.testcontainers.utility.MountableFile;

import java.io.IOException;
Expand Down Expand Up @@ -50,10 +51,15 @@ public class InfinispanContainer extends GenericContainer<InfinispanContainer> {
private static final Pattern IP_ADDRESS_PATTERN = Pattern.compile("listening on (" + IP_ADDRESS_REGEX + "):" + PORT);

public InfinispanContainer() {
super("quay.io/infinispan/server:" + System.getProperty("infinispan.version"));
super(getImageName());
withEnv("USER", USERNAME);
withEnv("PASS", PASSWORD);
withNetworkMode("host");

// the images in the 'infinispan-test' repository point to tags that are frequently refreshed, therefore, always pull them
if (getImageName().startsWith("quay.io/infinispan-test")) {
withImagePullPolicy(PullPolicy.alwaysPull());
}

Path dir = Path.of(Path.of("").toAbsolutePath() + "/target/lib");
String projectVersion = System.getProperty("project.version");
Expand All @@ -72,6 +78,17 @@ public InfinispanContainer() {
withStartupTimeout(Duration.ofMinutes(5));
}

private static String getImageName() {
String version = System.getProperty("infinispan.version");
if (version.endsWith("-SNAPSHOT")) {
// for snapshot versions, '14.0.13-SNAPSHOT' translates to '14.0.x'
version = version.replaceAll("[0-9]*-SNAPSHOT$", "x");
return "quay.io/infinispan-test/server:" + version;
} else {
return "quay.io/infinispan/server:" + version;
}
}

@Override
public String getHost() {
if (HOST == null && this.isRunning()) {
Expand Down