diff --git a/Jenkinsfile b/Jenkinsfile
index 7e73d1ece..dd5ccd2cd 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -3,7 +3,7 @@ pipeline {
triggers {
pollSCM 'H/10 * * * *'
- upstream(upstreamProjects: "spring-data-commons/main", threshold: hudson.model.Result.SUCCESS)
+ upstream(upstreamProjects: "spring-data-commons/3.0.x", threshold: hudson.model.Result.SUCCESS)
}
options {
@@ -16,14 +16,14 @@ pipeline {
parallel {
stage('Publish JDK 17 + Cassandra 3.11') {
when {
- changeset "ci/openjdk17-cassandra-3.11/**"
+ changeset "ci/openjdk17-8-cassandra-3.11/**"
}
agent { label 'data' }
options { timeout(time: 30, unit: 'MINUTES') }
steps {
script {
- def image = docker.build("springci/spring-data-openjdk17-cassandra-3.11", "ci/openjdk17-cassandra-3.11/")
+ def image = docker.build("springci/spring-data-openjdk17-8-cassandra-3.11", "ci/openjdk17-8-cassandra-3.11/")
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
image.push()
}
@@ -33,7 +33,7 @@ pipeline {
}
}
- stage("test: baseline (jdk17)") {
+ stage("test: baseline (Java 17)") {
when {
beforeAgent(true)
anyOf {
@@ -51,9 +51,9 @@ pipeline {
steps {
script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
- docker.image('springci/spring-data-openjdk17-cassandra-3.11:latest').inside('-u root -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home') {
+ docker.image('springci/spring-data-openjdk17-8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') {
sh 'mkdir -p /tmp/jenkins-home'
- sh 'JAVA_HOME=/opt/java/openjdk /opt/cassandra/bin/cassandra -R &'
+ sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &'
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra clean dependency:list verify -Dsort -U -B'
}
}
@@ -81,7 +81,7 @@ pipeline {
steps {
script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
- docker.image('adoptopenjdk/openjdk17:latest').inside('-u root -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home') {
+ docker.image('openjdk:17-bullseye').inside('-v $HOME:/tmp/jenkins-home') {
sh 'mkdir -p /tmp/jenkins-home'
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
'-Dartifactory.server=https://repo.spring.io ' +
@@ -96,36 +96,6 @@ pipeline {
}
}
}
-
- stage('Publish documentation') {
- when {
- branch 'main'
- }
- agent {
- label 'data'
- }
- options { timeout(time: 20, unit: 'MINUTES') }
-
- environment {
- ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
- }
-
- steps {
- script {
- docker.withRegistry('', 'hub.docker.com-springbuildmaster') {
- docker.image('adoptopenjdk/openjdk17:latest').inside('-u root -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v $HOME:/tmp/jenkins-home') {
- sh 'mkdir -p /tmp/jenkins-home'
- sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,distribute ' +
- '-Dartifactory.server=https://repo.spring.io ' +
- "-Dartifactory.username=${ARTIFACTORY_USR} " +
- "-Dartifactory.password=${ARTIFACTORY_PSW} " +
- "-Dartifactory.distribution-repository=temp-private-local " +
- '-Dmaven.test.skip=true clean deploy -U -B'
- }
- }
- }
- }
- }
}
post {
diff --git a/ci/openjdk11-8-cassandra-3.11/Dockerfile b/ci/openjdk11-8-cassandra-3.11/Dockerfile
deleted file mode 100644
index 64354f436..000000000
--- a/ci/openjdk11-8-cassandra-3.11/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-FROM adoptopenjdk/openjdk11:latest
-
-RUN set -eux; \
- CASSANDRA_URL='https://archive.apache.org/dist/cassandra/3.11.10/apache-cassandra-3.11.10-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/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u292b10.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/openjdk17-8-cassandra-3.11/Dockerfile b/ci/openjdk17-8-cassandra-3.11/Dockerfile
index 0a09eebe8..d33f3627e 100644
--- a/ci/openjdk17-8-cassandra-3.11/Dockerfile
+++ b/ci/openjdk17-8-cassandra-3.11/Dockerfile
@@ -1,7 +1,7 @@
FROM openjdk:17-bullseye
RUN set -eux; \
- CASSANDRA_URL='https://archive.apache.org/dist/cassandra/3.11.10/apache-cassandra-3.11.10-bin.tar.gz'; \
+ CASSANDRA_URL='https://archive.apache.org/dist/cassandra/3.11.11/apache-cassandra-3.11.11-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; \
diff --git a/ci/openjdk17-cassandra-3.11/Dockerfile b/ci/openjdk17-cassandra-3.11/Dockerfile
deleted file mode 100644
index 1ab854563..000000000
--- a/ci/openjdk17-cassandra-3.11/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM adoptopenjdk/openjdk17:latest
-
-RUN set -eux; \
- CASSANDRA_URL='https://www-us.apache.org/dist/cassandra/3.11.11/apache-cassandra-3.11.11-bin.tar.gz'; \
- 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/AdoptOpenJDK/openjdk17-binaries/releases/download/jdk17/OpenJDK17-jdk_x64_linux_hotspot_17.tar.gz'; \
- curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
- 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/openjdk17/bin:$PATH"
-ENV MAX_HEAP_SIZE=1500M
-ENV HEAP_NEWSIZE=300M
diff --git a/ci/openjdk8-cassandra-3.11/Dockerfile b/ci/openjdk8-cassandra-3.11/Dockerfile
deleted file mode 100644
index 6519226c7..000000000
--- a/ci/openjdk8-cassandra-3.11/Dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-FROM adoptopenjdk/openjdk8:latest
-
-RUN set -eux; \
- CASSANDRA_URL='https://archive.apache.org/dist/cassandra/3.11.10/apache-cassandra-3.11.10-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;
-
-ENV MAX_HEAP_SIZE=1500M
-ENV HEAP_NEWSIZE=300M
diff --git a/spring-data-cassandra/pom.xml b/spring-data-cassandra/pom.xml
index 20a9110a1..79a87991d 100644
--- a/spring-data-cassandra/pom.xml
+++ b/spring-data-cassandra/pom.xml
@@ -112,7 +112,7 @@
org.apache.geronimo.specs
geronimo-jcdi_2.0_spec
1.0.1
- test
+ provided
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java
index dbc713946..8626ca4c3 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java
@@ -121,12 +121,12 @@ public class QueryMapper {
field.getProperty().filter(CassandraPersistentProperty::isCompositePrimaryKey).ifPresent(it -> {
throw new IllegalArgumentException(
- "Cannot use composite primary key directly. Reference a property of the composite primary key");
+ "Cannot use composite primary key directly. Reference a property of the composite primary key");
});
field.getProperty().filter(CassandraPersistentProperty::hasOrdinal).ifPresent(it -> {
throw new IllegalArgumentException(
- String.format("Cannot reference tuple value elements, property [%s]", field.getMappedKey()));
+ String.format("Cannot reference tuple value elements, property [%s]", field.getMappedKey()));
});
Predicate predicate = criteriaDefinition.getPredicate();
@@ -224,9 +224,7 @@ public class QueryMapper {
}).toArray());
- return functionCall.getAlias()
- .map(mappedFunctionCall::as)
- .orElse(mappedFunctionCall);
+ return functionCall.getAlias().map(mappedFunctionCall::as).orElse(mappedFunctionCall);
}
throw new IllegalArgumentException(String.format("Selector [%s] not supported", selector));
@@ -345,18 +343,16 @@ public class QueryMapper {
Field createPropertyField(@Nullable CassandraPersistentEntity> entity, ColumnName key) {
- return Optional.ofNullable(entity)
- .map(e -> new MetadataBackedField(key, e, getMappingContext()))
- .orElseGet(() -> new Field(key));
+ return Optional.ofNullable(entity). map(e -> new MetadataBackedField(key, e, getMappingContext()))
+ .orElseGet(() -> new Field(key));
}
ColumnType getColumnType(Field field, @Nullable Object value, ColumnTypeTransformer operator) {
ColumnTypeResolver resolver = converter.getColumnTypeResolver();
- return field.getProperty()
- .map(it -> operator.transform(resolver.resolve(it), it))
- .orElseGet(() -> resolver.resolve(value));
+ return field.getProperty().map(it -> operator.transform(resolver.resolve(it), it))
+ .orElseGet(() -> resolver.resolve(value));
}
/**
@@ -462,10 +458,8 @@ public class QueryMapper {
static ColumnTypeTransformer of(Field field, CriteriaDefinition.Operator operator) {
if (operator == CriteriaDefinition.Operators.CONTAINS) {
- return field.getProperty()
- .filter(CassandraPersistentProperty::isMapLike)
- .map(it -> MAP_VALUE_TYPE)
- .orElse(COLLECTION_COMPONENT_TYPE);
+ return field.getProperty().filter(CassandraPersistentProperty::isMapLike).map(it -> MAP_VALUE_TYPE)
+ .orElse(COLLECTION_COMPONENT_TYPE);
}
if (operator == CriteriaDefinition.Operators.CONTAINS_KEY) {
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentProperty.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentProperty.java
index 1f00fb029..0415c0d1d 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentProperty.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentProperty.java
@@ -134,12 +134,13 @@ public interface CassandraPersistentProperty
}
/**
- * Determines whether this {@link CassandraPersistentProperty} is persisted (mapped) to an element ordinal
- * when the owning type is a mapped tuple.
+ * Determines whether this {@link CassandraPersistentProperty} is persisted (mapped) to an element ordinal when the
+ * owning type is a mapped tuple.
*
- * @return a boolean value indicating whether this {@link CassandraPersistentProperty} is persisted (mapped) to
- * an element ordinal when the owning type is a mapped tuple.
+ * @return a boolean value indicating whether this {@link CassandraPersistentProperty} is persisted (mapped) to an
+ * element ordinal when the owning type is a mapped tuple.
* @see #getOrdinal()
+ * @since 4.0
*/
default boolean hasOrdinal() {
return getOrdinal() != null;