Upgrade gradle 7.6.1

- Switch propdeps-plugin to custom OptionalDependenciesPlugin
- Switch io.spring.dependency-management with custom
  spring-statemachine-platform project
- Use proper gradle publication system
- Switch to testfixtures from a custom tests jar
- Migrate to spring-asciidoctor-backends
- Generic changes to bom/starter create as we now use publications
This commit is contained in:
Janne Valkealahti
2023-05-31 12:27:41 +01:00
parent 6fc2b0070e
commit 7a0feb4774
12 changed files with 579 additions and 405 deletions

View File

@@ -13,7 +13,7 @@ buildscript {
eclipseEmfEcoreVersion = '2.11.1-v20150805-0538'
eclipseUml2UmlVersion = '5.0.0-v20140602-0749'
curatorVersion = '2.11.1'
docResourcesVersion = '0.2.5'
springAsciidoctorBackends = '0.0.5'
awaitilityVersion = '3.1.6'
reactorBlockHoundVersion = '1.0.4.RELEASE'
}
@@ -22,14 +22,21 @@ buildscript {
maven { url 'https://repo.spring.io/plugins-release' }
}
dependencies {
classpath("io.spring.gradle:propdeps-plugin:0.0.8")
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
}
}
plugins {
id 'org.asciidoctor.jvm.convert' version '3.1.0'
id 'org.asciidoctor.jvm.pdf' version '3.1.0'
id 'org.asciidoctor.jvm.convert' version '3.3.2'
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
}
ext {
moduleProjects = subprojects.findAll {
it.name.startsWith("spring-statemachine-") && !it.name.contains("samples") && !it.name.contains("-bom") && !it.name.contains("-platform")
}
javaProjects = subprojects - project(":spring-statemachine-bom") - project(":spring-statemachine-platform")
javaProjectsAndRoot = javaProjects + rootProject
}
def recipeProjects() {
@@ -46,25 +53,17 @@ def sampleProjects() {
def getResolvedVersionOf(dependency) {
// used for resolving version to docs
return configurations.compile.resolvedConfiguration.firstLevelModuleDependencies.findAll { it.moduleName == dependency }[0].moduleVersion
return configurations.compileClasspath.resolvedConfiguration.firstLevelModuleDependencies.findAll { it.moduleName == dependency }[0].moduleVersion
}
configure(allprojects) {
apply plugin: 'java'
configure(javaProjectsAndRoot) {
apply plugin: 'java-library'
apply plugin: 'eclipse'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'idea'
apply plugin: 'propdeps'
apply plugin: 'org.springframework.statemachine.optional-dependencies'
if (System.env.TRAVIS == 'true') {
tasks.withType(GroovyCompile) {
groovyOptions.fork = false
}
tasks.withType(Test) {
maxParallelForks = 1
minHeapSize = '256m'
maxHeapSize = '384m'
}
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
compileJava {
@@ -88,27 +87,17 @@ configure(allprojects) {
maven { url 'https://repo.spring.io/libs-milestone' }
}
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:$springBootVersion"
}
dependencies {
dependency "log4j:log4j:$log4jVersion"
dependency "org.eclipse.persistence:javax.persistence:$eclipsePersistenceVersion"
dependency "com.esotericsoftware:kryo-shaded:$kryoVersion"
dependency "org.springframework.shell:spring-shell:$springShellVersion"
dependency "org.eclipse.uml2:uml:$eclipseUml2UmlVersion"
dependency "org.eclipse.uml2:types:$eclipseUml2TypesVersion"
dependency "org.eclipse.uml2:common:$eclipseUml2CommonVersion"
dependency "org.eclipse.emf:org.eclipse.emf.ecore.xmi:$eclipseEmfXmiVersion"
dependency "org.eclipse.emf:org.eclipse.emf.ecore:$eclipseEmfEcoreVersion"
dependency "org.eclipse.emf:org.eclipse.emf.common:$eclipseEmfCommonVersion"
dependency "org.apache.curator:curator-recipes:$curatorVersion"
dependency "org.apache.curator:curator-test:$curatorVersion"
dependency "org.awaitility:awaitility:$awaitilityVersion"
dependency "io.projectreactor.tools:blockhound:$reactorBlockHoundVersion"
dependency "io.projectreactor.tools:blockhound-junit-platform:$reactorBlockHoundVersion"
configurations {
dependencyManagement {
canBeConsumed = false
canBeResolved = false
visible = false
}
matching { it.name.endsWith("Classpath") }.all { it.extendsFrom(dependencyManagement) }
}
dependencies {
dependencyManagement(enforcedPlatform(dependencies.project(path: ":spring-statemachine-platform")))
}
task integrationTest(type: Test) {
@@ -142,17 +131,17 @@ configure(allprojects) {
}
}
configure(subprojects) { subproject ->
apply from: "${rootProject.projectDir}/publish-maven.gradle"
configure(javaProjects) { subproject ->
apply from: "$rootDir/gradle/publications.gradle"
dependencies {
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("io.projectreactor.tools:blockhound")
testCompile("org.springframework.boot:spring-boot-starter-test")
testRuntime("org.junit.jupiter:junit-jupiter-engine")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("io.projectreactor.tools:blockhound")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
if (project.hasProperty('statemachineBlockHound') && statemachineBlockHound.toBoolean()) {
testRuntime("org.junit.platform:junit-platform-launcher")
testRuntime("io.projectreactor.tools:blockhound-junit-platform")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testRuntimeOnly("io.projectreactor.tools:blockhound-junit-platform")
}
}
@@ -193,56 +182,45 @@ configure(subprojects) { subproject ->
from javadoc
}
artifacts {
archives sourcesJar
archives javadocJar
}
eclipse {
classpath {
plusConfigurations += [ configurations.optional ]
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
}
}
}
}
project('spring-statemachine-core') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = 'Spring State Machine Core'
configurations {
testArtifacts
}
dependencies {
compile 'org.springframework:spring-tx'
compile 'org.springframework:spring-messaging'
compile 'io.projectreactor:reactor-core'
api 'org.springframework:spring-tx'
api 'org.springframework:spring-messaging'
api 'io.projectreactor:reactor-core'
optional 'org.springframework.security:spring-security-core'
testCompile 'org.springframework:spring-test'
testCompile 'org.springframework:spring-web'
testCompile 'org.springframework:spring-webmvc'
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.apache.tomcat.embed:tomcat-embed-core'
testCompile('org.mockito:mockito-core') { dep ->
testImplementation 'org.springframework:spring-test'
testImplementation 'org.springframework:spring-web'
testImplementation 'org.springframework:spring-webmvc'
testImplementation 'io.projectreactor:reactor-test'
testFixturesImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.apache.tomcat.embed:tomcat-embed-core'
testImplementation('org.mockito:mockito-core') { dep ->
exclude group: 'org.hamcrest'
}
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testCompile 'org.assertj:assertj-core'
testCompile 'org.springframework.security:spring-security-config'
testCompile 'org.springframework.security:spring-security-test'
testCompile 'javax.servlet:javax.servlet-api'
testCompile 'org.awaitility:awaitility'
testRuntime 'org.apache.logging.log4j:log4j-core'
}
task testJar(type: Jar) {
classifier = 'tests'
from sourceSets.test.output
}
artifacts {
testArtifacts testJar
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
testImplementation 'org.assertj:assertj-core'
testFixturesImplementation 'org.assertj:assertj-core'
testImplementation 'org.springframework.security:spring-security-config'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'javax.servlet:javax.servlet-api'
testImplementation 'org.awaitility:awaitility'
testRuntimeOnly 'org.apache.logging.log4j:log4j-core'
}
}
@@ -250,10 +228,10 @@ project('spring-statemachine-autoconfigure') {
description = 'Spring State Machine Boot Autoconfigure'
dependencies {
compile project(':spring-statemachine-core')
compile 'org.springframework.boot:spring-boot-autoconfigure'
compile 'org.springframework.boot:spring-boot-actuator-autoconfigure'
compile 'org.springframework.boot:spring-boot-actuator'
api project(':spring-statemachine-core')
api 'org.springframework.boot:spring-boot-autoconfigure'
api 'org.springframework.boot:spring-boot-actuator-autoconfigure'
api 'org.springframework.boot:spring-boot-actuator'
optional project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
optional project(':spring-statemachine-data-common:spring-statemachine-data-redis')
optional project(':spring-statemachine-data-common:spring-statemachine-data-mongodb')
@@ -263,32 +241,33 @@ project('spring-statemachine-autoconfigure') {
optional 'org.springframework.boot:spring-boot-starter-data-jpa'
optional 'org.springframework.boot:spring-boot-starter-data-redis'
optional 'org.springframework.boot:spring-boot-starter-data-mongodb'
testRuntime 'com.h2database:h2'
testCompile 'org.springframework.boot:spring-boot-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
}
}
project('spring-statemachine-test') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = "Spring State Machine Test"
dependencies {
compile 'org.springframework:spring-context'
compile project(':spring-statemachine-core')
compile 'org.springframework:spring-test'
compile 'org.hamcrest:hamcrest-core'
compile 'org.hamcrest:hamcrest-library'
compile 'org.assertj:assertj-core'
api 'org.springframework:spring-context'
api project(':spring-statemachine-core')
api 'org.springframework:spring-test'
api 'org.hamcrest:hamcrest-core'
api 'org.hamcrest:hamcrest-library'
api 'org.assertj:assertj-core'
optional 'junit:junit'
optional 'org.junit.jupiter:junit-jupiter-api'
optional 'org.junit.vintage:junit-vintage-engine'
testCompile('org.mockito:mockito-core') { dep ->
testImplementation('org.mockito:mockito-core') { dep ->
exclude group: 'org.hamcrest'
}
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
@@ -296,17 +275,17 @@ project('spring-statemachine-kryo') {
description = 'Spring State Machine Kryo'
dependencies {
compile project(':spring-statemachine-core')
compile 'com.esotericsoftware:kryo-shaded'
api project(':spring-statemachine-core')
api 'com.esotericsoftware:kryo-shaded'
testCompile (project(':spring-statemachine-test')) { dep ->
testImplementation (project(':spring-statemachine-test')) { dep ->
exclude group: 'junit', module: 'junit'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testRuntime 'org.apache.logging.log4j:log4j-core'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly 'org.apache.logging.log4j:log4j-core'
}
}
@@ -314,51 +293,48 @@ project('spring-statemachine-zookeeper') {
description = 'Spring State Machine Zookeeper'
dependencies {
compile 'org.springframework:spring-context'
compile project(':spring-statemachine-core')
compile project(':spring-statemachine-kryo')
compile 'org.apache.curator:curator-recipes'
api 'org.springframework:spring-context'
api project(':spring-statemachine-core')
api project(':spring-statemachine-kryo')
api 'org.apache.curator:curator-recipes'
// github.com/spring-gradle-plugins/dependency-management-plugin/issues/136
runtime 'log4j:log4j'
compileOnly 'log4j:log4j'
testCompile (project(':spring-statemachine-test')) { dep ->
testImplementation (project(':spring-statemachine-test')) { dep ->
exclude group: 'junit', module: 'junit'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testCompile 'org.apache.curator:curator-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testRuntime 'org.apache.logging.log4j:log4j-core'
testImplementation 'org.apache.curator:curator-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly 'org.apache.logging.log4j:log4j-core'
}
}
project('spring-statemachine-data-common') {
configurations {
testArtifacts.extendsFrom testRuntime
}
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-core')
compile project(':spring-statemachine-kryo')
compile 'org.springframework.data:spring-data-commons'
api project(':spring-statemachine-core')
api project(':spring-statemachine-kryo')
api 'org.springframework.data:spring-data-commons'
optional 'org.springframework.security:spring-security-core'
compile 'com.fasterxml.jackson.core:jackson-core'
compile 'com.fasterxml.jackson.core:jackson-databind'
testCompile (project(':spring-statemachine-test')) { dep ->
api 'com.fasterxml.jackson.core:jackson-core'
api 'com.fasterxml.jackson.core:jackson-databind'
testImplementation (project(':spring-statemachine-test')) { dep ->
exclude group: 'junit', module: 'junit'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework.boot:spring-boot-starter-test'
testRuntime 'org.springframework.boot:spring-boot-starter-web'
}
task testJar(type: Jar) {
classifier = 'tests'
from sourceSets.test.output
}
artifacts {
testArtifacts testJar
testFixturesImplementation (project(':spring-statemachine-test')) { dep ->
exclude group: 'junit', module: 'junit'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testFixturesImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-web'
}
}
@@ -366,30 +342,31 @@ project('spring-statemachine-cluster') {
description = 'Spring State Machine Cluster'
dependencies {
compile project(':spring-statemachine-zookeeper')
compile 'org.springframework.integration:spring-integration-zookeeper'
api project(':spring-statemachine-zookeeper')
api 'org.springframework.integration:spring-integration-zookeeper'
testCompile (project(':spring-statemachine-test')) { dep ->
testImplementation (project(':spring-statemachine-test')) { dep ->
exclude group: 'junit', module: 'junit'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testCompile 'org.apache.curator:curator-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testRuntime 'org.apache.logging.log4j:log4j-core'
testImplementation 'org.apache.curator:curator-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly 'org.apache.logging.log4j:log4j-core'
}
}
project('spring-statemachine-uml') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = 'Spring State Machine Uml'
dependencies {
compile project(':spring-statemachine-core')
api project(':spring-statemachine-core')
optional 'org.springframework.security:spring-security-core'
// these eclipse maven deps are simply broken
compile('org.eclipse.uml2:uml') { dep ->
api('org.eclipse.uml2:uml') { dep ->
exclude group: 'org.eclipse.core', module: 'runtime'
exclude group: 'org.eclipse.emf', module: 'ecore'
exclude group: 'org.eclipse.emf.ecore', module: 'xmi'
@@ -397,111 +374,101 @@ project('spring-statemachine-uml') {
exclude group: 'org.eclipse.uml2', module: 'common'
exclude group: 'org.eclipse.uml2', module: 'types'
}
compile('org.eclipse.uml2:types') { dep ->
api('org.eclipse.uml2:types') { dep ->
exclude group: 'org.eclipse.core', module: 'runtime'
exclude group: 'org.eclipse.emf', module: 'ecore'
exclude group: 'org.eclipse.uml2', module: 'common'
}
compile('org.eclipse.uml2:common') { dep ->
api('org.eclipse.uml2:common') { dep ->
exclude group: 'org.eclipse.core', module: 'runtime'
exclude group: 'org.eclipse.emf', module: 'ecore'
}
compile 'org.eclipse.emf:org.eclipse.emf.ecore.xmi'
compile 'org.eclipse.emf:org.eclipse.emf.ecore'
compile 'org.eclipse.emf:org.eclipse.emf.common'
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testCompile 'org.awaitility:awaitility'
testRuntime 'org.apache.logging.log4j:log4j-core'
api 'org.eclipse.emf:org.eclipse.emf.ecore.xmi'
api 'org.eclipse.emf:org.eclipse.emf.ecore'
api 'org.eclipse.emf:org.eclipse.emf.common'
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
testImplementation 'org.awaitility:awaitility'
testRuntimeOnly 'org.apache.logging.log4j:log4j-core'
}
}
project('spring-statemachine-build-tests') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = 'Spring State Machine Build Tests'
dependencies {
testCompile project(':spring-statemachine-uml')
testCompile project(':spring-statemachine-test')
testCompile project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
testCompile project(':spring-statemachine-data-common:spring-statemachine-data-redis')
testCompile project(':spring-statemachine-data-common:spring-statemachine-data-mongodb')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.apache.commons:commons-pool2'
testRuntime 'org.springframework.boot:spring-boot-starter-data-mongodb'
testRuntime 'org.springframework.boot:spring-boot-starter-data-redis'
testRuntime 'redis.clients:jedis'
testCompile 'org.springframework.boot:spring-boot-starter-data-jpa'
testCompile 'com.h2database:h2'
testCompile 'org.springframework.boot:spring-boot-starter'
testCompile 'org.springframework:spring-test'
testImplementation project(':spring-statemachine-uml')
testImplementation project(':spring-statemachine-test')
testImplementation project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
testImplementation project(':spring-statemachine-data-common:spring-statemachine-data-redis')
testImplementation project(':spring-statemachine-data-common:spring-statemachine-data-mongodb')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.apache.commons:commons-pool2'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-data-mongodb'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-data-redis'
testRuntimeOnly 'redis.clients:jedis'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa'
testImplementation 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework:spring-test'
}
}
configure(recipeProjects()) {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-recipes-common')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
api project(':spring-statemachine-recipes-common')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
}
}
project('spring-statemachine-recipes-common') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile 'org.springframework:spring-context'
compile project(':spring-statemachine-core')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
api 'org.springframework:spring-context'
api project(':spring-statemachine-core')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
}
}
project('spring-statemachine-bom') {
apply plugin: 'java-platform'
apply from: "$rootDir/gradle/publications.gradle"
description = 'Spring Statemachine (Bill of Materials)'
group = 'org.springframework.statemachine'
dependencyManagement {
generatedPomCustomization {
enabled = false
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
dependencies {
constraints {
parent.moduleProjects.sort { "$it.name" }.each {
api it
}
}
}
configurations.archives.artifacts.clear()
artifacts {
// work around GRADLE-2406 by attaching text artifact
archives(file('spring-statemachine-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.name.contains('spring-statemachine-samples') &&
!p.name.contains('spring-statemachine-build-tests') &&
p != project) {
delegate.dependency {
delegate.groupId(p.group)
delegate.artifactId(p.name)
delegate.version(p.version)
}
}
}
}
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = 'spring-statemachine-bom'
from components.javaPlatform
}
}
}
@@ -511,24 +478,8 @@ project('spring-statemachine-bom') {
project('spring-statemachine-starter') {
description = 'Spring Statemachine Starter'
dependencies {
compile project(':spring-statemachine-autoconfigure')
compile 'org.springframework.boot:spring-boot-starter'
}
install {
repositories.mavenInstaller {
pom.whenConfigured {
withXml {
asNode().children().first() + {
delegate.parent {
delegate.groupId('org.springframework.boot')
delegate.artifactId('spring-boot-starter-parent')
delegate.version("$springBootVersion")
}
}
}
}
}
api project(':spring-statemachine-autoconfigure')
api 'org.springframework.boot:spring-boot-starter'
}
}
@@ -539,19 +490,19 @@ configure(sampleProjects()) {
targetCompatibility = 1.8
}
dependencies {
compile project(':spring-statemachine-core')
compile 'org.springframework:spring-context-support'
testCompile('org.mockito:mockito-core') { dep ->
api project(':spring-statemachine-core')
api 'org.springframework:spring-context-support'
testImplementation('org.mockito:mockito-core') { dep ->
exclude group: 'org.hamcrest'
}
testCompile (project(':spring-statemachine-test')) { dep ->
testImplementation (project(':spring-statemachine-test')) { dep ->
exclude group: 'junit', module: 'junit'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testCompile 'org.springframework.boot:spring-boot-test'
testCompile 'org.springframework:spring-test'
testCompile("org.junit.jupiter:junit-jupiter-api")
testCompile("org.junit.jupiter:junit-jupiter-engine")
testImplementation 'org.springframework.boot:spring-boot-test'
testImplementation 'org.springframework:spring-test'
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("org.junit.jupiter:junit-jupiter-engine")
}
build.dependsOn bootJar
@@ -561,15 +512,18 @@ configure(sampleProjects()) {
}
project('spring-statemachine-samples-common') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-core')
compile 'org.springframework.shell:spring-shell'
compile 'org.springframework.boot:spring-boot-starter'
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
api project(':spring-statemachine-core')
api 'org.springframework.shell:spring-shell'
api 'org.springframework.boot:spring-boot-starter'
testImplementation(testFixtures(project(":spring-statemachine-core")))
}
}
configure(rootProject) {
apply from: "$rootDir/gradle/publications.gradle"
description = 'Spring State Machine'
pluginManager.withPlugin('com.jfrog.artifactory') {
@@ -588,8 +542,8 @@ configure(rootProject) {
dependencies {
// just used to get version into docs
compile 'org.springframework:spring-core'
compile 'org.springframework.boot:spring-boot'
api 'org.springframework:spring-core'
api 'org.springframework.boot:spring-boot'
}
// don't publish the default jar for the root project
@@ -604,18 +558,18 @@ configure(rootProject) {
}
task prepareAsciidocBuild(type: Sync) {
dependsOn configurations.docs
// copy doc resources
from {
configurations.docs.collect { zipTree(it) }
}
// and doc sources
from 'docs/src/reference/asciidoc/'
// to a build directory of your choice
into "$buildDir/asciidoc/assemble"
}
asciidoctorj {
version = '2.4.3'
}
asciidoctor {
configurations "docs"
dependsOn 'prepareAsciidocBuild'
dependsOn 'copyDocsSamples'
baseDirFollowsSourceFile()
@@ -628,6 +582,9 @@ configure(rootProject) {
include 'images/*', 'css/**', 'js/**', 'samples/**'
}
}
outputOptions {
backends "spring-html"
}
options doctype: 'book', eruby: 'erubis'
attributes \
'docinfo': 'shared',
@@ -647,7 +604,6 @@ configure(rootProject) {
}
asciidoctorPdf {
dependsOn 'prepareAsciidocBuild'
dependsOn 'copyDocsSamples'
baseDirFollowsSourceFile()
sourceDir "$buildDir/asciidoc/assemble"
@@ -663,7 +619,7 @@ configure(rootProject) {
}
dependencies { // for integration tests
docs "io.spring.docresources:spring-doc-resources:${docResourcesVersion}@zip"
docs "io.spring.asciidoctor.backends:spring-asciidoctor-backends:${springAsciidoctorBackends}"
}
task copyDocsSamples(type: Copy) {
@@ -711,7 +667,7 @@ configure(rootProject) {
)
// disable javadocs for samples
source subprojects
source javaProjects
.findAll { project ->
!project.name.contains('samples')
}
@@ -720,7 +676,7 @@ configure(rootProject) {
}
destinationDir = new File(buildDir, "api")
classpath = files(subprojects.collect { project ->
classpath = files(javaProjects.collect { project ->
project.sourceSets.main.compileClasspath
})
maxMemory = '1024m'
@@ -770,7 +726,7 @@ configure(rootProject) {
into "${baseDir}/docs"
}
subprojects.each { subproject ->
javaProjects.each { subproject ->
into ("${baseDir}/libs") {
from subproject.jar
if (subproject.tasks.findByPath('sourcesJar')) {
@@ -838,8 +794,13 @@ configure(rootProject) {
}
}
artifacts {
archives docsZip
archives distZip
publishing {
publications {
mavenJava(MavenPublication) {
artifact docsZip
artifact distZip
}
}
}
}

17
buildSrc/build.gradle Normal file
View File

@@ -0,0 +1,17 @@
plugins {
id 'java-gradle-plugin'
}
repositories {
mavenCentral()
gradlePluginPortal()
}
gradlePlugin {
plugins {
optionalDependenciesPlugin {
id = "org.springframework.statemachine.optional-dependencies"
implementationClass = "org.springframework.statemachine.gradle.OptionalDependenciesPlugin"
}
}
}

View File

@@ -0,0 +1,59 @@
/*
* Copyright 2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.statemachine.gradle;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.tasks.SourceSetContainer;
/**
* A {@code Plugin} that adds support for Maven-style optional dependencies.
* Creates a new
* {@code optional} configuration. The {@code optional} configuration is part of
* the
* project's compile and runtime classpaths but does not affect the classpath of
* dependent projects.
*
* @author Janne Valkealahti
*/
public class OptionalDependenciesPlugin implements Plugin<Project> {
/**
* Name of the {@code optional} configuration.
*/
public static final String OPTIONAL_CONFIGURATION_NAME = "optional";
@Override
public void apply(Project project) {
Configuration optional = project.getConfigurations().create("optional");
optional.setCanBeConsumed(false);
optional.setCanBeResolved(false);
project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> {
SourceSetContainer sourceSets = project.getExtensions().getByType(JavaPluginExtension.class)
.getSourceSets();
sourceSets.all((sourceSet) -> {
project.getConfigurations().getByName(sourceSet.getCompileClasspathConfigurationName())
.extendsFrom(optional);
project.getConfigurations().getByName(sourceSet.getRuntimeClasspathConfigurationName())
.extendsFrom(optional);
});
});
}
}

View File

@@ -0,0 +1,16 @@
apply plugin: 'java-test-fixtures'
compileTestFixturesJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
eclipse.classpath {
file.whenMerged { classpath ->
classpath.entries.findAll { entry -> entry instanceof org.gradle.plugins.ide.eclipse.model.ProjectDependency && entry.entryAttributes.test }
.each { it.entryAttributes['test'] = 'false' }
}
}
components.java.withVariantsFromConfiguration(configurations.testFixturesApiElements) { skip() }
components.java.withVariantsFromConfiguration(configurations.testFixturesRuntimeElements) { skip() }

View File

@@ -0,0 +1,50 @@
apply plugin: "maven-publish"
publishing {
publications {
mavenJava(MavenPublication) {
pom {
afterEvaluate {
name = project.description
description = project.description
}
url = "https://github.com/spring-projects/spring-statemachine"
organization {
name = "Spring IO"
url = "https://spring.io/spring-statemachine"
}
licenses {
license {
name = "Apache License, Version 2.0"
url = "https://www.apache.org/licenses/LICENSE-2.0"
distribution = "repo"
}
}
scm {
url = "https://github.com/spring-projects/spring-statemachine"
connection = "scm:git:git://github.com/spring-projects/spring-statemachine"
developerConnection = "scm:git:git://github.com/spring-projects/spring-statemachine"
}
developers {
developer {
id = 'jvalkeal'
name = 'Janne Valkealahti'
email = 'janne.valkealahti@gmail.com'
}
}
issueManagement {
system = "GitHub"
url = "https://github.com/spring-projects/spring-statemachine/issues"
}
}
versionMapping {
usage('java-api') {
fromResolutionResult()
}
usage('java-runtime') {
fromResolutionResult()
}
}
}
}
}

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -1,5 +1,6 @@
rootProject.name = 'spring-statemachine'
include 'spring-statemachine-platform'
include 'spring-statemachine-core'
include 'spring-statemachine-test'
include 'spring-statemachine-kryo'

View File

@@ -1,52 +1,58 @@
description = 'Spring State Machine Data Common'
project('spring-statemachine-data-jpa') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = 'Spring State Machine Data Jpa'
dependencies {
compile project(':spring-statemachine-data-common')
compile 'org.springframework:spring-orm'
testCompile project(':spring-statemachine-test')
testCompile project(path:':spring-statemachine-data-common', configuration:'testArtifacts')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-data-common')
api 'org.springframework:spring-orm'
testImplementation project(':spring-statemachine-test')
testImplementation(testFixtures(project(":spring-statemachine-data-common")))
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
optional 'org.eclipse.persistence:javax.persistence'
testCompile 'org.hsqldb:hsqldb'
testCompile 'org.springframework.boot:spring-boot-starter-test'
testRuntime 'org.springframework.boot:spring-boot-starter-data-jpa'
testRuntime 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.hsqldb:hsqldb'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-data-jpa'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-web'
}
}
project('spring-statemachine-data-redis') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = 'Spring State Machine Data Redis'
dependencies {
compile project(':spring-statemachine-data-common')
compile 'org.springframework.data:spring-data-redis'
testCompile project(':spring-statemachine-test')
api project(':spring-statemachine-data-common')
api 'org.springframework.data:spring-data-redis'
testImplementation project(':spring-statemachine-test')
optional 'org.eclipse.persistence:javax.persistence'
testCompile project(path:':spring-statemachine-data-common', configuration:'testArtifacts')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework.boot:spring-boot-starter-test'
testRuntime 'org.apache.commons:commons-pool2'
testRuntime 'redis.clients:jedis'
testRuntime 'org.springframework.boot:spring-boot-starter-data-redis'
testRuntime 'org.springframework.boot:spring-boot-starter-web'
testImplementation(testFixtures(project(":spring-statemachine-data-common")))
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.apache.commons:commons-pool2'
testRuntimeOnly 'redis.clients:jedis'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-data-redis'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-web'
}
}
project('spring-statemachine-data-mongodb') {
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
description = 'Spring State Machine Data MongoDB'
dependencies {
compile project(':spring-statemachine-data-common')
compile 'org.springframework.data:spring-data-mongodb'
testCompile project(':spring-statemachine-test')
api project(':spring-statemachine-data-common')
api 'org.springframework.data:spring-data-mongodb'
testImplementation project(':spring-statemachine-test')
optional 'org.eclipse.persistence:javax.persistence'
testCompile project(path:':spring-statemachine-data-common', configuration:'testArtifacts')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework.boot:spring-boot-starter-test'
testRuntime 'org.springframework.boot:spring-boot-starter-data-mongodb'
testRuntime 'org.springframework.boot:spring-boot-starter-web'
testImplementation(testFixtures(project(":spring-statemachine-data-common")))
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-data-mongodb'
testRuntimeOnly 'org.springframework.boot:spring-boot-starter-web'
}
}

View File

@@ -0,0 +1,28 @@
plugins {
id 'java-platform'
}
javaPlatform {
allowDependencies()
}
dependencies {
api platform("org.springframework.boot:spring-boot-dependencies:$springBootVersion")
constraints {
api "log4j:log4j:$log4jVersion"
api "org.eclipse.persistence:javax.persistence:$eclipsePersistenceVersion"
api "com.esotericsoftware:kryo-shaded:$kryoVersion"
api "org.springframework.shell:spring-shell:$springShellVersion"
api "org.eclipse.uml2:uml:$eclipseUml2UmlVersion"
api "org.eclipse.uml2:types:$eclipseUml2TypesVersion"
api "org.eclipse.uml2:common:$eclipseUml2CommonVersion"
api "org.eclipse.emf:org.eclipse.emf.ecore.xmi:$eclipseEmfXmiVersion"
api "org.eclipse.emf:org.eclipse.emf.ecore:$eclipseEmfEcoreVersion"
api "org.eclipse.emf:org.eclipse.emf.common:$eclipseEmfCommonVersion"
api "org.apache.curator:curator-recipes:$curatorVersion"
api "org.apache.curator:curator-test:$curatorVersion"
api "org.awaitility:awaitility:$awaitilityVersion"
api "io.projectreactor.tools:blockhound:$reactorBlockHoundVersion"
api "io.projectreactor.tools:blockhound-junit-platform:$reactorBlockHoundVersion"
}
}

View File

@@ -2,216 +2,252 @@ description = 'Spring State Machine Samples Common'
project('spring-statemachine-samples-turnstile') {
description = 'Spring State Machine Turnstile Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-turnstilereactive') {
description = 'Spring State Machine Turnstile Reactive Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
compile 'org.springframework.boot:spring-boot-starter-webflux'
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
testCompile 'org.springframework.boot:spring-boot-starter-test'
api project(':spring-statemachine-samples-common')
api 'org.springframework.boot:spring-boot-starter-webflux'
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
}
project('spring-statemachine-samples-showcase') {
description = 'Spring State Machine Showcase Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
compile project(':spring-statemachine-samples-common')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
}
}
project('spring-statemachine-samples-cdplayer') {
description = 'Spring State Machine CD Player Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-tasks') {
description = 'Spring State Machine Parallel Regions Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-washer') {
description = 'Spring State Machine History State Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-zookeeper') {
description = 'Spring State Machine Distributed Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
compile project(':spring-statemachine-zookeeper')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
api project(':spring-statemachine-zookeeper')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-persist') {
description = 'Spring State Machine Persist Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-samples-common')
compile project(':spring-statemachine-recipes-common')
compile ('org.hsqldb:hsqldb')
compile ('org.springframework:spring-jdbc')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-samples-common')
api project(':spring-statemachine-recipes-common')
api ('org.hsqldb:hsqldb')
api ('org.springframework:spring-jdbc')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-web') {
description = 'Spring State Machine Web Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-cluster')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-websocket')
compile('org.springframework:spring-webmvc')
compile('org.springframework:spring-websocket')
compile('org.springframework.security:spring-security-messaging')
compile('org.springframework.session:spring-session-core')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-cluster')
api('org.springframework.boot:spring-boot-starter-security')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-websocket')
api('org.springframework:spring-webmvc')
api('org.springframework:spring-websocket')
api('org.springframework.security:spring-security-messaging')
api('org.springframework.session:spring-session-core')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-scope') {
description = 'Spring State Machine Web Scope Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-security') {
description = 'Spring State Machine Web Security Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.security:spring-security-config')
compile('org.springframework.security:spring-security-web')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
api('org.springframework.boot:spring-boot-starter-security')
api('org.springframework.security:spring-security-config')
api('org.springframework.security:spring-security-web')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-eventservice') {
description = 'Spring State Machine Event Service Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-data-common:spring-statemachine-data-redis')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.apache.commons:commons-pool2')
runtime('redis.clients:jedis')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-data-common:spring-statemachine-data-redis')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
api('org.apache.commons:commons-pool2')
implementation('redis.clients:jedis')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-deploy') {
description = 'Spring State Machine Deploy Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-uml')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-uml')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-ordershipping') {
description = 'Spring State Machine Order Shipping Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-uml')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-uml')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-datajpa') {
description = 'Spring State Machine Data Jpa Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-autoconfigure')
compile project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-devtools')
compile('com.h2database:h2')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-autoconfigure')
api project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
api('org.springframework.boot:spring-boot-starter-data-jpa')
api('org.springframework.boot:spring-boot-devtools')
api('com.h2database:h2')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-datajpamultipersist') {
description = 'Spring State Machine Data Jpa Multi Persist Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-autoconfigure')
compile project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-devtools')
compile('com.h2database:h2')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-autoconfigure')
api project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
api('org.springframework.boot:spring-boot-starter-data-jpa')
api('org.springframework.boot:spring-boot-devtools')
api('com.h2database:h2')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-datapersist') {
description = 'Spring State Machine Data Persist Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-autoconfigure')
compile project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
compile project(':spring-statemachine-data-common:spring-statemachine-data-redis')
compile project(':spring-statemachine-data-common:spring-statemachine-data-mongodb')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-data-redis')
compile('org.springframework.boot:spring-boot-starter-data-mongodb')
compile('org.springframework.boot:spring-boot-devtools')
compile('com.h2database:h2')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-autoconfigure')
api project(':spring-statemachine-data-common:spring-statemachine-data-jpa')
api project(':spring-statemachine-data-common:spring-statemachine-data-redis')
api project(':spring-statemachine-data-common:spring-statemachine-data-mongodb')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
api('org.springframework.boot:spring-boot-starter-data-jpa')
api('org.springframework.boot:spring-boot-starter-data-redis')
api('org.springframework.boot:spring-boot-starter-data-mongodb')
api('org.springframework.boot:spring-boot-devtools')
api('com.h2database:h2')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}
project('spring-statemachine-samples-monitoring') {
description = 'Spring State Machine Monitoring Sample'
apply from: "$rootDir/gradle/java-test-fixtures.gradle"
dependencies {
compile project(':spring-statemachine-autoconfigure')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
testCompile('com.jayway.jsonpath:json-path')
testCompile('com.jayway.jsonpath:json-path-assert')
testCompile project(path:':spring-statemachine-core', configuration:'testArtifacts')
testCompile 'io.projectreactor:reactor-test'
api project(':spring-statemachine-autoconfigure')
api('org.springframework.boot:spring-boot-starter-actuator')
api('org.springframework.boot:spring-boot-starter-web')
api('org.springframework.boot:spring-boot-starter-thymeleaf')
testImplementation('com.jayway.jsonpath:json-path')
testImplementation('com.jayway.jsonpath:json-path-assert')
testImplementation(testFixtures(project(":spring-statemachine-core")))
testImplementation 'io.projectreactor:reactor-test'
}
}