|
|
|
description = "Spring Core"
|
|
|
|
|
|
|
|
apply plugin: "io.spring.dependency-management"
|
|
|
|
|
|
|
|
dependencyManagement {
|
|
|
|
imports {
|
|
|
|
mavenBom "io.projectreactor:reactor-bom:${reactorVersion}"
|
|
|
|
mavenBom "io.netty:netty-bom:${nettyVersion}"
|
|
|
|
}
|
|
|
|
resolutionStrategy {
|
|
|
|
cacheChangingModulesFor 0, 'seconds'
|
|
|
|
}
|
|
|
|
applyMavenExclusions = false
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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.6"
|
|
|
|
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.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.0")
|
|
|
|
testCompile("javax.xml.bind:jaxb-api:2.3.0")
|
|
|
|
testCompile("com.fasterxml.woodstox:woodstox-core:5.1.0") {
|
|
|
|
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/**"
|
|
|
|
exclude "org/springframework/cglib/core/AbstractClassGenerator*.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/**"
|
|
|
|
}
|
|
|
|
}
|