Replace singe quote-marks with double quote-marks when possible for a more consistent style.
869 lines
29 KiB
Groovy
869 lines
29 KiB
Groovy
import org.gradle.plugins.ide.eclipse.model.ProjectDependency
|
|
|
|
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", "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.15") { dep ->
|
|
optional dep
|
|
exclude group: "javax.mail", module: "mail"
|
|
exclude group: "javax.jms", module: "jms"
|
|
exclude group: "com.sun.jdmk", module: "jmxtools"
|
|
exclude group: "com.sun.jmx", module: "jmxri"
|
|
}
|
|
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.15") {
|
|
exclude group: "javax.mail", module: "mail"
|
|
exclude group: "javax.jms", module: "jms"
|
|
exclude group: "com.sun.jdmk", module: "jmxtools"
|
|
exclude group: "com.sun.jmx", module: "jmxri"
|
|
}
|
|
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=")
|
|
}
|
|
}
|
|
}
|