From 0eae03025ec0f975e6bdb00a390b29570b391c6b Mon Sep 17 00:00:00 2001 From: Gunnar Hillert Date: Sun, 15 Apr 2012 15:50:24 -0400 Subject: [PATCH] INT-2512 - Upgrade to Gradle 1.0-rc-1 * Upgrade Gradle Wrapper * Remove deprecation warnings * Fix Sonar Build Depends on: https://github.com/SpringSource/gradle-plugins/pull/1 INT-2512 - Improve declaration of optional and provided dependencies INT-2512 - Reverted Bundlor Plugin Version Number. With that change the Spring Integration specific part of the code changes is decoupled from the Bundlor pull request: https://github.com/SpringSource/gradle-plugins/pull/1 . Once the Bundlor plugin is updated and released, I can bump the version number (Only then, though all deprecation warnings will be gone). INT-2512 - Code Review **Do we really want to add mavenlocal() permanently? I usually add it locally when I need it** Sorry my bad. Forgot to remove my local addition. **snapshot?** The Bundlor plugin relies on Snapshot releases for the Gradle plugin (I reverted the DocBook version). **mixed leading tabs and spaces** Removed every single leading space. Unfortunately, there were lots of spaces. Took a while. I hope this looks much better. **Why are we removing this? Don't we need a local install any more?** The Maven install logic is now handled by the customized/extended "maven" plugin in **publish-maven.gradle**. This is how Chris has set it up for the Spring Framework. INT-2512 - Remove mavenLocal() Change 'build/jacoco.exec' to '${buildDir.name}/jacoco.exec'. --- .wrapper/gradle-wrapper.jar | Bin 41363 -> 39770 bytes .wrapper/gradle-wrapper.properties | 4 +- build.gradle | 1879 +++++++++++++--------------- gradlew | 2 +- publish-maven.gradle | 76 ++ 5 files changed, 981 insertions(+), 980 deletions(-) create mode 100644 publish-maven.gradle diff --git a/.wrapper/gradle-wrapper.jar b/.wrapper/gradle-wrapper.jar index aba41497864a1d225de9db07b446eeaf47b1a9ed..81dcde627d5cfbc12c96dc5113aac79b66a15118 100644 GIT binary patch literal 39770 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 p)=ba`0{90#@FfHTe{sBS`>Jb0{ diff --git a/.wrapper/gradle-wrapper.properties b/.wrapper/gradle-wrapper.properties index 43e747c047..e583873a47 100644 --- a/.wrapper/gradle-wrapper.properties +++ b/.wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Jan 12 12:49:02 CET 2012 +#Sat Apr 14 14:52:58 EDT 2012 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://repo.gradle.org/gradle/distributions-snapshots/gradle-1.0-milestone-8-20120112000036+0100-bin.zip +distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-rc-1-bin.zip diff --git a/build.gradle b/build.gradle index 77c9d2b6e1..d46829ee89 100644 --- a/build.gradle +++ b/build.gradle @@ -4,1139 +4,1064 @@ apply plugin: 'base' apply plugin: 'idea' buildscript { - repositories { - maven { url 'https://repo.springsource.org/plugins-snapshot' } - } - dependencies { - classpath 'org.springframework.build.gradle:bundlor-plugin:0.1.2-SNAPSHOT' - classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.1.3' - } + repositories { + maven { url 'https://repo.springsource.org/plugins-snapshot' } + } + dependencies { + classpath 'org.springframework.build.gradle:bundlor-plugin:0.1.2-SNAPSHOT' + classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.1.3' + } } allprojects { - group = 'org.springframework.integration' + group = 'org.springframework.integration' - repositories { - maven { url 'http://repo.springsource.org/libs-milestone' } - maven { url 'http://repo.springsource.org/plugins-release' } // for bundlor - } + repositories { + maven { url 'http://repo.springsource.org/libs-milestone' } + maven { url 'http://repo.springsource.org/plugins-release' } // for bundlor + } } subprojects { subproject -> - apply plugin: 'java' - apply plugin: 'maven' - apply plugin: 'eclipse' - apply plugin: 'idea' - apply plugin: 'bundlor' + apply plugin: 'java' + apply from: "${rootProject.projectDir}/publish-maven.gradle" + apply plugin: 'eclipse' + apply plugin: 'idea' + apply plugin: 'bundlor' - // ensure JDK 5 compatibility (GRADLE-18; INT-1578) - sourceCompatibility=1.5 - targetCompatibility=1.5 + // ensure JDK 5 compatibility (GRADLE-18; INT-1578) + sourceCompatibility=1.5 + targetCompatibility=1.5 - aspectjVersion = '1.6.8' - cglibVersion = '2.2' - commonsNetVersion = '3.0.1' - easymockVersion = '2.3' - groovyVersion = '1.8.5' - jacksonVersion = '1.9.2' - javaxActivationVersion = '1.1.1' - junitVersion = '4.8.2' - log4jVersion = '1.2.12' - mockitoVersion = '1.9.0' - springVersion = '3.0.7.RELEASE' - springAmqpVersion = '1.0.0.RELEASE' - springDataMongoVersion = '1.0.0.RELEASE' - springDataRedisVersion = '1.0.0.RELEASE' - springGemfireVersion = '1.1.0.RELEASE' - springSecurityVersion = '3.1.0.RELEASE' - springSocialTwitterVersion = '1.0.1.RELEASE' - springWsVersion = '2.0.3.RELEASE' + ext { + aspectjVersion = '1.6.8' + cglibVersion = '2.2' + commonsNetVersion = '3.0.1' + easymockVersion = '2.3' + groovyVersion = '1.8.5' + jacksonVersion = '1.9.2' + javaxActivationVersion = '1.1.1' + junitVersion = '4.8.2' + log4jVersion = '1.2.12' + mockitoVersion = '1.9.0' + springVersion = '3.0.7.RELEASE' + springAmqpVersion = '1.0.0.RELEASE' + springDataMongoVersion = '1.0.0.RELEASE' + springDataRedisVersion = '1.0.0.RELEASE' + springGemfireVersion = '1.1.0.RELEASE' + springSecurityVersion = '3.1.0.RELEASE' + springSocialTwitterVersion = '1.0.1.RELEASE' + springWsVersion = '2.0.3.RELEASE' + } - eclipse { - project { - natures += 'org.springframework.ide.eclipse.core.springnature' - } - } + eclipse { + project { + natures += 'org.springframework.ide.eclipse.core.springnature' + } + } - sourceSets { - test { - resources { - srcDirs = ['src/test/resources', 'src/test/java'] - } - } - } + sourceSets { + test { + resources { + srcDirs = ['src/test/resources', 'src/test/java'] + } + } + } - // See http://www.gradle.org/docs/current/userguide/dependency_management.html#sub:configurations - // and http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ConfigurationContainer.html - configurations { - jacoco //Configuration Group used by Sonar to provide Code Coverage using JaCoCo - } + // See http://www.gradle.org/docs/current/userguide/dependency_management.html#sub:configurations + // and http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ConfigurationContainer.html + configurations { + jacoco //Configuration Group used by Sonar to provide Code Coverage using JaCoCo + } - // dependencies that are common across all java projects - dependencies { - testCompile "cglib:cglib-nodep:$cglibVersion" - testCompile "junit:junit-dep:$junitVersion" - testCompile "log4j:log4j:$log4jVersion" - testCompile "org.easymock:easymock:$easymockVersion" - testCompile "org.easymock:easymockclassextension:$easymockVersion" - testCompile "org.hamcrest:hamcrest-all:1.1" - testCompile "org.mockito:mockito-all:$mockitoVersion" - testCompile "org.springframework:spring-test:$springVersion" - jacoco group: "org.jacoco", name: "org.jacoco.agent", version: "0.5.3.201107060350", classifier: "runtime" - } + // dependencies that are common across all java projects + dependencies { + testCompile "cglib:cglib-nodep:$cglibVersion" + testCompile "junit:junit-dep:$junitVersion" + testCompile "log4j:log4j:$log4jVersion" + testCompile "org.easymock:easymock:$easymockVersion" + testCompile "org.easymock:easymockclassextension:$easymockVersion" + testCompile "org.hamcrest:hamcrest-all:1.1" + testCompile "org.mockito:mockito-all:$mockitoVersion" + testCompile "org.springframework:spring-test:$springVersion" + jacoco group: "org.jacoco", name: "org.jacoco.agent", version: "0.5.6.201201232323", classifier: "runtime" + } - // enable all compiler warnings; individual projects may customize further - xLintArg = '-Xlint:all' - [compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg] + // enable all compiler warnings; individual projects may customize further + ext.xLintArg = '-Xlint:all' + [compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg] - test { - // suppress all console output during testing unless running `gradle -i` - logging.captureStandardOutput(LogLevel.INFO) - jvmArgs "-javaagent:${configurations.jacoco.asPath}=destfile=${buildDir}/jacoco.exec,includes=org.springframework.integration.*" - } + test { + // suppress all console output during testing unless running `gradle -i` + logging.captureStandardOutput(LogLevel.INFO) + jvmArgs "-javaagent:${configurations.jacoco.asPath}=destfile=${buildDir}/jacoco.exec,includes=org.springframework.integration.*" + } - bundlor { - enabled = true - failOnWarnings = true - bundleManifestVersion = 2 - bundleVendor = 'SpringSource' - bundleName = project.description - bundleVersion = project.version - importTemplate = [ - 'org.apache.log4j.*;version="['+log4jVersion+'], 2.0.0)"' - ] - } + bundlor { + enabled = true + failOnWarnings = true + bundleManifestVersion = 2 + bundleVendor = 'SpringSource' + bundleName = project.description + bundleVersion = project.version + importTemplate = [ + 'org.apache.log4j.*;version="['+log4jVersion+'], 2.0.0)"' + ] + } - task sourcesJar(type: Jar) { - classifier = 'sources' - from sourceSets.main.allJava - } + task sourcesJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.allJava + } - task javadocJar(type: Jar) { - classifier = 'javadoc' - from javadoc - } + task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc + } - artifacts { - archives sourcesJar - archives javadocJar - } + artifacts { + archives sourcesJar + archives javadocJar + } - install { - repositories.mavenInstaller { - customizePom(pom, subproject) - } - } } project('spring-integration-amqp') { - description = 'Spring Integration AMQP Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-tx:$springVersion" - compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion") { optional = true } - compile("org.springframework.amqp:spring-rabbit:$springAmqpVersion") { - exclude group: 'org.springframework', module: 'spring-aop' - exclude group: 'org.springframework', module: 'spring-beans' - exclude group: 'org.springframework', module: 'spring-context' - exclude group: 'org.springframework', module: 'spring-core' - exclude group: 'org.springframework', module: 'spring-oxm' - exclude group: 'org.springframework', module: 'spring-tx' - } - testCompile project(":spring-integration-stream") - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.amqp' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.apache.commons.lang.*;version="[2.5.0, 3.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.transaction.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.springframework.amqp.*;version="[1.0.0, 2.0.0)"', - 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration AMQP Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-tx:$springVersion" + compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion", optional) + compile("org.springframework.amqp:spring-rabbit:$springAmqpVersion") { + exclude group: 'org.springframework', module: 'spring-aop' + exclude group: 'org.springframework', module: 'spring-beans' + exclude group: 'org.springframework', module: 'spring-context' + exclude group: 'org.springframework', module: 'spring-core' + exclude group: 'org.springframework', module: 'spring-oxm' + exclude group: 'org.springframework', module: 'spring-tx' + } + testCompile project(":spring-integration-stream") + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.amqp' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.apache.commons.lang.*;version="[2.5.0, 3.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.transaction.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.springframework.amqp.*;version="[1.0.0, 2.0.0)"', + 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-core') { - description = 'Spring Integration Core' - dependencies { - compile "org.springframework:spring-aop:$springVersion" - compile "org.springframework:spring-context:$springVersion" - compile("org.springframework:spring-tx:$springVersion") { optional = true } - compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion") { optional = true } - testCompile "org.aspectj:aspectjrt:$aspectjVersion" - testCompile "org.aspectj:aspectjweaver:$aspectjVersion" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration' - importTemplate += [ - 'org.springframework.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.transaction;version="[3.0.5, 4.0.0)";resolution:=optional', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', - 'org.codehaus.jackson.*;version="[1.0.0, 2.0.0)";resolution:=optional', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Core' + dependencies { + compile "org.springframework:spring-aop:$springVersion" + compile "org.springframework:spring-context:$springVersion" + compile("org.springframework:spring-tx:$springVersion", optional) + compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion", optional) + testCompile "org.aspectj:aspectjrt:$aspectjVersion" + testCompile "org.aspectj:aspectjweaver:$aspectjVersion" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration' + importTemplate += [ + 'org.springframework.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.transaction;version="[3.0.5, 4.0.0)";resolution:=optional', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', + 'org.codehaus.jackson.*;version="[1.0.0, 2.0.0)";resolution:=optional', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-event') { - description = 'Spring Integration ApplicationEvent Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context:$springVersion" - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.event' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration ApplicationEvent Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context:$springVersion" + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.event' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-feed') { - description = 'Spring Integration RSS Feed Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context:$springVersion" - compile("net.java.dev.rome:rome-fetcher:1.0.0") { - exclude group: 'junit', module: 'junit' - } - compile "net.java.dev.rome:rome:1.0.0" - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.feed' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.apache.commons.lang.*;version="[2.5.0, 3.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'com.sun.syndication.*;version="[1.0.0, 2.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration RSS Feed Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context:$springVersion" + compile("net.java.dev.rome:rome-fetcher:1.0.0") { + exclude group: 'junit', module: 'junit' + } + compile "net.java.dev.rome:rome:1.0.0" + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.feed' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.apache.commons.lang.*;version="[2.5.0, 3.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'com.sun.syndication.*;version="[1.0.0, 2.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-file') { - description = 'Spring Integration File Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context:$springVersion" - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.file' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.transaction.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.xml;version="[3.0.5, 4.0.0)"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration File Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context:$springVersion" + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.file' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.transaction.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.xml;version="[3.0.5, 4.0.0)"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-ftp') { - description = 'Spring Integration FTP Support' - dependencies { - compile project(":spring-integration-file") - compile "commons-net:commons-net:$commonsNetVersion" - compile "org.springframework:spring-context-support:$springVersion" - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.ftp' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.apache.commons.net.*;version="[2.0.0, 3.1.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration FTP Support' + dependencies { + compile project(":spring-integration-file") + compile "commons-net:commons-net:$commonsNetVersion" + compile "org.springframework:spring-context-support:$springVersion" + compile("javax.activation:activation:$javaxActivationVersion", optional) + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.ftp' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.apache.commons.net.*;version="[2.0.0, 3.1.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-gemfire') { - description = 'Spring Integration GemFire Support' - test { - forkEvery = 1 - systemProperties['gemfire.disableShutdownHook'] = 'true' - } - dependencies { - compile project(":spring-integration-core") - compile ("org.springframework.data:spring-data-gemfire:$springGemfireVersion") { - exclude group: 'org.springframework', module: 'spring-context-support' - exclude group: 'org.springframework', module: 'spring-core' - exclude group: 'org.springframework', module: 'spring-tx' - } - compile "org.springframework:spring-tx:$springVersion" - testCompile project(":spring-integration-stream") - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.gemfire' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.data.gemfire.*;version="[1.0.1, 2.0.0)"', - 'com.gemstone.gemfire.*;version="[6.5.1, 7.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration GemFire Support' + test { + forkEvery = 1 + systemProperties['gemfire.disableShutdownHook'] = 'true' + } + dependencies { + compile project(":spring-integration-core") + compile ("org.springframework.data:spring-data-gemfire:$springGemfireVersion") { + exclude group: 'org.springframework', module: 'spring-context-support' + exclude group: 'org.springframework', module: 'spring-core' + exclude group: 'org.springframework', module: 'spring-tx' + } + compile "org.springframework:spring-tx:$springVersion" + testCompile project(":spring-integration-stream") + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.gemfire' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.data.gemfire.*;version="[1.0.1, 2.0.0)"', + 'com.gemstone.gemfire.*;version="[6.5.1, 7.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-groovy') { - description = 'Spring Integration Groovy Support' - dependencies { - compile project(":spring-integration-core") - compile project(":spring-integration-scripting") - compile "org.codehaus.groovy:groovy-all:$groovyVersion" - compile "org.springframework:spring-context-support:$springVersion" - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.groovy' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.*;version="[3.0.5, 4.0.0)"', - 'groovy.*;version="[1.7.3, 2.0.0)"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Groovy Support' + dependencies { + compile project(":spring-integration-core") + compile project(":spring-integration-scripting") + compile "org.codehaus.groovy:groovy-all:$groovyVersion" + compile "org.springframework:spring-context-support:$springVersion" + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.groovy' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.*;version="[3.0.5, 4.0.0)"', + 'groovy.*;version="[1.7.3, 2.0.0)"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-http') { - description = 'Spring Integration HTTP Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-webmvc:$springVersion" - compile("javax.servlet:servlet-api:2.4") { provided = true } - compile("commons-httpclient:commons-httpclient:3.1") { - optional = true - exclude group: 'junit', module: 'junit' - } - compile("net.java.dev.rome:rome-fetcher:1.0.0") { - optional = true - exclude group: 'junit', module: 'junit' - } - compile ("net.java.dev.rome:rome:1.0.0") { optional = true } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.http' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.http.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.validation.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.web.*;version="[3.0.5, 4.0.0)";resolution:=optional', - 'org.apache.commons.httpclient.*;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'javax.servlet.*;version="[2.4.0, 3.0.0)";resolution:=optional', - 'javax.xml.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration HTTP Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-webmvc:$springVersion" + compile("javax.servlet:servlet-api:2.4", provided) + compile("commons-httpclient:commons-httpclient:3.1") { dep -> + optional dep + exclude group: 'junit', module: 'junit' + } + compile("net.java.dev.rome:rome-fetcher:1.0.0") { dep -> + optional dep + exclude group: 'junit', module: 'junit' + } + compile ("net.java.dev.rome:rome:1.0.0", optional) + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.http' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.http.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.validation.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.web.*;version="[3.0.5, 4.0.0)";resolution:=optional', + 'org.apache.commons.httpclient.*;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'javax.servlet.*;version="[2.4.0, 3.0.0)";resolution:=optional', + 'javax.xml.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-ip') { - description = 'Spring Integration IP Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context:$springVersion" - runtime project(":spring-integration-stream") - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.ip' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.springframework.jmx.*;version="[3.0.5, 4.0.0)"', - 'org.w3c.dom.*;version="0"', - 'javax.net.*;version="0"' - ] - } + description = 'Spring Integration IP Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context:$springVersion" + runtime project(":spring-integration-stream") + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.ip' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.springframework.jmx.*;version="[3.0.5, 4.0.0)"', + 'org.w3c.dom.*;version="0"', + 'javax.net.*;version="0"' + ] + } } project('spring-integration-jdbc') { - description = 'Spring Integration JDBC Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-aop:$springVersion" - compile "org.springframework:spring-jdbc:$springVersion" - compile "org.springframework:spring-tx:$springVersion" - testCompile project(":spring-integration-test") - testCompile "com.h2database:h2:1.3.160" - testCompile "hsqldb:hsqldb:1.8.0.10" - testCompile "org.apache.derby:derby:10.5.3.0_1" - testCompile "org.aspectj:aspectjrt:$aspectjVersion" - testCompile "org.aspectj:aspectjweaver:$aspectjVersion" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.jdbc' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.*;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', - 'javax.sql.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration JDBC Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-aop:$springVersion" + compile "org.springframework:spring-jdbc:$springVersion" + compile "org.springframework:spring-tx:$springVersion" + testCompile project(":spring-integration-test") + testCompile "com.h2database:h2:1.3.160" + testCompile "hsqldb:hsqldb:1.8.0.10" + testCompile "org.apache.derby:derby:10.5.3.0_1" + testCompile "org.aspectj:aspectjrt:$aspectjVersion" + testCompile "org.aspectj:aspectjweaver:$aspectjVersion" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.jdbc' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.*;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', + 'javax.sql.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } - // suppress derby localization jar path warnings during test compilation - compileTestJava.options.compilerArgs = ["${xLintArg},-path"] + // suppress derby localization jar path warnings during test compilation + compileTestJava.options.compilerArgs = ["${xLintArg},-path"] } project('spring-integration-jms') { - description = 'Spring Integration JMS Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-jms:$springVersion" - compile "org.springframework:spring-tx:$springVersion" - compile ("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1") { provided = true } - testCompile project(":spring-integration-test") - testCompile ("org.apache.activemq:activemq-core:5.3.0") { - exclude group: 'org.springframework', module: 'spring-context' - } - - testCompile "org.springframework:spring-oxm:$springVersion" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.jms' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.jms.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.transaction.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'javax.jms;version="[1.1.0, 2.0.0)";resolution:=optional', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration JMS Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-jms:$springVersion" + compile "org.springframework:spring-tx:$springVersion" + compile ("org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1", provided) + testCompile project(":spring-integration-test") + testCompile ("org.apache.activemq:activemq-core:5.3.0") { + exclude group: 'org.springframework', module: 'spring-context' + } + testCompile "org.springframework:spring-oxm:$springVersion" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.jms' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.jms.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.transaction.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'javax.jms;version="[1.1.0, 2.0.0)";resolution:=optional', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-jmx') { - description = 'Spring Integration JMX Support' - dependencies { - compile project(":spring-integration-core") - compile "org.aspectj:aspectjrt:$aspectjVersion" - compile "org.aspectj:aspectjweaver:$aspectjVersion" - compile "org.springframework:spring-context:$springVersion" - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.jmx' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.*;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', - 'javax.management.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration JMX Support' + dependencies { + compile project(":spring-integration-core") + compile "org.aspectj:aspectjrt:$aspectjVersion" + compile "org.aspectj:aspectjweaver:$aspectjVersion" + compile "org.springframework:spring-context:$springVersion" + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.jmx' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.*;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', + 'javax.management.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-mail') { - description = 'Spring Integration Mail Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context-support:$springVersion" - compile("javax.mail:mail:1.4.4") { provided = true } - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.mail' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.mail.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'javax.mail.*;version="[1.4.0, 2.0.0)"', - 'com.sun.mail.imap.*;version="[1.4.0, 2.0.0)";resolution:=optional', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Mail Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context-support:$springVersion" + compile("javax.mail:mail:1.4.4", provided) + compile("javax.activation:activation:$javaxActivationVersion", optional) + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.mail' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.mail.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'javax.mail.*;version="[1.4.0, 2.0.0)"', + 'com.sun.mail.imap.*;version="[1.4.0, 2.0.0)";resolution:=optional', + 'org.w3c.dom.*;version="0"' + ] + } - // suppress javax.activation path warnings - [compileJava,compileTestJava]*.options*.compilerArgs = ["${xLintArg},-path"] + // suppress javax.activation path warnings + [compileJava,compileTestJava]*.options*.compilerArgs = ["${xLintArg},-path"] } project('spring-integration-mongodb') { - description = 'Spring Integration MongoDB Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-tx:$springVersion" - compile("org.springframework.data:spring-data-mongodb:$springDataMongoVersion") { - exclude group: 'org.springframework', module: 'spring-aop' - exclude group: 'org.springframework', module: 'spring-asm' - exclude group: 'org.springframework', module: 'spring-beans' - exclude group: 'org.springframework', module: 'spring-context' - exclude group: 'org.springframework', module: 'spring-core' - exclude group: 'org.springframework', module: 'spring-expression' - exclude group: 'org.springframework', module: 'spring-tx' - } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.mongodb' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.springframework.jmx.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.data.mongodb.*;version="[1.0.0, 2.0.0)"', - 'org.springframework.data.mapping.*;version="[1.0.0, 2.0.0)"', - 'org.springframework.data.annotation.*;version="[1.0.0, 2.0.0)"', - 'com.mongodb.*;version="[0.0.0, 2.5.0]"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration MongoDB Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-tx:$springVersion" + compile("org.springframework.data:spring-data-mongodb:$springDataMongoVersion") { + exclude group: 'org.springframework', module: 'spring-aop' + exclude group: 'org.springframework', module: 'spring-asm' + exclude group: 'org.springframework', module: 'spring-beans' + exclude group: 'org.springframework', module: 'spring-context' + exclude group: 'org.springframework', module: 'spring-core' + exclude group: 'org.springframework', module: 'spring-expression' + exclude group: 'org.springframework', module: 'spring-tx' + } + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.mongodb' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.springframework.jmx.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.data.mongodb.*;version="[1.0.0, 2.0.0)"', + 'org.springframework.data.mapping.*;version="[1.0.0, 2.0.0)"', + 'org.springframework.data.annotation.*;version="[1.0.0, 2.0.0)"', + 'com.mongodb.*;version="[0.0.0, 2.5.0]"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-redis') { - description = 'Spring Integration Redis Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-tx:$springVersion" - compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion") - compile("org.codehaus.jackson:jackson-core-asl:$jacksonVersion") - compile ("org.springframework.data:spring-data-redis:$springDataRedisVersion") { - exclude group: 'org.springframework', module: 'spring-core' - exclude group: 'org.springframework', module: 'spring-context-support' - exclude group: 'org.springframework', module: 'spring-beans' - exclude group: 'org.springframework', module: 'spring-tx' - } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.redis' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.springframework.data.redis.*;version="[1.0.0, 2.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Redis Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-tx:$springVersion" + compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion") + compile("org.codehaus.jackson:jackson-core-asl:$jacksonVersion") + compile ("org.springframework.data:spring-data-redis:$springDataRedisVersion") { + exclude group: 'org.springframework', module: 'spring-core' + exclude group: 'org.springframework', module: 'spring-context-support' + exclude group: 'org.springframework', module: 'spring-beans' + exclude group: 'org.springframework', module: 'spring-tx' + } + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.redis' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.springframework.data.redis.*;version="[1.0.0, 2.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-rmi') { - description = 'Spring Integration RMI Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-aop:$springVersion" - compile "org.springframework:spring-context:$springVersion" - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.rmi' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.remoting.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration RMI Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-aop:$springVersion" + compile "org.springframework:spring-context:$springVersion" + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.rmi' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.remoting.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.w3c.dom.*;version="0"' + ] + } - // suppress deprecation warnings (@SuppressWarnings("deprecation") is not enough for javac) - compileJava.options.compilerArgs = ["${xLintArg},-deprecation"] + // suppress deprecation warnings (@SuppressWarnings("deprecation") is not enough for javac) + compileJava.options.compilerArgs = ["${xLintArg},-deprecation"] } project('spring-integration-scripting') { - description = 'Spring Integration Scripting Support' - dependencies { - compile project(":spring-integration-core") - testCompile project(":spring-integration-test") - testCompile("org.jruby:jruby:1.6.3") - testCompile("org.codehaus.groovy:groovy-all:$groovyVersion") - testCompile("org.python:jython-standalone:2.5.2") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.scripting' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.*;version="[3.0.5, 4.0.0)"', - 'org.w3c.dom.*;version="0"', - 'javax.script.*;version="0"' - ] - } + description = 'Spring Integration Scripting Support' + dependencies { + compile project(":spring-integration-core") + testCompile project(":spring-integration-test") + testCompile("org.jruby:jruby:1.6.3") + testCompile("org.codehaus.groovy:groovy-all:$groovyVersion") + testCompile("org.python:jython-standalone:2.5.2") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.scripting' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.*;version="[3.0.5, 4.0.0)"', + 'org.w3c.dom.*;version="0"', + 'javax.script.*;version="0"' + ] + } } project('spring-integration-security') { - description = 'Spring Integration Security Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-aop:$springVersion" - compile "org.springframework:spring-tx:$springVersion" - compile("org.springframework.security:spring-security-core:$springSecurityVersion") { - exclude group: 'org.springframework', module: 'spring-support' - } - compile("org.springframework.security:spring-security-config:$springSecurityVersion") { - exclude group: 'org.springframework', module: 'spring-support' - } - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.security' - importTemplate += [ - 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.aop.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.core;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.security.*;version="[3.0.3, 4.0.0)"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Security Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-aop:$springVersion" + compile "org.springframework:spring-tx:$springVersion" + compile("org.springframework.security:spring-security-core:$springSecurityVersion") { + exclude group: 'org.springframework', module: 'spring-support' + } + compile("org.springframework.security:spring-security-config:$springSecurityVersion") { + exclude group: 'org.springframework', module: 'spring-support' + } + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.security' + importTemplate += [ + 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.aop.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.core;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.security.*;version="[3.0.3, 4.0.0)"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-sftp') { - description = 'Spring Integration SFTP Support' - dependencies { - compile project(":spring-integration-core") - compile project(":spring-integration-file") - compile project(":spring-integration-stream") - compile "com.jcraft:jsch:0.1.45" - compile "org.springframework:spring-context-support:$springVersion" - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.sftp' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'com.jcraft.jsch.*;version="[0.1.41, 0.1.50)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration SFTP Support' + dependencies { + compile project(":spring-integration-core") + compile project(":spring-integration-file") + compile project(":spring-integration-stream") + compile "com.jcraft:jsch:0.1.45" + compile "org.springframework:spring-context-support:$springVersion" + compile("javax.activation:activation:$javaxActivationVersion", optional) + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.sftp' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'com.jcraft.jsch.*;version="[0.1.41, 0.1.50)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-stream') { - description = 'Spring Integration Stream Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context:$springVersion" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.stream' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Stream Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context:$springVersion" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.stream' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-test') { - description = 'Spring Integration Test Support' - dependencies { - compile project(":spring-integration-core") - compile "junit:junit-dep:$junitVersion" - compile "org.mockito:mockito-all:$mockitoVersion" - compile "org.springframework:spring-context:$springVersion" - compile "org.springframework:spring-test:$springVersion" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.test' - importTemplate += [ - 'org.apache.tools.ant.*;version="[1.7.0, 2.0.0)"', - 'org.springframework.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'junit.framework.*;version="[4.6.0, 4.7.0)"', - 'org.junit.*;version="[4.6.0, 4.7.0)"', - 'org.mockito.*;version="[1.6.0, 2.0.0)"', - 'org.hamcrest.*;version="[1.1.0, 1.1.0]"', - 'org.objenesis.*;version="[1.0.0, 2.0.0)"' - ] - } + description = 'Spring Integration Test Support' + dependencies { + compile project(":spring-integration-core") + compile "junit:junit-dep:$junitVersion" + compile "org.mockito:mockito-all:$mockitoVersion" + compile "org.springframework:spring-context:$springVersion" + compile "org.springframework:spring-test:$springVersion" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.test' + importTemplate += [ + 'org.apache.tools.ant.*;version="[1.7.0, 2.0.0)"', + 'org.springframework.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'junit.framework.*;version="[4.6.0, 4.7.0)"', + 'org.junit.*;version="[4.6.0, 4.7.0)"', + 'org.mockito.*;version="[1.6.0, 2.0.0)"', + 'org.hamcrest.*;version="[1.1.0, 1.1.0]"', + 'org.objenesis.*;version="[1.0.0, 2.0.0)"' + ] + } } project('spring-integration-twitter') { - description = 'Spring Integration Twitter Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-web:$springVersion" - compile("org.springframework.social:spring-social-twitter:$springSocialTwitterVersion") { - exclude group: 'org.springframework', module: 'spring-aop' - exclude group: 'org.springframework', module: 'spring-asm' - exclude group: 'org.springframework', module: 'spring-beans' - exclude group: 'org.springframework', module: 'spring-context' - exclude group: 'org.springframework', module: 'spring-core' - exclude group: 'org.springframework', module: 'spring-expression' - exclude group: 'org.springframework', module: 'spring-web' - } - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - testCompile project(":spring-integration-test") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.twitter' - importTemplate += [ - 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.aop.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.social.*;version="[1.0.0, 1.1.0)"', - 'org.springframework.security.crypto.*;version="[3.1.0, 3.2.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration Twitter Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-web:$springVersion" + compile("org.springframework.social:spring-social-twitter:$springSocialTwitterVersion") { + exclude group: 'org.springframework', module: 'spring-aop' + exclude group: 'org.springframework', module: 'spring-asm' + exclude group: 'org.springframework', module: 'spring-beans' + exclude group: 'org.springframework', module: 'spring-context' + exclude group: 'org.springframework', module: 'spring-core' + exclude group: 'org.springframework', module: 'spring-expression' + exclude group: 'org.springframework', module: 'spring-web' + } + compile("javax.activation:activation:$javaxActivationVersion", optional) + testCompile project(":spring-integration-test") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.twitter' + importTemplate += [ + 'org.aopalliance.*;version="[1.0.0, 2.0.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.aop.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.social.*;version="[1.0.0, 1.1.0)"', + 'org.springframework.security.crypto.*;version="[3.1.0, 3.2.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } } project('spring-integration-ws') { - description = 'Spring Integration Web Services Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-expression:$springVersion" - compile "org.springframework:spring-oxm:$springVersion" - compile "org.springframework:spring-web:$springVersion" - compile ("org.springframework.ws:spring-ws-core:$springWsVersion") { - exclude group: 'org.springframework', module: 'spring-webmvc' - exclude group: 'org.springframework', module: 'spring-web' - exclude group: 'org.springframework', module: 'spring-context-support' - } - compile("javax.xml.soap:saaj-api:1.3") { - optional = true - exclude group: 'javax.activation', module: 'activation' - } - compile("com.sun.xml.messaging.saaj:saaj-impl:1.3") { optional = true } - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - testCompile project(":spring-integration-test") - testCompile "stax:stax-api:1.0.1" - testCompile "xstream:xstream:1.2.2" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.ws' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.core.convert;version="[3.0.5, 4.0.0)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.web.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.oxm;version="[1.5.9, 3.1.0)"', - 'org.springframework.ws.*;version="[2.0.0, 2.1.0)"', - 'org.springframework.xml.*;version="[1.5.9, 2.1.0)"', - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.w3c.dom.*;version="0"', - 'javax.xml.*;version="0"' - ] - } + description = 'Spring Integration Web Services Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-expression:$springVersion" + compile "org.springframework:spring-oxm:$springVersion" + compile "org.springframework:spring-web:$springVersion" + compile ("org.springframework.ws:spring-ws-core:$springWsVersion") { + exclude group: 'org.springframework', module: 'spring-webmvc' + exclude group: 'org.springframework', module: 'spring-web' + exclude group: 'org.springframework', module: 'spring-context-support' + } + compile("javax.xml.soap:saaj-api:1.3") { dep -> + optional dep + exclude group: 'javax.activation', module: 'activation' + } + compile("com.sun.xml.messaging.saaj:saaj-impl:1.3", optional) + compile("javax.activation:activation:$javaxActivationVersion", optional) + testCompile project(":spring-integration-test") + testCompile "stax:stax-api:1.0.1" + testCompile "xstream:xstream:1.2.2" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.ws' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.core.convert;version="[3.0.5, 4.0.0)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.scheduling.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.web.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.oxm;version="[1.5.9, 3.1.0)"', + 'org.springframework.ws.*;version="[2.0.0, 2.1.0)"', + 'org.springframework.xml.*;version="[1.5.9, 2.1.0)"', + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.w3c.dom.*;version="0"', + 'javax.xml.*;version="0"' + ] + } - // suppress saaj path warnings - [compileJava,compileTestJava]*.options*.compilerArgs = ["${xLintArg},-path"] + // suppress saaj path warnings + [compileJava,compileTestJava]*.options*.compilerArgs = ["${xLintArg},-path"] } project('spring-integration-xml') { - description = 'Spring Integration XML Support' - dependencies { - compile project(":spring-integration-core") - compile "org.springframework:spring-context:$springVersion" - compile "org.springframework:spring-oxm:$springVersion" - compile ("org.springframework.ws:spring-xml:$springWsVersion") { - exclude group: 'org.springframework', module: 'spring-beans' - exclude group: 'org.springframework', module: 'spring-core' - } - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - testCompile project(":spring-integration-test") - testCompile "xmlunit:xmlunit:1.3" - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.xml' - importTemplate += [ - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.oxm;version="[1.5.9, 3.1.0)";resolution:=optional', - 'org.springframework.xml.*;version="[1.5.9, 2.1.0)"', - 'org.apache.commons.logging.*;version="[1.0, 2.0)"', - 'org.w3c.dom.*;version="0"', - 'org.xml.sax.*;version="0"', - 'javax.xml.*;version="0"' - ] - } + description = 'Spring Integration XML Support' + dependencies { + compile project(":spring-integration-core") + compile "org.springframework:spring-context:$springVersion" + compile "org.springframework:spring-oxm:$springVersion" + compile ("org.springframework.ws:spring-xml:$springWsVersion") { + exclude group: 'org.springframework', module: 'spring-beans' + exclude group: 'org.springframework', module: 'spring-core' + } + compile("javax.activation:activation:$javaxActivationVersion", optional) + testCompile project(":spring-integration-test") + testCompile "xmlunit:xmlunit:1.3" + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.xml' + importTemplate += [ + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.expression.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.oxm;version="[1.5.9, 3.1.0)";resolution:=optional', + 'org.springframework.xml.*;version="[1.5.9, 2.1.0)"', + 'org.apache.commons.logging.*;version="[1.0, 2.0)"', + 'org.w3c.dom.*;version="0"', + 'org.xml.sax.*;version="0"', + 'javax.xml.*;version="0"' + ] + } } project('spring-integration-xmpp') { - description = 'Spring Integration XMPP Support' - dependencies { - compile project(":spring-integration-core") - compile("javax.activation:activation:$javaxActivationVersion") { optional = true } - compile "org.igniterealtime.smack:smack:3.2.1" - compile "org.igniterealtime.smack:smackx:3.2.1" - compile "org.springframework:spring-context-support:$springVersion" - testCompile project(":spring-integration-test") - testCompile project(":spring-integration-stream") - } - bundlor { - bundleSymbolicName = 'org.springframework.integration.xmpp' - importTemplate += [ - 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', - 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', - 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.context;version="[3.0.5, 4.0.0)"', - 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', - 'org.springframework.util;version="[3.0.5, 4.0.0)"', - 'org.jivesoftware.*;version="[3.0.5, 4.0.0)"', - 'javax.*;version="0"', - 'org.w3c.dom.*;version="0"' - ] - } + description = 'Spring Integration XMPP Support' + dependencies { + compile project(":spring-integration-core") + compile("javax.activation:activation:$javaxActivationVersion", optional) + compile "org.igniterealtime.smack:smack:3.2.1" + compile "org.igniterealtime.smack:smackx:3.2.1" + compile "org.springframework:spring-context-support:$springVersion" + testCompile project(":spring-integration-test") + testCompile project(":spring-integration-stream") + } + bundlor { + bundleSymbolicName = 'org.springframework.integration.xmpp' + importTemplate += [ + 'org.apache.commons.logging;version="[1.1.1, 2.0.0)"', + 'org.springframework.integration.*;version="[2.1.0, 2.1.1)"', + 'org.springframework.beans.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.context;version="[3.0.5, 4.0.0)"', + 'org.springframework.core.*;version="[3.0.5, 4.0.0)"', + 'org.springframework.util;version="[3.0.5, 4.0.0)"', + 'org.jivesoftware.*;version="[3.0.5, 4.0.0)"', + 'javax.*;version="0"', + 'org.w3c.dom.*;version="0"' + ] + } - // suppress smack path warnings - [compileJava,compileTestJava]*.options*.compilerArgs = ["${xLintArg},-path"] + // suppress smack path warnings + [compileJava,compileTestJava]*.options*.compilerArgs = ["${xLintArg},-path"] } apply plugin: 'docbook-reference' reference { - sourceDir = file('src/reference/docbook') + sourceDir = file('src/reference/docbook') } apply plugin: 'sonar' sonar { - if (rootProject.hasProperty('sonarHostUrl')) { - server.url = rootProject.sonarHostUrl - } + if (rootProject.hasProperty('sonarHostUrl')) { + server.url = rootProject.sonarHostUrl + } - database { - if (rootProject.hasProperty('sonarJdbcUrl')) { - url = rootProject.sonarJdbcUrl - } - if (rootProject.hasProperty('sonarJdbcDriver')) { - driverClassName = rootProject.sonarJdbcDriver - } - if (rootProject.hasProperty('sonarJdbcUsername')) { - username = rootProject.sonarJdbcUsername - } - if (rootProject.hasProperty('sonarJdbcPassword')) { - password = rootProject.sonarJdbcPassword - } - } + database { + if (rootProject.hasProperty('sonarJdbcUrl')) { + url = rootProject.sonarJdbcUrl + } + if (rootProject.hasProperty('sonarJdbcDriver')) { + driverClassName = rootProject.sonarJdbcDriver + } + if (rootProject.hasProperty('sonarJdbcUsername')) { + username = rootProject.sonarJdbcUsername + } + if (rootProject.hasProperty('sonarJdbcPassword')) { + password = rootProject.sonarJdbcPassword + } + } - project { - dynamicAnalysis = "reuseReports" - withProjectProperties { props -> - props["sonar.core.codeCoveragePlugin"] = "jacoco" - props["sonar.jacoco.reportPath"] = "${buildDirName}/jacoco.exec" - } - } - - logger.info("Sonar parameters used: server.url='${server.url}'; database.url='${database.url}'; database.driverClassName='${database.driverClassName}'; database.username='${database.username}'") + project { + dynamicAnalysis = "reuseReports" + withProjectProperties { props -> + props["sonar.core.codeCoveragePlugin"] = "jacoco" + props["sonar.jacoco.reportPath"] = "${buildDir.name}/jacoco.exec" + } + } + logger.info("Sonar parameters used: server.url='${server.url}'; database.url='${database.url}'; database.driverClassName='${database.driverClassName}'; database.username='${database.username}'") } task api(type: Javadoc) { - group = 'Documentation' - description = 'Generates aggregated Javadoc API documentation.' - title = "${rootProject.description} ${version} API" - options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED - options.author = true - options.header = rootProject.description - options.overview = 'src/api/overview.html' - source subprojects.collect { project -> - project.sourceSets.main.allJava - } - destinationDir = new File(buildDir, "api") - classpath = files(subprojects.collect { project -> - project.sourceSets.main.compileClasspath - }) + group = 'Documentation' + description = 'Generates aggregated Javadoc API documentation.' + title = "${rootProject.description} ${version} API" + options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED + options.author = true + options.header = rootProject.description + options.overview = 'src/api/overview.html' + source subprojects.collect { project -> + project.sourceSets.main.allJava + } + destinationDir = new File(buildDir, "api") + classpath = files(subprojects.collect { project -> + project.sourceSets.main.compileClasspath + }) } task schemaZip(type: Zip) { - group = 'Distribution' - classifier = 'schema' - description = "Builds -${classifier} archive containing all " + - "XSDs for deployment at static.springframework.org/schema." + group = 'Distribution' + classifier = 'schema' + description = "Builds -${classifier} archive containing all " + + "XSDs for deployment at static.springframework.org/schema." - subprojects.each { subproject -> - def Properties schemas = new Properties(); - def shortName = subproject.name.replaceFirst("${rootProject.name}-", '') - if (subproject.name.endsWith("-core")) { - shortName = '' - } + subprojects.each { subproject -> + def Properties schemas = new Properties(); + def shortName = subproject.name.replaceFirst("${rootProject.name}-", '') + if (subproject.name.endsWith("-core")) { + shortName = '' + } - subproject.sourceSets.main.resources.find { - it.path.endsWith('META-INF/spring.schemas') - }?.withInputStream { schemas.load(it) } + subproject.sourceSets.main.resources.find { + it.path.endsWith('META-INF/spring.schemas') + }?.withInputStream { schemas.load(it) } - for (def key : schemas.keySet()) { - File xsdFile = subproject.sourceSets.main.resources.find { - it.path.endsWith(schemas.get(key)) - } - assert xsdFile != null - into ("integration/${shortName}") { - from xsdFile.path - } - } - } + for (def key : schemas.keySet()) { + File xsdFile = subproject.sourceSets.main.resources.find { + it.path.endsWith(schemas.get(key)) + } + assert xsdFile != null + into ("integration/${shortName}") { + from xsdFile.path + } + } + } } task docsZip(type: Zip) { - group = 'Distribution' - classifier = 'docs' - description = "Builds -${classifier} archive containing api and reference " + - "for deployment at static.springframework.org/spring-integration/docs." + group = 'Distribution' + classifier = 'docs' + description = "Builds -${classifier} archive containing api and reference " + + "for deployment at static.springframework.org/spring-integration/docs." - from('src/dist') { - include 'changelog.txt' - } + from('src/dist') { + include 'changelog.txt' + } - from (api) { - into 'api' - } + from (api) { + into 'api' + } - from (reference) { - into 'reference' - } + from (reference) { + into 'reference' + } } task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { - group = 'Distribution' - classifier = 'dist' - description = "Builds -${classifier} archive, containing all jars and docs, " + - "suitable for community download page." + group = 'Distribution' + classifier = 'dist' + description = "Builds -${classifier} archive, containing all jars and docs, " + + "suitable for community download page." - baseDir = "${project.name}-${project.version}"; + ext.baseDir = "${project.name}-${project.version}"; - from('src/dist') { - include 'readme.txt' - include 'license.txt' - include 'notice.txt' - into "${baseDir}" - } + from('src/dist') { + include 'readme.txt' + include 'license.txt' + include 'notice.txt' + into "${baseDir}" + } - from(zipTree(docsZip.archivePath)) { - into "${baseDir}/docs" - } + from(zipTree(docsZip.archivePath)) { + into "${baseDir}/docs" + } - from(zipTree(schemaZip.archivePath)) { - into "${baseDir}/schema" - } + from(zipTree(schemaZip.archivePath)) { + into "${baseDir}/schema" + } - subprojects.each { subproject -> - into ("${baseDir}/libs") { - from subproject.jar - from subproject.sourcesJar - from subproject.javadocJar - } - } + subprojects.each { subproject -> + into ("${baseDir}/libs") { + from subproject.jar + from subproject.sourcesJar + from subproject.javadocJar + } + } } // Create an optional "with dependencies" distribution. // Not published by default; only for use when building from source. task depsZip(type: Zip, dependsOn: distZip) { zipTask -> - group = 'Distribution' - classifier = 'dist-with-deps' - description = "Builds -${classifier} archive, containing everything " + - "in the -${distZip.classifier} archive plus all dependencies." + group = 'Distribution' + classifier = 'dist-with-deps' + description = "Builds -${classifier} archive, containing everything " + + "in the -${distZip.classifier} archive plus all dependencies." - from zipTree(distZip.archivePath) + from zipTree(distZip.archivePath) - gradle.taskGraph.whenReady { taskGraph -> - if (taskGraph.hasTask(":${zipTask.name}")) { - def projectNames = rootProject.subprojects*.name - def artifacts = new HashSet() - subprojects.each { subproject -> - subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact -> - def dependency = artifact.moduleVersion.id - if (!projectNames.contains(dependency.name)) { - artifacts << artifact.file - } - } - } + gradle.taskGraph.whenReady { taskGraph -> + if (taskGraph.hasTask(":${zipTask.name}")) { + def projectNames = rootProject.subprojects*.name + def artifacts = new HashSet() + subprojects.each { subproject -> + subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact -> + def dependency = artifact.moduleVersion.id + if (!projectNames.contains(dependency.name)) { + artifacts << artifact.file + } + } + } - zipTask.from(artifacts) { - into "${distZip.baseDir}/deps" - } - } - } + zipTask.from(artifacts) { + into "${distZip.baseDir}/deps" + } + } + } } artifacts { - archives distZip - archives docsZip - archives schemaZip + archives distZip + archives docsZip + archives schemaZip } task dist(dependsOn: assemble) { - group = 'Distribution' - description = 'Builds -dist, -docs and -schema distribution archives.' + group = 'Distribution' + description = 'Builds -dist, -docs and -schema distribution archives.' } task wrapper(type: Wrapper) { - description = 'Generates gradlew[.bat] scripts' - gradleVersion = '1.0-milestone-8' - distributionUrl = 'http://repo.gradle.org/gradle/distributions-snapshots/gradle-1.0-milestone-8-20120112000036+0100-bin.zip' - jarFile = '.wrapper/gradle-wrapper.jar' -} - -def customizePom(def pom, def gradleProject) { - pom.whenConfigured { generatedPom -> - // respect 'optional' and 'provided' dependencies - def deps = gradleProject.configurations.runtime.allDependencies - def optionalDeps = deps.findAll { dep -> - dep.asDynamicObject.hasProperty('optional') && dep.optional - } - def providedDeps = deps.findAll { dep -> - dep.asDynamicObject.hasProperty('provided') && dep.provided - } - generatedPom.dependencies.each { mavenDep -> - mavenDep.optional = optionalDeps.any { optionalDep -> - optionalDep.group == mavenDep.groupId && - optionalDep.name == mavenDep.artifactId && - optionalDep.version == mavenDep.version - } - boolean isProvided = providedDeps.any { providedDep -> - providedDep.group == mavenDep.groupId && - providedDep.name == mavenDep.artifactId && - providedDep.version == mavenDep.version - } - if (isProvided) { - mavenDep.scope = 'provided' - } - } - - // eliminate test-scoped dependencies (no need in maven central poms) - generatedPom.dependencies.removeAll { dep -> - dep.scope == 'test' - } - - // add all items necessary for maven central publication - generatedPom.project { - name = gradleProject.description - description = gradleProject.description - url = 'https://github.com/SpringSource/spring-integration' - organization { - name = 'SpringSource' - url = 'http://springsource.org' - } - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - scm { - url = 'https://github.com/SpringSource/spring-integration' - connection = 'scm:git:git://github.com/SpringSource/spring-integration' - developerConnection = 'scm:git:git://github.com/SpringSource/spring-integration' - } - developers { - developer { - id = 'markfisher' - name = 'Mark Fisher' - email = 'markfisher@vmware.com' - } - developer { - id = 'olegz' - name = 'Oleg Zhurakousky' - email = 'ozhurakousky@vmware.com' - } - } - } - } + description = 'Generates gradlew[.bat] scripts' + gradleVersion = '1.0-rc-1' } diff --git a/gradlew b/gradlew index b1fdaf1db4..08b3c68ff8 100755 --- a/gradlew +++ b/gradlew @@ -107,7 +107,7 @@ fi # For Darwin, add options to specify how the application appears in the dock if $darwin; then - JAVA_OPTS="$JAVA_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi # For Cygwin, switch paths to Windows format before running java diff --git a/publish-maven.gradle b/publish-maven.gradle new file mode 100644 index 0000000000..1c636c833a --- /dev/null +++ b/publish-maven.gradle @@ -0,0 +1,76 @@ +apply plugin: 'maven' + +ext.optionalDeps = [] +ext.providedDeps = [] + +ext.optional = { optionalDeps << it } +ext.provided = { providedDeps << it } + +install { + repositories.mavenInstaller { + customizePom(pom, project) + } +} + +def customizePom(pom, gradleProject) { + pom.whenConfigured { generatedPom -> + // respect 'optional' and 'provided' dependencies + gradleProject.optionalDeps.each { dep -> + generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true + } + gradleProject.providedDeps.each { dep -> + generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided' + } + + // eliminate test-scoped dependencies (no need in maven central poms) + generatedPom.dependencies.removeAll { dep -> + dep.scope == 'test' + } + + // add all items necessary for maven central publication + generatedPom.project { + name = gradleProject.description + description = gradleProject.description + url = 'https://github.com/SpringSource/spring-integration' + organization { + name = 'SpringSource' + url = 'http://springsource.org' + } + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + scm { + url = 'https://github.com/SpringSource/spring-integration' + connection = 'scm:git:git://github.com/SpringSource/spring-integration' + developerConnection = 'scm:git:git://github.com/SpringSource/spring-integration' + } + + developers { + developer { + id = 'markfisher' + name = 'Mark Fisher' + email = 'markfisher@vmware.com' + } + developer { + id = 'olegz' + name = 'Oleg Zhurakousky' + email = 'ozhurakousky@vmware.com' + } + developer { + id = 'garyrussell' + name = 'Gary Russell' + email = 'grussell@vmware.com' + } + developer { + id = 'ghillert' + name = 'Gunnar Hillert' + email = 'ghillert@vmware.com' + } + } + } + } +} \ No newline at end of file