Repository: airavata
Updated Branches:
  refs/heads/master 4a0571d6b -> 13c67c460


updating file clearing on start and stop


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/e181bfb2
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/e181bfb2
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/e181bfb2

Branch: refs/heads/master
Commit: e181bfb24c01e142e8ee4e92ce30d80ca3c029e9
Parents: 58872ce
Author: Saminda Wijeratne <[email protected]>
Authored: Tue Mar 11 15:51:50 2014 -0400
Committer: Saminda Wijeratne <[email protected]>
Committed: Tue Mar 11 15:51:50 2014 -0400

----------------------------------------------------------------------
 .../common/utils/ApplicationSettings.java       | 17 +++++++-
 .../airavata/common/utils/StringUtil.java       |  5 ++-
 .../src/main/assembly/bin-assembly.xml          | 18 --------
 .../src/main/resources/bin/airavata-server.sh   | 14 +++---
 .../resources/conf/airavata-server.properties   |  3 ++
 .../org/apache/airavata/server/ServerMain.java  | 45 +++++++++++++++++++-
 6 files changed, 73 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/e181bfb2/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
----------------------------------------------------------------------
diff --git 
a/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
 
b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
index 82bf4dc..ea3b1ef 100644
--- 
a/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
+++ 
b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
@@ -54,6 +54,11 @@ public abstract class ApplicationSettings {
 
     private final static Logger logger = 
LoggerFactory.getLogger(ApplicationSettings.class);
 
+    private static final String SHUTDOWN_STATEGY_STRING="shutdown.strategy";
+    public static enum ShutdownStrategy{
+       NONE,
+       SELF_TERMINATE
+    }
     static{
        loadProperties();
     }
@@ -265,5 +270,15 @@ public abstract class ApplicationSettings {
     public static void mergeSettingsCommandLineArgs(String[] args){
        properties.putAll(StringUtil.parseCommandLineOptions(args));
     }
-    
+ 
+    public static ShutdownStrategy getShutdownStrategy() throws Exception{
+       String strategy = null;
+       try {
+                       strategy = getSetting(SHUTDOWN_STATEGY_STRING, 
ShutdownStrategy.SELF_TERMINATE.toString());
+                       return ShutdownStrategy.valueOf(strategy);
+               } catch (Exception e) {
+                       //if the string mentioned in config is invalid
+                       throw new Exception("Invalid shutdown strategy 
configured : "+strategy);
+               }
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/e181bfb2/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
----------------------------------------------------------------------
diff --git 
a/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
 
b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
index 6356326..3ce5cda 100644
--- 
a/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
+++ 
b/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
@@ -404,8 +404,9 @@ public class StringUtil {
                Map<String,String> commandLineOptions=new 
HashMap<String,String>();
                try {
                        CommandLineParameters cmdParameters = 
getCommandLineParser(args);
-                       for (String s : cmdParameters.getParameters().keySet()) 
{
-                               commandLineOptions.put(s, 
cmdParameters.getParameters().get(s));
+                       Map<String, String> parameters = 
cmdParameters.getParameters();
+                       for (String s : parameters.keySet()) {
+                               commandLineOptions.put(s, 
parameters.get(s)==null? "":parameters.get(s));
                        }
                } catch (ParseException e1) {
                        e1.printStackTrace();

http://git-wip-us.apache.org/repos/asf/airavata/blob/e181bfb2/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
----------------------------------------------------------------------
diff --git 
a/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml 
b/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
index ab3bbf3..cd75afa 100644
--- a/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
+++ b/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
@@ -229,26 +229,8 @@
                <include>org.apache.airavata:airavata-api-server:jar</include>
                <include>org.apache.airavata:airavata-api-stubs:jar</include>
                 <include>org.apache.openjpa:openjpa-all:jar</include>
-                <include>com.sun.jersey:jersey-client:jar</include>
-                <include>com.sun.jersey:jersey-core:jar</include>
                 <include>org.bouncycastle:bcprov-jdk16</include>
-                <include>org.apache.tomcat:tomcat-jasper</include>
-                <include>org.apache.tomcat:tomcat-jasper-el</include>
-                <include>org.apache.tomcat:tomcat-jsp-api</include>
-                <include>org.apache.tomcat.embed:tomcat-embed-core</include>
-                <include>org.apache.tomcat.embed:tomcat-embed-jasper</include>
-                
<include>org.apache.tomcat.embed:tomcat-embed-logging-juli</include>
                 <include>javax.servlet:javax.servlet-api</include>
-                <include>org.apache.shiro:shiro-core</include>
-                <include>com.sun.jersey:jersey-servlet</include>
-                <include>com.sun.jersey:jersey-json</include>
-                <include>com.sun.jersey.contribs:jersey-multipart</include>
-                <include>com.sun.jersey:jersey-server</include>
-                <include>com.sun.jersey:jersey-client</include>
-                <include>org.codehaus.jackson:jackson-jaxrs</include>
-                <include>org.codehaus.jackson:jackson-core-asl</include>
-                <include>org.codehaus.jackson:jackson-mapper-asl</include>
-                <include>org.codehaus.jackson:jackson-xc</include>
                 <include>xerces:xercesImpl:jar:2.9.1</include>
                 <include>com.ibm.icu:icu4j</include>
                 <include>com.google.guava:guava</include>

http://git-wip-us.apache.org/repos/asf/airavata/blob/e181bfb2/modules/distribution/airavata-server/src/main/resources/bin/airavata-server.sh
----------------------------------------------------------------------
diff --git 
a/modules/distribution/airavata-server/src/main/resources/bin/airavata-server.sh
 
b/modules/distribution/airavata-server/src/main/resources/bin/airavata-server.sh
index 715da4e..9247d68 100755
--- 
a/modules/distribution/airavata-server/src/main/resources/bin/airavata-server.sh
+++ 
b/modules/distribution/airavata-server/src/main/resources/bin/airavata-server.sh
@@ -52,13 +52,13 @@ do
         -h)
             echo "Usage: airavata-server.sh [command-options]"
             echo "command options:"
-           echo "  start                   Start server in daemon mode"
-           echo "  stop [--serverIndex n]  Stop all airavata servers. Specify 
serverIndex stop a particular instance"
-           echo "  --<key>=<value>         Server setting(s) to override or 
introduce (overrides values in airavata-server.properties)"
-            echo "  -nologo                 Do not show airavata logo"
-            echo "  -xdebug                 Start Airavata Server under JPDA 
debugger"
-            echo "  -security               Enable Java 2 security"
-            echo "  -h                      Display this help and exit"
+           echo "  start                            Start server in daemon 
mode"
+           echo "  stop [--serverIndex n] [--force] Stop all airavata servers. 
Specify serverIndex stop a particular instance"
+           echo "  --<key>[=<value>]                Server setting(s) to 
override or introduce (overrides values in airavata-server.properties)"
+            echo "  -nologo                         Do not show airavata logo"
+            echo "  -xdebug                         Start Airavata Server 
under JPDA debugger"
+            echo "  -security                       Enable Java 2 security"
+            echo "  -h                               Display this help and 
exit"
             shift
             exit 0
         ;;

http://git-wip-us.apache.org/repos/asf/airavata/blob/e181bfb2/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
----------------------------------------------------------------------
diff --git 
a/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
 
b/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
index 74220c2..f2bb8d7 100644
--- 
a/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
+++ 
b/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
@@ -277,4 +277,7 @@ 
orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer
 ###---------------------------API Server module 
Configurations---------------------------###
 apiserver=org.apache.airavata.api.server.AiravataAPIServer
 
+###---------------------------Airavata Server 
Configurations---------------------------###
 servers=apiserver,orchestrator
+#shutdown.trategy=NONE
+shutdown.trategy=SELF_TERMINATE 

http://git-wip-us.apache.org/repos/asf/airavata/blob/e181bfb2/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 3a25884..20534fb 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
@@ -28,6 +28,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ApplicationSettings.ShutdownStrategy;
 import org.apache.airavata.common.utils.IServer;
 import org.apache.airavata.common.utils.IServer.ServerStatus;
 import org.apache.airavata.common.utils.ServerSettings;
@@ -112,12 +113,27 @@ public class ServerMain {
                if (hasStopRequested()){
             ServerSettings.setStopAllThreads(true);
                        stopAllServers();
-                       System.exit(0);
+                       ShutdownStrategy shutdownStrategy;
+                       try {
+                               shutdownStrategy = 
ServerSettings.getShutdownStrategy();
+                       } catch (Exception e) {
+                               String strategies="";
+                               for(ShutdownStrategy 
s:ShutdownStrategy.values()){
+                                       strategies+="/"+s.toString();
+                               }
+                               logger.warn(e.getMessage());
+                               logger.warn("Valid shutdown options are : 
"+strategies.substring(1));
+                               
shutdownStrategy=ShutdownStrategy.SELF_TERMINATE;
+                       }
+                       if (shutdownStrategy==ShutdownStrategy.SELF_TERMINATE) {
+                               System.exit(0);
+                       }
                }
        }
 
        private static void performServerStopRequest(
                        CommandLineParameters commandLineParameters) throws 
IOException {
+               deleteOldStartRecords();
                String serverIndexOption = "serverIndex";
                if 
(commandLineParameters.getParameters().containsKey(serverIndexOption)){
                        
serverIndex=Integer.parseInt(commandLineParameters.getParameters().get(serverIndexOption));
@@ -171,6 +187,32 @@ public class ServerMain {
                return 
(serverIndex==-1)?stopFileNamePrefixForced:stopFileNamePrefixForced+serverIndex;
        }
 
+       private static void deleteOldStopRequests(){
+               File[] files = new File(".").listFiles();
+               for (File file : files) {
+                       if (file.getName().contains(stopFileNamePrefix) || 
file.getName().contains(stopFileNamePrefixForced)){
+                               try {
+                                       file.delete();
+                               } catch (Exception e) {
+                                       //file is locked which means there's an 
active process using it
+                               }
+                       }
+               }
+       }
+       
+       private static void deleteOldStartRecords(){
+               File[] files = new File(".").listFiles();
+               for (File file : files) {
+                       if 
(file.getName().contains(serverStartedFileNamePrefix)){
+                               try {
+                                       file.delete();
+                               } catch (Exception e) {
+                                       //file is locked which means there's an 
active process using it
+                               }
+                       }
+               }
+       }
+       
        private static boolean isServerRunning(){
                if (serverIndex==-1){
                        String[] files = new File(".").list();
@@ -188,6 +230,7 @@ public class ServerMain {
        @SuppressWarnings({ "resource" })
        private static void setServerStarted(){
                try {
+                       deleteOldStopRequests();
                        File serverStartedFile = null;
                        while(serverStartedFile==null || 
serverStartedFile.exists()){
                                serverIndex++;

Reply via email to