diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index d97461fd..4be1e639 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -4,13 +4,13 @@ on: push: branches: - main + - 15.0.x - development - - 14.0.x pull_request: branches: - main + - 15.0.x - development - - 14.0.x jobs: test: @@ -26,26 +26,32 @@ jobs: cache: maven - if: github.base_ref == 'main' || github.ref_name == 'main' - name: Start Infinispan Server Latest Version + name: Start Infinispan Server Latest Stable Version run: | - docker run -d -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:15.0 + docker run -d -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:15.2 -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 + docker run -d -p 31223:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:15.2 -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 # Wait for server to startup curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:11222/rest/v2/container/health/status > /dev/null + curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:31223/rest/v2/container/health/status > /dev/null - if: github.base_ref == 'development' || github.ref_name == 'development' - name: Start Infinispan Server Latest Version + name: Start Infinispan Server Latest Development Version run: | - docker run -d -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan-test/server:main + docker run -d -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan-test/server:main -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 + docker run -d -p 31223:11222 -e USER="admin" -e PASS="password" quay.io/infinispan-test/server:main -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 + # Wait for server to startup curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:11222/rest/v2/container/health/status > /dev/null + curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:31223/rest/v2/container/health/status > /dev/null - - if: github.base_ref == '14.0.x' || github.ref_name == '14.0.x' - name: Start Infinispan Server Latest Version + - if: github.base_ref == '15.0.x' || github.ref_name == '15.0.x' + name: Start Infinispan Server Latest 15.0 LTS Version run: | - docker run -d -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:14.0 + docker run -d -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:15.0 -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 + docker run -d -p 31223:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:15.0 -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 # Wait for server to startup - curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:11222/rest/v2/cache-managers/default/health/status > /dev/null - + curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:11222/rest/v2/container/health/status > /dev/null + curl --fail --silent --show-error --retry-all-errors --retry 240 --retry-delay 1 http://localhost:31223/rest/v2/container/health/status > /dev/null - name: JDK 17 Tests run: ./mvnw -B clean install -Dmaven.test.failure.ignore=true diff --git a/infinispan-embedded/kubernetes/pom.xml b/infinispan-embedded/kubernetes/pom.xml index f7b3f1f0..56cf4e08 100644 --- a/infinispan-embedded/kubernetes/pom.xml +++ b/infinispan-embedded/kubernetes/pom.xml @@ -98,7 +98,7 @@ ${options.image} infinispan - registry.access.redhat.com/ubi9/openjdk-21-runtime + eclipse-temurin:21-jre /maven/${project.artifactId}-${project.version}.jar ${options.debug} ${options.useIPv4} ${options.dnsPing} diff --git a/infinispan-remote/connect-to-infinispan-server/pom.xml b/infinispan-remote/connect-to-infinispan-server/pom.xml index 3ccf1e99..53083dd8 100644 --- a/infinispan-remote/connect-to-infinispan-server/pom.xml +++ b/infinispan-remote/connect-to-infinispan-server/pom.xml @@ -24,7 +24,7 @@ org.testcontainers testcontainers - 1.20.4 + ${testcontainers.version} diff --git a/infinispan-remote/connect-to-infinispan-server/src/main/java/org/infinispan/tutorial/simple/connect/TutorialsConnectorHelper.java b/infinispan-remote/connect-to-infinispan-server/src/main/java/org/infinispan/tutorial/simple/connect/TutorialsConnectorHelper.java index e1ea6971..f6e5cb76 100644 --- a/infinispan-remote/connect-to-infinispan-server/src/main/java/org/infinispan/tutorial/simple/connect/TutorialsConnectorHelper.java +++ b/infinispan-remote/connect-to-infinispan-server/src/main/java/org/infinispan/tutorial/simple/connect/TutorialsConnectorHelper.java @@ -4,6 +4,7 @@ import org.infinispan.client.hotrod.RemoteCacheManager; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; import org.infinispan.client.hotrod.impl.ConfigurationProperties; +import org.infinispan.commons.util.Version; import org.infinispan.server.test.core.InfinispanContainer; /** @@ -23,7 +24,6 @@ public class TutorialsConnectorHelper { "\n" + " \n" + ""; - /** * Returns the configuration builder with the connection information * @@ -104,13 +104,19 @@ public static InfinispanContainer startInfinispanContainer() { public static InfinispanContainer startInfinispanContainer(long millis) { try { - INFINISPAN_CONTAINER = new InfinispanContainer(); + if (Version.getUnbrandedVersion().contains("SNAPSHOT")) { + // we are using an Infinispan Dev version, use the latest build of the image + INFINISPAN_CONTAINER = new InfinispanContainer("quay.io/infinispan-test/server:main"); + } else { + INFINISPAN_CONTAINER = new InfinispanContainer(); + } INFINISPAN_CONTAINER.withUser(USER); INFINISPAN_CONTAINER.withPassword(PASSWORD); INFINISPAN_CONTAINER.start(); Thread.sleep(millis); } catch (Exception ex) { System.out.println("Unable to start Infinispan container"); + stopInfinispanContainer(); return null; } return INFINISPAN_CONTAINER; diff --git a/infinispan-remote/continuous-query/pom.xml b/infinispan-remote/continuous-query/pom.xml index b21ea6a7..97b9138d 100644 --- a/infinispan-remote/continuous-query/pom.xml +++ b/infinispan-remote/continuous-query/pom.xml @@ -43,18 +43,6 @@ connect-to-infinispan-server ${project.version} - - org.infinispan - infinispan-client-hotrod - - - org.infinispan - infinispan-remote-query-client - - - org.infinispan - infinispan-query-dsl - org.infinispan.protostream protostream-processor diff --git a/infinispan-remote/cross-site-replication/docker-compose/docker-compose.yaml b/infinispan-remote/cross-site-replication/docker-compose/docker-compose.yaml index b58ff9a7..41429bc1 100644 --- a/infinispan-remote/cross-site-replication/docker-compose/docker-compose.yaml +++ b/infinispan-remote/cross-site-replication/docker-compose/docker-compose.yaml @@ -5,7 +5,7 @@ networks: driver: bridge services: infinispan-server-lon-1: - image: quay.io/infinispan/server:15.0 + image: quay.io/infinispan-test/server-main ports: - "11222:11222" container_name: ispn-lon-1 @@ -14,9 +14,9 @@ services: PASS: password networks: - mynetwork - command: -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 +# command: -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 infinispan-server-lon-2: - image: quay.io/infinispan/server:15.0 + image: quay.io/infinispan/server:15.2 ports: - "11221:11222" container_name: ispn-lon-2 @@ -25,26 +25,26 @@ services: PASS: password networks: - mynetwork - command: -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 - infinispan-server-nyc-1: - image: quay.io/infinispan/server:15.0 - ports: - - "31222:11222" - container_name: ispn-nyc-1 - environment: - USER: admin - PASS: password - networks: - - mynetwork - command: -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 - infinispan-server-nyc-2: - image: quay.io/infinispan/server:15.0 - ports: - - "31223:11222" - container_name: ispn-nyc-2 - environment: - USER: admin - PASS: password - networks: - - mynetwork - command: -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 \ No newline at end of file +# command: -c infinispan-xsite.xml -Dinfinispan.site.name=LON -Djgroups.mcast_port=46656 +# infinispan-server-nyc-1: +# image: quay.io/infinispan/server:15.0 +# ports: +# - "31222:11222" +# container_name: ispn-nyc-1 +# environment: +# USER: admin +# PASS: password +# networks: +# - mynetwork +# command: -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 +# infinispan-server-nyc-2: +# image: quay.io/infinispan/server:15.0 +# ports: +# - "31223:11222" +# container_name: ispn-nyc-2 +# environment: +# USER: admin +# PASS: password +# networks: +# - mynetwork +# command: -c infinispan-xsite.xml -Dinfinispan.site.name=NYC -Djgroups.mcast_port=46666 \ No newline at end of file diff --git a/infinispan-remote/cross-site-replication/src/main/java/org/infinispan/tutorial/simple/remote/xsite/InfinispanRemoteSwitchCluster.java b/infinispan-remote/cross-site-replication/src/main/java/org/infinispan/tutorial/simple/remote/xsite/InfinispanRemoteSwitchCluster.java index 25ec58b0..68904753 100644 --- a/infinispan-remote/cross-site-replication/src/main/java/org/infinispan/tutorial/simple/remote/xsite/InfinispanRemoteSwitchCluster.java +++ b/infinispan-remote/cross-site-replication/src/main/java/org/infinispan/tutorial/simple/remote/xsite/InfinispanRemoteSwitchCluster.java @@ -33,7 +33,6 @@ static void manipulateCacheAndSwitchCluster() { cache.put("hello", "world"); printCluster("LON", cache); System.out.println("hello " + cache.get("hello") + " from LON"); - client.switchToCluster("NYC"); printCluster("NYC", cache); System.out.println("hello " + cache.get("hello") + " from NYC"); cache.put("hello-nyc", "world"); @@ -56,7 +55,9 @@ public static void connectToInfinispan() { cache = client.administration() // this cache should exist if you start with docker-compose and run the create-data.sh script .getOrCreateCache(XSITE_CACHE, new StringConfiguration("")); - + client.switchToCluster("NYC"); + client.administration().getOrCreateCache(XSITE_CACHE, new StringConfiguration("")); + client.switchToDefaultCluster(); } public static void disconnect(boolean removeCache) { diff --git a/infinispan-remote/junit5/pom.xml b/infinispan-remote/junit5/pom.xml index 9b2df21d..8181989c 100644 --- a/infinispan-remote/junit5/pom.xml +++ b/infinispan-remote/junit5/pom.xml @@ -22,13 +22,4 @@ test - - - - - maven-surefire-plugin - 3.5.2 - - - diff --git a/infinispan-remote/junit5/src/test/java/org/infinispan/tutorial/simple/remote/junit5/CachingServiceTest.java b/infinispan-remote/junit5/src/test/java/org/infinispan/tutorial/simple/remote/junit5/CachingServiceTest.java index bafba607..3b60c057 100644 --- a/infinispan-remote/junit5/src/test/java/org/infinispan/tutorial/simple/remote/junit5/CachingServiceTest.java +++ b/infinispan-remote/junit5/src/test/java/org/infinispan/tutorial/simple/remote/junit5/CachingServiceTest.java @@ -2,6 +2,9 @@ import org.infinispan.client.hotrod.RemoteCache; import org.infinispan.client.hotrod.RemoteCacheManager; +import org.infinispan.commons.util.Version; +import org.infinispan.server.test.core.ServerRunMode; +import org.infinispan.server.test.core.TestSystemPropertyNames; import org.infinispan.server.test.junit5.InfinispanServerExtension; import org.infinispan.server.test.junit5.InfinispanServerExtensionBuilder; import org.junit.jupiter.api.Test; @@ -16,7 +19,21 @@ public class CachingServiceTest { @RegisterExtension - static InfinispanServerExtension infinispanServerExtension = InfinispanServerExtensionBuilder.server(); + static InfinispanServerExtension infinispanServerExtension = buildExtension(); + + static InfinispanServerExtension buildExtension() { + if (Version.getUnbrandedVersion().contains("SNAPSHOT")) { + // In our dev branch, we need to build with the latest main branch image. + return InfinispanServerExtensionBuilder + .config() + .numServers(1) + .runMode(ServerRunMode.CONTAINER) + .property(TestSystemPropertyNames.INFINISPAN_TEST_SERVER_BASE_IMAGE_NAME, "quay.io/infinispan-test/server:main") + .build(); + } + + return InfinispanServerExtensionBuilder.server(); + } @Test public void testUsingRemoteCacheManager(){ diff --git a/infinispan-remote/per-cache-configuration/src/main/java/org/infinispan/tutorial/simple/remote/percache/InfinispanRemotePerCache.java b/infinispan-remote/per-cache-configuration/src/main/java/org/infinispan/tutorial/simple/remote/percache/InfinispanRemotePerCache.java index 059978c3..5f1e1139 100644 --- a/infinispan-remote/per-cache-configuration/src/main/java/org/infinispan/tutorial/simple/remote/percache/InfinispanRemotePerCache.java +++ b/infinispan-remote/per-cache-configuration/src/main/java/org/infinispan/tutorial/simple/remote/percache/InfinispanRemotePerCache.java @@ -1,9 +1,9 @@ package org.infinispan.tutorial.simple.remote.percache; -import org.infinispan.client.hotrod.DefaultTemplate; import org.infinispan.client.hotrod.RemoteCache; import org.infinispan.client.hotrod.RemoteCacheManager; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; +import org.infinispan.commons.configuration.StringConfiguration; import org.infinispan.tutorial.simple.connect.TutorialsConnectorHelper; /** @@ -24,6 +24,7 @@ public class InfinispanRemotePerCache { public static final String MY_CACHE = "my-cache"; public static final String ANOTHER_CACHE = "another-cache"; public static final String URI_CACHE = "uri-cache"; + public static final String MY_CUSTOM_TEMPLATE = "my-custom-template"; static RemoteCacheManager cacheManager; static RemoteCache cache; static RemoteCache anotherCache; @@ -64,7 +65,9 @@ public static void connectToInfinispan() throws Exception { //Add per-cache configuration that uses an org.infinispan cache template. builder.remoteCache(MY_CACHE) - .templateName(DefaultTemplate.DIST_SYNC); + // we can declare a template, even if the template does not exist yet. + // however, the template has to be present on first access to create the cache. + .templateName(MY_CUSTOM_TEMPLATE); //Add per-cache configuration with a cache definition in XML format. builder.remoteCache(ANOTHER_CACHE) .configuration(""); @@ -73,6 +76,9 @@ public static void connectToInfinispan() throws Exception { InfinispanRemotePerCache.class.getClassLoader().getResource("cacheConfig.xml").toURI()); cacheManager = TutorialsConnectorHelper.connect(builder); + // create the template that is used to create MY-CACHE on first access + cacheManager.administration().removeTemplate(MY_CUSTOM_TEMPLATE); + cacheManager.administration().createTemplate(MY_CUSTOM_TEMPLATE, new StringConfiguration("")); } public static void disconnect(boolean removeCaches) { diff --git a/infinispan-remote/persistence/sql-store/pom.xml b/infinispan-remote/persistence/sql-store/pom.xml index 47a9fa77..a7facc1f 100644 --- a/infinispan-remote/persistence/sql-store/pom.xml +++ b/infinispan-remote/persistence/sql-store/pom.xml @@ -26,14 +26,6 @@ connect-to-infinispan-server ${project.version} - - org.infinispan - infinispan-client-hotrod - - - org.infinispan - infinispan-remote-query-client - org.infinispan.protostream protostream-processor @@ -58,14 +50,6 @@ - - maven-compiler-plugin - 3.8.1 - - - maven-surefire-plugin - 3.5.2 - org.codehaus.mojo exec-maven-plugin diff --git a/infinispan-remote/programmatic-protostream-marshalling/pom.xml b/infinispan-remote/programmatic-protostream-marshalling/pom.xml index 06df17ca..319decf8 100644 --- a/infinispan-remote/programmatic-protostream-marshalling/pom.xml +++ b/infinispan-remote/programmatic-protostream-marshalling/pom.xml @@ -42,29 +42,6 @@ connect-to-infinispan-server ${project.version} - - - org.infinispan - infinispan-api - - - org.infinispan - infinispan-client-hotrod - - - - org.infinispan - infinispan-remote-query-client - - - org.infinispan - infinispan-query-dsl - - - org.infinispan.protostream - protostream-processor - ${version.protostream} - org.junit.jupiter junit-jupiter diff --git a/infinispan-remote/query/pom.xml b/infinispan-remote/query/pom.xml index f1e03aa6..dded1808 100644 --- a/infinispan-remote/query/pom.xml +++ b/infinispan-remote/query/pom.xml @@ -42,24 +42,6 @@ connect-to-infinispan-server ${project.version} - - - org.infinispan - infinispan-api - - - org.infinispan - infinispan-client-hotrod - - - - org.infinispan - infinispan-remote-query-client - - - org.infinispan - infinispan-query-dsl - org.infinispan.protostream protostream-processor diff --git a/infinispan-remote/spatial-queries/pom.xml b/infinispan-remote/spatial-queries/pom.xml index 461ab3d8..6b9d31a0 100644 --- a/infinispan-remote/spatial-queries/pom.xml +++ b/infinispan-remote/spatial-queries/pom.xml @@ -17,6 +17,11 @@ connect-to-infinispan-server ${project.version} + + org.infinispan.protostream + protostream-processor + ${version.protostream} + org.junit.jupiter junit-jupiter @@ -25,7 +30,7 @@ org.assertj assertj-core - 3.27.3 + ${assertj.version} test diff --git a/pom.xml b/pom.xml index 0d4349e3..99d9a1e8 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ org.infinispan infinispan-build-configuration-parent - 16.0.0-SNAPSHOT + 16.0.0.Dev01 4.0.0 org.infinispan.tutorial.simple @@ -12,7 +12,8 @@ Infinispan Tutorial: Simple tutorials - 1.19.1 + 1.20.6 + 3.27.3 @@ -56,7 +57,7 @@ org.apache.maven.plugins maven-compiler-plugin - ${version.maven-compiler-plugin} + ${version.maven.compiler} ${maven.compiler.source} ${maven.compiler.target} @@ -74,7 +75,7 @@ org.apache.maven.plugins maven-enforcer-plugin - ${version.enforcer.plugin} + ${version.maven.enforcer} enforce-java