Consistently use double quotes (even if no interpolation needed)

Includes upgrade to Hibernate ORM 5.3.5, EclipseLink 2.7.3, Selenium HtmlUnit Driver 2.32.1, Jetty 9.4.12 RC2.
This commit is contained in:
Juergen Hoeller 2018-08-16 15:32:44 +02:00
parent dc55da0988
commit 04d2d1da0d
9 changed files with 237 additions and 238 deletions

View File

@ -1,72 +1,73 @@
buildscript { buildscript {
repositories { repositories {
maven { url 'https://repo.spring.io/plugins-release' } maven { url "https://repo.spring.io/plugins-release" }
} }
dependencies { dependencies {
classpath('io.spring.gradle:propdeps-plugin:0.0.9.RELEASE') classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE")
classpath('org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16') classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16")
} }
} }
// 3rd party plugin repositories can be configured in settings.gradle // 3rd party plugin repositories can be configured in settings.gradle
plugins { plugins {
id 'io.spring.dependency-management' version '1.0.5.RELEASE' apply false id "io.spring.dependency-management" version "1.0.5.RELEASE" apply false
id 'org.jetbrains.kotlin.jvm' version '1.2.60' apply false id "org.jetbrains.kotlin.jvm" version "1.2.60" apply false
id 'org.jetbrains.dokka' version '0.9.17' id "org.jetbrains.dokka" version "0.9.17"
id 'org.asciidoctor.convert' version '1.5.7' id "org.asciidoctor.convert" version "1.5.7"
} }
ext { ext {
linkHomepage = 'https://projects.spring.io/spring-framework' linkHomepage = "https://projects.spring.io/spring-framework"
linkCi = 'https://build.spring.io/browse/SPR' linkCi = "https://build.spring.io/browse/SPR"
linkIssue = 'https://jira.spring.io/browse/SPR' linkIssue = "https://jira.spring.io/browse/SPR"
linkScmUrl = 'https://github.com/spring-projects/spring-framework' linkScmUrl = "https://github.com/spring-projects/spring-framework"
linkScmConnection = 'scm:git:git://github.com/spring-projects/spring-framework.git' linkScmConnection = "scm:git:git://github.com/spring-projects/spring-framework.git"
linkScmDevConnection = 'scm:git:ssh://git@github.com:spring-projects/spring-framework.git' linkScmDevConnection = "scm:git:ssh://git@github.com:spring-projects/spring-framework.git"
moduleProjects = subprojects.findAll { moduleProjects = subprojects.findAll {
!it.name.equals('spring-build-src') && !it.name.equals('spring-framework-bom') !it.name.equals("spring-build-src") && !it.name.equals("spring-framework-bom")
} }
aspectjVersion = '1.9.1' aspectjVersion = "1.9.1"
freemarkerVersion = '2.3.28' freemarkerVersion = "2.3.28"
groovyVersion = '2.5.2' groovyVersion = "2.5.2"
hsqldbVersion = '2.4.1' hsqldbVersion = "2.4.1"
jackson2Version = '2.9.6' jackson2Version = "2.9.6"
jettyVersion = '9.4.12.RC1' jettyVersion = "9.4.12.RC2"
junit5Version = '5.3.0-RC1' junit5Version = "5.3.0-RC1"
kotlinVersion = '1.2.60' kotlinVersion = "1.2.60"
log4jVersion = '2.11.1' log4jVersion = "2.11.1"
nettyVersion = '4.1.28.Final' nettyVersion = "4.1.28.Final"
reactorVersion = 'Californium-M2' reactorVersion = "Californium-M2"
rxjavaVersion = '1.3.8' rxjavaVersion = "1.3.8"
rxjavaAdapterVersion = '1.2.1' rxjavaAdapterVersion = "1.2.1"
rxjava2Version = '2.2.0' rxjava2Version = "2.2.0"
slf4jVersion = '1.7.25' // spring-jcl + consistent 3rd party deps slf4jVersion = "1.7.25" // spring-jcl + consistent 3rd party deps
tiles3Version = '3.0.8' tiles3Version = "3.0.8"
tomcatVersion = '9.0.10' tomcatVersion = "9.0.10"
undertowVersion = '2.0.12.Final' undertowVersion = "2.0.12.Final"
gradleScriptDir = "${rootProject.projectDir}/gradle" gradleScriptDir = "${rootProject.projectDir}/gradle"
withoutJclOverSlf4J = { withoutJclOverSlf4J = {
exclude group: 'org.slf4j', module: 'jcl-over-slf4j' exclude group: "org.slf4j", module: "jcl-over-slf4j"
} }
} }
configure(allprojects) { project -> configure(allprojects) { project ->
group = 'org.springframework' group = "org.springframework"
version = qualifyVersionIfNecessary(version) version = qualifyVersionIfNecessary(version)
apply plugin: 'propdeps' apply plugin: "java"
apply plugin: 'java' apply plugin: "kotlin"
apply plugin: 'test-source-set-dependencies' apply plugin: "checkstyle"
apply plugin: 'io.spring.dependency-management' apply plugin: "propdeps"
apply plugin: "test-source-set-dependencies"
apply plugin: "io.spring.dependency-management"
apply from: "${gradleScriptDir}/ide.gradle" apply from: "${gradleScriptDir}/ide.gradle"
apply plugin: 'checkstyle'
dependencyManagement { dependencyManagement {
resolutionStrategy { resolutionStrategy {
cacheChangingModulesFor 0, 'seconds' cacheChangingModulesFor 0, "seconds"
} }
applyMavenExclusions = false applyMavenExclusions = false
generatedPomCustomization { generatedPomCustomization {
@ -74,152 +75,151 @@ configure(allprojects) { project ->
} }
} }
checkstyle {
toolVersion = '8.10.1'
configDir = rootProject.file('src/checkstyle')
}
apply plugin: 'kotlin'
compileKotlin {
kotlinOptions {
jvmTarget = '1.8'
freeCompilerArgs = ['-Xjsr305=strict']
apiVersion = '1.1'
languageVersion = '1.1'
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = '1.8'
freeCompilerArgs = ['-Xjsr305=strict']
}
}
configurations.all { configurations.all {
// Check for updates every build // Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds' resolutionStrategy.cacheChangingModulesFor 0, "seconds"
// Consistent slf4j version (e.g. clashes between slf4j versions) // Consistent slf4j version (e.g. clashes between slf4j versions)
resolutionStrategy.eachDependency { DependencyResolveDetails details -> resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.slf4j') { if (details.requested.group == "org.slf4j") {
details.useVersion slf4jVersion details.useVersion slf4jVersion
} }
} }
} }
def commonCompilerArgs = def commonCompilerArgs =
['-Xlint:serial', '-Xlint:cast', '-Xlint:classfile', '-Xlint:dep-ann', ["-Xlint:serial", "-Xlint:cast", "-Xlint:classfile", "-Xlint:dep-ann",
'-Xlint:divzero', '-Xlint:empty', '-Xlint:finally', '-Xlint:overrides', "-Xlint:divzero", "-Xlint:empty", "-Xlint:finally", "-Xlint:overrides",
'-Xlint:path', '-Xlint:processing', '-Xlint:static', '-Xlint:try', '-Xlint:-options'] "-Xlint:path", "-Xlint:processing", "-Xlint:static", "-Xlint:try", "-Xlint:-options"]
compileJava.options*.compilerArgs = commonCompilerArgs + compileJava.options*.compilerArgs = commonCompilerArgs +
['-Xlint:varargs', '-Xlint:fallthrough', '-Xlint:rawtypes', ["-Xlint:varargs", "-Xlint:fallthrough", "-Xlint:rawtypes",
'-Xlint:deprecation', '-Xlint:unchecked', '-Werror'] "-Xlint:deprecation", "-Xlint:unchecked", "-Werror"]
compileTestJava.options*.compilerArgs = commonCompilerArgs + compileTestJava.options*.compilerArgs = commonCompilerArgs +
['-Xlint:-varargs', '-Xlint:-fallthrough', '-Xlint:-rawtypes', ["-Xlint:-varargs", "-Xlint:-fallthrough", "-Xlint:-rawtypes",
'-Xlint:-deprecation', '-Xlint:-unchecked'] "-Xlint:-deprecation", "-Xlint:-unchecked"]
compileJava { compileJava {
sourceCompatibility = 1.8 // can be switched to 10 for testing sourceCompatibility = 1.8 // can be switched to 10 for testing
targetCompatibility = 1.8 targetCompatibility = 1.8
options.encoding = 'UTF-8' options.encoding = "UTF-8"
} }
compileTestJava { compileTestJava {
sourceCompatibility = 1.8 // can be switched to 10 for testing sourceCompatibility = 1.8 // can be switched to 10 for testing
targetCompatibility = 1.8 targetCompatibility = 1.8
options.encoding = 'UTF-8' options.encoding = "UTF-8"
options.compilerArgs += '-parameters' options.compilerArgs += "-parameters"
}
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = ["-Xjsr305=strict"]
apiVersion = "1.1"
languageVersion = "1.1"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = ["-Xjsr305=strict"]
}
} }
test { test {
systemProperty('java.awt.headless', 'true') systemProperty("java.awt.headless", "true")
systemProperty('testGroups', project.properties.get('testGroups')) systemProperty("testGroups", project.properties.get("testGroups"))
scanForTestClasses = false scanForTestClasses = false
include(['**/*Tests.class', '**/*Test.class']) include(["**/*Tests.class", "**/*Test.class"])
// Since we set scanForTestClasses to false, we need to filter out inner // Since we set scanForTestClasses to false, we need to filter out inner
// classes with the "$" pattern; otherwise, using -Dtest.single=MyTests to // classes with the "$" pattern; otherwise, using -Dtest.single=MyTests to
// run MyTests by itself will fail if MyTests contains any inner classes. // run MyTests by itself will fail if MyTests contains any inner classes.
exclude(['**/Abstract*.class', '**/*$*']) exclude(["**/Abstract*.class", '**/*$*'])
reports.junitXml.setDestination(file("$buildDir/test-results")) reports.junitXml.setDestination(file("$buildDir/test-results"))
} }
checkstyle {
toolVersion = "8.10.1"
configDir = rootProject.file("src/checkstyle")
}
repositories { repositories {
maven { url 'https://repo.spring.io/libs-release' } maven { url "https://repo.spring.io/libs-release" }
maven { url 'https://repo.spring.io/milestone' } // for Reactor maven { url "https://repo.spring.io/milestone" } // for Reactor
} }
dependencies { dependencies {
testCompile('junit:junit:4.12') { testCompile("junit:junit:4.12") {
exclude group:'org.hamcrest', module:'hamcrest-core' exclude group: "org.hamcrest", module: "hamcrest-core"
} }
testCompile('org.mockito:mockito-core:2.21.0') { testCompile("org.mockito:mockito-core:2.21.0") {
exclude group:'org.hamcrest', module:'hamcrest-core' exclude group: "org.hamcrest", module: "hamcrest-core"
} }
testCompile('com.nhaarman:mockito-kotlin:1.6.0') { testCompile("com.nhaarman:mockito-kotlin:1.6.0") {
exclude module:'kotlin-stdlib' exclude module: "kotlin-stdlib"
exclude module:'kotlin-reflect' exclude module: "kotlin-reflect"
exclude module:'mockito-core' exclude module: "mockito-core"
} }
testCompile('org.hamcrest:hamcrest-all:1.3') testCompile("org.hamcrest:hamcrest-all:1.3")
testRuntime("org.apache.logging.log4j:log4j-core:${log4jVersion}") testRuntime("org.apache.logging.log4j:log4j-core:${log4jVersion}")
testRuntime("org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}") testRuntime("org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}")
testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}") testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}")
// JSR-305 only used for non-required meta-annotations // JSR-305 only used for non-required meta-annotations
compileOnly('com.google.code.findbugs:jsr305:3.0.2') compileOnly("com.google.code.findbugs:jsr305:3.0.2")
testCompileOnly('com.google.code.findbugs:jsr305:3.0.2') testCompileOnly("com.google.code.findbugs:jsr305:3.0.2")
checkstyle('io.spring.javaformat:spring-javaformat-checkstyle:0.0.5') checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:0.0.5")
} }
ext.javadocLinks = [ ext.javadocLinks = [
'http://docs.oracle.com/javase/8/docs/api/', "http://docs.oracle.com/javase/8/docs/api/",
'http://docs.oracle.com/javaee/7/api/', "http://docs.oracle.com/javaee/7/api/",
'http://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/', // CommonJ "http://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/", // CommonJ
'http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/', "http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/",
'http://glassfish.java.net/nonav/docs/v3/api/', "http://glassfish.java.net/nonav/docs/v3/api/",
'http://docs.jboss.org/jbossas/javadoc/4.0.5/connector/', "http://docs.jboss.org/jbossas/javadoc/4.0.5/connector/",
'http://docs.jboss.org/jbossas/javadoc/7.1.2.Final/', "http://docs.jboss.org/jbossas/javadoc/7.1.2.Final/",
'http://tiles.apache.org/tiles-request/apidocs/', "http://tiles.apache.org/tiles-request/apidocs/",
'http://tiles.apache.org/framework/apidocs/', "http://tiles.apache.org/framework/apidocs/",
'http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/', "http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/",
'http://ehcache.org/apidocs/2.10.4', "http://ehcache.org/apidocs/2.10.4",
'http://quartz-scheduler.org/api/2.2.1/', "http://quartz-scheduler.org/api/2.2.1/",
'http://fasterxml.github.io/jackson-core/javadoc/2.8/', "http://fasterxml.github.io/jackson-core/javadoc/2.8/",
'http://fasterxml.github.io/jackson-databind/javadoc/2.8/', "http://fasterxml.github.io/jackson-databind/javadoc/2.8/",
'http://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.8/', "http://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.8/",
'http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/' "http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/"
] as String[] ] as String[]
} }
configure(subprojects - project(':spring-build-src')) { subproject -> configure(subprojects - project(":spring-build-src")) { subproject ->
apply from: "${gradleScriptDir}/publish-maven.gradle" apply from: "${gradleScriptDir}/publish-maven.gradle"
jar { jar {
manifest.attributes['Implementation-Title'] = subproject.name manifest.attributes["Implementation-Title"] = subproject.name
manifest.attributes['Implementation-Version'] = subproject.version manifest.attributes["Implementation-Version"] = subproject.version
manifest.attributes['Automatic-Module-Name'] = subproject.name.replace('-', '.') // for Jigsaw manifest.attributes["Automatic-Module-Name"] = subproject.name.replace('-', '.') // for Jigsaw
manifest.attributes['Created-By'] = manifest.attributes["Created-By"] =
"${System.getProperty('java.version')} (${System.getProperty('java.specification.vendor')})" "${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
from("${rootProject.projectDir}/src/docs/dist") { from("${rootProject.projectDir}/src/docs/dist") {
include 'license.txt' include "license.txt"
include 'notice.txt' include "notice.txt"
into 'META-INF' into "META-INF"
expand(copyright: new Date().format('yyyy'), version: project.version) expand(copyright: new Date().format("yyyy"), version: project.version)
} }
} }
javadoc { javadoc {
description = 'Generates project-level javadoc for use in -javadoc jar' description = "Generates project-level javadoc for use in -javadoc jar"
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true options.author = true
options.header = project.name options.header = project.name
options.use = true options.use = true
options.links(project.ext.javadocLinks) options.links(project.ext.javadocLinks)
options.addStringOption('Xdoclint:none', '-quiet') options.addStringOption("Xdoclint:none", "-quiet")
// Suppress warnings due to cross-module @see and @link references. // Suppress warnings due to cross-module @see and @link references.
// Note that global 'api' task does display all warnings. // Note that global 'api' task does display all warnings.
@ -229,13 +229,13 @@ configure(subprojects - project(':spring-build-src')) { subproject ->
task sourcesJar(type: Jar, dependsOn: classes) { task sourcesJar(type: Jar, dependsOn: classes) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE duplicatesStrategy = DuplicatesStrategy.EXCLUDE
classifier = 'sources' classifier = "sources"
from sourceSets.main.allSource from sourceSets.main.allSource
// Don't include or exclude anything explicitly by default. See SPR-12085. // Don't include or exclude anything explicitly by default. See SPR-12085.
} }
task javadocJar(type: Jar) { task javadocJar(type: Jar) {
classifier = 'javadoc' classifier = "javadoc"
from javadoc from javadoc
} }
@ -246,9 +246,9 @@ configure(subprojects - project(':spring-build-src')) { subproject ->
} }
configure(rootProject) { configure(rootProject) {
description = 'Spring Framework' description = "Spring Framework"
apply plugin: 'groovy' apply plugin: "groovy"
apply from: "${gradleScriptDir}/jdiff.gradle" apply from: "${gradleScriptDir}/jdiff.gradle"
apply from: "${gradleScriptDir}/docs.gradle" apply from: "${gradleScriptDir}/docs.gradle"
@ -258,26 +258,26 @@ configure(rootProject) {
} }
} }
// don't publish the default jar for the root project // Don't publish the default jar for the root project
configurations.archives.artifacts.clear() configurations.archives.artifacts.clear()
dependencies { // for integration tests dependencies { // for integration tests
testCompile(project(':spring-aop')) testCompile(project(":spring-aop"))
testCompile(project(':spring-beans')) testCompile(project(":spring-beans"))
testCompile(project(':spring-context')) testCompile(project(":spring-context"))
testCompile(project(':spring-core')) testCompile(project(":spring-core"))
testCompile(project(':spring-expression')) testCompile(project(":spring-expression"))
testCompile(project(':spring-jdbc')) testCompile(project(":spring-jdbc"))
testCompile(project(':spring-orm')) testCompile(project(":spring-orm"))
testCompile(project(':spring-test')) testCompile(project(":spring-test"))
testCompile(project(':spring-tx')) testCompile(project(":spring-tx"))
testCompile(project(':spring-web')) testCompile(project(":spring-web"))
testCompile('javax.inject:javax.inject:1') testCompile("javax.inject:javax.inject:1")
testCompile('javax.resource:javax.resource-api:1.7.1') testCompile("javax.resource:javax.resource-api:1.7.1")
testCompile('javax.servlet:javax.servlet-api:3.1.0') testCompile("javax.servlet:javax.servlet-api:3.1.0")
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}") testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")
testCompile('org.hibernate:hibernate-core:5.1.15.Final') testCompile("org.hibernate:hibernate-core:5.1.15.Final")
} }
artifacts { artifacts {
@ -288,17 +288,16 @@ configure(rootProject) {
wrapper { wrapper {
doLast() { doLast() {
def gradleOpts = '-XX:MaxMetaspaceSize=1024m -Xmx1024m' def gradleOpts = "-XX:MaxMetaspaceSize=1024m -Xmx1024m"
def gradleBatOpts = "$gradleOpts -XX:MaxHeapSize=256m" def gradleBatOpts = "$gradleOpts -XX:MaxHeapSize=256m"
File wrapperFile = file('gradlew') File wrapperFile = file("gradlew")
wrapperFile.text = wrapperFile.text.replace('DEFAULT_JVM_OPTS=', wrapperFile.text = wrapperFile.text.replace("DEFAULT_JVM_OPTS=",
"GRADLE_OPTS=\"$gradleOpts \$GRADLE_OPTS\"\nDEFAULT_JVM_OPTS=") "GRADLE_OPTS=\"$gradleOpts \$GRADLE_OPTS\"\nDEFAULT_JVM_OPTS=")
File wrapperBatFile = file('gradlew.bat') File wrapperBatFile = file("gradlew.bat")
wrapperBatFile.text = wrapperBatFile.text.replace('set DEFAULT_JVM_OPTS=', wrapperBatFile.text = wrapperBatFile.text.replace("set DEFAULT_JVM_OPTS=",
"set GRADLE_OPTS=$gradleBatOpts %GRADLE_OPTS%\nset DEFAULT_JVM_OPTS=") "set GRADLE_OPTS=$gradleBatOpts %GRADLE_OPTS%\nset DEFAULT_JVM_OPTS=")
} }
} }
} }
/* /*
@ -309,10 +308,10 @@ configure(rootProject) {
* e.g. 3.2.1.BUILD-SNAPSHOT => 3.2.1.SPR-1234-SNAPSHOT * e.g. 3.2.1.BUILD-SNAPSHOT => 3.2.1.SPR-1234-SNAPSHOT
*/ */
def qualifyVersionIfNecessary(version) { def qualifyVersionIfNecessary(version) {
if (rootProject.hasProperty('BRANCH_NAME')) { if (rootProject.hasProperty("BRANCH_NAME")) {
def qualifier = rootProject.getProperty('BRANCH_NAME') def qualifier = rootProject.getProperty("BRANCH_NAME")
if (qualifier.startsWith('SPR-')) { if (qualifier.startsWith("SPR-")) {
return version.replace('BUILD', qualifier) return version.replace("BUILD", qualifier)
} }
} }
return version return version

View File

@ -25,7 +25,7 @@ include "spring-framework-bom"
include "buildSrc" include "buildSrc"
rootProject.children.find{ it.name == "buildSrc" }.name = "spring-build-src" rootProject.children.find{ it.name == "buildSrc" }.name = "spring-build-src"
rootProject.name = 'spring' rootProject.name = "spring"
rootProject.children.each {project -> rootProject.children.each {project ->
project.buildFileName = "${project.name}.gradle" project.buildFileName = "${project.name}.gradle"
} }

View File

@ -2,7 +2,7 @@ description = "Spring AOP"
dependencies { dependencies {
compile(project(":spring-beans")) compile(project(":spring-beans"))
compile(project(':spring-core')) compile(project(":spring-core"))
optional("org.aspectj:aspectjweaver:${aspectjVersion}") optional("org.aspectj:aspectjweaver:${aspectjVersion}")
optional("org.apache.commons:commons-pool2:2.6.0") optional("org.apache.commons:commons-pool2:2.6.0")
optional("com.jamonapi:jamon:2.81") optional("com.jamonapi:jamon:2.81")

View File

@ -3,7 +3,7 @@ description = "Spring Beans"
apply plugin: "groovy" apply plugin: "groovy"
dependencies { dependencies {
compile(project(':spring-core')) compile(project(":spring-core"))
optional("javax.inject:javax.inject:1") optional("javax.inject:javax.inject:1")
optional("org.yaml:snakeyaml:1.21") optional("org.yaml:snakeyaml:1.21")
optional("org.codehaus.groovy:groovy-xml:${groovyVersion}") optional("org.codehaus.groovy:groovy-xml:${groovyVersion}")
@ -26,6 +26,6 @@ compileGroovy {
// This module also builds Kotlin code and the compileKotlin task naturally depends on // This module also builds Kotlin code and the compileKotlin task naturally depends on
// compileJava. We need to redefine dependencies to break task cycles. // compileJava. We need to redefine dependencies to break task cycles.
def deps = compileGroovy.taskDependencies.immutableValues + compileGroovy.taskDependencies.mutableValues def deps = compileGroovy.taskDependencies.immutableValues + compileGroovy.taskDependencies.mutableValues
compileGroovy.dependsOn = deps - 'compileJava' compileGroovy.dependsOn = deps - "compileJava"
compileKotlin.dependsOn(compileGroovy) compileKotlin.dependsOn(compileGroovy)
compileKotlin.classpath += files(compileGroovy.destinationDir) compileKotlin.classpath += files(compileGroovy.destinationDir)

View File

@ -5,7 +5,7 @@ apply plugin: "groovy"
dependencies { dependencies {
compile(project(":spring-aop")) compile(project(":spring-aop"))
compile(project(":spring-beans")) compile(project(":spring-beans"))
compile(project(':spring-core')) compile(project(":spring-core"))
compile(project(":spring-expression")) compile(project(":spring-expression"))
optional(project(":spring-instrument")) optional(project(":spring-instrument"))
optional("javax.annotation:javax.annotation-api:1.3.2") optional("javax.annotation:javax.annotation-api:1.3.2")

View File

@ -8,8 +8,8 @@ dependencies {
optional(project(":spring-aop")) optional(project(":spring-aop"))
optional(project(":spring-context")) optional(project(":spring-context"))
optional(project(":spring-web")) optional(project(":spring-web"))
optional("org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.2") optional("org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.3")
optional("org.hibernate:hibernate-core:5.3.4.Final") optional("org.hibernate:hibernate-core:5.3.5.Final")
optional("javax.servlet:javax.servlet-api:3.1.0") optional("javax.servlet:javax.servlet-api:3.1.0")
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}") testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")

View File

@ -10,11 +10,11 @@ dependencies {
castor "org.codehaus.castor:castor-anttasks:1.4.1" castor "org.codehaus.castor:castor-anttasks:1.4.1"
jibx "org.jibx:jibx-bind:1.3.1" jibx "org.jibx:jibx-bind:1.3.1"
jibx "org.apache.bcel:bcel:6.0" jibx "org.apache.bcel:bcel:6.0"
xjc 'javax.xml.bind:jaxb-api:2.3.0' xjc "javax.xml.bind:jaxb-api:2.3.0"
xjc 'com.sun.xml.bind:jaxb-core:2.3.0.1' xjc "com.sun.xml.bind:jaxb-core:2.3.0.1"
xjc 'com.sun.xml.bind:jaxb-impl:2.3.0.1' xjc "com.sun.xml.bind:jaxb-impl:2.3.0.1"
xjc 'com.sun.xml.bind:jaxb-xjc:2.2.11' // 2.3.0 breaks with "xjc failed" xjc "com.sun.xml.bind:jaxb-xjc:2.2.11" // 2.3.0 breaks with "xjc failed"
xjc 'com.sun.activation:javax.activation:1.2.0' xjc "com.sun.activation:javax.activation:1.2.0"
} }
ext.genSourcesDir = "${buildDir}/generated-sources" ext.genSourcesDir = "${buildDir}/generated-sources"
@ -101,19 +101,19 @@ dependencies {
optional("javax.xml.bind:jaxb-api:2.3.0") optional("javax.xml.bind:jaxb-api:2.3.0")
optional("javax.activation:activation:1.1.1") optional("javax.activation:activation:1.1.1")
optional("org.codehaus.castor:castor-xml:1.4.1") { optional("org.codehaus.castor:castor-xml:1.4.1") {
exclude group: 'stax', module: 'stax-api' exclude group: "stax", module: "stax-api"
exclude group: "org.springframework", module: "spring-context" exclude group: "org.springframework", module: "spring-context"
exclude group: "commons-logging", module: "commons-logging" exclude group: "commons-logging", module: "commons-logging"
} }
optional("com.thoughtworks.xstream:xstream:1.4.10") { optional("com.thoughtworks.xstream:xstream:1.4.10") {
exclude group: 'xpp3', module: 'xpp3_min' exclude group: "xpp3", module: "xpp3_min"
exclude group: 'xmlpull', module: 'xmlpull' exclude group: "xmlpull", module: "xmlpull"
} }
optional("org.jibx:jibx-run:1.3.1") optional("org.jibx:jibx-run:1.3.1")
testCompile(project(":spring-context")) testCompile(project(":spring-context"))
testCompile("org.ogce:xpp3:1.1.6") testCompile("org.ogce:xpp3:1.1.6")
testCompile("org.codehaus.jettison:jettison:1.3.8") { testCompile("org.codehaus.jettison:jettison:1.3.8") {
exclude group: 'stax', module: 'stax-api' exclude group: "stax", module: "stax-api"
} }
testCompile(files(genCastor.classesDir).builtBy(genCastor)) testCompile(files(genCastor.classesDir).builtBy(genCastor))
testCompile(files(genJaxb.classesDir).builtBy(genJaxb)) testCompile(files(genJaxb.classesDir).builtBy(genJaxb))

View File

@ -1,4 +1,4 @@
description = 'Spring TestContext Framework' description = "Spring TestContext Framework"
dependencyManagement { dependencyManagement {
imports { imports {
@ -9,89 +9,89 @@ dependencyManagement {
} }
dependencies { dependencies {
compile(project(':spring-core')) compile(project(":spring-core"))
optional(project(':spring-aop')) optional(project(":spring-aop"))
optional(project(':spring-beans')) optional(project(":spring-beans"))
optional(project(':spring-context')) optional(project(":spring-context"))
optional(project(':spring-jdbc')) optional(project(":spring-jdbc"))
optional(project(':spring-orm')) optional(project(":spring-orm"))
optional(project(':spring-tx')) optional(project(":spring-tx"))
optional(project(':spring-web')) optional(project(":spring-web"))
optional(project(':spring-webflux')) optional(project(":spring-webflux"))
optional(project(':spring-webmvc')) optional(project(":spring-webmvc"))
optional(project(':spring-websocket')) optional(project(":spring-websocket"))
optional('javax.activation:activation:1.1.1') optional("javax.activation:activation:1.1.1")
optional('javax.el:javax.el-api:3.0.1-b04') optional("javax.el:javax.el-api:3.0.1-b04")
optional('javax.inject:javax.inject:1') optional("javax.inject:javax.inject:1")
optional('javax.servlet:javax.servlet-api:4.0.1') optional("javax.servlet:javax.servlet-api:4.0.1")
optional('javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02') optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02")
optional('javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1') optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1")
optional('javax.xml.bind:jaxb-api:2.3.0') optional("javax.xml.bind:jaxb-api:2.3.0")
optional('javax.websocket:javax.websocket-api:1.1') optional("javax.websocket:javax.websocket-api:1.1")
optional('junit:junit:4.12') optional("junit:junit:4.12")
optional('org.junit.jupiter:junit-jupiter-api') optional("org.junit.jupiter:junit-jupiter-api")
optional('org.testng:testng:6.14.3') optional("org.testng:testng:6.14.3")
optional("org.aspectj:aspectjweaver:${aspectjVersion}") optional("org.aspectj:aspectjweaver:${aspectjVersion}")
optional("org.codehaus.groovy:groovy-all:${groovyVersion}") optional("org.codehaus.groovy:groovy-all:${groovyVersion}")
optional('org.hamcrest:hamcrest-core:1.3') optional("org.hamcrest:hamcrest-core:1.3")
optional('org.apache.taglibs:taglibs-standard-jstlel:1.2.5') { optional("org.apache.taglibs:taglibs-standard-jstlel:1.2.5") {
exclude group: 'org.apache.taglibs', module: 'taglibs-standard-spec' exclude group: "org.apache.taglibs", module: "taglibs-standard-spec"
} }
optional('net.sourceforge.htmlunit:htmlunit:2.32') { optional("net.sourceforge.htmlunit:htmlunit:2.32") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
} }
optional('org.seleniumhq.selenium:htmlunit-driver:2.32.0') { optional("org.seleniumhq.selenium:htmlunit-driver:2.32.1") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
} }
optional('org.seleniumhq.selenium:selenium-java:3.14.0') { optional("org.seleniumhq.selenium:selenium-java:3.14.0") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
exclude group: 'io.netty', module: 'netty' exclude group: "io.netty", module: "netty"
} }
optional('org.xmlunit:xmlunit-matchers:2.6.0') optional("org.xmlunit:xmlunit-matchers:2.6.0")
optional('org.skyscreamer:jsonassert:1.5.0') optional("org.skyscreamer:jsonassert:1.5.0")
optional('com.jayway.jsonpath:json-path:2.4.0') optional("com.jayway.jsonpath:json-path:2.4.0")
optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}")
optional('io.projectreactor:reactor-test') optional("io.projectreactor:reactor-test")
testCompile(project(':spring-context-support')) testCompile(project(":spring-context-support"))
testCompile(project(':spring-oxm')) testCompile(project(":spring-oxm"))
testCompile('javax.annotation:javax.annotation-api:1.3.2') testCompile("javax.annotation:javax.annotation-api:1.3.2")
testCompile('javax.cache:cache-api:1.1.0') testCompile("javax.cache:cache-api:1.1.0")
testCompile('javax.ejb:javax.ejb-api:3.2') testCompile("javax.ejb:javax.ejb-api:3.2")
testCompile('javax.interceptor:javax.interceptor-api:1.2.2') testCompile("javax.interceptor:javax.interceptor-api:1.2.2")
testCompile('javax.mail:javax.mail-api:1.6.1') testCompile("javax.mail:javax.mail-api:1.6.1")
testCompile('org.hibernate:hibernate-core:5.2.17.Final') testCompile("org.hibernate:hibernate-core:5.2.17.Final")
testCompile('org.hibernate:hibernate-validator:6.0.12.Final') testCompile("org.hibernate:hibernate-validator:6.0.12.Final")
// Enable use of the JUnit Platform Runner // Enable use of the JUnit Platform Runner
testCompile('org.junit.platform:junit-platform-runner') testCompile("org.junit.platform:junit-platform-runner")
testCompile('org.junit.jupiter:junit-jupiter-params') testCompile("org.junit.jupiter:junit-jupiter-params")
testCompile("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") testCompile("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
testCompile('com.thoughtworks.xstream:xstream:1.4.10') testCompile("com.thoughtworks.xstream:xstream:1.4.10")
testCompile('com.rometools:rome:1.11.0') testCompile("com.rometools:rome:1.11.0")
testCompile("org.apache.tiles:tiles-api:${tiles3Version}") testCompile("org.apache.tiles:tiles-api:${tiles3Version}")
testCompile("org.apache.tiles:tiles-core:${tiles3Version}", withoutJclOverSlf4J) testCompile("org.apache.tiles:tiles-core:${tiles3Version}", withoutJclOverSlf4J)
testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}", withoutJclOverSlf4J) testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}", withoutJclOverSlf4J)
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")
testCompile('org.apache.httpcomponents:httpclient:4.5.6') { testCompile("org.apache.httpcomponents:httpclient:4.5.6") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
} }
testCompile('io.projectreactor.netty:reactor-netty') testCompile("io.projectreactor.netty:reactor-netty")
testCompile('de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1') testCompile("de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1")
// Pull in the latest JUnit 5 Launcher API and the Vintage engine as well // Pull in the latest JUnit 5 Launcher API and the Vintage engine as well
// so that we can run JUnit 4 tests in IntelliJ IDEA. // so that we can run JUnit 4 tests in IntelliJ IDEA.
testRuntime('org.junit.jupiter:junit-jupiter-engine') testRuntime("org.junit.jupiter:junit-jupiter-engine")
testRuntime('org.junit.platform:junit-platform-launcher') testRuntime("org.junit.platform:junit-platform-launcher")
testRuntime('org.junit.vintage:junit-vintage-engine') testRuntime("org.junit.vintage:junit-vintage-engine")
testRuntime('org.glassfish:javax.el:3.0.1-b08') testRuntime("org.glassfish:javax.el:3.0.1-b08")
testRuntime('com.sun.xml.bind:jaxb-core:2.3.0.1') testRuntime("com.sun.xml.bind:jaxb-core:2.3.0.1")
testRuntime('com.sun.xml.bind:jaxb-impl:2.3.0.1') testRuntime("com.sun.xml.bind:jaxb-impl:2.3.0.1")
} }
task testNG(type: Test) { task testNG(type: Test) {
description = 'Runs TestNG tests.' description = "Runs TestNG tests."
useTestNG() useTestNG()
scanForTestClasses = false scanForTestClasses = false
include(['**/testng/**/*Tests.class', '**/testng/**/*Test.class']) include(["**/testng/**/*Tests.class", "**/testng/**/*Test.class"])
// Show STD_OUT & STD_ERR of the test JVM(s) on the console: // Show STD_OUT & STD_ERR of the test JVM(s) on the console:
// testLogging.showStandardStreams = true // testLogging.showStandardStreams = true
// forkEvery 1 // forkEvery 1
@ -99,31 +99,31 @@ task testNG(type: Test) {
} }
task testJUnitJupiter(type: Test) { task testJUnitJupiter(type: Test) {
description = 'Runs JUnit Jupiter tests.' description = "Runs JUnit Jupiter tests."
useJUnitPlatform { useJUnitPlatform {
includeEngines 'junit-jupiter' includeEngines "junit-jupiter"
excludeTags 'failing-test-case' excludeTags "failing-test-case"
} }
filter { filter {
includeTestsMatching 'org.springframework.test.context.junit.jupiter.*' includeTestsMatching "org.springframework.test.context.junit.jupiter.*"
} }
reports.junitXml.destination = file("$buildDir/test-results") reports.junitXml.destination = file("$buildDir/test-results")
// Java Util Logging for the JUnit Platform. // Java Util Logging for the JUnit Platform.
// systemProperty('java.util.logging.manager', 'org.apache.logging.log4j.jul.LogManager') // systemProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager")
} }
test { test {
description = 'Runs JUnit 4 tests.' description = "Runs JUnit 4 tests."
dependsOn testJUnitJupiter, testNG dependsOn testJUnitJupiter, testNG
useJUnit() useJUnit()
scanForTestClasses = false scanForTestClasses = false
include(['**/*Tests.class', '**/*Test.class']) include(["**/*Tests.class", "**/*Test.class"])
exclude(['**/testng/**/*.*', '**/jupiter/**/*.*']) exclude(["**/testng/**/*.*", "**/jupiter/**/*.*"])
reports.junitXml.destination = file("$buildDir/test-results") reports.junitXml.destination = file("$buildDir/test-results")
} }
task aggregateTestReports(type: TestReport) { task aggregateTestReports(type: TestReport) {
description = 'Aggregates JUnit and TestNG test reports.' description = "Aggregates JUnit and TestNG test reports."
destinationDir = test.reports.html.destination destinationDir = test.reports.html.destination
reportOn test, testJUnitJupiter, testNG reportOn test, testJUnitJupiter, testNG
} }

View File

@ -12,7 +12,7 @@ dependencies {
compile(project(":spring-aop")) compile(project(":spring-aop"))
compile(project(":spring-beans")) compile(project(":spring-beans"))
compile(project(":spring-context")) compile(project(":spring-context"))
compile(project(':spring-core')) compile(project(":spring-core"))
compile(project(":spring-expression")) compile(project(":spring-expression"))
compile(project(":spring-web")) compile(project(":spring-web"))
optional(project(":spring-context-support")) // for FreeMarker support optional(project(":spring-context-support")) // for FreeMarker support
@ -21,7 +21,7 @@ dependencies {
optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1") optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1")
optional("javax.el:javax.el-api:3.0.1-b04") optional("javax.el:javax.el-api:3.0.1-b04")
optional("javax.xml.bind:jaxb-api:2.3.0") optional("javax.xml.bind:jaxb-api:2.3.0")
optional('org.webjars:webjars-locator-core:0.35') optional("org.webjars:webjars-locator-core:0.35")
optional("com.rometools:rome:1.11.0") optional("com.rometools:rome:1.11.0")
optional("com.github.librepdf:openpdf:1.2.0") optional("com.github.librepdf:openpdf:1.2.0")
optional("org.apache.poi:poi-ooxml:3.17") optional("org.apache.poi:poi-ooxml:3.17")