JIRA: https://jira.spring.io/browse/INT-4243 Remove newline char from key exchange. Fix CR and Add Windows Delete Diagnostics Fix For Windows More diagnostics. It appears the new server doesn't close the file when the session is closed. In the streaming test, consume the stream before closing the session. Polishing - PR Comments * More polishing according PR comments Conflicts: spring-integration-sftp/src/test/java/org/springframework/integration/sftp/SftpTestSupport.java spring-integration-sftp/src/test/java/org/springframework/integration/sftp/dsl/SftpTests.java spring-integration-sftp/src/test/java/org/springframework/integration/sftp/session/SftpRemoteFileTemplateTests.java spring-integration-sftp/src/test/java/org/springframework/integration/sftp/session/SftpServerTests.java spring-integration-sftp/src/test/java/org/springframework/integration/sftp/session/SftpSessionFactoryTests.java
938 lines
29 KiB
Groovy
938 lines
29 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url 'https://repo.spring.io/plugins-release' }
|
|
}
|
|
dependencies {
|
|
classpath 'io.spring.gradle:spring-io-plugin:0.0.5.RELEASE'
|
|
classpath 'io.spring.gradle:docbook-reference-plugin:0.3.1'
|
|
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.0'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'org.sonarqube' version '1.2'
|
|
}
|
|
|
|
description = 'Spring Integration'
|
|
|
|
def docsDir = 'src/reference/asciidoc' // Will be default with newer asciidoctor plugin
|
|
|
|
ext {
|
|
linkHomepage = 'https://projects.spring.io/spring-integration'
|
|
linkCi = 'https://build.spring.io/browse/INT'
|
|
linkIssue = 'https://jira.spring.io/browse/INT'
|
|
linkScmUrl = 'https://github.com/spring-projects/spring-integration'
|
|
linkScmConnection = 'scm:git:git://github.com/spring-projects/spring-integration.git'
|
|
linkScmDevConnection = 'scm:git:ssh://git@github.com:spring-projects/spring-integration.git'
|
|
}
|
|
|
|
allprojects {
|
|
group = 'org.springframework.integration'
|
|
|
|
repositories {
|
|
if (version.endsWith('BUILD-SNAPSHOT') || project.hasProperty('platformVersion')) {
|
|
maven { url 'https://repo.spring.io/libs-snapshot' }
|
|
}
|
|
maven { url 'https://repo.spring.io/libs-milestone' }
|
|
mavenCentral()
|
|
}
|
|
|
|
ext.javadocLinks = [
|
|
'http://docs.oracle.com/javase/7/docs/api/',
|
|
'http://docs.oracle.com/javaee/6/api/',
|
|
'http://docs.spring.io/spring/docs/current/javadoc-api/',
|
|
'http://docs.spring.io/spring-amqp/docs/current/api/',
|
|
'http://docs.spring.io/spring-data-gemfire/docs/current/api/',
|
|
'http://docs.spring.io/spring-data/data-mongo/docs/current/api/',
|
|
'http://docs.spring.io/spring-data/data-redis/docs/current/api/',
|
|
'http://docs.spring.io/spring-social-twitter/docs/current/apidocs/',
|
|
'http://docs.spring.io/spring-ws/sites/2.0/apidocs/'
|
|
] as String[]
|
|
|
|
}
|
|
|
|
subprojects { subproject ->
|
|
|
|
apply plugin: 'java'
|
|
apply from: "${rootProject.projectDir}/publish-maven.gradle"
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'idea'
|
|
apply plugin: 'jacoco'
|
|
apply plugin: 'checkstyle'
|
|
|
|
if (project.hasProperty('platformVersion')) {
|
|
apply plugin: 'spring-io'
|
|
|
|
dependencyManagement {
|
|
springIoTestRuntime {
|
|
imports {
|
|
mavenBom "io.spring.platform:platform-bom:${platformVersion}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
sourceCompatibility = 1.6
|
|
targetCompatibility = 1.6
|
|
}
|
|
|
|
compileTestJava {
|
|
sourceCompatibility = 1.8
|
|
}
|
|
|
|
ext {
|
|
activeMqVersion = '5.13.2'
|
|
aspectjVersion = '1.8.9'
|
|
apacheSshdVersion = '1.4.0'
|
|
boonVersion = '0.33'
|
|
chronicleVersion = '3.5.3'
|
|
commonsDbcpVersion = '1.4'
|
|
commonsIoVersion = '2.4'
|
|
commonsNetVersion = '3.4'
|
|
curatorVersion = '2.10.0'
|
|
derbyVersion = '10.11.1.1'
|
|
eclipseLinkVersion = '2.5.2'
|
|
ftpServerVersion = '1.0.6'
|
|
groovyVersion = '2.4.6'
|
|
guavaVersion = '19.0'
|
|
hamcrestVersion = '1.3'
|
|
hazelcastVersion = '3.6.1'
|
|
hibernateVersion = '5.1.0.Final'
|
|
hsqldbVersion = '2.3.3'
|
|
h2Version = '1.4.180'
|
|
jackson2Version = '2.7.3'
|
|
javaxActivationVersion = '1.1.1'
|
|
javaxMailVersion = '1.5.6'
|
|
jedisVersion = '2.7.3'
|
|
jmsApiVersion = '1.1-rev-1'
|
|
jpa21ApiVersion = '1.0.0.Final'
|
|
jpaApiVersion = '2.1.1'
|
|
jrubyVersion = '1.7.23'
|
|
jschVersion = '0.1.54'
|
|
jsonpathVersion = '2.2.0'
|
|
junitVersion = '4.12'
|
|
jythonVersion = '2.5.3'
|
|
kryoShadedVersion = '3.0.3'
|
|
log4jVersion = '1.2.17'
|
|
mockitoVersion = '1.10.19'
|
|
mysqlVersion = '5.1.34'
|
|
nettyVersion = '4.0.27.Final'
|
|
openJpaVersion = '2.4.0'
|
|
pahoMqttClientVersion = '1.0.2'
|
|
postgresVersion = '9.1-901-1.jdbc4'
|
|
reactorVersion = '2.0.8.RELEASE'
|
|
romeToolsVersion = '1.6.0'
|
|
servletApiVersion = '3.1.0'
|
|
slf4jVersion = "1.7.21"
|
|
tomcatVersion = "8.0.33"
|
|
smackVersion = '4.1.7'
|
|
springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '1.6.8.RELEASE'
|
|
springDataJpaVersion = '1.10.1.RELEASE'
|
|
springDataMongoVersion = '1.9.1.RELEASE'
|
|
springDataRedisVersion = '1.7.1.RELEASE'
|
|
springGemfireVersion = '1.8.8.RELEASE'
|
|
springSecurityVersion = '4.1.0.RELEASE'
|
|
springSocialTwitterVersion = '1.1.2.RELEASE'
|
|
springRetryVersion = '1.1.3.RELEASE'
|
|
springVersion = project.hasProperty('springVersion') ? project.springVersion : '4.3.7.RELEASE'
|
|
springWsVersion = '2.3.0.RELEASE'
|
|
xmlUnitVersion = '1.6'
|
|
xstreamVersion = '1.4.7'
|
|
}
|
|
|
|
eclipse {
|
|
project {
|
|
natures += 'org.springframework.ide.eclipse.core.springnature'
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
test {
|
|
resources {
|
|
srcDirs = ['src/test/resources', 'src/test/java']
|
|
}
|
|
}
|
|
}
|
|
|
|
jacoco {
|
|
toolVersion = "0.7.2.201409121644"
|
|
}
|
|
|
|
// dependencies that are common across all java projects
|
|
dependencies {
|
|
if (!(subproject.name ==~ /.*-test/)) {
|
|
testCompile project(":spring-integration-test")
|
|
}
|
|
|
|
testRuntime "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
}
|
|
|
|
// enable all compiler warnings; individual projects may customize further
|
|
ext.xLintArg = '-Xlint:all,-options,-processing'
|
|
[compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg]
|
|
|
|
task checkTestConfigs {
|
|
doLast {
|
|
def configFiles = []
|
|
sourceSets.test.java.srcDirs.each {
|
|
fileTree(it).include('**/*.xml').exclude('**/log4j.xml').each { configFile ->
|
|
def configXml = new XmlParser(false, false).parse(configFile)
|
|
|
|
if (configXml.@'xsi:schemaLocation' ==~ /.*spring-[a-z-]*\d\.\d\.xsd.*/) {
|
|
configFiles << configFile
|
|
}
|
|
}
|
|
}
|
|
if (configFiles) {
|
|
throw new InvalidUserDataException('Hardcoded XSD version in the config files:\n' +
|
|
configFiles.collect {relativePath(it)}.join('\n') +
|
|
'\nPlease, use versionless schemaLocations for Spring XSDs to avoid issues with builds ' +
|
|
'on different versions of dependencies.')
|
|
}
|
|
}
|
|
}
|
|
|
|
jacocoTestReport {
|
|
reports {
|
|
xml.enabled false
|
|
csv.enabled false
|
|
html.destination "${buildDir}/reports/jacoco/html"
|
|
}
|
|
}
|
|
|
|
test {
|
|
maxHeapSize = "1024m"
|
|
jacoco {
|
|
append = false
|
|
destinationFile = file("$buildDir/jacoco.exec")
|
|
}
|
|
}
|
|
|
|
task testAll(type: Test)
|
|
|
|
tasks.withType(Test).all {
|
|
// suppress all console output during testing unless running `gradle -i`
|
|
logging.captureStandardOutput(LogLevel.INFO)
|
|
dependsOn checkTestConfigs
|
|
|
|
if (name ==~ /(springIo.*)|(testAll)/) {
|
|
systemProperty 'RUN_LONG_INTEGRATION_TESTS', 'true'
|
|
}
|
|
|
|
environment 'SI_FATAL_WHEN_NO_BEANFACTORY', 'true'
|
|
}
|
|
|
|
task sourcesJar(type: Jar) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task javadocJar(type: Jar) {
|
|
classifier = 'javadoc'
|
|
from javadoc
|
|
}
|
|
|
|
checkstyle {
|
|
configFile = file("${rootDir}/src/checkstyle/checkstyle.xml")
|
|
toolVersion = "6.16.1"
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes('Implementation-Version': version)
|
|
}
|
|
}
|
|
|
|
build.dependsOn jacocoTestReport
|
|
}
|
|
|
|
project('spring-integration-test') {
|
|
description = 'Spring Integration Test Support - **No SI Dependencies Allowed**'
|
|
dependencies {
|
|
compile ("junit:junit:$junitVersion") {
|
|
exclude group: 'org.hamcrest', module: 'hamcrest-core'
|
|
}
|
|
compile "org.hamcrest:hamcrest-all:$hamcrestVersion"
|
|
compile ("org.mockito:mockito-core:$mockitoVersion") {
|
|
exclude group: 'org.hamcrest', module: 'hamcrest-core'
|
|
}
|
|
compile "org.springframework:spring-context:$springVersion"
|
|
compile "org.springframework:spring-messaging:$springVersion"
|
|
compile "org.springframework:spring-test:$springVersion"
|
|
compile ("log4j:log4j:$log4jVersion", optional)
|
|
}
|
|
}
|
|
|
|
project('spring-integration-amqp') {
|
|
description = 'Spring Integration AMQP Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile("org.springframework.amqp:spring-rabbit:$springAmqpVersion") {
|
|
exclude group: 'org.springframework', module: 'spring-aop'
|
|
exclude group: 'org.springframework', module: 'spring-context'
|
|
exclude group: 'org.springframework', module: 'spring-core'
|
|
exclude group: 'org.springframework', module: 'spring-tx'
|
|
}
|
|
testCompile project(":spring-integration-stream")
|
|
testCompile project(":spring-integration-http") // need to test INT-2713
|
|
}
|
|
}
|
|
|
|
project('spring-integration-core') {
|
|
description = 'Spring Integration Core'
|
|
|
|
dependencies {
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.springframework:spring-aop:$springVersion"
|
|
compile "org.springframework:spring-context:$springVersion"
|
|
compile "org.springframework:spring-messaging:$springVersion"
|
|
compile "org.springframework:spring-tx:$springVersion"
|
|
compile ("org.springframework.retry:spring-retry:$springRetryVersion") {
|
|
exclude group: 'org.springframework', module: 'spring-core'
|
|
}
|
|
// compile ("org.springframework.cloud:spring-cloud-cluster-core:$springCloudClusterVersion", optional)
|
|
compile ("io.projectreactor:reactor-stream:$reactorVersion") {
|
|
optional it
|
|
exclude group: 'org.slf4j', module: 'slf4j-api'
|
|
}
|
|
compile("com.fasterxml.jackson.core:jackson-databind:$jackson2Version", optional)
|
|
compile("com.jayway.jsonpath:json-path:$jsonpathVersion") {
|
|
optional it
|
|
exclude group: 'org.slf4j', module: 'slf4j-api'
|
|
}
|
|
compile("io.fastjson:boon:$boonVersion", optional)
|
|
compile("com.esotericsoftware:kryo-shaded:$kryoShadedVersion", optional)
|
|
|
|
testCompile ("org.aspectj:aspectjweaver:$aspectjVersion")
|
|
testCompile ("net.openhft:chronicle:$chronicleVersion")
|
|
}
|
|
}
|
|
|
|
project('spring-integration-event') {
|
|
description = 'Spring Integration ApplicationEvent Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
}
|
|
}
|
|
|
|
project('spring-integration-feed') {
|
|
description = 'Spring Integration RSS Feed Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "com.rometools:rome-fetcher:$romeToolsVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-file') {
|
|
description = 'Spring Integration File Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "commons-io:commons-io:$commonsIoVersion"
|
|
testCompile project(":spring-integration-redis")
|
|
testCompile project(":spring-integration-redis").sourceSets.test.output
|
|
testCompile project(":spring-integration-gemfire")
|
|
testCompile "redis.clients:jedis:$jedisVersion"
|
|
}
|
|
}
|
|
|
|
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)
|
|
testCompile "org.apache.ftpserver:ftpserver-core:$ftpServerVersion"
|
|
testCompile project(":spring-integration-file").sourceSets.test.output
|
|
}
|
|
}
|
|
|
|
project('spring-integration-gemfire') {
|
|
description = 'Spring Integration GemFire Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile ("org.springframework.data:spring-data-gemfire:$springGemfireVersion") {
|
|
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-context-support'
|
|
exclude group: 'org.springframework', module: 'spring-core'
|
|
exclude group: 'org.springframework', module: 'spring-tx'
|
|
}
|
|
compile "commons-io:commons-io:$commonsIoVersion"
|
|
testCompile project(":spring-integration-stream")
|
|
|
|
}
|
|
}
|
|
|
|
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 "org.springframework:spring-web:$springVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-http') {
|
|
description = 'Spring Integration HTTP Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.springframework:spring-webmvc:$springVersion"
|
|
compile("com.rometools:rome:$romeToolsVersion", optional)
|
|
compile("javax.servlet:javax.servlet-api:$servletApiVersion", provided)
|
|
}
|
|
}
|
|
|
|
project('spring-integration-ip') {
|
|
description = 'Spring Integration IP Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
testCompile project(":spring-integration-stream")
|
|
}
|
|
}
|
|
|
|
project('spring-integration-jdbc') {
|
|
description = 'Spring Integration JDBC Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.springframework:spring-jdbc:$springVersion"
|
|
compile ("com.google.guava:guava:$guavaVersion", optional)
|
|
|
|
testCompile "com.h2database:h2:$h2Version"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "org.apache.derby:derby:$derbyVersion"
|
|
testCompile "org.apache.derby:derbyclient:$derbyVersion"
|
|
testCompile "postgresql:postgresql:$postgresVersion"
|
|
testCompile "mysql:mysql-connector-java:$mysqlVersion"
|
|
testCompile "commons-dbcp:commons-dbcp:$commonsDbcpVersion"
|
|
|
|
}
|
|
|
|
// 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 ("javax.jms:jms-api:$jmsApiVersion", provided)
|
|
testCompile("org.apache.activemq:activemq-broker:$activeMqVersion")
|
|
testCompile "org.springframework:spring-oxm:$springVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-jmx') {
|
|
description = 'Spring Integration JMX Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
testCompile "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
testCompile "com.hazelcast:hazelcast:$hazelcastVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-jpa') {
|
|
description = 'Spring Integration JPA Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.springframework:spring-orm:$springVersion"
|
|
compile ("org.eclipse.persistence:javax.persistence:$jpaApiVersion", optional)
|
|
|
|
|
|
testCompile "org.springframework.data:spring-data-jpa:$springDataJpaVersion"
|
|
|
|
testCompile "com.h2database:h2:$h2Version"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "org.apache.derby:derby:$derbyVersion"
|
|
|
|
testCompile "org.hibernate:hibernate-entitymanager:$hibernateVersion"
|
|
|
|
testCompile ("org.apache.openjpa:openjpa:$openJpaVersion") {
|
|
exclude group: 'org.apache.geronimo.specs'
|
|
}
|
|
|
|
testRuntime "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:$jpa21ApiVersion"
|
|
testRuntime "org.eclipse.persistence:org.eclipse.persistence.jpa:$eclipseLinkVersion"
|
|
testRuntime "org.springframework:spring-instrument:$springVersion"
|
|
}
|
|
|
|
tasks.withType(Test).matching {it.name ==~ /(springIo.+)|(test)|(testAll)/}.all {
|
|
jvmArgs classpath.files.findAll {
|
|
it.name ==~ /(spring-instrument.+)|(openjpa-\d+\.\d+\.\d+\.jar)/}.collect{"-javaagent:$it"
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
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:javax.mail-api:$javaxMailVersion", provided)
|
|
compile("com.sun.mail:imap:$javaxMailVersion", provided)
|
|
compile("com.sun.mail:javax.mail:$javaxMailVersion", provided);
|
|
compile("javax.activation:activation:$javaxActivationVersion", optional)
|
|
}
|
|
|
|
// 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.data:spring-data-mongodb:$springDataMongoVersion") {
|
|
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'
|
|
}
|
|
}
|
|
}
|
|
|
|
project('spring-integration-mqtt') {
|
|
description = 'Spring Integration MQTT Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.eclipse.paho:org.eclipse.paho.client.mqttv3:$pahoMqttClientVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-redis') {
|
|
description = 'Spring Integration Redis Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile ("org.springframework.data:spring-data-redis:$springDataRedisVersion") {
|
|
exclude group: 'org.springframework', module: 'spring-beans'
|
|
exclude group: 'org.springframework', module: 'spring-context'
|
|
exclude group: 'org.springframework', module: 'spring-context-support'
|
|
exclude group: 'org.springframework', module: 'spring-core'
|
|
exclude group: 'org.springframework', module: 'spring-tx'
|
|
}
|
|
testCompile "redis.clients:jedis:$jedisVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-rmi') {
|
|
description = 'Spring Integration RMI Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
}
|
|
}
|
|
|
|
project('spring-integration-scripting') {
|
|
description = 'Spring Integration Scripting Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
testCompile("org.jruby:jruby:$jrubyVersion")
|
|
testCompile("org.codehaus.groovy:groovy-all:$groovyVersion")
|
|
testCompile("org.python:jython-standalone:$jythonVersion")
|
|
}
|
|
}
|
|
|
|
project('spring-integration-security') {
|
|
description = 'Spring Integration Security Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile("org.springframework.security:spring-security-core:$springSecurityVersion") {
|
|
exclude group: 'org.springframework', module: 'spring-support'
|
|
}
|
|
|
|
testCompile "org.springframework.security:spring-security-config:$springSecurityVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-sftp') {
|
|
description = 'Spring Integration SFTP Support'
|
|
dependencies {
|
|
compile project(":spring-integration-file")
|
|
compile project(":spring-integration-stream")
|
|
compile "com.jcraft:jsch:$jschVersion"
|
|
compile "org.springframework:spring-context-support:$springVersion"
|
|
compile("javax.activation:activation:$javaxActivationVersion", optional)
|
|
testCompile "org.apache.sshd:sshd-core:$apacheSshdVersion"
|
|
testCompile project(":spring-integration-file").sourceSets.test.output
|
|
}
|
|
}
|
|
|
|
project('spring-integration-stomp') {
|
|
description = 'Spring Integration STOMP Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile ("org.springframework:spring-websocket:$springVersion", optional)
|
|
|
|
testCompile project(":spring-integration-websocket")
|
|
testCompile project(":spring-integration-websocket").sourceSets.test.output
|
|
testCompile project(":spring-integration-event")
|
|
testCompile "org.apache.activemq:activemq-stomp:$activeMqVersion"
|
|
testCompile "org.apache.tomcat.embed:tomcat-embed-websocket:$tomcatVersion"
|
|
|
|
testRuntime "org.apache.tomcat.embed:tomcat-embed-logging-log4j:$tomcatVersion"
|
|
testRuntime "io.projectreactor:reactor-net:$reactorVersion"
|
|
testRuntime "io.netty:netty-all:$nettyVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-stream') {
|
|
description = 'Spring Integration Stream Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
}
|
|
}
|
|
|
|
project('spring-integration-syslog') {
|
|
description = 'Spring Integration Syslog Support'
|
|
dependencies {
|
|
compile project(":spring-integration-ip")
|
|
}
|
|
}
|
|
|
|
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-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'
|
|
exclude group: 'org.springframework', module: 'spring-webmvc'
|
|
|
|
}
|
|
compile("javax.activation:activation:$javaxActivationVersion", optional)
|
|
testCompile project(":spring-integration-redis")
|
|
testCompile project(":spring-integration-redis").sourceSets.test.output
|
|
testCompile "redis.clients:jedis:$jedisVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-websocket') {
|
|
description = 'Spring Integration WebSockets Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.springframework:spring-websocket:$springVersion"
|
|
|
|
compile ("org.springframework:spring-webmvc:$springVersion", optional)
|
|
|
|
testCompile project(":spring-integration-event")
|
|
testCompile "org.apache.tomcat.embed:tomcat-embed-websocket:$tomcatVersion"
|
|
|
|
testRuntime "org.apache.tomcat.embed:tomcat-embed-logging-log4j:$tomcatVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-ws') {
|
|
description = 'Spring Integration Web Services Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.springframework:spring-oxm:$springVersion"
|
|
compile "org.springframework:spring-webmvc:$springVersion"
|
|
compile ("org.springframework.ws:spring-ws-core:$springWsVersion") {
|
|
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-web'
|
|
exclude group: 'org.springframework', module: 'spring-webmvc'
|
|
}
|
|
|
|
testCompile "com.thoughtworks.xstream:xstream:$xstreamVersion"
|
|
testCompile ("org.springframework.ws:spring-ws-support:$springWsVersion") {
|
|
exclude group: 'org.springframework'
|
|
}
|
|
testCompile ("org.springframework:spring-jms:$springVersion") {
|
|
exclude group: 'org.springframework'
|
|
}
|
|
testCompile "javax.jms:jms-api:$jmsApiVersion"
|
|
testCompile "org.igniterealtime.smack:smack-tcp:$smackVersion"
|
|
testCompile "org.igniterealtime.smack:smack-java7:$smackVersion"
|
|
testCompile "org.igniterealtime.smack:smack-extensions:$smackVersion"
|
|
testCompile "javax.mail:javax.mail-api:$javaxMailVersion"
|
|
testRuntime "com.sun.mail:mailapi:$javaxMailVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-xml') {
|
|
description = 'Spring Integration XML Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
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-context'
|
|
exclude group: 'org.springframework', module: 'spring-core'
|
|
}
|
|
testCompile "xmlunit:xmlunit:$xmlUnitVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-xmpp') {
|
|
description = 'Spring Integration XMPP Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
compile "org.igniterealtime.smack:smack-tcp:$smackVersion"
|
|
compile "org.igniterealtime.smack:smack-java7:$smackVersion"
|
|
compile "org.igniterealtime.smack:smack-extensions:$smackVersion"
|
|
|
|
testCompile project(":spring-integration-stream")
|
|
testCompile "org.igniterealtime.smack:smack-experimental:$smackVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-integration-zookeeper') {
|
|
description = 'Spring Integration Zookeeper Support'
|
|
dependencies {
|
|
compile project(":spring-integration-core")
|
|
|
|
compile("org.apache.curator:curator-recipes:$curatorVersion") {
|
|
exclude group: 'io.netty', module: 'netty'
|
|
exclude group: 'log4j', module: 'log4j'
|
|
}
|
|
|
|
testCompile "org.apache.curator:curator-test:$curatorVersion"
|
|
}
|
|
}
|
|
|
|
project("spring-integration-bom") {
|
|
description = "Spring Integration (Bill of Materials)"
|
|
|
|
configurations.archives.artifacts.clear()
|
|
artifacts {
|
|
// work around GRADLE-2406 by attaching text artifact
|
|
archives(file("spring-integration-bom.txt"))
|
|
}
|
|
|
|
install {
|
|
repositories.mavenInstaller {
|
|
pom.whenConfigured {
|
|
packaging = "pom"
|
|
withXml {
|
|
asNode().children().last() + {
|
|
delegate.dependencyManagement {
|
|
delegate.dependencies {
|
|
parent.subprojects.sort { "$it.name" }.each { p ->
|
|
if (p != project) {
|
|
delegate.dependency {
|
|
delegate.groupId(p.group)
|
|
delegate.artifactId(p.name)
|
|
delegate.version(p.version)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
apply plugin: org.asciidoctor.gradle.AsciidoctorPlugin
|
|
|
|
asciidoctor {
|
|
sourceDir file("$docsDir")
|
|
sourceDocumentNames = files("$docsDir/index.adoc") // Change in >= 1.5.1
|
|
outputDir file("$buildDir/html")
|
|
backends = ['html5', 'docbook']
|
|
logDocuments = true
|
|
options = [
|
|
doctype: 'book',
|
|
attributes: [
|
|
docinfo: '',
|
|
toc2: '',
|
|
'compat-mode': '',
|
|
imagesdir: '',
|
|
stylesdir: "stylesheets/",
|
|
stylesheet: 'golo.css',
|
|
'spring-integration-version': "$version",
|
|
'source-highlighter': 'highlightjs'
|
|
]
|
|
]
|
|
}
|
|
|
|
apply plugin: DocbookReferencePlugin
|
|
|
|
reference {
|
|
sourceFileName = 'index.xml'
|
|
sourceDir = file("$buildDir/html")
|
|
pdfFilename = 'spring-integration-reference.pdf'
|
|
expandPlaceholders = ''
|
|
}
|
|
|
|
reference.dependsOn asciidoctor
|
|
|
|
[asciidoctor, reference, referenceEpub, referenceHtmlMulti, referenceHtmlSingle, referencePdf].each {
|
|
it.onlyIf { "$System.env.NO_REFERENCE_TASK" != 'true' || project.hasProperty('ignoreEnvToStopReference') }
|
|
}
|
|
|
|
sonarqube {
|
|
properties {
|
|
property "sonar.jacoco.reportPath", "${buildDir.name}/jacoco.exec"
|
|
property "sonar.links.homepage", linkHomepage
|
|
property "sonar.links.ci", linkCi
|
|
property "sonar.links.issue", linkIssue
|
|
property "sonar.links.scm", linkScmUrl
|
|
property "sonar.links.scm_dev", linkScmDevConnection
|
|
property "sonar.java.coveragePlugin", "jacoco"
|
|
}
|
|
}
|
|
|
|
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'
|
|
options.stylesheetFile = file("src/api/stylesheet.css")
|
|
options.links(project.ext.javadocLinks)
|
|
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."
|
|
|
|
duplicatesStrategy = 'exclude'
|
|
|
|
subprojects.findAll{ !it.name.endsWith('-bom') }.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${File.separator}spring.schemas")
|
|
}?.withInputStream { schemas.load(it) }
|
|
|
|
for (def key : schemas.keySet()) {
|
|
File xsdFile = subproject.sourceSets.main.resources.find {
|
|
it.path.replaceAll('\\\\', '/').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."
|
|
|
|
from('src/dist') {
|
|
include 'changelog.txt'
|
|
}
|
|
|
|
from (api) {
|
|
into 'api'
|
|
}
|
|
|
|
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."
|
|
|
|
ext.baseDir = "${project.name}-${project.version}";
|
|
|
|
from('src/dist') {
|
|
include 'readme.txt'
|
|
include 'license.txt'
|
|
include 'notice.txt'
|
|
into "${baseDir}"
|
|
}
|
|
|
|
from(zipTree(docsZip.archivePath)) {
|
|
into "${baseDir}/docs"
|
|
}
|
|
|
|
from(zipTree(schemaZip.archivePath)) {
|
|
into "${baseDir}/schema"
|
|
}
|
|
|
|
subprojects.findAll{ !it.name.endsWith('-bom') }.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."
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|
|
|
|
zipTask.from(artifacts) {
|
|
into "${distZip.baseDir}/deps"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
archives distZip
|
|
archives docsZip
|
|
archives schemaZip
|
|
}
|
|
|
|
task dist(dependsOn: assemble) {
|
|
group = 'Distribution'
|
|
description = 'Builds -dist, -docs and -schema distribution archives.'
|
|
}
|