@echo off

REM ##### 初期設定 #####
set BIN_DIR=bin
set JBOSS_EXE=run.bat
set LOG=jboss-shutdown.log
set LOOP_NUM=12
set NOPAUSE=y

REM ##### 引数取得 #####
set PRODUCT_NAME=%1
set PRODUCT_VER=%2
set TMP_DIR=%~3
set SRC_DIR=%~4
set JBOSS_HOME=%~5
set BUILD_XML=%6
set ANT_ARGS=%~7

REM ##### 初期処理 #####
if NOT "%TMP_DIR:~-1%" == "\" (
	set TMP_DIR=%TMP_DIR%\
)
if NOT "%SRC_DIR:~-1%" == "\" (
	set SRC_DIR=%SRC_DIR%\
)
if NOT "%JBOSS_HOME:~-1%" == "\" (
	set JBOSS_HOME=%JBOSS_HOME%\
)


REM ##### 存在チェック #####
cd "%JBOSS_HOME%\%BIN_DIR%"
if not exist "%JBOSS_EXE%" (
	echo JBossがインストールされていません。
	goto end
)

REM ##### JBossの強制終了を試みる #####
call "%JBOSS_HOME%bin\shutdown.bat -S" 2> nul
if errorlevel 1 (
	echo JBossは起動していません。
	goto update
)
del "%TMP_DIR%%LOG%"
for /l %%i in (1,1,%LOOP_NUM%) do (
	ping localhost -n 5 > nul
	call "%JBOSS_HOME%bin\shutdown.bat" -S 2>> "%TMP_DIR%%LOG%"
	findstr /C:"Connection refused" "%TMP_DIR%%LOG%" > nul
	if errorlevel 1 (
		if "%%i" == "%LOOP_NUM%" (
			echo JBossの終了確認ができませんでした。
			goto end
		)
		echo JBossの終了確認ができないためリトライします。^(%%i^)
	) else (
		echo JBossの終了確認ができました。
		goto end
	)
)
del "%TMP_DIR%%LOG%"

REM ##### アップデート #####
:update
echo %PRODUCT_NAME%のアップデート処理をします。^(Ver.%PRODUCT_VER%^)
REM ここにアップデート処理を記述する(パッチ当てなど)

:end
