diff --git a/Jenkinsfile b/Jenkinsfile index 82d4247f9..11885b8af 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,10 +20,10 @@ pipeline { stages { stage("Docker images") { parallel { - stage('Publish JDK 17 + Cassandra 3.11') { + stage('Publish JDK 17 + Cassandra 5') { when { anyOf { - changeset "ci/openjdk17-8-cassandra-3.11/**" + changeset "ci/openjdk17-cassandra-5/**" changeset "ci/pipeline.properties" } } @@ -31,25 +31,7 @@ pipeline { options { timeout(time: 30, unit: 'MINUTES') } steps { script { - def image = docker.build("springci/spring-data-with-cassandra-3.11:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg CASSANDRA=${p['docker.cassandra.3.version']} ci/openjdk17-8-cassandra-3.11/") - docker.withRegistry(p['docker.registry'], p['docker.credentials']) { - image.push() - } - } - } - } - stage('Publish JDK.next + Cassandra 3.11') { - when { - anyOf { - changeset "ci/openjdk23-8-cassandra-3.11/**" - changeset "ci/pipeline.properties" - } - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - steps { - script { - def image = docker.build("springci/spring-data-with-cassandra-3.11:${p['java.next.tag']}", "--build-arg BASE=${p['docker.java.next.image']} --build-arg CASSANDRA=${p['docker.cassandra.3.version']} ci/openjdk23-8-cassandra-3.11/") + def image = docker.build("springci/spring-data-with-cassandra-5:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg CASSANDRA=${p['docker.cassandra.3.version']} ci/openjdk17-cassandra-5/") docker.withRegistry(p['docker.registry'], p['docker.credentials']) { image.push() } @@ -78,9 +60,9 @@ pipeline { steps { script { docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) { - docker.image("springci/spring-data-with-cassandra-3.11:${p['java.main.tag']}").inside(p['docker.java.inside.docker']) { + docker.image("springci/spring-data-with-cassandra-5:${p['java.main.tag']}").inside(p['docker.java.inside.docker']) { sh 'mkdir -p /tmp/jenkins-home' - sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &' + sh 'JAVA_HOME=/opt/java/openjdk17 /opt/cassandra/bin/cassandra -R &' sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' + "./mvnw -s settings.xml -Pci,external-cassandra -Ddevelocity.storage.directory=/tmp/jenkins-home/.develocity-root -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-cassandra " + "clean dependency:list verify -Dsort -U -B" @@ -90,41 +72,6 @@ pipeline { } } - stage("Test other configurations") { - when { - beforeAgent(true) - allOf { - branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP") - not { triggeredBy 'UpstreamCause' } - } - } - parallel { - stage("test: baseline (next)") { - agent { - label 'data' - } - options { timeout(time: 30, unit: 'MINUTES') } - environment { - ARTIFACTORY = credentials("${p['artifactory.credentials']}") - DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}") - } - steps { - script { - docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) { - docker.image("springci/spring-data-with-cassandra-3.11:${p['java.next.tag']}").inside(p['docker.java.inside.docker']) { - sh 'mkdir -p /tmp/jenkins-home' - sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &' - sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' + - "./mvnw -s settings.xml -Pci,external-cassandra -Ddevelocity.storage.directory=/tmp/jenkins-home/.develocity-root -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-cassandra " + - "clean dependency:list verify -Dsort -U -B" - } - } - } - } - } - } - } - stage('Release to artifactory') { when { beforeAgent(true) diff --git a/ci/openjdk17-8-cassandra-3.11/Dockerfile b/ci/openjdk17-cassandra-5/Dockerfile similarity index 76% rename from ci/openjdk17-8-cassandra-3.11/Dockerfile rename to ci/openjdk17-cassandra-5/Dockerfile index d3653d0c1..d87a0b8b0 100644 --- a/ci/openjdk17-8-cassandra-3.11/Dockerfile +++ b/ci/openjdk17-cassandra-5/Dockerfile @@ -15,13 +15,12 @@ RUN set -eux; \ useradd -d /home/jenkins-docker -m -u 1001 -U jenkins-docker; RUN set -eux; \ - BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz'; \ + BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.14%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.14_7.tar.gz'; \ curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \ - mkdir -p /opt/java/openjdk8; \ - cd /opt/java/openjdk8; \ + mkdir -p /opt/java/openjdk17; \ + cd /opt/java/openjdk17; \ tar -xf /tmp/openjdk.tar.gz --strip-components=1; \ rm -rf /tmp/openjdk.tar.gz; -ENV PATH="/opt/java/openjdk8/bin:$PATH" ENV MAX_HEAP_SIZE=1500M ENV HEAP_NEWSIZE=300M diff --git a/ci/openjdk23-8-cassandra-3.11/Dockerfile b/ci/openjdk23-8-cassandra-3.11/Dockerfile deleted file mode 100644 index 37f35f8db..000000000 --- a/ci/openjdk23-8-cassandra-3.11/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -ARG BASE -FROM ${BASE} -# Any ARG statements before FROM are cleared. -ARG CASSANDRA - -RUN set -eux; \ -# sed -i -e 's/http/https/g' /etc/apt/sources.list ; \ - apt-get update ; \ - apt-get install -y curl; \ - apt-get clean; \ - rm -rf /var/lib/apt/lists/*; - -RUN set -eux; \ - CASSANDRA_URL="https://archive.apache.org/dist/cassandra/${CASSANDRA}/apache-cassandra-${CASSANDRA}-bin.tar.gz"; \ - sed -i -e 's/http/https/g' /etc/apt/sources.list ; \ - curl -LfsSo /tmp/cassandra.tar.gz ${CASSANDRA_URL}; \ - mkdir -p /opt/cassandra /opt/cassandra/data /opt/cassandra/logs; \ - cd /opt/cassandra; \ - tar -xf /tmp/cassandra.tar.gz --strip-components=1; \ - rm -rf /tmp/cassandra.tar.gz; \ - chmod -R a+rwx /opt/cassandra; \ - useradd -d /home/jenkins-docker -m -u 1001 -U jenkins-docker; - -RUN set -eux; \ - BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz'; \ - curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \ - mkdir -p /opt/java/openjdk8; \ - cd /opt/java/openjdk8; \ - tar -xf /tmp/openjdk.tar.gz --strip-components=1; \ - rm -rf /tmp/openjdk.tar.gz; - -ENV PATH="/opt/java/openjdk8/bin:$PATH" -ENV MAX_HEAP_SIZE=1500M -ENV HEAP_NEWSIZE=300M diff --git a/ci/pipeline.properties b/ci/pipeline.properties index cd2fcf7fb..9198f08b3 100644 --- a/ci/pipeline.properties +++ b/ci/pipeline.properties @@ -18,7 +18,7 @@ docker.redis.6.version=6.2.13 docker.redis.7.version=7.2.4 # Supported versions of Cassandra -docker.cassandra.3.version=3.11.16 +docker.cassandra.5.version=5.0.3 # Docker environment settings docker.java.inside.basic=-v $HOME:/tmp/jenkins-home diff --git a/pom.xml b/pom.xml index 3c5082df2..6772e8dc4 100644 --- a/pom.xml +++ b/pom.xml @@ -89,7 +89,7 @@ 19160 17001 17000 - 3.11.12 + 5.0.3 4.19.0 spring-data-cassandra 1.0 @@ -130,23 +130,6 @@ - - org.apache.cassandra - cassandra-thrift - ${cassandra.version} - test - - - ch.qos.logback - logback-core - - - io.netty - netty-all - - - - org.assertj assertj-core diff --git a/spring-data-cassandra/pom.xml b/spring-data-cassandra/pom.xml index 7cc663a41..3b1b06577 100644 --- a/spring-data-cassandra/pom.xml +++ b/spring-data-cassandra/pom.xml @@ -108,6 +108,13 @@ test + + com.googlecode.json-simple + json-simple + 1.1 + test + + io.projectreactor @@ -163,11 +170,6 @@ - - org.apache.cassandra - cassandra-thrift - - org.testcontainers cassandra diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/CassandraDelegate.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/CassandraDelegate.java index 73f2a5a9e..007ac23b3 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/CassandraDelegate.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/CassandraDelegate.java @@ -33,7 +33,7 @@ import org.springframework.lang.NonNull; import org.springframework.util.Assert; import org.springframework.util.StringUtils; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; @@ -61,7 +61,7 @@ import com.datastax.oss.driver.api.core.metadata.Node; */ class CassandraDelegate { - private static CassandraContainer container; + private static CassandraContainer container; private static final Logger log = LoggerFactory.getLogger(CassandraDelegate.class); @@ -276,7 +276,8 @@ class CassandraDelegate { if (container == null) { - container = getCassandraDockerImageName().map(CassandraContainer::new).orElseGet(CassandraContainer::new); + container = getCassandraDockerImageName().map(CassandraContainer::new) + .orElseGet(() -> new CassandraContainer("cassandra:5.0.3")); DockerImageName imageName = DockerImageName.parse(container.getDockerImageName()); String versionPart = imageName.getVersionPart(); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/EmbeddedCassandraServerHelper.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/EmbeddedCassandraServerHelper.java index 55d3fcaa6..2fb2ba8fb 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/EmbeddedCassandraServerHelper.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/EmbeddedCassandraServerHelper.java @@ -101,15 +101,6 @@ class EmbeddedCassandraServerHelper { return DatabaseDescriptor.getNativeTransportPort(); } - /** - * Get embedded cassandra RPC port. - * - * @return the cassandra RPC port - */ - public static int getRpcPort() { - return DatabaseDescriptor.getRpcPort(); - } - /** * Start an embedded Cassandra instance. *