Repository: incubator-systemml
Updated Branches:
  refs/heads/master bdc1f4edb -> 1fc5ce121


[SYSTEMML-486] Java opts to standalone scripts

Allow Java options to be set via SYSTEMML_STANDALONE_OPTS env var.

Closes #81.


Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/1fc5ce12
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/1fc5ce12
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/1fc5ce12

Branch: refs/heads/master
Commit: 1fc5ce12104f12b2c5689debc412296098ae73ef
Parents: bdc1f4e
Author: Deron Eriksson <[email protected]>
Authored: Thu Apr 7 12:10:14 2016 -0700
Committer: Deron Eriksson <[email protected]>
Committed: Thu Apr 7 12:10:14 2016 -0700

----------------------------------------------------------------------
 bin/systemml.bat                              |  2 +-
 src/main/standalone/runStandaloneSystemML.bat | 37 +++++++++++++++++++---
 src/main/standalone/runStandaloneSystemML.sh  | 29 ++++++++++++++---
 3 files changed, 58 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/1fc5ce12/bin/systemml.bat
----------------------------------------------------------------------
diff --git a/bin/systemml.bat b/bin/systemml.bat
index d369927..3fc86a8 100755
--- a/bin/systemml.bat
+++ b/bin/systemml.bat
@@ -60,7 +60,7 @@ IF "%USER_DIR%" == "%PROJECT_ROOT_DIR%\bin" (
 )
 
 
