@ -5,7 +5,7 @@ buildscript {
@@ -5,7 +5,7 @@ buildscript {
}
}
plugins {
id 'io.spring.dependency-management' version '1.0.7 .RELEASE' apply false
id 'io.spring.dependency-management' version '1.0.8 .RELEASE' apply false
id 'org.jetbrains.kotlin.jvm' version '1.3.50' apply false
id 'org.jetbrains.dokka' version '0.9.18' apply false
id 'org.asciidoctor.convert' version '1.5.8'
@ -13,72 +13,291 @@ plugins {
@@ -13,72 +13,291 @@ plugins {
id 'de.undercouch.download' version '4.0.0'
id "com.jfrog.artifactory" version '4.9.8' apply false
id "io.freefair.aspectj" version "4.0.0" apply false
id "com.github.ben-manes.versions" version "0.24.0"
}
ext {
moduleProjects = subprojects . findAll { it . name . startsWith ( "spring-" ) }
aspectjVersion = "1.9.4"
coroutinesVersion = "1.3.0"
freemarkerVersion = "2.3.28"
groovyVersion = "2.5.7"
hsqldbVersion = "2.5.0"
jackson2Version = "2.9.9"
jettyVersion = "9.4.20.v20190813"
junit5Version = "5.5.1"
kotlinVersion = "1.3.50"
log4jVersion = "2.12.0"
nettyVersion = "4.1.38.Final"
reactorVersion = "Dysprosium-M3"
rsocketVersion = "1.0.0-RC3"
rxjavaVersion = "1.3.8"
rxjavaAdapterVersion = "1.2.1"
rxjava2Version = "2.2.10"
slf4jVersion = "1.7.26" // spring - jcl + consistent 3 rd party deps
tiles3Version = "3.0.8"
tomcatVersion = "9.0.22"
undertowVersion = "2.0.23.Final"
javaProjects = subprojects - project ( ":framework-bom" )
withoutJclOverSlf4j = {
exclude group: "org.slf4j" , modul e: "jcl-over-slf4j"
exclude group: "org.slf4j" , name: "jcl-over-slf4j"
}
}
configure ( allprojects . findAll { ( it . name ! = "framework-bom" ) } ) { project - >
group = "org.springframework"
apply plugin: "java"
apply plugin: "checkstyle"
apply plugin: 'org.springframework.build.compile'
configure ( subprojects ) { project - >
apply plugin: "io.spring.dependency-management"
apply from: "${rootDir}/gradle/ide.gradle"
dependencyManagement {
resolutionStrategy {
cacheChangingModulesFor 0 , "seconds"
imports {
mavenBom "com.fasterxml.jackson:jackson-bom:2.9.9"
mavenBom "io.netty:netty-bom:4.1.38.Final"
mavenBom "io.projectreactor:reactor-bom:Dysprosium-M3"
mavenBom "org.eclipse.jetty:jetty-bom:9.4.20.v20190813"
mavenBom "org.jetbrains.kotlin:kotlin-bom:1.3.50"
mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.3.0"
mavenBom "org.junit:junit-bom:5.5.1"
}
dependencies {
dependencySet ( group: 'org.apache.logging.log4j' , version: '2.12.0' ) {
entry 'log4j-api'
entry 'log4j-core'
entry 'log4j-slf4j-impl'
entry 'log4j-jul'
}
dependency "org.slf4j:slf4j-api:1.7.26"
dependency "com.google.code.findbugs:jsr305:3.0.2"
dependencySet ( group: 'org.aspectj' , version: '1.9.4' ) {
entry 'aspectjrt'
entry 'aspectjtools'
entry 'aspectjweaver'
}
dependencySet ( group: 'org.codehaus.groovy' , version: '2.5.7' ) {
entry 'groovy'
entry 'groovy-jsr223'
entry 'groovy-templates'
entry 'groovy-test'
entry 'groovy-xml'
}
dependency "io.reactivex:rxjava:1.3.8"
dependency "io.reactivex:rxjava-reactive-streams:1.2.1"
dependency "io.reactivex.rxjava2:rxjava:2.2.10"
dependencySet ( group: 'io.rsocket' , version: '1.0.0-RC3' ) {
entry 'rsocket-core'
entry 'rsocket-transport-netty'
}
dependency "com.caucho:hessian:4.0.51"
dependency "com.fasterxml:aalto-xml:1.1.1"
dependency ( "com.fasterxml.woodstox:woodstox-core:5.2.0" ) {
exclude group: "stax" , name: "stax-api"
}
dependency "com.google.code.gson:gson:2.8.5"
dependency "com.google.protobuf:protobuf-java-util:3.9.0"
dependency "com.googlecode.protobuf-java-format:protobuf-java-format:1.4"
dependency ( "com.thoughtworks.xstream:xstream:1.4.11.1" ) {
exclude group: "xpp3" , name: "xpp3_min"
exclude group: "xmlpull" , name: "xmlpull"
}
dependency "org.apache.johnzon:johnzon-jsonb:1.1.12"
dependency ( "org.codehaus.jettison:jettison:1.3.8" ) {
exclude group: "stax" , name: "stax-api"
}
dependencySet ( group: 'org.jibx' , version: '1.3.1' ) {
entry 'jibx-bind'
entry 'jibx-run'
}
dependency "org.ogce:xpp3:1.1.6"
dependency "org.yaml:snakeyaml:1.24"
dependency "com.h2database:h2:1.4.199"
dependency "com.github.ben-manes.caffeine:caffeine:2.7.0"
dependency "com.github.librepdf:openpdf:1.2.21"
dependency "com.rometools:rome:1.12.1"
dependency "commons-io:commons-io:2.5"
dependency "io.vavr:vavr:0.10.0"
dependency "net.sf.jopt-simple:jopt-simple:5.0.4"
dependencySet ( group: 'org.apache.activemq' , version: '5.8.0' ) {
entry 'activemq-broker'
entry ( 'activemq-kahadb-store' ) {
exclude group: "org.springframework" , name: "spring-context"
}
entry 'activemq-stomp'
}
dependency "org.apache.bcel:bcel:6.0"
dependency "org.apache.commons:commons-pool2:2.6.0"
dependencySet ( group: 'org.apache.derby' , version: '10.14.2.0' ) {
entry 'derby'
entry 'derbyclient'
}
dependency "org.apache.poi:poi-ooxml:4.1.0"
dependency "org.awaitility:awaitility:3.1.3"
dependency "org.beanshell:bsh:2.0b5"
dependency "org.freemarker:freemarker:2.3.28"
dependency "org.hsqldb:hsqldb:2.5.0"
dependency "org.quartz-scheduler:quartz:2.3.1"
dependency "org.codehaus.fabric3.api:commonj:1.1.0"
dependency "net.sf.ehcache:ehcache:2.10.4"
dependency "org.ehcache:jcache:1.0.1"
dependency "org.ehcache:ehcache:3.4.0"
dependency "org.hibernate:hibernate-core:5.4.4.Final"
dependency "org.hibernate:hibernate-validator:6.0.17.Final"
dependency "org.webjars:webjars-locator-core:0.37"
dependency "org.webjars:underscorejs:1.8.3"
dependencySet ( group: 'org.apache.tomcat' , version: '9.0.22' ) {
entry 'tomcat-util'
entry ( 'tomcat-websocket' ) {
exclude group: "org.apache.tomcat" , name: "tomcat-websocket-api"
exclude group: "org.apache.tomcat" , name: "tomcat-servlet-api"
}
}
dependencySet ( group: 'org.apache.tomcat.embed' , version: '9.0.22' ) {
entry 'tomcat-embed-core'
entry 'tomcat-embed-websocket'
}
dependencySet ( group: 'io.undertow' , version: '2.0.23.Final' ) {
entry 'undertow-core'
entry ( 'undertow-websockets-jsr' ) {
exclude group: "org.jboss.spec.javax.websocket" , name: "jboss-websocket-api_1.1_spec"
}
entry ( 'undertow-servlet' ) {
exclude group: "org.jboss.spec.javax.servlet" , name: "jboss-servlet-api_3.1_spec"
exclude group: "org.jboss.spec.javax.annotation" , name: "jboss-annotations-api_1.2_spec"
}
}
dependencySet ( group: 'com.squareup.okhttp3' , version: '3.14.2' ) {
entry 'okhttp'
entry 'mockwebserver'
}
dependency ( "org.apache.httpcomponents:httpclient:4.5.9" ) {
exclude group: "commons-logging" , name: "commons-logging"
}
dependency ( "org.apache.httpcomponents:httpasyncclient:4.1.4" ) {
exclude group: "commons-logging" , name: "commons-logging"
}
dependency "org.eclipse.jetty:jetty-reactive-httpclient:1.0.3"
dependency "org.jruby:jruby:9.2.7.0"
dependency "org.python:jython-standalone:2.7.1"
dependency "org.mozilla:rhino:1.7.10"
dependency "commons-fileupload:commons-fileupload:1.4"
dependency "org.synchronoss.cloud:nio-multipart-parser:1.1.0"
dependency ( "dom4j:dom4j:1.6.1" ) {
exclude group: "xml-apis" , name: "xml-apis"
}
dependency ( "jaxen:jaxen:1.1.1" ) {
exclude group: "xml-apis" , name: "xml-apis"
exclude group: "xom" , name: "xom"
exclude group: "xerces" , name: "xercesImpl"
}
dependency ( "junit:junit:4.13-beta-3" ) {
exclude group: "org.hamcrest" , name: "hamcrest-core"
}
dependency ( "de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1" ) {
exclude group: "junit" , name: "junit"
}
dependency "org.testng:testng:6.14.3"
dependency "org.hamcrest:hamcrest:2.1"
dependency "org.assertj:assertj-core:3.13.1"
dependencySet ( group: 'org.xmlunit' , version: '2.6.2' ) {
entry 'xmlunit-assertj'
entry ( 'xmlunit-matchers' ) {
exclude group: "org.hamcrest" , name: "hamcrest-core"
}
}
dependencySet ( group: 'org.mockito' , version: '3.0.0' ) {
entry ( 'mockito-core' ) {
exclude group: "org.hamcrest" , name: "hamcrest-core"
}
entry 'mockito-junit-jupiter'
}
dependency "io.mockk:mockk:1.9.3"
dependency ( "net.sourceforge.htmlunit:htmlunit:2.35.0" ) {
exclude group: "commons-logging" , name: "commons-logging"
}
dependency ( "org.seleniumhq.selenium:htmlunit-driver:2.35.1" ) {
exclude group: "commons-logging" , name: "commons-logging"
}
dependency ( "org.seleniumhq.selenium:selenium-java:3.141.59" ) {
exclude group: "commons-logging" , name: "commons-logging"
exclude group: "io.netty" , name: "netty"
}
dependency "org.skyscreamer:jsonassert:1.5.0"
dependency "com.jayway.jsonpath:json-path:2.4.0"
dependencySet ( group: 'org.apache.tiles' , version: '3.0.8' ) {
entry 'tiles-api'
entry ( 'tiles-core' , withoutJclOverSlf4j )
entry ( 'tiles-servlet' , withoutJclOverSlf4j )
entry ( 'tiles-jsp' , withoutJclOverSlf4j )
entry ( 'tiles-el' , withoutJclOverSlf4j )
entry ( 'tiles-extras' ) {
exclude group: "org.springframework" , name: "spring-web"
exclude group: "org.slf4j" , name: "jcl-over-slf4j"
}
}
dependency ( "org.apache.taglibs:taglibs-standard-jstlel:1.2.5" ) {
exclude group: "org.apache.taglibs" , name: "taglibs-standard-spec"
}
dependency "com.ibm.websphere:uow:6.0.2.17"
dependency "com.jamonapi:jamon:2.81"
dependency "joda-time:joda-time:2.10.2"
dependency "org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.4"
dependency "org.javamoney:moneta:1.3"
dependency "com.sun.activation:javax.activation:1.2.0"
dependency "com.sun.mail:javax.mail:1.6.2"
dependencySet ( group: 'com.sun.xml.bind' , version: '2.3.0.1' ) {
entry 'jaxb-core'
entry 'jaxb-impl'
entry 'jaxb-xjc'
}
dependency "javax.activation:javax.activation-api:1.2.0"
dependency "javax.annotation:javax.annotation-api:1.3.2"
dependency "javax.cache:cache-api:1.1.0"
dependency "javax.ejb:javax.ejb-api:3.2"
dependency "javax.el:javax.el-api:3.0.1-b04"
dependency "javax.enterprise.concurrent:javax.enterprise.concurrent-api:1.0"
dependency "javax.faces:javax.faces-api:2.2"
dependency "javax.inject:javax.inject:1"
dependency "javax.inject:javax.inject-tck:1"
dependency "javax.interceptor:javax.interceptor-api:1.2.2"
dependency "javax.jms:javax.jms-api:2.0.1"
dependency "javax.json:javax.json-api:1.1.4"
dependency "javax.json.bind:javax.json.bind-api:1.0"
dependency "javax.mail:javax.mail-api:1.6.2"
dependency "javax.money:money-api:1.0.3"
dependency "javax.resource:javax.resource-api:1.7.1"
dependency "javax.servlet:javax.servlet-api:4.0.1"
dependency "javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02"
dependency "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1"
dependency "javax.transaction:javax.transaction-api:1.3"
dependency "javax.validation:validation-api:2.0.1.Final"
dependency "javax.websocket:javax.websocket-api:1.1"
dependency "javax.xml.bind:jaxb-api:2.3.1"
dependency "javax.xml.ws:jaxws-api:2.3.1"
dependency "org.eclipse.persistence:javax.persistence:2.2.0"
// Substitute for "javax.management:jmxremote_optional:1.0.1_04" which
// is not available on Maven Central
dependency "org.glassfish.external:opendmk_jmxremote_optional_jar:1.0-b01-ea"
dependency "org.glassfish:javax.el:3.0.1-b08"
dependency "org.glassfish.main:javax.jws:4.0-b33"
dependency "org.glassfish.tyrus:tyrus-container-servlet:1.13.1"
}
applyMavenExclusions = false
generatedPomCustomization {
enabled = false
}
imports {
mavenBom "org.junit:junit-bom:${junit5Version}"
mavenBom "org.jetbrains.kotlin:kotlin-bom:${kotlinVersion}"
mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:${coroutinesVersion}"
resolutionStrategy {
cacheChangingModulesFor 0 , "seconds"
}
repositories {
mavenCentral ( )
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/milestone" } // Reactor
}
}
}
configurations . all {
// Check for updates every build
resolutionStrategy . cacheChangingModulesFor 0 , "seconds"
configure ( [ rootProject ] + javaProjects ) { project - >
group = "org.springframework"
// Consistent slf4j version ( e . g . clashes between slf4j versions )
resolutionStrategy . eachDependency { DependencyResolveDetails details - >
if ( details . requested . group = = "org.slf4j" ) {
details . useVersion slf4jVersion
}
}
}
apply plugin: "java"
apply plugin: "checkstyle"
apply plugin: 'org.springframework.build.compile'
apply from: "${rootDir}/gradle/ide.gradle"
pluginManager . withPlugin ( "kotlin" ) {
apply plugin: "org.jetbrains.dokka"
@ -115,53 +334,45 @@ configure(allprojects.findAll { (it.name != "framework-bom") } ) { project ->
@@ -115,53 +334,45 @@ configure(allprojects.findAll { (it.name != "framework-bom") } ) { project ->
configDir = rootProject . file ( "src/checkstyle" )
}
repositories {
mavenCentral ( )
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/milestone" } // Reactor
}
dependencies {
testCompile ( "org.junit.jupiter:junit-jupiter-api" )
testCompile ( "org.junit.jupiter:junit-jupiter-params" )
testCompile ( "org.mockito:mockito-core:3.0.0" ) {
exclude group: "org.hamcrest" , module: "hamcrest-core"
}
testCompile ( "org.mockito:mockito-junit-jupiter:3.0.0" )
testCompile ( "io.mockk:mockk:1.9.3" )
testCompile ( "org.hamcrest:hamcrest:2.1" )
testCompile ( "org.assertj:assertj-core:3.13.1" )
testCompile ( "org.mockito:mockito-core" )
testCompile ( "org.mockito:mockito-junit-jupiter" )
testCompile ( "io.mockk:mockk" )
testCompile ( "org.hamcrest:hamcrest" )
testCompile ( "org.assertj:assertj-core" )
// Pull in the latest JUnit 5 Launcher API to ensure proper support in IDEs .
testRuntime ( "org.junit.platform:junit-platform-launcher" )
testRuntime ( "org.junit.jupiter:junit-jupiter-engine" )
testRuntime ( "org.apache.logging.log4j:log4j-core:${log4jVersion} " )
testRuntime ( "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion} " )
testRuntime ( "org.apache.logging.log4j:log4j-jul:${log4jVersion} " )
testRuntime ( "org.apache.logging.log4j:log4j-core" )
testRuntime ( "org.apache.logging.log4j:log4j-slf4j-impl" )
testRuntime ( "org.apache.logging.log4j:log4j-jul" )
// JSR - 305 only used for non - required meta - annotations
compileOnly ( "com.google.code.findbugs:jsr305:3.0.2 " )
testCompileOnly ( "com.google.code.findbugs:jsr305:3.0.2 " )
compileOnly ( "com.google.code.findbugs:jsr305" )
testCompileOnly ( "com.google.code.findbugs:jsr305" )
checkstyle ( "io.spring.javaformat:spring-javaformat-checkstyle:0.0.15" )
}
ext . javadocLinks = [
"https://docs.oracle.com/javase/8/docs/api/" ,
"https://docs.oracle.com/javaee/7/api/" ,
"https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/" , // CommonJ
"https://www.ibm.com/support/knowledgecenter/SS7JFU_8.5.5/com.ibm.websphere.javadoc.doc/web/apidocs/" ,
"https://glassfish.java.net/nonav/docs/v3/api/" ,
"https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/" ,
"https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/" ,
"https://tiles.apache.org/tiles-request/apidocs/" ,
"https://tiles.apache.org/framework/apidocs/" ,
"https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/" ,
"https://www.ehcache.org/apidocs/2.10.4" ,
"https://www.quartz-scheduler.org/api/2.3.0/" ,
"https://fasterxml.github.io/jackson-core/javadoc/2.9/" ,
"https://fasterxml.github.io/jackson-databind/javadoc/2.9/" ,
"https://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.9/" ,
"https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/" ,
"https://junit.org/junit4/javadoc/4.12/" ,
"https://junit.org/junit5/docs/${junit5Version} /api/"
"https://docs.oracle.com/javase/8/docs/api/" ,
"https://docs.oracle.com/javaee/7/api/" ,
"https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/" , // CommonJ
"https://www.ibm.com/support/knowledgecenter/SS7JFU_8.5.5/com.ibm.websphere.javadoc.doc/web/apidocs/" ,
"https://glassfish.java.net/nonav/docs/v3/api/" ,
"https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/" ,
"https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/" ,
"https://tiles.apache.org/tiles-request/apidocs/" ,
"https://tiles.apache.org/framework/apidocs/" ,
"https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/" ,
"https://www.ehcache.org/apidocs/2.10.4" ,
"https://www.quartz-scheduler.org/api/2.3.0/" ,
"https://fasterxml.github.io/jackson-core/javadoc/2.9/" ,
"https://fasterxml.github.io/jackson-databind/javadoc/2.9/" ,
"https://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.9/" ,
"https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/" ,
"https://junit.org/junit4/javadoc/4.12/" ,
"https://junit.org/junit5/docs/5.5.1 /api/"
] as String [ ]
}
@ -190,12 +401,6 @@ configure(rootProject) {
@@ -190,12 +401,6 @@ configure(rootProject) {
}
}
dependencyManagement {
imports {
mavenBom "io.projectreactor:reactor-bom:${reactorVersion}"
}
}
dependencies {
asciidoctor ( "io.spring.asciidoctor:spring-asciidoctor-extensions:0.1.3.RELEASE" )
}