Repository: airavata Updated Branches: refs/heads/master e5901e8e8 -> 29e122151
support forced shutdown etc. Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/29e12215 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/29e12215 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/29e12215 Branch: refs/heads/master Commit: 29e122151df1f416fdbec56e01a8312edf69dd2e Parents: e5901e8 Author: Saminda Wijeratne <[email protected]> Authored: Mon Mar 10 23:04:07 2014 -0400 Committer: Saminda Wijeratne <[email protected]> Committed: Mon Mar 10 23:04:07 2014 -0400 ---------------------------------------------------------------------- .../org/apache/airavata/server/ServerMain.java | 24 ++++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/29e12215/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java ---------------------------------------------------------------------- diff --git a/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java b/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java index 9e1b1f8..41d2f16 100644 --- a/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java +++ b/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java @@ -47,6 +47,7 @@ public class ServerMain { private static int serverIndex=-1; private static final String serverStartedFileNamePrefix = "airavata-server-start"; private static boolean forcedStop=false; + private static boolean systemShutDown=false; static{ servers = new ArrayList<IServer>(); } @@ -81,6 +82,7 @@ public class ServerMain { serversLoaded=true; Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { + setSystemShutDown(true); stopAllServers(); } }); @@ -156,7 +158,7 @@ public class ServerMain { private static boolean hasStopRequested(){ forcedStop=new File(getServerStopForceFileName()).exists() || new File(stopFileNamePrefixForced).exists(); - return forcedStop || new File(getServerStopFileName()).exists() || new File(stopFileNamePrefix).exists(); + return isSystemShutDown() || forcedStop || new File(getServerStopFileName()).exists() || new File(stopFileNamePrefix).exists(); } private static String getServerStopFileName() { @@ -236,11 +238,11 @@ public class ServerMain { } private static final int SERVER_STATUS_CHANGE_WAIT_INTERVAL=100; - public static void waitForServerToStart(IServer server,Integer maxWait) throws Exception { + private static void waitForServerToStart(IServer server,Integer maxWait) throws Exception { int count=0; - if (server.getStatus()==ServerStatus.STARTING) { - logger.info("Waiting for " + server.getName() + " to start..."); - } +// if (server.getStatus()==ServerStatus.STARTING) { +// logger.info("Waiting for " + server.getName() + " to start..."); +// } while(server.getStatus()==ServerStatus.STARTING && (maxWait==null || count<maxWait)){ Thread.sleep(SERVER_STATUS_CHANGE_WAIT_INTERVAL); count+=SERVER_STATUS_CHANGE_WAIT_INTERVAL; @@ -250,13 +252,13 @@ public class ServerMain { } } - public static void waitForServerToStop(IServer server,Integer maxWait) throws Exception { + private static void waitForServerToStop(IServer server,Integer maxWait) throws Exception { int count=0; if (server.getStatus()==ServerStatus.STOPING) { logger.info("Waiting for " + server.getName() + " to stop..."); } //we are doing hasStopRequested() check because while we are stuck in the loop to stop there could be a forceStop request - while(server.getStatus()==ServerStatus.STOPING && (maxWait==null || count<maxWait) && hasStopRequested() && !forcedStop){ + while(server.getStatus()==ServerStatus.STOPING && (maxWait==null || count<maxWait) && hasStopRequested() && (maxWait!=null || !forcedStop)){ Thread.sleep(SERVER_STATUS_CHANGE_WAIT_INTERVAL); count+=SERVER_STATUS_CHANGE_WAIT_INTERVAL; } @@ -264,4 +266,12 @@ public class ServerMain { throw new Exception("Error stopping the "+server.getName()+"!!!"); } } + + private static boolean isSystemShutDown() { + return systemShutDown; + } + + private static void setSystemShutDown(boolean systemShutDown) { + ServerMain.systemShutDown = systemShutDown; + } } \ No newline at end of file
