Skip to content

Commit 8cdef82

Browse files
committed
Upgrade to Cassandra 5.
Closes #1503
1 parent 4bb860f commit 8cdef82

File tree

8 files changed

+21
-132
lines changed

8 files changed

+21
-132
lines changed

Jenkinsfile

Lines changed: 5 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -20,36 +20,18 @@ pipeline {
2020
stages {
2121
stage("Docker images") {
2222
parallel {
23-
stage('Publish JDK 17 + Cassandra 3.11') {
23+
stage('Publish JDK 17 + Cassandra 5') {
2424
when {
2525
anyOf {
26-
changeset "ci/openjdk17-8-cassandra-3.11/**"
26+
changeset "ci/openjdk17-cassandra-5/**"
2727
changeset "ci/pipeline.properties"
2828
}
2929
}
3030
agent { label 'data' }
3131
options { timeout(time: 30, unit: 'MINUTES') }
3232
steps {
3333
script {
34-
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/")
35-
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
36-
image.push()
37-
}
38-
}
39-
}
40-
}
41-
stage('Publish JDK.next + Cassandra 3.11') {
42-
when {
43-
anyOf {
44-
changeset "ci/openjdk23-8-cassandra-3.11/**"
45-
changeset "ci/pipeline.properties"
46-
}
47-
}
48-
agent { label 'data' }
49-
options { timeout(time: 30, unit: 'MINUTES') }
50-
steps {
51-
script {
52-
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/")
34+
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/")
5335
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
5436
image.push()
5537
}
@@ -78,9 +60,9 @@ pipeline {
7860
steps {
7961
script {
8062
docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
81-
docker.image("springci/spring-data-with-cassandra-3.11:${p['java.main.tag']}").inside(p['docker.java.inside.docker']) {
63+
docker.image("springci/spring-data-with-cassandra-5:${p['java.main.tag']}").inside(p['docker.java.inside.docker']) {
8264
sh 'mkdir -p /tmp/jenkins-home'
83-
sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &'
65+
sh 'JAVA_HOME=/opt/java/openjdk17 /opt/cassandra/bin/cassandra -R &'
8466
sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' +
8567
"./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 " +
8668
"clean dependency:list verify -Dsort -U -B"
@@ -90,41 +72,6 @@ pipeline {
9072
}
9173
}
9274

93-
stage("Test other configurations") {
94-
when {
95-
beforeAgent(true)
96-
allOf {
97-
branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
98-
not { triggeredBy 'UpstreamCause' }
99-
}
100-
}
101-
parallel {
102-
stage("test: baseline (next)") {
103-
agent {
104-
label 'data'
105-
}
106-
options { timeout(time: 30, unit: 'MINUTES') }
107-
environment {
108-
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
109-
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
110-
}
111-
steps {
112-
script {
113-
docker.withRegistry(p['docker.proxy.registry'], p['docker.proxy.credentials']) {
114-
docker.image("springci/spring-data-with-cassandra-3.11:${p['java.next.tag']}").inside(p['docker.java.inside.docker']) {
115-
sh 'mkdir -p /tmp/jenkins-home'
116-
sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &'
117-
sh 'MAVEN_OPTS="-Duser.name=' + "${p['jenkins.user.name']}" + ' -Duser.home=/tmp/jenkins-home" ' +
118-
"./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 " +
119-
"clean dependency:list verify -Dsort -U -B"
120-
}
121-
}
122-
}
123-
}
124-
}
125-
}
126-
}
127-
12875
stage('Release to artifactory') {
12976
when {
13077
beforeAgent(true)

ci/openjdk17-8-cassandra-3.11/Dockerfile renamed to ci/openjdk17-cassandra-5/Dockerfile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ RUN set -eux; \
1515
useradd -d /home/jenkins-docker -m -u 1001 -U jenkins-docker;
1616

1717
RUN set -eux; \
18-
BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz'; \
18+
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'; \
1919
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
20-
mkdir -p /opt/java/openjdk8; \
21-
cd /opt/java/openjdk8; \
20+
mkdir -p /opt/java/openjdk17; \
21+
cd /opt/java/openjdk17; \
2222
tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
2323
rm -rf /tmp/openjdk.tar.gz;
2424

25-
ENV PATH="/opt/java/openjdk8/bin:$PATH"
2625
ENV MAX_HEAP_SIZE=1500M
2726
ENV HEAP_NEWSIZE=300M

ci/openjdk23-8-cassandra-3.11/Dockerfile

Lines changed: 0 additions & 34 deletions
This file was deleted.

ci/pipeline.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ docker.redis.6.version=6.2.13
1818
docker.redis.7.version=7.2.4
1919

2020
# Supported versions of Cassandra
21-
docker.cassandra.3.version=3.11.16
21+
docker.cassandra.5.version=5.0.3
2222

2323
# Docker environment settings
2424
docker.java.inside.basic=-v $HOME:/tmp/jenkins-home

pom.xml

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
<build.cassandra.rpc_port>19160</build.cassandra.rpc_port>
9090
<build.cassandra.ssl_storage_port>17001</build.cassandra.ssl_storage_port>
9191
<build.cassandra.storage_port>17000</build.cassandra.storage_port>
92-
<cassandra.version>3.11.12</cassandra.version>
92+
<cassandra.version>5.0.3</cassandra.version>
9393
<cassandra-driver.version>4.19.0</cassandra-driver.version>
9494
<dist.id>spring-data-cassandra</dist.id>
9595
<el.version>1.0</el.version>
@@ -130,23 +130,6 @@
130130
</exclusions>
131131
</dependency>
132132

133-
<dependency>
134-
<groupId>org.apache.cassandra</groupId>
135-
<artifactId>cassandra-thrift</artifactId>
136-
<version>${cassandra.version}</version>
137-
<scope>test</scope>
138-
<exclusions>
139-
<exclusion>
140-
<groupId>ch.qos.logback</groupId>
141-
<artifactId>logback-core</artifactId>
142-
</exclusion>
143-
<exclusion>
144-
<groupId>io.netty</groupId>
145-
<artifactId>netty-all</artifactId>
146-
</exclusion>
147-
</exclusions>
148-
</dependency>
149-
150133
<dependency>
151134
<groupId>org.assertj</groupId>
152135
<artifactId>assertj-core</artifactId>

spring-data-cassandra/pom.xml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@
108108
<scope>test</scope>
109109
</dependency>
110110

111+
<dependency>
112+
<groupId>com.googlecode.json-simple</groupId>
113+
<artifactId>json-simple</artifactId>
114+
<version>1.1</version>
115+
<scope>test</scope>
116+
</dependency>
117+
111118
<!-- Reactor -->
112119
<dependency>
113120
<groupId>io.projectreactor</groupId>
@@ -163,11 +170,6 @@
163170
</exclusions>
164171
</dependency>
165172

166-
<dependency>
167-
<groupId>org.apache.cassandra</groupId>
168-
<artifactId>cassandra-thrift</artifactId>
169-
</dependency>
170-
171173
<dependency>
172174
<groupId>org.testcontainers</groupId>
173175
<artifactId>cassandra</artifactId>

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/CassandraDelegate.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.springframework.util.Assert;
3434
import org.springframework.util.StringUtils;
3535

36-
import org.testcontainers.containers.CassandraContainer;
36+
import org.testcontainers.cassandra.CassandraContainer;
3737
import org.testcontainers.utility.DockerImageName;
3838
import org.testcontainers.utility.MountableFile;
3939

@@ -61,7 +61,7 @@
6161
*/
6262
class CassandraDelegate {
6363

64-
private static CassandraContainer<?> container;
64+
private static CassandraContainer container;
6565

6666
private static final Logger log = LoggerFactory.getLogger(CassandraDelegate.class);
6767

@@ -276,7 +276,8 @@ private void runTestcontainerCassandra() {
276276

277277
if (container == null) {
278278

279-
container = getCassandraDockerImageName().map(CassandraContainer::new).orElseGet(CassandraContainer::new);
279+
container = getCassandraDockerImageName().map(CassandraContainer::new)
280+
.orElseGet(() -> new CassandraContainer("cassandra:5.0.3"));
280281

281282
DockerImageName imageName = DockerImageName.parse(container.getDockerImageName());
282283
String versionPart = imageName.getVersionPart();

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/util/EmbeddedCassandraServerHelper.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,6 @@ public static int getNativeTransportPort() {
101101
return DatabaseDescriptor.getNativeTransportPort();
102102
}
103103

104-
/**
105-
* Get embedded cassandra RPC port.
106-
*
107-
* @return the cassandra RPC port
108-
*/
109-
public static int getRpcPort() {
110-
return DatabaseDescriptor.getRpcPort();
111-
}
112-
113104
/**
114105
* Start an embedded Cassandra instance.
115106
*

0 commit comments

Comments
 (0)