From 4adef636101f8b24ec97194f3483dde2594d9061 Mon Sep 17 00:00:00 2001 From: Greg Turnquist Date: Mon, 11 Nov 2019 08:53:09 -0600 Subject: [PATCH] DATACMNS-990 - Enable builds on JDK 11+. --- .travis.yml | 10 +--- Jenkinsfile | 45 ++++++++++++++++-- pom.xml | 47 +++++-------------- .../PersistentPropertyPathFactory.java | 4 +- ...eQueryMethodEvaluationContextProvider.java | 3 +- .../QuerydslPredicateBuilderUnitTests.java | 9 ++++ 6 files changed, 67 insertions(+), 51 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4a4dd0f5e..7ab7ad1af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,9 @@ language: java -jdk: - - oraclejdk8 - env: matrix: - PROFILE=ci - PROFILE=spring52-next - - PROFILE=querydsl-next cache: directories: @@ -15,8 +11,4 @@ cache: install: true -script: "mvn clean dependency:list test -P${PROFILE} -Dsort -U" - -notifications: - slack: - secure: PWyr3+7uTnHzZSrJY2DrowwdYODlIeFZB6tzuq+i/vYqMlX2GGXGQN9YmqbKPeaVZBdSI7YrI1UDa5cPAAXoTjn/JewkL0RbdTeIS6PGCpcpAb5rFMYtOhEDBrFB/SRiMH4tw86bRNKq/SrUWmpkzDtTzLrw7JceumgyqnrT6GY= +script: "./mvnw clean dependency:list test -Pjava11,${PROFILE} -Dsort -U" diff --git a/Jenkinsfile b/Jenkinsfile index ff78d593c..8ee32f02f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -12,7 +12,28 @@ pipeline { } stages { - stage("Test") { + stage("test: baseline (jdk8)") { + when { + anyOf { + branch 'master' + not { triggeredBy 'UpstreamCause' } + } + } + agent { + docker { + image 'adoptopenjdk/openjdk8:latest' + label 'data' + args '-v $HOME:/tmp/jenkins-home' + } + } + options { timeout(time: 30, unit: 'MINUTES') } + steps { + sh 'rm -rf ?' + sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw clean dependency:list verify -Dsort -U -B' + } + } + + stage("Test other configurations") { when { anyOf { branch 'master' @@ -20,10 +41,10 @@ pipeline { } } parallel { - stage("test: baseline") { + stage("test: baseline (jdk11)") { agent { docker { - image 'adoptopenjdk/openjdk8:latest' + image 'adoptopenjdk/openjdk11:latest' label 'data' args '-v $HOME:/tmp/jenkins-home' } @@ -31,11 +52,27 @@ pipeline { options { timeout(time: 30, unit: 'MINUTES') } steps { sh 'rm -rf ?' - sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw clean dependency:list verify -Dsort -U -B' + sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pjava11 clean dependency:list verify -Dsort -U -B' + } + } + + stage("test: baseline (jdk13)") { + agent { + docker { + image 'adoptopenjdk/openjdk13:latest' + label 'data' + args '-v $HOME:/tmp/jenkins-home' + } + } + options { timeout(time: 30, unit: 'MINUTES') } + steps { + sh 'rm -rf ?' + sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pjava11 clean dependency:list verify -Dsort -U -B' } } } } + stage('Release to artifactory') { when { anyOf { diff --git a/pom.xml b/pom.xml index 6a81501ac..ac5bb1204 100644 --- a/pom.xml +++ b/pom.xml @@ -318,45 +318,24 @@ - - - com.mysema.maven - apt-maven-plugin - ${apt} - - - generate-test-sources - - test-process - - - ${project.build.directory}/generated-test-sources/test-annotations - com.querydsl.apt.QuerydslAnnotationProcessor - - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - enforce-rules - - enforce - - - + maven-compiler-plugin - - - [1.8,1.9) - - + + + lombok.launch.AnnotationProcessorHider$AnnotationProcessor + + + lombok.launch.AnnotationProcessorHider$ClaimingProcessor + + + com.querydsl.apt.QuerydslAnnotationProcessor + + + - org.apache.maven.plugins maven-assembly-plugin diff --git a/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java b/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java index d98b59264..1a657a0b1 100644 --- a/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java +++ b/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java @@ -62,7 +62,7 @@ import org.springframework.util.StringUtils; @RequiredArgsConstructor class PersistentPropertyPathFactory, P extends PersistentProperty

> { - private static final Predicate> IS_ENTITY = it -> it.isEntity(); + private static final Predicate>> IS_ENTITY = it -> it.isEntity(); private final Map> propertyPaths = new ConcurrentReferenceHashMap<>(); private final MappingContext context; @@ -289,7 +289,7 @@ class PersistentPropertyPathFactory, P extends static class DefaultPersistentPropertyPaths> implements PersistentPropertyPaths { - private static final Comparator> SHORTEST_PATH = Comparator + private static final Comparator>> SHORTEST_PATH = Comparator .comparingInt(PersistentPropertyPath::getLength); private final TypeInformation type; diff --git a/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java b/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java index 67aa3192b..f0d64ba78 100644 --- a/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java +++ b/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java @@ -30,7 +30,6 @@ import org.aopalliance.intercept.MethodInvocation; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider; import org.springframework.data.spel.spi.EvaluationContextExtension; -import org.springframework.data.util.Streamable; import org.springframework.expression.EvaluationContext; import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.lang.Nullable; @@ -101,7 +100,7 @@ public class ExtensionAwareQueryMethodEvaluationContextProvider implements Query * @param arguments must not be {@literal null}. * @return */ - private static Map collectVariables(Streamable parameters, Object[] arguments) { + private static Map collectVariables(Parameters parameters, Object[] arguments) { Map variables = new HashMap<>(); diff --git a/src/test/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilderUnitTests.java b/src/test/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilderUnitTests.java index 98f2caafe..897ff781f 100755 --- a/src/test/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilderUnitTests.java +++ b/src/test/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilderUnitTests.java @@ -16,6 +16,7 @@ package org.springframework.data.querydsl.binding; import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.Assumptions.*; import static org.springframework.test.util.ReflectionTestUtils.*; import java.text.ParseException; @@ -33,6 +34,7 @@ import org.springframework.data.querydsl.SimpleEntityPathResolver; import org.springframework.data.querydsl.User; import org.springframework.data.querydsl.Users; import org.springframework.data.util.ClassTypeInformation; +import org.springframework.data.util.Version; import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; @@ -46,6 +48,7 @@ import com.querydsl.core.types.Predicate; * * @author Christoph Strobl * @author Oliver Gierke + * @author Mark Paluch */ public class QuerydslPredicateBuilderUnitTests { @@ -81,6 +84,9 @@ public class QuerydslPredicateBuilderUnitTests { @Test // DATACMNS-669 public void resolveArgumentShouldCreateSingleStringParameterPredicateCorrectly() throws Exception { + assumeThat(Version.javaVersion().toString()) + .as("QueryDSL isn't Java 11 ready https://github.com/querydsl/querydsl/issues/2151").startsWith("1.8"); + values.add("firstname", "Oliver"); Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS); @@ -95,6 +101,9 @@ public class QuerydslPredicateBuilderUnitTests { @Test // DATACMNS-669 public void resolveArgumentShouldCreateNestedStringParameterPredicateCorrectly() throws Exception { + assumeThat(Version.javaVersion().toString()) + .as("QueryDSL isn't Java 11 ready https://github.com/querydsl/querydsl/issues/2151").startsWith("1.8"); + values.add("address.city", "Linz"); Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);