|
|
|
buildscript {
|
|
|
|
repositories {
|
|
|
|
maven { url "https://repo.spring.io/plugins-release" }
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
classpath("io.spring.gradle:dependency-management-plugin:1.0.0.RELEASE")
|
|
|
|
classpath("io.spring.gradle:propdeps-plugin:0.0.8")
|
|
|
|
classpath("io.spring.gradle:docbook-reference-plugin:0.3.1")
|
|
|
|
classpath("org.asciidoctor:asciidoctor-gradle-plugin:1.5.3")
|
|
|
|
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
id "org.sonarqube" version "2.2.1"
|
|
|
|
}
|
|
|
|
|
|
|
|
ext {
|
|
|
|
linkHomepage = 'https://projects.spring.io/spring-framework'
|
|
|
|
linkCi = 'https://build.spring.io/browse/SPR'
|
|
|
|
linkIssue = 'https://jira.spring.io/browse/SPR'
|
|
|
|
linkScmUrl = 'https://github.com/spring-projects/spring-framework'
|
|
|
|
linkScmConnection = 'scm:git:git://github.com/spring-projects/spring-framework.git'
|
|
|
|
linkScmDevConnection = 'scm:git:ssh://git@github.com:spring-projects/spring-framework.git'
|
|
|
|
|
|
|
|
moduleProjects = subprojects.findAll {
|
|
|
|
!it.name.equals('spring-build-src') && !it.name.equals('spring-framework-bom')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configure(allprojects) { project ->
|
|
|
|
group = "org.springframework"
|
|
|
|
version = qualifyVersionIfNecessary(version)
|
|
|
|
|
|
|
|
ext.activationApiVersion = "1.1.1"
|
|
|
|
ext.annotationApiVersion = "1.2"
|
|
|
|
ext.aspectjVersion = "1.9.0.BETA-5"
|
|
|
|
ext.beanvalVersion = "1.1.0.Final"
|
|
|
|
ext.cacheApiVersion = "1.0.0"
|
|
|
|
ext.caffeineVersion = "2.4.0"
|
|
|
|
ext.eclipselinkVersion = "2.6.4"
|
|
|
|
ext.ehcacheVersion = "2.10.3"
|
|
|
|
ext.ehcachejcacheVersion = "1.0.1"
|
|
|
|
ext.ehcache3Version = "3.3.0"
|
|
|
|
ext.ejbApiVersion = "3.2"
|
|
|
|
ext.elApiVersion = "3.0.1-b04"
|
|
|
|
ext.fileuploadVersion = "1.3.2"
|
|
|
|
ext.freemarkerVersion = "2.3.25-incubating"
|
|
|
|
ext.groovyVersion = "2.4.9"
|
|
|
|
ext.gsonVersion = "2.8.0"
|
|
|
|
ext.hamcrestVersion = "1.3"
|
|
|
|
ext.hibernate5Version = "5.2.8.Final"
|
|
|
|
ext.hibval5Version = "5.4.0.Final"
|
|
|
|
ext.hsqldbVersion = "2.3.4"
|
|
|
|
ext.httpasyncVersion = "4.1.3"
|
|
|
|
ext.httpclientVersion = "4.5.3"
|
|
|
|
ext.interceptorApiVersion = "1.2"
|
|
|
|
ext.jackson2Version = "2.9.0.pr1"
|
|
|
|
ext.javamailVersion = "1.5.6"
|
|
|
|
ext.jaxbVersion = "2.2.11"
|
|
|
|
ext.jaxwsVersion = "2.2.11"
|
|
|
|
ext.jcaVersion = "1.7"
|
|
|
|
ext.jettyVersion = "9.4.2.v20170220"
|
|
|
|
ext.jmsVersion = "2.0.1"
|
|
|
|
ext.jodaVersion = "2.9.7"
|
|
|
|
ext.jpaVersion = "2.1.1"
|
|
|
|
ext.jsfVersion = "2.2"
|
|
|
|
ext.jspVersion = "2.3.2-b02"
|
|
|
|
ext.jtaVersion = "1.2"
|
|
|
|
ext.junitVersion = "4.12"
|
|
|
|
ext.junitJupiterVersion = '5.0.0-M3'
|
|
|
|
ext.junitPlatformVersion = '1.0.0-M3'
|
|
|
|
ext.kotlinVersion = "1.1.0" // also change kotlin-gradle-plugin version when upgrading
|
|
|
|
ext.log4jVersion = '2.8.1'
|
|
|
|
ext.nettyVersion = "4.1.8.Final"
|
|
|
|
ext.okhttp3Version = "3.6.0"
|
|
|
|
ext.poiVersion = "3.15"
|
|
|
|
ext.protobufVersion = "3.2.0"
|
|
|
|
ext.quartzVersion = "2.2.3"
|
|
|
|
ext.reactorVersion = "Aluminium-SR1"
|
|
|
|
ext.romeVersion = "1.7.1"
|
|
|
|
ext.rxjavaVersion = '1.2.7'
|
|
|
|
ext.rxjavaAdapterVersion = '1.2.1'
|
|
|
|
ext.rxjava2Version = '2.0.7'
|
|
|
|
ext.rxnettyVersion = '0.5.2'
|
|
|
|
ext.servletVersion = "3.1.0"
|
|
|
|
ext.slf4jVersion = "1.7.24"
|
|
|
|
ext.snakeyamlVersion = "1.18"
|
|
|
|
ext.snifferVersion = "1.15"
|
|
|
|
ext.testngVersion = "6.10"
|
|
|
|
ext.tiles3Version = "3.0.7"
|
|
|
|
ext.tomcatVersion = "8.5.11"
|
|
|
|
ext.tyrusVersion = "1.13.1"
|
|
|
|
ext.undertowVersion = "1.4.11.Final"
|
|
|
|
ext.websocketVersion = "1.1"
|
|
|
|
ext.woodstoxVersion = "5.0.3"
|
|
|
|
ext.xmlunitVersion = "2.3.0"
|
|
|
|
ext.xnioVersion = "3.4.3.Final"
|
|
|
|
ext.xstreamVersion = "1.4.9"
|
|
|
|
|
|
|
|
ext.gradleScriptDir = "${rootProject.projectDir}/gradle"
|
|
|
|
|
|
|
|
apply plugin: "propdeps"
|
|
|
|
apply plugin: "java"
|
|
|
|
apply plugin: "test-source-set-dependencies"
|
|
|
|
apply from: "${gradleScriptDir}/ide.gradle"
|
|
|
|
|
|
|
|
// Kotlin compiler does not support JDK 9 yet, see https://youtrack.jetbrains.com/issue/KT-14988
|
|
|
|
if (!JavaVersion.current().java9Compatible) {
|
|
|
|
apply plugin: "kotlin"
|
|
|
|
compileKotlin {
|
|
|
|
kotlinOptions.jvmTarget = "1.8"
|
|
|
|
}
|
|
|
|
compileTestKotlin {
|
|
|
|
kotlinOptions.jvmTarget = "1.8"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
sniffer
|
|
|
|
javaApiSignature
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations.all {
|
|
|
|
// Check for updates every build
|
|
|
|
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
|
|
|
|
|
|
|
|
// Consistent netty version (e.g. clashes between netty-all vs netty-common)
|
|
|
|
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
|
|
|
|
if (details.requested.group == 'io.netty') {
|
|
|
|
details.useVersion nettyVersion
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
compileJava.options*.compilerArgs = [
|
|
|
|
"-Xlint:serial", "-Xlint:varargs", "-Xlint:cast", "-Xlint:classfile",
|
|
|
|
"-Xlint:dep-ann", "-Xlint:divzero", "-Xlint:empty", "-Xlint:finally",
|
|
|
|
"-Xlint:overrides", "-Xlint:path", "-Xlint:processing", "-Xlint:static",
|
|
|
|
"-Xlint:try", "-Xlint:fallthrough", "-Xlint:rawtypes", "-Xlint:deprecation",
|
|
|
|
"-Xlint:unchecked", "-Xlint:-options", "-Werror"
|
|
|
|
]
|
|
|
|
|
|
|
|
compileTestJava.options*.compilerArgs = [
|
|
|
|
"-Xlint:serial", "-Xlint:-varargs", "-Xlint:cast", "-Xlint:classfile",
|
|
|
|
"-Xlint:dep-ann", "-Xlint:divzero", "-Xlint:empty", "-Xlint:finally",
|
|
|
|
"-Xlint:overrides", "-Xlint:path", "-Xlint:processing", "-Xlint:static",
|
|
|
|
"-Xlint:try", "-Xlint:-fallthrough", "-Xlint:-rawtypes", "-Xlint:-deprecation",
|
|
|
|
"-Xlint:-unchecked", "-Xlint:-options"]
|
|
|
|
|
|
|
|
compileJava {
|
|
|
|
sourceCompatibility = 1.8
|
|
|
|
targetCompatibility = 1.8
|
|
|
|
options.encoding = 'UTF-8'
|
|
|
|
}
|
|
|
|
|
|
|
|
compileTestJava {
|
|
|
|
sourceCompatibility = 1.8
|
|
|
|
targetCompatibility = 1.8
|
|
|
|
options.encoding = 'UTF-8'
|
|
|
|
options.compilerArgs += "-parameters"
|
|
|
|
}
|
|
|
|
|
|
|
|
test {
|
|
|
|
systemProperty("java.awt.headless", "true")
|
|
|
|
systemProperty("testGroups", project.properties.get("testGroups"))
|
|
|
|
scanForTestClasses = false
|
|
|
|
include(["**/*Tests.class", "**/*Test.class"])
|
|
|
|
// Since we set scanForTestClasses to false, we need to filter out inner
|
|
|
|
// classes with the "$" pattern; otherwise, using -Dtest.single=MyTests to
|
|
|
|
// run MyTests by itself will fail if MyTests contains any inner classes.
|
|
|
|
exclude(["**/Abstract*.class", '**/*$*'])
|
|
|
|
reports.junitXml.destination = file("$buildDir/test-results")
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven { url "https://repo.spring.io/libs-release" }
|
|
|
|
maven { url "https://repo.spring.io/milestone" }
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
testCompile("junit:junit:${junitVersion}") {
|
|
|
|
exclude group:'org.hamcrest', module:'hamcrest-core'
|
|
|
|
}
|
|
|
|
testCompile("org.mockito:mockito-core:2.6.1") {
|
|
|
|
exclude group:'org.hamcrest', module:'hamcrest-core'
|
|
|
|
}
|
|
|
|
testCompile("org.hamcrest:hamcrest-all:${hamcrestVersion}")
|
|
|
|
testRuntime("org.apache.logging.log4j:log4j-core:${log4jVersion}")
|
|
|
|
testRuntime("org.apache.logging.log4j:log4j-jcl:${log4jVersion}")
|
|
|
|
|
|
|
|
sniffer("org.codehaus.mojo:animal-sniffer-ant-tasks:${snifferVersion}")
|
|
|
|
javaApiSignature("org.codehaus.mojo.signature:java18:1.0@signature")
|
|
|
|
}
|
|
|
|
|
|
|
|
task copyJavaApiSignature(type: Copy) {
|
|
|
|
ext.to = file("$buildDir/javaApiSignature/")
|
|
|
|
description "Copy the resolved Animal Sniffer signature dependency artifact to a known location and name"
|
|
|
|
from configurations.javaApiSignature
|
|
|
|
into to
|
|
|
|
rename '.*signature', 'javaApi.signature'
|
|
|
|
}
|
|
|
|
|
|
|
|
task sniff {
|
|
|
|
group = "Verification"
|
|
|
|
description = "Checks the Java API signatures"
|
|
|
|
|
|
|
|
dependsOn compileJava
|
|
|
|
dependsOn copyJavaApiSignature
|
|
|
|
|
|
|
|
inputs.dir sourceSets.main.output.classesDir
|
|
|
|
inputs.dir copyJavaApiSignature.to
|
|
|
|
|
|
|
|
doLast {
|
|
|
|
ant.taskdef(
|
|
|
|
name: 'animalSniffer',
|
|
|
|
classname: 'org.codehaus.mojo.animal_sniffer.ant.CheckSignatureTask',
|
|
|
|
classpath: configurations.sniffer.asPath
|
|
|
|
)
|
|
|
|
|
|
|
|
// TODO: Animal Sniffer currently chokes on optional JDK 9 bytecode in AspectJ 1.9 beta 5
|
|
|
|
// ant.animalSniffer(
|
|
|
|
// signature: "$buildDir/javaApiSignature/javaApi.signature",
|
|
|
|
// classpath: sourceSets.main.compileClasspath.asPath) {
|
|
|
|
// path(path: sourceSets.main.output.classesDir)
|
|
|
|
// annotation(className: "org.springframework.lang.UsesSunHttpServer")
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
|
|
|
|
ext.javadocLinks = [
|
|
|
|
"http://docs.oracle.com/javase/8/docs/api/",
|
|
|
|
"http://docs.oracle.com/javaee/7/api/",
|
|
|
|
"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://glassfish.java.net/nonav/docs/v3/api/",
|
|
|
|
"http://docs.jboss.org/jbossas/javadoc/4.0.5/connector/",
|
|
|
|
"http://docs.jboss.org/jbossas/javadoc/7.1.2.Final/",
|
|
|
|
"http://tiles.apache.org/tiles-request/apidocs/",
|
|
|
|
"http://tiles.apache.org/framework/apidocs/",
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
"http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/",
|
|
|
|
"http://ehcache.org/apidocs/${ehcacheVersion}",
|
|
|
|
"http://ehcache.org/apidocs/${ehcache3Version}",
|
|
|
|
"http://quartz-scheduler.org/api/2.2.1/",
|
|
|
|
"http://fasterxml.github.io/jackson-core/javadoc/2.8/",
|
|
|
|
"http://fasterxml.github.io/jackson-databind/javadoc/2.8/",
|
|
|
|
"http://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.8/",
|
|
|
|
"http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/"
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
] as String[]
|
Upgrade to JUnit 4.11 snapshot in support of JDK7
Class#getDeclaredMembers returns arbitrary results under JDK7. This
results in non-deterministic execution of JUnit test methods, often
revealing unintended dependencies between methods that rely on a
specific order to succeed.
JUnit 4.11 contains support for predictable test ordering [1], but at
the time of this commit, JUnit 4.11 has not yet been released.
Therefore we are testing against a snapshot version [2], which has been
uploaded to repo.springsource.org [3] for easy access. Note that this
artifact may be removed when JUnit 4.11 goes GA.
- Care has been taken to ensure that spring-test's compile-time
dependency on JUnit remains at 4.10. This means that the spring-test
pom.xml will continue to have an optional <dependency> on JUnit
4.10, instead of the 4.11 snapshot.
- For reasons not fully understood, the upgrade to the 4.11 snapshot
of junit-dep caused NoSuchMethodErrors around certain Hamcrest
types, particularly CoreMatchers and Matchers. import statements
have been updated accordingly throughout affected test cases.
- Runtime errors also occurred around uses of JUnit @Rule and
ExpectedException. These have been reverted to use simpler
mechanisms like @Test(expected) in the meantime.
- Some test methods with order-based dependencies on one another have
been renamed in order to fall in line with JUnit 4.11's new method
ordering (as opposed to actually fixing the inter-test
dependencies). In other areas, the fix was as simple as adding a
tearDown method and cleaning up state.
- For no apparent reason, the timeout in AspectJAutoProxyCreatorTests'
testAspectsAndAdvisorNotAppliedToPrototypeIsFastEnough method begins
to be exceeded. Prior to this commit the timeout value was 3000 ms;
on the CI server under Linux/JDK6 and JDK7, the test begins taking
anywhere from 3500-5500 ms with this commit. It is presumed that
this is an incidental artifact of the upgrade to JUnit 4.11. In any
case, there are no changes to src/main in this commit, so this
should not actually represent a performance risk for Spring
Framework users. The timeout has been increased to 6000 ms to
accommodate this situation.
[1]: https://github.com/KentBeck/junit/pull/293
[2]: https://github.com/downloads/KentBeck/junit/junit-dep-4.11-SNAPSHOT-20120805-1225.jar
[3]: https://repo.springsource.org/simple/ext-release-local/junit/junit-dep/4.11.20120805.1225
Issue: SPR-9783
12 years ago
|
|
|
}
|
|
|
|
|
|
|
|
configure(subprojects - project(":spring-build-src")) { subproject ->
|
|
|
|
apply plugin: "merge"
|
|
|
|
apply from: "${gradleScriptDir}/publish-maven.gradle"
|
|
|
|
apply plugin: "io.spring.dependency-management"
|
|
|
|
|
|
|
|
dependencyManagement {
|
|
|
|
imports {
|
|
|
|
mavenBom "io.projectreactor:reactor-bom:${reactorVersion}"
|
|
|
|
}
|
|
|
|
resolutionStrategy {
|
|
|
|
cacheChangingModulesFor 0, 'seconds'
|
|
|
|
}
|
|
|
|
applyMavenExclusions = false
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
jacoco
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
jacoco("org.jacoco:org.jacoco.agent:0.7.5.201505241946:runtime")
|
|
|
|
}
|
|
|
|
|
|
|
|
gradle.taskGraph.whenReady {taskGraph ->
|
|
|
|
if (taskGraph.hasTask(':sonarqube')) {
|
|
|
|
test.jvmArgs "-javaagent:${configurations.jacoco.asPath}=destfile=${buildDir}/jacoco.exec,includes=org.springframework.*"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
manifest.attributes["Created-By"] =
|
|
|
|
"${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
|
|
|
|
manifest.attributes["Implementation-Title"] = subproject.name
|
|
|
|
manifest.attributes["Implementation-Version"] = subproject.version
|
|
|
|
|
|
|
|
from("${rootProject.projectDir}/src/dist") {
|
|
|
|
include "license.txt"
|
|
|
|
include "notice.txt"
|
|
|
|
into "META-INF"
|
|
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
javadoc {
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
description = "Generates project-level javadoc for use in -javadoc jar"
|
|
|
|
|
|
|
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
|
|
|
|
options.author = true
|
|
|
|
options.header = project.name
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
options.links(project.ext.javadocLinks)
|
|
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
|
|
|
|
// Suppress warnings due to cross-module @see and @link references.
|
|
|
|
// Note that global 'api' task does display all warnings.
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
logging.captureStandardError LogLevel.INFO
|
|
|
|
logging.captureStandardOutput LogLevel.INFO // suppress "## warnings" message
|
|
|
|
}
|
|
|
|
|
|
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
|
|
classifier = 'sources'
|
|
|
|
from sourceSets.main.allSource
|
|
|
|
// Don't include or exclude anything explicitly by default. See SPR-12085.
|
|
|
|
}
|
|
|
|
|
|
|
|
task javadocJar(type: Jar) {
|
|
|
|
classifier = "javadoc"
|
|
|
|
from javadoc
|
|
|
|
}
|
|
|
|
|
|
|
|
artifacts {
|
|
|
|
archives sourcesJar
|
|
|
|
archives javadocJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-build-src") {
|
|
|
|
description = "Exposes gradle buildSrc for IDE support"
|
|
|
|
|
|
|
|
apply plugin: "groovy"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile gradleApi()
|
|
|
|
compile localGroovy()
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations.archives.artifacts.clear()
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-core") {
|
|
|
|
description = "Spring Core"
|
|
|
|
|
|
|
|
// As of Spring 4.0.3, spring-core includes asm 5.x and repackages cglib 3.2, inlining
|
|
|
|
// both into the spring-core jar. cglib 3.2 itself depends on asm 5.x and is therefore
|
|
|
|
// further transformed by the JarJar task to depend on org.springframework.asm; this
|
|
|
|
// avoids including two different copies of asm unnecessarily.
|
|
|
|
def cglibVersion = "3.2.5"
|
|
|
|
def objenesisVersion = "2.5.1"
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
jarjar
|
|
|
|
cglib
|
|
|
|
objenesis
|
|
|
|
}
|
|
|
|
|
|
|
|
task cglibRepackJar(type: Jar) { repackJar ->
|
|
|
|
repackJar.baseName = "spring-cglib-repack"
|
|
|
|
repackJar.version = cglibVersion
|
|
|
|
|
|
|
|
doLast() {
|
|
|
|
project.ant {
|
|
|
|
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask",
|
|
|
|
classpath: configurations.jarjar.asPath
|
|
|
|
jarjar(destfile: repackJar.archivePath) {
|
|
|
|
configurations.cglib.each { originalJar ->
|
|
|
|
zipfileset(src: originalJar)
|
|
|
|
}
|
|
|
|
// Repackage net.sf.cglib => org.springframework.cglib
|
|
|
|
rule(pattern: "net.sf.cglib.**", result: "org.springframework.cglib.@1")
|
|
|
|
// As mentioned above, transform cglib"s internal asm dependencies from
|
|
|
|
// org.objectweb.asm => org.springframework.asm. Doing this counts on the
|
|
|
|
// the fact that Spring and cglib depend on the same version of asm!
|
|
|
|
rule(pattern: "org.objectweb.asm.**", result: "org.springframework.asm.@1")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task objenesisRepackJar(type: Jar) { repackJar ->
|
|
|
|
repackJar.baseName = "spring-objenesis-repack"
|
|
|
|
repackJar.version = objenesisVersion
|
|
|
|
|
|
|
|
doLast() {
|
|
|
|
project.ant {
|
|
|
|
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask",
|
|
|
|
classpath: configurations.jarjar.asPath
|
|
|
|
jarjar(destfile: repackJar.archivePath) {
|
|
|
|
configurations.objenesis.each { originalJar ->
|
|
|
|
zipfileset(src: originalJar)
|
|
|
|
}
|
|
|
|
// Repackage org.objenesis => org.springframework.objenesis
|
|
|
|
rule(pattern: "org.objenesis.**", result: "org.springframework.objenesis.@1")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
cglib("cglib:cglib:${cglibVersion}@jar")
|
|
|
|
objenesis("org.objenesis:objenesis:${objenesisVersion}@jar")
|
|
|
|
jarjar("com.googlecode.jarjar:jarjar:1.3")
|
|
|
|
|
|
|
|
compile(files(cglibRepackJar))
|
|
|
|
compile(files(objenesisRepackJar))
|
|
|
|
compile("commons-logging:commons-logging:1.2")
|
|
|
|
optional("net.sf.jopt-simple:jopt-simple:5.0.3")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
optional("org.reactivestreams:reactive-streams")
|
|
|
|
optional("io.projectreactor:reactor-core")
|
|
|
|
optional "io.reactivex:rxjava:${rxjavaVersion}"
|
|
|
|
optional "io.reactivex.rxjava2:rxjava:${rxjava2Version}"
|
|
|
|
optional "io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}"
|
|
|
|
optional("io.netty:netty-buffer:${nettyVersion}")
|
|
|
|
testCompile("io.projectreactor.addons:reactor-test")
|
|
|
|
testCompile("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
testCompile("com.fasterxml.woodstox:woodstox-core:${woodstoxVersion}") {
|
|
|
|
exclude group: "stax", module: "stax-api"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
// Inline repackaged cglib classes directly into spring-core jar
|
|
|
|
dependsOn cglibRepackJar
|
|
|
|
from(zipTree(cglibRepackJar.archivePath)) {
|
|
|
|
include "org/springframework/cglib/**"
|
|
|
|
}
|
|
|
|
|
|
|
|
dependsOn objenesisRepackJar
|
|
|
|
from(zipTree(objenesisRepackJar.archivePath)) {
|
|
|
|
include "org/springframework/objenesis/**"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-beans") {
|
|
|
|
description = "Spring Beans"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
|
|
optional("javax.inject:javax.inject:1")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
optional("org.yaml:snakeyaml:${snakeyamlVersion}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-beans-groovy") {
|
|
|
|
description "Groovy Bean Definitions"
|
|
|
|
|
|
|
|
merge.into = project(":spring-beans")
|
|
|
|
apply plugin: "groovy"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
optional("org.codehaus.groovy:groovy-all:${groovyVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
// This module's Java and Groovy sources need to be compiled together.
|
|
|
|
compileJava.enabled = false
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
groovy {
|
|
|
|
srcDir "src/main/java"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
compileGroovy {
|
|
|
|
sourceCompatibility = 1.8
|
|
|
|
targetCompatibility = 1.8
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-aop") {
|
|
|
|
description = "Spring AOP"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
|
|
compile(files(project(":spring-core").objenesisRepackJar))
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
optional("org.apache.commons:commons-pool2:2.4.2")
|
|
|
|
optional("com.jamonapi:jamon:2.81")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-expression") {
|
|
|
|
description = "Spring Expression Language (SpEL)"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-instrument") {
|
|
|
|
description = "Spring Instrument"
|
|
|
|
|
|
|
|
jar {
|
|
|
|
manifest.attributes["Premain-Class"] =
|
|
|
|
"org.springframework.instrument.InstrumentationSavingAgent"
|
|
|
|
manifest.attributes["Agent-Class"] =
|
|
|
|
"org.springframework.instrument.InstrumentationSavingAgent"
|
|
|
|
manifest.attributes["Can-Redefine-Classes"] = "true"
|
|
|
|
manifest.attributes["Can-Retransform-Classes"] = "true"
|
|
|
|
manifest.attributes["Can-Set-Native-Method-Prefix"] = "false"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-context") {
|
|
|
|
description = "Spring Context"
|
|
|
|
|
|
|
|
apply plugin: "groovy"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-aop"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-expression"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
|
|
optional(project(":spring-instrument"))
|
|
|
|
optional("javax.inject:javax.inject:1")
|
|
|
|
optional("javax.annotation:javax.annotation-api:${annotationApiVersion}")
|
|
|
|
optional("javax.xml.ws:jaxws-api:${jaxwsVersion}")
|
|
|
|
optional("javax.ejb:javax.ejb-api:${ejbApiVersion}")
|
|
|
|
optional("javax.interceptor:javax.interceptor-api:${interceptorApiVersion}")
|
|
|
|
optional("javax.enterprise.concurrent:javax.enterprise.concurrent-api:1.0")
|
|
|
|
optional("javax.money:money-api:1.0.1")
|
|
|
|
optional("org.eclipse.persistence:javax.persistence:${jpaVersion}")
|
|
|
|
optional("javax.validation:validation-api:${beanvalVersion}")
|
|
|
|
optional("org.hibernate:hibernate-validator:${hibval5Version}")
|
|
|
|
optional("joda-time:joda-time:${jodaVersion}")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
optional("org.codehaus.groovy:groovy-all:${groovyVersion}")
|
|
|
|
optional("org.beanshell:bsh:2.0b5")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
testCompile("org.apache.commons:commons-pool2:2.4.2")
|
|
|
|
testCompile("org.slf4j:slf4j-api:${slf4jVersion}")
|
|
|
|
testCompile("javax.inject:javax.inject-tck:1")
|
|
|
|
testRuntime("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
testRuntime("javax.el:javax.el-api:${elApiVersion}")
|
|
|
|
testRuntime("org.glassfish:javax.el:3.0.1-b08")
|
|
|
|
testRuntime("org.javamoney:moneta:1.1")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-oxm") {
|
|
|
|
description = "Spring Object/XML Marshalling"
|
|
|
|
apply from: "oxm.gradle"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
optional("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
optional("javax.activation:activation:${activationApiVersion}")
|
|
|
|
optional("org.codehaus.castor:castor-xml:1.4.1") {
|
|
|
|
exclude group: 'stax', module: 'stax-api'
|
|
|
|
exclude group: "org.springframework", module: "spring-context"
|
|
|
|
}
|
|
|
|
optional("com.thoughtworks.xstream:xstream:${xstreamVersion}") {
|
|
|
|
exclude group: 'xpp3', module: 'xpp3_min'
|
|
|
|
exclude group: 'xmlpull', module: 'xmlpull'
|
|
|
|
}
|
|
|
|
optional("org.jibx:jibx-run:1.2.6")
|
|
|
|
testCompile(project(":spring-context"))
|
|
|
|
testCompile("xpp3:xpp3:1.1.4c")
|
|
|
|
testCompile("org.codehaus.jettison:jettison:1.3.8") {
|
|
|
|
exclude group: 'stax', module: 'stax-api'
|
|
|
|
}
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
testCompile(files(genCastor.classesDir).builtBy(genCastor))
|
|
|
|
testCompile(files(genJaxb.classesDir).builtBy(genJaxb))
|
|
|
|
testRuntime("xerces:xercesImpl:2.11.0") // for Castor
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-messaging") {
|
|
|
|
description = "Spring Messaging"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
optional(project(":spring-oxm"))
|
|
|
|
optional("io.projectreactor:reactor-core")
|
|
|
|
optional("io.projectreactor.ipc:reactor-netty")
|
|
|
|
optional("io.netty:netty-all:${nettyVersion}")
|
|
|
|
optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet-api"
|
|
|
|
}
|
|
|
|
optional("org.eclipse.jetty.websocket:websocket-client:${jettyVersion}")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
optional("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
testCompile("javax.inject:javax.inject-tck:1")
|
|
|
|
testCompile("javax.servlet:javax.servlet-api:${servletVersion}")
|
|
|
|
testCompile("javax.validation:validation-api:${beanvalVersion}")
|
|
|
|
testCompile("com.thoughtworks.xstream:xstream:${xstreamVersion}")
|
|
|
|
testCompile("org.apache.activemq:activemq-broker:5.8.0")
|
|
|
|
testCompile("org.apache.activemq:activemq-kahadb-store:5.8.0") {
|
|
|
|
exclude group: "org.springframework", module: "spring-context"
|
|
|
|
}
|
|
|
|
testCompile("org.apache.activemq:activemq-stomp:5.8.0")
|
|
|
|
testCompile("org.eclipse.jetty:jetty-webapp:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet-api"
|
|
|
|
}
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}")
|
|
|
|
testCompile("io.netty:netty-all:${nettyVersion}")
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
|
|
|
|
testCompile("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
testRuntime("javax.activation:activation:${activationApiVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
if (JavaVersion.current().java9Compatible) {
|
|
|
|
// Reactor2TcpClient's use of Netty requires access to sun.nio.ch.SelectorImpl
|
|
|
|
test.jvmArgs(["--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED"])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-tx") {
|
|
|
|
description = "Spring Transaction"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
optional(project(":spring-aop"))
|
|
|
|
optional(project(":spring-context")) // for JCA, @EnableTransactionManagement
|
|
|
|
optional("javax.transaction:javax.transaction-api:${jtaVersion}")
|
|
|
|
optional("javax.resource:javax.resource-api:${jcaVersion}")
|
|
|
|
optional("javax.ejb:javax.ejb-api:${ejbApiVersion}")
|
|
|
|
optional("javax.interceptor:javax.interceptor-api:${interceptorApiVersion}")
|
|
|
|
optional("com.ibm.websphere:uow:6.0.2.17")
|
|
|
|
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
testCompile("org.eclipse.persistence:javax.persistence:${jpaVersion}")
|
|
|
|
testCompile("org.codehaus.groovy:groovy-all:${groovyVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-jms") {
|
|
|
|
description = "Spring JMS"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-aop"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
compile(project(":spring-messaging"))
|
|
|
|
compile(project(":spring-tx"))
|
|
|
|
provided("javax.jms:javax.jms-api:${jmsVersion}")
|
|
|
|
optional(project(":spring-oxm"))
|
|
|
|
optional("javax.transaction:javax.transaction-api:${jtaVersion}")
|
|
|
|
optional("javax.resource:javax.resource-api:${jcaVersion}")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
testRuntime("javax.activation:activation:${activationApiVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-jdbc") {
|
|
|
|
description = "Spring JDBC"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-tx"))
|
|
|
|
optional(project(":spring-context")) // for JndiDataSourceLookup
|
|
|
|
optional("javax.transaction:javax.transaction-api:${jtaVersion}")
|
|
|
|
optional("org.hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
optional("com.h2database:h2:1.4.193")
|
|
|
|
optional("org.apache.derby:derby:10.13.1.1")
|
|
|
|
optional("org.apache.derby:derbyclient:10.13.1.1")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-context-support") {
|
|
|
|
description = "Spring Context Support"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
optional(project(":spring-jdbc")) // for Quartz support
|
|
|
|
optional(project(":spring-tx")) // for Quartz support
|
|
|
|
optional("javax.activation:activation:${activationApiVersion}")
|
|
|
|
optional("javax.mail:javax.mail-api:${javamailVersion}")
|
|
|
|
optional("javax.cache:cache-api:${cacheApiVersion}")
|
|
|
|
optional("com.github.ben-manes.caffeine:caffeine:${caffeineVersion}")
|
|
|
|
optional("net.sf.ehcache:ehcache:${ehcacheVersion}")
|
|
|
|
optional("org.quartz-scheduler:quartz:${quartzVersion}")
|
|
|
|
optional("org.codehaus.fabric3.api:commonj:1.1.0")
|
|
|
|
optional("org.freemarker:freemarker:${freemarkerVersion}")
|
|
|
|
optional("com.lowagie:itext:2.1.7")
|
|
|
|
testCompile(project(":spring-context"))
|
|
|
|
testCompile("org.apache.poi:poi:${poiVersion}")
|
|
|
|
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-api:${slf4jVersion}")
|
|
|
|
testRuntime("com.sun.mail:javax.mail:${javamailVersion}")
|
|
|
|
testRuntime("org.ehcache:jcache:${ehcachejcacheVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-context-indexer") {
|
|
|
|
description = "Spring Context Indexer"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
testCompile(project(":spring-context"))
|
|
|
|
testCompile("javax.inject:javax.inject:1")
|
|
|
|
testCompile("javax.annotation:javax.annotation-api:${annotationApiVersion}")
|
|
|
|
testCompile("org.eclipse.persistence:javax.persistence:${jpaVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-web") {
|
|
|
|
description = "Spring Web"
|
|
|
|
|
|
|
|
apply plugin: "groovy"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-aop")) // for JaxWsPortProxyFactoryBean
|
|
|
|
compile(project(":spring-beans")) // for MultipartFilter
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
provided "javax.servlet:javax.servlet-api:${servletVersion}"
|
|
|
|
optional(project(":spring-oxm")) // for MarshallingHttpMessageConverter
|
|
|
|
optional("javax.servlet.jsp:javax.servlet.jsp-api:${jspVersion}")
|
|
|
|
optional("javax.el:javax.el-api:${elApiVersion}")
|
|
|
|
optional("javax.faces:javax.faces-api:${jsfVersion}")
|
|
|
|
optional("javax.validation:validation-api:${beanvalVersion}")
|
|
|
|
optional("javax.activation:activation:${activationApiVersion}")
|
|
|
|
optional("org.codehaus.groovy:groovy-all:${groovyVersion}")
|
|
|
|
optional("com.caucho:hessian:4.0.38")
|
|
|
|
optional("commons-fileupload:commons-fileupload:${fileuploadVersion}")
|
|
|
|
optional("org.reactivestreams:reactive-streams")
|
|
|
|
optional("io.projectreactor:reactor-core")
|
|
|
|
optional("io.projectreactor.ipc:reactor-netty")
|
|
|
|
optional("io.reactivex:rxnetty-http:${rxnettyVersion}") {
|
|
|
|
exclude group: 'io.reactivex', module: 'rxjava'
|
|
|
|
}
|
|
|
|
optional("io.reactivex:rxjava:${rxjavaVersion}")
|
|
|
|
optional "io.reactivex.rxjava2:rxjava:${rxjava2Version}"
|
|
|
|
optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}")
|
|
|
|
optional("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
optional("io.undertow:undertow-core:${undertowVersion}")
|
|
|
|
optional("org.jboss.xnio:xnio-api:${xnioVersion}")
|
|
|
|
optional("io.netty:netty-buffer:${nettyVersion}") // temporarily for JsonObjectDecoder
|
|
|
|
optional("com.fasterxml.woodstox:woodstox-core:${woodstoxVersion}") { // woodstox before aalto
|
|
|
|
exclude group: "stax", module: "stax-api"
|
|
|
|
}
|
|
|
|
optional("com.fasterxml:aalto-xml:1.0.0")
|
|
|
|
optional("org.apache.httpcomponents:httpclient:${httpclientVersion}")
|
|
|
|
optional("org.apache.httpcomponents:httpasyncclient:${httpasyncVersion}")
|
|
|
|
optional("io.netty:netty-all:${nettyVersion}")
|
|
|
|
optional("com.squareup.okhttp3:okhttp:${okhttp3Version}")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}")
|
|
|
|
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}")
|
|
|
|
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}")
|
|
|
|
optional("com.google.code.gson:gson:${gsonVersion}")
|
|
|
|
optional("com.rometools:rome:${romeVersion}")
|
|
|
|
optional("org.eclipse.jetty:jetty-servlet:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet-api"
|
|
|
|
}
|
|
|
|
optional("org.eclipse.jetty:jetty-server:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet-api"
|
|
|
|
}
|
|
|
|
optional("com.google.protobuf:protobuf-java:${protobufVersion}")
|
|
|
|
optional("com.google.protobuf:protobuf-java-util:${protobufVersion}")
|
|
|
|
optional("com.googlecode.protobuf-java-format:protobuf-java-format:1.4")
|
|
|
|
optional("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
optional("javax.xml.ws:jaxws-api:${jaxwsVersion}")
|
|
|
|
optional("javax.mail:javax.mail-api:${javamailVersion}")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
testCompile(project(":spring-context-support")) // for JafMediaTypeFactory
|
|
|
|
testCompile("io.projectreactor.addons:reactor-test")
|
|
|
|
testCompile("org.apache.taglibs:taglibs-standard-jstlel:1.2.1") {
|
|
|
|
exclude group: "org.apache.taglibs", module: "taglibs-standard-spec"
|
|
|
|
}
|
|
|
|
testCompile("com.fasterxml.jackson.datatype:jackson-datatype-joda:${jackson2Version}")
|
|
|
|
testCompile("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:${jackson2Version}")
|
|
|
|
testCompile("com.fasterxml.jackson.module:jackson-module-kotlin:${jackson2Version}")
|
|
|
|
testCompile("org.apache.tomcat:tomcat-util:${tomcatVersion}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}")
|
|
|
|
testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}")
|
|
|
|
testCompile("com.squareup.okhttp3:mockwebserver:${okhttp3Version}")
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
|
|
|
|
testRuntime("com.sun.mail:javax.mail:${javamailVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
|
|
|
|
testRuntime("org.jboss.xnio:xnio-nio:${xnioVersion}")
|
|
|
|
testRuntime("org.jboss.logging:jboss-logging:3.3.0.Final")
|
|
|
|
}
|
|
|
|
|
|
|
|
if (JavaVersion.current().java9Compatible) {
|
|
|
|
// Netty4ClientHttpRequestFactory requires access to sun.nio.ch.SelectorImpl
|
|
|
|
test.jvmArgs(["--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED"])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-webflux") {
|
|
|
|
description = "Spring WebFlux"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-web"))
|
|
|
|
compile "org.reactivestreams:reactive-streams"
|
|
|
|
compile "io.projectreactor:reactor-core"
|
|
|
|
optional(project(":spring-context-support")) // for FreeMarker support
|
|
|
|
provided "javax.servlet:javax.servlet-api:${servletVersion}"
|
|
|
|
optional("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
optional("org.freemarker:freemarker:${freemarkerVersion}")
|
|
|
|
optional "org.apache.httpcomponents:httpclient:${httpclientVersion}"
|
|
|
|
optional('org.webjars:webjars-locator:0.32')
|
|
|
|
optional("io.projectreactor.ipc:reactor-netty")
|
|
|
|
optional("io.reactivex:rxnetty-http:${rxnettyVersion}") {
|
|
|
|
exclude group: 'io.reactivex', module: 'rxjava'
|
|
|
|
}
|
|
|
|
optional("io.reactivex:rxjava:${rxjavaVersion}")
|
|
|
|
optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}")
|
|
|
|
optional("javax.websocket:javax.websocket-api:${websocketVersion}")
|
|
|
|
optional("org.apache.tomcat:tomcat-websocket:${tomcatVersion}") {
|
|
|
|
exclude group: "org.apache.tomcat", module: "tomcat-websocket-api"
|
|
|
|
exclude group: "org.apache.tomcat", module: "tomcat-servlet-api"
|
|
|
|
}
|
|
|
|
optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
optional("io.undertow:undertow-websockets-jsr:${undertowVersion}") {
|
|
|
|
exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec"
|
|
|
|
}
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
|
|
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
|
|
|
|
testCompile("io.projectreactor.addons:reactor-test")
|
|
|
|
testCompile("javax.validation:validation-api:${beanvalVersion}")
|
|
|
|
testCompile("org.hibernate:hibernate-validator:${hibval5Version}")
|
|
|
|
testCompile("org.apache.tomcat:tomcat-util:${tomcatVersion}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}")
|
|
|
|
testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}")
|
|
|
|
testCompile "io.reactivex.rxjava2:rxjava:${rxjava2Version}"
|
|
|
|
testCompile("io.undertow:undertow-core:${undertowVersion}")
|
|
|
|
testCompile("org.jboss.xnio:xnio-api:${xnioVersion}")
|
|
|
|
testCompile("com.fasterxml:aalto-xml:1.0.0")
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("com.squareup.okhttp3:mockwebserver:${okhttp3Version}")
|
|
|
|
testRuntime("javax.el:javax.el-api:${elApiVersion}")
|
|
|
|
testRuntime("org.glassfish:javax.el:3.0.1-b08")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
|
|
|
|
testRuntime("javax.activation:activation:${activationApiVersion}")
|
|
|
|
testRuntime("org.jboss.xnio:xnio-nio:${xnioVersion}")
|
|
|
|
testRuntime("org.jboss.logging:jboss-logging:3.3.0.Final")
|
|
|
|
testRuntime("org.webjars:underscorejs:1.8.3")
|
|
|
|
testRuntime("org.jruby:jruby:9.1.8.0")
|
|
|
|
testRuntime("org.python:jython-standalone:2.5.3")
|
|
|
|
testRuntime("org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}")
|
|
|
|
testCompile("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}")
|
|
|
|
testRuntime("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
if (JavaVersion.current().java9Compatible) {
|
|
|
|
// ReactorClientHttpConnector requires access to sun.nio.ch.SelectorImpl
|
|
|
|
test.jvmArgs(["--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED"])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-orm") {
|
|
|
|
description = "Spring Object/Relational Mapping"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-jdbc"))
|
|
|
|
compile(project(":spring-tx"))
|
|
|
|
optional(project(":spring-aop"))
|
|
|
|
optional(project(":spring-context"))
|
|
|
|
optional(project(":spring-web"))
|
|
|
|
optional("org.eclipse.persistence:javax.persistence:${jpaVersion}")
|
|
|
|
optional("org.eclipse.persistence:org.eclipse.persistence.core:${eclipselinkVersion}")
|
|
|
|
optional("org.eclipse.persistence:org.eclipse.persistence.jpa:${eclipselinkVersion}") {
|
|
|
|
exclude group: 'org.eclipse.persistence', module: 'javax.persistence'
|
|
|
|
}
|
|
|
|
optional("org.hibernate:hibernate-core:${hibernate5Version}")
|
|
|
|
optional("javax.servlet:javax.servlet-api:${servletVersion}")
|
|
|
|
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testRuntime("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-webmvc") {
|
|
|
|
description = "Spring Web MVC"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-aop"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").objenesisRepackJar))
|
|
|
|
compile(project(":spring-expression"))
|
|
|
|
compile(project(":spring-web"))
|
|
|
|
provided("javax.servlet:javax.servlet-api:${servletVersion}")
|
|
|
|
optional(project(":spring-context-support")) // for FreeMarker support
|
|
|
|
optional(project(":spring-oxm")) // for MarshallingView
|
|
|
|
optional("javax.servlet.jsp:javax.servlet.jsp-api:${jspVersion}")
|
|
|
|
optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1")
|
|
|
|
optional("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
optional("org.apache.poi:poi:${poiVersion}")
|
|
|
|
optional("org.apache.poi:poi-ooxml:${poiVersion}")
|
|
|
|
optional("org.freemarker:freemarker:${freemarkerVersion}")
|
|
|
|
optional("org.codehaus.groovy:groovy-all:${groovyVersion}")
|
|
|
|
optional("com.lowagie:itext:2.1.7")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}")
|
|
|
|
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}")
|
|
|
|
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}")
|
|
|
|
optional("com.rometools:rome:${romeVersion}")
|
|
|
|
optional("javax.el:javax.el-api:${elApiVersion}")
|
|
|
|
optional("org.apache.tiles:tiles-api:${tiles3Version}")
|
|
|
|
optional("org.apache.tiles:tiles-core:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-servlet:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-jsp:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-el:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-extras:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
exclude group: "org.springframework", module: "spring-web"
|
|
|
|
}
|
|
|
|
optional('org.webjars:webjars-locator:0.32')
|
|
|
|
testCompile("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
testCompile("dom4j:dom4j:1.6.1") {
|
|
|
|
exclude group: "xml-apis", module: "xml-apis"
|
|
|
|
}
|
|
|
|
testCompile("jaxen:jaxen:1.1.1") {
|
|
|
|
exclude group: "xml-apis", module: "xml-apis"
|
|
|
|
exclude group: "xom", module: "xom"
|
|
|
|
exclude group: "xerces", module: "xercesImpl"
|
|
|
|
}
|
|
|
|
testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
testCompile("javax.validation:validation-api:${beanvalVersion}")
|
|
|
|
testCompile("org.hibernate:hibernate-validator:${hibval5Version}")
|
|
|
|
testCompile("org.apache.httpcomponents:httpclient:${httpclientVersion}")
|
|
|
|
testCompile("commons-fileupload:commons-fileupload:${fileuploadVersion}")
|
|
|
|
testCompile("commons-io:commons-io:2.5")
|
|
|
|
testCompile("joda-time:joda-time:${jodaVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("org.mozilla:rhino:1.7.7.1")
|
|
|
|
testRuntime("org.jruby:jruby:9.1.8.0")
|
|
|
|
testRuntime("org.python:jython-standalone:2.5.3")
|
|
|
|
testRuntime("org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}")
|
|
|
|
testCompile("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}")
|
|
|
|
testRuntime("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}")
|
|
|
|
testRuntime("org.webjars:underscorejs:1.8.3")
|
|
|
|
testRuntime("org.glassfish:javax.el:3.0.1-b08")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
|
|
|
|
testRuntime("javax.activation:activation:${activationApiVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-websocket") {
|
|
|
|
description = "Spring WebSocket"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
compile(project(":spring-web"))
|
|
|
|
optional(project(":spring-messaging"))
|
|
|
|
optional(project(":spring-webmvc"))
|
|
|
|
optional("javax.servlet:javax.servlet-api:${servletVersion}")
|
|
|
|
optional("javax.websocket:javax.websocket-api:${websocketVersion}")
|
|
|
|
optional("org.apache.tomcat:tomcat-websocket:${tomcatVersion}") {
|
|
|
|
exclude group: "org.apache.tomcat", module: "tomcat-websocket-api"
|
|
|
|
exclude group: "org.apache.tomcat", module: "tomcat-servlet-api"
|
|
|
|
}
|
|
|
|
optional("org.glassfish.tyrus:tyrus-spi:${tyrusVersion}")
|
|
|
|
optional("org.glassfish.tyrus:tyrus-core:${tyrusVersion}")
|
|
|
|
optional("org.glassfish.tyrus:tyrus-server:${tyrusVersion}")
|
|
|
|
optional("org.glassfish.tyrus:tyrus-container-servlet:${tyrusVersion}")
|
|
|
|
optional("org.eclipse.jetty:jetty-webapp:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") {
|
|
|
|
exclude group: "javax.servlet", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
optional("org.eclipse.jetty.websocket:websocket-client:${jettyVersion}")
|
|
|
|
optional("org.eclipse.jetty:jetty-client:${jettyVersion}")
|
|
|
|
optional("io.undertow:undertow-core:${undertowVersion}")
|
|
|
|
optional("io.undertow:undertow-servlet:${undertowVersion}") {
|
|
|
|
exclude group: "org.jboss.spec.javax.servlet", module: "jboss-servlet-api_3.1_spec"
|
|
|
|
exclude group: "org.jboss.spec.javax.annotation", module: "jboss-annotations-api_1.2_spec"
|
|
|
|
}
|
|
|
|
optional("io.undertow:undertow-websockets-jsr:${undertowVersion}") {
|
|
|
|
exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec"
|
|
|
|
}
|
|
|
|
optional("org.jboss.xnio:xnio-api:${xnioVersion}")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
|
|
testCompile("org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}")
|
|
|
|
testCompile("io.projectreactor:reactor-core")
|
|
|
|
testCompile("io.projectreactor.ipc:reactor-netty")
|
|
|
|
testCompile("io.netty:netty-all:${nettyVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testRuntime("org.jboss.xnio:xnio-nio:${xnioVersion}")
|
|
|
|
testRuntime("org.jboss.logging:jboss-logging:3.3.0.Final")
|
|
|
|
}
|
|
|
|
|
|
|
|
if (JavaVersion.current().java9Compatible) {
|
|
|
|
// Reactor2TcpClient's use of Netty requires access to sun.nio.ch.SelectorImpl
|
|
|
|
test.jvmArgs(["--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED"])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-test") {
|
|
|
|
description = "Spring TestContext Framework"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
optional(project(":spring-beans"))
|
|
|
|
optional(project(":spring-context"))
|
|
|
|
optional(project(":spring-jdbc"))
|
|
|
|
optional(project(":spring-tx"))
|
|
|
|
optional(project(":spring-orm"))
|
|
|
|
optional(project(":spring-web"))
|
|
|
|
optional(project(":spring-webmvc"))
|
|
|
|
optional(project(":spring-webflux"))
|
|
|
|
optional(project(":spring-websocket"))
|
|
|
|
optional("junit:junit:${junitVersion}")
|
|
|
|
optional("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}")
|
|
|
|
optional("org.testng:testng:${testngVersion}")
|
|
|
|
optional("javax.inject:javax.inject:1")
|
|
|
|
optional("javax.servlet:javax.servlet-api:${servletVersion}")
|
|
|
|
optional("javax.servlet.jsp:javax.servlet.jsp-api:${jspVersion}")
|
|
|
|
optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1")
|
|
|
|
optional("org.apache.taglibs:taglibs-standard-jstlel:1.2.1") {
|
|
|
|
exclude group: "org.apache.taglibs", module: "taglibs-standard-spec"
|
|
|
|
}
|
|
|
|
optional("javax.el:javax.el-api:${elApiVersion}")
|
|
|
|
optional("javax.websocket:javax.websocket-api:${websocketVersion}")
|
|
|
|
optional("javax.activation:activation:${activationApiVersion}")
|
|
|
|
optional("javax.xml.bind:jaxb-api:${jaxbVersion}")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
optional("org.codehaus.groovy:groovy-all:${groovyVersion}")
|
|
|
|
optional("org.hamcrest:hamcrest-core:${hamcrestVersion}")
|
|
|
|
optional("org.xmlunit:xmlunit-matchers:${xmlunitVersion}")
|
|
|
|
optional("net.sourceforge.htmlunit:htmlunit:2.25")
|
|
|
|
optional("org.seleniumhq.selenium:htmlunit-driver:2.25")
|
|
|
|
optional("org.seleniumhq.selenium:selenium-java:3.2.0") {
|
|
|
|
exclude group: "io.netty", module: "netty"
|
|
|
|
}
|
|
|
|
optional("org.skyscreamer:jsonassert:1.4.0")
|
|
|
|
optional("com.jayway.jsonpath:json-path:2.2.0")
|
|
|
|
optional("org.reactivestreams:reactive-streams")
|
|
|
|
optional("io.projectreactor:reactor-core")
|
|
|
|
optional("io.projectreactor.addons:reactor-test")
|
|
|
|
testCompile(project(":spring-context-support"))
|
|
|
|
testCompile(project(":spring-oxm"))
|
|
|
|
testCompile("javax.mail:javax.mail-api:${javamailVersion}")
|
|
|
|
testCompile("javax.ejb:javax.ejb-api:${ejbApiVersion}")
|
|
|
|
testCompile("javax.interceptor:javax.interceptor-api:${interceptorApiVersion}")
|
|
|
|
testCompile("org.hibernate:hibernate-core:${hibernate5Version}")
|
|
|
|
testCompile("org.hibernate:hibernate-validator:${hibval5Version}")
|
|
|
|
// Enable use of the JUnitPlatform Runner
|
|
|
|
testCompile("org.junit.platform:junit-platform-runner:${junitPlatformVersion}")
|
|
|
|
testCompile("com.thoughtworks.xstream:xstream:${xstreamVersion}")
|
|
|
|
testCompile("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}")
|
|
|
|
testCompile("com.rometools:rome:${romeVersion}")
|
|
|
|
testCompile("org.apache.tiles:tiles-api:${tiles3Version}")
|
|
|
|
testCompile("org.apache.tiles:tiles-core:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("org.apache.httpcomponents:httpclient:${httpclientVersion}")
|
|
|
|
testCompile("javax.cache:cache-api:${cacheApiVersion}")
|
|
|
|
testCompile('de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1')
|
|
|
|
testCompile('io.projectreactor.ipc:reactor-netty')
|
|
|
|
testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}")
|
|
|
|
testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}") // Java Util Logging for JUnit 5
|
|
|
|
testRuntime("org.ehcache:ehcache:${ehcache3Version}")
|
|
|
|
testRuntime("org.terracotta:management-model:2.0.0")
|
|
|
|
testRuntime("javax.el:javax.el-api:${elApiVersion}")
|
|
|
|
testRuntime("org.glassfish:javax.el:3.0.1-b08")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}")
|
|
|
|
testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
task testNG(type: Test) {
|
|
|
|
description = 'Runs TestNG tests.'
|
|
|
|
useTestNG()
|
|
|
|
scanForTestClasses = false
|
|
|
|
include(["**/testng/**/*Tests.class", "**/testng/**/*Test.class"])
|
|
|
|
// Show STD_OUT & STD_ERR of the test JVM(s) on the console:
|
|
|
|
// testLogging.showStandardStreams = true
|
|
|
|
// forkEvery 1
|
|
|
|
reports.junitXml.destination = file("$buildDir/test-results")
|
|
|
|
}
|
|
|
|
|
|
|
|
test {
|
|
|
|
description = 'Runs JUnit tests.'
|
|
|
|
dependsOn testNG
|
|
|
|
useJUnit()
|
|
|
|
scanForTestClasses = false
|
|
|
|
include(['**/*Tests.class', '**/*Test.class', '**/SpringJUnitJupiterTestSuite.class'])
|
|
|
|
exclude(['**/testng/**/*.*'])
|
|
|
|
// Java Util Logging for JUnit 5.
|
|
|
|
// systemProperty('java.util.logging.manager', 'org.apache.logging.log4j.jul.LogManager')
|
|
|
|
reports.junitXml.destination = file("$buildDir/test-results")
|
|
|
|
}
|
|
|
|
|
|
|
|
task aggregateTestReports(type: TestReport) {
|
|
|
|
description = 'Aggregates JUnit and TestNG test reports.'
|
|
|
|
destinationDir = test.reports.html.destination
|
|
|
|
reportOn test, testNG
|
|
|
|
}
|
|
|
|
|
|
|
|
check.dependsOn aggregateTestReports
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-aspects") {
|
|
|
|
description = "Spring Aspects"
|
|
|
|
apply from: "aspects.gradle"
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
aspects(project(":spring-orm"))
|
|
|
|
ajc("org.aspectj:aspectjtools:${aspectjVersion}")
|
|
|
|
rt("org.aspectj:aspectjrt:${aspectjVersion}")
|
|
|
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
provided("org.eclipse.persistence:javax.persistence:${jpaVersion}")
|
|
|
|
optional(project(":spring-aop")) // for @Async support
|
|
|
|
optional(project(":spring-beans")) // for @Configurable support
|
|
|
|
optional(project(":spring-context")) // for @Enable* support
|
|
|
|
optional(project(":spring-context-support")) // for JavaMail and JSR-107 support
|
|
|
|
optional(project(":spring-orm")) // for JPA exception translation support
|
|
|
|
optional(project(":spring-tx")) // for JPA, @Transactional support
|
|
|
|
optional("javax.transaction:javax.transaction-api:${jtaVersion}") // for @javax.transaction.Transactional support
|
|
|
|
optional("javax.cache:cache-api:${cacheApiVersion}")
|
|
|
|
testCompile(project(":spring-core")) // for CodeStyleAspect
|
|
|
|
testCompile(project(":spring-test"))
|
|
|
|
testCompile("javax.mail:javax.mail-api:${javamailVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
eclipse.project {
|
|
|
|
natures += "org.eclipse.ajdt.ui.ajnature"
|
Latest dependency updates: EhCache 3.0 RC1, HtmlUnit 2.20, Apache HttpClient 4.5.2, Jackson 2.7.3, JasperReports 6.2.1, Jetty 9.3.8, JRuby 1.7.24, JsonAssert 1.3, JsonPath 2.2, POI 3.14, Selenium 2.52, SLF4J 1.7.19, Animal Sniffer 1.15, Undertow 1.3.19, H2 1.4.191
9 years ago
|
|
|
buildCommands = [new org.gradle.plugins.ide.eclipse.model.BuildCommand("org.eclipse.ajdt.core.ajbuilder")]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-framework-bom") {
|
|
|
|
description = "Spring Framework (Bill of Materials)"
|
|
|
|
|
|
|
|
dependencyManagement {
|
|
|
|
generatedPomCustomization {
|
|
|
|
enabled = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations.archives.artifacts.clear()
|
|
|
|
artifacts {
|
|
|
|
// work around GRADLE-2406 by attaching text artifact
|
|
|
|
archives(file("spring-framework-bom.txt"))
|
|
|
|
}
|
|
|
|
|
|
|
|
install {
|
|
|
|
repositories.mavenInstaller {
|
|
|
|
pom.whenConfigured {
|
|
|
|
packaging = "pom"
|
|
|
|
withXml {
|
|
|
|
asNode().children().last() + {
|
|
|
|
delegate.dependencyManagement {
|
|
|
|
delegate.dependencies {
|
|
|
|
parent.subprojects.sort { "$it.name" }.each { p ->
|
|
|
|
if (p.hasProperty("merge") && p.merge.into == null && p != project) {
|
|
|
|
delegate.dependency {
|
|
|
|
delegate.groupId(p.group)
|
|
|
|
delegate.artifactId(p.name)
|
|
|
|
delegate.version(p.version)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
sonarqube {
|
|
|
|
properties {
|
|
|
|
property "sonar.projectName", "Spring Framework"
|
|
|
|
property "sonar.profile", "Spring Framework"
|
|
|
|
property "sonar.jacoco.reportPath", "${buildDir.name}/jacoco.exec"
|
|
|
|
property "sonar.links.homepage", linkHomepage
|
|
|
|
property "sonar.links.ci", linkCi
|
|
|
|
property "sonar.links.issue", linkIssue
|
|
|
|
property "sonar.links.scm", linkScmUrl
|
|
|
|
property "sonar.links.scm_dev", linkScmDevConnection
|
|
|
|
property "sonar.java.coveragePlugin", "jacoco"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configure(rootProject) {
|
|
|
|
description = "Spring Framework"
|
|
|
|
|
|
|
|
apply plugin: "org.asciidoctor.convert"
|
|
|
|
apply plugin: "docbook-reference"
|
|
|
|
apply plugin: "groovy"
|
|
|
|
apply plugin: "io.spring.dependency-management"
|
|
|
|
|
|
|
|
// apply plugin: "detect-split-packages"
|
|
|
|
apply from: "${gradleScriptDir}/jdiff.gradle"
|
|
|
|
|
|
|
|
dependencyManagement {
|
|
|
|
imports {
|
|
|
|
mavenBom "io.projectreactor:reactor-bom:${reactorVersion}"
|
|
|
|
}
|
|
|
|
resolutionStrategy {
|
|
|
|
cacheChangingModulesFor 0, 'seconds'
|
|
|
|
}
|
|
|
|
applyMavenExclusions = false
|
|
|
|
}
|
|
|
|
|
|
|
|
asciidoctor {
|
|
|
|
sourceDir project.file('src/asciidoc')
|
|
|
|
separateOutputDirs = false
|
|
|
|
backends = ['docbook']
|
|
|
|
options doctype: 'book', eruby: 'erubis'
|
|
|
|
attributes 'spring-version': project.version, 'revnumber': project.version, 'docinfo': ""
|
|
|
|
}
|
|
|
|
|
|
|
|
reference {
|
|
|
|
sourceDir = asciidoctor.outputDir
|
|
|
|
pdfFilename = "spring-framework-reference.pdf"
|
|
|
|
epubFilename = "spring-framework-reference.epub"
|
|
|
|
expandPlaceholders = ""
|
|
|
|
}
|
|
|
|
|
|
|
|
afterEvaluate {
|
|
|
|
tasks.findAll { it.name.startsWith("reference") }.each{ it.dependsOn.add("asciidoctor") }
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: DetectSplitPackagesPlugin fails in line 154 due to method not found on java.io.File.
|
|
|
|
// TODO: Possibly related to user rights or OS differences; passes on local Windows machine.
|
|
|
|
// detectSplitPackages {
|
|
|
|
// projectsToScan -= project(":spring-instrument-tomcat")
|
|
|
|
// }
|
|
|
|
|
|
|
|
// don't publish the default jar for the root project
|
|
|
|
configurations.archives.artifacts.clear()
|
|
|
|
|
|
|
|
dependencies { // for integration tests
|
|
|
|
testCompile(project(":spring-aop"))
|
|
|
|
testCompile(project(":spring-beans"))
|
|
|
|
testCompile(project(":spring-context"))
|
|
|
|
testCompile(project(":spring-core"))
|
|
|
|
testCompile(project(":spring-expression"))
|
|
|
|
testCompile(project(":spring-jdbc"))
|
|
|
|
testCompile(project(":spring-orm"))
|
|
|
|
testCompile(project(":spring-test"))
|
|
|
|
testCompile(project(":spring-tx"))
|
|
|
|
testCompile(project(":spring-web"))
|
|
|
|
testCompile("javax.servlet:javax.servlet-api:${servletVersion}")
|
|
|
|
testCompile("javax.inject:javax.inject:1")
|
|
|
|
testCompile("javax.resource:javax.resource-api:${jcaVersion}")
|
|
|
|
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
testCompile("org.hibernate:hibernate-core:${hibernate5Version}")
|
|
|
|
testCompile("org.hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
task api(type: Javadoc) {
|
|
|
|
group = "Documentation"
|
|
|
|
description = "Generates aggregated Javadoc API documentation."
|
|
|
|
title = "${rootProject.description} ${version} API"
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
|
|
|
|
dependsOn {
|
|
|
|
subprojects.collect {
|
|
|
|
it.tasks.getByName("jar")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
|
|
|
|
options.author = true
|
|
|
|
options.header = rootProject.description
|
|
|
|
options.overview = "src/api/overview.html"
|
|
|
|
options.stylesheetFile = file("src/api/stylesheet.css")
|
|
|
|
options.splitIndex = true
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
options.links(project.ext.javadocLinks)
|
|
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
|
|
|
|
source subprojects.collect { project ->
|
|
|
|
project.sourceSets.main.allJava
|
|
|
|
}
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
|
|
|
|
maxMemory = "1024m"
|
Eliminate all Javadoc warnings
- Support external Javadoc links using Gradle's javadoc.options.links
- Fix all other Javadoc warnings, such as typos, references to
non-existent (or no longer existent) types and members, etc,
including changes related to the Quartz 2.0 upgrade (SPR-8275) and
adding the HTTP PATCH method (SPR-7985).
- Suppress all output for project-level `javadoc` tasks in order to
hide false-negative warnings about cross-module @see and @link
references (e.g. spring-core having a @see reference to spring-web).
Use the `--info` (-i) flag to gradle at any time to see project-level
javadoc warnings without running the entire `api` task. e.g.
`gradle :spring-core:javadoc -i`
- Favor root project level `api` task for detection of legitimate
Javadoc warnings. There are now zero Javadoc warnings across the
entirety of spring-framework. Goal: keep it that way.
- Remove all @link and @see references to types and members that exist
only in Servlet <= 2.5 and Hibernate <= 4.0, favoring 3.0+ and 4.0+
respectively. This is necessary because only one version of each of
these dependencies can be present on the global `api` javadoc task's
classpath. To that end, the `api` task classpath has now been
customized to ensure that the Servlet 3 API and Hibernate Core 4 jars
have precedence.
- SPR-8896 replaced our dependency on aspectjrt with a dependency on
aspectjweaver, which is fine from a POM point of view, but causes
a spurious warning to be emitted from the ant iajc task that it
"cannot find aspectjrt on the classpath" - even though aspectjweaver
is perfectly sufficient. In the name of keeping the console quiet, a
new `rt` configuration has been added, and aspectjrt added as a
dependency to it. In turn, configurations.rt.asPath is appended to
the iajc classpath during both compileJava and compileTestJava for
spring-aspects.
Issue: SPR-10078, SPR-8275, SPR-7985, SPR-8896
12 years ago
|
|
|
destinationDir = new File(buildDir, "api")
|
|
|
|
|
|
|
|
doFirst {
|
|
|
|
classpath = files(
|
|
|
|
// Ensure the javadoc process can resolve types compiled from .aj sources
|
|
|
|
project(":spring-aspects").sourceSets.main.output
|
|
|
|
)
|
|
|
|
classpath += files(subprojects.collect { it.sourceSets.main.compileClasspath })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task docsZip(type: Zip, dependsOn: 'reference') {
|
|
|
|
group = "Distribution"
|
|
|
|
baseName = "spring-framework"
|
|
|
|
classifier = "docs"
|
|
|
|
description = "Builds -${classifier} archive containing api and reference " +
|
|
|
|
"for deployment at http://static.springframework.org/spring-framework/docs."
|
|
|
|
|
|
|
|
from("src/dist") {
|
|
|
|
include "changelog.txt"
|
|
|
|
}
|
|
|
|
|
|
|
|
from (api) {
|
|
|
|
into "javadoc-api"
|
|
|
|
}
|
|
|
|
|
|
|
|
from (reference) {
|
|
|
|
into "spring-framework-reference"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task schemaZip(type: Zip) {
|
|
|
|
group = "Distribution"
|
|
|
|
baseName = "spring-framework"
|
|
|
|
classifier = "schema"
|
|
|
|
description = "Builds -${classifier} archive containing all " +
|
|
|
|
"XSDs for deployment at http://springframework.org/schema."
|
|
|
|
duplicatesStrategy 'exclude'
|
|
|
|
moduleProjects.each { subproject ->
|
|
|
|
def Properties schemas = new Properties();
|
|
|
|
|
|
|
|
subproject.sourceSets.main.resources.find {
|
|
|
|
it.path.endsWith("META-INF/spring.schemas")
|
|
|
|
}?.withInputStream { schemas.load(it) }
|
|
|
|
|
|
|
|
for (def key : schemas.keySet()) {
|
|
|
|
def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1')
|
|
|
|
assert shortName != key
|
|
|
|
File xsdFile = subproject.sourceSets.main.resources.find {
|
|
|
|
it.path.endsWith(schemas.get(key))
|
|
|
|
}
|
|
|
|
assert xsdFile != null
|
|
|
|
into (shortName) {
|
|
|
|
from xsdFile.path
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
|
|
|
|
group = "Distribution"
|
|
|
|
baseName = "spring-framework"
|
|
|
|
classifier = "dist"
|
|
|
|
description = "Builds -${classifier} archive, containing all jars and docs, " +
|
|
|
|
"suitable for community download page."
|
|
|
|
|
|
|
|
ext.baseDir = "${baseName}-${project.version}";
|
|
|
|
|
|
|
|
from("src/dist") {
|
|
|
|
include "readme.txt"
|
|
|
|
include "license.txt"
|
|
|
|
include "notice.txt"
|
|
|
|
into "${baseDir}"
|
|
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
|
|
}
|
|
|
|
|
|
|
|
from(zipTree(docsZip.archivePath)) {
|
|
|
|
into "${baseDir}/docs"
|
|
|
|
}
|
|
|
|
|
|
|
|
from(zipTree(schemaZip.archivePath)) {
|
|
|
|
into "${baseDir}/schema"
|
|
|
|
}
|
|
|
|
|
|
|
|
moduleProjects.each { subproject ->
|
|
|
|
into ("${baseDir}/libs") {
|
|
|
|
from subproject.jar
|
|
|
|
if (subproject.tasks.findByPath("sourcesJar")) {
|
|
|
|
from subproject.sourcesJar
|
|
|
|
}
|
|
|
|
if (subproject.tasks.findByPath("javadocJar")) {
|
|
|
|
from subproject.javadocJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Create a distribution that contains all dependencies (required and optional).
|
|
|
|
// Not published by default; only for use when building from source.
|
|
|
|
task depsZip(type: Zip, dependsOn: distZip) { zipTask ->
|
|
|
|
group = "Distribution"
|
|
|
|
baseName = "spring-framework"
|
|
|
|
classifier = "dist-with-deps"
|
|
|
|
description = "Builds -${classifier} archive, containing everything " +
|
|
|
|
"in the -${distZip.classifier} archive plus all runtime dependencies."
|
|
|
|
|
|
|
|
from zipTree(distZip.archivePath)
|
|
|
|
|
|
|
|
gradle.taskGraph.whenReady { taskGraph ->
|
|
|
|
if (taskGraph.hasTask(":${zipTask.name}")) {
|
|
|
|
def projectNames = rootProject.subprojects*.name
|
|
|
|
def artifacts = new HashSet()
|
|
|
|
subprojects.each { subproject ->
|
|
|
|
(subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts +
|
|
|
|
subproject.configurations.optional.resolvedConfiguration.resolvedArtifacts).each { artifact ->
|
|
|
|
def dependency = artifact.moduleVersion.id
|
|
|
|
if (!projectNames.contains(dependency.name)) {
|
|
|
|
artifacts << artifact.file
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
zipTask.from(artifacts) {
|
|
|
|
into "${distZip.baseDir}/deps"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
artifacts {
|
|
|
|
archives docsZip
|
|
|
|
archives schemaZip
|
|
|
|
archives distZip
|
|
|
|
}
|
|
|
|
|
|
|
|
task wrapper(type: Wrapper) {
|
|
|
|
description = "Generates gradlew[.bat] scripts"
|
|
|
|
gradleVersion = '3.4'
|
|
|
|
|
|
|
|
doLast() {
|
|
|
|
def gradleOpts = "-XX:MaxMetaspaceSize=1024m -Xmx1024m"
|
|
|
|
def gradleBatOpts = "$gradleOpts -XX:MaxHeapSize=256m"
|
|
|
|
File wrapperFile = file("gradlew")
|
|
|
|
wrapperFile.text = wrapperFile.text.replace("DEFAULT_JVM_OPTS=",
|
|
|
|
"GRADLE_OPTS=\"$gradleOpts \$GRADLE_OPTS\"\nDEFAULT_JVM_OPTS=")
|
|
|
|
File wrapperBatFile = file("gradlew.bat")
|
|
|
|
wrapperBatFile.text = wrapperBatFile.text.replace("set DEFAULT_JVM_OPTS=",
|
|
|
|
"set GRADLE_OPTS=$gradleBatOpts %GRADLE_OPTS%\nset DEFAULT_JVM_OPTS=")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
configure([project(':spring-build-src'), project(':spring-framework-bom')]) {
|
|
|
|
sonarqube {
|
|
|
|
skipProject = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configure(project(':spring-core')) {
|
|
|
|
sonarqube {
|
|
|
|
properties {
|
|
|
|
property "sonar.exclusions",
|
|
|
|
"src/main/java/org/springframework/cglib/**/*,src/main/java/org/springframework/asm/**/*"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright 2002-2016 the original author or authors.
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Support publication of artifacts versioned by topic branch.
|
|
|
|
* CI builds supply `-P BRANCH_NAME=<TOPIC>` to gradle at build time.
|
|
|
|
* If <TOPIC> starts with 'SPR-', change version
|
|
|
|
* from BUILD-SNAPSHOT => <TOPIC>-SNAPSHOT
|
|
|
|
* e.g. 3.2.1.BUILD-SNAPSHOT => 3.2.1.SPR-1234-SNAPSHOT
|
|
|
|
*/
|
|
|
|
def qualifyVersionIfNecessary(version) {
|
|
|
|
if (rootProject.hasProperty("BRANCH_NAME")) {
|
|
|
|
def qualifier = rootProject.getProperty("BRANCH_NAME")
|
|
|
|
if (qualifier.startsWith("SPR-")) {
|
|
|
|
return version.replace('BUILD', qualifier)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return version
|
|
|
|
}
|