-:: if the SystemML-config.xml does not exis, create it from the template
+:: if the SystemML-config.xml does not exist, create it from the template
 IF NOT EXIST "%PROJECT_ROOT_DIR%\conf\SystemML-config.xml" (
   copy "%PROJECT_ROOT_DIR%\conf\SystemML-config.xml.template" ^
        "%PROJECT_ROOT_DIR%\conf\SystemML-config.xml" > nul

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/1fc5ce12/src/main/standalone/runStandaloneSystemML.bat
----------------------------------------------------------------------
diff --git a/src/main/standalone/runStandaloneSystemML.bat 
b/src/main/standalone/runStandaloneSystemML.bat
index f837970..9275d9e 100644
--- a/src/main/standalone/runStandaloneSystemML.bat
+++ b/src/main/standalone/runStandaloneSystemML.bat
@@ -30,21 +30,48 @@ setLocal EnableDelayedExpansion
 SET HADOOP_HOME=%CD%/lib/hadoop
 
 set CLASSPATH=./lib/*
-echo !CLASSPATH!
 
 set LOG4JPROP=log4j.properties
 
 for /f "tokens=1,* delims= " %%a in ("%*") do set ALLBUTFIRST=%%b
 
-java -Xmx4g -Xms4g -Xmn400m -cp %CLASSPATH% 
-Dlog4j.configuration=file:%LOG4JPROP% org.apache.sysml.api.DMLScript -f %1 
-exec singlenode -config=SystemML-config.xml %ALLBUTFIRST%
+IF "%SYSTEMML_STANDALONE_OPTS%" == "" (
+  SET SYSTEMML_STANDALONE_OPTS=-Xmx4g -Xms4g -Xmn400m
+)
+
+:: construct the java command with options and arguments
+set CMD=java %SYSTEMML_STANDALONE_OPTS% ^
+     -cp %CLASSPATH% ^
+     -Dlog4j.configuration=file:%LOG4JPROP% ^
+     org.apache.sysml.api.DMLScript ^
+     -f %1 ^
+     -exec singlenode ^
+     -config=SystemML-config.xml ^
+     %ALLBUTFIRST%
+
+:: execute the java command
+%CMD%
+
+:: if there was an error, display the full java command
+::IF  ERRORLEVEL 1 (
+::  ECHO Failed to run SystemML. Exit code: %ERRORLEVEL%
+::  SET LF=^
+::
+::
+::  :: keep empty lines above for the line breaks
+::  ECHO %CMD:      =!LF!     %
+::  EXIT /B %ERRORLEVEL%
+::)
+
 GOTO End
 
 :Err
-ECHO "Wrong Usage. Please provide DML filename to be executed."
+ECHO Wrong Usage. Please provide DML filename to be executed.
 GOTO Msg
 
 :Msg
-ECHO "Usage: runStandaloneSystemML.bat <dml-filename> [arguments] [-help]"
-ECHO "Script internally invokes 'java -Xmx4g -Xms4g -Xmn400m -jar 
jSystemML.jar -f <dml-filename> -exec singlenode -config=SystemML-config.xml 
[Optional-Arguments]'"
+ECHO Usage: runStandaloneSystemML.bat ^<dml-filename^> [arguments] [-help]
+ECHO Default Java options (-Xmx4g -Xms4g -Xmn400m) can be overridden by 
setting SYSTEMML_STANDALONE_OPTS.
+ECHO Script internally invokes 'java [SYSTEMML_STANDALONE_OPTS] -cp ./lib/* 
-Dlog4j.configuration=file:log4j.properties org.apache.sysml.api.DMLScript -f 
^<dml-filename^> -exec singlenode -config=SystemML-config.xml [arguments]'
 
 :End

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/1fc5ce12/src/main/standalone/runStandaloneSystemML.sh
----------------------------------------------------------------------
diff --git a/src/main/standalone/runStandaloneSystemML.sh 
b/src/main/standalone/runStandaloneSystemML.sh
index afd3db6..28000b4 100644
--- a/src/main/standalone/runStandaloneSystemML.sh
+++ b/src/main/standalone/runStandaloneSystemML.sh
@@ -26,10 +26,11 @@ printUsageExit()
 cat << EOF
 Usage: $0 <dml-filename> [arguments] [-help]
     -help     - Print this usage message and exit
+Default Java options (-Xmx4g -Xms4g -Xmn400m) can be overridden by setting 
SYSTEMML_STANDALONE_OPTS.
 EOF
   exit 1
 }
-#    Script internally invokes 'java -Xmx4g -Xms4g -Xmn400m -jar 
StandaloneSystemML.jar -f <dml-filename> -exec singlenode 
-config=SystemML-config.xml [Optional-Arguments]'
+#    Script internally invokes 'java [SYSTEMML_STANDALONE_OPTS] -jar 
StandaloneSystemML.jar -f <dml-filename> -exec singlenode 
-config=SystemML-config.xml [arguments]'
 
 while getopts "h:" options; do
   case $options in
@@ -62,8 +63,28 @@ done
 
 LOG4JPROP=log4j.properties
 
+# set default java opts if none supplied
+if [ -z "$SYSTEMML_STANDALONE_OPTS" ] ; then
+  SYSTEMML_STANDALONE_OPTS="-Xmx4g -Xms4g -Xmn400m"
+fi;
+
 # invoke the jar with options and arguments
-java -Xmx4g -Xms4g -Xmn400m -cp ${CLASSPATH} 
-Dlog4j.configuration=file:${LOG4JPROP} org.apache.sysml.api.DMLScript \
-     -f ${SCRIPT_FILE} -exec singlenode 
-config=$CURRENT_PATH"/SystemML-config.xml" \
-     $@
+CMD="\
+java ${SYSTEMML_STANDALONE_OPTS} \
+-cp ${CLASSPATH} \
+-Dlog4j.configuration=file:${LOG4JPROP} \
+org.apache.sysml.api.DMLScript \
+-f ${SCRIPT_FILE} \
+-exec singlenode \
+-config=$CURRENT_PATH"/SystemML-config.xml" \
+$@"
+
+$CMD
 
+# if there was an error, display the full java command
+# RETURN_CODE=$?
+# if [ $RETURN_CODE -ne 0 ]
+# then
+#   echo "Failed to run SystemML. Exit code: $RETURN_CODE"
+#   echo ${CMD}
+# fi

Reply via email to