Add support for both Spring Boot and non-Spring Boot (pure Java application), Apache Geode client/server samples.

This commit is contained in:
John Blum
2019-05-29 16:24:27 -07:00
parent f38afeb2c3
commit b10ee66483

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2018 the original author or authors.
* Copyright 2019 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.
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package build
import org.gradle.api.DefaultTask
@@ -31,14 +30,24 @@ class GemFireServerPlugin implements Plugin<Project> {
project.tasks.integrationTest.doLast {
println 'Stopping Apache Geode Server...'
project.tasks.gemfireServer.process?.destroy()
// project.tasks.gemfireServer.process?.destroyForcibly()
}
project.tasks.prepareAppServerForIntegrationTests {
dependsOn project.tasks.gemfireServer
doFirst {
if (project.tasks.findByName("bootRun") != null) {
project.tasks.integrationTest.dependsOn project.tasks.gemfireServer
project.tasks.integrationTest.doFirst {
systemProperties['spring.data.gemfire.cache.server.port'] = project.tasks.gemfireServer.port
systemProperties['spring.data.gemfire.pool.servers'] = "localhost[${project.tasks.gemfireServer.port}]"
}
}
project.tasks.findByName("prepareAppServerForIntegrationTests")?.configure { task ->
task.dependsOn project.tasks.gemfireServer
task.doFirst {
project.gretty {
jvmArgs = [ "-Dspring.session.data.geode.cache.server.port=${project.tasks.gemfireServer.port}" ]
jvmArgs = [
"-Dspring.data.gemfire.cache.server.port=${project.tasks.gemfireServer.port}",
"-Dspring.data.gemfire.pool.servers=localhost[${project.tasks.gemfireServer.port}]"
]
}
}
}
@@ -52,17 +61,19 @@ class GemFireServerPlugin implements Plugin<Project> {
static class GemFireServerTask extends DefaultTask {
def mainClassName = "sample.ServerConfig"
def port
def process
boolean debug
String mainClassName = "sample.server.GemFireServer"
@TaskAction
def greet() {
port = availablePort()
println "Starting Apache Geode Server on port [$port]..."
//println "Running with class [$mainClassName]..."
def out = debug ? System.err : new StringBuilder()
def err = debug ? System.err : new StringBuilder()
@@ -79,14 +90,18 @@ class GemFireServerPlugin implements Plugin<Project> {
String[] commandLine = [
javaCommand, '-server', '-ea', '-classpath', classpath,
//"-Dgemfire.log-file=gemfire-server.log",
"-Dgemfire.log-level=" + gemfireLogLevel,
"-Dspring.session.data.geode.cache.server.port=${port}",
"-Dgemfire.log-level=${gemfireLogLevel}",
"-Dspring.data.gemfire.cache.server.port=${port}",
mainClassName
]
//println commandLine
project.tasks.appRun.ext.process = process = commandLine.execute()
process = commandLine.execute()
if (project.tasks.findByName("appRun") != null) {
project.tasks.appRun.ext.process = process
}
process.consumeProcessOutput(out, err)
}