From f0eeffff02931626d5af1d56e154f654613d6bca Mon Sep 17 00:00:00 2001 From: Ramon Nogueira Date: Fri, 15 Feb 2013 05:20:24 +0200 Subject: [PATCH 1/4] Gradle build: initial work --- .gitignore | 4 ++ build.gradle | 13 ++++++ org.springsource.loaded.testdata/build.gradle | 41 +++++++++++++++++++ org.springsource.loaded/build.gradle | 18 ++++++++ org.springsource.loaded/settings.gradle | 0 settings.gradle | 2 + 6 files changed, 78 insertions(+) create mode 100644 build.gradle create mode 100644 org.springsource.loaded.testdata/build.gradle create mode 100644 org.springsource.loaded/build.gradle create mode 100644 org.springsource.loaded/settings.gradle create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 2768b47..f9b202a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,7 @@ builds/ superbin/ springloaded-*.jar .DS_Store +/.idea +*.iml +/.gradle +build/ diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..9f13163 --- /dev/null +++ b/build.gradle @@ -0,0 +1,13 @@ +subprojects { + apply plugin: 'java' + + configurations { + tools + } + + repositories { + mavenCentral() + } + + version = '1.1.1-dev' +} \ No newline at end of file diff --git a/org.springsource.loaded.testdata/build.gradle b/org.springsource.loaded.testdata/build.gradle new file mode 100644 index 0000000..6b9b08f --- /dev/null +++ b/org.springsource.loaded.testdata/build.gradle @@ -0,0 +1,41 @@ +def aspectjVersion = "1.7.1" + +configurations { + aspects + ajInpath +} + +dependencies { + tools "org.aspectj:aspectjtools:$aspectjVersion" + compile "cglib:cglib:2.2.2" + compile "org.aspectj:aspectjrt:$aspectjVersion" +} + +sourceSets { + main { + java { + srcDir 'src' + srcDir 'cglibsrc' + } + } +} + +task compileJava(dependsOn: JavaPlugin.PROCESS_RESOURCES_TASK_NAME, overwrite: true) { + dependsOn configurations.tools.getTaskDependencyFromProjectDependency(true, "compileJava") + def srcDirs = sourceSets.main.java.srcDirs + srcDirs.each { inputs.dir it } + def destDir = sourceSets.main.output.classesDir + outputs.dir destDir + doLast { + ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.tools.asPath) + + ant.iajc(source:sourceCompatibility, target:targetCompatibility, destDir: destDir.absolutePath, maxmem:"512m", fork:"true", + aspectPath: configurations.aspects.asPath, inpath:configurations.ajInpath.asPath, sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath ){ + sourceroots { + srcDirs.each { + if (it.exists()) pathelement location: it.absolutePath + } + } + } + } +} diff --git a/org.springsource.loaded/build.gradle b/org.springsource.loaded/build.gradle new file mode 100644 index 0000000..b4838cc --- /dev/null +++ b/org.springsource.loaded/build.gradle @@ -0,0 +1,18 @@ +dependencies { + compile 'asm:asm-all:3.2' + tools 'com.googlecode.jarjar:jarjar:1.3' + testCompile 'junit:junit:4.11' + testCompile project(':org.springsource.loaded.testdata') +} + +test { + jvmArgs "-noverify" +} + +task dist(dependsOn: 'build') { + ant.taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.tools.asPath + ant.jarjar(destfile: "target/springloaded-${project.version}.jar", manifest: "META-INF/MANIFEST.MF") { + + } +} + diff --git a/org.springsource.loaded/settings.gradle b/org.springsource.loaded/settings.gradle new file mode 100644 index 0000000..e69de29 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..971dc4c --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +include "org.springsource.loaded" +include "org.springsource.loaded.testdata" From 8b238f6c5cf4b2f258bf249716c3ebc7689e9a3d Mon Sep 17 00:00:00 2001 From: Ramon Nogueira Date: Fri, 15 Feb 2013 05:43:07 +0200 Subject: [PATCH 2/4] Install to local maven repository --- build.gradle | 6 +++--- org.springsource.loaded/build.gradle | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 9f13163..1df1261 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,5 @@ +apply plugin: 'idea' + subprojects { apply plugin: 'java' @@ -8,6 +10,4 @@ subprojects { repositories { mavenCentral() } - - version = '1.1.1-dev' -} \ No newline at end of file +} diff --git a/org.springsource.loaded/build.gradle b/org.springsource.loaded/build.gradle index b4838cc..d1c193c 100644 --- a/org.springsource.loaded/build.gradle +++ b/org.springsource.loaded/build.gradle @@ -1,3 +1,10 @@ + +apply plugin: 'maven' + +group = "org.springsource.loaded" +version = '1.1.1-dev' +jar.baseName = 'spring-loaded' + dependencies { compile 'asm:asm-all:3.2' tools 'com.googlecode.jarjar:jarjar:1.3' From 7a2dfe8b72bb93fdf5f1ffca5f6c5eb3359d68e2 Mon Sep 17 00:00:00 2001 From: Ramon Nogueira Date: Sat, 16 Feb 2013 06:18:54 +0200 Subject: [PATCH 3/4] JarJar and source jar --- org.springsource.loaded/build.gradle | 51 +++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/org.springsource.loaded/build.gradle b/org.springsource.loaded/build.gradle index d1c193c..862c4a9 100644 --- a/org.springsource.loaded/build.gradle +++ b/org.springsource.loaded/build.gradle @@ -5,8 +5,26 @@ group = "org.springsource.loaded" version = '1.1.1-dev' jar.baseName = 'spring-loaded' +configurations { + provided +} + +compileJava { + options.debug = true +} + +sourceSets { + main { compileClasspath += configurations.provided } +} + +/*idea { + module { + scopes.PROVIDED.plus += configurations.provided + } +}*/ + dependencies { - compile 'asm:asm-all:3.2' + provided 'asm:asm-all:3.2' tools 'com.googlecode.jarjar:jarjar:1.3' testCompile 'junit:junit:4.11' testCompile project(':org.springsource.loaded.testdata') @@ -16,10 +34,33 @@ test { jvmArgs "-noverify" } -task dist(dependsOn: 'build') { - ant.taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.tools.asPath - ant.jarjar(destfile: "target/springloaded-${project.version}.jar", manifest: "META-INF/MANIFEST.MF") { - +task jarAll(type: Jar, dependsOn: jar) { + def metaInfDir = "$projectDir/META-INF" + inputs.files jar.archivePath + inputs.dir metaInfDir + classifier = 'all' + doLast { + project.ant { + taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.tools.asPath + jarjar(jarfile: archivePath, manifest: "$metaInfDir/MANIFEST.MF") { + zipfileset(dir: "$metaInfDir", prefix: 'META-INF') + zipfileset(src: jar.archivePath) + configurations.runtime.files.each { jarjarFile -> + zipfileset(src: jarjarFile) + } + rule pattern: "org.objectweb.asm.**", result: "sl.org.objectweb.asm.@1" + } + } } } +task sourcesJar(type: Jar, dependsOn:classes) { + classifier = 'sources' + from sourceSets.main.allSource +} + +// add the jars as artifacts +artifacts { + archives sourcesJar + archives jarAll +} From f9a3d9d542c516abb1bab3669e3274e6cfd9fd25 Mon Sep 17 00:00:00 2001 From: Ramon Nogueira Date: Wed, 20 Feb 2013 09:28:15 +0200 Subject: [PATCH 4/4] Build a separate -agent jar which contains the embedded asm dependency --- .gitignore | 2 ++ build.gradle | 23 +++++++++++-------- org.springsource.loaded.testdata/build.gradle | 3 +++ org.springsource.loaded/build.gradle | 20 +++------------- 4 files changed, 21 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index f9b202a..4f39037 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,7 @@ springloaded-*.jar .DS_Store /.idea *.iml +*.ipr +*.iws /.gradle build/ diff --git a/build.gradle b/build.gradle index 1df1261..4e4bc17 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,16 @@ -apply plugin: 'idea' +allprojects { + apply plugin: 'idea' + + configurations { + tools + } + + repositories { + mavenCentral() + } +} subprojects { - apply plugin: 'java' - - configurations { - tools - } - - repositories { - mavenCentral() - } + apply plugin: 'java' } + diff --git a/org.springsource.loaded.testdata/build.gradle b/org.springsource.loaded.testdata/build.gradle index 6b9b08f..ad9d6d5 100644 --- a/org.springsource.loaded.testdata/build.gradle +++ b/org.springsource.loaded.testdata/build.gradle @@ -9,6 +9,7 @@ dependencies { tools "org.aspectj:aspectjtools:$aspectjVersion" compile "cglib:cglib:2.2.2" compile "org.aspectj:aspectjrt:$aspectjVersion" + compile 'asm:asm-all:3.2' } sourceSets { @@ -16,6 +17,8 @@ sourceSets { java { srcDir 'src' srcDir 'cglibsrc' + srcDir 'subsrc' + srcDir 'supersrc' } } } diff --git a/org.springsource.loaded/build.gradle b/org.springsource.loaded/build.gradle index 862c4a9..8943d8f 100644 --- a/org.springsource.loaded/build.gradle +++ b/org.springsource.loaded/build.gradle @@ -5,26 +5,12 @@ group = "org.springsource.loaded" version = '1.1.1-dev' jar.baseName = 'spring-loaded' -configurations { - provided -} - compileJava { options.debug = true } -sourceSets { - main { compileClasspath += configurations.provided } -} - -/*idea { - module { - scopes.PROVIDED.plus += configurations.provided - } -}*/ - dependencies { - provided 'asm:asm-all:3.2' + compile 'asm:asm-all:3.2' tools 'com.googlecode.jarjar:jarjar:1.3' testCompile 'junit:junit:4.11' testCompile project(':org.springsource.loaded.testdata') @@ -38,14 +24,14 @@ task jarAll(type: Jar, dependsOn: jar) { def metaInfDir = "$projectDir/META-INF" inputs.files jar.archivePath inputs.dir metaInfDir - classifier = 'all' + classifier = 'agent' doLast { project.ant { taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.tools.asPath jarjar(jarfile: archivePath, manifest: "$metaInfDir/MANIFEST.MF") { zipfileset(dir: "$metaInfDir", prefix: 'META-INF') zipfileset(src: jar.archivePath) - configurations.runtime.files.each { jarjarFile -> + configurations.compile.files.each { jarjarFile -> zipfileset(src: jarjarFile) } rule pattern: "org.objectweb.asm.**", result: "sl.org.objectweb.asm.@1"