#!/bin/sh

# This script creates and starts a domain called "sqe-domain" 
# with a single server instance named "sqe-server".

#--- Extract environment properties ---

for x in `cat $APS_HOME/eeconfig/ee-config.properties`
do
    varval=`echo $x |cut -d'=' -f1`

    if [ $varval = "admin.user" ];
    then
        AS_ADMIN_USER=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "admin.port" ];
    then
        AS_ADMIN_PORT=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "admin.password" ];
    then
        PASSWORD=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "master.password" ];
    then
        MASTERPASSWORD=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "admin.password.file" ];
    then
        PASSWORD_FILE=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "admin.domain" ];
    then
        AS_ADMIN_DOMAIN=`echo $x |cut -d'=' -f2`
    fi
    if [ $varval = "nodeagent.name" ];
    then
        AS_ADMIN_NODEAGENT=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "appserver.instance.name" ];
    then
        AS_ADMIN_SERVER=`echo $x |cut -d'=' -f2`
    fi
    if [ $varval = "orb.port" ];
    then
        ORB_LISTENER_1_PORT=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "http.port" ];
    then
    HTTP_LISTENER_1_PORT=`echo $x |cut -d'=' -f2`
    fi

    if [ $varval = "https.port" ];
    then
    HTTP_LISTENER_2_PORT=`echo $x |cut -d'=' -f2`
   fi
done

if [ $PASSWORD_FILE = "\${env.APS_HOME}/config/adminpassword.txt" ];
then
    PASSWORD_FILE="$APS_HOME/config/adminpassword.txt"
fi
echo "password file: $PASSWORD_FILE"


SSL_PORT="1042"
SSL_MUTUALAUTH_PORT="1058"
JMX_SYSTEM_CONNECTOR_PORT="8687"
export AS_ADMIN_USER
export PASSWORD
export PASSWORD_FILE
export MASTERPASSWORD
export AS_ADMIN_PORT
export AS_ADMIN_DOMAIN
export AS_ADMIN_NODEAGENT
export AS_ADMIN_SERVER

echo "AS_ADMIN_PASSWORD=$PASSWORD" > $PASSWORD_FILE
echo "AS_ADMIN_ADMINPASSWORD=$PASSWORD" >> $PASSWORD_FILE
echo "AS_ADMIN_MASTERPASSWORD=$MASTERPASSWORD" >> $PASSWORD_FILE

#----Create domain: sqe-domain
${S1AS_HOME}/bin/asadmin create-domain --adminport ${AS_ADMIN_PORT} --adminuser ${AS_ADMIN_USER} --passwordfile ${PASSWORD_FILE} --echo=true --terse=true ${AS_ADMIN_DOMAIN}

#----Start domain: sqe-domain
${S1AS_HOME}/bin/asadmin start-domain --user ${AS_ADMIN_USER} --passwordfile ${PASSWORD_FILE} --echo=true --terse=true ${AS_ADMIN_DOMAIN}

#----Create node agent (sqe-agent) referencing sqe-domain.
${S1AS_HOME}/bin/asadmin create-node-agent --host localhost --port  ${AS_ADMIN_PORT} --user ${AS_ADMIN_USER} --passwordfile ${PASSWORD_FILE} --savemasterpassword ${AS_ADMIN_NODEAGENT}


#----Create the server instance: sqe-server
${S1AS_HOME}/bin/asadmin create-instance --user ${AS_ADMIN_USER} --passwordfile ${PASSWORD_FILE} --host localhost --port ${AS_ADMIN_PORT} --nodeagent ${AS_ADMIN_NODEAGENT} --systemproperties HTTP_LISTENER_PORT=${HTTP_LISTENER_1_PORT}:HTTP_SSL_LISTENER_PORT=${HTTP_LISTENER_2_PORT}:IIOP_LISTENER_PORT=${ORB_LISTENER_1_PORT}:IIOP_SSL_LISTENER_PORT=${SSL_PORT}:IIOP_SSL_MUTUALAUTH_PORT=${SSL_MUTUALAUTH_PORT}:JMX_SYSTEM_CONNECTOR_PORT=${JMX_SYSTEM_CONNECTOR_PORT} ${AS_ADMIN_SERVER}

#----Start the sqe-agent. 
${S1AS_HOME}/bin/asadmin start-node-agent --user ${AS_ADMIN_USER} --passwordfile ${PASSWORD_FILE} --echo=true --terse=true --startinstances=true ${AS_ADMIN_NODEAGENT}
#Start the sqe-server

echo "EE setup complete!"
# --------- Notes ------------

#NOTE: The domain should be up an running when the node agent is started. 

#NOTE: The stop-node-agent command currently does
# not function due to a bug so should you ever need to stop the node
# agent you must kill its process. In reality you should never need 
# to stop the node agent once it is started.

#NOTE: The ports by default will not conflict with those of the DAS. 
#The http-listener port will default to 8079. 
