1@echo off
2rem -------------------------------------------------------------------------
3rem JBoss Bootstrap Script for Windows
4rem -------------------------------------------------------------------------
5
6rem $Id$
7
8@if not "%ECHO%" == ""  echo %ECHO%
9@if "%OS%" == "Windows_NT" setlocal
10rem Set to all parameters by default
11set SERVER_OPTS=%*
12
13if "%OS%" == "Windows_NT" (
14  set "DIRNAME=%~dp0%"
15) else (
16  set DIRNAME=.\
17)
18
19pushd "%DIRNAME%.."
20set "RESOLVED_JBOSS_HOME=%CD%"
21popd
22
23
24
25setlocal EnableDelayedExpansion
26rem check for the security manager system property
27echo(!SERVER_OPTS! | findstr /r /c:"-Djava.security.manager" > nul
28if not errorlevel == 1 (
29    echo ERROR: The use of -Djava.security.manager has been removed. Please use the -secmgr command line argument or SECMGR=true environment variable.
30    GOTO :EOF
31)
32setlocal DisableDelayedExpansion
33
34rem Read command-line args.
35:READ-ARGS
36if "%~1" == "" (
37   goto MAIN
38) else if "%~1" == "-secmgr" (
39   set SECMGR=true
40)
41shift
42goto READ-ARGS
43
44:MAIN
45
46if "x%JBOSS_HOME%" == "x" (
47  set "JBOSS_HOME=%RESOLVED_JBOSS_HOME%"
48)
49
50pushd "%JBOSS_HOME%"
51set "SANITIZED_JBOSS_HOME=%CD%"
52popd
53
54if /i "%RESOLVED_JBOSS_HOME%" NEQ "%SANITIZED_JBOSS_HOME%" (
55   echo.
56   echo   WARNING:  JBOSS_HOME may be pointing to a different installation - unpredictable results may occur.
57   echo.
58   echo       JBOSS_HOME: "%JBOSS_HOME%"
59   echo.
60)
61
62rem Read an optional configuration file.
63if "x%DOMAIN_CONF%" == "x" (
64   set "DOMAIN_CONF=%DIRNAME%domain.conf.bat"
65)
66if exist "%DOMAIN_CONF%" (
67   echo Calling "%DOMAIN_CONF%"
68   call "%DOMAIN_CONF%" %*
69) else (
70   echo Config file not found "%DOMAIN_CONF%"
71)
72
73set DIRNAME=
74
75if "%OS%" == "Windows_NT" (
76  set "PROGNAME=%~nx0%"
77) else (
78  set "PROGNAME=domain.bat"
79)
80
81rem Setup JBoss specific properties
82set "JAVA_OPTS=-Dprogram.name=%PROGNAME% %JAVA_OPTS%"
83
84if "x%JAVA_HOME%" == "x" (
85  set  JAVA=java
86  echo JAVA_HOME is not set. Unexpected results may occur.
87  echo Set JAVA_HOME to the directory of your local JDK to avoid this message.
88) else (
89  if not exist "%JAVA_HOME%" (
90    echo JAVA_HOME "%JAVA_HOME%" path doesn't exist
91    goto END
92   ) else (
93     if not exist "%JAVA_HOME%\bin\java.exe" (
94       echo "%JAVA_HOME%\bin\java.exe" does not exist
95       goto END_NO_PAUSE
96     )
97      echo Setting JAVA property to "%JAVA_HOME%\bin\java"
98    set "JAVA=%JAVA_HOME%\bin\java"
99  )
100)
101
102rem Add -server to the JVM options, if supported
103"%JAVA%" -server -version 2>&1 | findstr /I hotspot > nul
104if not errorlevel == 1 (
105  set "PROCESS_CONTROLLER_JAVA_OPTS=%PROCESS_CONTROLLER_JAVA_OPTS% -server"
106  set "HOST_CONTROLLER_JAVA_OPTS=%HOST_CONTROLLER_JAVA_OPTS% -server"
107)
108
109rem Find run.jar, or we can't continue
110if exist "%JBOSS_HOME%\jboss-modules.jar" (
111    set "RUNJAR=%JBOSS_HOME%\jboss-modules.jar"
112) else (
113  echo Could not locate "%JBOSS_HOME%\jboss-modules.jar".
114  echo Please check that you are in the bin directory when running this script.
115  goto END
116)
117
118rem Setup directories, note directories with spaces do not work
119setlocal EnableDelayedExpansion
120set "CONSOLIDATED_OPTS=%JAVA_OPTS% %SERVER_OPTS%"
121set baseDirFound=false
122set configDirFound=false
123set logDirFound=false
124for %%a in (!CONSOLIDATED_OPTS!) do (
125   if !baseDirFound! == true (
126      set "JBOSS_BASE_DIR=%%~a"
127      set baseDirFound=false
128   )
129   if !configDirFound! == true (
130      set "JBOSS_CONFIG_DIR=%%~a"
131      set configDirFound=false
132   )
133   if !logDirFound! == true (
134      set "JBOSS_LOG_DIR=%%~a"
135      set logDirFound=false
136   )
137   if "%%~a" == "-Djboss.domain.base.dir" (
138       set baseDirFound=true
139   )
140   if "%%~a" == "-Djboss.domain.config.dir" (
141       set configDirFound=true
142   )
143   if "%%~a" == "-Djboss.domain.log.dir" (
144       set logDirFound=true
145   )
146)
147
148rem If the -Djava.security.manager is found, enable the -secmgr and include a bogus security manager for JBoss Modules to replace
149echo(!PROCESS_CONTROLLER_JAVA_OPTS! | findstr /r /c:"-Djava.security.manager" > nul && (
150  echo "ERROR: Support for using -Djava.security.manager has been removed. Please use -secmgr or set the environment variable SECMGR=true"
151  GOTO :EOF
152)
153setlocal DisableDelayedExpansion
154
155rem Setup JBoss specific properties
156
157rem Set default module root paths
158if "x%JBOSS_MODULEPATH%" == "x" (
159  set  "JBOSS_MODULEPATH=%JBOSS_HOME%\modules"
160)
161
162rem Set the domain base dir
163if "x%JBOSS_BASE_DIR%" == "x" (
164  set  "JBOSS_BASE_DIR=%JBOSS_HOME%\domain"
165)
166rem Set the domain log dir
167if "x%JBOSS_LOG_DIR%" == "x" (
168  set  "JBOSS_LOG_DIR=%JBOSS_BASE_DIR%\log"
169)
170rem Set the domain configuration dir
171if "x%JBOSS_CONFIG_DIR%" == "x" (
172  set  "JBOSS_CONFIG_DIR=%JBOSS_BASE_DIR%\configuration"
173)
174
175rem Set the module options
176set "MODULE_OPTS="
177if "%SECMGR%" == "true" (
178    set "MODULE_OPTS=-secmgr"
179)
180
181echo ===============================================================================
182echo.
183echo   JBoss Bootstrap Environment
184echo.
185echo   JBOSS_HOME: "%JBOSS_HOME%"
186echo.
187echo   JAVA: "%JAVA%"
188echo.
189echo   JAVA_OPTS: "%PROCESS_CONTROLLER_JAVA_OPTS%"
190echo.
191echo ===============================================================================
192echo.
193
194:RESTART
195"%JAVA%" %PROCESS_CONTROLLER_JAVA_OPTS% ^
196 "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\process-controller.log" ^
197 "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
198    -jar "%JBOSS_HOME%\jboss-modules.jar" ^
199    %MODULE_OPTS% ^
200    -mp "%JBOSS_MODULEPATH%" ^
201     org.jboss.as.process-controller ^
202    -jboss-home "%JBOSS_HOME%" ^
203    -jvm "%JAVA%" ^
204    %MODULE_OPTS% ^
205    -mp "%JBOSS_MODULEPATH%" ^
206    -- ^
207    "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\host-controller.log" ^
208    "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
209    %HOST_CONTROLLER_JAVA_OPTS% ^
210    -- ^
211    -default-jvm "%JAVA%" ^
212    %*
213
214if %errorlevel% equ 10 (
215	goto RESTART
216)
217
218:END
219if "x%NOPAUSE%" == "x" pause
220
221:END_NO_PAUSE
222