This is a demo of the functionality and it located in the domain.adoc file. added code to handl PDF ifdef JavaScript added to support slider control If view in local file system use safari. (Cookies not supported on local filesysem on chrome) Remaining bug... if user selects xml and refreshes the examples still show XML but slider goes back to JAVA. Could use a new tool suite. But this is based on the Spring.io toggle. Implemented java vs xml toggle in reference documentation This commit ports the javascript widget used in Sagan for toggling between Maven and Gradle on each project page and uses it to toggle between java based config and XML based config. The preference the user selects is cookied so that it should stick between pages in the multiple page layout as well as for future visits to the documentation. The only page that has implemented the toggle in this commit is the domain.adoc page. The spring-batch-intro.adoc has the toggle reference in it, but it's only there to verify multiple includes are working. Polishing
896 lines
30 KiB
Groovy
896 lines
30 KiB
Groovy
//description = 'Spring Batch'
|
|
|
|
//apply plugin: 'base'
|
|
|
|
buildscript {
|
|
repositories {
|
|
maven { url 'https://repo.spring.io/plugins-release' }
|
|
maven { url 'https://plugins.gradle.org/m2/' }
|
|
}
|
|
dependencies {
|
|
classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.7'
|
|
classpath 'io.spring.gradle:spring-io-plugin:0.0.5.RELEASE'
|
|
classpath "io.spring.gradle:dependency-management-plugin:0.6.0.RELEASE"
|
|
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.1"
|
|
classpath "org.asciidoctor:asciidoctor-gradle-plugin:1.5.3"
|
|
classpath "org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.14"
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'org.sonarqube' version '2.1'
|
|
}
|
|
|
|
ext {
|
|
linkHomepage = 'http://projects.spring.io/spring-batch/'
|
|
linkCi = 'https://build.spring.io/browse/BATCH'
|
|
linkIssue = 'https://jira.spring.io/browse/BATCH'
|
|
linkScmUrl = 'https://github.com/spring-projects/spring-batch'
|
|
linkScmConnection = 'git://github.com/spring-projects/spring-batch.git'
|
|
linkScmDevConnection = 'git@github.com:spring-projects/spring-batch.git'
|
|
|
|
mainProjects = subprojects.findAll { !it.name.endsWith('tests') && !it.name.endsWith('samples') && it.name.startsWith('spring-batch-')}
|
|
}
|
|
|
|
allprojects {
|
|
group = 'org.springframework.batch'
|
|
|
|
repositories {
|
|
maven { url 'https://repo.spring.io/libs-snapshot' }
|
|
maven { url 'https://repo.spring.io/libs-milestone' }
|
|
maven { url 'https://repo.spring.io/plugins-release' }
|
|
mavenCentral()
|
|
}
|
|
|
|
ext {
|
|
|
|
environmentProperty = project.hasProperty('environment') ? getProperty('environment') : 'hsql'
|
|
|
|
springVersionDefault = '5.0.0.RC3'
|
|
springVersion = project.hasProperty('springVersion') ? getProperty('springVersion') : springVersionDefault
|
|
springRetryVersion = '1.2.0.RELEASE'
|
|
springAmqpVersion = '2.0.0.M5'
|
|
springDataCommonsVersion = '2.0.0.RC2'
|
|
springDataGemfireVersion = '2.0.0.RC2'
|
|
springDataJpaVersion = '2.0.0.RC2'
|
|
springDataMongodbVersion = '2.0.0.RC2'
|
|
springDataNeo4jVersion = '5.0.0.RC2'
|
|
springIntegrationVersion = '5.0.0.M6'
|
|
springLdapVersion = '2.3.1.RELEASE'
|
|
|
|
activemqVersion = '5.14.5'
|
|
aspectjVersion = '1.8.10'
|
|
castorVersion = '1.4.1'
|
|
commonsCollectionsVersion = '3.2.2'
|
|
commonsDdbcpVersion = '1.4'
|
|
commonsIoVersion = '2.4'
|
|
commonsLangVersion = '2.6'
|
|
commonsPoolVersion = '1.6'
|
|
derbyVersion = '10.13.1.1'
|
|
groovyVersion = '2.4.11'
|
|
hamcrestVersion = '1.3'
|
|
h2databaseVersion = '1.4.195'
|
|
hibernateVersion = '5.2.10.Final'
|
|
hibernateValidatorVersion = '5.4.1.Final'
|
|
hsqldbVersion = '2.4.0'
|
|
jackson2Version = "2.9.0.pr3"
|
|
javaMailVersion = '1.6.0-rc1'
|
|
javaxBatchApiVersion = '1.0'
|
|
javaxInjectVersion = '1'
|
|
javaxTransactionVersion = '1.2'
|
|
jbatchTckSpi = '1.0'
|
|
jettisonVersion = '1.2'
|
|
jmsVersion = '2.0.1'
|
|
jtdsVersion = '1.3.1' //?
|
|
junitVersion = '4.12'
|
|
log4jVersion = '2.8.2'
|
|
mysqlVersion = '5.1.42'
|
|
mockitoVersion = '2.7.22'
|
|
postgresqlVersion = '42.1.1'
|
|
quartzVersion = '2.3.0'
|
|
servletApiVersion = '3.1.0'
|
|
slf4jVersion = '1.7.25'
|
|
sqlfireclientVersion = '1.0.3' //?
|
|
sqliteVersion = '3.8.11.2' //?
|
|
woodstoxVersion = '4.2.1'
|
|
xercesVersion = '2.11.0' //?
|
|
xmlunitVersion = '1.5'
|
|
xstreamVersion = '1.4.9'
|
|
jrubyVersion = '1.7.26'
|
|
beanshellVersion = '2.0b5'
|
|
}
|
|
|
|
apply plugin: 'idea'
|
|
}
|
|
|
|
configure(subprojects - project(":spring-build-src")) { subproject ->
|
|
|
|
apply plugin: 'java'
|
|
apply from: "${rootProject.projectDir}/publish-maven.gradle"
|
|
apply plugin: 'jacoco'
|
|
apply plugin: 'propdeps-idea'
|
|
apply plugin: 'propdeps-eclipse'
|
|
apply plugin: 'merge'
|
|
|
|
jacoco {
|
|
toolVersion = "0.7.6.201602180812"
|
|
}
|
|
|
|
compileJava {
|
|
sourceCompatibility=1.8
|
|
targetCompatibility=1.8
|
|
options.encoding='UTF-8'
|
|
}
|
|
|
|
compileTestJava {
|
|
sourceCompatibility=1.8
|
|
targetCompatibility=1.8
|
|
options.encoding='UTF-8'
|
|
}
|
|
|
|
eclipse {
|
|
project {
|
|
natures += 'org.springframework.ide.eclipse.core.springnature'
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
test {
|
|
resources {
|
|
srcDirs = ['src/test/resources', 'src/test/java']
|
|
}
|
|
}
|
|
}
|
|
|
|
// enable all compiler warnings; individual projects may customize further
|
|
ext.xLintArg = '-Xlint:all'
|
|
[compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg]
|
|
|
|
tasks.withType(Test).all {
|
|
// suppress all console output during testing unless running `gradle -i`
|
|
logging.captureStandardOutput(LogLevel.INFO)
|
|
systemProperty "ENVIRONMENT", environmentProperty
|
|
|
|
jacoco {
|
|
append = false
|
|
destinationFile = file("$buildDir/jacoco.exec")
|
|
}
|
|
|
|
include '**/*Tests.class'
|
|
exclude '**/Abstract*.class'
|
|
}
|
|
|
|
test {
|
|
jacoco {
|
|
append = false
|
|
destinationFile = file("$buildDir/jacoco.exec")
|
|
}
|
|
|
|
// testLogging {
|
|
// showStandardStreams = true
|
|
// }
|
|
}
|
|
|
|
task sourcesJar(type: Jar) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task javadocJar(type: Jar) {
|
|
classifier = 'javadoc'
|
|
from javadoc
|
|
}
|
|
|
|
task checkTestConfigs << {
|
|
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.')
|
|
}
|
|
}
|
|
|
|
jar {
|
|
manifest.attributes["Created-By"] =
|
|
"${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
|
|
manifest.attributes["Implementation-Title"] = subproject.name
|
|
manifest.attributes["Implementation-Version"] = subproject.version
|
|
|
|
from("${rootProject.projectDir}/src/dist") {
|
|
include "license.txt"
|
|
include "notice.txt"
|
|
into "META-INF"
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
}
|
|
}
|
|
|
|
test.dependsOn checkTestConfigs
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
task allDeps(type: DependencyReportTask) {}
|
|
}
|
|
|
|
configure(mainProjects) {
|
|
if (project.hasProperty('platformVersion')) {
|
|
apply plugin: 'spring-io'
|
|
|
|
repositories {
|
|
maven { url "https://repo.spring.io/libs-snapshot" }
|
|
}
|
|
|
|
dependencyManagement {
|
|
springIoTestRuntime {
|
|
imports {
|
|
mavenBom "io.spring.platform:platform-bom:${platformVersion}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
project("spring-build-src") {
|
|
description = "Exposes gradle buildSrc for IDE support"
|
|
apply plugin: "groovy"
|
|
|
|
dependencies {
|
|
compile gradleApi()
|
|
compile localGroovy()
|
|
}
|
|
|
|
configurations.archives.artifacts.clear()
|
|
}
|
|
|
|
project('spring-batch-core') {
|
|
description = 'Spring Batch Core'
|
|
|
|
dependencies {
|
|
compile project(":spring-batch-infrastructure")
|
|
|
|
compile "com.fasterxml.jackson.core:jackson-databind:${jackson2Version}"
|
|
compile ("org.codehaus.jettison:jettison:$jettisonVersion") {
|
|
exclude group: 'stax', module: 'stax-api'
|
|
}
|
|
compile "org.springframework:spring-aop:$springVersion"
|
|
compile "org.springframework:spring-beans:$springVersion"
|
|
compile "org.springframework:spring-context:$springVersion"
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.springframework:spring-tx:$springVersion"
|
|
compile "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
testCompile "javax.inject:javax.inject:$javaxInjectVersion"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "com.h2database:h2:$h2databaseVersion"
|
|
testCompile "commons-io:commons-io:$commonsIoVersion"
|
|
testCompile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
testCompile "junit:junit:${junitVersion}"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
optional "com.ibm.jbatch:com.ibm.jbatch-tck-spi:$jbatchTckSpi"
|
|
optional "com.thoughtworks.xstream:xstream:$xstreamVersion"
|
|
optional "org.aspectj:aspectjrt:$aspectjVersion"
|
|
optional "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
optional "org.springframework:spring-jdbc:$springVersion"
|
|
optional "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
optional "org.apache.logging.log4j:log4j-api:$log4jVersion"
|
|
optional "org.apache.logging.log4j:log4j-core:$log4jVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-batch-infrastructure') {
|
|
description = 'Spring Batch Infrastructure'
|
|
|
|
test {
|
|
if (JavaVersion.current().isJava7Compatible()) {
|
|
jvmArgs '-XX:MaxPermSize=256m'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.springframework.retry:spring-retry:$springRetryVersion"
|
|
|
|
testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
|
|
testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
|
|
testCompile "commons-io:commons-io:$commonsIoVersion"
|
|
testCompile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "com.h2database:h2:$h2databaseVersion"
|
|
testCompile "org.apache.derby:derby:$derbyVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "junit:junit:${junitVersion}"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
testCompile "org.aspectj:aspectjrt:$aspectjVersion"
|
|
testCompile "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
testCompile "org.xerial:sqlite-jdbc:$sqliteVersion"
|
|
|
|
testRuntime "com.sun.mail:javax.mail:$javaMailVersion"
|
|
testRuntime "org.codehaus.groovy:groovy-jsr223:$groovyVersion"
|
|
testRuntime "org.jruby:jruby:$jrubyVersion"
|
|
|
|
testRuntime "org.beanshell:bsh:$beanshellVersion"
|
|
|
|
optional "javax.jms:javax.jms-api:$jmsVersion"
|
|
optional "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
optional "com.fasterxml.jackson.core:jackson-databind:${jackson2Version}"
|
|
compile("org.hibernate:hibernate-core:$hibernateVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
|
|
}
|
|
compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
|
|
}
|
|
optional "org.hibernate:hibernate-validator:$hibernateValidatorVersion"
|
|
optional "javax.transaction:javax.transaction-api:$javaxTransactionVersion"
|
|
optional "javax.mail:javax.mail-api:$javaMailVersion"
|
|
optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
compile("org.springframework:spring-oxm:$springVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'commons-lang', module: 'commons-lang'
|
|
}
|
|
optional "org.springframework:spring-aop:$springVersion"
|
|
optional "org.springframework:spring-context:$springVersion"
|
|
compile("org.springframework:spring-context-support:$springVersion") { dep ->
|
|
optional dep
|
|
}
|
|
optional "org.springframework:spring-jdbc:$springVersion"
|
|
optional "org.springframework:spring-jms:$springVersion"
|
|
optional "org.springframework:spring-orm:$springVersion"
|
|
optional "org.springframework:spring-tx:$springVersion"
|
|
optional "org.springframework.data:spring-data-commons:$springDataCommonsVersion"
|
|
optional "org.springframework.data:spring-data-mongodb:$springDataMongodbVersion"
|
|
optional ("org.springframework.data:spring-data-neo4j:$springDataNeo4jVersion") {
|
|
exclude group: "org.springframework", module: "spring-aspects"
|
|
}
|
|
optional "org.springframework.data:spring-data-gemfire:$springDataGemfireVersion"
|
|
compile("org.codehaus.woodstox:woodstox-core-asl:$woodstoxVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'stax', module: 'stax-api'
|
|
}
|
|
optional "org.springframework.amqp:spring-amqp:$springAmqpVersion"
|
|
optional ("org.springframework.amqp:spring-rabbit:$springAmqpVersion") {
|
|
exclude group: "org.springframework", module: "spring-messaging"
|
|
exclude group: "org.springframework", module: "spring-web"
|
|
}
|
|
optional "org.springframework.ldap:spring-ldap-core:$springLdapVersion"
|
|
optional "org.springframework.ldap:spring-ldap-core-tiger:$springLdapVersion"
|
|
optional "org.springframework.ldap:spring-ldap-ldif-core:$springLdapVersion"
|
|
}
|
|
|
|
if (project.hasProperty('platformVersion')) {
|
|
def dataNeo4jVersion = dependencyManagement.springIoTestRuntime.managedVersions['org.springframework.data:spring-data-neo4j']
|
|
if (dataNeo4jVersion?.startsWith('4.')) {
|
|
tasks.withType(Test).matching { it.name =~ "springIoJdk.Test" }.all {
|
|
exclude '**/Neo4jItemReaderTests.class'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
project('spring-batch-docs') {
|
|
|
|
}
|
|
|
|
project('spring-batch-core-tests') {
|
|
description = 'Spring Batch Core Tests'
|
|
project.tasks.findByPath("artifactoryPublish")?.enabled = false
|
|
dependencies {
|
|
compile project(":spring-batch-core")
|
|
compile project(":spring-batch-infrastructure")
|
|
compile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
compile "org.springframework:spring-jdbc:$springVersion"
|
|
compile "org.springframework.retry:spring-retry:$springRetryVersion"
|
|
compile "org.springframework:spring-tx:$springVersion"
|
|
compile "org.springframework:spring-aop:$springVersion"
|
|
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "commons-io:commons-io:$commonsIoVersion"
|
|
testCompile "org.apache.derby:derby:$derbyVersion"
|
|
testCompile "junit:junit:${junitVersion}"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
|
|
testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "org.springframework:spring-jdbc:$springVersion"
|
|
|
|
runtime "mysql:mysql-connector-java:$mysqlVersion"
|
|
runtime "org.postgresql:postgresql:$postgresqlVersion"
|
|
runtime "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
|
|
optional "org.aspectj:aspectjrt:$aspectjVersion"
|
|
optional "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
optional "org.springframework.ldap:spring-ldap-core:$springLdapVersion"
|
|
optional "org.springframework.ldap:spring-ldap-core-tiger:$springLdapVersion"
|
|
optional "org.springframework.ldap:spring-ldap-ldif-core:$springLdapVersion"
|
|
}
|
|
test {
|
|
enabled = project.hasProperty('alltests') ? true : false
|
|
}
|
|
}
|
|
|
|
project('spring-batch-infrastructure-tests') {
|
|
description = 'Spring Batch Infrastructure Tests'
|
|
project.tasks.findByPath("artifactoryPublish")?.enabled = false
|
|
dependencies {
|
|
compile project(":spring-batch-infrastructure")
|
|
compile "javax.jms:javax.jms-api:$jmsVersion"
|
|
compile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
compile "org.springframework:spring-tx:$springVersion"
|
|
compile "org.springframework:spring-aop:$springVersion"
|
|
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "commons-io:commons-io:$commonsIoVersion"
|
|
testCompile "org.apache.derby:derby:$derbyVersion"
|
|
testCompile "org.apache.activemq:activemq-broker:$activemqVersion"
|
|
testCompile "org.apache.activemq:activemq-kahadb-store:$activemqVersion"
|
|
testCompile "junit:junit:${junitVersion}"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
testCompile "org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1"
|
|
testCompile "xmlunit:xmlunit:$xmlunitVersion"
|
|
testCompile ("org.codehaus.castor:castor-xml:$castorVersion") {
|
|
exclude group: 'stax', module: 'stax'
|
|
exclude group: 'commons-lang', module: 'commons-lang'
|
|
}
|
|
testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
|
|
testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
|
|
testCompile "xerces:xercesImpl:$xercesVersion"
|
|
testCompile "com.thoughtworks.xstream:xstream:$xstreamVersion"
|
|
testCompile("org.codehaus.woodstox:woodstox-core-asl:$woodstoxVersion") {
|
|
exclude group: 'stax', module: 'stax-api'
|
|
}
|
|
testCompile "commons-lang:commons-lang:$commonsLangVersion"
|
|
testCompile("org.springframework:spring-oxm:$springVersion") {
|
|
exclude group: 'commons-lang', module: 'commons-lang'
|
|
}
|
|
testCompile "org.springframework:spring-jdbc:$springVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
|
|
optional "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
compile("org.hibernate:hibernate-core:$hibernateVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
|
|
}
|
|
compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
|
|
}
|
|
optional "javax.transaction:javax.transaction-api:1.2"
|
|
optional "org.springframework:spring-orm:$springVersion"
|
|
optional "org.springframework:spring-jms:$springVersion"
|
|
|
|
runtime "mysql:mysql-connector-java:$mysqlVersion"
|
|
runtime "org.postgresql:postgresql:$postgresqlVersion"
|
|
}
|
|
test {
|
|
enabled = project.hasProperty('alltests') ? true : false
|
|
}
|
|
}
|
|
|
|
//Domain for batch job testing
|
|
project('spring-batch-test') {
|
|
description = 'Spring Batch Test'
|
|
|
|
dependencies {
|
|
compile project(":spring-batch-core")
|
|
|
|
compile "junit:junit:${junitVersion}"
|
|
compile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
compile "org.springframework:spring-test:$springVersion"
|
|
compile "org.springframework:spring-jdbc:$springVersion"
|
|
compile "commons-io:commons-io:$commonsIoVersion"
|
|
compile "commons-collections:commons-collections:$commonsCollectionsVersion"
|
|
|
|
testCompile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
|
|
optional "org.aspectj:aspectjrt:$aspectjVersion"
|
|
optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-batch-integration') {
|
|
description = 'Batch Integration'
|
|
|
|
dependencies {
|
|
compile project(":spring-batch-core")
|
|
|
|
compile "org.springframework.retry:spring-retry:$springRetryVersion"
|
|
compile "org.springframework:spring-context:$springVersion"
|
|
compile "org.springframework:spring-messaging:$springVersion"
|
|
compile "org.springframework:spring-aop:$springVersion"
|
|
compile "org.springframework.integration:spring-integration-core:$springIntegrationVersion"
|
|
compile "org.springframework:spring-tx:$springVersion"
|
|
|
|
testCompile project(":spring-batch-test")
|
|
|
|
testCompile "org.apache.activemq:activemq-broker:$activemqVersion"
|
|
testCompile "org.apache.activemq:activemq-kahadb-store:$activemqVersion"
|
|
testCompile "junit:junit:${junitVersion}"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
testCompile "org.aspectj:aspectjrt:$aspectjVersion"
|
|
testCompile "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
testCompile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
testCompile "com.h2database:h2:$h2databaseVersion"
|
|
testCompile "mysql:mysql-connector-java:$mysqlVersion"
|
|
testCompile "org.apache.derby:derby:$derbyVersion"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
testCompile("org.springframework.integration:spring-integration-test:$springIntegrationVersion") {
|
|
exclude group: 'junit', module: 'junit-dep'
|
|
exclude group:'org.hamcrest', module:'hamcrest-all'
|
|
}
|
|
testCompile "org.springframework.integration:spring-integration-jdbc:$springIntegrationVersion"
|
|
|
|
optional "javax.jms:javax.jms-api:$jmsVersion"
|
|
optional "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
optional "org.apache.logging.log4j:log4j-api:$log4jVersion"
|
|
optional "org.apache.logging.log4j:log4j-core:$log4jVersion"
|
|
optional "org.springframework.integration:spring-integration-jms:$springIntegrationVersion"
|
|
optional "org.springframework:spring-jms:$springVersion"
|
|
|
|
optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
}
|
|
}
|
|
|
|
project('spring-batch-samples') {
|
|
description = 'Batch Batch Samples'
|
|
project.tasks.findByPath("artifactoryPublish")?.enabled = false
|
|
|
|
dependencies {
|
|
|
|
compile project(":spring-batch-core")
|
|
compile "org.aspectj:aspectjrt:$aspectjVersion"
|
|
compile "org.aspectj:aspectjweaver:$aspectjVersion"
|
|
compile "org.quartz-scheduler:quartz:$quartzVersion"
|
|
compile "commons-io:commons-io:$commonsIoVersion"
|
|
compile "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
compile "com.thoughtworks.xstream:xstream:$xstreamVersion"
|
|
compile("org.codehaus.woodstox:woodstox-core-asl:$woodstoxVersion") {
|
|
exclude group: 'stax', module: 'stax-api'
|
|
}
|
|
compile("org.hibernate:hibernate-core:$hibernateVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
|
|
}
|
|
compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") { dep ->
|
|
optional dep
|
|
exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
|
|
}
|
|
compile "javax.transaction:javax.transaction-api:$javaxTransactionVersion"
|
|
compile "org.springframework:spring-aop:$springVersion"
|
|
compile("org.springframework:spring-oxm:$springVersion") {
|
|
exclude group: 'commons-lang', module: 'commons-lang'
|
|
}
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.springframework:spring-context-support:$springVersion"
|
|
compile "org.springframework:spring-jdbc:$springVersion"
|
|
compile "org.springframework:spring-orm:$springVersion"
|
|
compile "org.springframework:spring-tx:$springVersion"
|
|
compile "org.springframework.data:spring-data-jpa:$springDataJpaVersion"
|
|
compile "javax.mail:javax.mail-api:$javaMailVersion"
|
|
|
|
testCompile "xmlunit:xmlunit:$xmlunitVersion"
|
|
testCompile project(":spring-batch-test")
|
|
testCompile "junit:junit:${junitVersion}"
|
|
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
|
|
testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
|
|
testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
|
|
testCompile "org.codehaus.groovy:groovy:$groovyVersion"
|
|
testCompile "org.codehaus.groovy:groovy-ant:$groovyVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
|
|
testRuntime "com.sun.mail:javax.mail:$javaMailVersion"
|
|
|
|
provided "mysql:mysql-connector-java:$mysqlVersion"
|
|
provided "net.sourceforge.jtds:jtds:$jtdsVersion"
|
|
provided "com.h2database:h2:$h2databaseVersion"
|
|
provided "javax.servlet:javax.servlet-api:$servletApiVersion"
|
|
|
|
optional "com.vmware.sqlfire:sqlfireclient:$sqlfireclientVersion"
|
|
optional "org.slf4j:slf4j-log4j12:$slf4jVersion"
|
|
optional "org.apache.derby:derby:$derbyVersion"
|
|
optional "org.postgresql:postgresql:$postgresqlVersion"
|
|
optional "org.springframework:spring-web:$springVersion"
|
|
optional "org.springframework.data:spring-data-commons:$springDataCommonsVersion"
|
|
optional "org.springframework.amqp:spring-amqp:$springAmqpVersion"
|
|
optional ("org.springframework.amqp:spring-rabbit:$springAmqpVersion") {
|
|
exclude group: "org.springframework", module: "spring-messaging"
|
|
exclude group: "org.springframework", module: "spring-web"
|
|
}
|
|
optional "javax.inject:javax.inject:1"
|
|
|
|
optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
}
|
|
}
|
|
|
|
apply plugin: "org.asciidoctor.convert"
|
|
asciidoctor {
|
|
sourceDir = file('spring-batch-docs/asciidoc')
|
|
sources {
|
|
include '*.adoc'
|
|
}
|
|
resources {
|
|
from(sourceDir) {
|
|
include 'images/**'
|
|
include 'jsfiles/**'
|
|
}
|
|
}
|
|
logDocuments = true
|
|
backends = ["html", "pdf"]
|
|
options doctype: 'book', eruby: 'erubis'
|
|
attributes 'icons': 'font',
|
|
'idprefix': '',
|
|
'idseparator': '-',
|
|
docinfo: '',
|
|
revnumber: project.version,
|
|
sectanchors: '',
|
|
sectnums: '',
|
|
'source-highlighter': 'coderay@', // TODO switch to 'rouge' once supported by the html5 backend
|
|
stylesdir: 'stylesheets/',
|
|
stylesheet: 'spring.css',
|
|
'spring-version': project.version,
|
|
'allow-uri-read': ''
|
|
|
|
}
|
|
|
|
apply plugin: 'org.sonarqube'
|
|
|
|
sonarqube {
|
|
properties {
|
|
property "sonar.projectName", "Spring Batch"
|
|
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'
|
|
if (JavaVersion.current().isJava8Compatible()) {
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
|
|
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."
|
|
|
|
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${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 ("batch/${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-batch/reference."
|
|
|
|
from('src/dist') {
|
|
include 'changelog.txt'
|
|
}
|
|
|
|
from (api) {
|
|
into 'api'
|
|
}
|
|
|
|
from (asciidoctor) {
|
|
exclude '*.pdf'
|
|
exclude '*.html'
|
|
exclude 'images'
|
|
exclude 'html/index-pdf.html'
|
|
exclude 'pdf/images'
|
|
exclude 'pdf/appendix.pdf'
|
|
exclude 'pdf/common-patterns.pdf'
|
|
exclude 'pdf/domain.pdf'
|
|
exclude 'pdf/index.pdf'
|
|
exclude 'pdf/index-single.pdf'
|
|
exclude 'pdf/job.pdf'
|
|
exclude 'pdf/jsr-352.pdf'
|
|
exclude 'pdf/readersAndWriters.pdf'
|
|
exclude 'pdf/repeat.pdf'
|
|
exclude 'pdf/retry.pdf'
|
|
exclude 'pdf/scalability.pdf'
|
|
exclude 'pdf/schema-appendix.pdf'
|
|
exclude 'pdf/spring-batch-integration.pdf'
|
|
exclude 'pdf/spring-batch-intro.pdf'
|
|
exclude 'pdf/step.pdf'
|
|
exclude 'pdf/testing.pdf'
|
|
exclude 'pdf/transaction-appendix.pdf'
|
|
exclude 'pdf/whatsnew.pdf'
|
|
exclude 'pdf/glossary.pdf'
|
|
|
|
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}"
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
}
|
|
|
|
from(zipTree(docsZip.archivePath)) {
|
|
into "${baseDir}/docs"
|
|
}
|
|
|
|
from(zipTree(schemaZip.archivePath)) {
|
|
into "${baseDir}/schema"
|
|
}
|
|
|
|
[project(':spring-batch-core'), project(':spring-batch-infrastructure'), project(':spring-batch-test'), project(':spring-batch-integration')].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.'
|
|
}
|
|
|
|
task runTck(dependsOn: subprojects.compileJava) {
|
|
|
|
configurations {
|
|
tck {
|
|
transitive = true
|
|
}
|
|
antcp {
|
|
transitive = true
|
|
exclude module: 'ant'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
tck project(":spring-batch-core")
|
|
|
|
tck "commons-pool:commons-pool:$commonsPoolVersion"
|
|
tck "javax.batch:javax.batch-api:$javaxBatchApiVersion"
|
|
tck "org.springframework:spring-core:$springVersion"
|
|
tck "org.springframework:spring-context:$springVersion"
|
|
tck "org.springframework:spring-beans:$springVersion"
|
|
tck 'commons-logging:commons-logging-api:1.1'
|
|
tck "org.springframework:spring-aop:$springVersion"
|
|
tck "org.springframework:spring-tx:$springVersion"
|
|
tck "org.springframework.retry:spring-retry:$springRetryVersion"
|
|
tck "org.hsqldb:hsqldb:$hsqldbVersion"
|
|
tck "org.springframework:spring-jdbc:$springVersion"
|
|
tck "com.thoughtworks.xstream:xstream:$xstreamVersion"
|
|
tck "org.codehaus.jettison:jettison:$jettisonVersion"
|
|
tck "commons-dbcp:commons-dbcp:$commonsDdbcpVersion"
|
|
tck "org.apache.derby:derby:$derbyVersion"
|
|
|
|
antcp "ant-contrib:ant-contrib:1.0b3"
|
|
}
|
|
|
|
doLast {
|
|
logger.info('tck dependencies: ' + configurations.tck.asPath)
|
|
def tckHome = project.hasProperty('TCK_HOME') ? getProperty('TCK_HOME') : System.getenv("JSR_352_TCK_HOME")
|
|
|
|
assert tckHome : '''\
|
|
tckHome is not set. Please set either the environment variable 'JSR_352_TCK_HOME'
|
|
or specify the Gradle property `TCK_HOME`, e.g: ./gradlew runTck -PTCK_HOME=/path/to/tck'''
|
|
|
|
println "Using the JSR 352 TCK at: '$tckHome'"
|
|
|
|
ant.taskdef resource: "net/sf/antcontrib/antcontrib.properties",
|
|
classpath: configurations.antcp.asPath
|
|
ant.properties['batch.impl.classes'] = configurations.tck.asPath
|
|
ant.ant antfile: "$tckHome/build.xml", target: "run", dir: "$tckHome"
|
|
}
|
|
}
|
|
|
|
task wrapper(type: Wrapper) {
|
|
description = 'Generates gradlew[.bat] scripts'
|
|
gradleVersion = '3.5'
|
|
}
|