Author: brianf Date: Mon Oct 22 18:17:11 2007 New Revision: 587349 URL: http://svn.apache.org/viewvc?rev=587349&view=rev Log: MNG-2105: add debug scripts
Added: maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug.bat Added: maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug?rev=587349&view=auto ============================================================================== --- maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug (added) +++ maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug Mon Oct 22 18:17:11 2007 @@ -0,0 +1,169 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# ---------------------------------------------------------------------------- + +ORIG_MAVEN_OPTS=$MAVEN_OPTS +MAVEN_OPTS=$ORIG_MAVEN_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 + +echo Preparing to Execute Maven in Debug Mode + +QUOTED_ARGS="" +while [ "$1" != "" ] ; do + + QUOTED_ARGS="$QUOTED_ARGS \"$1\"" + shift + +done + +if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc +fi + +if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + if [ -z "$JAVA_VERSION" ] ; then + JAVA_VERSION="CurrentJDK" + else + echo "Using Java version: $JAVA_VERSION" + fi + if [ -z "$JAVA_HOME" ] ; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Migwn, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD=java + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." + echo " We cannot execute $JAVACMD" + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.classworlds.Launcher + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$HOME" ] && + HOME=`cygpath --path --windows "$HOME"` +fi + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "${M2_HOME}"/boot/classworlds-*.jar \ + "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ + "-Dmaven.home=${M2_HOME}" \ + ${CLASSWORLDS_LAUNCHER} $QUOTED_ARGS + + MAVEN_OPTS=$ORIG_MAVEN_OPTS Added: maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug.bat URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug.bat?rev=587349&view=auto ============================================================================== --- maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug.bat (added) +++ maven/components/branches/maven-2.0.x/maven-core/src/bin/mvnDebug.bat Mon Oct 22 18:17:11 2007 @@ -0,0 +1,177 @@ [EMAIL PROTECTED] ---------------------------------------------------------------------------- [EMAIL PROTECTED] Licensed to the Apache Software Foundation (ASF) under one [EMAIL PROTECTED] or more contributor license agreements. See the NOTICE file [EMAIL PROTECTED] distributed with this work for additional information [EMAIL PROTECTED] regarding copyright ownership. The ASF licenses this file [EMAIL PROTECTED] to you under the Apache License, Version 2.0 (the [EMAIL PROTECTED] "License"); you may not use this file except in compliance [EMAIL PROTECTED] with the License. You may obtain a copy of the License at [EMAIL PROTECTED] [EMAIL PROTECTED] http://www.apache.org/licenses/LICENSE-2.0 [EMAIL PROTECTED] [EMAIL PROTECTED] Unless required by applicable law or agreed to in writing, [EMAIL PROTECTED] software distributed under the License is distributed on an [EMAIL PROTECTED] "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY [EMAIL PROTECTED] KIND, either express or implied. See the License for the [EMAIL PROTECTED] specific language governing permissions and limitations [EMAIL PROTECTED] under the License. [EMAIL PROTECTED] ---------------------------------------------------------------------------- + [EMAIL PROTECTED] ---------------------------------------------------------------------------- [EMAIL PROTECTED] Maven2 Start Up Batch script [EMAIL PROTECTED] [EMAIL PROTECTED] Required ENV vars: [EMAIL PROTECTED] JAVA_HOME - location of a JDK home dir [EMAIL PROTECTED] [EMAIL PROTECTED] Optional ENV vars [EMAIL PROTECTED] M2_HOME - location of maven2's installed home dir [EMAIL PROTECTED] MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands [EMAIL PROTECTED] MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending [EMAIL PROTECTED] MAVEN_OPTS - parameters passed to the Java VM when running Maven [EMAIL PROTECTED] e.g. to debug Maven itself, use [EMAIL PROTECTED] set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 [EMAIL PROTECTED] ---------------------------------------------------------------------------- + +set ORIG_MAVEN_OPTS=%MAVEN_OPTS% +set MAVEN_OPTS=%ORIG_MAVEN_OPTS% -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 [EMAIL PROTECTED] Preparing to Execute Maven in Debug Mode + [EMAIL PROTECTED] Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' [EMAIL PROTECTED] off [EMAIL PROTECTED] enable echoing my setting MAVEN_BATCH_ECHO to 'on' [EMAIL PROTECTED] "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + [EMAIL PROTECTED] set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set HOME=%HOMEDRIVE%%HOMEPATH%) + [EMAIL PROTECTED] Execute a user defined script before this one +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" + +set ERROR_CODE=0 + [EMAIL PROTECTED] set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" @setlocal + [EMAIL PROTECTED] ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo ERROR: JAVA_HOME not found in your environment. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto chkMHome + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory. +echo JAVA_HOME = %JAVA_HOME% +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation +echo. +goto error + +:chkMHome +if not "%M2_HOME%"=="" goto valMHome + +if "%OS%"=="Windows_NT" SET M2_HOME=%~dp0\.. +if not "%M2_HOME%"=="" goto valMHome + +echo. +echo ERROR: M2_HOME not found in your environment. +echo Please set the M2_HOME variable in your environment to match the +echo location of the Maven installation +echo. +goto error + +:valMHome +if exist "%M2_HOME%\bin\mvn.bat" goto init + +echo. +echo ERROR: M2_HOME is set to an invalid directory. +echo M2_HOME = %M2_HOME% +echo Please set the M2_HOME variable in your environment to match the +echo location of the Maven installation +echo. +goto error [EMAIL PROTECTED] ==== END VALIDATION ==== + +:init [EMAIL PROTECTED] Decide how to startup depending on the version of windows + [EMAIL PROTECTED] -- Win98ME +if NOT "%OS%"=="Windows_NT" goto Win9xArg + [EMAIL PROTECTED] -- 4NT shell +if "[EMAIL PROTECTED]" == "4" goto 4NTArgs + [EMAIL PROTECTED] -- Regular WinNT shell +set MAVEN_CMD_LINE_ARGS=%* +goto endInit + [EMAIL PROTECTED] The 4NT Shell from jp software +:4NTArgs +set MAVEN_CMD_LINE_ARGS=%$ +goto endInit + +:Win9xArg [EMAIL PROTECTED] Slurp the command line arguments. This loop allows for an unlimited number [EMAIL PROTECTED] of agruments (up to the command line limit, anyway). +set MAVEN_CMD_LINE_ARGS= +:Win9xApp +if %1a==a goto endInit +set MAVEN_CMD_LINE_ARGS=%MAVEN_CMD_LINE_ARGS% %1 +shift +goto Win9xApp + [EMAIL PROTECTED] Reaching here means variables are defined and arguments have been captured +:endInit +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" + [EMAIL PROTECTED] -- 4NT shell +if "[EMAIL PROTECTED]" == "4" goto 4NTCWJars + [EMAIL PROTECTED] -- Regular WinNT shell +for %%i in ("%M2_HOME%"\boot\classworlds-*) do set CLASSWORLDS_JAR="%%i" +goto runm2 + [EMAIL PROTECTED] The 4NT Shell from jp software +:4NTCWJars +for %%i in ("%M2_HOME%\boot\classworlds-*") do set CLASSWORLDS_JAR="%%i" +goto runm2 + [EMAIL PROTECTED] Start MAVEN2 +:runm2 + +%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" org.codehaus.classworlds.Launcher %MAVEN_CMD_LINE_ARGS% +if ERRORLEVEL 1 goto error +goto end + +:error +if "%OS%"=="Windows_NT" @endlocal +set ERROR_CODE=1 + +:end [EMAIL PROTECTED] set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" goto endNT + [EMAIL PROTECTED] For old DOS remove the set variables from ENV - we assume they were not set [EMAIL PROTECTED] before we started - at least we don't leave any baggage around +set MAVEN_JAVA_EXE= +set MAVEN_CMD_LINE_ARGS= +goto postExec + +:endNT [EMAIL PROTECTED] + +:postExec +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" [EMAIL PROTECTED] pause the batch file if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% +set MAVEN_OPTS=%ORIG_MAVEN_OPTS% +exit /B %ERROR_CODE% +