|
|
|
buildscript {
|
|
|
|
repositories {
|
|
|
|
maven { url "http://repo.springsource.org/plugins-release" }
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
classpath("org.springframework.build.gradle:propdeps-plugin:0.0.1")
|
|
|
|
classpath("org.springframework.build.gradle:docbook-reference-plugin:0.2.4")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configure(allprojects) {
|
|
|
|
ext.aspectjVersion = "1.7.1"
|
|
|
|
ext.easymockVersion = "2.5.2"
|
|
|
|
ext.hsqldbVersion = "1.8.0.10"
|
|
|
|
ext.junitVersion = "4.11"
|
|
|
|
ext.slf4jVersion = "1.6.1"
|
|
|
|
ext.gradleScriptDir = "${rootProject.projectDir}/gradle"
|
|
|
|
|
|
|
|
apply plugin: "propdeps"
|
|
|
|
apply plugin: "java"
|
|
|
|
apply plugin: "propdeps-eclipse"
|
|
|
|
apply plugin: "propdeps-idea"
|
|
|
|
apply from: "${gradleScriptDir}/ide.gradle"
|
|
|
|
|
|
|
|
group = "org.springframework"
|
Generate Maven Central-compatible poms
Understanding Gradle pom generation
-------------------------------------------
All spring-* subprojects have had Gradle's 'maven' plugin applied to
them. This means that one can run `gradle install`, and POMs will be
generated according to the metadata in the build.gradle file.
The 'customizePom' routine added by this commit hooks into this
generation process in order to add elements to the pom required for
entry into Maven Central via oss.sonatype.org[1].
This pom generation happens on-the-fly during `gradle install` and
the generated poms exist only in your local .m2 cache. Therefore,
you will not see the poms on the source tree after this command.
Handling optional and provided dependencies
-------------------------------------------
Note particularly the handling of 'optional' and 'provided'
dependencies. Gradle does not have a first class notion for these
concepts, nor are they significant to the actual Gradle build process,
but they are important when publishing POMs for consumption via Maven
Central and other Maven-compatible repositories.
<optional>true</optional> indicates that a dependency need not be
downloaded when resolving artifacts. e.g. spring-context has an
compile-time dependency on cglib, but when a Spring user resolves
spring-context from Maven Central, cglib should *not* automatically
be downloaded at the same time. This is because the core functionality
within spring-context can operate just fine without cglib on the
classpath; it is only if the user chooses explicitly to use certain
functionality, e.g. @Configuration classes, which do require cglib,
that the user must declare an explicit dependency in their own build
script on cglib.
Marking these kinds of dependencies as 'optional' provides a kind of
built in 'documentation' about which version of cglib the user should
declare if in fact he wishes to.
Spring has a great many compile-time dependencies, but in fact very
few mandatory runtime dependencies. Therefore, *most* of Spring's
dependencies are optional.
<scope>provided</scope> is similar to 'optional', in that dependencies
so marked should not be automatically downloaded during dependency
resolution, but indicates rather that they are expected to have been
provided by the user application runtime environment. For example, the
Servlet API is in fact a required runtime dependency for spring-webmvc,
but it is expected that it will be available via the user's servlet
container classpath. Again, it serves here as a kind of 'documentation'
that spring-webmvc does in fact expect the servlet api to be available,
and furthermore which (minimum) version.
This commit adds two closures named 'optional' and 'provided' as well as
two arrays (optionalDeps, providedDeps) for tracking which dependencies
are optional or provided. An optional dependency is declared as follows:
compile("group:artifact:version", optional)
Here, the optional closure accepts the dependency argument implicitly,
and appends it to the 'optionalDeps' array. Then, during pom generation
(again, the customizePom routine), these arrays are interrogated, and
pom <dependency> elements are updated with <optional>true</optional> or
<scope>provided</scope> as appropriate. Thanks to the Spock framework
for inspiration on this approach[2].
[1] http://bit.ly/wauOqP (Sonatype's central sync requirements)
[2] https://github.com/spockframework/spock/blob/groovy-1.7/gradle/publishMaven.gradle#L63
13 years ago
|
|
|
|
|
|
|
sourceCompatibility=1.5
|
|
|
|
targetCompatibility=1.5
|
|
|
|
|
|
|
|
[compileJava, compileTestJava]*.options*.compilerArgs = ["-Xlint:none"]
|
|
|
|
|
|
|
|
sourceSets.test.resources.srcDirs = ["src/test/resources", "src/test/java"]
|
|
|
|
|
|
|
|
test.systemProperty("java.awt.headless", "true")
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven { url "http://repo.springsource.org/libs-release" }
|
|
|
|
maven { url "http://repo.springsource.org/ebr-maven-external" }
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
testCompile("junit:junit:${junitVersion}")
|
|
|
|
testCompile("org.hamcrest:hamcrest-all:1.3")
|
|
|
|
testCompile("org.easymock:easymock:${easymockVersion}")
|
|
|
|
}
|
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/6/docs/api",
|
|
|
|
"http://docs.oracle.com/javaee/6/api",
|
|
|
|
"http://portals.apache.org/pluto/portlet-2.0-apidocs/",
|
|
|
|
"http://commons.apache.org/lang/api-2.5",
|
|
|
|
"http://commons.apache.org/codec/apidocs",
|
|
|
|
"http://docs.jboss.org/jbossas/javadoc/4.0.5/connector",
|
|
|
|
"http://docs.jboss.org/jbossas/javadoc/7.1.2.Final",
|
|
|
|
"http://aopalliance.sourceforge.net/doc",
|
|
|
|
"http://glassfish.java.net/nonav/docs/v3/api",
|
|
|
|
"http://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs", // commonj
|
|
|
|
"http://quartz-scheduler.org/api/2.1.5",
|
|
|
|
"http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/",
|
|
|
|
"http://hc.apache.org/httpclient-3.x/apidocs",
|
|
|
|
"http://fasterxml.github.com/jackson-core/javadoc/2.0.0",
|
|
|
|
"http://jackson.codehaus.org/1.4.2/javadoc",
|
|
|
|
"http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs",
|
|
|
|
"http://ibatis.apache.org/docs/java/dev",
|
|
|
|
"http://tiles.apache.org/framework/apidocs",
|
|
|
|
"http://commons.apache.org/dbcp/api-1.2.2",
|
|
|
|
] 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
|
|
|
}
|
|
|
|
|
Generate Maven Central-compatible poms
Understanding Gradle pom generation
-------------------------------------------
All spring-* subprojects have had Gradle's 'maven' plugin applied to
them. This means that one can run `gradle install`, and POMs will be
generated according to the metadata in the build.gradle file.
The 'customizePom' routine added by this commit hooks into this
generation process in order to add elements to the pom required for
entry into Maven Central via oss.sonatype.org[1].
This pom generation happens on-the-fly during `gradle install` and
the generated poms exist only in your local .m2 cache. Therefore,
you will not see the poms on the source tree after this command.
Handling optional and provided dependencies
-------------------------------------------
Note particularly the handling of 'optional' and 'provided'
dependencies. Gradle does not have a first class notion for these
concepts, nor are they significant to the actual Gradle build process,
but they are important when publishing POMs for consumption via Maven
Central and other Maven-compatible repositories.
<optional>true</optional> indicates that a dependency need not be
downloaded when resolving artifacts. e.g. spring-context has an
compile-time dependency on cglib, but when a Spring user resolves
spring-context from Maven Central, cglib should *not* automatically
be downloaded at the same time. This is because the core functionality
within spring-context can operate just fine without cglib on the
classpath; it is only if the user chooses explicitly to use certain
functionality, e.g. @Configuration classes, which do require cglib,
that the user must declare an explicit dependency in their own build
script on cglib.
Marking these kinds of dependencies as 'optional' provides a kind of
built in 'documentation' about which version of cglib the user should
declare if in fact he wishes to.
Spring has a great many compile-time dependencies, but in fact very
few mandatory runtime dependencies. Therefore, *most* of Spring's
dependencies are optional.
<scope>provided</scope> is similar to 'optional', in that dependencies
so marked should not be automatically downloaded during dependency
resolution, but indicates rather that they are expected to have been
provided by the user application runtime environment. For example, the
Servlet API is in fact a required runtime dependency for spring-webmvc,
but it is expected that it will be available via the user's servlet
container classpath. Again, it serves here as a kind of 'documentation'
that spring-webmvc does in fact expect the servlet api to be available,
and furthermore which (minimum) version.
This commit adds two closures named 'optional' and 'provided' as well as
two arrays (optionalDeps, providedDeps) for tracking which dependencies
are optional or provided. An optional dependency is declared as follows:
compile("group:artifact:version", optional)
Here, the optional closure accepts the dependency argument implicitly,
and appends it to the 'optionalDeps' array. Then, during pom generation
(again, the customizePom routine), these arrays are interrogated, and
pom <dependency> elements are updated with <optional>true</optional> or
<scope>provided</scope> as appropriate. Thanks to the Spock framework
for inspiration on this approach[2].
[1] http://bit.ly/wauOqP (Sonatype's central sync requirements)
[2] https://github.com/spockframework/spock/blob/groovy-1.7/gradle/publishMaven.gradle#L63
13 years ago
|
|
|
configure(subprojects) { subproject ->
|
|
|
|
apply plugin: "merge"
|
|
|
|
apply from: "${gradleScriptDir}/publish-maven.gradle"
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
// suppress warnings due to cross-module @see and @link references;
|
|
|
|
// note that global 'api' task does display all warnings.
|
|
|
|
logging.captureStandardError LogLevel.INFO
|
|
|
|
logging.captureStandardOutput LogLevel.INFO // suppress "## warnings" message
|
|
|
|
}
|
|
|
|
|
|
|
|
task sourcesJar(type: Jar, dependsOn:classes) {
|
|
|
|
classifier = "sources"
|
|
|
|
from sourceSets.main.allJava.srcDirs
|
|
|
|
include "**/*.java", "**/*.aj"
|
|
|
|
}
|
|
|
|
|
|
|
|
task javadocJar(type: Jar) {
|
|
|
|
classifier = "javadoc"
|
|
|
|
from javadoc
|
|
|
|
}
|
|
|
|
|
|
|
|
artifacts {
|
|
|
|
archives sourcesJar
|
|
|
|
archives javadocJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
project("spring-core") {
|
|
|
|
description = "Spring Core"
|
|
|
|
|
|
|
|
// As of Spring 3.2 spring-core repackages both asm 4.0 and cglib 3.0 and inlines both
|
|
|
|
// into the spring-core jar. cglib 3.0 itself depends on asm 4.0, and is therefore
|
|
|
|
// further transformed by the JarJar task to depend on org.springframework.asm; this
|
|
|
|
// avoids including two different copies of asm unnecessarily. If however future cglib
|
|
|
|
// versions drift from the version of asm used by Spring internally, this duplication
|
|
|
|
// will become necessary.
|
|
|
|
def asmVersion = "4.0"
|
|
|
|
def cglibVersion = "3.0"
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
jarjar
|
|
|
|
asm
|
|
|
|
cglib
|
|
|
|
}
|
|
|
|
|
|
|
|
task asmRepackJar(type: Jar) { repackJar ->
|
|
|
|
repackJar.baseName = "spring-asm-repack"
|
|
|
|
repackJar.version = asmVersion
|
|
|
|
|
|
|
|
doLast() {
|
|
|
|
project.ant {
|
|
|
|
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask",
|
|
|
|
classpath: configurations.jarjar.asPath
|
|
|
|
jarjar(destfile: repackJar.archivePath) {
|
|
|
|
configurations.asm.each { originalJar ->
|
|
|
|
zipfileset(src: originalJar)
|
|
|
|
}
|
|
|
|
rule(pattern: "org.objectweb.asm.**", result: "org.springframework.asm.@1")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
asm("org.ow2.asm:asm:${asmVersion}@jar")
|
|
|
|
asm("org.ow2.asm:asm-commons:${asmVersion}@jar")
|
|
|
|
cglib("cglib:cglib:${cglibVersion}@jar")
|
|
|
|
jarjar("com.googlecode.jarjar:jarjar:1.3")
|
|
|
|
|
|
|
|
compile(files(asmRepackJar))
|
|
|
|
compile("commons-logging:commons-logging:1.1.1")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
optional("net.sf.jopt-simple:jopt-simple:3.0")
|
|
|
|
optional("log4j:log4j:1.2.17")
|
|
|
|
testCompile("xmlunit:xmlunit:1.2")
|
|
|
|
testCompile("org.codehaus.woodstox:wstx-asl:3.2.7")
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
// inline all repackaged asm and cglib classes directly into the spring-core jar
|
|
|
|
dependsOn asmRepackJar
|
|
|
|
from(zipTree(asmRepackJar.archivePath)) {
|
|
|
|
include "org/springframework/asm/**"
|
|
|
|
}
|
|
|
|
dependsOn cglibRepackJar
|
|
|
|
from(zipTree(cglibRepackJar.archivePath)) {
|
|
|
|
include "org/springframework/cglib/**"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-beans") {
|
|
|
|
description = "Spring Beans"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
|
|
provided("javax.el:el-api:1.0")
|
|
|
|
provided("javax.inject:javax.inject:1")
|
|
|
|
testCompile("log4j:log4j:1.2.17")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-aop") {
|
|
|
|
description = "Spring AOP"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile("aopalliance:aopalliance:1.0")
|
|
|
|
optional("com.jamonapi:jamon:2.4")
|
|
|
|
optional("commons-pool:commons-pool:1.5.3")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-expression") {
|
|
|
|
description = "Spring Expression Language (SpEL)"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-instrument") {
|
|
|
|
description = "Spring Instrument"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
}
|
|
|
|
jar {
|
|
|
|
manifest.attributes["Premain-Class"] =
|
|
|
|
"org.springframework.instrument.InstrumentationSavingAgent"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-instrument-tomcat") {
|
|
|
|
description = "Spring Instrument Tomcat"
|
|
|
|
dependencies {
|
|
|
|
provided("org.apache.tomcat:catalina:6.0.16")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-context") {
|
|
|
|
description = "Spring Context"
|
|
|
|
dependencies {
|
|
|
|
optional(project(":spring-instrument"))
|
|
|
|
compile(project(":spring-aop"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-expression"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
|
|
optional("backport-util-concurrent:backport-util-concurrent:3.0")
|
|
|
|
optional("javax.ejb:ejb-api:3.0")
|
|
|
|
optional("javax.inject:javax.inject:1")
|
|
|
|
optional("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1")
|
|
|
|
optional("javax.persistence:persistence-api:1.0")
|
|
|
|
optional("javax.validation:validation-api:1.0.0.GA")
|
|
|
|
optional("org.beanshell:bsh:2.0b4")
|
|
|
|
optional("org.codehaus.groovy:groovy-all:1.8.8")
|
|
|
|
optional("org.jruby:jruby:1.6.5.1")
|
|
|
|
optional("joda-time:joda-time:2.1")
|
|
|
|
optional("org.slf4j:slf4j-api:${slf4jVersion}")
|
|
|
|
optional("org.hibernate:hibernate-validator:4.3.0.Final")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
|
|
|
|
testCompile("commons-dbcp:commons-dbcp:1.2.2")
|
|
|
|
testCompile("javax.inject:com.springsource.org.atinject.tck:1.0.0")
|
|
|
|
}
|
|
|
|
|
|
|
|
test {
|
|
|
|
jvmArgs = ["-disableassertions:org.aspectj.weaver.UnresolvedType"] // SPR-7989
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-tx") {
|
|
|
|
description = "Spring Transaction"
|
|
|
|
dependencies {
|
|
|
|
optional(project(":spring-context")) // for JCA, @EnableTransactionManagement
|
|
|
|
optional(project(":spring-aop"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile("aopalliance:aopalliance:1.0")
|
|
|
|
provided("com.ibm.websphere:uow:6.0.2.17")
|
|
|
|
optional("javax.resource:connector-api:1.5")
|
|
|
|
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
|
|
|
|
optional("javax.ejb:ejb-api:3.0")
|
|
|
|
testCompile "org.easymock:easymockclassextension:${easymockVersion}"
|
|
|
|
testCompile("javax.persistence:persistence-api:1.0")
|
|
|
|
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-oxm") {
|
|
|
|
description = "Spring Object/XML Marshalling"
|
|
|
|
apply from: "oxm.gradle"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
optional(project(":spring-context")) // for Jaxb2Marshaller
|
|
|
|
compile("commons-lang:commons-lang:2.5")
|
|
|
|
optional("com.thoughtworks.xstream:xstream:1.3.1")
|
|
|
|
optional("com.sun.xml.bind:jaxb-impl:2.1.7")
|
|
|
|
optional("org.jibx:jibx-run:1.2.3")
|
|
|
|
optional("org.apache.xmlbeans:xmlbeans:2.4.0")
|
|
|
|
optional("org.codehaus.castor:castor-xml:1.3.2")
|
|
|
|
testCompile("org.codehaus.jettison:jettison:1.0.1")
|
|
|
|
testCompile("xmlunit:xmlunit:1.2")
|
|
|
|
testCompile("xmlpull:xmlpull:1.1.3.4a")
|
|
|
|
testCompile(files(genCastor.classesDir).builtBy(genCastor))
|
|
|
|
testCompile(files(genJaxb.classesDir).builtBy(genJaxb))
|
|
|
|
testCompile(files(genXmlbeans.classesDir).builtBy(genXmlbeans))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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-tx"))
|
|
|
|
optional(project(":spring-oxm"))
|
|
|
|
compile("aopalliance:aopalliance:1.0")
|
|
|
|
optional("org.codehaus.jackson:jackson-mapper-asl:1.4.2")
|
|
|
|
provided("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1")
|
|
|
|
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
|
|
|
|
optional("javax.resource:connector-api:1.5")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-jdbc") {
|
|
|
|
description = "Spring JDBC"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
optional(project(":spring-context")) // for JndiDataSourceLookup
|
|
|
|
compile(project(":spring-tx"))
|
|
|
|
optional("c3p0:c3p0:0.9.1.2")
|
|
|
|
optional("hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
optional("com.h2database:h2:1.0.71")
|
|
|
|
optional("org.apache.derby:derby:10.5.3.0_1")
|
|
|
|
optional("org.apache.derby:derbyclient:10.5.3.0_1")
|
|
|
|
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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.mail:mail:1.4")
|
|
|
|
optional("javax.cache:cache-api:0.5")
|
|
|
|
optional("net.sf.ehcache:ehcache-core:2.0.0")
|
|
|
|
optional("opensymphony:quartz:1.6.2")
|
|
|
|
optional("org.codehaus.fabric3.api:commonj:1.1.0")
|
|
|
|
optional("velocity:velocity:1.5")
|
|
|
|
optional("org.freemarker:freemarker:2.3.15")
|
|
|
|
optional("com.lowagie:itext:2.1.7")
|
|
|
|
optional("jasperreports:jasperreports:2.0.5")
|
|
|
|
optional("org.slf4j:slf4j-api:${slf4jVersion}")
|
|
|
|
provided("javax.activation:activation:1.1")
|
|
|
|
testCompile("org.apache.poi:poi:3.0.2-FINAL")
|
|
|
|
testCompile("commons-beanutils:commons-beanutils:1.8.0") // for Velocity/JasperReports
|
|
|
|
testCompile("commons-digester:commons-digester:1.8.1") // for Velocity/JasperReports
|
|
|
|
testCompile("hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
}
|
|
|
|
|
|
|
|
// pick up **/*.types files in src/main
|
|
|
|
sourceSets.main.resources.srcDirs += "src/main/java"
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-web") {
|
|
|
|
description = "Spring Web"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans")) // for MultiPartFilter
|
|
|
|
compile(project(":spring-aop")) // for JaxWsPortProxyFactoryBean
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
optional(project(":spring-oxm")) // for MarshallingHttpMessageConverter
|
|
|
|
compile("aopalliance:aopalliance:1.0")
|
|
|
|
optional("com.caucho:hessian:3.2.1")
|
|
|
|
optional("rome:rome:1.0")
|
|
|
|
optional("javax.el:el-api:1.0")
|
|
|
|
optional("javax.faces:jsf-api:1.2_08")
|
|
|
|
provided("javax.portlet:portlet-api:2.0")
|
|
|
|
provided("javax.servlet:javax.servlet-api:3.0.1")
|
|
|
|
provided("javax.servlet.jsp:jsp-api:2.1")
|
|
|
|
optional("javax.xml:jaxrpc-api:1.1")
|
|
|
|
provided("javax.xml.soap:saaj-api:1.3")
|
|
|
|
provided("javax.activation:activation:1.1")
|
|
|
|
optional("commons-fileupload:commons-fileupload:1.2")
|
|
|
|
optional("commons-io:commons-io:1.3")
|
|
|
|
optional("commons-httpclient:commons-httpclient:3.1")
|
|
|
|
optional("org.apache.httpcomponents:httpclient:4.2")
|
|
|
|
optional("org.codehaus.jackson:jackson-mapper-asl:1.4.2")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:2.0.1")
|
|
|
|
optional("taglibs:standard:1.1.2")
|
|
|
|
optional("org.eclipse.jetty:jetty-servlet:8.1.5.v20120716") {
|
|
|
|
exclude group: "org.eclipse.jetty.orbit", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
optional("org.eclipse.jetty:jetty-server:8.1.5.v20120716") {
|
|
|
|
exclude group: "org.eclipse.jetty.orbit", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
optional("log4j:log4j:1.2.17")
|
|
|
|
testCompile(project(":spring-context-support")) // for JafMediaTypeFactory
|
|
|
|
testCompile("xmlunit:xmlunit:1.2")
|
|
|
|
}
|
|
|
|
|
|
|
|
// pick up ContextLoader.properties in src/main
|
|
|
|
sourceSets.main.resources.srcDirs += "src/main/java"
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-orm") {
|
|
|
|
description = "Spring Object/Relational Mapping"
|
|
|
|
dependencies {
|
|
|
|
compile("aopalliance:aopalliance:1.0")
|
|
|
|
optional("org.hibernate:hibernate-core:3.3.2.GA")
|
|
|
|
optional("org.hibernate:hibernate-annotations:3.4.0.GA")
|
|
|
|
optional("org.hibernate:hibernate-entitymanager:3.4.0.GA")
|
|
|
|
optional("org.apache.openjpa:openjpa:1.1.0")
|
|
|
|
optional("org.eclipse.persistence:org.eclipse.persistence.core:1.0.1")
|
|
|
|
optional("org.eclipse.persistence:org.eclipse.persistence.jpa:1.0.1")
|
|
|
|
optional("toplink.essentials:toplink-essentials:2.0-41b")
|
|
|
|
optional("javax.jdo:jdo-api:3.0")
|
|
|
|
optional("org.apache.ibatis:ibatis-sqlmap:2.3.4.726")
|
|
|
|
optional("javax.persistence:persistence-api:1.0")
|
|
|
|
provided("javax.servlet:servlet-api:2.5")
|
|
|
|
testCompile("javax.servlet:javax.servlet-api:3.0.1")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("commons-dbcp:commons-dbcp:1.2.2")
|
|
|
|
testCompile("org.eclipse.persistence:org.eclipse.persistence.asm:1.0.1")
|
|
|
|
testCompile("org.eclipse.persistence:org.eclipse.persistence.antlr:1.0.1")
|
|
|
|
testCompile("hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
testCompile(project(":spring-web").sourceSets.test.output)
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
optional(project(":spring-aop"))
|
|
|
|
optional(project(":spring-context"))
|
|
|
|
compile(project(":spring-tx"))
|
|
|
|
compile(project(":spring-jdbc"))
|
|
|
|
optional(project(":spring-web"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-orm-hibernate4") {
|
|
|
|
description = "Spring Object/Relational Mapping - Hibernate 4 support"
|
|
|
|
merge.into = project(":spring-orm")
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-tx"))
|
|
|
|
compile(project(":spring-jdbc"))
|
|
|
|
optional("org.hibernate:hibernate-core:4.1.0.Final")
|
|
|
|
optional("org.hibernate:hibernate-entitymanager:4.1.0.Final")
|
|
|
|
optional(project(":spring-web"))
|
|
|
|
optional("javax.servlet:servlet-api:2.5")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-webmvc") {
|
|
|
|
description = "Spring Web MVC"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-expression"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-web"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
optional(project(":spring-context-support")) // for Velocity support
|
|
|
|
optional(project(":spring-oxm")) // for MarshallingView
|
|
|
|
optional("org.apache.tiles:tiles-api:2.1.2")
|
|
|
|
optional("org.apache.tiles:tiles-core:2.1.2")
|
|
|
|
optional("org.apache.tiles:tiles-jsp:2.1.2")
|
|
|
|
optional("org.apache.tiles:tiles-servlet:2.1.2")
|
|
|
|
optional("velocity-tools:velocity-tools-view:1.4")
|
|
|
|
optional("net.sourceforge.jexcelapi:jxl:2.6.3")
|
|
|
|
optional("org.apache.poi:poi:3.0.2-FINAL")
|
|
|
|
optional("com.lowagie:itext:2.1.7")
|
|
|
|
optional("jasperreports:jasperreports:2.0.5") {
|
|
|
|
exclude group: "xml-apis", module: "xml-apis"
|
|
|
|
}
|
|
|
|
optional("rome:rome:1.0")
|
|
|
|
optional("velocity:velocity:1.5")
|
|
|
|
optional("org.freemarker:freemarker:2.3.15")
|
|
|
|
optional("org.codehaus.jackson:jackson-mapper-asl:1.4.2")
|
|
|
|
optional("com.fasterxml.jackson.core:jackson-databind:2.0.1")
|
|
|
|
provided("javax.servlet:jstl:1.2")
|
|
|
|
provided("javax.servlet:javax.servlet-api:3.0.1")
|
|
|
|
provided("javax.servlet.jsp:jsp-api:2.1")
|
|
|
|
testCompile(project(":spring-aop"))
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("rhino:js:1.7R1")
|
|
|
|
testCompile("xmlunit:xmlunit:1.2")
|
|
|
|
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:8.1.5.v20120716") {
|
|
|
|
exclude group: "org.eclipse.jetty.orbit", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
testCompile("org.eclipse.jetty:jetty-server:8.1.5.v20120716") {
|
|
|
|
exclude group: "org.eclipse.jetty.orbit", module: "javax.servlet"
|
|
|
|
}
|
|
|
|
testCompile("javax.validation:validation-api:1.0.0.GA")
|
|
|
|
testCompile("commons-fileupload:commons-fileupload:1.2")
|
|
|
|
testCompile("commons-io:commons-io:1.3")
|
|
|
|
testCompile("org.hibernate:hibernate-validator:4.3.0.Final")
|
|
|
|
testCompile("org.apache.httpcomponents:httpclient:4.2")
|
|
|
|
testCompile(project(":spring-web").sourceSets.test.output)
|
|
|
|
}
|
|
|
|
|
|
|
|
// pick up DispatcherServlet.properties in src/main
|
|
|
|
sourceSets.main.resources.srcDirs += "src/main/java"
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-webmvc-tiles3") {
|
|
|
|
description = "Spring Framework Tiles3 Integration"
|
|
|
|
merge.into = project(":spring-webmvc")
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
provided("javax.el:el-api:1.0")
|
|
|
|
provided("javax.servlet:jstl:1.2")
|
|
|
|
provided("javax.servlet.jsp:jsp-api:2.1")
|
|
|
|
optional("org.apache.tiles:tiles-request-api:1.0.1")
|
|
|
|
optional("org.apache.tiles:tiles-api:3.0.1")
|
|
|
|
optional("org.apache.tiles:tiles-core:3.0.1") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-servlet:3.0.1") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-jsp:3.0.1") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
optional("org.apache.tiles:tiles-el:3.0.1") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
provided("javax.servlet:javax.servlet-api:3.0.1")
|
|
|
|
compile(project(":spring-web").sourceSets*.output) // mock request & response
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-webmvc-portlet") {
|
|
|
|
description = "Spring Web Portlet"
|
|
|
|
dependencies {
|
|
|
|
provided("javax.servlet:servlet-api:2.5")
|
|
|
|
provided("javax.portlet:portlet-api:2.0")
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
compile(project(":spring-web"))
|
|
|
|
compile(project(":spring-webmvc"))
|
|
|
|
optional("commons-fileupload:commons-fileupload:1.2")
|
|
|
|
}
|
|
|
|
|
|
|
|
// pick up DispatcherPortlet.properties in src/main
|
|
|
|
sourceSets.main.resources.srcDirs += "src/main/java"
|
|
|
|
}
|
|
|
|
|
|
|
|
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-webmvc-portlet"), )
|
|
|
|
optional("junit:junit:${junitVersion}")
|
|
|
|
optional("org.testng:testng:6.5.2")
|
|
|
|
optional("javax.servlet:servlet-api:2.5")
|
|
|
|
optional("javax.servlet.jsp:jsp-api:2.1")
|
|
|
|
optional("javax.portlet:portlet-api:2.0")
|
|
|
|
optional("javax.persistence:persistence-api:1.0")
|
|
|
|
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
testCompile("org.hibernate:hibernate-core:3.3.2.GA")
|
|
|
|
provided("javax.inject:javax.inject:1")
|
|
|
|
provided("javax.activation:activation:1.1")
|
|
|
|
provided("javax.servlet:jstl:1.2")
|
|
|
|
testCompile "org.slf4j:slf4j-jcl:${slf4jVersion}"
|
|
|
|
testCompile("hsqldb:hsqldb:${hsqldbVersion}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-test-mvc") {
|
|
|
|
description = "Spring Test MVC Framework"
|
|
|
|
merge.into = project(":spring-test")
|
|
|
|
dependencies {
|
|
|
|
optional(project(":spring-context"))
|
|
|
|
compile(project(":spring-webmvc"))
|
|
|
|
provided("javax.servlet:javax.servlet-api:3.0.1")
|
|
|
|
optional("org.hamcrest:hamcrest-core:1.3")
|
|
|
|
optional("com.jayway.jsonpath:json-path:0.8.1")
|
|
|
|
optional("xmlunit:xmlunit:1.2")
|
|
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
|
|
testCompile("javax.servlet:jstl:1.2")
|
|
|
|
testCompile("org.hibernate:hibernate-validator:4.3.0.Final")
|
|
|
|
testCompile("org.codehaus.jackson:jackson-mapper-asl:1.4.2")
|
|
|
|
testCompile("com.fasterxml.jackson.core:jackson-databind:2.0.1")
|
|
|
|
testCompile(project(":spring-context-support"))
|
|
|
|
testCompile(project(":spring-oxm"))
|
|
|
|
testCompile("com.thoughtworks.xstream:xstream:1.3.1")
|
|
|
|
testCompile("cglib:cglib-nodep:2.2")
|
|
|
|
testCompile("rome:rome:1.0")
|
|
|
|
testCompile("javax.activation:activation:1.1")
|
|
|
|
testCompile("javax.mail:mail:1.4")
|
|
|
|
testCompile("javax.xml.bind:jaxb-api:2.2.6")
|
|
|
|
testCompile("org.easymock:easymockclassextension:${easymockVersion}")
|
|
|
|
testCompile("org.apache.tiles:tiles-request-api:1.0.1")
|
|
|
|
testCompile("org.apache.tiles:tiles-api:3.0.1")
|
|
|
|
testCompile("org.apache.tiles:tiles-core:3.0.1") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
testCompile("org.apache.tiles:tiles-servlet:3.0.1") {
|
|
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-struts") {
|
|
|
|
description = "Spring Struts"
|
|
|
|
dependencies {
|
|
|
|
compile(project(":spring-core"))
|
|
|
|
compile(project(":spring-beans"))
|
|
|
|
compile(project(":spring-context"))
|
|
|
|
compile(project(":spring-web"))
|
|
|
|
compile(project(":spring-webmvc"))
|
|
|
|
compile("struts:struts:1.2.9")
|
|
|
|
compile("commons-beanutils:commons-beanutils:1.7.0")
|
|
|
|
provided("javax.servlet:servlet-api:2.5")
|
|
|
|
provided("javax.servlet:jstl:1.2")
|
|
|
|
testCompile(project(":spring-test"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
project("spring-aspects") {
|
|
|
|
description = "Spring Aspects"
|
|
|
|
apply from: "aspects.gradle"
|
|
|
|
dependencies {
|
|
|
|
optional(project(":spring-beans")) // for @Configurable support
|
|
|
|
optional(project(":spring-aop")) // for @Async support
|
|
|
|
optional(project(":spring-context")) // for @Enable* support
|
|
|
|
compile(project(":spring-context-support")) // for JavaMail support
|
|
|
|
optional(project(":spring-tx")) // for JPA, @Transactional support
|
|
|
|
optional(project(":spring-orm")) // for JPA exception translation support
|
|
|
|
aspects(project(":spring-orm"))
|
|
|
|
provided("javax.persistence:persistence-api:1.0")
|
|
|
|
testCompile("javax.mail:mail:1.4")
|
|
|
|
ajc("org.aspectj:aspectjtools:${aspectjVersion}")
|
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
|
|
|
rt("org.aspectj:aspectjrt:${aspectjVersion}")
|
|
|
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
testCompile(project(":spring-core")) // for CodeStyleAspect
|
|
|
|
compile(project(":spring-beans")) // for "p" namespace visibility
|
|
|
|
testCompile(project(":spring-test"))
|
|
|
|
}
|
|
|
|
eclipse.project {
|
|
|
|
natures += "org.eclipse.ajdt.ui.ajnature"
|
|
|
|
buildCommands = [new org.gradle.plugins.ide.eclipse.model.
|
|
|
|
BuildCommand("org.eclipse.ajdt.core.ajbuilder")]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configure(rootProject) {
|
|
|
|
description = "Spring Framework"
|
|
|
|
|
|
|
|
apply plugin: "docbook-reference"
|
|
|
|
apply plugin: "groovy"
|
|
|
|
apply from: "${gradleScriptDir}/jdiff.gradle"
|
|
|
|
|
|
|
|
reference {
|
|
|
|
sourceDir = file("src/reference/docbook")
|
|
|
|
pdfFilename = "spring-framework-reference.pdf"
|
|
|
|
}
|
|
|
|
|
|
|
|
// don"t publish the default jar for the root project
|
|
|
|
configurations.archives.artifacts.clear()
|
|
|
|
|
|
|
|
dependencies { // for integration tests
|
|
|
|
testCompile(project(":spring-core"))
|
|
|
|
testCompile(project(":spring-beans"))
|
|
|
|
testCompile(project(":spring-aop"))
|
|
|
|
testCompile(project(":spring-expression"))
|
|
|
|
testCompile(project(":spring-context"))
|
|
|
|
testCompile(project(":spring-tx"))
|
|
|
|
testCompile(project(":spring-jdbc"))
|
|
|
|
testCompile(project(":spring-test"))
|
|
|
|
testCompile(project(":spring-web"))
|
|
|
|
testCompile(project(":spring-webmvc-portlet"))
|
|
|
|
testCompile(project(":spring-orm"))
|
|
|
|
testCompile("org.hibernate:hibernate-core:4.1.0.Final")
|
|
|
|
testCompile("javax.servlet:servlet-api:2.5")
|
|
|
|
testCompile("javax.portlet:portlet-api:2.0")
|
|
|
|
testCompile("javax.inject:javax.inject:1")
|
|
|
|
testCompile("javax.resource:connector-api:1.5")
|
|
|
|
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
|
|
|
|
testCompile("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
|
|
|
|
|
|
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
|
|
|
|
options.author = true
|
|
|
|
options.header = rootProject.description
|
|
|
|
options.overview = "src/api/overview.html"
|
|
|
|
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)
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
classpath = files(
|
|
|
|
// ensure servlet 3.x and Hibernate 4.x have precedence on the Javadoc
|
|
|
|
// classpath over their respective 2.5 and 3.x variants
|
|
|
|
project(":spring-webmvc").sourceSets.main.compileClasspath.files.find { it =~ "servlet-api" },
|
|
|
|
rootProject.sourceSets.test.compileClasspath.files.find { it =~ "hibernate-core" },
|
|
|
|
// 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 })
|
|
|
|
|
|
|
|
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")
|
|
|
|
}
|
|
|
|
|
|
|
|
task docsZip(type: Zip) {
|
|
|
|
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."
|
|
|
|
|
|
|
|
subprojects.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"
|
|
|
|
}
|
|
|
|
|
|
|
|
subprojects.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 an 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 = "1.3"
|
|
|
|
|
|
|
|
doLast() {
|
|
|
|
def gradleOpts = "-XX:MaxPermSize=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=")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|