diff --git a/build.gradle b/build.gradle index 98e64172c2..eae25ecd61 100644 --- a/build.gradle +++ b/build.gradle @@ -259,820 +259,6 @@ configure(subprojects - project(":spring-build-src")) { subproject -> } } -project("spring-build-src") { - description = "Exposes gradle buildSrc for IDE support" - - apply plugin: "groovy" - - dependencies { - compile gradleApi() - compile localGroovy() - } - - configurations.archives.artifacts.clear() -} - -project("spring-jcl") { - description = "Spring Commons Logging Bridge" - - dependencies { - optional("org.apache.logging.log4j:log4j-api:${log4jVersion}") - optional("org.slf4j:slf4j-api:${slf4jVersion}") - } -} - -project("spring-core") { - description = "Spring Core" - - // As of Spring 4.0.3, spring-core includes asm 5.x and repackages cglib 3.2, inlining - // both into the spring-core jar. cglib 3.2 itself depends on asm 5.x and is therefore - // further transformed by the JarJar task to depend on org.springframework.asm; this - // avoids including two different copies of asm unnecessarily. - def cglibVersion = "3.2.5" - def objenesisVersion = "2.6" - - configurations { - jarjar - cglib - objenesis - } - - task cglibRepackJar(type: Jar) { repackJar -> - repackJar.baseName = "spring-cglib-repack" - repackJar.version = cglibVersion - - doLast() { - project.ant { - taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", - classpath: configurations.jarjar.asPath - jarjar(destfile: repackJar.archivePath) { - configurations.cglib.each { originalJar -> - zipfileset(src: originalJar) - } - // Repackage net.sf.cglib => org.springframework.cglib - rule(pattern: "net.sf.cglib.**", result: "org.springframework.cglib.@1") - // As mentioned above, transform cglib"s internal asm dependencies from - // org.objectweb.asm => org.springframework.asm. Doing this counts on the - // the fact that Spring and cglib depend on the same version of asm! - rule(pattern: "org.objectweb.asm.**", result: "org.springframework.asm.@1") - } - } - } - } - - task objenesisRepackJar(type: Jar) { repackJar -> - repackJar.baseName = "spring-objenesis-repack" - repackJar.version = objenesisVersion - - doLast() { - project.ant { - taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", - classpath: configurations.jarjar.asPath - jarjar(destfile: repackJar.archivePath) { - configurations.objenesis.each { originalJar -> - zipfileset(src: originalJar) - } - // Repackage org.objenesis => org.springframework.objenesis - rule(pattern: "org.objenesis.**", result: "org.springframework.objenesis.@1") - } - } - } - } - - dependencies { - cglib("cglib:cglib:${cglibVersion}@jar") - objenesis("org.objenesis:objenesis:${objenesisVersion}@jar") - jarjar("com.googlecode.jarjar:jarjar:1.3") - - compile(files(cglibRepackJar)) - compile(files(objenesisRepackJar)) - compile(project(":spring-jcl")) - optional("net.sf.jopt-simple:jopt-simple:5.0.3") - optional("org.aspectj:aspectjweaver:${aspectjVersion}") - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - optional("io.projectreactor:reactor-core") - optional("io.reactivex:rxjava:${rxjavaVersion}") - optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") - optional("io.reactivex.rxjava2:rxjava:${rxjava2Version}") - optional("io.netty:netty-buffer") - testCompile("io.projectreactor:reactor-test") - testCompile("javax.xml.bind:jaxb-api:${jaxbVersion}") - testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") - testCompile("com.fasterxml.woodstox:woodstox-core:5.0.3") { - exclude group: "stax", module: "stax-api" - } - } - - jar { - // Inline repackaged cglib classes directly into spring-core jar - dependsOn cglibRepackJar - from(zipTree(cglibRepackJar.archivePath)) { - include "org/springframework/cglib/**" - } - - dependsOn objenesisRepackJar - from(zipTree(objenesisRepackJar.archivePath)) { - include "org/springframework/objenesis/**" - } - } -} - -project("spring-aop") { - description = "Spring AOP" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - compile(files(project(":spring-core").cglibRepackJar)) - compile(files(project(":spring-core").objenesisRepackJar)) - optional("org.aspectj:aspectjweaver:${aspectjVersion}") - optional("org.apache.commons:commons-pool2:2.4.2") - optional("com.jamonapi:jamon:2.81") - } -} - -project("spring-expression") { - description = "Spring Expression Language (SpEL)" - - dependencies { - compile(project(":spring-core")) - } -} - -project("spring-instrument") { - description = "Spring Instrument" - - jar { - manifest.attributes["Premain-Class"] = - "org.springframework.instrument.InstrumentationSavingAgent" - manifest.attributes["Agent-Class"] = - "org.springframework.instrument.InstrumentationSavingAgent" - manifest.attributes["Can-Redefine-Classes"] = "true" - manifest.attributes["Can-Retransform-Classes"] = "true" - manifest.attributes["Can-Set-Native-Method-Prefix"] = "false" - } -} - -project("spring-context") { - description = "Spring Context" - - apply plugin: "groovy" - - dependencies { - compile(project(":spring-aop")) - compile(project(":spring-beans")) - compile(project(":spring-expression")) - compile(project(":spring-core")) - compile(files(project(":spring-core").cglibRepackJar)) - optional(project(":spring-instrument")) - optional("javax.inject:javax.inject:1") - optional("javax.annotation:javax.annotation-api:1.3") - optional("javax.xml.ws:jaxws-api:${jaxwsVersion}") - optional("javax.ejb:javax.ejb-api:3.2") - optional("javax.interceptor:javax.interceptor-api:1.2") - optional("javax.enterprise.concurrent:javax.enterprise.concurrent-api:1.0") - optional("javax.money:money-api:1.0.1") - optional("javax.validation:validation-api:1.1.0.Final") - optional("org.hibernate:hibernate-validator:5.4.1.Final") - optional("joda-time:joda-time:2.9.9") - optional("org.aspectj:aspectjweaver:${aspectjVersion}") - optional("org.codehaus.groovy:groovy-all:${groovyVersion}") - optional("org.beanshell:bsh:2.0b5") - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - testCompile("org.apache.commons:commons-pool2:2.4.2") - testCompile("org.slf4j:slf4j-api:${slf4jVersion}") - testCompile("javax.inject:javax.inject-tck:1") - testRuntime("javax.xml.bind:jaxb-api:${jaxbVersion}") - testRuntime("org.glassfish:javax.el:3.0.1-b08") - testRuntime("org.javamoney:moneta:1.1") - } -} - -project("spring-oxm") { - description = "Spring Object/XML Marshalling" - apply from: "oxm.gradle" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - optional("javax.xml.bind:jaxb-api:${jaxbVersion}") - optional("javax.activation:activation:${activationVersion}") - optional("org.codehaus.castor:castor-xml:1.4.1") { - exclude group: 'stax', module: 'stax-api' - exclude group: "org.springframework", module: "spring-context" - exclude group: "commons-logging", module: "commons-logging" - } - optional("com.thoughtworks.xstream:xstream:1.4.10") { - exclude group: 'xpp3', module: 'xpp3_min' - exclude group: 'xmlpull', module: 'xmlpull' - } - optional("org.jibx:jibx-run:1.3.1") - testCompile(project(":spring-context")) - testCompile("org.ogce:xpp3:1.1.6") - testCompile("org.codehaus.jettison:jettison:1.3.8") { - exclude group: 'stax', module: 'stax-api' - } - testCompile(files(genCastor.classesDir).builtBy(genCastor)) - testCompile(files(genJaxb.classesDir).builtBy(genJaxb)) - testRuntime("xerces:xercesImpl:2.11.0") // for Castor - testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") - testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") - } -} - -project("spring-messaging") { - description = "Spring Messaging" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - optional(project(":spring-context")) - optional(project(":spring-oxm")) - optional("io.projectreactor.ipc:reactor-netty") - optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet-api" - } - optional("org.eclipse.jetty.websocket:websocket-client:${jettyVersion}") - optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - optional("javax.xml.bind:jaxb-api:${jaxbVersion}") - testCompile("javax.inject:javax.inject-tck:1") - testCompile("javax.servlet:javax.servlet-api:3.1.0") - testCompile("javax.validation:validation-api:1.1.0.Final") - testCompile("com.thoughtworks.xstream:xstream:1.4.10") - testCompile("org.apache.activemq:activemq-broker:5.8.0") - testCompile("org.apache.activemq:activemq-kahadb-store:5.8.0") { - exclude group: "org.springframework", module: "spring-context" - } - testCompile("org.apache.activemq:activemq-stomp:5.8.0") - testCompile("org.eclipse.jetty:jetty-webapp:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet-api" - } - testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") - testCompile("org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}") - testCompile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - testCompile("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") - testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") - testRuntime("javax.activation:activation:${activationVersion}") - } -} - -project("spring-tx") { - description = "Spring Transaction" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - optional(project(":spring-aop")) - optional(project(":spring-context")) // for JCA, @EnableTransactionManagement - optional("javax.ejb:javax.ejb-api:3.2") - optional("javax.interceptor:javax.interceptor-api:1.2") - optional("javax.resource:javax.resource-api:1.7") - optional("javax.transaction:javax.transaction-api:1.2") - optional("com.ibm.websphere:uow:6.0.2.17") - testCompile("org.aspectj:aspectjweaver:${aspectjVersion}") - testCompile("org.codehaus.groovy:groovy-all:${groovyVersion}") - testCompile("org.eclipse.persistence:javax.persistence:2.1.1") - } -} - -project("spring-jms") { - description = "Spring JMS" - - dependencies { - provided("javax.jms:javax.jms-api:2.0.1") - compile(project(":spring-beans")) - compile(project(":spring-core")) - compile(project(":spring-messaging")) - compile(project(":spring-tx")) - optional(project(":spring-aop")) - optional(project(":spring-context")) - optional(project(":spring-oxm")) - optional("javax.resource:javax.resource-api:1.7") - optional("javax.transaction:javax.transaction-api:1.2") - optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - } -} - -project("spring-jdbc") { - description = "Spring JDBC" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - compile(project(":spring-tx")) - optional(project(":spring-context")) // for JndiDataSourceLookup - optional("javax.transaction:javax.transaction-api:1.2") - optional("org.hsqldb:hsqldb:${hsqldbVersion}") - optional("com.h2database:h2:1.4.196") - optional("org.apache.derby:derby:10.13.1.1") - optional("org.apache.derby:derbyclient:10.13.1.1") - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - } -} - -project("spring-context-indexer") { - description = "Spring Context Indexer" - - dependencies { - testCompile(project(":spring-context")) - testCompile("javax.inject:javax.inject:1") - testCompile("javax.annotation:javax.annotation-api:1.3") - testCompile("org.eclipse.persistence:javax.persistence:2.1.1") - } -} - -project("spring-context-support") { - description = "Spring Context Support" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-context")) - compile(project(":spring-core")) - optional(project(":spring-jdbc")) // for Quartz support - optional(project(":spring-tx")) // for Quartz support - optional("javax.activation:activation:${activationVersion}") - optional("javax.mail:javax.mail-api:${javamailVersion}") - optional("javax.cache:cache-api:1.0.0") - optional("com.github.ben-manes.caffeine:caffeine:2.5.5") - optional("net.sf.ehcache:ehcache:2.10.4") - optional("org.quartz-scheduler:quartz:2.3.0") - optional("org.codehaus.fabric3.api:commonj:1.1.0") - optional("org.freemarker:freemarker:${freemarkerVersion}") - testCompile(project(":spring-context")) - testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") - testCompile("org.slf4j:slf4j-api:${slf4jVersion}") - testCompile("org.hibernate:hibernate-validator:6.0.1.Final") - testRuntime("org.ehcache:jcache:1.0.1") - testRuntime("org.ehcache:ehcache:3.3.1") - testRuntime("org.glassfish:javax.el:3.0.1-b08") - testRuntime("javax.annotation:javax.annotation-api:1.3") - testRuntime("com.sun.mail:javax.mail:${javamailVersion}") - } -} - -project("spring-web") { - description = "Spring Web" - - apply plugin: "groovy" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - optional(project(":spring-aop")) - optional(project(":spring-context")) - optional(project(":spring-oxm")) - optional("javax.servlet:javax.servlet-api:3.1.0") - optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02") - optional("javax.el:javax.el-api:3.0.1-b04") - optional("javax.faces:javax.faces-api:2.2") - optional("javax.validation:validation-api:1.1.0.Final") - optional("org.codehaus.groovy:groovy-all:${groovyVersion}") - optional("com.caucho:hessian:4.0.38") - optional("commons-fileupload:commons-fileupload:1.3.3") - optional("org.synchronoss.cloud:nio-multipart-parser:1.1.0") - optional("io.projectreactor.ipc:reactor-netty") - optional("io.reactivex:rxjava:${rxjavaVersion}") - optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") - optional("io.reactivex.rxjava2:rxjava:${rxjava2Version}") - optional("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") - optional("io.undertow:undertow-core:${undertowVersion}") - optional("com.fasterxml.woodstox:woodstox-core:5.0.3") { // woodstox before aalto - exclude group: "stax", module: "stax-api" - } - optional("com.fasterxml:aalto-xml:1.0.0") - optional("org.apache.httpcomponents:httpclient:${httpclientVersion}") { - exclude group: "commons-logging", module: "commons-logging" - } - optional("org.apache.httpcomponents:httpasyncclient:4.1.3") { - exclude group: "commons-logging", module: "commons-logging" - } - optional("io.netty:netty-all") - optional("com.squareup.okhttp3:okhttp:${okhttp3Version}") - optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}") - optional("com.google.code.gson:gson:2.8.1") - optional("javax.json.bind:javax.json.bind-api:1.0") - optional("com.rometools:rome:1.7.4") - optional("org.eclipse.jetty:jetty-servlet:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet-api" - } - optional("org.eclipse.jetty:jetty-server:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet-api" - } - optional("com.google.protobuf:protobuf-java-util:3.4.0") - optional("com.googlecode.protobuf-java-format:protobuf-java-format:1.4") - optional("javax.xml.bind:jaxb-api:${jaxbVersion}") - optional("javax.xml.ws:jaxws-api:${jaxwsVersion}") - optional("javax.mail:javax.mail-api:${javamailVersion}") - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - testCompile("io.projectreactor:reactor-test") - testCompile("org.apache.taglibs:taglibs-standard-jstlel:1.2.1") { - exclude group: "org.apache.taglibs", module: "taglibs-standard-spec" - } - testCompile("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:${jackson2Version}") - testCompile("com.fasterxml.jackson.datatype:jackson-datatype-joda:${jackson2Version}") - testCompile("com.fasterxml.jackson.module:jackson-module-kotlin:${jackson2Version}") - testCompile("org.apache.tomcat:tomcat-util:${tomcatVersion}") - testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") - testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") - testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") - testCompile("io.reactivex:rxnetty-http:0.5.2") { - exclude group: 'io.reactivex', module: 'rxjava' - } - testCompile("com.squareup.okhttp3:mockwebserver:${okhttp3Version}") - testCompile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - testCompile("org.skyscreamer:jsonassert:1.5.0") - testRuntime("com.sun.mail:javax.mail:${javamailVersion}") - testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") - testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") - testRuntime("javax.json:javax.json-api:1.1") - testRuntime("org.apache.johnzon:johnzon-jsonb:1.1.2") - } -} - -project("spring-orm") { - description = "Spring Object/Relational Mapping" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - compile(project(":spring-jdbc")) - compile(project(":spring-tx")) - optional(project(":spring-aop")) - optional(project(":spring-context")) - optional(project(":spring-web")) - optional("org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.0-RC3") - optional("org.hibernate:hibernate-core:5.2.10.Final") - optional("javax.servlet:javax.servlet-api:3.1.0") - testCompile("org.aspectj:aspectjweaver:${aspectjVersion}") - testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") - testRuntime("javax.xml.bind:jaxb-api:${jaxbVersion}") - } -} - -project("spring-webmvc") { - description = "Spring Web MVC" - - dependencies { - provided("javax.servlet:javax.servlet-api:4.0.0") - compile(project(":spring-aop")) - compile(project(":spring-beans")) - compile(project(":spring-context")) - compile(project(":spring-core")) - compile(files(project(":spring-core").objenesisRepackJar)) - compile(project(":spring-expression")) - compile(project(":spring-web")) - optional(project(":spring-context-support")) // for FreeMarker support - optional(project(":spring-oxm")) - optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02") - optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1") - optional("javax.el:javax.el-api:3.0.1-b04") - optional("javax.xml.bind:jaxb-api:${jaxbVersion}") - optional("org.apache.poi:poi-ooxml:3.16") - optional("com.lowagie:itext:2.1.7") - optional("com.rometools:rome:1.7.4") - optional("org.freemarker:freemarker:${freemarkerVersion}") - optional("org.codehaus.groovy:groovy-all:${groovyVersion}") - optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}") - optional("org.apache.tiles:tiles-api:${tiles3Version}") - optional("org.apache.tiles:tiles-core:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } - optional("org.apache.tiles:tiles-servlet:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } - optional("org.apache.tiles:tiles-jsp:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } - optional("org.apache.tiles:tiles-el:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } - optional("org.apache.tiles:tiles-extras:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - exclude group: "org.springframework", module: "spring-web" - } - optional('org.webjars:webjars-locator:0.32-1') - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - optional("org.reactivestreams:reactive-streams") - testCompile("javax.servlet:javax.servlet-api:4.0.0") - testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet" - } - testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet" - } - testCompile("org.hibernate:hibernate-validator:6.0.1.Final") - testCompile("org.apache.httpcomponents:httpclient:${httpclientVersion}") { - exclude group: "commons-logging", module: "commons-logging" - } - testCompile("commons-fileupload:commons-fileupload:1.3.3") - testCompile("commons-io:commons-io:2.5") - testCompile("joda-time:joda-time:2.9.9") - testCompile("org.mozilla:rhino:1.7.7.1") - 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("io.projectreactor:reactor-core") - testCompile("io.reactivex:rxjava:${rxjavaVersion}") - testCompile("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") - testCompile("io.reactivex.rxjava2:rxjava:${rxjava2Version}") - testCompile("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}") - testRuntime("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}") - testRuntime("org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}") - testRuntime("org.jruby:jruby:9.1.12.0") - testRuntime("org.python:jython-standalone:2.7.1") - testRuntime("org.webjars:underscorejs:1.8.3") - testRuntime("org.glassfish:javax.el:3.0.1-b08") - testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") - testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") - testRuntime("javax.activation:activation:${activationVersion}") - } -} - -project("spring-websocket") { - description = "Spring WebSocket" - - dependencies { - compile(project(":spring-context")) - compile(project(":spring-core")) - compile(project(":spring-web")) - optional(project(":spring-messaging")) - optional(project(":spring-webmvc")) - optional("javax.servlet:javax.servlet-api:3.1.0") - optional("javax.websocket:javax.websocket-api:1.1") - optional("org.apache.tomcat:tomcat-websocket:${tomcatVersion}") { - exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" - exclude group: "org.apache.tomcat", module: "tomcat-servlet-api" - } - optional("org.glassfish.tyrus:tyrus-container-servlet:1.13.1") - optional("org.eclipse.jetty:jetty-webapp:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet" - } - optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet" - } - optional("org.eclipse.jetty.websocket:websocket-client:${jettyVersion}") - optional("org.eclipse.jetty:jetty-client:${jettyVersion}") - optional("io.undertow:undertow-servlet:${undertowVersion}") { - exclude group: "org.jboss.spec.javax.servlet", module: "jboss-servlet-api_3.1_spec" - exclude group: "org.jboss.spec.javax.annotation", module: "jboss-annotations-api_1.2_spec" - } - optional("io.undertow:undertow-websockets-jsr:${undertowVersion}") { - exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec" - } - optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") - testCompile("org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}") - testCompile("io.projectreactor.ipc:reactor-netty") - } -} - -project("spring-webflux") { - description = "Spring WebFlux" - - dependencies { - compile(project(":spring-beans")) - compile(project(":spring-core")) - compile(project(":spring-web")) - compile("io.projectreactor:reactor-core") - optional(project(":spring-context")) - optional(project(":spring-context-support")) // for FreeMarker support - optional("javax.servlet:javax.servlet-api:3.1.0") - optional("javax.websocket:javax.websocket-api:1.1") - optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") - optional("org.freemarker:freemarker:${freemarkerVersion}") - optional("org.apache.httpcomponents:httpclient:${httpclientVersion}") { - exclude group: "commons-logging", module: "commons-logging" - } - optional('org.webjars:webjars-locator:0.32-1') - optional("io.projectreactor.ipc:reactor-netty") - optional("io.reactivex:rxjava:${rxjavaVersion}") - optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") - optional("org.apache.tomcat:tomcat-websocket:${tomcatVersion}") { - exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" - exclude group: "org.apache.tomcat", module: "tomcat-servlet-api" - } - optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") { - exclude group: "javax.servlet", module: "javax.servlet" - } - optional("io.undertow:undertow-websockets-jsr:${undertowVersion}") { - exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec" - } - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - testCompile("javax.xml.bind:jaxb-api:${jaxbVersion}") - testCompile("io.projectreactor:reactor-test") - testCompile("org.hibernate:hibernate-validator:6.0.1.Final") - testCompile("org.apache.tomcat:tomcat-util:${tomcatVersion}") - testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") - testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") - testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") - testCompile "io.reactivex.rxjava2:rxjava:${rxjava2Version}" - testCompile("io.undertow:undertow-core:${undertowVersion}") - testCompile("io.reactivex:rxnetty-http:0.5.2") { - exclude group: 'io.reactivex', module: 'rxjava' - } - testCompile("com.fasterxml:aalto-xml:1.0.0") - testCompile("com.squareup.okhttp3:mockwebserver:${okhttp3Version}") - testCompile("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}") - testRuntime("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}") - testRuntime("org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}") - testRuntime("org.jruby:jruby:9.1.12.0") - testRuntime("org.python:jython-standalone:2.7.1") - testRuntime("org.synchronoss.cloud:nio-multipart-parser:1.1.0") - testRuntime("org.webjars:underscorejs:1.8.3") - testRuntime("org.glassfish:javax.el:3.0.1-b08") - testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") - testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") - testRuntime("javax.activation:activation:${activationVersion}") - } -} - -project("spring-test") { - description = "Spring TestContext Framework" - - dependencies { - compile(project(":spring-core")) - optional(project(":spring-aop")) - optional(project(":spring-beans")) - optional(project(":spring-context")) - optional(project(":spring-jdbc")) - optional(project(":spring-orm")) - optional(project(":spring-tx")) - optional(project(":spring-web")) - optional(project(":spring-webflux")) - optional(project(":spring-webmvc")) - optional(project(":spring-websocket")) - optional("junit:junit:4.12") - optional("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}") - optional("org.testng:testng:6.11") - optional("javax.inject:javax.inject:1") - optional("javax.servlet:javax.servlet-api:4.0.0") - optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02") - optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1") - optional("org.apache.taglibs:taglibs-standard-jstlel:1.2.5") { - exclude group: "org.apache.taglibs", module: "taglibs-standard-spec" - } - optional("javax.el:javax.el-api:3.0.1-b04") - optional("javax.websocket:javax.websocket-api:1.1") - optional("javax.activation:activation:${activationVersion}") - optional("javax.xml.bind:jaxb-api:${jaxbVersion}") - optional("org.aspectj:aspectjweaver:${aspectjVersion}") - optional("org.codehaus.groovy:groovy-all:${groovyVersion}") - optional("org.hamcrest:hamcrest-core:1.3") - optional("net.sourceforge.htmlunit:htmlunit:2.27") { - exclude group: "commons-logging", module: "commons-logging" - } - optional("org.seleniumhq.selenium:htmlunit-driver:2.27") - optional("org.seleniumhq.selenium:selenium-java:3.4.0") { - exclude group: "io.netty", module: "netty" - } - optional("org.xmlunit:xmlunit-matchers:2.3.0") - optional("org.skyscreamer:jsonassert:1.5.0") - optional("com.jayway.jsonpath:json-path:2.4.0") - optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") - optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") - optional("io.projectreactor:reactor-test") - testCompile(project(":spring-context-support")) - testCompile(project(":spring-oxm")) - testCompile("javax.mail:javax.mail-api:${javamailVersion}") - testCompile("javax.ejb:javax.ejb-api:3.2") - testCompile("javax.interceptor:javax.interceptor-api:1.2") - testCompile("javax.cache:cache-api:1.0.0") - testCompile("org.hibernate:hibernate-core:5.2.10.Final") - testCompile("org.hibernate:hibernate-validator:6.0.1.Final") - // Enable use of the JUnitPlatform Runner - testCompile("org.junit.platform:junit-platform-runner:${junitPlatformVersion}") - testCompile("org.junit.jupiter:junit-jupiter-params:${junitJupiterVersion}") - testCompile("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") - testCompile("com.thoughtworks.xstream:xstream:1.4.10") - testCompile("com.rometools:rome:1.7.4") - testCompile("org.apache.tiles:tiles-api:${tiles3Version}") - testCompile("org.apache.tiles:tiles-core:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } - testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}") { - exclude group: "org.slf4j", module: "jcl-over-slf4j" - } - testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") - testCompile("org.apache.httpcomponents:httpclient:${httpclientVersion}") { - exclude group: "commons-logging", module: "commons-logging" - } - testCompile('io.projectreactor.ipc:reactor-netty') - // Pull in the latest JUnit 5 Launcher API and the Vintage engine as well - // so that we can run JUnit 4 tests in IntelliJ IDEA. - testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}") - testRuntime("org.junit.platform:junit-platform-launcher:${junitPlatformVersion}") - testRuntime("org.junit.vintage:junit-vintage-engine:${junitVintageVersion}") - testCompile('de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1') - testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}") // Java Util Logging for JUnit 5 - testRuntime("javax.annotation:javax.annotation-api:1.3") - testRuntime("org.glassfish:javax.el:3.0.1-b08") - testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") - testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") - } - - task testNG(type: Test) { - description = 'Runs TestNG tests.' - useTestNG() - scanForTestClasses = false - include(["**/testng/**/*Tests.class", "**/testng/**/*Test.class"]) - // Show STD_OUT & STD_ERR of the test JVM(s) on the console: - // testLogging.showStandardStreams = true - // forkEvery 1 - reports.junitXml.destination = file("$buildDir/test-results") - } - - test { - description = 'Runs JUnit tests.' - dependsOn testNG - useJUnit() - scanForTestClasses = false - include(['**/*Tests.class', '**/*Test.class', '**/SpringJUnitJupiterTestSuite.class']) - exclude(['**/testng/**/*.*']) - // Java Util Logging for JUnit 5. - // systemProperty('java.util.logging.manager', 'org.apache.logging.log4j.jul.LogManager') - reports.junitXml.destination = file("$buildDir/test-results") - } - - task aggregateTestReports(type: TestReport) { - description = 'Aggregates JUnit and TestNG test reports.' - destinationDir = test.reports.html.destination - reportOn test, testNG - } - - check.dependsOn aggregateTestReports -} - -project("spring-aspects") { - description = "Spring Aspects" - apply from: "aspects.gradle" - - dependencies { - aspects(project(":spring-orm")) - ajc("org.aspectj:aspectjtools:${aspectjVersion}") - rt("org.aspectj:aspectjrt:${aspectjVersion}") - compile("org.aspectj:aspectjweaver:${aspectjVersion}") - optional(project(":spring-aop")) // for @Async support - optional(project(":spring-beans")) // for @Configurable support - optional(project(":spring-context")) // for @Enable* support - optional(project(":spring-context-support")) // for JavaMail and JSR-107 support - optional(project(":spring-orm")) // for JPA exception translation support - optional(project(":spring-tx")) // for JPA, @Transactional support - optional("javax.cache:cache-api:1.0.0") // for JCache aspect - optional("javax.transaction:javax.transaction-api:1.2") // for @javax.transaction.Transactional support - testCompile(project(":spring-core")) // for CodeStyleAspect - testCompile(project(":spring-test")) - testCompile("javax.mail:javax.mail-api:${javamailVersion}") - } - - eclipse.project { - natures += "org.eclipse.ajdt.ui.ajnature" - buildCommands = [new org.gradle.plugins.ide.eclipse.model.BuildCommand("org.eclipse.ajdt.core.ajbuilder")] - } -} - -project("spring-framework-bom") { - description = "Spring Framework (Bill of Materials)" - - dependencyManagement { - generatedPomCustomization { - enabled = false - } - } - - configurations.archives.artifacts.clear() - artifacts { - // work around GRADLE-2406 by attaching text artifact - archives(file("spring-framework-bom.txt")) - } - - install { - repositories.mavenInstaller { - pom.whenConfigured { - packaging = "pom" - } - } - } -} - sonarqube { properties { property "sonar.projectName", "Spring Framework" diff --git a/buildSrc/spring-build-src.gradle b/buildSrc/spring-build-src.gradle new file mode 100644 index 0000000000..d9d6cf92a2 --- /dev/null +++ b/buildSrc/spring-build-src.gradle @@ -0,0 +1,10 @@ +description = "Exposes gradle buildSrc for IDE support" + +apply plugin: "groovy" + +dependencies { + compile gradleApi() + compile localGroovy() +} + +configurations.archives.artifacts.clear() \ No newline at end of file diff --git a/spring-aop/spring-aop.gradle b/spring-aop/spring-aop.gradle new file mode 100644 index 0000000000..2f8f53193e --- /dev/null +++ b/spring-aop/spring-aop.gradle @@ -0,0 +1,9 @@ +description = "Spring AOP" + +dependencies { + compile(project(":spring-beans")) + compile(project(':spring-core')) + optional("org.aspectj:aspectjweaver:${aspectjVersion}") + optional("org.apache.commons:commons-pool2:2.4.2") + optional("com.jamonapi:jamon:2.81") +} \ No newline at end of file diff --git a/spring-aspects/aspects.gradle b/spring-aspects/spring-aspects.gradle similarity index 71% rename from spring-aspects/aspects.gradle rename to spring-aspects/spring-aspects.gradle index 2c68dff4da..99702ee1d6 100644 --- a/spring-aspects/aspects.gradle +++ b/spring-aspects/spring-aspects.gradle @@ -1,3 +1,5 @@ +description = "Spring Aspects" + // redefine the compileJava and compileTestJava tasks in order to // compile sources with ajc instead of javac @@ -81,3 +83,27 @@ compileTestJava { } } } + + +dependencies { + aspects(project(":spring-orm")) + ajc("org.aspectj:aspectjtools:${aspectjVersion}") + rt("org.aspectj:aspectjrt:${aspectjVersion}") + compile("org.aspectj:aspectjweaver:${aspectjVersion}") + optional(project(":spring-aop")) // for @Async support + optional(project(":spring-beans")) // for @Configurable support + optional(project(":spring-context")) // for @Enable* support + optional(project(":spring-context-support")) // for JavaMail and JSR-107 support + optional(project(":spring-orm")) // for JPA exception translation support + optional(project(":spring-tx")) // for JPA, @Transactional support + optional("javax.cache:cache-api:1.0.0") // for JCache aspect + optional("javax.transaction:javax.transaction-api:1.2") // for @javax.transaction.Transactional support + testCompile(project(":spring-core")) // for CodeStyleAspect + testCompile(project(":spring-test")) + testCompile("javax.mail:javax.mail-api:${javamailVersion}") +} + +eclipse.project { + natures += "org.eclipse.ajdt.ui.ajnature" + buildCommands = [new org.gradle.plugins.ide.eclipse.model.BuildCommand("org.eclipse.ajdt.core.ajbuilder")] +} \ No newline at end of file diff --git a/spring-context-indexer/spring-context-indexer.gradle b/spring-context-indexer/spring-context-indexer.gradle new file mode 100644 index 0000000000..7cb3352b09 --- /dev/null +++ b/spring-context-indexer/spring-context-indexer.gradle @@ -0,0 +1,8 @@ +description = "Spring Context Indexer" + +dependencies { + testCompile(project(":spring-context")) + testCompile("javax.inject:javax.inject:1") + testCompile("javax.annotation:javax.annotation-api:1.3") + testCompile("org.eclipse.persistence:javax.persistence:2.1.1") +} \ No newline at end of file diff --git a/spring-context-support/spring-context-support.gradle b/spring-context-support/spring-context-support.gradle new file mode 100644 index 0000000000..f87f5dde87 --- /dev/null +++ b/spring-context-support/spring-context-support.gradle @@ -0,0 +1,26 @@ +description = "Spring Context Support" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-context")) + compile(project(":spring-core")) + optional(project(":spring-jdbc")) // for Quartz support + optional(project(":spring-tx")) // for Quartz support + optional("javax.activation:activation:${activationVersion}") + optional("javax.mail:javax.mail-api:${javamailVersion}") + optional("javax.cache:cache-api:1.0.0") + optional("com.github.ben-manes.caffeine:caffeine:2.5.5") + optional("net.sf.ehcache:ehcache:2.10.4") + optional("org.quartz-scheduler:quartz:2.3.0") + optional("org.codehaus.fabric3.api:commonj:1.1.0") + optional("org.freemarker:freemarker:${freemarkerVersion}") + testCompile(project(":spring-context")) + testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") + testCompile("org.slf4j:slf4j-api:${slf4jVersion}") + testCompile("org.hibernate:hibernate-validator:6.0.1.Final") + testRuntime("org.ehcache:jcache:1.0.1") + testRuntime("org.ehcache:ehcache:3.3.1") + testRuntime("org.glassfish:javax.el:3.0.1-b08") + testRuntime("javax.annotation:javax.annotation-api:1.3") + testRuntime("com.sun.mail:javax.mail:${javamailVersion}") +} \ No newline at end of file diff --git a/spring-context/spring-context.gradle b/spring-context/spring-context.gradle new file mode 100644 index 0000000000..a33aae10f7 --- /dev/null +++ b/spring-context/spring-context.gradle @@ -0,0 +1,32 @@ +description = "Spring Context" + +apply plugin: "groovy" + +dependencies { + compile(project(":spring-aop")) + compile(project(":spring-beans")) + compile(project(":spring-expression")) + compile(project(':spring-core')) + optional(project(":spring-instrument")) + optional("javax.inject:javax.inject:1") + optional("javax.annotation:javax.annotation-api:1.3") + optional("javax.xml.ws:jaxws-api:${jaxwsVersion}") + optional("javax.ejb:javax.ejb-api:3.2") + optional("javax.interceptor:javax.interceptor-api:1.2") + optional("javax.enterprise.concurrent:javax.enterprise.concurrent-api:1.0") + optional("javax.money:money-api:1.0.1") + optional("javax.validation:validation-api:1.1.0.Final") + optional("org.hibernate:hibernate-validator:5.4.1.Final") + optional("joda-time:joda-time:2.9.9") + optional("org.aspectj:aspectjweaver:${aspectjVersion}") + optional("org.codehaus.groovy:groovy-all:${groovyVersion}") + optional("org.beanshell:bsh:2.0b5") + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + testCompile("org.apache.commons:commons-pool2:2.4.2") + testCompile("org.slf4j:slf4j-api:${slf4jVersion}") + testCompile("javax.inject:javax.inject-tck:1") + testRuntime("javax.xml.bind:jaxb-api:${jaxbVersion}") + testRuntime("org.glassfish:javax.el:3.0.1-b08") + testRuntime("org.javamoney:moneta:1.1") +} \ No newline at end of file diff --git a/spring-core/spring-core.gradle b/spring-core/spring-core.gradle new file mode 100644 index 0000000000..ed2e110732 --- /dev/null +++ b/spring-core/spring-core.gradle @@ -0,0 +1,94 @@ +description = "Spring Core" + +// As of Spring 4.0.3, spring-core includes asm 5.x and repackages cglib 3.2, inlining +// both into the spring-core jar. cglib 3.2 itself depends on asm 5.x and is therefore +// further transformed by the JarJar task to depend on org.springframework.asm; this +// avoids including two different copies of asm unnecessarily. +def cglibVersion = "3.2.5" +def objenesisVersion = "2.6" + +configurations { + jarjar + cglib + objenesis +} + +task cglibRepackJar(type: Jar) { repackJar -> + repackJar.baseName = "spring-cglib-repack" + repackJar.version = cglibVersion + + doLast() { + project.ant { + taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", + classpath: configurations.jarjar.asPath + jarjar(destfile: repackJar.archivePath) { + configurations.cglib.each { originalJar -> + zipfileset(src: originalJar) + } + // Repackage net.sf.cglib => org.springframework.cglib + rule(pattern: "net.sf.cglib.**", result: "org.springframework.cglib.@1") + // As mentioned above, transform cglib"s internal asm dependencies from + // org.objectweb.asm => org.springframework.asm. Doing this counts on the + // the fact that Spring and cglib depend on the same version of asm! + rule(pattern: "org.objectweb.asm.**", result: "org.springframework.asm.@1") + } + } + } +} + +task objenesisRepackJar(type: Jar) { repackJar -> + repackJar.baseName = "spring-objenesis-repack" + repackJar.version = objenesisVersion + + doLast() { + project.ant { + taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", + classpath: configurations.jarjar.asPath + jarjar(destfile: repackJar.archivePath) { + configurations.objenesis.each { originalJar -> + zipfileset(src: originalJar) + } + // Repackage org.objenesis => org.springframework.objenesis + rule(pattern: "org.objenesis.**", result: "org.springframework.objenesis.@1") + } + } + } +} + +dependencies { + cglib("cglib:cglib:${cglibVersion}@jar") + objenesis("org.objenesis:objenesis:${objenesisVersion}@jar") + jarjar("com.googlecode.jarjar:jarjar:1.3") + + compile(files(cglibRepackJar)) + compile(files(objenesisRepackJar)) + compile(project(":spring-jcl")) + optional("net.sf.jopt-simple:jopt-simple:5.0.3") + optional("org.aspectj:aspectjweaver:${aspectjVersion}") + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + optional("io.projectreactor:reactor-core") + optional("io.reactivex:rxjava:${rxjavaVersion}") + optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") + optional("io.reactivex.rxjava2:rxjava:${rxjava2Version}") + optional("io.netty:netty-buffer") + testCompile("io.projectreactor:reactor-test") + testCompile("javax.xml.bind:jaxb-api:${jaxbVersion}") + testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") + testCompile("com.fasterxml.woodstox:woodstox-core:5.0.3") { + exclude group: "stax", module: "stax-api" + } +} + +jar { + // Inline repackaged cglib classes directly into spring-core jar + dependsOn cglibRepackJar + from(zipTree(cglibRepackJar.archivePath)) { + include "org/springframework/cglib/**" + } + + dependsOn objenesisRepackJar + from(zipTree(objenesisRepackJar.archivePath)) { + include "org/springframework/objenesis/**" + } +} diff --git a/spring-expression/spring-expression.gradle b/spring-expression/spring-expression.gradle new file mode 100644 index 0000000000..003ebeab05 --- /dev/null +++ b/spring-expression/spring-expression.gradle @@ -0,0 +1,6 @@ +description = "Spring Expression Language (SpEL)" + +dependencies { + compile(project(":spring-jcl")) + compile(project(":spring-core")) +} \ No newline at end of file diff --git a/spring-framework-bom/spring-framework-bom.gradle b/spring-framework-bom/spring-framework-bom.gradle new file mode 100644 index 0000000000..f0ed03a4ee --- /dev/null +++ b/spring-framework-bom/spring-framework-bom.gradle @@ -0,0 +1,21 @@ +description = "Spring Framework (Bill of Materials)" + +dependencyManagement { + generatedPomCustomization { + enabled = false + } +} + +configurations.archives.artifacts.clear() +artifacts { + // work around GRADLE-2406 by attaching text artifact + archives(file("spring-framework-bom.txt")) +} + +install { + repositories.mavenInstaller { + pom.whenConfigured { + packaging = "pom" + } + } +} \ No newline at end of file diff --git a/spring-instrument/spring-instrument.gradle b/spring-instrument/spring-instrument.gradle new file mode 100644 index 0000000000..967cc6f7ff --- /dev/null +++ b/spring-instrument/spring-instrument.gradle @@ -0,0 +1,11 @@ +description = "Spring Instrument" + +jar { + manifest.attributes["Premain-Class"] = + "org.springframework.instrument.InstrumentationSavingAgent" + manifest.attributes["Agent-Class"] = + "org.springframework.instrument.InstrumentationSavingAgent" + manifest.attributes["Can-Redefine-Classes"] = "true" + manifest.attributes["Can-Retransform-Classes"] = "true" + manifest.attributes["Can-Set-Native-Method-Prefix"] = "false" +} \ No newline at end of file diff --git a/spring-jcl/spring-jcl.gradle b/spring-jcl/spring-jcl.gradle new file mode 100644 index 0000000000..a24ab6b035 --- /dev/null +++ b/spring-jcl/spring-jcl.gradle @@ -0,0 +1,6 @@ +description = "Spring Commons Logging Bridge" + +dependencies { + optional("org.apache.logging.log4j:log4j-api:${log4jVersion}") + optional("org.slf4j:slf4j-api:${slf4jVersion}") +} \ No newline at end of file diff --git a/spring-jdbc/spring-jdbc.gradle b/spring-jdbc/spring-jdbc.gradle new file mode 100644 index 0000000000..42953fa74a --- /dev/null +++ b/spring-jdbc/spring-jdbc.gradle @@ -0,0 +1,15 @@ +description = "Spring JDBC" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + compile(project(":spring-tx")) + optional(project(":spring-context")) // for JndiDataSourceLookup + optional("javax.transaction:javax.transaction-api:1.2") + optional("org.hsqldb:hsqldb:${hsqldbVersion}") + optional("com.h2database:h2:1.4.196") + optional("org.apache.derby:derby:10.13.1.1") + optional("org.apache.derby:derbyclient:10.13.1.1") + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") +} \ No newline at end of file diff --git a/spring-jms/spring-jms.gradle b/spring-jms/spring-jms.gradle new file mode 100644 index 0000000000..15f81bde8b --- /dev/null +++ b/spring-jms/spring-jms.gradle @@ -0,0 +1,15 @@ +description = "Spring JMS" + +dependencies { + provided("javax.jms:javax.jms-api:2.0.1") + compile(project(":spring-beans")) + compile(project(":spring-core")) + compile(project(":spring-messaging")) + compile(project(":spring-tx")) + optional(project(":spring-aop")) + optional(project(":spring-context")) + optional(project(":spring-oxm")) + optional("javax.resource:javax.resource-api:1.7") + optional("javax.transaction:javax.transaction-api:1.2") + optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") +} \ No newline at end of file diff --git a/spring-messaging/spring-messaging.gradle b/spring-messaging/spring-messaging.gradle new file mode 100644 index 0000000000..7d611ee49e --- /dev/null +++ b/spring-messaging/spring-messaging.gradle @@ -0,0 +1,34 @@ +description = "Spring Messaging" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + optional(project(":spring-context")) + optional(project(":spring-oxm")) + optional("io.projectreactor.ipc:reactor-netty") + optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet-api" + } + optional("org.eclipse.jetty.websocket:websocket-client:${jettyVersion}") + optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") + optional("javax.xml.bind:jaxb-api:${jaxbVersion}") + testCompile("javax.inject:javax.inject-tck:1") + testCompile("javax.servlet:javax.servlet-api:3.1.0") + testCompile("javax.validation:validation-api:1.1.0.Final") + testCompile("com.thoughtworks.xstream:xstream:1.4.10") + testCompile("org.apache.activemq:activemq-broker:5.8.0") + testCompile("org.apache.activemq:activemq-kahadb-store:5.8.0") { + exclude group: "org.springframework", module: "spring-context" + } + testCompile("org.apache.activemq:activemq-stomp:5.8.0") + testCompile("org.eclipse.jetty:jetty-webapp:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet-api" + } + testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") + testCompile("org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}") + testCompile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + testCompile("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") + testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") + testRuntime("javax.activation:activation:${activationVersion}") +} \ No newline at end of file diff --git a/spring-orm/spring-orm.gradle b/spring-orm/spring-orm.gradle new file mode 100644 index 0000000000..56d5620d8c --- /dev/null +++ b/spring-orm/spring-orm.gradle @@ -0,0 +1,17 @@ +description = "Spring Object/Relational Mapping" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + compile(project(":spring-jdbc")) + compile(project(":spring-tx")) + optional(project(":spring-aop")) + optional(project(":spring-context")) + optional(project(":spring-web")) + optional("org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.0-RC3") + optional("org.hibernate:hibernate-core:5.2.10.Final") + optional("javax.servlet:javax.servlet-api:3.1.0") + testCompile("org.aspectj:aspectjweaver:${aspectjVersion}") + testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") + testRuntime("javax.xml.bind:jaxb-api:${jaxbVersion}") +} \ No newline at end of file diff --git a/spring-oxm/oxm.gradle b/spring-oxm/spring-oxm.gradle similarity index 74% rename from spring-oxm/oxm.gradle rename to spring-oxm/spring-oxm.gradle index a872500521..a3fc177b14 100644 --- a/spring-oxm/oxm.gradle +++ b/spring-oxm/spring-oxm.gradle @@ -1,3 +1,5 @@ +description = "Spring Object/XML Marshalling" + configurations { castor xjc @@ -113,3 +115,31 @@ if (JavaVersion.current() == JavaVersion.VERSION_1_8) { } } } + + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + optional("javax.xml.bind:jaxb-api:${jaxbVersion}") + optional("javax.activation:activation:${activationVersion}") + optional("org.codehaus.castor:castor-xml:1.4.1") { + exclude group: 'stax', module: 'stax-api' + exclude group: "org.springframework", module: "spring-context" + exclude group: "commons-logging", module: "commons-logging" + } + optional("com.thoughtworks.xstream:xstream:1.4.10") { + exclude group: 'xpp3', module: 'xpp3_min' + exclude group: 'xmlpull', module: 'xmlpull' + } + optional("org.jibx:jibx-run:1.3.1") + testCompile(project(":spring-context")) + testCompile("org.ogce:xpp3:1.1.6") + testCompile("org.codehaus.jettison:jettison:1.3.8") { + exclude group: 'stax', module: 'stax-api' + } + testCompile(files(genCastor.classesDir).builtBy(genCastor)) + testCompile(files(genJaxb.classesDir).builtBy(genJaxb)) + testRuntime("xerces:xercesImpl:2.11.0") // for Castor + testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") + testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") +} \ No newline at end of file diff --git a/spring-test/spring-test.gradle b/spring-test/spring-test.gradle new file mode 100644 index 0000000000..29a341081d --- /dev/null +++ b/spring-test/spring-test.gradle @@ -0,0 +1,113 @@ +description = "Spring TestContext Framework" + +dependencies { + compile(project(":spring-core")) + optional(project(":spring-aop")) + optional(project(":spring-beans")) + optional(project(":spring-context")) + optional(project(":spring-jdbc")) + optional(project(":spring-orm")) + optional(project(":spring-tx")) + optional(project(":spring-web")) + optional(project(":spring-webflux")) + optional(project(":spring-webmvc")) + optional(project(":spring-websocket")) + optional("junit:junit:4.12") + optional("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}") + optional("org.testng:testng:6.11") + optional("javax.inject:javax.inject:1") + optional("javax.servlet:javax.servlet-api:4.0.0") + optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02") + optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1") + optional("org.apache.taglibs:taglibs-standard-jstlel:1.2.5") { + exclude group: "org.apache.taglibs", module: "taglibs-standard-spec" + } + optional("javax.el:javax.el-api:3.0.1-b04") + optional("javax.websocket:javax.websocket-api:1.1") + optional("javax.activation:activation:${activationVersion}") + optional("javax.xml.bind:jaxb-api:${jaxbVersion}") + optional("org.aspectj:aspectjweaver:${aspectjVersion}") + optional("org.codehaus.groovy:groovy-all:${groovyVersion}") + optional("org.hamcrest:hamcrest-core:1.3") + optional("net.sourceforge.htmlunit:htmlunit:2.27") { + exclude group: "commons-logging", module: "commons-logging" + } + optional("org.seleniumhq.selenium:htmlunit-driver:2.27") + optional("org.seleniumhq.selenium:selenium-java:3.4.0") { + exclude group: "io.netty", module: "netty" + } + optional("org.xmlunit:xmlunit-matchers:2.3.0") + optional("org.skyscreamer:jsonassert:1.5.0") + optional("com.jayway.jsonpath:json-path:2.4.0") + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + optional("io.projectreactor:reactor-test") + testCompile(project(":spring-context-support")) + testCompile(project(":spring-oxm")) + testCompile("javax.mail:javax.mail-api:${javamailVersion}") + testCompile("javax.ejb:javax.ejb-api:3.2") + testCompile("javax.interceptor:javax.interceptor-api:1.2") + testCompile("javax.cache:cache-api:1.0.0") + testCompile("org.hibernate:hibernate-core:5.2.10.Final") + testCompile("org.hibernate:hibernate-validator:6.0.1.Final") + // Enable use of the JUnitPlatform Runner + testCompile("org.junit.platform:junit-platform-runner:${junitPlatformVersion}") + testCompile("org.junit.jupiter:junit-jupiter-params:${junitJupiterVersion}") + testCompile("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") + testCompile("com.thoughtworks.xstream:xstream:1.4.10") + testCompile("com.rometools:rome:1.7.4") + testCompile("org.apache.tiles:tiles-api:${tiles3Version}") + testCompile("org.apache.tiles:tiles-core:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } + testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } + testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") + testCompile("org.apache.httpcomponents:httpclient:${httpclientVersion}") { + exclude group: "commons-logging", module: "commons-logging" + } + testCompile('io.projectreactor.ipc:reactor-netty') + // Pull in the latest JUnit 5 Launcher API and the Vintage engine as well + // so that we can run JUnit 4 tests in IntelliJ IDEA. + testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}") + testRuntime("org.junit.platform:junit-platform-launcher:${junitPlatformVersion}") + testRuntime("org.junit.vintage:junit-vintage-engine:${junitVintageVersion}") + testCompile('de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1') + testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}") // Java Util Logging for JUnit 5 + testRuntime("javax.annotation:javax.annotation-api:1.3") + testRuntime("org.glassfish:javax.el:3.0.1-b08") + testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") + testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") +} + +task testNG(type: Test) { + description = 'Runs TestNG tests.' + useTestNG() + scanForTestClasses = false + include(["**/testng/**/*Tests.class", "**/testng/**/*Test.class"]) + // Show STD_OUT & STD_ERR of the test JVM(s) on the console: + // testLogging.showStandardStreams = true + // forkEvery 1 + reports.junitXml.destination = file("$buildDir/test-results") +} + +test { + description = 'Runs JUnit tests.' + dependsOn testNG + useJUnit() + scanForTestClasses = false + include(['**/*Tests.class', '**/*Test.class', '**/SpringJUnitJupiterTestSuite.class']) + exclude(['**/testng/**/*.*']) + // Java Util Logging for JUnit 5. + // systemProperty('java.util.logging.manager', 'org.apache.logging.log4j.jul.LogManager') + reports.junitXml.destination = file("$buildDir/test-results") +} + +task aggregateTestReports(type: TestReport) { + description = 'Aggregates JUnit and TestNG test reports.' + destinationDir = test.reports.html.destination + reportOn test, testNG +} + +check.dependsOn aggregateTestReports \ No newline at end of file diff --git a/spring-tx/spring-tx.gradle b/spring-tx/spring-tx.gradle new file mode 100644 index 0000000000..50d57d2d0d --- /dev/null +++ b/spring-tx/spring-tx.gradle @@ -0,0 +1,16 @@ +description = "Spring Transaction" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + optional(project(":spring-aop")) + optional(project(":spring-context")) // for JCA, @EnableTransactionManagement + optional("javax.ejb:javax.ejb-api:3.2") + optional("javax.interceptor:javax.interceptor-api:1.2") + optional("javax.resource:javax.resource-api:1.7") + optional("javax.transaction:javax.transaction-api:1.2") + optional("com.ibm.websphere:uow:6.0.2.17") + testCompile("org.aspectj:aspectjweaver:${aspectjVersion}") + testCompile("org.codehaus.groovy:groovy-all:${groovyVersion}") + testCompile("org.eclipse.persistence:javax.persistence:2.1.1") +} \ No newline at end of file diff --git a/spring-web/spring-web.gradle b/spring-web/spring-web.gradle new file mode 100644 index 0000000000..7b42975de3 --- /dev/null +++ b/spring-web/spring-web.gradle @@ -0,0 +1,80 @@ +description = "Spring Web" + +apply plugin: "groovy" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + optional(project(":spring-aop")) + optional(project(":spring-context")) + optional(project(":spring-oxm")) + optional("javax.servlet:javax.servlet-api:3.1.0") + optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02") + optional("javax.el:javax.el-api:3.0.1-b04") + optional("javax.faces:javax.faces-api:2.2") + optional("javax.validation:validation-api:1.1.0.Final") + optional("org.codehaus.groovy:groovy-all:${groovyVersion}") + optional("com.caucho:hessian:4.0.38") + optional("commons-fileupload:commons-fileupload:1.3.3") + optional("org.synchronoss.cloud:nio-multipart-parser:1.1.0") + optional("io.projectreactor.ipc:reactor-netty") + optional("io.reactivex:rxjava:${rxjavaVersion}") + optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") + optional("io.reactivex.rxjava2:rxjava:${rxjava2Version}") + optional("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") + optional("io.undertow:undertow-core:${undertowVersion}") + optional("com.fasterxml.woodstox:woodstox-core:5.0.3") { // woodstox before aalto + exclude group: "stax", module: "stax-api" + } + optional("com.fasterxml:aalto-xml:1.0.0") + optional("org.apache.httpcomponents:httpclient:${httpclientVersion}") { + exclude group: "commons-logging", module: "commons-logging" + } + optional("org.apache.httpcomponents:httpasyncclient:4.1.3") { + exclude group: "commons-logging", module: "commons-logging" + } + optional("io.netty:netty-all") + optional("com.squareup.okhttp3:okhttp:${okhttp3Version}") + optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}") + optional("com.google.code.gson:gson:2.8.1") + optional("javax.json.bind:javax.json.bind-api:1.0") + optional("com.rometools:rome:1.7.4") + optional("org.eclipse.jetty:jetty-servlet:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet-api" + } + optional("org.eclipse.jetty:jetty-server:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet-api" + } + optional("com.google.protobuf:protobuf-java-util:3.4.0") + optional("com.googlecode.protobuf-java-format:protobuf-java-format:1.4") + optional("javax.xml.bind:jaxb-api:${jaxbVersion}") + optional("javax.xml.ws:jaxws-api:${jaxwsVersion}") + optional("javax.mail:javax.mail-api:${javamailVersion}") + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + testCompile("io.projectreactor:reactor-test") + testCompile("org.apache.taglibs:taglibs-standard-jstlel:1.2.1") { + exclude group: "org.apache.taglibs", module: "taglibs-standard-spec" + } + testCompile("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:${jackson2Version}") + testCompile("com.fasterxml.jackson.datatype:jackson-datatype-joda:${jackson2Version}") + testCompile("com.fasterxml.jackson.module:jackson-module-kotlin:${jackson2Version}") + testCompile("org.apache.tomcat:tomcat-util:${tomcatVersion}") + testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") + testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") + testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") + testCompile("io.reactivex:rxnetty-http:0.5.2") { + exclude group: 'io.reactivex', module: 'rxjava' + } + testCompile("com.squareup.okhttp3:mockwebserver:${okhttp3Version}") + testCompile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + testCompile("org.skyscreamer:jsonassert:1.5.0") + testRuntime("com.sun.mail:javax.mail:${javamailVersion}") + testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") + testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") + testRuntime("javax.json:javax.json-api:1.1") + testRuntime("org.apache.johnzon:johnzon-jsonb:1.1.2") +} \ No newline at end of file diff --git a/spring-webflux/spring-webflux.gradle b/spring-webflux/spring-webflux.gradle new file mode 100644 index 0000000000..8b579feb4b --- /dev/null +++ b/spring-webflux/spring-webflux.gradle @@ -0,0 +1,59 @@ +description = "Spring WebFlux" + +dependencies { + compile(project(":spring-beans")) + compile(project(":spring-core")) + compile(project(":spring-web")) + compile("io.projectreactor:reactor-core") + optional(project(":spring-context")) + optional(project(":spring-context-support")) // for FreeMarker support + optional("javax.servlet:javax.servlet-api:3.1.0") + optional("javax.websocket:javax.websocket-api:1.1") + optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") + optional("org.freemarker:freemarker:${freemarkerVersion}") + optional("org.apache.httpcomponents:httpclient:${httpclientVersion}") { + exclude group: "commons-logging", module: "commons-logging" + } + optional('org.webjars:webjars-locator:0.32-1') + optional("io.projectreactor.ipc:reactor-netty") + optional("io.reactivex:rxjava:${rxjavaVersion}") + optional("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") + optional("org.apache.tomcat:tomcat-websocket:${tomcatVersion}") { + exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" + exclude group: "org.apache.tomcat", module: "tomcat-servlet-api" + } + optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet" + } + optional("io.undertow:undertow-websockets-jsr:${undertowVersion}") { + exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec" + } + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + testCompile("javax.xml.bind:jaxb-api:${jaxbVersion}") + testCompile("io.projectreactor:reactor-test") + testCompile("org.hibernate:hibernate-validator:6.0.1.Final") + testCompile("org.apache.tomcat:tomcat-util:${tomcatVersion}") + testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") + testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") + testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") + testCompile "io.reactivex.rxjava2:rxjava:${rxjava2Version}" + testCompile("io.undertow:undertow-core:${undertowVersion}") + testCompile("io.reactivex:rxnetty-http:0.5.2") { + exclude group: 'io.reactivex', module: 'rxjava' + } + testCompile("com.fasterxml:aalto-xml:1.0.0") + testCompile("com.squareup.okhttp3:mockwebserver:${okhttp3Version}") + testCompile("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}") + testRuntime("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}") + testRuntime("org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}") + testRuntime("org.jruby:jruby:9.1.12.0") + testRuntime("org.python:jython-standalone:2.7.1") + testRuntime("org.synchronoss.cloud:nio-multipart-parser:1.1.0") + testRuntime("org.webjars:underscorejs:1.8.3") + testRuntime("org.glassfish:javax.el:3.0.1-b08") + testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") + testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") + testRuntime("javax.activation:activation:${activationVersion}") +} \ No newline at end of file diff --git a/spring-webmvc/spring-webmvc.gradle b/spring-webmvc/spring-webmvc.gradle new file mode 100644 index 0000000000..589b8c371c --- /dev/null +++ b/spring-webmvc/spring-webmvc.gradle @@ -0,0 +1,84 @@ +description = "Spring Web MVC" + +dependencies { + provided("javax.servlet:javax.servlet-api:4.0.0") + compile(project(":spring-aop")) + compile(project(":spring-beans")) + compile(project(":spring-context")) + compile(project(':spring-core')) + compile(project(":spring-expression")) + compile(project(":spring-web")) + optional(project(":spring-context-support")) // for FreeMarker support + optional(project(":spring-oxm")) + optional("javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02") + optional("javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1") + optional("javax.el:javax.el-api:3.0.1-b04") + optional("javax.xml.bind:jaxb-api:${jaxbVersion}") + optional("org.apache.poi:poi-ooxml:3.16") + optional("com.lowagie:itext:2.1.7") + optional("com.rometools:rome:1.7.4") + optional("org.freemarker:freemarker:${freemarkerVersion}") + optional("org.codehaus.groovy:groovy-all:${groovyVersion}") + optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") + optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}") + optional("org.apache.tiles:tiles-api:${tiles3Version}") + optional("org.apache.tiles:tiles-core:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } + optional("org.apache.tiles:tiles-servlet:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } + optional("org.apache.tiles:tiles-jsp:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } + optional("org.apache.tiles:tiles-el:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } + optional("org.apache.tiles:tiles-extras:${tiles3Version}") { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + exclude group: "org.springframework", module: "spring-web" + } + optional('org.webjars:webjars-locator:0.32-1') + optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") + optional("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}") + optional("org.reactivestreams:reactive-streams") + testCompile("javax.servlet:javax.servlet-api:4.0.0") + testCompile("org.eclipse.jetty:jetty-servlet:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet" + } + testCompile("org.eclipse.jetty:jetty-server:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet" + } + testCompile("org.hibernate:hibernate-validator:6.0.1.Final") + testCompile("org.apache.httpcomponents:httpclient:${httpclientVersion}") { + exclude group: "commons-logging", module: "commons-logging" + } + testCompile("commons-fileupload:commons-fileupload:1.3.3") + testCompile("commons-io:commons-io:2.5") + testCompile("joda-time:joda-time:2.9.9") + testCompile("org.mozilla:rhino:1.7.7.1") + 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("io.projectreactor:reactor-core") + testCompile("io.reactivex:rxjava:${rxjavaVersion}") + testCompile("io.reactivex:rxjava-reactive-streams:${rxjavaAdapterVersion}") + testCompile("io.reactivex.rxjava2:rxjava:${rxjava2Version}") + testCompile("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}") + testRuntime("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}") + testRuntime("org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}") + testRuntime("org.jruby:jruby:9.1.12.0") + testRuntime("org.python:jython-standalone:2.7.1") + testRuntime("org.webjars:underscorejs:1.8.3") + testRuntime("org.glassfish:javax.el:3.0.1-b08") + testRuntime("com.sun.xml.bind:jaxb-core:${jaxbVersion}") + testRuntime("com.sun.xml.bind:jaxb-impl:${jaxbVersion}") + testRuntime("javax.activation:activation:${activationVersion}") +} \ No newline at end of file diff --git a/spring-websocket/spring-websocket.gradle b/spring-websocket/spring-websocket.gradle new file mode 100644 index 0000000000..5dd3bac77c --- /dev/null +++ b/spring-websocket/spring-websocket.gradle @@ -0,0 +1,35 @@ +description = "Spring WebSocket" + +dependencies { + compile(project(":spring-context")) + compile(project(":spring-core")) + compile(project(":spring-web")) + optional(project(":spring-messaging")) + optional(project(":spring-webmvc")) + optional("javax.servlet:javax.servlet-api:3.1.0") + optional("javax.websocket:javax.websocket-api:1.1") + optional("org.apache.tomcat:tomcat-websocket:${tomcatVersion}") { + exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" + exclude group: "org.apache.tomcat", module: "tomcat-servlet-api" + } + optional("org.glassfish.tyrus:tyrus-container-servlet:1.13.1") + optional("org.eclipse.jetty:jetty-webapp:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet" + } + optional("org.eclipse.jetty.websocket:websocket-server:${jettyVersion}") { + exclude group: "javax.servlet", module: "javax.servlet" + } + optional("org.eclipse.jetty.websocket:websocket-client:${jettyVersion}") + optional("org.eclipse.jetty:jetty-client:${jettyVersion}") + optional("io.undertow:undertow-servlet:${undertowVersion}") { + exclude group: "org.jboss.spec.javax.servlet", module: "jboss-servlet-api_3.1_spec" + exclude group: "org.jboss.spec.javax.annotation", module: "jboss-annotations-api_1.2_spec" + } + optional("io.undertow:undertow-websockets-jsr:${undertowVersion}") { + exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec" + } + optional("com.fasterxml.jackson.core:jackson-databind:${jackson2Version}") + testCompile("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") + testCompile("org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}") + testCompile("io.projectreactor.ipc:reactor-netty") +} \ No newline at end of file