This commit introduces the spring-core-coroutines module in order to avoid referencing Kotlin code from Java one, which is currently not supported by Eclipse. During the build, spring-core-coroutines is merged into spring-core, so this change is expected to have no impact for end users. This module contains functions accessible from Java via the CoroutinesUtils class to adapt Coroutines and Deferred instances to and from Mono. See gh-19975
117 lines
4.0 KiB
Groovy
117 lines
4.0 KiB
Groovy
description = "Spring Core"
|
|
|
|
dependencyManagement {
|
|
imports {
|
|
mavenBom "io.projectreactor:reactor-bom:${reactorVersion}"
|
|
mavenBom "io.netty:netty-bom:${nettyVersion}"
|
|
}
|
|
}
|
|
|
|
// spring-core includes asm and repackages cglib, inlining both into the spring-core jar.
|
|
// cglib itself depends on asm and is therefore further transformed by the JarJar task to
|
|
// depend on org.springframework.asm; this avoids including two different copies of asm.
|
|
def cglibVersion = "3.2.10"
|
|
def objenesisVersion = "3.0.1"
|
|
|
|
configurations {
|
|
jarjar
|
|
cglib
|
|
objenesis
|
|
coroutines {
|
|
transitive = false
|
|
}
|
|
}
|
|
|
|
task cglibRepackJar(type: Jar) { repackJar ->
|
|
repackJar.baseName = "spring-cglib-repack"
|
|
repackJar.version = cglibVersion
|
|
|
|
doLast() {
|
|
project.ant {
|
|
taskdef name: "jarjar", classname: "org.pantsbuild.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: "org.pantsbuild.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("org.pantsbuild:jarjar:1.7.2")
|
|
coroutines(project(":spring-core-coroutines"))
|
|
|
|
compile(files(cglibRepackJar))
|
|
compile(files(objenesisRepackJar))
|
|
compile(project(":spring-jcl"))
|
|
compileOnly(project(":spring-core-coroutines"))
|
|
optional("net.sf.jopt-simple:jopt-simple:5.0.4")
|
|
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("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}")
|
|
testCompile("org.xmlunit:xmlunit-matchers:2.6.2")
|
|
testCompile("javax.xml.bind:jaxb-api:2.3.1")
|
|
testCompile("com.fasterxml.woodstox:woodstox-core:5.2.0") {
|
|
exclude group: "stax", module: "stax-api"
|
|
}
|
|
testCompile(project(":spring-core-coroutines"))
|
|
}
|
|
|
|
jar {
|
|
// Inline repackaged cglib classes directly into spring-core jar
|
|
dependsOn cglibRepackJar
|
|
from(zipTree(cglibRepackJar.archivePath)) {
|
|
include "org/springframework/cglib/**"
|
|
exclude "org/springframework/cglib/core/AbstractClassGenerator*.class"
|
|
exclude "org/springframework/cglib/core/AsmApi*.class"
|
|
exclude "org/springframework/cglib/core/KeyFactory.class"
|
|
exclude "org/springframework/cglib/core/KeyFactory\$*.class"
|
|
exclude "org/springframework/cglib/core/ReflectUtils*.class"
|
|
exclude "org/springframework/cglib/proxy/Enhancer*.class"
|
|
exclude "org/springframework/cglib/proxy/MethodProxy*.class"
|
|
}
|
|
|
|
dependsOn objenesisRepackJar
|
|
from(zipTree(objenesisRepackJar.archivePath)) {
|
|
include "org/springframework/objenesis/**"
|
|
}
|
|
|
|
from { configurations.coroutines.collect { it.isDirectory() ? it : zipTree(it) } }
|
|
}
|