From a09b97949e311a5ceca1ca76f8438ddf932a35d0 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Thu, 15 Aug 2019 15:22:00 -0400 Subject: [PATCH] Upgrade Jackson version; use BOM for dependencies --- build.gradle | 147 ++++++++++++++++++++++++------------------- publish-maven.gradle | 12 +++- 2 files changed, 93 insertions(+), 66 deletions(-) diff --git a/build.gradle b/build.gradle index 34aed2fe06..8a77a04567 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ plugins { id 'org.sonarqube' version '2.7.1' id 'org.asciidoctor.convert' version '1.6.1' id 'org.ajoberstar.grgit' version '3.1.1' + id "io.spring.dependency-management" version "1.0.8.RELEASE" apply false } if (System.getenv('TRAVIS') || System.getenv('bamboo_buildKey')) { @@ -40,11 +41,84 @@ ext { modifiedFiles = files(grgit.status().unstaged.modified).filter{ f -> f.name.endsWith('.java') || f.name.endsWith('.kt') } + + activeMqVersion = '5.15.9' + apacheSshdVersion = '2.3.0' + avroVersion = '1.9.0' + aspectjVersion = '1.9.4' + assertjVersion = '3.13.1' + assertkVersion = '0.19' + awaitilityVersion = '3.1.6' + boonVersion = '0.34' + commonsDbcp2Version = '2.6.0' + commonsIoVersion = '2.6' + commonsNetVersion = '3.6' + curatorVersion = '4.2.0' + derbyVersion = '10.14.2.0' + ftpServerVersion = '1.1.1' + googleJsr305Version = '3.0.2' + groovyVersion = '2.5.7' + hamcrestVersion = '2.1' + hazelcastVersion = '3.12.1' + hibernateVersion = '5.4.3.Final' + hsqldbVersion = '2.5.0' + h2Version = '1.4.199' + jackson2Version = '2.9.9.20190807' + javaxActivationVersion = '1.2.0' + javaxMailVersion = '1.6.2' + jmsApiVersion = '2.0.1' + jpa21ApiVersion = '1.0.2.Final' + jpaApiVersion = '2.2.1' + jrubyVersion = '9.2.7.0' + jschVersion = '0.1.55' + jsonpathVersion = '2.4.0' + junit4Version = '4.12' + junitJupiterVersion = '5.5.1' + junitPlatformVersion = '1.5.1' + jythonVersion = '2.7.0' + kryoShadedVersion = '4.0.2' + lettuceVersion = '5.1.8.RELEASE' + log4jVersion = '2.12.0' + micrometerVersion = '1.2.0' + mockitoVersion = '3.0.0' + mysqlVersion = '8.0.16' + pahoMqttClientVersion = '1.2.0' + postgresVersion = '42.2.6' + reactorNettyVersion = '0.9.0.M3' + reactorVersion = '3.3.0.M3' + resilience4jVersion = '0.16.0' + romeToolsVersion = '1.12.1' + rsocketVersion = '0.12.2-RC4' + servletApiVersion = '4.0.1' + smackVersion = '4.3.4' + springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '2.2.0.BUILD-SNAPSHOT' + springDataJpaVersion = '2.2.0.BUILD-SNAPSHOT' + springDataMongoVersion = '2.2.0.BUILD-SNAPSHOT' + springDataRedisVersion = '2.2.0.BUILD-SNAPSHOT' + springGemfireVersion = '2.2.0.BUILD-SNAPSHOT' + springSecurityVersion = '5.2.0.BUILD-SNAPSHOT' + springRetryVersion = '1.2.4.RELEASE' + springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.2.0.BUILD-SNAPSHOT' + springWsVersion = '3.0.7.RELEASE' + tomcatVersion = "9.0.19" + xstreamVersion = '1.4.11.1' } allprojects { group = 'org.springframework.integration' + apply plugin: "io.spring.dependency-management" + + dependencyManagement { + resolutionStrategy { + cacheChangingModulesFor 0, 'seconds' + } + applyMavenExclusions = false + generatedPomCustomization { + enabled = false + } + } + repositories { maven { url 'https://repo.spring.io/libs-milestone' } if (version.endsWith('BUILD-SNAPSHOT')) { @@ -98,69 +172,6 @@ subprojects { subproject -> } } - ext { - activeMqVersion = '5.15.9' - apacheSshdVersion = '2.3.0' - avroVersion = '1.9.0' - aspectjVersion = '1.9.4' - assertjVersion = '3.13.1' - assertkVersion = '0.19' - awaitilityVersion = '3.1.6' - boonVersion = '0.34' - commonsDbcp2Version = '2.6.0' - commonsIoVersion = '2.6' - commonsNetVersion = '3.6' - curatorVersion = '4.2.0' - derbyVersion = '10.14.2.0' - ftpServerVersion = '1.1.1' - googleJsr305Version = '3.0.2' - groovyVersion = '2.5.7' - hamcrestVersion = '2.1' - hazelcastVersion = '3.12.1' - hibernateVersion = '5.4.3.Final' - hsqldbVersion = '2.5.0' - h2Version = '1.4.199' - jackson2Version = '2.9.9' - javaxActivationVersion = '1.2.0' - javaxMailVersion = '1.6.2' - jmsApiVersion = '2.0.1' - jpa21ApiVersion = '1.0.2.Final' - jpaApiVersion = '2.2.1' - jrubyVersion = '9.2.7.0' - jschVersion = '0.1.55' - jsonpathVersion = '2.4.0' - junit4Version = '4.12' - junitJupiterVersion = '5.5.1' - junitPlatformVersion = '1.5.1' - jythonVersion = '2.7.0' - kryoShadedVersion = '4.0.2' - lettuceVersion = '5.1.8.RELEASE' - log4jVersion = '2.12.0' - micrometerVersion = '1.2.0' - mockitoVersion = '3.0.0' - mysqlVersion = '8.0.16' - pahoMqttClientVersion = '1.2.0' - postgresVersion = '42.2.6' - reactorNettyVersion = '0.9.0.M3' - reactorVersion = '3.3.0.M3' - resilience4jVersion = '0.16.0' - romeToolsVersion = '1.12.1' - rsocketVersion = '0.12.2-RC4' - servletApiVersion = '4.0.1' - smackVersion = '4.3.4' - springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '2.2.0.BUILD-SNAPSHOT' - springDataJpaVersion = '2.2.0.BUILD-SNAPSHOT' - springDataMongoVersion = '2.2.0.BUILD-SNAPSHOT' - springDataRedisVersion = '2.2.0.BUILD-SNAPSHOT' - springGemfireVersion = '2.2.0.BUILD-SNAPSHOT' - springSecurityVersion = '5.2.0.BUILD-SNAPSHOT' - springRetryVersion = '1.2.4.RELEASE' - springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.2.0.BUILD-SNAPSHOT' - springWsVersion = '3.0.7.RELEASE' - tomcatVersion = "9.0.19" - xstreamVersion = '1.4.11.1' - } - eclipse { project { natures += 'org.springframework.ide.eclipse.core.springnature' @@ -385,6 +396,12 @@ project('spring-integration-amqp') { project('spring-integration-core') { description = 'Spring Integration Core' + dependencyManagement { + imports { + mavenBom "com.fasterxml.jackson:jackson-bom:$jackson2Version" + } + } + dependencies { compile "org.springframework:spring-core:$springVersion" compile "org.springframework:spring-aop:$springVersion" @@ -395,7 +412,7 @@ project('spring-integration-core') { exclude group: 'org.springframework' } compile "io.projectreactor:reactor-core:$reactorVersion" - compile("com.fasterxml.jackson.core:jackson-databind:$jackson2Version", optional) + compile('com.fasterxml.jackson.core:jackson-databind', optional) compile("com.jayway.jsonpath:json-path:$jsonpathVersion", optional) compile("io.fastjson:boon:$boonVersion", optional) compile("com.esotericsoftware:kryo-shaded:$kryoShadedVersion", optional) @@ -405,7 +422,7 @@ project('spring-integration-core') { testCompile ("org.aspectj:aspectjweaver:$aspectjVersion") testCompile "io.projectreactor:reactor-test:$reactorVersion" - testCompile ("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson2Version") + testCompile ('com.fasterxml.jackson.datatype:jackson-datatype-jsr310') } } diff --git a/publish-maven.gradle b/publish-maven.gradle index a743be7de7..df9e57fd7b 100644 --- a/publish-maven.gradle +++ b/publish-maven.gradle @@ -14,6 +14,17 @@ install { def customizePom(pom, gradleProject) { pom.whenConfigured { generatedPom -> + + // sort to make pom dependencies order consistent to ease comparison of older poms + generatedPom.dependencies = generatedPom.dependencies.sort { dep -> + "$dep.scope:$dep.groupId:$dep.artifactId" + } + + def managedVersions = dependencyManagement.managedVersions + generatedPom.dependencies.findAll{dep -> !dep.version }.each { dep -> + dep.version = managedVersions["${dep.groupId}:${dep.artifactId}"] + } + // respect 'optional' and 'provided' dependencies gradleProject.optionalDeps.each { dep -> generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true @@ -82,4 +93,3 @@ def customizePom(pom, gradleProject) { } } } -