Upgrade to the latest stable release of log4j. The previous 'jms' and 'jmx' exclusions are not longer required since these have now been marked as optional dependencies in the upstream POM.
857 lines
28 KiB
Groovy
857 lines
28 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url "http://repo.springsource.org/plugins-release" }
|
|
}
|
|
dependencies {
|
|
classpath("org.springframework.build.gradle:docbook-reference-plugin:0.2.2")
|
|
}
|
|
}
|
|
|
|
configure(allprojects) {
|
|
ext.aspectjVersion = "1.6.12"
|
|
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: "java"
|
|
apply plugin: "eclipse"
|
|
apply plugin: "idea"
|
|
apply from: "${gradleScriptDir}/ide.gradle"
|
|
|
|
group = "org.springframework"
|
|
|
|
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("org.hamcrest:hamcrest-all:1.3")
|
|
testCompile("org.easymock:easymock:${easymockVersion}")
|
|
}
|
|
}
|
|
|
|
configure(subprojects - project(":spring-test")) {
|
|
dependencies {
|
|
testCompile("junit:junit:${junitVersion}") {
|
|
// We already have hamcrest-all as a global testCompile dependency.
|
|
exclude group: "org.hamcrest", module: "hamcrest-core"
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(subprojects) { subproject ->
|
|
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 {
|
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
|
|
options.author = true
|
|
options.header = project.name
|
|
//options.overview = "${projectDir}/src/main/java/overview.html"
|
|
}
|
|
|
|
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")
|
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}", optional)
|
|
compile("net.sf.jopt-simple:jopt-simple:3.0") { dep ->
|
|
optional dep
|
|
exclude group: "org.apache.ant", module: "ant"
|
|
}
|
|
compile("log4j:log4j:1.2.17", optional)
|
|
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))
|
|
compile("javax.el:el-api:1.0", provided)
|
|
compile("javax.inject:javax.inject:1", provided)
|
|
}
|
|
}
|
|
|
|
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")
|
|
compile("com.jamonapi:jamon:2.4", optional)
|
|
compile("commons-pool:commons-pool:1.5.3", optional)
|
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}", optional)
|
|
}
|
|
}
|
|
|
|
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 {
|
|
compile("org.apache.tomcat:catalina:6.0.16", provided)
|
|
}
|
|
}
|
|
|
|
project("spring-context") {
|
|
description = "Spring Context"
|
|
dependencies {
|
|
compile(project(":spring-instrument"), optional)
|
|
compile(project(":spring-aop"))
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-expression"))
|
|
compile(project(":spring-core"))
|
|
compile(files(project(":spring-core").cglibRepackJar))
|
|
compile("backport-util-concurrent:backport-util-concurrent:3.0", optional)
|
|
compile("javax.ejb:ejb-api:3.0", optional)
|
|
compile("javax.inject:javax.inject:1", optional)
|
|
compile("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1", optional)
|
|
compile("javax.persistence:persistence-api:1.0", optional)
|
|
compile("javax.validation:validation-api:1.0.0.GA", optional)
|
|
compile("org.beanshell:bsh:2.0b4", optional)
|
|
compile("org.codehaus.groovy:groovy-all:1.8.8", optional)
|
|
compile("org.jruby:jruby:1.6.5.1", optional)
|
|
compile("joda-time:joda-time:2.1", optional)
|
|
compile("org.slf4j:slf4j-api:${slf4jVersion}", optional)
|
|
compile("org.hibernate:hibernate-validator:4.3.0.Final") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "slf4j-api"
|
|
}
|
|
compile("org.aspectj:aspectjweaver:${aspectjVersion}", optional)
|
|
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 {
|
|
compile(project(":spring-context"), optional) // for JCA, @EnableTransactionManagement
|
|
compile(project(":spring-aop"), optional)
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-core"))
|
|
compile("aopalliance:aopalliance:1.0")
|
|
compile("com.ibm.websphere:uow:6.0.2.17", provided)
|
|
compile("javax.resource:connector-api:1.5", optional)
|
|
compile("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1", optional)
|
|
testCompile("org.easymock:easymockclassextension:${easymockVersion}")
|
|
}
|
|
}
|
|
|
|
project("spring-oxm") {
|
|
description = "Spring Object/XML Marshalling"
|
|
apply from: "oxm.gradle"
|
|
dependencies {
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-core"))
|
|
compile(project(":spring-context"), optional) // for Jaxb2Marshaller
|
|
compile("commons-lang:commons-lang:2.5")
|
|
compile("com.thoughtworks.xstream:xstream:1.3.1", optional)
|
|
compile("com.sun.xml.bind:jaxb-impl:2.1.7", optional)
|
|
compile("org.jibx:jibx-run:1.2.3", optional)
|
|
compile("org.apache.xmlbeans:xmlbeans:2.4.0", optional)
|
|
compile("org.codehaus.castor:castor-xml:1.3.2", optional)
|
|
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"))
|
|
compile(project(":spring-oxm"), optional)
|
|
compile("aopalliance:aopalliance:1.0")
|
|
compile("org.codehaus.jackson:jackson-mapper-asl:1.4.2", optional)
|
|
}
|
|
}
|
|
|
|
project("spring-jdbc") {
|
|
description = "Spring JDBC"
|
|
dependencies {
|
|
compile(project(":spring-core"))
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-context"), optional) // for JndiDataSourceLookup
|
|
compile(project(":spring-tx"))
|
|
compile("c3p0:c3p0:0.9.1.2", optional)
|
|
compile("hsqldb:hsqldb:${hsqldbVersion}", optional)
|
|
compile("com.h2database:h2:1.0.71", optional)
|
|
compile("org.apache.derby:derby:10.5.3.0_1", optional)
|
|
compile("org.apache.derby:derbyclient:10.5.3.0_1", optional)
|
|
compile("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1", optional)
|
|
}
|
|
}
|
|
|
|
project("spring-context-support") {
|
|
description = "Spring Context Support"
|
|
dependencies {
|
|
compile(project(":spring-core"))
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-context"))
|
|
compile(project(":spring-jdbc"), optional) // for Quartz support
|
|
compile(project(":spring-tx"), optional) // for Quartz support
|
|
compile("javax.mail:mail:1.4", optional)
|
|
compile("javax.cache:cache-api:0.5", optional)
|
|
compile("net.sf.ehcache:ehcache-core:2.0.0", optional)
|
|
compile("opensymphony:quartz:1.6.2", optional)
|
|
compile("org.codehaus.fabric3.api:commonj:1.1.0", optional)
|
|
compile("velocity:velocity:1.5", optional)
|
|
compile("org.freemarker:freemarker:2.3.15", optional)
|
|
compile("com.lowagie:itext:2.1.7", optional)
|
|
compile("jasperreports:jasperreports:2.0.5") { dep ->
|
|
optional dep
|
|
transitive = false
|
|
}
|
|
testCompile("org.apache.poi:poi:3.0.2-FINAL") {
|
|
exclude group: "log4j", module: "log4j"
|
|
}
|
|
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"))
|
|
compile(project(":spring-oxm"), optional) // for MarshallingHttpMessageConverter
|
|
compile("aopalliance:aopalliance:1.0")
|
|
compile("com.caucho:hessian:3.2.1", optional)
|
|
compile("rome:rome:1.0", optional)
|
|
compile("javax.el:el-api:1.0", optional)
|
|
compile("javax.faces:jsf-api:1.2_08", optional)
|
|
compile("javax.portlet:portlet-api:2.0", provided)
|
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) // servlet-api 3.0
|
|
compile("javax.servlet.jsp:jsp-api:2.1", provided)
|
|
compile("javax.xml:jaxrpc-api:1.1")
|
|
compile("javax.xml.soap:saaj-api:1.3", provided)
|
|
compile("commons-fileupload:commons-fileupload:1.2", optional)
|
|
runtime("commons-io:commons-io:1.3", optional)
|
|
compile("commons-httpclient:commons-httpclient:3.1", optional)
|
|
compile("org.apache.httpcomponents:httpclient:4.2", optional)
|
|
compile("org.codehaus.jackson:jackson-mapper-asl:1.4.2", optional)
|
|
compile("com.fasterxml.jackson.core:jackson-databind:2.0.1", optional)
|
|
compile("taglibs:standard:1.1.2", optional)
|
|
compile("org.eclipse.jetty:jetty-servlet:8.1.5.v20120716") { dep ->
|
|
optional dep
|
|
exclude group: "org.eclipse.jetty.orbit", module: "javax.servlet"
|
|
}
|
|
compile("org.eclipse.jetty:jetty-server:8.1.5.v20120716") { dep ->
|
|
optional dep
|
|
exclude group: "org.eclipse.jetty.orbit", module: "javax.servlet"
|
|
}
|
|
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")
|
|
compile("org.hibernate:hibernate-core:3.3.2.GA", optional)
|
|
compile("org.hibernate:hibernate-annotations:3.4.0.GA", optional)
|
|
compile("org.hibernate:hibernate-entitymanager:3.4.0.GA", optional)
|
|
compile("org.apache.openjpa:openjpa:1.1.0", optional)
|
|
compile("org.eclipse.persistence:org.eclipse.persistence.core:1.0.1", optional)
|
|
compile("org.eclipse.persistence:org.eclipse.persistence.jpa:1.0.1", optional)
|
|
compile("toplink.essentials:toplink-essentials:2.0-41b", optional)
|
|
compile("javax.jdo:jdo-api:3.0", optional)
|
|
compile("org.apache.ibatis:ibatis-sqlmap:2.3.4.726", optional)
|
|
testCompile("javax.servlet:servlet-api:2.5")
|
|
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(project(":spring-web").sourceSets.test.output)
|
|
compile(project(":spring-core"))
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-aop"), optional)
|
|
compile(project(":spring-context"), optional)
|
|
compile(project(":spring-tx"))
|
|
compile(project(":spring-jdbc"))
|
|
compile(project(":spring-web")) { dep ->
|
|
optional dep
|
|
exclude group: "javax.persistence", module: "persistence-api"
|
|
}
|
|
}
|
|
}
|
|
|
|
project("spring-orm-hibernate4") {
|
|
description = "Spring Object/Relational Mapping - Hibernate 4 support"
|
|
ext.mergeIntoProject = project(":spring-orm")
|
|
apply from: "${gradleScriptDir}/merge-artifacts.gradle"
|
|
dependencies {
|
|
compile(project(":spring-orm").sourceSets.main.output)
|
|
compile(project(":spring-tx"))
|
|
compile(project(":spring-jdbc"))
|
|
compile("org.hibernate:hibernate-core:4.1.0.Final", optional)
|
|
compile("org.hibernate:hibernate-entitymanager:4.1.0.Final", optional)
|
|
compile(project(":spring-web")) { dep ->
|
|
optional dep
|
|
exclude group: "javax.persistence", module: "persistence-api"
|
|
}
|
|
compile("javax.servlet:servlet-api:2.5", optional)
|
|
}
|
|
}
|
|
|
|
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"))
|
|
compile(project(":spring-context-support"), optional) // for Velocity support
|
|
compile(project(":spring-oxm"), optional) // for MarshallingView
|
|
compile("org.apache.tiles:tiles-api:2.1.2", optional)
|
|
compile("org.apache.tiles:tiles-core:2.1.2") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("org.apache.tiles:tiles-jsp:2.1.2") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("org.apache.tiles:tiles-servlet:2.1.2") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("velocity-tools:velocity-tools-view:1.4", optional)
|
|
compile("net.sourceforge.jexcelapi:jxl:2.6.3") { dep ->
|
|
optional dep
|
|
exclude group: "log4j", module: "log4j"
|
|
}
|
|
compile("org.apache.poi:poi:3.0.2-FINAL") { dep ->
|
|
optional dep
|
|
exclude group: "log4j", module: "log4j"
|
|
}
|
|
compile("javax.servlet:jstl:1.1.2", provided)
|
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) // servlet-api 3.0
|
|
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(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"
|
|
ext.mergeIntoProject = project(":spring-webmvc")
|
|
apply from: "${gradleScriptDir}/merge-artifacts.gradle"
|
|
dependencies {
|
|
compile(project(":spring-context"))
|
|
compile(project(":spring-webmvc").sourceSets.main.output)
|
|
compile("javax.el:el-api:1.0", provided)
|
|
compile("javax.servlet:jstl:1.1.2", provided)
|
|
compile("javax.servlet.jsp:jsp-api:2.1", provided)
|
|
compile("org.apache.tiles:tiles-request-api:1.0.1", optional)
|
|
compile("org.apache.tiles:tiles-api:3.0.1", optional)
|
|
compile("org.apache.tiles:tiles-core:3.0.1") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("org.apache.tiles:tiles-servlet:3.0.1") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("org.apache.tiles:tiles-jsp:3.0.1") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("org.apache.tiles:tiles-el:3.0.1") { dep ->
|
|
optional dep
|
|
exclude group: "org.slf4j", module: "jcl-over-slf4j"
|
|
}
|
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided) // servlet-api 3.0
|
|
compile(project(":spring-web").sourceSets*.output) // mock request & response
|
|
}
|
|
}
|
|
|
|
project("spring-webmvc-portlet") {
|
|
description = "Spring Web Portlet"
|
|
dependencies {
|
|
compile("javax.servlet:servlet-api:2.5", provided)
|
|
compile(project(":spring-core"))
|
|
compile(project(":spring-beans"))
|
|
compile(project(":spring-context"))
|
|
compile(project(":spring-web"))
|
|
compile(project(":spring-webmvc"))
|
|
}
|
|
|
|
// 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"))
|
|
compile(project(":spring-beans"), optional)
|
|
compile(project(":spring-context"), optional)
|
|
compile(project(":spring-jdbc"), optional)
|
|
compile(project(":spring-tx"), optional)
|
|
compile(project(":spring-orm"), optional)
|
|
compile(project(":spring-web"), optional)
|
|
compile(project(":spring-webmvc"), optional)
|
|
compile(project(":spring-webmvc-portlet"), optional)
|
|
compile("junit:junit:${junitVersion}") { dep ->
|
|
optional dep
|
|
// We already have hamcrest-all as a global testCompile dependency.
|
|
exclude group: "org.hamcrest", module: "hamcrest-core"
|
|
}
|
|
compile("org.testng:testng:6.5.2") { dep ->
|
|
optional dep
|
|
exclude group: "junit", module: "junit"
|
|
// We already have hamcrest-all as a global testCompile dependency.
|
|
exclude group: "org.hamcrest", module: "hamcrest-core"
|
|
}
|
|
compile("javax.servlet:servlet-api:2.5", optional)
|
|
compile("javax.servlet.jsp:jsp-api:2.1", optional)
|
|
compile("javax.portlet:portlet-api:2.0", optional)
|
|
compile("javax.activation:activation:1.0", provided)
|
|
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
|
|
}
|
|
}
|
|
|
|
project("spring-test-mvc") {
|
|
description = "Spring Test MVC Framework"
|
|
ext.mergeIntoProject = project(":spring-test")
|
|
apply from: "${gradleScriptDir}/merge-artifacts.gradle"
|
|
apply from: "ide.gradle"
|
|
dependencies {
|
|
compile(project(":spring-context"))
|
|
compile(project(":spring-webmvc"))
|
|
compile(project(":spring-test").sourceSets.main.output)
|
|
compile("org.apache.tomcat:tomcat-servlet-api:7.0.32", provided)
|
|
compile("org.hamcrest:hamcrest-core:1.3", optional)
|
|
compile("com.jayway.jsonpath:json-path:0.8.1", optional)
|
|
compile("xmlunit:xmlunit:1.2", optional)
|
|
testCompile("org.slf4j:jcl-over-slf4j:${slf4jVersion}")
|
|
testCompile("org.slf4j:slf4j-log4j12:${slf4jVersion}") {
|
|
exclude group: "log4j", module: "log4j"
|
|
}
|
|
testCompile("log4j:log4j:1.2.17")
|
|
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(project(":spring-oxm"))
|
|
testCompile("com.thoughtworks.xstream:xstream:1.3.1")
|
|
testCompile("cglib:cglib-nodep:2.2")
|
|
testCompile("rome:rome:1.0")
|
|
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")
|
|
compile("javax.servlet:servlet-api:2.5", provided)
|
|
testCompile(project(":spring-test"))
|
|
}
|
|
}
|
|
|
|
project("spring-aspects") {
|
|
description = "Spring Aspects"
|
|
apply from: "aspects.gradle"
|
|
dependencies {
|
|
compile(project(":spring-beans"), optional) // for @Configurable support
|
|
compile(project(":spring-aop"), optional) // for @Async support
|
|
compile(project(":spring-context"), optional) // for @Enable* support
|
|
compile(project(":spring-context-support"), optional) // for JavaMail support
|
|
compile(project(":spring-tx"), optional) // for JPA, @Transactional support
|
|
compile(project(":spring-orm"), optional) // for JPA exception translation support
|
|
aspects(project(":spring-orm"))
|
|
ajc("org.aspectj:aspectjtools:${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 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("org.hibernate:hibernate-core:4.1.0.Final")
|
|
testCompile("javax.servlet:servlet-api:2.5")
|
|
}
|
|
|
|
task api(type: Javadoc) {
|
|
group = "Documentation"
|
|
description = "Generates aggregated Javadoc API documentation."
|
|
title = "${rootProject.description} ${version} API"
|
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
|
|
options.author = true
|
|
options.header = rootProject.description
|
|
options.overview = "src/api/overview.html"
|
|
options.splitIndex = true
|
|
options.links(
|
|
"http://docs.jboss.org/jbossas/javadoc/4.0.5/connector"
|
|
)
|
|
source subprojects.collect { project ->
|
|
project.sourceSets.main.allJava
|
|
}
|
|
destinationDir = new File(buildDir, "api")
|
|
classpath = files(subprojects.collect { project ->
|
|
project.sourceSets.main.compileClasspath
|
|
})
|
|
maxMemory = "1024m"
|
|
}
|
|
|
|
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 "api"
|
|
}
|
|
|
|
from (reference) {
|
|
into "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.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=")
|
|
}
|
|
}
|
|
}
|