Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

allow JVM to exit with forked run-app and add new stop-app command to…

… stop the background JVM
  • Loading branch information...
commit bc5c63e04e90b30ae4ed366d0edbcc343bec3361 1 parent c792c70
@graemerocher graemerocher authored
View
1  grails-plugin-tomcat/src/main/groovy/org/grails/plugins/tomcat/TomcatKillSwitch.java
@@ -39,6 +39,7 @@ public void run() {
tomcat.stop();
tomcat.destroy();
System.setProperty(TOMCAT_KILL_SWITCH_ACTIVE, "false");
+ System.exit(0);
} catch (LifecycleException e) {
System.err.println("Error stopping Tomcat: " + e.getMessage());
System.exit(1);
View
3  grails-plugin-tomcat/src/main/groovy/org/grails/plugins/tomcat/fork/ForkedTomcatServer.groovy
@@ -99,6 +99,9 @@ class ForkedTomcatServer extends ForkedGrailsProcess implements EmbeddableServer
} )
t.start()
+ while(!isAvailable(host, httpPort)) {
+ sleep 100
+ }
System.setProperty(TomcatKillSwitch.TOMCAT_KILL_SWITCH_ACTIVE, "true")
}
View
5 scripts/RunApp.groovy
@@ -32,5 +32,8 @@ target('default': "Runs a Grails application") {
else {
runApp()
}
- watchContext()
+ if(!(grailsServer instanceof org.codehaus.groovy.grails.cli.fork.ForkedGrailsProcess)) {
+ watchContext()
+ }
+
}
View
42 scripts/StopApp.groovy
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2012 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
+ *
+ * http://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.
+ */
+
+
+/**
+* Gant script that stops the running forked Grails application if it is running
+*
+* @author Graeme Rocher
+*
+* @since 2.2
+*/
+
+includeTargets << grailsScript("_GrailsRun")
+
+target('default': "Stops a forked Grails application") {
+ depends(checkVersion, configureProxy)
+
+ try {
+ grailsConsole.updateStatus "Stopping Grails Server..."
+ def url = "http://${serverHost ?: 'localhost'}:${serverPort+1}"
+ grailsConsole.verbose "URL to stop server is $url"
+ new URL(url).getText(connectTimeout: 10000, readTimeout: 10000)
+ grailsConsole.updateStatus "Server Stopped"
+ }
+ catch(e) {
+ grailsConsole.updateStatus "Server Stopped"
+ }
+
+}
View
4 scripts/_GrailsRun.groovy
@@ -58,15 +58,13 @@ ant.path(id: "grails.runtime.classpath", runtimeClasspath)
*/
target(runApp: "Main implementation that executes a Grails application") {
grailsServer = projectRunner.runApp()
- startPluginScanner()
}
/**
* Runs the application in dev mode over HTTPS.
*/
-target(runAppHttps: "Main implementation that executes a Grails application with an HTTPS listener") {
+target(runAppHttps: "Main implementation that executes a Grails application with an HTTPS listener") {
grailsServer = projectRunner.runAppHttps()
- startPluginScanner()
}
/**
Please sign in to comment.
Something went wrong with that request. Please try again.