Author: jbonofre
Date: Thu Jan 21 08:27:10 2010
New Revision: 901591

URL: http://svn.apache.org/viewvc?rev=901591&view=rev
Log:
[SM-788] start/stop/restart support in the servicemix launcher script.

Modified:
    
servicemix/smx3/trunk/distributions/apache-servicemix/src/main/release/bin/servicemix

Modified: 
servicemix/smx3/trunk/distributions/apache-servicemix/src/main/release/bin/servicemix
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/trunk/distributions/apache-servicemix/src/main/release/bin/servicemix?rev=901591&r1=901590&r2=901591&view=diff
==============================================================================
--- 
servicemix/smx3/trunk/distributions/apache-servicemix/src/main/release/bin/servicemix
 (original)
+++ 
servicemix/smx3/trunk/distributions/apache-servicemix/src/main/release/bin/servicemix
 Thu Jan 21 08:27:10 2010
@@ -290,28 +290,85 @@
         CYGHOME=`cygpath --windows "$HOME"`
     fi
     
-    cd $SERVICEMIX_DATA
-    # Execute the Java Virtual Machine
-    # echo $JAVA \
-    #     $JAVA_OPTS \
-    #     $SERVICEMIX_OPTS \
-    #     -classpath "$CLASSPATH" \
-    #     -Dclassworlds.conf="$CLASSWORLDS_CONF" \
-    #     -Dservicemix.home="$SERVICEMIX_HOME" \
-    #     -Dcygwin.user.home="$CYGHOME" \
-    #     -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
-    #     org.codehaus.classworlds.Launcher \
-    #     "$@"        
-    exec $JAVA \
-        $JAVA_OPTS \
-        $SERVICEMIX_OPTS \
-        -classpath "$CLASSPATH" \
-        -Dclassworlds.conf="$CLASSWORLDS_CONF" \
-        -Dservicemix.home="$SERVICEMIX_HOME" \
-        -Dcygwin.user.home="$CYGHOME" \
-        -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
-        org.codehaus.classworlds.Launcher \
-        "$@"      
+    # if the first arg is start/stop/restart, manage it
+    case "$1" in
+        'start')
+                # go into ServiceMix home
+                cd $SERVICEMIX_HOME
+                
+                # shift on the arguments
+                shift
+                
+                # Execute the Java Virtual Machine
+                # echo $JAVA \
+                #     $JAVA_OPTS \
+                #     $SERVICEMIX_OPTS \
+                #     -classpath "$CLASSPATH" \
+                #     -Dclassworlds.conf="$CLASSWORLDS_CONF" \
+                #     -Dservicemix.home="$SERVICEMIX_HOME" \
+                #     -Dcygwin.user.home="$CYGHOME" \
+                #     -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
+                #     org.codehaus.classworlds.Launcher \
+                #     "$@"        
+                exec $JAVA \
+                    $JAVA_OPTS \
+                    $SERVICEMIX_OPTS \
+                    -classpath "$CLASSPATH" \
+                    -Dclassworlds.conf="$CLASSWORLDS_CONF" \
+                    -Dservicemix.home="$SERVICEMIX_HOME" \
+                    -Dcygwin.user.home="$CYGHOME" \
+                    -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
+                    org.codehaus.classworlds.Launcher \
+                    "$@" &
+                    
+                echo $! > $SERVICEMIX_HOME/data/servicemix.pid
+                exit 0               
+                ;;
+        'stop')
+            if [ -f $SERVICEMIX_HOME/data/servicemix.pid ]; then
+                read pid < $SERVICEMIX_HOME/data/servicemix.pid
+                kill $pid
+                rm $SERVICEMIX_HOME/data/servicemix.pid
+                echo "Apache ServiceMix stopped.";
+                exit 0
+            else
+                echo ""
+                echo "Apache ServiceMix PID file not found.";
+                exit 1
+            fi
+            ;;
+        'restart')
+            $0 stop
+            $0 start
+            ;;               
+        *)
+            # go into ServiceMix data
+            cd $SERVICEMIX_DATA
+            
+            # Execute the Java Virtual Machine
+            # echo $JAVA \
+            #     $JAVA_OPTS \
+            #     $SERVICEMIX_OPTS \
+            #     -classpath "$CLASSPATH" \
+            #     -Dclassworlds.conf="$CLASSWORLDS_CONF" \
+            #     -Dservicemix.home="$SERVICEMIX_HOME" \
+            #     -Dcygwin.user.home="$CYGHOME" \
+            #     -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
+            #     org.codehaus.classworlds.Launcher \
+            #     "$@"        
+            exec $JAVA \
+                $JAVA_OPTS \
+                $SERVICEMIX_OPTS \
+                -classpath "$CLASSPATH" \
+                -Dclassworlds.conf="$CLASSWORLDS_CONF" \
+                -Dservicemix.home="$SERVICEMIX_HOME" \
+                -Dcygwin.user.home="$CYGHOME" \
+                -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
+                org.codehaus.classworlds.Launcher \
+                "$@" 
+            ;;
+    esac
+    
 }
 
 main() {


Reply via email to