nbbuild/hudson/initAppserver.sh
author Michal Zlamal <mzlamal@netbeans.org>
Mon Mar 17 16:08:06 2008 +0100 (3 months ago)
changeset 73788 313ca82fe335
parent 737054f2075f06884
permissions -rw-r--r--
Revert of #d54bd12bad21
        1 #!/bin/bash
        2 
        3 ## Script to init GlassFish application server for automated tests.
        4 ## If not installed or newer binary is available, it uninstalls GlassFish, 
        5 ## and installs it. Then it always stops domain if running, kills all
        6 ## related processes, deletes domain and creates new domain.
        7 
        8 set -x
        9 
       10 ###################################################################
       11 
       12 # Initialization
       13 
       14 AS_ROOT=/hudson/workdir/jobs/trunk/testappsrv
       15 AS_BINARY=/hudson/glassfish-installer-v2ur1-b09d-linux.jar
       16 AS_HOME=${AS_ROOT}/glassfish
       17 AS_DOMAIN=domain1
       18 AS_PORT=8080
       19 
       20 mkdir -p $AS_ROOT
       21 
       22 ###################################################################
       23 
       24 cleanup() {
       25     # check status all domains, stop running domains
       26     for domain in `$AS_HOME/bin/asadmin list-domains | grep running | grep -v not` ; do
       27         if [ $domain != "running" ]; then
       28             echo "Stopping domain $domain."
       29             $AS_HOME/bin/asadmin stop-domain $domain
       30         fi
       31     done
       32 
       33     # kill all App server processes
       34     for pid in `ps -ef | grep $AS_HOME | grep -v grep | awk {'print $2'}` ; do
       35         kill -9 $pid
       36     done
       37 
       38     # delete and create new domain
       39     COUNT=`$AS_HOME/bin/asadmin list-domains | grep $AS_DOMAIN | wc -l`
       40     if [ "$COUNT" -eq 1 ]; then
       41         echo "Deleting domain $AS_DOMAIN."
       42         $AS_HOME/bin/asadmin delete-domain $AS_DOMAIN
       43         ERROR_CODE=$?
       44         if [ $ERROR_CODE != 0 ]; then
       45             echo "ERROR: $ERROR_CODE - Can't delete domain $AS_DOMAIN - trying to uninstall and install Glassfish."
       46             uninstall
       47             install
       48             $AS_HOME/bin/asadmin delete-domain domain1
       49         fi
       50     fi
       51     echo "Creating domain $AS_DOMAIN."
       52     echo AS_ADMIN_PASSWORD=adminadmin > $AS_HOME/passwd
       53     echo AS_ADMIN_ADMINPASSWORD=adminadmin >> $AS_HOME/passwd
       54     echo AS_ADMIN_USERPASSWORD=adminadmin >> $AS_HOME/passwd
       55     echo AS_ADMIN_MASTERPASSWORD=adminadmin >> $AS_HOME/passwd
       56     $AS_HOME/bin/asadmin create-domain --adminport 4848 --user admin --savemasterpassword=true --passwordfile $AS_HOME/passwd $AS_DOMAIN
       57 }
       58 
       59 ###################################################################
       60 
       61 uninstall() {
       62     if [ -x $AS_HOME/bin/uninstall ]; then
       63         $AS_HOME/bin/uninstall -silent
       64     fi
       65 
       66     # This is a temp hack as the "uninstall" command is broken
       67     if [ -d ${AS_HOME} ]; then
       68         rm -rf ${AS_HOME}
       69     fi
       70 }
       71 
       72 ###################################################################
       73 
       74 install() {
       75     # install only if new binary is available
       76     if [ -f ${AS_HOME}/version ]; then
       77         AS_VERSION=`cat ${AS_HOME}/version`
       78         if [ "${AS_BINARY}" = "${AS_VERSION}" ]; then
       79             return
       80         fi
       81     fi
       82 
       83     uninstall
       84 
       85     cd ${AS_ROOT}
       86 
       87     TEMP_DISPLAY="${DISPLAY}"
       88     unset DISPLAY
       89 
       90     # Creating statefile
       91     echo "A" > ${AS_ROOT}/sunappserver_statefile
       92     java -Xmx256m -jar ${AS_BINARY} < ${AS_ROOT}/sunappserver_statefile
       93     ERROR_CODE=$?
       94     rm -f ${AS_ROOT}/sunappserver_statefile
       95     DISPLAY="${TEMP_DISPLAY}"
       96     export DISPLAY
       97 
       98     if [ $ERROR_CODE != 0 ]; then
       99         echo "ERROR: $ERROR_CODE - Can't install Glassfish"
      100         exit $ERROR_CODE;
      101     fi
      102 
      103     # Setup Application Server
      104     ant -f ${AS_HOME}/setup.xml -Dinstance.port=${AS_PORT} -Ddomain.name=${AS_DOMAIN}
      105 
      106     echo ${AS_BINARY} > ${AS_HOME}/version
      107 }
      108 
      109 ############################# MAIN ################################
      110 
      111 install
      112 cleanup
      113 
      114 ############################## END ################################