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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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 {
		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'
	}
}

