Polishing.
Remove lingering dockerfiles. Use custom docker image for Cassandra build and OpenJDK 17 image for artifact deployment. Apply consistent formatting. Add missing since tag. See #1170
This commit is contained in:
44
Jenkinsfile
vendored
44
Jenkinsfile
vendored
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
@@ -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; \
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -112,7 +112,7 @@
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-jcdi_2.0_spec</artifactId>
|
||||
<version>1.0.1</version>
|
||||
<scope>test</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@@ -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)
|
||||
.<Field>map(e -> new MetadataBackedField(key, e, getMappingContext()))
|
||||
.orElseGet(() -> new Field(key));
|
||||
return Optional.ofNullable(entity).<Field> 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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user