From 93eea8ab8dcec3c16e9c3cc51c4040dffd0ff9df Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 8 Mar 2014 11:47:40 +0100 Subject: [PATCH] Move gradle subproject configuration into the subproject --- bosh/build.gradle | 8 ++ build.gradle | 210 +++------------------------------ compression-jzlib/build.gradle | 8 ++ core/build.gradle | 55 +++++++++ debug/build.gradle | 8 ++ experimental/build.gradle | 11 ++ extensions/build.gradle | 11 ++ jingle/build.gradle | 11 ++ legacy/build.gradle | 10 ++ resolver-dnsjava/build.gradle | 9 ++ resolver-javax/build.gradle | 8 ++ tcp/build.gradle | 7 ++ 12 files changed, 161 insertions(+), 195 deletions(-) create mode 100644 bosh/build.gradle create mode 100644 compression-jzlib/build.gradle create mode 100644 core/build.gradle create mode 100644 debug/build.gradle create mode 100644 experimental/build.gradle create mode 100644 extensions/build.gradle create mode 100644 jingle/build.gradle create mode 100644 legacy/build.gradle create mode 100644 resolver-dnsjava/build.gradle create mode 100644 resolver-javax/build.gradle create mode 100644 tcp/build.gradle diff --git a/bosh/build.gradle b/bosh/build.gradle new file mode 100644 index 000000000..9d82f7dd2 --- /dev/null +++ b/bosh/build.gradle @@ -0,0 +1,8 @@ +description = """\ +Smack BOSH API. +This API is considered beta quality.""" + +dependencies { + compile project(':core') + compile 'org.igniterealtime.jbosh:jbosh:0.7.0' +} diff --git a/build.gradle b/build.gradle index aac59ad6c..d66bc4788 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,5 @@ +import org.gradle.plugins.signing.Sign + allprojects { apply plugin: 'java' apply plugin: 'maven' @@ -31,6 +33,19 @@ allprojects { 'Implementation-GitRevision': ext.gitCommit, 'Bundle-Version': version) } + + gradle.taskGraph.whenReady { taskGraph -> + if (signingRequired && taskGraph.allTasks.any { it instanceof Sign }) { + // Use Java 6's console to read from the console (no good for a CI environment) + Console console = System.console() + console.printf '\n\nWe have to sign some things in this build.\n\nPlease enter your signing details.\n\n' + def password = console.readPassword('GnuPG Private Key Password: ') + + allprojects { ext.'signing.password' = password } + + console.printf '\nThanks.\n\n' + } + } } task javadocAll(type: Javadoc) { @@ -171,174 +186,6 @@ subprojects { } } -project(':core') { - description = """\ -Smack core components.""" - - configurations { - compression - dns - } - dependencies { - compile 'xpp3:xpp3:1.1.4c' - testCompile 'junit:junit:4.+' - testCompile 'xmlunit:xmlunit:1.5' - testCompile 'org.powermock:powermock-module-junit4:1.5.+' - testCompile 'org.powermock:powermock-api-mockito:1.5.+' - testCompile 'com.jamesmurty.utils:java-xmlbuilder:0.6+' - } - jar { - manifest { - attributes('Bundle-SymbolicName': project.group) - from sharedManifest - } - } - task compressionJar(type: Jar) { - appendix += '-compression' - dependsOn classes - from sourceSets.main.output - include('org/jivesoftware/smack/compression/**') - } - task dnsJar(type: Jar) { - appendix += '-dns' - dependsOn classes - from sourceSets.main.output - include('org/jivesoftware/smack/util/dns/**') - include('org/jivesoftware/smack/util/DNSUtil.class') - } - artifacts { - compression compressionJar - dns dnsJar - } - task createVersionResource(type: CreateFileTask) { - fileContent = version - outputFile = new File(projectDir, 'src/main/resources/org.jivesoftware.smack/version') - } - compileJava.dependsOn(createVersionResource) -} - -project(':compression-jzlib') { - description = """\ -Compression with jzlib -Allow to compress the XMPP stream with help of jzlib.""" - - dependencies { - compile project(path: ':core', configuration: 'compression') - compile 'com.jcraft:jzlib:1.1.3' - } -} - -project(':resolver-dnsjava') { - description = """\ -DNS SRV with dnsjava -Use dnsjava for DNS SRV lookups. For platforms that don't provide the -javax.naming API (e.g. Android).""" - - dependencies { - compile project(path: ':core', configuration: 'dns') - compile 'dnsjava:dnsjava:2.1.1' - } -} - -project(':resolver-javax') { - description = """\ -DNS SRV with Java7 -Use javax.naming for DNS SRV lookups. The javax.naming API is availabe in JavaSE -since Java7.""" - - dependencies { - compile project(path: ':core', configuration: 'dns') - } -} - -project(':tcp') { - description = """\ -Smack for standard XMPP connections over TCP.""" - - dependencies { - compile project(':core') - testCompile project(':core').sourceSets.test.runtimeClasspath - } -} - -project(':bosh') { - description = """\ -Smack BOSH API. -This API is considered beta quality.""" - - dependencies { - compile project(':core') - compile 'org.igniterealtime.jbosh:jbosh:0.7.0' - } -} - -// Now the "real" Smack sub-projects -// Note that test dependencies (junit, …) are interfered from the sourceSet.test of the core sub-project - -project(':extensions') { - description = """\ -Smack extensions. -Classes and methods that implement support for the various XMPP XEPs -(Multi-User Chat, PubSub, …) and other XMPP extensions.""" - - dependencies { - compile project(':core') - testCompile project(':core').sourceSets.test.runtimeClasspath - } -} - -project(':experimental') { - description = """\ -Smack experimental extensions. -Classes and methods for XEPs that are in status 'experimental' or that should -otherwise carefully considered for deployment. The API may change even -between patch versions.""" - - dependencies { - compile project(':core') - compile project(':extensions') - testCompile project(':core').sourceSets.test.runtimeClasspath - } -} - -project(':legacy') { - description = """\ -Smack legacy extensions. -Usually XEPs in the state 'retracted', 'rejected', 'deprecated', -'obsolete' or in a long standing 'deferred' state.""" - - dependencies { - compile project(':core') - compile project(':extensions') - testCompile project(':core').sourceSets.test.runtimeClasspath - } -} - -project(':debug') { - description = """\ -Smack GUI debugger. -Inspect the exchanged XMPP stanzas.""" - - dependencies { - compile project(':core') - testCompile project(':core').sourceSets.test.runtimeClasspath - } -} - -project(':jingle') { - description = """\ -Smack Jingle API. -Warning: This API is beta, outdated and currenlty unmaintained.""" - - dependencies { - compile project(':core') - compile project(':extensions') - compile 'javax.media:jmf:2.1.1e' - compile files('libs/jspeex-0.9.7-jfcom.jar', 'libs/jstun.jar', 'libs/Speex.jar') - testCompile project(':core').sourceSets.test.runtimeClasspath - } -} - (subprojects - project(':core'))*.jar { manifest { attributes('Bundle-SymbolicName': project.group + '-' + appendix, @@ -359,33 +206,6 @@ subprojects*.uploadArchives { } } -import org.gradle.plugins.signing.Sign -gradle.taskGraph.whenReady { taskGraph -> - if (signingRequired && taskGraph.allTasks.any { it instanceof Sign }) { - // Use Java 6's console to read from the console (no good for a CI environment) - Console console = System.console() - console.printf '\n\nWe have to sign some things in this build.\n\nPlease enter your signing details.\n\n' - def password = console.readPassword('GnuPG Private Key Password: ') - - allprojects { ext.'signing.password' = password } - - console.printf '\nThanks.\n\n' - } -} - -class CreateFileTask extends DefaultTask { - @Input - String fileContent - - @OutputFile - File outputFile - - @TaskAction - def createFile() { - outputFile.text = fileContent - } -} - def getGitCommit() { def dotGit = new File("$projectDir/.git") if (!dotGit.isDirectory()) return 'non-git build' diff --git a/compression-jzlib/build.gradle b/compression-jzlib/build.gradle new file mode 100644 index 000000000..ec58f128a --- /dev/null +++ b/compression-jzlib/build.gradle @@ -0,0 +1,8 @@ +description = """\ +Compression with jzlib +Allow to compress the XMPP stream with help of jzlib.""" + +dependencies { + compile project(path: ':core', configuration: 'compression') + compile 'com.jcraft:jzlib:1.1.3' +} diff --git a/core/build.gradle b/core/build.gradle new file mode 100644 index 000000000..9d47b3495 --- /dev/null +++ b/core/build.gradle @@ -0,0 +1,55 @@ +description = """\ +Smack core components.""" + +configurations { + compression + dns +} +dependencies { + compile 'xpp3:xpp3:1.1.4c' + testCompile 'junit:junit:4.+' + testCompile 'xmlunit:xmlunit:1.5' + testCompile 'org.powermock:powermock-module-junit4:1.5.+' + testCompile 'org.powermock:powermock-api-mockito:1.5.+' + testCompile 'com.jamesmurty.utils:java-xmlbuilder:0.6+' +} +jar { + manifest { + attributes('Bundle-SymbolicName': project.group) + from sharedManifest + } +} +task compressionJar(type: Jar) { + appendix += '-compression' + dependsOn classes + from sourceSets.main.output + include('org/jivesoftware/smack/compression/**') +} +task dnsJar(type: Jar) { + appendix += '-dns' + dependsOn classes + from sourceSets.main.output + include('org/jivesoftware/smack/util/dns/**') + include('org/jivesoftware/smack/util/DNSUtil.class') +} +artifacts { + compression compressionJar + dns dnsJar +} +class CreateFileTask extends DefaultTask { + @Input + String fileContent + + @OutputFile + File outputFile + + @TaskAction + def createFile() { + outputFile.text = fileContent + } +} +task createVersionResource(type: CreateFileTask) { + fileContent = version + outputFile = new File(projectDir, 'src/main/resources/org.jivesoftware.smack/version') +} +compileJava.dependsOn(createVersionResource) diff --git a/debug/build.gradle b/debug/build.gradle new file mode 100644 index 000000000..a2f1de2f0 --- /dev/null +++ b/debug/build.gradle @@ -0,0 +1,8 @@ +description = """\ +Smack GUI debugger. +Inspect the exchanged XMPP stanzas.""" + +dependencies { + compile project(':core') + testCompile project(':core').sourceSets.test.runtimeClasspath +} diff --git a/experimental/build.gradle b/experimental/build.gradle new file mode 100644 index 000000000..b1406b676 --- /dev/null +++ b/experimental/build.gradle @@ -0,0 +1,11 @@ +description = """\ +Smack experimental extensions. +Classes and methods for XEPs that are in status 'experimental' or that should +otherwise carefully considered for deployment. The API may change even +between patch versions.""" + +dependencies { + compile project(':core') + compile project(':extensions') + testCompile project(':core').sourceSets.test.runtimeClasspath +} diff --git a/extensions/build.gradle b/extensions/build.gradle new file mode 100644 index 000000000..a9c002822 --- /dev/null +++ b/extensions/build.gradle @@ -0,0 +1,11 @@ +description = """\ +Smack extensions. +Classes and methods that implement support for the various XMPP XEPs +(Multi-User Chat, PubSub, …) and other XMPP extensions.""" + +// Note that the test dependencies (junit, …) are inferred from the +// sourceSet.test of the core subproject +dependencies { + compile project(':core') + testCompile project(':core').sourceSets.test.runtimeClasspath +} diff --git a/jingle/build.gradle b/jingle/build.gradle new file mode 100644 index 000000000..5ecd2cf8e --- /dev/null +++ b/jingle/build.gradle @@ -0,0 +1,11 @@ +description = """\ +Smack Jingle API. +Warning: This API is beta, outdated and currenlty unmaintained.""" + +dependencies { + compile project(':core') + compile project(':extensions') + compile 'javax.media:jmf:2.1.1e' + compile files('libs/jspeex-0.9.7-jfcom.jar', 'libs/jstun.jar', 'libs/Speex.jar') + testCompile project(':core').sourceSets.test.runtimeClasspath +} diff --git a/legacy/build.gradle b/legacy/build.gradle new file mode 100644 index 000000000..b4ed05c12 --- /dev/null +++ b/legacy/build.gradle @@ -0,0 +1,10 @@ +description = """\ +Smack legacy extensions. +Usually XEPs in the state 'retracted', 'rejected', 'deprecated', +'obsolete' or in a long standing 'deferred' state.""" + +dependencies { + compile project(':core') + compile project(':extensions') + testCompile project(':core').sourceSets.test.runtimeClasspath +} diff --git a/resolver-dnsjava/build.gradle b/resolver-dnsjava/build.gradle new file mode 100644 index 000000000..d8ee76cb7 --- /dev/null +++ b/resolver-dnsjava/build.gradle @@ -0,0 +1,9 @@ +description = """\ +DNS SRV with dnsjava +Use dnsjava for DNS SRV lookups. For platforms that don't provide the +javax.naming API (e.g. Android).""" + +dependencies { + compile project(path: ':core', configuration: 'dns') + compile 'dnsjava:dnsjava:2.1.1' +} diff --git a/resolver-javax/build.gradle b/resolver-javax/build.gradle new file mode 100644 index 000000000..60b833c38 --- /dev/null +++ b/resolver-javax/build.gradle @@ -0,0 +1,8 @@ +description = """\ +DNS SRV with Java7 +Use javax.naming for DNS SRV lookups. The javax.naming API is availabe in JavaSE +since Java7.""" + +dependencies { + compile project(path: ':core', configuration: 'dns') +} diff --git a/tcp/build.gradle b/tcp/build.gradle new file mode 100644 index 000000000..fa628d4a5 --- /dev/null +++ b/tcp/build.gradle @@ -0,0 +1,7 @@ +description = """\ +Smack for standard XMPP connections over TCP.""" + +dependencies { + compile project(':core') + testCompile project(':core').sourceSets.test.runtimeClasspath +}