You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2012/03/23 18:22:56 UTC
svn commit: r1304504 - in /incubator/airavata/trunk/tools: ./
airavata-tomcat.properties setup_tomcat.sh
Author: samindaw
Date: Fri Mar 23 17:22:56 2012
New Revision: 1304504
URL: http://svn.apache.org/viewvc?rev=1304504&view=rev
Log:
script to setup airavata & jackrabbit on a tomcat
Added:
incubator/airavata/trunk/tools/
incubator/airavata/trunk/tools/airavata-tomcat.properties
incubator/airavata/trunk/tools/setup_tomcat.sh (with props)
Added: incubator/airavata/trunk/tools/airavata-tomcat.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/tools/airavata-tomcat.properties?rev=1304504&view=auto
==============================================================================
--- incubator/airavata/trunk/tools/airavata-tomcat.properties (added)
+++ incubator/airavata/trunk/tools/airavata-tomcat.properties Fri Mar 23 17:22:56 2012
@@ -0,0 +1,33 @@
+tomcat.port=8080
+tomcat.hostname=localhost
+airavata.conf.mkdir=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/classes/conf/
+airavata.service.version.rm=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/services/version-1.5.1.aar
+airavata.services.cp=${airavata.home}/standalone-server/repository/services/*.*=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/services
+airavata.libs1.cp=${airavata.home}/lib/*.*=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib
+airavata.libs2.cp=${airavata.home}/standalone-server/lib/*.*=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib
+messagBox.properties.cp=${airavata.home}/standalone-server/conf/msgBox.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/classes/conf/
+msgBroker.properties.cp=${airavata.home}/standalone-server/conf/msgBroker.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/classes/conf/
+repository.properties.cp=${airavata.home}/standalone-server/conf/repository.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib/
+repository.properties2.cp=${airavata.home}/standalone-server/conf/repository.properties=>${tomcat.home}/bin/
+xbaya.properties.cp=${airavata.home}/standalone-server/conf/xbaya.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib/
+tomcat.server.xml.edit=${tomcat.home}/conf/server.xml;,;port="8080"=>port="${tomcat.port}"
+repository.properties.edit=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib/repository.properties;,;org.apache.jackrabbit.repository.uri=http://localhost:8081/rmi=>org.apache.jackrabbit.repository.uri=http://${tomcat.hostname}:${tomcat.port}/${jackrabbit.web.context}/rmi
+repository.properties2.edit=${tomcat.home}/bin/repository.properties;,;org.apache.jackrabbit.repository.uri=http://localhost:8081/rmi=>org.apache.jackrabbit.repository.uri=http://${tomcat.hostname}:${tomcat.port}/${jackrabbit.web.context}/rmi
+xbaya.properties.edit=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib//xbaya.properties;,;jcr.url=http://localhost:8081/rmi=>jcr.url=http://${tomcat.hostname}:${tomcat.port}/${jackrabbit.web.context}/rmi
+airavata.derby.cp=http://repo.maven.apache.org/maven2/org/apache/derby/derby/10.7.1.1/derby-10.7.1.1.jar=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib
+airavata.derbytools.cp=http://repo.maven.apache.org/maven2/org/apache/derby/derbytools/10.7.1.1/derbytools-10.7.1.1.jar=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib
+airavata.dbscripts.cp=${airavata.home}/standalone-server/bin/database_scripts=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/classes
+jackrabbit.jcr20.cp=http://repo.maven.apache.org/maven2/javax/jcr/jcr/2.0/jcr-2.0.jar=>${tomcat.home}/webapps/${jackrabbit.webapp.dirname}/WEB-INF/lib/
+airavata.service1.rm=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/services/registry-service-0.3-incubating-SNAPSHOT.jar
+#airavata.service2.rm=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/services/messagebroker-0.3-incubating-SNAPSHOT.jar
+#airavata.service3.rm=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/services/xbaya-gui-0.3-incubating-SNAPSHOT.jar
+#airavata.service4.rm=${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/services/messagebox-0.3-incubating-SNAPSHOT.jar
+
+tomcat.path.msg=TOMCAT_HOME=>${tomcat.home}
+jackrabbit.url.msg=Jackrabbit url=>http://${tomcat.hostname}:${tomcat.port}/${jackrabbit.web.context}
+airavata.conf.messagebox.msg=msgBox.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/classes/conf/msgBox.properties
+airavata.conf.messagebroker.msg=msgBroker.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/classes/conf/msgBroker.properties
+airavata.conf.repository1.msg=repository.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib/repository.properties
+airavata.conf.repository2.msg=repository.properties=>${tomcat.home}/bin/repository.properties
+airavata.conf.xbaya.msg=xbaya.properties=>${tomcat.home}/webapps/${axis2.webapp.dirname}/WEB-INF/lib/xbaya.properties
+000.jr.warning.msg=IMPORTATNT: Before using airavata go to http://${tomcat.hostname}:${tomcat.port}/${jackrabbit.web.context} and create a default content repository=>
Added: incubator/airavata/trunk/tools/setup_tomcat.sh
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/tools/setup_tomcat.sh?rev=1304504&view=auto
==============================================================================
--- incubator/airavata/trunk/tools/setup_tomcat.sh (added)
+++ incubator/airavata/trunk/tools/setup_tomcat.sh Fri Mar 23 17:22:56 2012
@@ -0,0 +1,433 @@
+set -e
+
+is_empty(){
+ local result=0
+ for i in $*
+ do
+ if [ $i = "<EMPTY>" ]; then
+ local result=1
+ break
+ fi
+ done
+ echo $result
+}
+
+create_temp_file(){
+ mktemp
+}
+
+create_temp_dir(){
+ mktemp -d
+}
+
+get_file_name(){
+ echo $(basename $1)
+}
+
+get_file_name_without_extension(){
+ local filename=`get_file_name $1`
+ echo ${filename%.*}
+}
+
+get_file_name_extension(){
+ local filename=`get_file_name $1`
+ echo ${filename##*.}
+}
+
+get_path_to_file(){
+ echo $(dirname $1)
+}
+
+combine_path(){
+ echo "$1"|grep '/$'
+ if [ $? -eq 0 ];then
+ echo "$1$2"
+ else
+ echo "$1/$2"
+ fi
+}
+get_absolute_path(){
+ local relative_path=$1
+ if [ -d "$relative_path" ]
+ then
+ local absolute_path=`cd $relative_path; pwd`
+ else
+ local file_name=`get_file_name $relative_path`
+ local dir_name=`get_path_to_file $relative_path`
+ local dir_name=`cd $dir_name; pwd`
+ local absolute_path=`combine_path $dir_name $file_name`
+ fi
+ echo $absolute_path
+}
+
+get_first_directory(){
+ local parent_dir=$1
+ for FILE in `find $parent_dir -mindepth 1 -maxdepth 1 -type d`
+ do
+ if test -d $FILE
+ then
+ echo $FILE
+ break;
+ fi
+ done
+}
+
+get_first_file(){
+ local parent_dir=$1
+ for FILE in `find $parent_dir -mindepth 1 -maxdepth 1`
+ do
+ echo $FILE
+ break;
+ done
+}
+
+count_files_in_dir(){
+ echo `ls -1 $1 | wc -l`
+}
+
+extract_zip_archive(){
+ local archive_location=`get_absolute_path $1`
+ local extract_location=`get_absolute_path $2`
+
+ local current_dir=`pwd`
+ mkdir -p $extract_location
+ cd $extract_location
+ unzip $archive_location
+ cd $current_dir
+}
+
+apply_filters(){
+ local filter_string=$1
+ eval "declare -A filter_array="${2#*=}
+ for key in "${!filter_array[@]}"; do
+ local r_key="\${$key}"
+ filter_string=`echo ${filter_string//$r_key/${filter_array["$key"]}}`
+ done
+ echo $filter_string
+}
+
+extract_archive_to_location(){
+ local ARCHIVE=$1
+ local EXTRACT_TO=$2
+
+ local TMP_PATH=`create_temp_dir`
+
+ unique_dir=`get_file_name_without_extension $ARCHIVE`
+
+ local TMP_EXTRACT_PATH=`combine_path $TMP_PATH $unique_dir`
+
+ mkdir -p $TMP_EXTRACT_PATH
+
+ something=`extract_zip_archive $ARCHIVE $TMP_EXTRACT_PATH`
+
+ if [ `count_files_in_dir $TMP_EXTRACT_PATH` -gt 1 ]
+ then
+ local ARCHIVE_EXTRACTED_DIR=$TMP_EXTRACT_PATH
+ else
+ local ARCHIVE_EXTRACTED_DIR=`get_first_directory $TMP_EXTRACT_PATH`
+ fi
+
+ mv $ARCHIVE_EXTRACTED_DIR $EXTRACT_TO
+
+ archive_dir_name=`get_file_name $ARCHIVE_EXTRACTED_DIR`
+ FINAL_RESTING_DIR=`combine_path $EXTRACT_TO $archive_dir_name`
+ FINAL_RESTING_DIR=`get_absolute_path $FINAL_RESTING_DIR`
+ rm -rf $TMP_PATH
+
+ echo $FINAL_RESTING_DIR
+}
+
+print_help(){
+ local script_name=$1
+ echo "Usage: $script_name [OPTIONS] --tomcat=<TOMCAT_BIN> --airavata=<AIRAVATA_BIN> --axis2=<AXIS2_WAR> --jackrabbit=<JACKRABBIT_WAR> --properties=<DEPLOYEMENT_PROPERTIES>"
+ echo "Setup airavata & jackrabbit on a tomcat server. Configure airavata services to use the jackrabbit in the tomcat."
+ echo
+ echo "Mandatory arguments"
+ echo " --tomcat Tomcat binary distribution or existing tomcat directory"
+ echo " --airavata Airavata binary distribution"
+ echo " --axis2 axis2 webapp (eg: axis2.war)"
+ echo " --jackrabbit jackrabbit webapp (eg: jackrabbit-webapp-2.4.0.war)"
+ echo " --properties A properties file on how to configure/customize deployed webapps"
+ echo
+ echo "Optional arguments"
+ echo " --debug Let there be more text :)"
+ echo " --base=PATH Setup tomcat at the given location (ignored if --tomcat is a directory)"
+ echo " --start_tomcat Once setup is done start the tomcat server"
+ echo
+ echo "Example:"
+ echo " \$ $script_name --tomcat=dists/apache-tomcat-7.0.26.zip --airavata=dists/apache-airavata-0.3-incubating-SNAPSHOT-bin.zip --axis2=downloaded_webapps/axis2.war --jackrabbit=downloaded_webapps/jackrabbit-webapp-2.4.0.war --properties=airavata-tomcat.properties"
+}
+
+print_debug(){
+ if [ "$debug" = "debug_mode" ]; then
+ echo $1
+ fi
+}
+
+TOMCAT_BIN="<EMPTY>"
+AIRAVATA_BIN="<EMPTY>"
+AXIS2_WAR="<EMPTY>"
+JR_WAR="<EMPTY>"
+PROPERTIES_FILE="<EMPTY>"
+
+TO_DIR="."
+debug="normal_mode"
+START_TOMCAT="no"
+for i in $*
+do
+ case $i in
+ --tomcat=*)
+ TOMCAT_BIN=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ --airavata=*)
+ AIRAVATA_BIN=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ --axis2=*)
+ AXIS2_WAR=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ --jackrabbit=*)
+ JR_WAR=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ --properties=*)
+ PROPERTIES_FILE=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ --base=*)
+ TO_DIR=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ --start_tomcat)
+ START_TOMCAT="yes"
+ ;;
+ --debug)
+ debug="debug_mode"
+ ;;
+ *)
+ echo "Invalid option specified: $i"
+ print_help $0
+ exit -1
+ ;;
+ esac
+done
+if [ `is_empty $TOMCAT_BIN $AIRAVATA_BIN $AXIS2_WAR $JR_WAR $PROPERTIES_FILE` -eq 1 ]
+then
+ echo "Not enough parameters provided"
+ print_help $0
+ exit -1
+fi
+
+##################### Setup TOMCAT ########################
+if [ -d $TOMCAT_BIN ];then
+ TOMCAT_DIR=$TOMCAT_BIN
+else
+ echo -n "Extracting tomcat distribution..."
+ TOMCAT_DIR=`extract_archive_to_location $TOMCAT_BIN $TO_DIR`
+ echo "done."
+fi
+print_debug $TOMCAT_DIR
+
+TOMCAT_WEBAPP_DIR=`combine_path $TOMCAT_DIR "webapps"`
+
+##################### Setup Jackrabbit Webapp ########################
+echo -n "Extracting jackrabbit webapp to tomcat..."
+JR_WEBAPP_DIR=`extract_archive_to_location $JR_WAR $TOMCAT_WEBAPP_DIR`
+echo "done."
+print_debug $JR_WEBAPP_DIR
+JR_WEB_CONTEXT=`get_file_name $JR_WEBAPP_DIR`
+
+##################### Setup AXIS2 Webapp ########################
+echo -n "Extracting axis2 webapp to tomcat..."
+AXIS2_WEBAPP_DIR=`extract_archive_to_location $AXIS2_WAR $TOMCAT_WEBAPP_DIR`
+echo "done."
+print_debug $AXIS2_WEBAPP_DIR
+axis2_service_dir=`combine_path $AXIS2_WEBAPP_DIR "WEB-INF/services"`
+axis2_lib_dir=`combine_path $AXIS2_WEBAPP_DIR "WEB-INF/lib"`
+
+##################### Setup Airavata in Axis2 Webapp ########################
+
+TMP_DIR=`create_temp_dir`
+
+#extract airavata
+test=`extract_zip_archive $AIRAVATA_BIN $TMP_DIR`
+airavata_tmp_dir=`get_first_directory $TMP_DIR`
+
+##################### Read the properties file ########################
+
+if [ ${IFS:-<NOT_SET>}="<NOT_SET>" ]; then
+ old_ifs="<NOT_SET>"
+else
+ old_ifs=$IFS
+fi
+
+IFS=$'\n'
+echo -n "Reading $PROPERTIES_FILE"
+declare -A props
+for line in `sed '/^\#/d' $PROPERTIES_FILE | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'`
+do
+ key=`echo $line | cut -d "=" -f1`
+ value=`echo $line | cut -d "=" -f2-`
+ props[$key]=$value
+ echo -n "."
+done
+echo "done."
+
+if [ $old_ifs="<NOT_SET>" ]; then
+ unset IFS
+else
+ IFS=$old_ifs
+fi
+CURRENT_DIR=`pwd`
+
+##################### Define the filters ########################
+
+declare -A filter_data
+
+filter_data["airavata.home"]=$airavata_tmp_dir
+filter_data["tomcat.home"]=$TOMCAT_DIR
+filter_data["axis2.home"]=$AXIS2_WEBAPP_DIR
+filter_data["axis2.webapp.dirname"]=`get_file_name $AXIS2_WEBAPP_DIR`
+filter_data["jackrabbit.web.context"]=$JR_WEB_CONTEXT
+filter_data["jackrabbit.webapp.dirname"]=`get_file_name $JR_WEBAPP_DIR`
+
+
+
+#first pass only to get the filtering values
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ value=`apply_filters "$value" "$(declare -p filter_data)"`
+ case $key in
+ *.mkdir)
+ ;;
+ *.cp)
+ ;;
+ *.edit)
+ ;;
+ *.rm)
+ ;;
+ *.msg)
+ ;;
+ *)
+ filter_data["$key"]=$value
+ ;;
+ esac
+done
+
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ props[$key]=`apply_filters "$value" "$(declare -p filter_data)"`
+ print_debug "key=$key value=${props[$key]}"
+done
+
+##################### Perform customizations in the property file ########################
+
+#2nd pass to create directories
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ case $key in
+ *.mkdir)
+ echo -n "Creating dir $value..."
+ mkdir -p $value
+ echo "done."
+ ;;
+ esac
+done
+
+#3rd pass copying files
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ case $key in
+ *.cp)
+ #do the copying
+ from=`echo $value | awk -F'=>' '{ print $1 }'`
+ to=`echo $value | awk -F'=>' '{ print $2 }'`
+ if [[ $from == http* ]];
+ then
+ temp_dir=`create_temp_dir`
+ cd $temp_dir
+ if [ "$debug" = "debug_mode" ];then
+ echo "Downloading $from..."
+ wget -U "mozilla" $from
+ else
+ #do the downloading in silent
+ echo -n "Downloading $from..."
+ wget -q -U "mozilla" $from
+ echo "done."
+ fi
+ from=`get_first_file $temp_dir`
+ cp $from $to
+ rm -rf $temp_dir
+ else
+ echo -n "Copying $from..."
+ cp -r $from $to
+ echo "done."
+ fi
+ ;;
+ esac
+done
+
+#4th pass edit files
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ case $key in
+ *.edit)
+ filename=`echo $value | awk -F';' '{ print $1 }'`
+ sed_char=`echo $value | awk -F';' '{ print $2 }'`
+ modifier=`echo $value | awk -F';' '{ print $3 }'`
+ search_str=`echo $modifier | awk -F'=>' '{ print $1 }'`
+ replace_str=`echo $modifier | awk -F'=>' '{ print $2 }'`
+ echo "Updating file $filename..."
+ print_debug " Searh : $search_str"
+ print_debug " Replace : $replace_str ..."
+ tmp_file_name=`create_temp_file`
+ cat $filename | sed -r 's'$sed_char$search_str$sed_char$replace_str$sed_char'g' > $tmp_file_name
+ cp $tmp_file_name $filename
+ rm $tmp_file_name
+ ;;
+ esac
+done
+
+#5th pass remove files
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ case $key in
+ *.rm)
+ if [ -d $value ]; then
+ echo -n "Removing directory $value..."
+ rm -rf $value
+ else
+ echo -n "Removing file $value..."
+ rm $value
+ fi
+ echo "done."
+ ;;
+ esac
+done
+
+
+#6th pass show messages
+echo
+echo "Generation Messages"
+echo "==================="
+for key in "${!props[@]}"; do
+ value=${props["$key"]}
+ case $key in
+ *.msg)
+ msg=`echo $value | awk -F'=>' '{ print $1 }'`
+ msg_value=`echo $value | awk -F'=>' '{ print $2 }'`
+ echo "$msg = $msg_value"
+ ;;
+ esac
+done
+echo
+
+rm -rf $TMP_DIR
+
+if [ "$START_TOMCAT" = "yes" ];
+then
+ cd `combine_path $TOMCAT_DIR "bin"`
+ sh startup.sh
+fi
+
+cd $CURRENT_DIR
+
+
+#rm -rf apache-tomcat-7.0.26; ./a.sh --tomcat=apache-tomcat-7.0.26.zip --airavata=apache-airavata-0.3-incubating-SNAPSHOT-bin.zip --axis2=axis2.war --jackrabbit=jackrabbit-webapp-2.4.0.war --properties=airavata-tomcat.properties
+
Propchange: incubator/airavata/trunk/tools/setup_tomcat.sh
------------------------------------------------------------------------------
svn:executable = *