apply plugin: 'io.spring.convention.docs' apply plugin: 'io.spring.convention.spring-test' dependencies { testCompile project(':spring-session-core') testCompile project(':spring-session-data-redis') testCompile project(':spring-session-hazelcast') testCompile project(':spring-session-jdbc') testCompile 'org.springframework:spring-jdbc' testCompile 'org.springframework:spring-messaging' testCompile 'org.springframework:spring-webmvc' testCompile 'org.springframework:spring-websocket' testCompile 'org.springframework.security:spring-security-config' testCompile 'org.springframework.security:spring-security-web' testCompile 'org.springframework.security:spring-security-test' testCompile 'org.mockito:mockito-core' testCompile 'org.springframework:spring-test' testCompile 'org.assertj:assertj-core' testCompile 'com.hazelcast:hazelcast' testCompile 'io.lettuce:lettuce-core' testCompile 'javax.servlet:javax.servlet-api' testCompile 'org.junit.jupiter:junit-jupiter-api' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' } sourceSets { test { java { srcDirs = ['modules/ROOT/examples/java'] } resources { srcDirs = ['modules/ROOT/examples/resources'] } } } tasks.register("generateAntora") { group = "Documentation" description = "Generates antora files" dependsOn 'generateAntoraYml', 'generateAntoraComponentVersion' } tasks.register("generateAntoraYml") { group = "Documentation" description = "Generates the antora.yml for dynamic properties" doLast { def dollar = '$' def ghTag = snapshotBuild ? 'main' : project.version def ghUrl = "https://github.com/spring-projects/spring-session/tree/$ghTag" def versions = resolvedVersions(project.configurations.testRuntimeClasspath) def ymlVersions = "" versions.call().each { name, version -> ymlVersions += """ ${name}: ${version}""" } def outputFile = new File("$buildDir/generateAntora/antora.yml") outputFile.getParentFile().mkdirs() outputFile.createNewFile() outputFile.setText("""name: session title: Spring Session start_page: ROOT:index.adoc asciidoc: attributes: download-url: "https://github.com/spring-projects/spring-session/archive/${ghTag}.zip" gh-samples-url: "$ghUrl/spring-session-samples/" samples-dir: "example${dollar}spring-session-samples/" session-jdbc-main-resources-dir: "example${dollar}session-jdbc-main-resources-dir/" spring-session-data-mongodb-dir: "example${dollar}spring-session-data-mongodb-dir/" docs-test-dir: "example${dollar}java/" websocketdoc-test-dir: 'example${dollar}java/docs/websocket/' docs-test-resources-dir: "example${dollar}resources/" indexdoc-tests: "example${dollar}java/docs/IndexDocTests.java" spring-session-version: ${project.version} version-milestone: $milestoneBuild version-release: $releaseBuild version-snapshot: $snapshotBuild ${ymlVersions} """) } } tasks.register("generateAntoraComponentVersion") { group = "Documentation" description = "Generates the antora.component.version file" doLast { def outputFile = new File("$buildDir/generateAntora/antora.component.version") outputFile.getParentFile().mkdirs() outputFile.createNewFile() def antoraVersion = project.version.replaceAll(/^(\d+\.\d+)\.\d+(-\w+)?$/, '$1') outputFile.setText("$antoraVersion") } } repositories { maven { url "https://repo.spring.io/release" } }