#!/bin/bash
path=$2
if [[ "$path" == "" ]]; then
path='./fdemo'
fi
echo "target-dir=$path"
args=${@:3}
exports(){
export logger_appender_console=FDemoConsole
export logger_appender_FDemoConsole_level=DEBUG
export logger_appender_FDemoConsole_pattern='[%level-%name]%d{yyyy/MM/dd,HH:mm:ss.SSS}|%tid;%m'
export logger_appender_file=FDemoFile
export logger_appender_FDemoFile_level=INFO
export logger_appender_FDemoFile_pattern='[%level-%name]%d{yyyy/MM/dd,HH:mm:ss.SSS}|%tid;%m'
export logger_appender_FDemoFile_path=./log/fdemo.log
export logger_appender_FDemoFile_rotateDuration=DAY
export controllerPointcut='*..*Controller.*(**): *'
export mvc_port=8080
export mvc_maxRequestBodySize=67108864
export mvc_overallElapsedSwitch=true
export mvc_internalServerErrorMessageKind=BEAN
export mvc_internalServerErrorMessage=NameOf500Handler
export orm_useThirdPartyPool=true
export orm_noPool=true
export orm_drivers=mockdb,opengauss
export orm_databasePoolInitSize=1
export orm_databasePoolMinSize=1
export orm_databasePoolMaxSize=1
export orm_databasePoolCheckOnCreation=true
export orm_databasePoolCheckOnBorrowing=true
export orm_databasePoolCheckOnReturning=false
export orm_databasePoolIdleTimeout=0
export orm_databasePoolConnectionLife=86400
export orm_databasePoolCheckInterval=300
export orm_databasePoolConnectTimeout=50
export orm_databasePoolCheckSql='select 1'
export orm_stdPoolMaxSize=10
export orm_stdPoolMaxIdleSize=10
export orm_stdPoolIdleTimeout=86400
export orm_stdPoolMaxLifeTime=86400
export orm_stdPoolConnectionTimeout=86400
export orm_stdPoolKeepaliveTime=86400
export orm_transactionalFuncExecution='*..*ServiceImpl.delete*(**): *'
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.remove*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.save*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.add*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.new*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.create*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.update*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.change*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*ServiceImpl.register*(**): *"
export orm_transactionalFuncExecution="$orm_transactionalFuncExecution|*..*.userSession(**): *"
export opengauss_orm_connectionUrl=$POSTGRES
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`find ./fdemo/release/* -type d|grep -a -v -P 'f_.+|\.build-logs|fountain|bin|_stAtIc__|charset4cj|boot'|tr '\n' ':'`
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
}
run(){
exports
fboot run $path --dylibPattern='(boot|user\.util\.(auth|cron)|\.(controller|service\.impl))'
}
perfRecord(){
exports
cjprof record -f max -- $CJPM_INSTALL/bin/fboot run $path --dylibPattern='(boot|user\.util\.(auth|cron)|\.(controller|service\.impl))'
}
perfReport(){
exports
cjprof report -F
}
build(){
export CANGJIE_STDX_PATH=$CANGJIE_STDX_DYNAMIC_PATH
fboot build $path $args
echo -e '\a'
}
cleanUpdate(){
fboot cleanUpdate $path
echo -e '\a'
}
case "$1" in
run)
run
;;
perfRecord)
perfRecord
;;
perfReport)
perfReport
;;
cleanUpdate)
cleanUpdate $2 $3
;;
build)
build
;;
launch)
launch
;;
loop)
start=$(date +%s.%N)
for i in $(seq 1 $2); do
echo -e "\n================= 第 $i 次循环 =================\n";
curl -XGET -H'Accept:text/plain' http://localhost:8080/helloworld
done
end=$(date +%s.%N)
elapsed=$(echo "$end - $start" | bc)
echo "耗时: $elapsed 秒"
;;
ab)
ab -c $2 -n $3 -T '' -H 'Accept:text/plain' -H'Content-Type:application/x-www-form-urlencoded' -m GET http://localhost:8080/helloworld
;;
esac
exit $?