First Commit - Source Code from Reply
This commit is contained in:
302
dbcmnpsrc/FE/mnpdev/sim/InfobusR4/build/apache-ant-1.6.2/bin/ant
Normal file
302
dbcmnpsrc/FE/mnpdev/sim/InfobusR4/build/apache-ant-1.6.2/bin/ant
Normal file
@@ -0,0 +1,302 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Copyright 2001-2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
# Extract launch and ant arguments, (see details below).
|
||||
ant_exec_args=
|
||||
no_config=false
|
||||
use_jikes_default=false
|
||||
ant_exec_debug=false
|
||||
show_help=false
|
||||
for arg in "$@" ; do
|
||||
if [ "$arg" = "--noconfig" ] ; then
|
||||
no_config=true
|
||||
elif [ "$arg" = "--usejikes" ] ; then
|
||||
use_jikes_default=true
|
||||
elif [ "$arg" = "--execdebug" ] ; then
|
||||
ant_exec_debug=true
|
||||
elif [ my"$arg" = my"--h" -o my"$arg" = my"--help" ] ; then
|
||||
show_help=true
|
||||
ant_exec_args="$ant_exec_args -h"
|
||||
else
|
||||
if [ my"$arg" = my"-h" -o my"$arg" = my"-help" ] ; then
|
||||
show_help=true
|
||||
fi
|
||||
ant_exec_args="$ant_exec_args \"$arg\""
|
||||
fi
|
||||
done
|
||||
|
||||
# Source/default ant configuration
|
||||
if $no_config ; then
|
||||
rpm_mode=false
|
||||
usejikes=$use_jikes_default
|
||||
else
|
||||
# load system-wide ant configuration
|
||||
if [ -f "/etc/ant.conf" ] ; then
|
||||
. /etc/ant.conf
|
||||
fi
|
||||
|
||||
# load user ant configuration
|
||||
if [ -f "$HOME/.ant/ant.conf" ] ; then
|
||||
. $HOME/.ant/ant.conf
|
||||
fi
|
||||
if [ -f "$HOME/.antrc" ] ; then
|
||||
. "$HOME/.antrc"
|
||||
fi
|
||||
|
||||
# provide default configuration values
|
||||
if [ -z "$rpm_mode" ] ; then
|
||||
rpm_mode=false
|
||||
fi
|
||||
if [ -z "$usejikes" ] ; then
|
||||
usejikes=$use_jikes_default
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Java environment in rpm mode
|
||||
if $rpm_mode ; then
|
||||
if [ -f /usr/share/java-utils/java-functions ] ; then
|
||||
. /usr/share/java-utils/java-functions
|
||||
set_jvm
|
||||
set_javacmd
|
||||
fi
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false;
|
||||
darwin=false;
|
||||
case "`uname`" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
Darwin*) darwin=true
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then
|
||||
# try to find ANT
|
||||
if [ -d /opt/ant ] ; then
|
||||
ANT_HOME=/opt/ant
|
||||
fi
|
||||
|
||||
if [ -d "${HOME}/opt/ant" ] ; then
|
||||
ANT_HOME="${HOME}/opt/ant"
|
||||
fi
|
||||
|
||||
## resolve links - $0 may be a link to ant's home
|
||||
PRG="$0"
|
||||
progname=`basename "$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
|
||||
|
||||
ANT_HOME=`dirname "$PRG"`/..
|
||||
|
||||
# make it fully qualified
|
||||
ANT_HOME=`cd "$ANT_HOME" && pwd`
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin ; then
|
||||
[ -n "$ANT_HOME" ] &&
|
||||
ANT_HOME=`cygpath --unix "$ANT_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
fi
|
||||
|
||||
# set ANT_LIB location
|
||||
ANT_LIB="${ANT_HOME}/lib"
|
||||
|
||||
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=`which java 2> /dev/null `
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
JAVACMD=java
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
echo "Error: JAVA_HOME is not defined correctly."
|
||||
echo " We cannot execute $JAVACMD"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build local classpath using just the launcher in non-rpm mode or
|
||||
# use the Jpackage helper in rpm mode with basic and default jars
|
||||
# specified in the ant.conf configuration. Because the launcher is
|
||||
# used, libraries linked in ANT_HOME will also be include, but this
|
||||
# is discouraged as it is not java-version safe. A user should
|
||||
# request optional jars and their dependencies via the OPT_JAR_LIST
|
||||
# variable
|
||||
if $rpm_mode && [ -f /usr/bin/build-classpath ] ; then
|
||||
LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)"
|
||||
# If the user requested to try to add some other jars to the classpath
|
||||
if [ -n "$OPT_JAR_LIST" ] ; then
|
||||
_OPTCLASSPATH="$(/usr/bin/build-classpath $OPT_JAR_LIST 2> /dev/null)"
|
||||
if [ -n "$_OPTCLASSPATH" ] ; then
|
||||
LOCALCLASSPATH="$LOCALCLASSPATH:$_OPTCLASSPATH"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Explicitly add javac path to classpath, assume JAVA_HOME set
|
||||
# properly in rpm mode
|
||||
if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
|
||||
LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar"
|
||||
fi
|
||||
if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
|
||||
LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip"
|
||||
fi
|
||||
|
||||
# if CLASSPATH_OVERRIDE env var is set, LOCALCLASSPATH will be
|
||||
# user CLASSPATH first and ant-found jars after.
|
||||
# In that case, the user CLASSPATH will override ant-found jars
|
||||
#
|
||||
# if CLASSPATH_OVERRIDE is not set, we'll have the normal behaviour
|
||||
# with ant-found jars first and user CLASSPATH after
|
||||
if [ -n "$CLASSPATH" ] ; then
|
||||
# merge local and specified classpath
|
||||
if [ -z "$LOCALCLASSPATH" ] ; then
|
||||
LOCALCLASSPATH="$CLASSPATH"
|
||||
elif [ -n "$CLASSPATH_OVERRIDE" ] ; then
|
||||
LOCALCLASSPATH="$CLASSPATH:$LOCALCLASSPATH"
|
||||
else
|
||||
LOCALCLASSPATH="$LOCALCLASSPATH:$CLASSPATH"
|
||||
fi
|
||||
|
||||
# remove class path from launcher -lib option
|
||||
CLASSPATH=""
|
||||
fi
|
||||
else
|
||||
# not using rpm_mode; use launcher to determine classpaths
|
||||
if [ -z "$LOCALCLASSPATH" ] ; then
|
||||
LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar
|
||||
else
|
||||
LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
# OSX hack to make Ant work with jikes
|
||||
if $darwin ; then
|
||||
OSXHACK="${JAVA_HOME}/../Classes"
|
||||
if [ -d "${OSXHACK}" ] ; then
|
||||
for i in "${OSXHACK}"/*.jar
|
||||
do
|
||||
JIKESPATH="$JIKESPATH:$i"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Allow Jikes support (off by default)
|
||||
if $usejikes; then
|
||||
ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes"
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to appropriate format before running java
|
||||
if $cygwin; then
|
||||
if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
|
||||
format=mixed
|
||||
else
|
||||
format=windows
|
||||
fi
|
||||
ANT_HOME=`cygpath --$format "$ANT_HOME"`
|
||||
ANT_LIB=`cygpath --$format "$ANT_LIB"`
|
||||
JAVA_HOME=`cygpath --$format "$JAVA_HOME"`
|
||||
LOCALCLASSPATH=`cygpath --path --$format "$LOCALCLASSPATH"`
|
||||
if [ -n "$CLASSPATH" ] ; then
|
||||
CLASSPATH=`cygpath --path --$format "$CLASSPATH"`
|
||||
fi
|
||||
CYGHOME=`cygpath --$format "$HOME"`
|
||||
fi
|
||||
|
||||
# Show script help if requested
|
||||
if $show_help ; then
|
||||
echo $0 '[script options] [options] [target [target2 [target3] ..]]'
|
||||
echo 'Script Options:'
|
||||
echo ' --help, --h print this message and ant help'
|
||||
echo ' --noconfig suppress sourcing of /etc/ant.conf,'
|
||||
echo ' $HOME/.ant/ant.conf, and $HOME/.antrc'
|
||||
echo ' configuration files'
|
||||
echo ' --usejikes enable use of jikes by default, unless'
|
||||
echo ' set explicitly in configuration files'
|
||||
echo ' --execdebug print ant exec line generated by this'
|
||||
echo ' launch script'
|
||||
echo ' '
|
||||
fi
|
||||
# add a second backslash to variables terminated by a backslash under cygwin
|
||||
if $cygwin; then
|
||||
case "$ANT_HOME" in
|
||||
*\\ )
|
||||
ANT_HOME="$ANT_HOME\\"
|
||||
;;
|
||||
esac
|
||||
case "$CYGHOME" in
|
||||
*\\ )
|
||||
CYGHOME="$CYGHOME\\"
|
||||
;;
|
||||
esac
|
||||
case "$JIKESPATH" in
|
||||
*\\ )
|
||||
JIKESPATH="$JIKESPATH\\"
|
||||
;;
|
||||
esac
|
||||
case "$LOCALCLASSPATH" in
|
||||
*\\ )
|
||||
LOCALCLASSPATH="$LOCALCLASSPATH\\"
|
||||
;;
|
||||
esac
|
||||
case "$CLASSPATH" in
|
||||
*\\ )
|
||||
CLASSPATH="$CLASSPATH\\"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Execute ant using eval/exec to preserve spaces in paths,
|
||||
# java options, and ant args
|
||||
ant_sys_opts=
|
||||
if [ -n "$CYGHOME" ]; then
|
||||
if [ -n "$JIKESPATH" ]; then
|
||||
ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\" -Dcygwin.user.home=\"$CYGHOME\""
|
||||
else
|
||||
ant_sys_opts="-Dcygwin.user.home=\"$CYGHOME\""
|
||||
fi
|
||||
else
|
||||
if [ -n "$JIKESPATH" ]; then
|
||||
ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\""
|
||||
fi
|
||||
fi
|
||||
ant_exec_command="exec \"$JAVACMD\" $ANT_OPTS -classpath \"$LOCALCLASSPATH\" -Dant.home=\"$ANT_HOME\" -Dant.library.dir=\"$ANT_LIB\" -Xms512M -Xmx1024M $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib \"$CLASSPATH\" $ant_exec_args"
|
||||
if $ant_exec_debug ; then
|
||||
echo $ant_exec_command
|
||||
fi
|
||||
eval $ant_exec_command
|
||||
@@ -0,0 +1,106 @@
|
||||
@echo off
|
||||
|
||||
REM Copyright 2001,2004 The Apache Software Foundation
|
||||
REM
|
||||
REM Licensed under the Apache License, Version 2.0 (the "License");
|
||||
REM you may not use this file except in compliance with the License.
|
||||
REM You may obtain a copy of the License at
|
||||
REM
|
||||
REM http://www.apache.org/licenses/LICENSE-2.0
|
||||
REM
|
||||
REM Unless required by applicable law or agreed to in writing, software
|
||||
REM distributed under the License is distributed on an "AS IS" BASIS,
|
||||
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
REM See the License for the specific language governing permissions and
|
||||
REM limitations under the License.
|
||||
|
||||
if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
|
||||
|
||||
if "%OS%"=="Windows_NT" @setlocal
|
||||
|
||||
rem %~dp0 is expanded pathname of the current script under NT
|
||||
set DEFAULT_ANT_HOME=%~dp0..
|
||||
|
||||
if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
|
||||
set DEFAULT_ANT_HOME=
|
||||
|
||||
rem Slurp the command line arguments. This loop allows for an unlimited number
|
||||
rem of arguments (up to the command line limit, anyway).
|
||||
set ANT_CMD_LINE_ARGS=%1
|
||||
if ""%1""=="""" goto doneStart
|
||||
shift
|
||||
:setupArgs
|
||||
if ""%1""=="""" goto doneStart
|
||||
set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
|
||||
shift
|
||||
goto setupArgs
|
||||
rem This label provides a place for the argument list loop to break out
|
||||
rem and for NT handling to skip to.
|
||||
|
||||
:doneStart
|
||||
rem find ANT_HOME if it does not exist due to either an invalid value passed
|
||||
rem by the user or the %0 problem on Windows 9x
|
||||
if exist "%ANT_HOME%\lib\ant.jar" goto checkJava
|
||||
|
||||
rem check for ant in Program Files
|
||||
if not exist "%ProgramFiles%\ant" goto checkSystemDrive
|
||||
set ANT_HOME=%ProgramFiles%\ant
|
||||
goto checkJava
|
||||
|
||||
:checkSystemDrive
|
||||
rem check for ant in root directory of system drive
|
||||
if not exist %SystemDrive%\ant\lib\ant.jar goto checkCDrive
|
||||
set ANT_HOME=%SystemDrive%\ant
|
||||
goto checkJava
|
||||
|
||||
:checkCDrive
|
||||
rem check for ant in C:\ant for Win9X users
|
||||
if not exist C:\ant\lib\ant.jar goto noAntHome
|
||||
set ANT_HOME=C:\ant
|
||||
goto checkJava
|
||||
|
||||
:noAntHome
|
||||
echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
|
||||
goto end
|
||||
|
||||
:checkJava
|
||||
set _JAVACMD=%JAVACMD%
|
||||
|
||||
if "%JAVA_HOME%" == "" goto noJavaHome
|
||||
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
|
||||
if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
|
||||
goto checkJikes
|
||||
|
||||
:noJavaHome
|
||||
if "%_JAVACMD%" == "" set _JAVACMD=java.exe
|
||||
|
||||
:checkJikes
|
||||
if not "%JIKESPATH%"=="" goto runAntWithJikes
|
||||
|
||||
:runAnt
|
||||
if not "%CLASSPATH%"=="" goto runAntWithClasspath
|
||||
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
|
||||
goto end
|
||||
|
||||
:runAntWithClasspath
|
||||
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
|
||||
goto end
|
||||
|
||||
:runAntWithJikes
|
||||
if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath
|
||||
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
|
||||
goto end
|
||||
|
||||
:runAntWithJikesAndClasspath
|
||||
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
|
||||
goto end
|
||||
|
||||
:end
|
||||
set _JAVACMD=
|
||||
set ANT_CMD_LINE_ARGS=
|
||||
|
||||
if "%OS%"=="Windows_NT" @endlocal
|
||||
|
||||
:mainEnd
|
||||
if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
Copyright 2003-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
Run ant
|
||||
*/
|
||||
|
||||
'@echo off'
|
||||
parse arg mode envarg '::' antarg
|
||||
|
||||
if mode\='.' & mode\='..' & mode\='/' then do
|
||||
envarg = mode envarg
|
||||
mode = ''
|
||||
end
|
||||
|
||||
if antarg = '' then do
|
||||
antarg = envarg
|
||||
envarg = ''
|
||||
end
|
||||
|
||||
x = setlocal()
|
||||
|
||||
env="OS2ENVIRONMENT"
|
||||
antenv = _getenv_('antenv')
|
||||
if _testenv_() = 0 then interpret 'call "' || antenv || '"' '"' || envarg || '"'
|
||||
|
||||
if mode = '' then mode = _getenv_('ANT_MODE' '..')
|
||||
if mode \= '/' then do
|
||||
runrc = _getenv_('runrc')
|
||||
antrc = _getenv_('antrc' 'antrc.cmd')
|
||||
if mode = '..' then mode = '-r'
|
||||
else mode = ''
|
||||
interpret 'call "' || runrc || '"' antrc '"' || mode || '"'
|
||||
end
|
||||
|
||||
if _testenv_() = 0 then do
|
||||
say 'Ant environment is not set properly'
|
||||
x = endlocal()
|
||||
exit 16
|
||||
end
|
||||
|
||||
settings = '-Dant.home=' || ANT_HOME '-Djava.home=' || JAVA_HOME
|
||||
|
||||
java = _getenv_('javacmd' 'java')
|
||||
opts = value('ANT_OPTS',,env)
|
||||
args = value('ANT_ARGS',,env)
|
||||
lcp = value('LOCALCLASSPATH',,env)
|
||||
cp = value('CLASSPATH',,env)
|
||||
if value('ANT_USE_CP',,env) \= '' then do
|
||||
if lcp \= '' & right(lcp, 1) \= ';' then lcp = lcp || ';'
|
||||
lcp = lcp || cp
|
||||
'SET CLASSPATH='
|
||||
end
|
||||
if lcp\='' then lcp = '-classpath' lcp
|
||||
|
||||
cmd = java opts lcp '-jar' ANT_HOME ||'\lib\ant-launcher.jar' settings args antarg
|
||||
launcher = stream(ANT_HOME ||'\lib\ant-launcher.jar', 'C', 'query exists')
|
||||
if launcher = '' then entry = 'org.apache.tools.ant.Main'
|
||||
else entry = 'org.apache.tools.ant.launch.Launcher'
|
||||
java opts lcp entry settings args antarg
|
||||
|
||||
x = endlocal()
|
||||
|
||||
return rc
|
||||
|
||||
_testenv_: procedure expose env ANT_HOME JAVA_HOME
|
||||
ANT_HOME = value('ANT_HOME',,env)
|
||||
if ANT_HOME = '' then return 0
|
||||
JAVA_HOME = value('JAVA_HOME',,env)
|
||||
if JAVA_HOME = '' then return 0
|
||||
cp = translate(value('CLASSPATH',,env))
|
||||
if pos(translate(ANT_HOME), cp) = 0 then return 0
|
||||
if pos(translate(JAVA_HOME), cp) = 0 then return 0
|
||||
return 1
|
||||
|
||||
_getenv_: procedure expose env
|
||||
parse arg envar default
|
||||
if default = '' then default = envar
|
||||
var = value(translate(envar),,env)
|
||||
if var = '' then var = default
|
||||
return var
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright 2001-2002,2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed 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.
|
||||
#
|
||||
#
|
||||
|
||||
# Args: DIR command
|
||||
cd "$1"
|
||||
CMD="$2"
|
||||
shift
|
||||
shift
|
||||
|
||||
exec "$CMD" "$@"
|
||||
@@ -0,0 +1,45 @@
|
||||
@echo off
|
||||
|
||||
REM
|
||||
REM Copyright 2001-2002,2004 The Apache Software Foundation
|
||||
REM
|
||||
REM Licensed under the Apache License, Version 2.0 (the "License");
|
||||
REM you may not use this file except in compliance with the License.
|
||||
REM You may obtain a copy of the License at
|
||||
REM
|
||||
REM http://www.apache.org/licenses/LICENSE-2.0
|
||||
REM
|
||||
REM Unless required by applicable law or agreed to in writing, software
|
||||
REM distributed under the License is distributed on an "AS IS" BASIS,
|
||||
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
REM See the License for the specific language governing permissions and
|
||||
REM limitations under the License.
|
||||
REM
|
||||
REM
|
||||
|
||||
if "%OS%"=="Windows_NT" @setlocal
|
||||
|
||||
if ""%1""=="""" goto runCommand
|
||||
|
||||
rem Change drive and directory to %1
|
||||
if "%OS%"=="Windows_NT" cd /d ""%1""
|
||||
if not "%OS%"=="Windows_NT" cd ""%1""
|
||||
shift
|
||||
|
||||
rem Slurp the command line arguments. This loop allows for an unlimited number
|
||||
rem of agruments (up to the command line limit, anyway).
|
||||
set ANT_RUN_CMD=%1
|
||||
if ""%1""=="""" goto runCommand
|
||||
shift
|
||||
:loop
|
||||
if ""%1""=="""" goto runCommand
|
||||
set ANT_RUN_CMD=%ANT_RUN_CMD% %1
|
||||
shift
|
||||
goto loop
|
||||
|
||||
:runCommand
|
||||
rem echo %ANT_RUN_CMD%
|
||||
%ANT_RUN_CMD%
|
||||
|
||||
if "%OS%"=="Windows_NT" @endlocal
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright 2001,2003-2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed 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.
|
||||
#
|
||||
#######################################################################
|
||||
#
|
||||
# antRun.pl
|
||||
#
|
||||
# wrapper script for invoking commands on a platform with Perl installed
|
||||
# this is akin to antRun.bat, and antRun the SH script
|
||||
#
|
||||
# created: 2001-10-18
|
||||
# author: Jeff Tulley jtulley@novell.com
|
||||
#######################################################################
|
||||
#be fussy about variables
|
||||
use strict;
|
||||
|
||||
#turn warnings on during dev; generates a few spurious uninitialised var access warnings
|
||||
#use warnings;
|
||||
|
||||
#and set $debug to 1 to turn on trace info (currently unused)
|
||||
my $debug=1;
|
||||
|
||||
#######################################################################
|
||||
# change drive and directory to "%1"
|
||||
my $ANT_RUN_CMD = @ARGV[0];
|
||||
|
||||
# assign current run command to "%2"
|
||||
chdir (@ARGV[0]) || die "Can't cd to $ARGV[0]: $!\n";
|
||||
if ($^O eq "NetWare") {
|
||||
# There is a bug in Perl 5 on NetWare, where chdir does not
|
||||
# do anything. On NetWare, the following path-prefixed form should
|
||||
# always work. (afaict)
|
||||
$ANT_RUN_CMD .= "/".@ARGV[1];
|
||||
}
|
||||
else {
|
||||
$ANT_RUN_CMD = @ARGV[1];
|
||||
}
|
||||
|
||||
# dispose of the first two arguments, leaving only the command's args.
|
||||
shift;
|
||||
shift;
|
||||
|
||||
# run the command
|
||||
my $returnValue = system $ANT_RUN_CMD, @ARGV;
|
||||
if ($returnValue eq 0) {
|
||||
exit 0;
|
||||
}
|
||||
else {
|
||||
# only 0 and 1 are widely recognized as exit values
|
||||
# so change the exit value to 1
|
||||
exit 1;
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
Copyright 2003-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
Ant environment
|
||||
*/
|
||||
|
||||
'@echo off'
|
||||
call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
|
||||
call SysLoadFuncs
|
||||
|
||||
/* Prepare the parameters for later use */
|
||||
parse arg argv
|
||||
mode = ''
|
||||
args = ''
|
||||
opts = ''
|
||||
cp = ''
|
||||
lcp = ''
|
||||
|
||||
do i = 1 to words(argv)
|
||||
param = word(argv, i)
|
||||
select
|
||||
when param='-lcp' then mode = 'l'
|
||||
when param='-cp' | param='-classpath' then mode = 'c'
|
||||
when abbrev('-opts', param, 4) then mode = 'o'
|
||||
when abbrev('-args', param, 4) then mode = 'a'
|
||||
otherwise
|
||||
select
|
||||
when mode = 'a' then args = space(args param, 1)
|
||||
when mode = 'c' then cp = space(cp param, 1)
|
||||
when mode = 'l' then lcp = space(lcp param, 1)
|
||||
when mode = 'o' then opts = space(opts param, 1)
|
||||
otherwise
|
||||
say 'Option' param 'ignored'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
env="OS2ENVIRONMENT"
|
||||
antconf = _getenv_('antconf' 'antconf.cmd')
|
||||
runrc = _getenv_('runrc')
|
||||
interpret 'call "' || runrc || '"' '"' || antconf || '"' 'ETC'
|
||||
ANT_HOME = value('ANT_HOME',,env)
|
||||
JAVA_HOME = value('JAVA_HOME',,env)
|
||||
classpath = value('CLASSPATH',,env)
|
||||
classes = stream(JAVA_HOME || "\lib\classes.zip", "C", "QUERY EXISTS")
|
||||
if classes \= '' then classpath = prepend(classpath classes)
|
||||
classes = stream(JAVA_HOME || "\lib\tools.jar", "C", "QUERY EXISTS")
|
||||
if classes \= '' then classpath = prepend(classpath classes)
|
||||
|
||||
classpath = prepend(classpath ANT_HOME || '\lib\ant-launcher.jar')
|
||||
'SET CLASSPATH=' || classpath
|
||||
|
||||
/* Setting classpathes, options and arguments */
|
||||
envset = _getenv_('envset')
|
||||
if cp\='' then interpret 'call "' || envset || '"' '"; CLASSPATH"' '"' || cp || '"'
|
||||
if lcp\='' then interpret 'call "' || envset || '"' '"; LOCALCLASSPATH"' '"' || lcp || '"'
|
||||
if opts\='' then interpret 'call "' || envset || '"' '"-D ANT_OPTS"' '"' || opts || '"'
|
||||
if args\='' then interpret 'call "' || envset || '"' '"ANT_ARGS"' '"' || args || '"'
|
||||
|
||||
exit 0
|
||||
|
||||
addpath: procedure
|
||||
parse arg path elem
|
||||
if elem = '' then do
|
||||
if path\='' & right(path, 1)\=';' then path = path || ';'
|
||||
return path
|
||||
end
|
||||
if substr(path, length(path)) = ';' then glue = ''
|
||||
else glue = ';'
|
||||
if pos(translate(elem), translate(path)) = 0 then path = path || glue || elem || ';'
|
||||
return path
|
||||
|
||||
prepend: procedure
|
||||
parse arg path elem
|
||||
if elem = '' then do
|
||||
if path\='' & right(path, 1)\=';' then path = path || ';'
|
||||
return path
|
||||
end
|
||||
if pos(translate(elem), translate(path)) = 0 then path = elem || ';' || path
|
||||
return path
|
||||
|
||||
_getenv_: procedure expose env
|
||||
parse arg envar default
|
||||
if default = '' then default = envar
|
||||
var = value(translate(envar),,env)
|
||||
if var = '' then var = default
|
||||
return var
|
||||
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright 2001,2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed 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.
|
||||
#
|
||||
# A script to allow Bash or Z-Shell to complete an Ant command-line.
|
||||
#
|
||||
# To install for Bash 2.0 or better, add the following to ~/.bashrc:
|
||||
#
|
||||
# $ complete -C complete-ant-cmd ant build.sh
|
||||
#
|
||||
# To install for Z-Shell 2.5 or better, add the following to ~/.zshrc:
|
||||
#
|
||||
# function ant_complete () {
|
||||
# local args_line args
|
||||
# read -l args_line
|
||||
# set -A args $args_line
|
||||
# set -A reply $(COMP_LINE=$args_line complete-ant-cmd ${args[1]} $1)
|
||||
# }
|
||||
# compctl -K ant_complete ant build.sh
|
||||
#
|
||||
# @author Mike Williams <mikew@cortexebusiness.com.au>
|
||||
|
||||
my $cmdLine = $ENV{'COMP_LINE'};
|
||||
my $antCmd = $ARGV[0];
|
||||
my $word = $ARGV[1];
|
||||
|
||||
my @completions;
|
||||
if ($word =~ /^-/) {
|
||||
list( restrict( $word, getArguments() ));
|
||||
} elsif ($cmdLine =~ /-(f|buildfile)\s+\S*$/) {
|
||||
list( getBuildFiles($word) );
|
||||
} else {
|
||||
list( restrict( $word, getTargets() ));
|
||||
}
|
||||
|
||||
exit(0);
|
||||
|
||||
sub list {
|
||||
for (@_) {
|
||||
print "$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub restrict {
|
||||
my ($word, @completions) = @_;
|
||||
grep( /^\Q$word\E/, @completions );
|
||||
}
|
||||
|
||||
sub getArguments {
|
||||
qw(-buildfile -debug -emacs -f -find -help -listener -logfile
|
||||
-logger -projecthelp -quiet -verbose -version);
|
||||
}
|
||||
|
||||
|
||||
sub getBuildFiles {
|
||||
my ($word) = @_;
|
||||
grep( /\.xml$/, glob( "$word*" ));
|
||||
}
|
||||
|
||||
sub getTargets {
|
||||
|
||||
# Look for build-file
|
||||
my $buildFile = 'build.xml';
|
||||
if ($cmdLine =~ /-(f|buildfile)\s+(\S+)/) {
|
||||
$buildFile = $2;
|
||||
}
|
||||
return () unless (-f $buildFile);
|
||||
|
||||
# Run "ant -projecthelp" to list targets. Keep a cache of results in a
|
||||
# cache-file.
|
||||
my $cacheFile = $buildFile;
|
||||
$cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|;
|
||||
if ((!-e $cacheFile) || (-M $buildFile) < (-M $cacheFile)) {
|
||||
open( CACHE, '>'.$cacheFile ) || die "can\'t write $cacheFile: $!\n";
|
||||
open( HELP, "$antCmd -projecthelp -f '$buildFile'|" ) || return();
|
||||
my %targets;
|
||||
while( <HELP> ) {
|
||||
if (/^\s+(\S+)/) {
|
||||
$targets{$1}++;
|
||||
}
|
||||
}
|
||||
my @targets = sort keys %targets;
|
||||
for (@targets) { print CACHE "$_\n"; }
|
||||
return @targets;
|
||||
}
|
||||
|
||||
# Read the target-cache
|
||||
open( CACHE, $cacheFile ) || die "can\'t read $cacheFile: $!\n";
|
||||
my @targets;
|
||||
while (<CACHE>) {
|
||||
chop;
|
||||
s/\r$//; # for Cygwin
|
||||
push( @targets, $_ );
|
||||
}
|
||||
close( CACHE );
|
||||
@targets;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
|
||||
Copyright 2003-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
SET environment variables
|
||||
First optional parameter:
|
||||
; parameters are considered parts of a path variable, semicolons are
|
||||
appended to each element if not already present
|
||||
-D parameters are properties for Java or Makefile etc., -D will be
|
||||
prepended and the parameters will be separated by a space
|
||||
=D the same as above but equal sign is not required
|
||||
, parameters should be comma separated in the environment variable
|
||||
- parameters should be separated by the next parameter
|
||||
Other values mean that the first parameter is missing and the environment
|
||||
variable will be set to the space separated parameters
|
||||
|
||||
Second parameter: name of the environment variable
|
||||
|
||||
Next parameters: values
|
||||
; implies that the equal sign is considered a part of the parameter and is
|
||||
not interpreted
|
||||
|
||||
-D requires parameters in the form name=value. If the equal sign is not found,
|
||||
the parameters are changed to name=expanded_name
|
||||
|
||||
Other options have optional equal sign. If it is found, only the part after
|
||||
the equal sign will be oprionally expanded.
|
||||
|
||||
If the parameter is the minus sign, the next parameter will not be expanded.
|
||||
If the parameter is a single dot, it will be replaced with the value of the
|
||||
environment variable as it existed before envset was invoked.
|
||||
|
||||
For other parameters the batch looks for the environment variable with the
|
||||
same name (in uppercase). If it is found, it forms the expanded_name. If
|
||||
the environment variable with such a name does not exist, the expanded_name
|
||||
will hold the parameter name without case conversion.
|
||||
*/
|
||||
|
||||
parse arg mode envar args
|
||||
|
||||
equal = 0
|
||||
sep = ' '
|
||||
|
||||
/* Parse command line parameters */
|
||||
select
|
||||
when mode='-' then do
|
||||
sep = envar
|
||||
parse var args envar args
|
||||
end
|
||||
when mode=';' then do
|
||||
sep = ''
|
||||
equal = -1
|
||||
end
|
||||
when mode='-D' then equal = 1
|
||||
when mode='=D' then mode = '-D'
|
||||
when mode=',' then sep = ','
|
||||
otherwise
|
||||
args = envar args
|
||||
envar = mode
|
||||
mode = ''
|
||||
end
|
||||
|
||||
env = 'OS2ENVIRONMENT'
|
||||
envar = translate(envar)
|
||||
orig = value(envar,,env)
|
||||
newval = ''
|
||||
expand = 1
|
||||
|
||||
/* for each parameter... */
|
||||
do i = 1 to words(args)
|
||||
if expand > 0 & word(args, i) = '-' then expand = 0
|
||||
else call addval word(args, i)
|
||||
end
|
||||
|
||||
/* Optionally enclose path variable by quotes */
|
||||
if mode = ';' & pos(' ', newval) > 0 then newval = '"' || newval || '"'
|
||||
|
||||
/* Set the new value, 'SET' cannot be used since it does not allow '=' */
|
||||
x = value(envar, newval, env)
|
||||
exit 0
|
||||
|
||||
addval: procedure expose sep equal orig expand newval mode env
|
||||
parse arg var
|
||||
|
||||
if var = '.' then expvar = orig
|
||||
else do
|
||||
if equal >= 0 then do
|
||||
parse var var name '=' val
|
||||
if val = '' then var = name
|
||||
else var = val
|
||||
end
|
||||
if expand = 0 then expvar = var
|
||||
else expvar = value(translate(var),,env)
|
||||
if expvar = '' then expvar = var
|
||||
if equal >= 0 then do
|
||||
if val = '' then do
|
||||
parse var expvar key '=' val
|
||||
if val <> '' then name = key
|
||||
else do
|
||||
if equal > 0 then val = key
|
||||
else name = key
|
||||
end
|
||||
end
|
||||
else val = expvar
|
||||
if pos(' ', val) > 0 | pos('=', val) > 0 then val = '"' || val || '"'
|
||||
if val = '' then expvar = name
|
||||
else expvar = name || '=' || val
|
||||
end
|
||||
if mode = '-D' then expvar = '-D' || expvar
|
||||
if mode = ';' then do
|
||||
if right(expvar, 1) <> ';' then expvar = expvar || ';'
|
||||
end
|
||||
end
|
||||
|
||||
if newval = '' then newval = expvar
|
||||
else newval = newval || sep || expvar
|
||||
expand = 1
|
||||
return
|
||||
@@ -0,0 +1,30 @@
|
||||
REM
|
||||
REM Copyright 2001-2004 The Apache Software Foundation
|
||||
REM
|
||||
REM Licensed under the Apache License, Version 2.0 (the "License");
|
||||
REM you may not use this file except in compliance with the License.
|
||||
REM You may obtain a copy of the License at
|
||||
REM
|
||||
REM http://www.apache.org/licenses/LICENSE-2.0
|
||||
REM
|
||||
REM Unless required by applicable law or agreed to in writing, software
|
||||
REM distributed under the License is distributed on an "AS IS" BASIS,
|
||||
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
REM See the License for the specific language governing permissions and
|
||||
REM limitations under the License.
|
||||
REM
|
||||
REM
|
||||
|
||||
set _CLASSPATHCOMPONENT=%1
|
||||
if ""%1""=="""" goto gotAllArgs
|
||||
shift
|
||||
|
||||
:argCheck
|
||||
if ""%1""=="""" goto gotAllArgs
|
||||
set _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1
|
||||
shift
|
||||
goto argCheck
|
||||
|
||||
:gotAllArgs
|
||||
set LOCALCLASSPATH=%_CLASSPATHCOMPONENT%;%LOCALCLASSPATH%
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright 2000-2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed 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.
|
||||
#
|
||||
#######################################################################
|
||||
#
|
||||
# runant.pl
|
||||
#
|
||||
# wrapper script for invoking ant in a platform with Perl installed
|
||||
# this may include cgi-bin invocation, which is considered somewhat daft.
|
||||
# (slo: that should be a separate file which can be derived from this
|
||||
# and returns the XML formatted output)
|
||||
#
|
||||
# the code is not totally portable due to classpath and directory splitting
|
||||
# issues. oops. (NB, use File::Spec::Functions will help and the code is
|
||||
# structured for the catfile() call, but because of perl version funnies
|
||||
# the code is not included.
|
||||
#
|
||||
# created: 2000-8-24
|
||||
# author: Steve Loughran steve_l@sourceforge.net
|
||||
#######################################################################
|
||||
#
|
||||
# Assumptions:
|
||||
#
|
||||
# - the "java" executable/script is on the command path
|
||||
# - ANT_HOME has been set
|
||||
# - target platform uses ":" as classpath separator or perl indicates it is dos/win32
|
||||
# - target platform uses "/" as directory separator.
|
||||
|
||||
#be fussy about variables
|
||||
use strict;
|
||||
|
||||
#platform specifics (disabled)
|
||||
#use File::Spec::Functions;
|
||||
|
||||
#turn warnings on during dev; generates a few spurious uninitialised var access warnings
|
||||
#use warnings;
|
||||
|
||||
#and set $debug to 1 to turn on trace info
|
||||
my $debug=1;
|
||||
|
||||
#######################################################################
|
||||
#
|
||||
# check to make sure environment is setup
|
||||
#
|
||||
|
||||
my $HOME = $ENV{ANT_HOME};
|
||||
if ($HOME eq "")
|
||||
{
|
||||
die "\n\nANT_HOME *MUST* be set!\n\n";
|
||||
}
|
||||
|
||||
my $JAVACMD = $ENV{JAVACMD};
|
||||
$JAVACMD = "java" if $JAVACMD eq "";
|
||||
|
||||
my $onnetware = 0;
|
||||
if ($^O eq "NetWare")
|
||||
{
|
||||
$onnetware = 1;
|
||||
}
|
||||
|
||||
my $oncygwin = ($^O eq "cygwin");
|
||||
|
||||
#ISSUE: what java wants to split up classpath varies from platform to platform
|
||||
#and perl is not too hot at hinting which box it is on.
|
||||
#here I assume ":" 'cept on win32, dos, and netware. Add extra tests here as needed.
|
||||
my $s=":";
|
||||
if(($^O eq "MSWin32") || ($^O eq "dos") || ($^O eq "cygwin") ||
|
||||
($onnetware == 1))
|
||||
{
|
||||
$s=";";
|
||||
}
|
||||
|
||||
#build up standard classpath
|
||||
my $localpath = "$HOME/lib/ant-launcher.jar";
|
||||
#set JVM options and Ant arguments, if any
|
||||
my @ANT_OPTS=split(" ", $ENV{ANT_OPTS});
|
||||
my @ANT_ARGS=split(" ", $ENV{ANT_ARGS});
|
||||
|
||||
#jikes
|
||||
if($ENV{JIKESPATH} ne "")
|
||||
{
|
||||
push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}";
|
||||
}
|
||||
|
||||
#construct arguments to java
|
||||
my @ARGS;
|
||||
push @ARGS, @ANT_OPTS;
|
||||
|
||||
my $CYGHOME = "";
|
||||
|
||||
my $classpath=$ENV{CLASSPATH};
|
||||
if ($oncygwin == 1) {
|
||||
$localpath = `cygpath --path --windows $localpath`;
|
||||
chomp ($localpath);
|
||||
if (! $classpath eq "")
|
||||
{
|
||||
$classpath = `cygpath --path --windows "$classpath"`;
|
||||
chomp ($classpath);
|
||||
}
|
||||
$HOME = `cygpath --path --windows $HOME`;
|
||||
chomp ($HOME);
|
||||
$CYGHOME = `cygpath --path --windows $ENV{HOME}`;
|
||||
chomp ($CYGHOME);
|
||||
}
|
||||
push @ARGS, "-classpath", "$localpath";
|
||||
push @ARGS, "-Dant.home=$HOME";
|
||||
if ( ! $CYGHOME eq "" )
|
||||
{
|
||||
push @ARGS, "-Dcygwin.user.home=\"$CYGHOME\""
|
||||
}
|
||||
push @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS;
|
||||
push @ARGS, @ARGV;
|
||||
if (! $classpath eq "")
|
||||
{
|
||||
if ($onnetware == 1)
|
||||
{
|
||||
# make classpath literally $CLASSPATH
|
||||
# this is to avoid pushing us over the 512 character limit
|
||||
# even skip the ; - that is already in $localpath
|
||||
push @ARGS, "-lib", "\$CLASSPATH";
|
||||
}
|
||||
else
|
||||
{
|
||||
push @ARGS, "-lib", "$classpath";
|
||||
}
|
||||
}
|
||||
print "\n $JAVACMD @ARGS\n\n" if ($debug);
|
||||
|
||||
my $returnValue = system $JAVACMD, @ARGS;
|
||||
if ($returnValue eq 0)
|
||||
{
|
||||
exit 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
# only 0 and 1 are widely recognized as exit values
|
||||
# so change the exit value to 1
|
||||
exit 1;
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright 2001,2003-2004 The Apache Software Foundation
|
||||
#
|
||||
# Licensed 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.
|
||||
#
|
||||
|
||||
"""
|
||||
|
||||
runant.py
|
||||
|
||||
This script is a translation of the runant.pl written by Steve Loughran.
|
||||
It runs ant with/out arguments, it should be quite portable (thanks to
|
||||
the python os library)
|
||||
This script has been tested with Python2.0/Win2K
|
||||
|
||||
created: 2001-04-11
|
||||
author: Pierre Dittgen pierre.dittgen@criltelecom.com
|
||||
|
||||
Assumptions:
|
||||
|
||||
- the "java" executable/script is on the command path
|
||||
"""
|
||||
import os, os.path, string, sys
|
||||
|
||||
# Change it to 1 to get extra debug information
|
||||
debug = 0
|
||||
|
||||
#######################################################################
|
||||
|
||||
# If ANT_HOME is not set default to script's parent directory
|
||||
if os.environ.has_key('ANT_HOME'):
|
||||
ANT_HOME = os.environ['ANT_HOME']
|
||||
else:
|
||||
ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0])))
|
||||
|
||||
# set ANT_LIB location
|
||||
ANT_LIB = os.path.join(ANT_HOME, 'lib')
|
||||
|
||||
# set JAVACMD (check variables JAVACMD and JAVA_HOME)
|
||||
JAVACMD = None
|
||||
if not os.environ.has_key('JAVACMD'):
|
||||
if os.environ.has_key('JAVA_HOME'):
|
||||
if not os.path.exists(os.environ['JAVA_HOME']):
|
||||
print "Warning: JAVA_HOME is not defined correctly."
|
||||
else:
|
||||
JAVACMD = os.path.join(os.environ['JAVA_HOME'], 'bin', 'java')
|
||||
else:
|
||||
print "Warning: JAVA_HOME not set."
|
||||
else:
|
||||
JAVACMD = os.environ['JAVACMD']
|
||||
if not JAVACMD:
|
||||
JAVACMD = 'java'
|
||||
|
||||
launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar')
|
||||
if not os.path.exists(launcher_jar):
|
||||
print 'Unable to locate ant-launcher.jar. Expected to find it in %s' % \
|
||||
ANT_LIB
|
||||
|
||||
# Build up standard classpath (LOCALCLASSPATH)
|
||||
LOCALCLASSPATH = launcher_jar
|
||||
if os.environ.has_key('LOCALCLASSPATH'):
|
||||
LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH']
|
||||
|
||||
ANT_OPTS = ""
|
||||
if os.environ.has_key('ANT_OPTS'):
|
||||
ANT_OPTS = os.environ['ANT_OPTS']
|
||||
|
||||
OPTS = ""
|
||||
if os.environ.has_key('JIKESPATH'):
|
||||
OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH']
|
||||
|
||||
ANT_ARGS = ""
|
||||
if os.environ.has_key('ANT_ARGS'):
|
||||
ANT_ARGS = os.environ['ANT_ARGS']
|
||||
|
||||
CLASSPATH = ""
|
||||
if os.environ.has_key('CLASSPATH'):
|
||||
CLASSPATH = os.environ['CLASSPATH']
|
||||
|
||||
# Builds the commandline
|
||||
cmdline = ('%s %s -classpath %s -Dant.home=%s %s ' + \
|
||||
'org.apache.tools.ant.launch.Launcher %s -lib %s %s') \
|
||||
% (JAVACMD, ANT_OPTS, LOCALCLASSPATH, ANT_HOME, OPTS, ANT_ARGS, \
|
||||
CLASSPATH, string.join(sys.argv[1:], ' '))
|
||||
|
||||
if debug:
|
||||
print '\n%s\n\n' % (cmdline)
|
||||
|
||||
# Run the biniou!
|
||||
os.system(cmdline)
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
Copyright 2003-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
Run RC file, name is in the first arg, second arg is either PATH
|
||||
ENV or -r or nothing
|
||||
*/
|
||||
|
||||
parse arg name path rest
|
||||
|
||||
if name = '' then do
|
||||
say 'RC file name is missing'
|
||||
exit 1
|
||||
end
|
||||
|
||||
if rest \= '' then do
|
||||
say 'Too many parameters'
|
||||
exit 1
|
||||
end
|
||||
|
||||
call runit name path
|
||||
exit 0
|
||||
|
||||
runit: procedure
|
||||
parse arg name path dir
|
||||
|
||||
if path \= '' & path \= '-r' then do
|
||||
dir = value(translate(path),,'OS2ENVIRONMENT')
|
||||
if dir = '' then return
|
||||
dir = translate(dir, '\', '/') /* change UNIX-like path to OS/2 */
|
||||
end
|
||||
|
||||
if dir = '' then dir = directory()
|
||||
|
||||
if path = '-r' then do /* recursive call */
|
||||
subdir = filespec('path', dir)
|
||||
if subdir \= '\' then do
|
||||
subdir = left(subdir, length(subdir)-1)
|
||||
call runit name path filespec('drive', dir) || subdir
|
||||
end
|
||||
end
|
||||
|
||||
/* Look for the file and run it */
|
||||
if right(dir, 1) \= '\' then dir = dir || '\'
|
||||
rcfile = stream(dir || name, 'c', 'query exists')
|
||||
if rcfile \= '' then interpret 'call "' || rcfile || '"'
|
||||
|
||||
return
|
||||
Binary file not shown.
@@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
|
||||
version='1.0'>
|
||||
|
||||
<!--
|
||||
Copyright 2002,2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
<xsl:param name="title"/>
|
||||
<xsl:param name="module"/>
|
||||
<xsl:param name="cvsweb"/>
|
||||
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"
|
||||
doctype-public="-//W3C//DTD HTML 4.01//EN"
|
||||
doctype-system="http://www.w3.org/TR/html401/strict.dtd"/>
|
||||
|
||||
<!-- Copy standard document elements. Elements that
|
||||
should be ignored must be filtered by apply-templates
|
||||
tags. -->
|
||||
<xsl:template match="*">
|
||||
<xsl:copy>
|
||||
<xsl:copy-of select="attribute::*[. != '']"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="changelog">
|
||||
<html>
|
||||
<head>
|
||||
<title><xsl:value-of select="$title"/></title>
|
||||
<style type="text/css">
|
||||
body, p {
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size: 80%;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
tr, td {
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
background: #eeeee0;
|
||||
}
|
||||
td {
|
||||
padding-left: 20px;
|
||||
}
|
||||
.dateAndAuthor {
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
background: #a6caf0;
|
||||
padding-left: 3px;
|
||||
}
|
||||
a {
|
||||
color: #000000;
|
||||
}
|
||||
pre {
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>
|
||||
<a name="top"><xsl:value-of select="$title"/></a>
|
||||
</h1>
|
||||
<p style="text-align: right">Designed for use with <a href="http://jakarta.apache.org/ant/">Ant</a>.</p>
|
||||
<hr/>
|
||||
<table border="0" width="100%" cellspacing="1">
|
||||
|
||||
<xsl:apply-templates select=".//entry">
|
||||
<xsl:sort select="date" data-type="text" order="descending"/>
|
||||
<xsl:sort select="time" data-type="text" order="descending"/>
|
||||
</xsl:apply-templates>
|
||||
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="entry">
|
||||
<tr>
|
||||
<td class="dateAndAuthor">
|
||||
<xsl:value-of select="date"/><xsl:text> </xsl:text><xsl:value-of select="time"/><xsl:text> </xsl:text><xsl:value-of select="author"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<pre>
|
||||
<xsl:apply-templates select="msg"/></pre>
|
||||
<ul>
|
||||
<xsl:apply-templates select="file"/>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="date">
|
||||
<i><xsl:value-of select="."/></i>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="time">
|
||||
<i><xsl:value-of select="."/></i>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="author">
|
||||
<i>
|
||||
<a>
|
||||
<xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
|
||||
<xsl:value-of select="."/></a>
|
||||
</i>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(prevrevision) = 0 ">
|
||||
<xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?rev=<xsl:value-of select="revision" />&content-type=text/x-cvsweb-markup</xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?r1=<xsl:value-of select="revision" />&r2=<xsl:value-of select="prevrevision"/></xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:value-of select="name" /> (<xsl:value-of select="revision"/>)</a>
|
||||
</li>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Any elements within a msg are processed,
|
||||
so that we can preserve HTML tags. -->
|
||||
<xsl:template match="msg">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,293 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="org.apache.xalan.lib.Redirect"
|
||||
extension-element-prefixes="redirect">
|
||||
|
||||
<!--
|
||||
Copyright 2002-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator="," />
|
||||
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
<xsl:param name="basedir" select="'.'"/>
|
||||
|
||||
<xsl:template match="checkstyle">
|
||||
<!-- create the index.html -->
|
||||
<redirect:write file="{$output.dir}/index.html">
|
||||
<xsl:call-template name="index.html"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the stylesheet.css -->
|
||||
<redirect:write file="{$output.dir}/stylesheet.css">
|
||||
<xsl:call-template name="stylesheet.css"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-summary.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-frame.html">
|
||||
<xsl:apply-templates select="." mode="overview"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-classes.html at the root -->
|
||||
<redirect:write file="{$output.dir}/allclasses-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.classes"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- process all files -->
|
||||
<xsl:apply-templates select="file[count(error) != 0]"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="index.html">
|
||||
<html>
|
||||
<head>
|
||||
<title>CheckStyle Audit</title>
|
||||
</head>
|
||||
<frameset cols="20%,80%">
|
||||
<frame src="allclasses-frame.html" name="fileListFrame"/>
|
||||
<frame src="overview-frame.html" name="fileFrame"/>
|
||||
</frameset>
|
||||
<noframes>
|
||||
<h2>Frame Alert</h2>
|
||||
<p>
|
||||
This document is designed to be viewed using the frames feature.
|
||||
If you see this message, you are using a non-frame-capable web client.
|
||||
</p>
|
||||
</noframes>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="pageHeader">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td class="text-align:right"><h2>CheckStyle Audit</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-align:right">Designed for use with
|
||||
<a href='http://checkstyle.sourceforge.net/'>CheckStyle</a> and
|
||||
<a href='http://ant.apache.org/'>Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="checkstyle" mode="overview">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- page header -->
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
|
||||
<!-- Summary part -->
|
||||
<xsl:apply-templates select="." mode="summary"/>
|
||||
<hr size="1" width="100%" align="left"/>
|
||||
|
||||
<!-- File list part -->
|
||||
<xsl:apply-templates select="." mode="filelist"/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="stylesheet.css">
|
||||
.bannercell {
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
body {
|
||||
margin-left: 10;
|
||||
margin-right: 10;
|
||||
font:normal 80% arial,helvetica,sanserif;
|
||||
background-color:#FFFFFF;
|
||||
color:#000000;
|
||||
}
|
||||
.oddrow td {
|
||||
background: #efefef;
|
||||
}
|
||||
.evenrow td {
|
||||
background: #fff;
|
||||
}
|
||||
th, td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
th {
|
||||
font-weight:bold;
|
||||
background: #ccc;
|
||||
color: black;
|
||||
}
|
||||
table, th, td {
|
||||
font-size:100%;
|
||||
border: none
|
||||
}
|
||||
table.log tr td, tr th {
|
||||
|
||||
}
|
||||
h2 {
|
||||
font-weight:bold;
|
||||
font-size:140%;
|
||||
margin-bottom: 5;
|
||||
}
|
||||
h3 {
|
||||
font-size:100%;
|
||||
font-weight:bold;
|
||||
background: #525D76;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Creates an all-classes.html file that contains a link to all files.
|
||||
-->
|
||||
<xsl:template match="checkstyle" mode="all.classes">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Files</h2>
|
||||
<p>
|
||||
<table width="100%">
|
||||
<!-- For each file create its part -->
|
||||
<xsl:apply-templates select="file[count(error) != 0]" mode="all.classes">
|
||||
<xsl:sort select="substring-after(@name, $basedir)"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="checkstyle" mode="filelist">
|
||||
<h3>Files</h3>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Errors</th>
|
||||
</tr>
|
||||
<xsl:apply-templates select="file[count(error) != 0]" mode="filelist">
|
||||
<xsl:sort select="count(error)" order="descending" data-type="number"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file" mode="filelist">
|
||||
<tr>
|
||||
<xsl:call-template name="alternated-row"/>
|
||||
<td nowrap="nowrap">
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:text>files/</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="substring-after(@name, $basedir)"/>
|
||||
</a>
|
||||
</td>
|
||||
<td><xsl:value-of select="count(error)"/></td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file" mode="all.classes">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a target="fileFrame">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:text>files/</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="substring-after(@name, $basedir)"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
transform string like a/b/c to ../../../
|
||||
@param path the path to transform into a descending directory path
|
||||
-->
|
||||
<xsl:template name="path">
|
||||
<xsl:param name="path"/>
|
||||
<xsl:if test="contains($path,'/')">
|
||||
<xsl:text>../</xsl:text>
|
||||
<xsl:call-template name="path">
|
||||
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'/')"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(contains($path,'/')) and not($path = '')">
|
||||
<xsl:text>../</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file">
|
||||
<redirect:write file="{$output.dir}/files/{substring-after(@name, $basedir)}.html">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css">
|
||||
<xsl:attribute name="href"><xsl:call-template name="path"><xsl:with-param name="path" select="substring-after(@name, $basedir)"/></xsl:call-template><xsl:text>stylesheet.css</xsl:text></xsl:attribute>
|
||||
</link>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>File <xsl:value-of select="substring-after(@name, $basedir)"/></h3>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tr>
|
||||
<th>Error Description</th>
|
||||
<th>Line:Column</th>
|
||||
</tr>
|
||||
<xsl:for-each select="error">
|
||||
<tr>
|
||||
<xsl:call-template name="alternated-row"/>
|
||||
<td><a title="{@source}"><xsl:value-of select="@message"/></a></td>
|
||||
<td align="center"><xsl:value-of select="@line"/><xsl:if test="@column">:<xsl:value-of select="@column"/></xsl:if></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</redirect:write>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="checkstyle" mode="summary">
|
||||
<h3>Summary</h3>
|
||||
<xsl:variable name="fileCount" select="count(file)"/>
|
||||
<xsl:variable name="errorCount" select="count(file/error)"/>
|
||||
<xsl:variable name="fileErrorCount" select="count(file[count(error) != 0])"/>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tr>
|
||||
<th>Total Files</th>
|
||||
<th>Files With Errors</th>
|
||||
<th>Errors</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<xsl:call-template name="alternated-row"/>
|
||||
<td><xsl:value-of select="$fileCount"/></td>
|
||||
<td><xsl:value-of select="$fileErrorCount"/></td>
|
||||
<td><xsl:value-of select="$errorCount"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="alternated-row">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:if test="position() mod 2 = 1">oddrow</xsl:if>
|
||||
<xsl:if test="position() mod 2 = 0">evenrow</xsl:if>
|
||||
</xsl:attribute>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,33 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
|
||||
<!--
|
||||
Copyright 2003-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
|
||||
<xsl:strip-space elements="checkstyle"/>
|
||||
<xsl:preserve-space elements="file"/>
|
||||
<xsl:output method="text"/>
|
||||
<xsl:template match="checkstyle/file/error">
|
||||
<xsl:value-of select="../@name"/>
|
||||
<xsl:text>:</xsl:text>
|
||||
<xsl:value-of select="@line"/>
|
||||
<xsl:text>:</xsl:text>
|
||||
<xsl:value-of select="@column"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@message"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="org.apache.xalan.lib.Redirect"
|
||||
extension-element-prefixes="redirect">
|
||||
|
||||
<!--
|
||||
Copyright 2003-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
|
||||
<xsl:output method="xml" indent="yes"/>
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator="," />
|
||||
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
<xsl:param name="basedir" select="'.'"/>
|
||||
|
||||
<xsl:template match="checkstyle">
|
||||
<document>
|
||||
<properties>
|
||||
<title>Checkstyle Audit</title>
|
||||
</properties>
|
||||
|
||||
<body>
|
||||
<xsl:apply-templates select="." mode="summary"/>
|
||||
<!-- File list part -->
|
||||
<xsl:apply-templates select="." mode="filelist"/>
|
||||
<xsl:apply-templates select="file[count(error) != 0]"/>
|
||||
</body>
|
||||
</document>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="checkstyle" mode="filelist">
|
||||
<section name="Files">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Errors</th>
|
||||
</tr>
|
||||
<xsl:apply-templates select="file[count(error) != 0]" mode="filelist">
|
||||
<xsl:sort select="count(error)" order="descending" data-type="number"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</section>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file" mode="filelist">
|
||||
<tr>
|
||||
<xsl:call-template name="alternated-row"/>
|
||||
<td nowrap="nowrap">
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:text>files</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="substring-after(@name, $basedir)"/>
|
||||
</a>
|
||||
</td>
|
||||
<td><xsl:value-of select="count(error)"/></td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file">
|
||||
<redirect:write file="{$output.dir}/files{substring-after(@name, $basedir)}.xml">
|
||||
<document>
|
||||
<properties>
|
||||
<title>Checkstyle Audit</title>
|
||||
</properties>
|
||||
|
||||
<body>
|
||||
<section name="Details for {substring-after(@name, $basedir)}">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Error Description</th>
|
||||
<th>Line</th>
|
||||
</tr>
|
||||
<xsl:for-each select="error">
|
||||
<tr>
|
||||
<xsl:call-template name="alternated-row"/>
|
||||
<td><a title="{@source}"><xsl:value-of select="@message"/></a></td>
|
||||
<td><xsl:value-of select="@line"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</section>
|
||||
</body>
|
||||
</document>
|
||||
</redirect:write>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="checkstyle" mode="summary">
|
||||
<section name="Summary">
|
||||
<xsl:variable name="fileCount" select="count(file)"/>
|
||||
<xsl:variable name="errorCount" select="count(file/error)"/>
|
||||
<xsl:variable name="fileErrorCount" select="count(file[count(error) != 0])"/>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Files</th>
|
||||
<th>Files With Errors</th>
|
||||
<th>Errors</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<xsl:call-template name="alternated-row"/>
|
||||
<td><xsl:value-of select="$fileCount"/></td>
|
||||
<td><xsl:value-of select="$fileErrorCount"/></td>
|
||||
<td><xsl:value-of select="$errorCount"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="alternated-row">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:if test="position() mod 2 = 1">oddrow</xsl:if>
|
||||
<xsl:if test="position() mod 2 = 0">evenrow</xsl:if>
|
||||
</xsl:attribute>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
@@ -0,0 +1,496 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="org.apache.xalan.lib.Redirect"
|
||||
extension-element-prefixes="redirect">
|
||||
<xsl:output method="html" indent="yes"/>
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator="," />
|
||||
<!--
|
||||
Copyright 2001-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
Sample stylesheet to be used with JProbe 3.0 XML output.
|
||||
|
||||
It creates a set of HTML files a la javadoc where you can browse easily
|
||||
through all packages and classes.
|
||||
|
||||
It is best used with JProbe Coverage Ant task that gives you the benefit
|
||||
of a reference classpath so that you have the list of classes/methods
|
||||
that are not used at all in a given classpath.
|
||||
|
||||
@author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/>
|
||||
|
||||
-->
|
||||
|
||||
<!-- default output directory is current directory -->
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
|
||||
<!-- ======================================================================
|
||||
Root element
|
||||
======================================================================= -->
|
||||
<xsl:template match="/snapshot">
|
||||
<!-- create the index.html -->
|
||||
<redirect:write file="{$output.dir}/index.html">
|
||||
<xsl:call-template name="index.html"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the stylesheet.css -->
|
||||
<redirect:write file="{$output.dir}/stylesheet.css">
|
||||
<xsl:call-template name="stylesheet.css"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-summary.html">
|
||||
<xsl:apply-templates select="." mode="overview.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-classes.html at the root -->
|
||||
<redirect:write file="{$output.dir}/allclasses-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.classes"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- process all packages -->
|
||||
<xsl:apply-templates select="./package" mode="write"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- =======================================================================
|
||||
Frameset definition. Entry point for the report.
|
||||
3 frames: packageListFrame, classListFrame, classFrame
|
||||
======================================================================= -->
|
||||
<xsl:template name="index.html">
|
||||
<html>
|
||||
<head><title>Coverage Results.</title></head>
|
||||
<frameset cols="20%,80%">
|
||||
<frameset rows="30%,70%">
|
||||
<frame src="overview-frame.html" name="packageListFrame"/>
|
||||
<frame src="allclasses-frame.html" name="classListFrame"/>
|
||||
</frameset>
|
||||
<frame src="overview-summary.html" name="classFrame"/>
|
||||
</frameset>
|
||||
<noframes>
|
||||
<h2>Frame Alert</h2>
|
||||
<p>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
</p>
|
||||
</noframes>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- =======================================================================
|
||||
Stylesheet CSS used
|
||||
======================================================================= -->
|
||||
<!-- this is the stylesheet css to use for nearly everything -->
|
||||
<xsl:template name="stylesheet.css">
|
||||
.bannercell {
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
body {
|
||||
margin-left: 10;
|
||||
margin-right: 10;
|
||||
font:normal 80% arial,helvetica,sanserif;
|
||||
background-color:#FFFFFF;
|
||||
color:#000000;
|
||||
}
|
||||
.a td {
|
||||
background: #efefef;
|
||||
}
|
||||
.b td {
|
||||
background: #fff;
|
||||
}
|
||||
th, td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
th {
|
||||
font-weight:bold;
|
||||
background: #ccc;
|
||||
color: black;
|
||||
}
|
||||
table, th, td {
|
||||
font-size:100%;
|
||||
border: none
|
||||
}
|
||||
table.log tr td, tr th {
|
||||
|
||||
}
|
||||
h2 {
|
||||
font-weight:bold;
|
||||
font-size:140%;
|
||||
margin-bottom: 5;
|
||||
}
|
||||
h3 {
|
||||
font-size:100%;
|
||||
font-weight:bold;
|
||||
background: #525D76;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</xsl:template>
|
||||
|
||||
<!-- =======================================================================
|
||||
List of all classes in all packages
|
||||
This will be the first page in the classListFrame
|
||||
======================================================================= -->
|
||||
<xsl:template match="snapshot" mode="all.classes">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link"/>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Classes</h2>
|
||||
<table width="100%">
|
||||
<xsl:for-each select="package/class">
|
||||
<xsl:sort select="@name"/>
|
||||
<xsl:variable name="package.name" select="(ancestor::package)[last()]/@name"/>
|
||||
<xsl:variable name="link">
|
||||
<xsl:if test="not($package.name='')">
|
||||
<xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
|
||||
</xsl:if><xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
|
||||
</xsl:variable>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a target="classFrame" href="{$link}"><xsl:value-of select="@name"/></a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- list of all packages -->
|
||||
<xsl:template match="snapshot" mode="all.packages">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link"/>
|
||||
</head>
|
||||
<body>
|
||||
<h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
|
||||
<h2>Packages</h2>
|
||||
<table width="100%">
|
||||
<xsl:for-each select="package">
|
||||
<xsl:sort select="@name" order="ascending"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="{translate(@name,'.','/')}/package-summary.html" target="classFrame">
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- overview of statistics in packages -->
|
||||
<xsl:template match="snapshot" mode="overview.packages">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link"/>
|
||||
</head>
|
||||
<body onload="open('allclasses-frame.html','classListFrame')">
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Summary</h3>
|
||||
<table class="log" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tr>
|
||||
<!--th width="10%" nowrap="nowrap">Date</th>
|
||||
<th width="10%" nowrap="nowrap">Elapsed time</th-->
|
||||
<th width="10%" nowrap="nowrap">Reported Classes</th>
|
||||
<th width="10%" nowrap="nowrap">Methods Hit</th>
|
||||
<th width="10%" nowrap="nowrap">Lines Hit</th>
|
||||
</tr>
|
||||
<tr class="a">
|
||||
<!--td nowrap="nowrap"><xsl:value-of select="execution_log/@program_start"/></td>
|
||||
<td><xsl:value-of select="format-number(execution_log/@elapsed_time div 1000,'0.0')"/>secs</td-->
|
||||
<td><xsl:value-of select="count(package/class)"/></td>
|
||||
<td><xsl:value-of select="format-number(cov.data/@hit_methods div cov.data/@total_methods,'0.0%')"/></td>
|
||||
<td><xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: justify;">
|
||||
To ensure accurate test runs on Java applications, developers need to know how much of
|
||||
the code has been tested, and where to find any untested code. Coverage helps you
|
||||
locate untested code, and measure precisely how much code has been exercised.
|
||||
The result is a higher quality application in a shorter period of time.
|
||||
<p/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Packages</h3>
|
||||
<table class="log" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:apply-templates select="package[1]" mode="stats.header"/>
|
||||
<!-- display packages and sort them via their coverage rate -->
|
||||
<xsl:for-each select="package">
|
||||
<xsl:sort data-type="number" select="cov.data/@hit_lines div cov.data/@total_lines"/>
|
||||
<tr>
|
||||
<xsl:call-template name="alternate-row"/>
|
||||
<td><a href="{translate(@name,'.','/')}/package-summary.html"><xsl:value-of select="@name"/></a></td>
|
||||
<td><xsl:value-of select="format-number(cov.data/@hit_methods div cov.data/@total_methods,'0.0%')"/></td>
|
||||
<td><xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<xsl:call-template name="pageFooter"/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
detailed info for a package. It will output the list of classes
|
||||
, the summary page, and the info for each class
|
||||
-->
|
||||
<xsl:template match="package" mode="write">
|
||||
<xsl:variable name="package.dir">
|
||||
<xsl:if test="not(@name = '')"><xsl:value-of select="translate(@name,'.','/')"/></xsl:if>
|
||||
<xsl:if test="@name = ''">.</xsl:if>
|
||||
</xsl:variable>
|
||||
|
||||
<!-- create a classes-list.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
|
||||
<xsl:apply-templates select="." mode="classes.list"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create a package-summary.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
|
||||
<xsl:apply-templates select="." mode="package.summary"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- for each class, creates a @name.html -->
|
||||
<xsl:for-each select="class">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}.html">
|
||||
<xsl:apply-templates select="." mode="class.details"/>
|
||||
</redirect:write>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<!-- list of classes in a package -->
|
||||
<xsl:template match="package" mode="classes.list">
|
||||
<html>
|
||||
<HEAD>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="@name"/>
|
||||
</xsl:call-template>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<H2><a href="package-summary.html" target="classFrame"><xsl:value-of select="@name"/></a></H2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<H2>Classes</H2>
|
||||
<TABLE WIDTH="100%">
|
||||
<xsl:for-each select="class">
|
||||
<xsl:sort select="@name"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</TABLE>
|
||||
</BODY>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- summary of a package -->
|
||||
<xsl:template match="package" mode="package.summary">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="@name"/>
|
||||
</xsl:call-template>
|
||||
</HEAD>
|
||||
<!-- when loading this package, it will open the classes into the frame -->
|
||||
<BODY onload="open('package-frame.html','classListFrame')">
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Package <xsl:value-of select="@name"/></h3>
|
||||
<table class="log" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:apply-templates select="." mode="stats.header"/>
|
||||
<xsl:apply-templates select="." mode="stats"/>
|
||||
</table>
|
||||
|
||||
<xsl:if test="count(class) > 0">
|
||||
<H3>Classes</H3>
|
||||
<table class="log" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:apply-templates select="." mode="stats.header"/>
|
||||
<xsl:apply-templates select="class" mode="stats">
|
||||
<xsl:sort data-type="number" select="cov.data/@hit_lines div cov.data/@total_lines"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="pageFooter"/>
|
||||
</BODY>
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
|
||||
<!-- details of a class -->
|
||||
<xsl:template match="class" mode="class.details">
|
||||
<xsl:variable name="package.name" select="(ancestor::package)[last()]/@name"/>
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$package.name"/>
|
||||
</xsl:call-template>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<H3>Class <xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></H3>
|
||||
|
||||
<!-- class summary -->
|
||||
<table class="log" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:apply-templates select="." mode="stats.header"/>
|
||||
<xsl:apply-templates select="." mode="stats"/>
|
||||
</table>
|
||||
|
||||
<!-- details of methods -->
|
||||
<H3>Methods</H3>
|
||||
<table class="log" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:apply-templates select="method[1]" mode="stats.header"/>
|
||||
<xsl:apply-templates select="method" mode="stats">
|
||||
<xsl:sort data-type="number" select="cov.data/@hit_lines div cov.data/@total_lines"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
<xsl:call-template name="pageFooter"/>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<!-- Page Header -->
|
||||
<xsl:template name="pageHeader">
|
||||
<!-- jakarta logo -->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td class="bannercell" rowspan="2">
|
||||
<a href="http://jakarta.apache.org/">
|
||||
<img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/>
|
||||
</a>
|
||||
</td>
|
||||
<td style="text-align:right"><h2>Source Code Coverage</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right">Designed for use with <a href='http://www.sitraka.com/jprobe'>Sitraka JProbe</a> and <a href='http://jakarta.apache.org'>Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Page Footer -->
|
||||
<xsl:template name="pageFooter">
|
||||
<table width="100%">
|
||||
<tr><td><hr noshade="yes" size="1"/></td></tr>
|
||||
<tr><td>
|
||||
<div align="center"><font color="#525D76" size="-1"><em>
|
||||
Copyright © 1999-2001, Apache Software Foundation
|
||||
</em></font></div>
|
||||
</td></tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="table.header">
|
||||
<tr>
|
||||
<th width="80%">Name</th>
|
||||
<th width="10%" nowrap="nowrap">Methods Hit</th>
|
||||
<th width="10%" nowrap="nowrap">Lines Hit</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="method" mode="stats.header">
|
||||
<tr>
|
||||
<th width="90%">Name</th>
|
||||
<th width="10%" nowrap="nowrap">Lines Hit</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
<xsl:template match="method" mode="stats">
|
||||
<tr>
|
||||
<xsl:call-template name="alternate-row"/>
|
||||
<td><xsl:value-of select="@name"/></td>
|
||||
<td>
|
||||
<xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="package|class" mode="stats.header">
|
||||
<tr>
|
||||
<th width="80%">Name</th>
|
||||
<th width="10%" nowrap="nowrap">Methods Hit</th>
|
||||
<th width="10%" nowrap="nowrap">Lines Hit</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
<xsl:template match="package|class" mode="stats">
|
||||
<tr>
|
||||
<xsl:call-template name="alternate-row"/>
|
||||
<td><xsl:value-of select="@name"/></td>
|
||||
<td><xsl:value-of select="format-number(cov.data/@hit_methods div cov.data/@total_methods,'0.0%')"/></td>
|
||||
<td><xsl:value-of select="format-number(cov.data/@hit_lines div cov.data/@total_lines,'0.0%')"/></td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
transform string like a.b.c to ../../../
|
||||
@param path the path to transform into a descending directory path
|
||||
-->
|
||||
<xsl:template name="path">
|
||||
<xsl:param name="path"/>
|
||||
<xsl:if test="contains($path,'.')">
|
||||
<xsl:text>../</xsl:text>
|
||||
<xsl:call-template name="path">
|
||||
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(contains($path,'.')) and not($path = '')">
|
||||
<xsl:text>../</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- create the link to the stylesheet based on the package name -->
|
||||
<xsl:template name="create.stylesheet.link">
|
||||
<xsl:param name="package.name"/>
|
||||
<LINK REL ="stylesheet" TYPE="text/css" TITLE="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></LINK>
|
||||
</xsl:template>
|
||||
|
||||
<!-- alternated row style -->
|
||||
<xsl:template name="alternate-row">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:if test="position() mod 2 = 1">a</xsl:if>
|
||||
<xsl:if test="position() mod 2 = 0">b</xsl:if>
|
||||
</xsl:attribute>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
||||
@@ -0,0 +1,485 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="org.apache.xalan.lib.Redirect"
|
||||
extension-element-prefixes="redirect">
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
<!--
|
||||
Copyright 2002-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
<!--
|
||||
|
||||
Sample stylesheet to be used with JDepend XML output.
|
||||
|
||||
It creates a set of HTML files a la javadoc where you can browse easily
|
||||
through all packages and classes.
|
||||
|
||||
@author <a href="mailto:jtulley@novell.com">Jeff Tulley</a>
|
||||
|
||||
-->
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
|
||||
<xsl:template match="JDepend">
|
||||
<!-- create the index.html -->
|
||||
<redirect:write file="{$output.dir}/index.html">
|
||||
<xsl:call-template name="index.html"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the stylesheet.css -->
|
||||
<redirect:write file="{$output.dir}/stylesheet.css">
|
||||
<xsl:call-template name="stylesheet.css"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-summary.html">
|
||||
<xsl:apply-templates select="." mode="overview.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-packages.html">
|
||||
<xsl:apply-templates select="." mode="packages.details"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-cycles.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-cycles.html">
|
||||
<xsl:apply-templates select="." mode="cycles.details"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-cycles.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-explanations.html">
|
||||
<xsl:apply-templates select="." mode="explanations"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/all-packages.html">
|
||||
<xsl:apply-templates select="Packages" mode="all.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-cycles.html at the root -->
|
||||
<redirect:write file="{$output.dir}/all-cycles.html">
|
||||
<xsl:apply-templates select="Cycles" mode="all.cycles"/>
|
||||
</redirect:write>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="index.html">
|
||||
<html>
|
||||
<head>
|
||||
<title>JDepend Analysis</title>
|
||||
</head>
|
||||
<frameset cols="20%,80%">
|
||||
<frameset rows="30%,70%">
|
||||
<frame src="all-packages.html" name="packageListFrame"/>
|
||||
<frame src="all-cycles.html" name="classListFrame"/>
|
||||
</frameset>
|
||||
<frame src="overview-summary.html" name="classFrame"/>
|
||||
</frameset>
|
||||
<noframes>
|
||||
<h2>Frame Alert</h2>
|
||||
<p>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
</p>
|
||||
</noframes>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- this is the stylesheet css to use for nearly everything -->
|
||||
<xsl:template name="stylesheet.css">
|
||||
<style type="text/css">
|
||||
body {
|
||||
font:normal 68% verdana,arial,helvetica;
|
||||
color:#000000;
|
||||
}
|
||||
table tr td, tr th {
|
||||
font-size: 68%;
|
||||
}
|
||||
table.details tr th{
|
||||
font-weight: bold;
|
||||
text-align:left;
|
||||
background:#a6caf0;
|
||||
}
|
||||
table.details tr td{
|
||||
background:#eeeee0;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height:1.5em;
|
||||
margin-top:0.5em; margin-bottom:1.0em;
|
||||
margin-left:2em;
|
||||
margin-right:2em;
|
||||
}
|
||||
h1 {
|
||||
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
|
||||
}
|
||||
h2 {
|
||||
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
|
||||
}
|
||||
h3 {
|
||||
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h5 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h6 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
.Error {
|
||||
font-weight:bold; color:red;
|
||||
}
|
||||
.Failure {
|
||||
font-weight:bold; color:purple;
|
||||
}
|
||||
.Properties {
|
||||
text-align:right;
|
||||
}
|
||||
</style>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="JDepend" mode="overview.packages">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<table width="100%"><tr align="left"><h2>Summary</h2><td>
|
||||
</td><td align="right">
|
||||
[summary]
|
||||
[<a href="overview-packages.html">packages</a>]
|
||||
[<a href="overview-cycles.html">cycles</a>]
|
||||
[<a href="overview-explanations.html">explanations</a>]
|
||||
</td></tr></table>
|
||||
<table width="100%" class="details">
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th>Total Classes</th>
|
||||
<th><a href="overview-explanations.html#EXnumber">Abstract Classes</a></th>
|
||||
<th><a href="overview-explanations.html#EXnumber">Concrete Classes</a></th>
|
||||
<th><a href="overview-explanations.html#EXafferent">Afferent Couplings</a></th>
|
||||
<th><a href="overview-explanations.html#EXefferent">Efferent Couplings</a></th>
|
||||
<th><a href="overview-explanations.html#EXabstractness">Abstractness</a></th>
|
||||
<th><a href="overview-explanations.html#EXinstability">Instability</a></th>
|
||||
<th><a href="overview-explanations.html#EXdistance">Distance</a></th>
|
||||
|
||||
</tr>
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:if test="count(error) = 0">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<a>
|
||||
<xsl:attribute name="href">overview-packages.html#PK<xsl:value-of select="@name"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
<td align="right"><xsl:value-of select="Stats/TotalClasses"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/AbstractClasses"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/ConcreteClasses"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/Ca"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/Ce"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/A"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/I"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/D"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:if test="count(error) > 0">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<xsl:value-of select="@name"/>
|
||||
</td>
|
||||
<td align="left" colspan="8"><xsl:value-of select="error"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="JDepend" mode="packages.details">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<table width="100%"><tr align="left"><h2>Packages</h2><td>
|
||||
</td><td align="right">
|
||||
[<a href="overview-summary.html">summary</a>]
|
||||
[packages]
|
||||
[<a href="overview-cycles.html">cycles</a>]
|
||||
[<a href="overview-explanations.html">explanations</a>]
|
||||
</td></tr></table>
|
||||
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:if test="count(error) = 0">
|
||||
<h3><a><xsl:attribute name="name">PK<xsl:value-of select="@name"/></xsl:attribute>
|
||||
<xsl:value-of select="@name"/></a></h3>
|
||||
|
||||
<table width="100%"><tr>
|
||||
<td><a href="overview-explanations.html#EXafferent">Afferent Couplings</a>: <xsl:value-of select="Stats/Ca"/></td>
|
||||
<td><a href="overview-explanations.html#EXefferent">Efferent Couplings</a>: <xsl:value-of select="Stats/Ce"/></td>
|
||||
<td><a href="overview-explanations.html#EXabstractness">Abstractness</a>: <xsl:value-of select="Stats/A"/></td>
|
||||
<td><a href="overview-explanations.html#EXinstability">Instability</a>: <xsl:value-of select="Stats/I"/></td>
|
||||
<td><a href="overview-explanations.html#EXdistance">Distance</a>: <xsl:value-of select="Stats/D"/></td>
|
||||
</tr></table>
|
||||
|
||||
<table width="100%" class="details">
|
||||
<tr>
|
||||
<th>Abstract Classes</th>
|
||||
<th>Concrete Classes</th>
|
||||
<th>Used by Packages</th>
|
||||
<th>Uses Packages</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(AbstractClasses/Class)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="AbstractClasses/Class">
|
||||
<xsl:value-of select="node()"/><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(ConcreteClasses/Class)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="ConcreteClasses/Class">
|
||||
<xsl:value-of select="node()"/><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(UsedBy/Package)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="UsedBy/Package">
|
||||
<a>
|
||||
<xsl:attribute name="href">overview-packages.html#PK<xsl:value-of select="node()"/></xsl:attribute>
|
||||
<xsl:value-of select="node()"/>
|
||||
</a><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(DependsUpon/Package)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="DependsUpon/Package">
|
||||
<a>
|
||||
<xsl:attribute name="href">overview-packages.html#PK<xsl:value-of select="node()"/></xsl:attribute>
|
||||
<xsl:value-of select="node()"/>
|
||||
</a><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<!-- this is often a long listing; provide a lower navigation table also -->
|
||||
<table width="100%"><tr align="left"><td></td><td align="right">
|
||||
[<a href="overview-summary.html">summary</a>]
|
||||
[packages]
|
||||
[<a href="overview-cycles.html">cycles</a>]
|
||||
[<a href="overview-explanations.html">explanations</a>]
|
||||
</td></tr></table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="JDepend" mode="cycles.details">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<table width="100%"><tr align="left"><h2>Cycles</h2><td>
|
||||
</td><td align="right">
|
||||
[<a href="overview-summary.html">summary</a>]
|
||||
[<a href="overview-packages.html">packages</a>]
|
||||
[cycles]
|
||||
[<a href="overview-explanations.html">explanations</a>]
|
||||
</td></tr></table>
|
||||
<!--<table width="100%"><tr><td>
|
||||
</td><td align="right">
|
||||
[<a href="#NVsummary">summary</a>]
|
||||
[<a href="#NVpackages">packages</a>]
|
||||
[<a href="#NVcycles">cycles</a>]
|
||||
[<a href="#NVexplanations">explanations</a>]
|
||||
</td></tr></table> -->
|
||||
|
||||
<xsl:if test="count(Cycles/Package) = 0">
|
||||
<p>There are no cyclic dependancies.</p>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="Cycles/Package">
|
||||
<h3><a><xsl:attribute name="name">#CY<xsl:value-of select="@Name"/></xsl:attribute><xsl:value-of select="@Name"/></a></h3><p>
|
||||
<xsl:for-each select="Package">
|
||||
<xsl:value-of select="."/><br/>
|
||||
</xsl:for-each></p>
|
||||
</xsl:for-each>
|
||||
<!-- this is often a long listing; provide a lower navigation table also -->
|
||||
<table width="100%"><tr align="left"><td></td><td align="right">
|
||||
[<a href="overview-summary.html">summary</a>]
|
||||
[<a href="overview-packages.html">packages</a>]
|
||||
[cycles]
|
||||
[<a href="overview-explanations.html">explanations</a>]
|
||||
</td></tr></table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="JDepend" mode="explanations">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
|
||||
<table width="100%"><tr align="left"><h2>Explanations</h2><td>
|
||||
</td><td align="right">
|
||||
[<a href="overview-summary.html">summary</a>]
|
||||
[<a href="overview-packages.html">packages</a>]
|
||||
[<a href="overview-cycles.html">cycles</a>]
|
||||
[explanations]
|
||||
</td></tr></table>
|
||||
|
||||
<p>The following explanations are for quick reference and are lifted directly from the original <a href="http://www.clarkware.com/software/JDepend.html">JDepend documentation</a>.</p>
|
||||
|
||||
<h3><a name="EXnumber">Number of Classes</a></h3>
|
||||
<p>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</p>
|
||||
<h3><a name="EXafferent">Afferent Couplings</a></h3>
|
||||
<p>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. </p>
|
||||
<h3><a name="EXefferent">Efferent Couplings</a></h3>
|
||||
<p>The number of other packages that the classes in the package depend upon is an indicator of the package's independence. </p>
|
||||
<h3><a name="EXabstractness">Abstractness</a></h3>
|
||||
<p>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. </p>
|
||||
<p>The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. </p>
|
||||
<h3><a name="EXinstability">Instability</a></h3>
|
||||
<p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. </p>
|
||||
<p>The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. </p>
|
||||
<h3><a name="EXdistance">Distance</a></h3>
|
||||
<p>The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. </p>
|
||||
<p>A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). </p>
|
||||
<p>The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. </p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an html file that contains a link to all package links in overview-packages.html.
|
||||
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
|
||||
-->
|
||||
<xsl:template match="JDepend/Packages" mode="all.packages">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%"><tr align="left"><td></td><td nowrap="nowrap" align="right">
|
||||
[<a href="overview-summary.html" target="classFrame">summary</a>]
|
||||
[<a href="overview-packages.html" target="classFrame">packages</a>]
|
||||
[<a href="overview-cycles.html" target="classFrame">cycles</a>]
|
||||
[<a href="overview-explanations.html" target="classFrame">explanations</a>]
|
||||
</td></tr></table>
|
||||
<h2>Packages</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="Package[count(error)=0]" mode="all.packages.link">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
<xsl:apply-templates select="Package[count(error) > 0]" mode="all.packages.nolink">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="JDepend/Packages/Package" mode="all.packages.link">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="overview-packages.html#PK{@name}" target="classFrame">
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
I do not know JDepend enough to know if every error results in a non-analyzed package,
|
||||
but that is how I am presenting it to the viewer. This may need to change.
|
||||
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
|
||||
-->
|
||||
<xsl:template match="JDepend/Packages/Package" mode="all.packages.nolink">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
Not Analyzed: <xsl:value-of select="@name"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Creates an html file that contains a link to all package links in overview-cycles.html.
|
||||
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
|
||||
-->
|
||||
<xsl:template match="JDepend/Cycles" mode="all.cycles">
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%"><tr align="left"><td></td><td nowrap="nowrap" align="right">
|
||||
[<a href="overview-summary.html" target="classFrame">summary</a>]
|
||||
[<a href="overview-packages.html" target="classFrame">packages</a>]
|
||||
[<a href="overview-cycles.html" target="classFrame">cycles</a>]
|
||||
[<a href="overview-explanations.html" target="classFrame">explanations</a>]
|
||||
</td></tr></table>
|
||||
<h2>Cycles</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="Package" mode="all.cycles">
|
||||
<xsl:sort select="@Name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="JDepend/Cycles/Package" mode="all.cycles">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="overview-cycles.html#CY{@Name}" target="classFrame"><xsl:value-of select="@Name"/></a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Page HEADER -->
|
||||
<xsl:template name="pageHeader">
|
||||
<h1>JDepend Analysis</h1>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left"></td>
|
||||
<td align="right">Designed for use with <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> and <a href="http://jakarta.apache.org">Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,275 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
|
||||
<!--
|
||||
Copyright 2002,2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
|
||||
<xsl:template match="JDepend">
|
||||
<html>
|
||||
<head>
|
||||
<title>JDepend Analysis</title>
|
||||
|
||||
<style type="text/css">
|
||||
body {
|
||||
font:normal 68% verdana,arial,helvetica;
|
||||
color:#000000;
|
||||
}
|
||||
table tr td, tr th {
|
||||
font-size: 68%;
|
||||
}
|
||||
table.details tr th{
|
||||
font-weight: bold;
|
||||
text-align:left;
|
||||
background:#a6caf0;
|
||||
}
|
||||
table.details tr td{
|
||||
background:#eeeee0;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height:1.5em;
|
||||
margin-top:0.5em; margin-bottom:1.0em;
|
||||
margin-left:2em;
|
||||
margin-right:2em;
|
||||
}
|
||||
h1 {
|
||||
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
|
||||
}
|
||||
h2 {
|
||||
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
|
||||
}
|
||||
h3 {
|
||||
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h5 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h6 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
.Error {
|
||||
font-weight:bold; color:red;
|
||||
}
|
||||
.Failure {
|
||||
font-weight:bold; color:purple;
|
||||
}
|
||||
.Properties {
|
||||
text-align:right;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<!--h1>JDepend Report</h1>
|
||||
<ul>
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:sort select="@name"/>
|
||||
<li><xsl:value-of select="@name"/></li>
|
||||
</xsl:for-each>
|
||||
</ul-->
|
||||
|
||||
<h1><a name="top">JDepend Analysis</a></h1>
|
||||
<p align="right">Designed for use with <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> and <a href="http://jakarta.apache.org">Ant</a>.</p>
|
||||
<hr size="2" />
|
||||
|
||||
<table width="100%"><tr><td>
|
||||
<a name="NVsummary"><h2>Summary</h2></a>
|
||||
</td><td align="right">
|
||||
[<a href="#NVsummary">summary</a>]
|
||||
[<a href="#NVpackages">packages</a>]
|
||||
[<a href="#NVcycles">cycles</a>]
|
||||
[<a href="#NVexplanations">explanations</a>]
|
||||
</td></tr></table>
|
||||
|
||||
<table width="100%" class="details">
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th>Total Classes</th>
|
||||
<th><a href="#EXnumber">Abstract Classes</a></th>
|
||||
<th><a href="#EXnumber">Concrete Classes</a></th>
|
||||
<th><a href="#EXafferent">Afferent Couplings</a></th>
|
||||
<th><a href="#EXefferent">Efferent Couplings</a></th>
|
||||
<th><a href="#EXabstractness">Abstractness</a></th>
|
||||
<th><a href="#EXinstability">Instability</a></th>
|
||||
<th><a href="#EXdistance">Distance</a></th>
|
||||
|
||||
</tr>
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:if test="count(error) = 0">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<a>
|
||||
<xsl:attribute name="href">#PK<xsl:value-of select="@name"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
<td align="right"><xsl:value-of select="Stats/TotalClasses"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/AbstractClasses"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/ConcreteClasses"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/Ca"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/Ce"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/A"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/I"/></td>
|
||||
<td align="right"><xsl:value-of select="Stats/D"/></td>
|
||||
|
||||
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:if test="count(error) > 0">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<xsl:value-of select="@name"/>
|
||||
</td>
|
||||
<td align="left" colspan="8"><xsl:value-of select="error"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
<table width="100%"><tr><td>
|
||||
<a name="NVpackages"><h2>Packages</h2></a>
|
||||
</td><td align="right">
|
||||
[<a href="#NVsummary">summary</a>]
|
||||
[<a href="#NVpackages">packages</a>]
|
||||
[<a href="#NVcycles">cycles</a>]
|
||||
[<a href="#NVexplanations">explanations</a>]
|
||||
</td></tr></table>
|
||||
|
||||
<xsl:for-each select="./Packages/Package">
|
||||
<xsl:if test="count(error) = 0">
|
||||
<h3><a><xsl:attribute name="name">PK<xsl:value-of select="@name"/></xsl:attribute>
|
||||
<xsl:value-of select="@name"/></a></h3>
|
||||
|
||||
<table width="100%"><tr>
|
||||
<td><a href="#EXafferent">Afferent Couplings</a>: <xsl:value-of select="Stats/Ca"/></td>
|
||||
<td><a href="#EXefferent">Efferent Couplings</a>: <xsl:value-of select="Stats/Ce"/></td>
|
||||
<td><a href="#EXabstractness">Abstractness</a>: <xsl:value-of select="Stats/A"/></td>
|
||||
<td><a href="#EXinstability">Instability</a>: <xsl:value-of select="Stats/I"/></td>
|
||||
<td><a href="#EXdistance">Distance</a>: <xsl:value-of select="Stats/D"/></td>
|
||||
</tr></table>
|
||||
|
||||
<table width="100%" class="details">
|
||||
<tr>
|
||||
<th>Abstract Classes</th>
|
||||
<th>Concrete Classes</th>
|
||||
<th>Used by Packages</th>
|
||||
<th>Uses Packages</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(AbstractClasses/Class)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="AbstractClasses/Class">
|
||||
<xsl:value-of select="node()"/><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(ConcreteClasses/Class)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="ConcreteClasses/Class">
|
||||
<xsl:value-of select="node()"/><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(UsedBy/Package)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="UsedBy/Package">
|
||||
<a>
|
||||
<xsl:attribute name="href">#PK<xsl:value-of select="node()"/></xsl:attribute>
|
||||
<xsl:value-of select="node()"/>
|
||||
</a><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
<td valign="top" width="25%">
|
||||
<xsl:if test="count(DependsUpon/Package)=0">
|
||||
<i>None</i>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="DependsUpon/Package">
|
||||
<a>
|
||||
<xsl:attribute name="href">#PK<xsl:value-of select="node()"/></xsl:attribute>
|
||||
<xsl:value-of select="node()"/>
|
||||
</a><br/>
|
||||
</xsl:for-each>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
|
||||
<table width="100%"><tr><td>
|
||||
<a name="NVcycles"><h2>Cycles</h2></a>
|
||||
</td><td align="right">
|
||||
[<a href="#NVsummary">summary</a>]
|
||||
[<a href="#NVpackages">packages</a>]
|
||||
[<a href="#NVcycles">cycles</a>]
|
||||
[<a href="#NVexplanations">explanations</a>]
|
||||
</td></tr></table>
|
||||
|
||||
<xsl:if test="count(Cycles/Package) = 0">
|
||||
<p>There are no cyclic dependancies.</p>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="Cycles/Package">
|
||||
<h3><xsl:value-of select="@Name"/></h3><p>
|
||||
<xsl:for-each select="Package">
|
||||
<xsl:value-of select="."/><br/>
|
||||
</xsl:for-each></p>
|
||||
</xsl:for-each>
|
||||
|
||||
<table width="100%"><tr><td>
|
||||
<a name="NVexplanations"><h2>Explanations</h2></a>
|
||||
</td><td align="right">
|
||||
[<a href="#NVsummary">summary</a>]
|
||||
[<a href="#NVpackages">packages</a>]
|
||||
[<a href="#NVcycles">cycles</a>]
|
||||
[<a href="#NVexplanations">explanations</a>]
|
||||
</td></tr></table>
|
||||
|
||||
<p>The following explanations are for quick reference and are lifted directly from the original <a href="http://www.clarkware.com/software/JDepend.html">JDepend documentation</a>.</p>
|
||||
|
||||
<h3><a name="EXnumber">Number of Classes</a></h3>
|
||||
<p>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</p>
|
||||
<h3><a name="EXafferent">Afferent Couplings</a></h3>
|
||||
<p>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. </p>
|
||||
<h3><a name="EXefferent">Efferent Couplings</a></h3>
|
||||
<p>The number of other packages that the classes in the package depend upon is an indicator of the package's independence. </p>
|
||||
<h3><a name="EXabstractness">Abstractness</a></h3>
|
||||
<p>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. </p>
|
||||
<p>The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. </p>
|
||||
<h3><a name="EXinstability">Instability</a></h3>
|
||||
<p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. </p>
|
||||
<p>The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. </p>
|
||||
<h3><a name="EXdistance">Distance</a></h3>
|
||||
<p>The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. </p>
|
||||
<p>A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). </p>
|
||||
<p>The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. </p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,716 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="org.apache.xalan.lib.Redirect"
|
||||
xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
|
||||
extension-element-prefixes="redirect">
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator=","/>
|
||||
<!--
|
||||
Copyright 2001-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
Sample stylesheet to be used with Ant JUnitReport output.
|
||||
|
||||
It creates a set of HTML files a la javadoc where you can browse easily
|
||||
through all packages and classes.
|
||||
|
||||
-->
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
|
||||
|
||||
<xsl:template match="testsuites">
|
||||
<!-- create the index.html -->
|
||||
<redirect:write file="{$output.dir}/index.html">
|
||||
<xsl:call-template name="index.html"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the stylesheet.css -->
|
||||
<redirect:write file="{$output.dir}/stylesheet.css">
|
||||
<xsl:call-template name="stylesheet.css"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-summary.html">
|
||||
<xsl:apply-templates select="." mode="overview.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-classes.html at the root -->
|
||||
<redirect:write file="{$output.dir}/allclasses-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.classes"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- process all packages -->
|
||||
<xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
|
||||
<xsl:call-template name="package">
|
||||
<xsl:with-param name="name" select="@package"/>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="package">
|
||||
<xsl:param name="name"/>
|
||||
<xsl:variable name="package.dir">
|
||||
<xsl:if test="not($name = '')"><xsl:value-of select="translate($name,'.','/')"/></xsl:if>
|
||||
<xsl:if test="$name = ''">.</xsl:if>
|
||||
</xsl:variable>
|
||||
<!--Processing package <xsl:value-of select="@name"/> in <xsl:value-of select="$output.dir"/> -->
|
||||
<!-- create a classes-list.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
|
||||
<xsl:call-template name="classes.list">
|
||||
<xsl:with-param name="name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create a package-summary.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
|
||||
<xsl:call-template name="package.summary">
|
||||
<xsl:with-param name="name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</redirect:write>
|
||||
|
||||
<!-- for each class, creates a @name.html -->
|
||||
<!-- @bug there will be a problem with inner classes having the same name, it will be overwritten -->
|
||||
<xsl:for-each select="/testsuites/testsuite[@package = $name]">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}.html">
|
||||
<xsl:apply-templates select="." mode="class.details"/>
|
||||
</redirect:write>
|
||||
<xsl:if test="string-length(./system-out)!=0">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}-out.txt">
|
||||
<xsl:value-of select="./system-out" />
|
||||
</redirect:write>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(./system-err)!=0">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}-err.txt">
|
||||
<xsl:value-of select="./system-err" />
|
||||
</redirect:write>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="index.html">
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results.</title>
|
||||
</head>
|
||||
<frameset cols="20%,80%">
|
||||
<frameset rows="30%,70%">
|
||||
<frame src="overview-frame.html" name="packageListFrame"/>
|
||||
<frame src="allclasses-frame.html" name="classListFrame"/>
|
||||
</frameset>
|
||||
<frame src="overview-summary.html" name="classFrame"/>
|
||||
<noframes>
|
||||
<h2>Frame Alert</h2>
|
||||
<p>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
</p>
|
||||
</noframes>
|
||||
</frameset>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- this is the stylesheet css to use for nearly everything -->
|
||||
<xsl:template name="stylesheet.css">
|
||||
body {
|
||||
font:normal 68% verdana,arial,helvetica;
|
||||
color:#000000;
|
||||
}
|
||||
table tr td, table tr th {
|
||||
font-size: 68%;
|
||||
}
|
||||
table.details tr th{
|
||||
font-weight: bold;
|
||||
text-align:left;
|
||||
background:#a6caf0;
|
||||
}
|
||||
table.details tr td{
|
||||
background:#eeeee0;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height:1.5em;
|
||||
margin-top:0.5em; margin-bottom:1.0em;
|
||||
}
|
||||
h1 {
|
||||
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
|
||||
}
|
||||
h2 {
|
||||
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
|
||||
}
|
||||
h3 {
|
||||
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h5 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h6 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
.Error {
|
||||
font-weight:bold; color:red;
|
||||
}
|
||||
.Failure {
|
||||
font-weight:bold; color:purple;
|
||||
}
|
||||
.Properties {
|
||||
text-align:right;
|
||||
}
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- ======================================================================
|
||||
This page is created for every testsuite class.
|
||||
It prints a summary of the testsuite and detailed information about
|
||||
testcase methods.
|
||||
====================================================================== -->
|
||||
<xsl:template match="testsuite" mode="class.details">
|
||||
<xsl:variable name="package.name" select="@package"/>
|
||||
<xsl:variable name="class.name"><xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></xsl:variable>
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results: <xsl:value-of select="$class.name"/></title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$package.name"/>
|
||||
</xsl:call-template>
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
var TestCases = new Array();
|
||||
var cur;
|
||||
<xsl:apply-templates select="properties"/>
|
||||
</script>
|
||||
<script type="text/javascript" language="JavaScript"><![CDATA[
|
||||
function displayProperties (name) {
|
||||
var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
|
||||
var doc = win.document.open();
|
||||
doc.write("<html><head><title>Properties of " + name + "</title>");
|
||||
doc.write("<style type=\"text/css\">");
|
||||
doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
|
||||
doc.write("table tr td, table tr th { font-size: 68%; }");
|
||||
doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
|
||||
doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
|
||||
doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
|
||||
doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
|
||||
doc.write("</style>");
|
||||
doc.write("</head><body>");
|
||||
doc.write("<h3>Properties of " + name + "</h3>");
|
||||
doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
|
||||
doc.write("<table class='properties'>");
|
||||
doc.write("<tr><th>Name</th><th>Value</th></tr>");
|
||||
for (prop in TestCases[name]) {
|
||||
doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
|
||||
}
|
||||
doc.write("</table>");
|
||||
doc.write("</body></html>");
|
||||
doc.close();
|
||||
win.focus();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Class <xsl:value-of select="$class.name"/></h3>
|
||||
|
||||
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<xsl:apply-templates select="." mode="print.test"/>
|
||||
</table>
|
||||
|
||||
<h2>Tests</h2>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testcase.test.header"/>
|
||||
<!--
|
||||
test can even not be started at all (failure to load the class)
|
||||
so report the error directly
|
||||
-->
|
||||
<xsl:if test="./error">
|
||||
<tr class="Error">
|
||||
<td colspan="4"><xsl:apply-templates select="./error"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="./testcase" mode="print.test"/>
|
||||
</table>
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
|
||||
Properties »
|
||||
</a>
|
||||
</div>
|
||||
<xsl:if test="string-length(./system-out)!=0">
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">./<xsl:value-of select="@name"/>-out.txt</xsl:attribute>
|
||||
System.out »
|
||||
</a>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(./system-err)!=0">
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">./<xsl:value-of select="@name"/>-err.txt</xsl:attribute>
|
||||
System.err »
|
||||
</a>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Write properties into a JavaScript data structure.
|
||||
This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
|
||||
-->
|
||||
<xsl:template match="properties">
|
||||
cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
|
||||
<xsl:for-each select="property">
|
||||
<xsl:sort select="@name"/>
|
||||
cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- ======================================================================
|
||||
This page is created for every package.
|
||||
It prints the name of all classes that belongs to this package.
|
||||
@param name the package name to print classes.
|
||||
====================================================================== -->
|
||||
<!-- list of classes in a package -->
|
||||
<xsl:template name="classes.list">
|
||||
<xsl:param name="name"/>
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Classes: <xsl:value-of select="$name"/></title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<h2><a href="package-summary.html" target="classFrame">
|
||||
<xsl:value-of select="$name"/>
|
||||
<xsl:if test="$name = ''"><none></xsl:if>
|
||||
</a></h2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Classes</h2>
|
||||
<table width="100%">
|
||||
<xsl:for-each select="/testsuites/testsuite[./@package = $name]">
|
||||
<xsl:sort select="@name"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an all-classes.html file that contains a link to all package-summary.html
|
||||
on each class.
|
||||
-->
|
||||
<xsl:template match="testsuites" mode="all.classes">
|
||||
<html>
|
||||
<head>
|
||||
<title>All Unit Test Classes</title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Classes</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="testsuite" mode="all.classes">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testsuite" mode="all.classes">
|
||||
<xsl:variable name="package.name" select="@package"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a target="classFrame">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:if test="not($package.name='')">
|
||||
<xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
|
||||
</xsl:if><xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an html file that contains a link to all package-summary.html files on
|
||||
each package existing on testsuites.
|
||||
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
|
||||
-->
|
||||
<xsl:template match="testsuites" mode="all.packages">
|
||||
<html>
|
||||
<head>
|
||||
<title>All Unit Test Packages</title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
|
||||
<h2>Packages</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]" mode="all.packages">
|
||||
<xsl:sort select="@package"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testsuite" mode="all.packages">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="./{translate(@package,'.','/')}/package-summary.html" target="classFrame">
|
||||
<xsl:value-of select="@package"/>
|
||||
<xsl:if test="@package = ''"><none></xsl:if>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="testsuites" mode="overview.packages">
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results: Summary</title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h2>Summary</h2>
|
||||
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
|
||||
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
|
||||
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
|
||||
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
|
||||
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<tr valign="top">
|
||||
<th>Tests</th>
|
||||
<th>Failures</th>
|
||||
<th>Errors</th>
|
||||
<th>Success rate</th>
|
||||
<th>Time</th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$errorCount > 0">Error</xsl:when>
|
||||
<xsl:when test="$failureCount > 0">Failure</xsl:when>
|
||||
<xsl:otherwise>Pass</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><xsl:value-of select="$testCount"/></td>
|
||||
<td><xsl:value-of select="$failureCount"/></td>
|
||||
<td><xsl:value-of select="$errorCount"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-percent">
|
||||
<xsl:with-param name="value" select="$successRate"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="$timeCount"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" width="95%">
|
||||
<tr>
|
||||
<td style="text-align: justify;">
|
||||
Note: <em>failures</em> are anticipated and checked for with assertions while <em>errors</em> are unanticipated.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Packages</h2>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<xsl:for-each select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
|
||||
<xsl:sort select="@package" order="ascending"/>
|
||||
<!-- get the node set containing all testsuites that have the same package -->
|
||||
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = current()/@package]"/>
|
||||
<tr valign="top">
|
||||
<!-- display a failure if there is any failure/error in the package -->
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="sum($insamepackage/@errors) > 0">Error</xsl:when>
|
||||
<xsl:when test="sum($insamepackage/@failures) > 0">Failure</xsl:when>
|
||||
<xsl:otherwise>Pass</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><a href="./{translate(@package,'.','/')}/package-summary.html">
|
||||
<xsl:value-of select="@package"/>
|
||||
<xsl:if test="@package = ''"><none></xsl:if>
|
||||
</a></td>
|
||||
<td><xsl:value-of select="sum($insamepackage/@tests)"/></td>
|
||||
<td><xsl:value-of select="sum($insamepackage/@errors)"/></td>
|
||||
<td><xsl:value-of select="sum($insamepackage/@failures)"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="sum($insamepackage/@time)"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
<td><xsl:value-of select="$insamepackage/@timestamp"/></td>
|
||||
<td><xsl:value-of select="$insamepackage/@hostname"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="package.summary">
|
||||
<xsl:param name="name"/>
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Package <xsl:value-of select="$name"/></h3>
|
||||
|
||||
<!--table border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="class.metrics.header"/>
|
||||
<xsl:apply-templates select="." mode="print.metrics"/>
|
||||
</table-->
|
||||
|
||||
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/>
|
||||
<xsl:if test="count($insamepackage) > 0">
|
||||
<h2>Classes</h2>
|
||||
<p>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<xsl:apply-templates select="$insamepackage" mode="print.test">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</p>
|
||||
</xsl:if>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
transform string like a.b.c to ../../../
|
||||
@param path the path to transform into a descending directory path
|
||||
-->
|
||||
<xsl:template name="path">
|
||||
<xsl:param name="path"/>
|
||||
<xsl:if test="contains($path,'.')">
|
||||
<xsl:text>../</xsl:text>
|
||||
<xsl:call-template name="path">
|
||||
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(contains($path,'.')) and not($path = '')">
|
||||
<xsl:text>../</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- create the link to the stylesheet based on the package name -->
|
||||
<xsl:template name="create.stylesheet.link">
|
||||
<xsl:param name="package.name"/>
|
||||
<link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Page HEADER -->
|
||||
<xsl:template name="pageHeader">
|
||||
<h1>Unit Test Results</h1>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left"></td>
|
||||
<td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://jakarta.apache.org/">Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- class header -->
|
||||
<xsl:template name="testsuite.test.header">
|
||||
<tr valign="top">
|
||||
<th width="80%">Name</th>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
<th nowrap="nowrap">Time Stamp</th>
|
||||
<th>Host</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- method header -->
|
||||
<xsl:template name="testcase.test.header">
|
||||
<tr valign="top">
|
||||
<th>Name</th>
|
||||
<th>Status</th>
|
||||
<th width="80%">Type</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- class information -->
|
||||
<xsl:template match="testsuite" mode="print.test">
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@errors[.> 0]">Error</xsl:when>
|
||||
<xsl:when test="@failures[.> 0]">Failure</xsl:when>
|
||||
<xsl:otherwise>Pass</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td>
|
||||
<td><xsl:apply-templates select="@tests"/></td>
|
||||
<td><xsl:apply-templates select="@errors"/></td>
|
||||
<td><xsl:apply-templates select="@failures"/></td>
|
||||
<td><xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="@time"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
<td><xsl:apply-templates select="@timestamp"/></td>
|
||||
<td><xsl:apply-templates select="@hostname"/></td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testcase" mode="print.test">
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="error">Error</xsl:when>
|
||||
<xsl:when test="failure">Failure</xsl:when>
|
||||
<xsl:otherwise>TableRowColor</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><xsl:value-of select="@name"/></td>
|
||||
<xsl:choose>
|
||||
<xsl:when test="failure">
|
||||
<td>Failure</td>
|
||||
<td><xsl:apply-templates select="failure"/></td>
|
||||
</xsl:when>
|
||||
<xsl:when test="error">
|
||||
<td>Error</td>
|
||||
<td><xsl:apply-templates select="error"/></td>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<td>Success</td>
|
||||
<td></td>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="@time"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Note : the below template error and failure are the same style
|
||||
so just call the same style store in the toolkit template -->
|
||||
<xsl:template match="failure">
|
||||
<xsl:call-template name="display-failures"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="error">
|
||||
<xsl:call-template name="display-failures"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Style for the error and failure in the testcase template -->
|
||||
<xsl:template name="display-failures">
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@message)">N/A</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="@message"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- display the stacktrace -->
|
||||
<br/><br/>
|
||||
<code>
|
||||
<xsl:call-template name="br-replace">
|
||||
<xsl:with-param name="word" select="."/>
|
||||
</xsl:call-template>
|
||||
</code>
|
||||
<!-- the latter is better but might be problematic for non-21" monitors... -->
|
||||
<!--pre><xsl:value-of select="."/></pre-->
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="JS-escape">
|
||||
<xsl:param name="string"/>
|
||||
<xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
|
||||
<xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/>
|
||||
<xsl:value-of select="$tmp2"/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
template that will convert a carriage return into a br tag
|
||||
@param word the text from which to convert CR to BR tag
|
||||
-->
|
||||
<xsl:template name="br-replace">
|
||||
<xsl:param name="word"/>
|
||||
<xsl:param name="br"><br/></xsl:param>
|
||||
<xsl:value-of select='stringutils:replace(string($word),"
",$br)'/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="display-time">
|
||||
<xsl:param name="value"/>
|
||||
<xsl:value-of select="format-number($value,'0.000')"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="display-percent">
|
||||
<xsl:param name="value"/>
|
||||
<xsl:value-of select="format-number($value,'0.00%')"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,716 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="http://xml.apache.org/xalan/redirect"
|
||||
xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
|
||||
extension-element-prefixes="redirect">
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator=","/>
|
||||
<!--
|
||||
Copyright 2001-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
Sample stylesheet to be used with Ant JUnitReport output.
|
||||
|
||||
It creates a set of HTML files a la javadoc where you can browse easily
|
||||
through all packages and classes.
|
||||
|
||||
@author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/>
|
||||
@author Erik Hatcher <a href="mailto:ehatcher@apache.org"/>
|
||||
@author Martijn Kruithof <a href="mailto:martijn@kruithof.xs4all.nl"/>
|
||||
|
||||
-->
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
|
||||
|
||||
<xsl:template match="testsuites">
|
||||
<!-- create the index.html -->
|
||||
<redirect:write file="{$output.dir}/index.html">
|
||||
<xsl:call-template name="index.html"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the stylesheet.css -->
|
||||
<redirect:write file="{$output.dir}/stylesheet.css">
|
||||
<xsl:call-template name="stylesheet.css"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-summary.html">
|
||||
<xsl:apply-templates select="." mode="overview.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-classes.html at the root -->
|
||||
<redirect:write file="{$output.dir}/allclasses-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.classes"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- process all packages -->
|
||||
<xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
|
||||
<xsl:call-template name="package">
|
||||
<xsl:with-param name="name" select="@package"/>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="package">
|
||||
<xsl:param name="name"/>
|
||||
<xsl:variable name="package.dir">
|
||||
<xsl:if test="not($name = '')"><xsl:value-of select="translate($name,'.','/')"/></xsl:if>
|
||||
<xsl:if test="$name = ''">.</xsl:if>
|
||||
</xsl:variable>
|
||||
<!--Processing package <xsl:value-of select="@name"/> in <xsl:value-of select="$output.dir"/> -->
|
||||
<!-- create a classes-list.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
|
||||
<xsl:call-template name="classes.list">
|
||||
<xsl:with-param name="name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create a package-summary.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
|
||||
<xsl:call-template name="package.summary">
|
||||
<xsl:with-param name="name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</redirect:write>
|
||||
|
||||
<!-- for each class, creates a @name.html -->
|
||||
<!-- @bug there will be a problem with inner classes having the same name, it will be overwritten -->
|
||||
<xsl:for-each select="/testsuites/testsuite[@package = $name]">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}.html">
|
||||
<xsl:apply-templates select="." mode="class.details"/>
|
||||
</redirect:write>
|
||||
<xsl:if test="string-length(./system-out)!=0">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}-out.txt">
|
||||
<xsl:value-of select="./system-out" />
|
||||
</redirect:write>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(./system-err)!=0">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}-err.txt">
|
||||
<xsl:value-of select="./system-err" />
|
||||
</redirect:write>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="index.html">
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results.</title>
|
||||
</head>
|
||||
<frameset cols="20%,80%">
|
||||
<frameset rows="30%,70%">
|
||||
<frame src="overview-frame.html" name="packageListFrame"/>
|
||||
<frame src="allclasses-frame.html" name="classListFrame"/>
|
||||
</frameset>
|
||||
<frame src="overview-summary.html" name="classFrame"/>
|
||||
<noframes>
|
||||
<h2>Frame Alert</h2>
|
||||
<p>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
</p>
|
||||
</noframes>
|
||||
</frameset>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- this is the stylesheet css to use for nearly everything -->
|
||||
<xsl:template name="stylesheet.css">
|
||||
body {
|
||||
font:normal 68% verdana,arial,helvetica;
|
||||
color:#000000;
|
||||
}
|
||||
table tr td, table tr th {
|
||||
font-size: 68%;
|
||||
}
|
||||
table.details tr th{
|
||||
font-weight: bold;
|
||||
text-align:left;
|
||||
background:#a6caf0;
|
||||
}
|
||||
table.details tr td{
|
||||
background:#eeeee0;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height:1.5em;
|
||||
margin-top:0.5em; margin-bottom:1.0em;
|
||||
}
|
||||
h1 {
|
||||
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
|
||||
}
|
||||
h2 {
|
||||
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
|
||||
}
|
||||
h3 {
|
||||
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h5 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h6 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
.Error {
|
||||
font-weight:bold; color:red;
|
||||
}
|
||||
.Failure {
|
||||
font-weight:bold; color:purple;
|
||||
}
|
||||
.Properties {
|
||||
text-align:right;
|
||||
}
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- ======================================================================
|
||||
This page is created for every testsuite class.
|
||||
It prints a summary of the testsuite and detailed information about
|
||||
testcase methods.
|
||||
====================================================================== -->
|
||||
<xsl:template match="testsuite" mode="class.details">
|
||||
<xsl:variable name="package.name" select="@package"/>
|
||||
<xsl:variable name="class.name"><xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></xsl:variable>
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results: <xsl:value-of select="$class.name"/></title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$package.name"/>
|
||||
</xsl:call-template>
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
var TestCases = new Array();
|
||||
var cur;
|
||||
<xsl:apply-templates select="properties"/>
|
||||
</script>
|
||||
<script type="text/javascript" language="JavaScript"><![CDATA[
|
||||
function displayProperties (name) {
|
||||
var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
|
||||
var doc = win.document.open();
|
||||
doc.write("<html><head><title>Properties of " + name + "</title>");
|
||||
doc.write("<style type=\"text/css\">");
|
||||
doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
|
||||
doc.write("table tr td, table tr th { font-size: 68%; }");
|
||||
doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
|
||||
doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
|
||||
doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
|
||||
doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
|
||||
doc.write("</style>");
|
||||
doc.write("</head><body>");
|
||||
doc.write("<h3>Properties of " + name + "</h3>");
|
||||
doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
|
||||
doc.write("<table class='properties'>");
|
||||
doc.write("<tr><th>Name</th><th>Value</th></tr>");
|
||||
for (prop in TestCases[name]) {
|
||||
doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
|
||||
}
|
||||
doc.write("</table>");
|
||||
doc.write("</body></html>");
|
||||
doc.close();
|
||||
win.focus();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Class <xsl:value-of select="$class.name"/></h3>
|
||||
|
||||
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<xsl:apply-templates select="." mode="print.test"/>
|
||||
</table>
|
||||
|
||||
<h2>Tests</h2>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testcase.test.header"/>
|
||||
<!--
|
||||
test can even not be started at all (failure to load the class)
|
||||
so report the error directly
|
||||
-->
|
||||
<xsl:if test="./error">
|
||||
<tr class="Error">
|
||||
<td colspan="4"><xsl:apply-templates select="./error"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="./testcase" mode="print.test"/>
|
||||
</table>
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
|
||||
Properties »
|
||||
</a>
|
||||
</div>
|
||||
<xsl:if test="string-length(./system-out)!=0">
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">./<xsl:value-of select="@name"/>-out.txt</xsl:attribute>
|
||||
System.out »
|
||||
</a>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(./system-err)!=0">
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">./<xsl:value-of select="@name"/>-err.txt</xsl:attribute>
|
||||
System.err »
|
||||
</a>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Write properties into a JavaScript data structure.
|
||||
This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
|
||||
-->
|
||||
<xsl:template match="properties">
|
||||
cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
|
||||
<xsl:for-each select="property">
|
||||
<xsl:sort select="@name"/>
|
||||
cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- ======================================================================
|
||||
This page is created for every package.
|
||||
It prints the name of all classes that belongs to this package.
|
||||
@param name the package name to print classes.
|
||||
====================================================================== -->
|
||||
<!-- list of classes in a package -->
|
||||
<xsl:template name="classes.list">
|
||||
<xsl:param name="name"/>
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Classes: <xsl:value-of select="$name"/></title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<h2><a href="package-summary.html" target="classFrame">
|
||||
<xsl:value-of select="$name"/>
|
||||
<xsl:if test="$name = ''"><none></xsl:if>
|
||||
</a></h2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Classes</h2>
|
||||
<table width="100%">
|
||||
<xsl:for-each select="/testsuites/testsuite[./@package = $name]">
|
||||
<xsl:sort select="@name"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an all-classes.html file that contains a link to all package-summary.html
|
||||
on each class.
|
||||
-->
|
||||
<xsl:template match="testsuites" mode="all.classes">
|
||||
<html>
|
||||
<head>
|
||||
<title>All Unit Test Classes</title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Classes</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="testsuite" mode="all.classes">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testsuite" mode="all.classes">
|
||||
<xsl:variable name="package.name" select="@package"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a target="classFrame">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:if test="not($package.name='')">
|
||||
<xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
|
||||
</xsl:if><xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an html file that contains a link to all package-summary.html files on
|
||||
each package existing on testsuites.
|
||||
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
|
||||
-->
|
||||
<xsl:template match="testsuites" mode="all.packages">
|
||||
<html>
|
||||
<head>
|
||||
<title>All Unit Test Packages</title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
|
||||
<h2>Packages</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]" mode="all.packages">
|
||||
<xsl:sort select="@package"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testsuite" mode="all.packages">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="./{translate(@package,'.','/')}/package-summary.html" target="classFrame">
|
||||
<xsl:value-of select="@package"/>
|
||||
<xsl:if test="@package = ''"><none></xsl:if>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="testsuites" mode="overview.packages">
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results: Summary</title>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:attribute name="onload">open('allclasses-frame.html','classListFrame')</xsl:attribute>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h2>Summary</h2>
|
||||
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
|
||||
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
|
||||
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
|
||||
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
|
||||
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<tr valign="top">
|
||||
<th>Tests</th>
|
||||
<th>Failures</th>
|
||||
<th>Errors</th>
|
||||
<th>Success rate</th>
|
||||
<th>Time</th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$errorCount > 0">Error</xsl:when>
|
||||
<xsl:when test="$failureCount > 0">Failure</xsl:when>
|
||||
<xsl:otherwise>Pass</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><xsl:value-of select="$testCount"/></td>
|
||||
<td><xsl:value-of select="$failureCount"/></td>
|
||||
<td><xsl:value-of select="$errorCount"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-percent">
|
||||
<xsl:with-param name="value" select="$successRate"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="$timeCount"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" width="95%">
|
||||
<tr>
|
||||
<td style="text-align: justify;">
|
||||
Note: <em>failures</em> are anticipated and checked for with assertions while <em>errors</em> are unanticipated.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Packages</h2>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<xsl:for-each select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
|
||||
<xsl:sort select="@package" order="ascending"/>
|
||||
<!-- get the node set containing all testsuites that have the same package -->
|
||||
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = current()/@package]"/>
|
||||
<tr valign="top">
|
||||
<!-- display a failure if there is any failure/error in the package -->
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="sum($insamepackage/@errors) > 0">Error</xsl:when>
|
||||
<xsl:when test="sum($insamepackage/@failures) > 0">Failure</xsl:when>
|
||||
<xsl:otherwise>Pass</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><a href="./{translate(@package,'.','/')}/package-summary.html">
|
||||
<xsl:value-of select="@package"/>
|
||||
<xsl:if test="@package = ''"><none></xsl:if>
|
||||
</a></td>
|
||||
<td><xsl:value-of select="sum($insamepackage/@tests)"/></td>
|
||||
<td><xsl:value-of select="sum($insamepackage/@errors)"/></td>
|
||||
<td><xsl:value-of select="sum($insamepackage/@failures)"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="sum($insamepackage/@time)"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="package.summary">
|
||||
<xsl:param name="name"/>
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Package <xsl:value-of select="$name"/></h3>
|
||||
|
||||
<!--table border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="class.metrics.header"/>
|
||||
<xsl:apply-templates select="." mode="print.metrics"/>
|
||||
</table-->
|
||||
|
||||
<xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/>
|
||||
<xsl:if test="count($insamepackage) > 0">
|
||||
<h2>Classes</h2>
|
||||
<p>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<xsl:apply-templates select="$insamepackage" mode="print.test">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</p>
|
||||
</xsl:if>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
transform string like a.b.c to ../../../
|
||||
@param path the path to transform into a descending directory path
|
||||
-->
|
||||
<xsl:template name="path">
|
||||
<xsl:param name="path"/>
|
||||
<xsl:if test="contains($path,'.')">
|
||||
<xsl:text>../</xsl:text>
|
||||
<xsl:call-template name="path">
|
||||
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(contains($path,'.')) and not($path = '')">
|
||||
<xsl:text>../</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- create the link to the stylesheet based on the package name -->
|
||||
<xsl:template name="create.stylesheet.link">
|
||||
<xsl:param name="package.name"/>
|
||||
<link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Page HEADER -->
|
||||
<xsl:template name="pageHeader">
|
||||
<h1>Unit Test Results</h1>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left"></td>
|
||||
<td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://jakarta.apache.org/">Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- class header -->
|
||||
<xsl:template name="testsuite.test.header">
|
||||
<tr valign="top">
|
||||
<th width="80%">Name</th>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- method header -->
|
||||
<xsl:template name="testcase.test.header">
|
||||
<tr valign="top">
|
||||
<th>Name</th>
|
||||
<th>Status</th>
|
||||
<th width="80%">Type</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- class information -->
|
||||
<xsl:template match="testsuite" mode="print.test">
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@errors[.> 0]">Error</xsl:when>
|
||||
<xsl:when test="@failures[.> 0]">Failure</xsl:when>
|
||||
<xsl:otherwise>Pass</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td>
|
||||
<td><xsl:apply-templates select="@tests"/></td>
|
||||
<td><xsl:apply-templates select="@errors"/></td>
|
||||
<td><xsl:apply-templates select="@failures"/></td>
|
||||
<td><xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="@time"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testcase" mode="print.test">
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="error">Error</xsl:when>
|
||||
<xsl:when test="failure">Failure</xsl:when>
|
||||
<xsl:otherwise>TableRowColor</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><xsl:value-of select="@name"/></td>
|
||||
<xsl:choose>
|
||||
<xsl:when test="failure">
|
||||
<td>Failure</td>
|
||||
<td><xsl:apply-templates select="failure"/></td>
|
||||
</xsl:when>
|
||||
<xsl:when test="error">
|
||||
<td>Error</td>
|
||||
<td><xsl:apply-templates select="error"/></td>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<td>Success</td>
|
||||
<td></td>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="@time"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Note : the below template error and failure are the same style
|
||||
so just call the same style store in the toolkit template -->
|
||||
<xsl:template match="failure">
|
||||
<xsl:call-template name="display-failures"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="error">
|
||||
<xsl:call-template name="display-failures"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Style for the error and failure in the testcase template -->
|
||||
<xsl:template name="display-failures">
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@message)">N/A</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="@message"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- display the stacktrace -->
|
||||
<br/><br/>
|
||||
<code>
|
||||
<xsl:call-template name="br-replace">
|
||||
<xsl:with-param name="word" select="."/>
|
||||
</xsl:call-template>
|
||||
</code>
|
||||
<!-- the latter is better but might be problematic for non-21" monitors... -->
|
||||
<!--pre><xsl:value-of select="."/></pre-->
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="JS-escape">
|
||||
<xsl:param name="string"/>
|
||||
<xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
|
||||
<xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/>
|
||||
<xsl:value-of select="$tmp2"/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
template that will convert a carriage return into a br tag
|
||||
@param word the text from which to convert CR to BR tag
|
||||
-->
|
||||
<xsl:template name="br-replace">
|
||||
<xsl:param name="word"/>
|
||||
<xsl:param name="br"><br/></xsl:param>
|
||||
<xsl:value-of select='stringutils:replace(string($word),"
",$br)'/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="display-time">
|
||||
<xsl:param name="value"/>
|
||||
<xsl:value-of select="format-number($value,'0.000')"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="display-percent">
|
||||
<xsl:param name="value"/>
|
||||
<xsl:value-of select="format-number($value,'0.00%')"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
@@ -0,0 +1,461 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils">
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"
|
||||
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator="," />
|
||||
<!--
|
||||
Copyright 2001-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
Sample stylesheet to be used with Ant JUnitReport output.
|
||||
|
||||
It creates a non-framed report that can be useful to send via
|
||||
e-mail or such.
|
||||
|
||||
@author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/>
|
||||
@author Erik Hatcher <a href="mailto:ehatcher@apache.org"/>
|
||||
|
||||
-->
|
||||
<xsl:template match="testsuites">
|
||||
<html>
|
||||
<head>
|
||||
<title>Unit Test Results</title>
|
||||
<style type="text/css">
|
||||
body {
|
||||
font:normal 68% verdana,arial,helvetica;
|
||||
color:#000000;
|
||||
}
|
||||
table tr td, table tr th {
|
||||
font-size: 68%;
|
||||
}
|
||||
table.details tr th{
|
||||
font-weight: bold;
|
||||
text-align:left;
|
||||
background:#a6caf0;
|
||||
}
|
||||
table.details tr td{
|
||||
background:#eeeee0;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height:1.5em;
|
||||
margin-top:0.5em; margin-bottom:1.0em;
|
||||
}
|
||||
h1 {
|
||||
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
|
||||
}
|
||||
h2 {
|
||||
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
|
||||
}
|
||||
h3 {
|
||||
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h5 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
h6 {
|
||||
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
|
||||
}
|
||||
.Error {
|
||||
font-weight:bold; color:red;
|
||||
}
|
||||
.Failure {
|
||||
font-weight:bold; color:purple;
|
||||
}
|
||||
.Properties {
|
||||
text-align:right;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
var TestCases = new Array();
|
||||
var cur;
|
||||
<xsl:for-each select="./testsuite">
|
||||
<xsl:apply-templates select="properties"/>
|
||||
</xsl:for-each>
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" language="JavaScript"><![CDATA[
|
||||
function displayProperties (name) {
|
||||
var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
|
||||
var doc = win.document.open();
|
||||
doc.write("<html><head><title>Properties of " + name + "</title>");
|
||||
doc.write("<style>")
|
||||
doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
|
||||
doc.write("table tr td, table tr th { font-size: 68%; }");
|
||||
doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
|
||||
doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
|
||||
doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
|
||||
doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
|
||||
doc.write("</style>");
|
||||
doc.write("</head><body>");
|
||||
doc.write("<h3>Properties of " + name + "</h3>");
|
||||
doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
|
||||
doc.write("<table class='properties'>");
|
||||
doc.write("<tr><th>Name</th><th>Value</th></tr>");
|
||||
for (prop in TestCases[name]) {
|
||||
doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
|
||||
}
|
||||
doc.write("</table>");
|
||||
doc.write("</body></html>");
|
||||
doc.close();
|
||||
win.focus();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a name="top"></a>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
|
||||
<!-- Summary part -->
|
||||
<xsl:call-template name="summary"/>
|
||||
<hr size="1" width="95%" align="left"/>
|
||||
|
||||
<!-- Package List part -->
|
||||
<xsl:call-template name="packagelist"/>
|
||||
<hr size="1" width="95%" align="left"/>
|
||||
|
||||
<!-- For each package create its part -->
|
||||
<xsl:call-template name="packages"/>
|
||||
<hr size="1" width="95%" align="left"/>
|
||||
|
||||
<!-- For each class create the part -->
|
||||
<xsl:call-template name="classes"/>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
||||
<!-- ================================================================== -->
|
||||
<!-- Write a list of all packages with an hyperlink to the anchor of -->
|
||||
<!-- of the package name. -->
|
||||
<!-- ================================================================== -->
|
||||
<xsl:template name="packagelist">
|
||||
<h2>Packages</h2>
|
||||
Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
<!-- list all packages recursively -->
|
||||
<xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
|
||||
<xsl:sort select="@package"/>
|
||||
<xsl:variable name="testsuites-in-package" select="/testsuites/testsuite[./@package = current()/@package]"/>
|
||||
<xsl:variable name="testCount" select="sum($testsuites-in-package/@tests)"/>
|
||||
<xsl:variable name="errorCount" select="sum($testsuites-in-package/@errors)"/>
|
||||
<xsl:variable name="failureCount" select="sum($testsuites-in-package/@failures)"/>
|
||||
<xsl:variable name="timeCount" select="sum($testsuites-in-package/@time)"/>
|
||||
|
||||
<!-- write a summary for the package -->
|
||||
<tr valign="top">
|
||||
<!-- set a nice color depending if there is an error/failure -->
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$failureCount > 0">Failure</xsl:when>
|
||||
<xsl:when test="$errorCount > 0">Error</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><a href="#{@package}"><xsl:value-of select="@package"/></a></td>
|
||||
<td><xsl:value-of select="$testCount"/></td>
|
||||
<td><xsl:value-of select="$errorCount"/></td>
|
||||
<td><xsl:value-of select="$failureCount"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="$timeCount"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- ================================================================== -->
|
||||
<!-- Write a package level report -->
|
||||
<!-- It creates a table with values from the document: -->
|
||||
<!-- Name | Tests | Errors | Failures | Time -->
|
||||
<!-- ================================================================== -->
|
||||
<xsl:template name="packages">
|
||||
<!-- create an anchor to this package name -->
|
||||
<xsl:for-each select="/testsuites/testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
|
||||
<xsl:sort select="@package"/>
|
||||
<a name="{@package}"></a>
|
||||
<h3>Package <xsl:value-of select="@package"/></h3>
|
||||
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testsuite.test.header"/>
|
||||
|
||||
<!-- match the testsuites of this package -->
|
||||
<xsl:apply-templates select="/testsuites/testsuite[./@package = current()/@package]" mode="print.test"/>
|
||||
</table>
|
||||
<a href="#top">Back to top</a>
|
||||
<p/>
|
||||
<p/>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="classes">
|
||||
<xsl:for-each select="testsuite">
|
||||
<xsl:sort select="@name"/>
|
||||
<!-- create an anchor to this class name -->
|
||||
<a name="{@name}"></a>
|
||||
<h3>TestCase <xsl:value-of select="@name"/></h3>
|
||||
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<xsl:call-template name="testcase.test.header"/>
|
||||
<!--
|
||||
test can even not be started at all (failure to load the class)
|
||||
so report the error directly
|
||||
-->
|
||||
<xsl:if test="./error">
|
||||
<tr class="Error">
|
||||
<td colspan="4"><xsl:apply-templates select="./error"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="./testcase" mode="print.test"/>
|
||||
</table>
|
||||
<div class="Properties">
|
||||
<a>
|
||||
<xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
|
||||
Properties »
|
||||
</a>
|
||||
</div>
|
||||
<p/>
|
||||
|
||||
<a href="#top">Back to top</a>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="summary">
|
||||
<h2>Summary</h2>
|
||||
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
|
||||
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
|
||||
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
|
||||
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
|
||||
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
|
||||
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
|
||||
<tr valign="top">
|
||||
<th>Tests</th>
|
||||
<th>Failures</th>
|
||||
<th>Errors</th>
|
||||
<th>Success rate</th>
|
||||
<th>Time</th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$failureCount > 0">Failure</xsl:when>
|
||||
<xsl:when test="$errorCount > 0">Error</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><xsl:value-of select="$testCount"/></td>
|
||||
<td><xsl:value-of select="$failureCount"/></td>
|
||||
<td><xsl:value-of select="$errorCount"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-percent">
|
||||
<xsl:with-param name="value" select="$successRate"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="$timeCount"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" width="95%">
|
||||
<tr>
|
||||
<td style="text-align: justify;">
|
||||
Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Write properties into a JavaScript data structure.
|
||||
This is based on the original idea by Erik Hatcher (ehatcher@apache.org)
|
||||
-->
|
||||
<xsl:template match="properties">
|
||||
cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
|
||||
<xsl:for-each select="property">
|
||||
<xsl:sort select="@name"/>
|
||||
cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Page HEADER -->
|
||||
<xsl:template name="pageHeader">
|
||||
<h1>Unit Test Results</h1>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left"></td>
|
||||
<td align="right">Designed for use with <a href='http://www.junit.org'>JUnit</a> and <a href='http://jakarta.apache.org/ant'>Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testsuite" mode="header">
|
||||
<tr valign="top">
|
||||
<th width="80%">Name</th>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- class header -->
|
||||
<xsl:template name="testsuite.test.header">
|
||||
<tr valign="top">
|
||||
<th width="80%">Name</th>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- method header -->
|
||||
<xsl:template name="testcase.test.header">
|
||||
<tr valign="top">
|
||||
<th>Name</th>
|
||||
<th>Status</th>
|
||||
<th width="80%">Type</th>
|
||||
<th nowrap="nowrap">Time(s)</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- class information -->
|
||||
<xsl:template match="testsuite" mode="print.test">
|
||||
<tr valign="top">
|
||||
<!-- set a nice color depending if there is an error/failure -->
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@failures[.> 0]">Failure</xsl:when>
|
||||
<xsl:when test="@errors[.> 0]">Error</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
|
||||
<!-- print testsuite information -->
|
||||
<td><a href="#{@name}"><xsl:value-of select="@name"/></a></td>
|
||||
<td><xsl:value-of select="@tests"/></td>
|
||||
<td><xsl:value-of select="@errors"/></td>
|
||||
<td><xsl:value-of select="@failures"/></td>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="@time"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="testcase" mode="print.test">
|
||||
<tr valign="top">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="failure | error">Error</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<td><xsl:value-of select="@name"/></td>
|
||||
<xsl:choose>
|
||||
<xsl:when test="failure">
|
||||
<td>Failure</td>
|
||||
<td><xsl:apply-templates select="failure"/></td>
|
||||
</xsl:when>
|
||||
<xsl:when test="error">
|
||||
<td>Error</td>
|
||||
<td><xsl:apply-templates select="error"/></td>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<td>Success</td>
|
||||
<td></td>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<td>
|
||||
<xsl:call-template name="display-time">
|
||||
<xsl:with-param name="value" select="@time"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="failure">
|
||||
<xsl:call-template name="display-failures"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="error">
|
||||
<xsl:call-template name="display-failures"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Style for the error and failure in the tescase template -->
|
||||
<xsl:template name="display-failures">
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(@message)">N/A</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="@message"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- display the stacktrace -->
|
||||
<code>
|
||||
<br/><br/>
|
||||
<xsl:call-template name="br-replace">
|
||||
<xsl:with-param name="word" select="."/>
|
||||
</xsl:call-template>
|
||||
</code>
|
||||
<!-- the later is better but might be problematic for non-21" monitors... -->
|
||||
<!--pre><xsl:value-of select="."/></pre-->
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="JS-escape">
|
||||
<xsl:param name="string"/>
|
||||
<xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
|
||||
<xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/>
|
||||
<xsl:value-of select="$tmp2"/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
template that will convert a carriage return into a br tag
|
||||
@param word the text from which to convert CR to BR tag
|
||||
-->
|
||||
<xsl:template name="br-replace">
|
||||
<xsl:param name="word"/>
|
||||
<xsl:param name="br"><br/></xsl:param>
|
||||
<xsl:value-of select='stringutils:replace(string($word),"
",$br)'/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="display-time">
|
||||
<xsl:param name="value"/>
|
||||
<xsl:value-of select="format-number($value,'0.000')"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="display-percent">
|
||||
<xsl:param name="value"/>
|
||||
<xsl:value-of select="format-number($value,'0.00%')"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
<!--
|
||||
Copyright 2000-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
The purpose have this XSL is to provide a nice way to look at the output
|
||||
from the Ant XmlLogger (ie: ant -listener org.apache.tools.ant.XmlLogger )
|
||||
|
||||
@author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a>
|
||||
|
||||
-->
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator="," />
|
||||
|
||||
<xsl:template match="/">
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
.bannercell {
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font:normal 100% arial,helvetica,sanserif;
|
||||
background-color:#FFFFFF;
|
||||
color:#000000;
|
||||
}
|
||||
table.status {
|
||||
font:bold 80% arial,helvetica,sanserif;
|
||||
background-color:#525D76;
|
||||
color:#ffffff;
|
||||
}
|
||||
table.log tr td, tr th {
|
||||
font-size: 80%;
|
||||
}
|
||||
.error {
|
||||
color:red;
|
||||
}
|
||||
.warn {
|
||||
color:brown;
|
||||
}
|
||||
.info {
|
||||
color:gray;
|
||||
}
|
||||
.debug{
|
||||
color:gray;
|
||||
}
|
||||
.failed {
|
||||
font-size:80%;
|
||||
background-color: red;
|
||||
color:#FFFFFF;
|
||||
font-weight: bold
|
||||
}
|
||||
.complete {
|
||||
font-size:80%;
|
||||
background-color: #525D76;
|
||||
color:#FFFFFF;
|
||||
font-weight: bold
|
||||
}
|
||||
.a td {
|
||||
background: #efefef;
|
||||
}
|
||||
.b td {
|
||||
background: #fff;
|
||||
}
|
||||
th, td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
th {
|
||||
background: #ccc;
|
||||
color: black;
|
||||
}
|
||||
table, th, td {
|
||||
border: none
|
||||
}
|
||||
h3 {
|
||||
font:bold 80% arial,helvetica,sanserif;
|
||||
background: #525D76;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- jakarta logo -->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td valign="top" class="bannercell">
|
||||
<a href="http://jakarta.apache.org/">
|
||||
<img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/>
|
||||
</a>
|
||||
</td>
|
||||
<td style="text-align:right;vertical-align:bottom">
|
||||
<a href="http://jakarta.apache.org/ant">Apache Ant</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table border="0" width="100%">
|
||||
<tr><td><hr noshade="yes" size="1"/></td></tr>
|
||||
</table>
|
||||
|
||||
<xsl:apply-templates select="build"/>
|
||||
|
||||
<!-- FOOTER -->
|
||||
<table width="100%">
|
||||
<tr><td><hr noshade="yes" size="1"/></td></tr>
|
||||
<tr><td>
|
||||
<div align="center"><font color="#525D76" size="-1"><em>
|
||||
Copyright © 2000-2002, Apache Software Foundation
|
||||
</em></font></div>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="build">
|
||||
<!-- build status -->
|
||||
<table width="100%">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:if test="@error">failed</xsl:if>
|
||||
<xsl:if test="not(@error)">complete</xsl:if>
|
||||
</xsl:attribute>
|
||||
<tr>
|
||||
<xsl:if test="@error">
|
||||
<td nowrap="yes">Build Failed</td>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(@error)">
|
||||
<td nowrap="yes">Build Complete</td>
|
||||
</xsl:if>
|
||||
<td style="text-align:right" nowrap="yes">Total Time: <xsl:value-of select="@time"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<xsl:if test="@error">
|
||||
<tt><xsl:value-of select="@error"/></tt><br/>
|
||||
<i style="font-size:80%">See the <a href="#stacktrace" alt="Click for details">stacktrace</a>.</i>
|
||||
</xsl:if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="1" cellspacing="2" cellpadding="3" width="100%" style="font-size:80%">
|
||||
<tr class="a"><td width="1">ant.file</td><td><xsl:value-of select="substring-after(//message[contains(text(),'ant.file')], '->')"/></td></tr>
|
||||
<tr class="b"><td width="1">ant.version</td><td><xsl:value-of select="substring-after(//message[contains(text(),'ant.version')], '->')"/></td></tr>
|
||||
<tr class="a"><td width="1">java.version</td><td><xsl:value-of select="substring-after(//message[contains(text(),'java.vm.version')], '->')"/></td></tr>
|
||||
<tr class="b"><td width="1">os.name</td><td><xsl:value-of select="substring-after(//message[contains(text(),'os.name')], '->')"/></td></tr>
|
||||
</table>
|
||||
<!-- build information -->
|
||||
<h3>Build events</h3>
|
||||
<table class="log" border="1" cellspacing="2" cellpadding="3" width="100%">
|
||||
<tr>
|
||||
<th nowrap="yes" align="left" width="1%">target</th>
|
||||
<th nowrap="yes" align="left" width="1%">task</th>
|
||||
<th nowrap="yes" align="left">message</th>
|
||||
</tr>
|
||||
<xsl:apply-templates select=".//message[@priority != 'debug']"/>
|
||||
</table>
|
||||
<p>
|
||||
<!-- stacktrace -->
|
||||
<xsl:if test="stacktrace">
|
||||
<a name="stacktrace"/>
|
||||
<h3>Error details</h3>
|
||||
<table width="100%">
|
||||
<tr><td>
|
||||
<pre><xsl:value-of select="stacktrace"/></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</xsl:if>
|
||||
</p>
|
||||
</xsl:template>
|
||||
|
||||
<!-- report every message but those with debug priority -->
|
||||
<xsl:template match="message[@priority!='debug']">
|
||||
<tr valign="top">
|
||||
<!-- alternated row style -->
|
||||
<xsl:attribute name="class">
|
||||
<xsl:if test="position() mod 2 = 1">a</xsl:if>
|
||||
<xsl:if test="position() mod 2 = 0">b</xsl:if>
|
||||
</xsl:attribute>
|
||||
<td nowrap="yes" width="1%"><xsl:value-of select="../../@name"/></td>
|
||||
<td nowrap="yes" style="text-align:right" width="1%">[ <xsl:value-of select="../@name"/> ]</td>
|
||||
<td class="{@priority}" nowrap="yes">
|
||||
<xsl:value-of select="text()"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,510 @@
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:lxslt="http://xml.apache.org/xslt"
|
||||
xmlns:redirect="org.apache.xalan.lib.Redirect"
|
||||
extension-element-prefixes="redirect">
|
||||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/>
|
||||
<xsl:decimal-format decimal-separator="." grouping-separator="," />
|
||||
<!--
|
||||
Copyright 2001-2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
<!--
|
||||
|
||||
Stylesheet to transform an XML file generated by the Ant MAudit task into
|
||||
a set of JavaDoc-like HTML page to make pages more convenient to be browsed.
|
||||
|
||||
It use the Xalan redirect extension to write to multiple output files.
|
||||
|
||||
@author Stephane Bailliez <a href="mailto:sbailliez@apache.org"/>
|
||||
-->
|
||||
|
||||
<xsl:param name="output.dir" select="'.'"/>
|
||||
|
||||
|
||||
<xsl:template match="classes">
|
||||
<!-- create the index.html -->
|
||||
<redirect:write file="{$output.dir}/index.html">
|
||||
<xsl:call-template name="index.html"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the stylesheet.css -->
|
||||
<redirect:write file="{$output.dir}/stylesheet.css">
|
||||
<xsl:call-template name="stylesheet.css"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the overview-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-summary.html">
|
||||
<xsl:apply-templates select="." mode="overview.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-packages.html at the root -->
|
||||
<redirect:write file="{$output.dir}/overview-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.packages"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create the all-classes.html at the root -->
|
||||
<redirect:write file="{$output.dir}/allclasses-frame.html">
|
||||
<xsl:apply-templates select="." mode="all.classes"/>
|
||||
</redirect:write>
|
||||
|
||||
<!-- process all packages -->
|
||||
<xsl:for-each select="./class[not(./@package = preceding-sibling::class/@package)]">
|
||||
<xsl:call-template name="package">
|
||||
<xsl:with-param name="name" select="@package"/>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="package">
|
||||
<xsl:param name="name"/>
|
||||
<xsl:variable name="package.dir">
|
||||
<xsl:if test="not($name = '')"><xsl:value-of select="translate($name,'.','/')"/></xsl:if>
|
||||
<xsl:if test="$name = ''">.</xsl:if>
|
||||
</xsl:variable>
|
||||
<!--Processing package <xsl:value-of select="@name"/> in <xsl:value-of select="$output.dir"/> -->
|
||||
<!-- create a classes-list.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-frame.html">
|
||||
<xsl:call-template name="classes.list">
|
||||
<xsl:with-param name="name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</redirect:write>
|
||||
|
||||
<!-- create a package-summary.html in the package directory -->
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/package-summary.html">
|
||||
<xsl:call-template name="package.summary">
|
||||
<xsl:with-param name="name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</redirect:write>
|
||||
|
||||
<!-- for each class, creates a @name.html -->
|
||||
<!-- @bug there will be a problem with inner classes having the same name, it will be overwritten -->
|
||||
<xsl:for-each select="/classes/class[@package = $name]">
|
||||
<redirect:write file="{$output.dir}/{$package.dir}/{@name}.html">
|
||||
<xsl:apply-templates select="." mode="class.details"/>
|
||||
</redirect:write>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="index.html">
|
||||
<HTML>
|
||||
<HEAD><TITLE>Audit Results.</TITLE></HEAD>
|
||||
<FRAMESET cols="20%,80%">
|
||||
<FRAMESET rows="30%,70%">
|
||||
<FRAME src="overview-frame.html" name="packageListFrame"/>
|
||||
<FRAME src="allclasses-frame.html" name="classListFrame"/>
|
||||
</FRAMESET>
|
||||
<FRAME src="overview-summary.html" name="classFrame"/>
|
||||
</FRAMESET>
|
||||
<noframes>
|
||||
<H2>Frame Alert</H2>
|
||||
<P>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
</P>
|
||||
</noframes>
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- this is the stylesheet css to use for nearly everything -->
|
||||
<xsl:template name="stylesheet.css">
|
||||
.bannercell {
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
body {
|
||||
margin-left: 10;
|
||||
margin-right: 10;
|
||||
font:normal 80% arial,helvetica,sanserif;
|
||||
background-color:#FFFFFF;
|
||||
color:#000000;
|
||||
}
|
||||
.a td {
|
||||
background: #efefef;
|
||||
}
|
||||
.b td {
|
||||
background: #fff;
|
||||
}
|
||||
th, td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
th {
|
||||
font-weight:bold;
|
||||
background: #ccc;
|
||||
color: black;
|
||||
}
|
||||
table, th, td {
|
||||
font-size:100%;
|
||||
border: none
|
||||
}
|
||||
table.log tr td, tr th {
|
||||
|
||||
}
|
||||
h2 {
|
||||
font-weight:bold;
|
||||
font-size:140%;
|
||||
margin-bottom: 5;
|
||||
}
|
||||
h3 {
|
||||
font-size:100%;
|
||||
font-weight:bold;
|
||||
background: #525D76;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- print the violations of the class -->
|
||||
<xsl:template match="class" mode="class.details">
|
||||
<xsl:variable name="package.name" select="@package"/>
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$package.name"/>
|
||||
</xsl:call-template>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<H3>Class <xsl:if test="not($package.name = '')"><xsl:value-of select="$package.name"/>.</xsl:if><xsl:value-of select="@name"/></H3>
|
||||
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:call-template name="class.audit.header"/>
|
||||
<xsl:apply-templates select="." mode="print.audit"/>
|
||||
</table>
|
||||
|
||||
<H3>Violations</H3>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:call-template name="violation.audit.header"/>
|
||||
<xsl:apply-templates select="./violation" mode="print.audit">
|
||||
<xsl:sort data-type="number" select="@line"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
<xsl:call-template name="pageFooter"/>
|
||||
</BODY>
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- list of classes in a package -->
|
||||
<xsl:template name="classes.list">
|
||||
<xsl:param name="name"/>
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<H2><a href="package-summary.html" target="classFrame"><xsl:value-of select="$name"/></a></H2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Classes</h2>
|
||||
<TABLE WIDTH="100%">
|
||||
<xsl:apply-templates select="/classes/class[./@package = $name]" mode="classes.list">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</TABLE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
<!-- the class to list -->
|
||||
<xsl:template match="class" mode="classes.list">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<!-- @bug naming to fix for inner classes -->
|
||||
<a href="{@name}.html" target="classFrame"><xsl:value-of select="@name"/></a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an all-classes.html file that contains a link to all package-summary.html
|
||||
on each class.
|
||||
-->
|
||||
<xsl:template match="classes" mode="all.classes">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Classes</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select=".//class" mode="all.classes">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="class" mode="all.classes">
|
||||
<!-- (ancestor::package)[last()] is buggy in MSXML3 ? -->
|
||||
<xsl:variable name="package.name" select="@package"/>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a target="classFrame">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:if test="not($package.name='')">
|
||||
<xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text>
|
||||
</xsl:if><xsl:value-of select="@name"/><xsl:text>.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@name"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Creates an html file that contains a link to all package-summary.html files on
|
||||
each package existing on testsuites.
|
||||
@bug there will be a problem here, I don't know yet how to handle unnamed package :(
|
||||
-->
|
||||
<xsl:template match="classes" mode="all.packages">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body>
|
||||
<h2><a href="overview-summary.html" target="classFrame">Home</a></h2>
|
||||
<h2>Packages</h2>
|
||||
<table width="100%">
|
||||
<xsl:apply-templates select="class[not(./@package = preceding-sibling::class/@package)]" mode="all.packages">
|
||||
<xsl:sort select="@package" order="ascending"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="class" mode="all.packages">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<a href="{translate(@package,'.','/')}/package-summary.html" target="classFrame">
|
||||
<xsl:value-of select="@package"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="classes" mode="overview.packages">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name"/>
|
||||
</xsl:call-template>
|
||||
</head>
|
||||
<body onload="open('allclasses-frame.html','classListFrame')">
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Summary</h3>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tr>
|
||||
<th>Audited classes</th>
|
||||
<th>Reported classes</th>
|
||||
<th>Violations</th>
|
||||
</tr>
|
||||
<tr class="a">
|
||||
<td><xsl:value-of select="@audited"/></td>
|
||||
<td><xsl:value-of select="@reported"/></td>
|
||||
<td><xsl:value-of select="@violations"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: justify;">
|
||||
Note: Rules checked have originated from style guidelines suggested by the language designers,
|
||||
experience from the Java development community and insite experience. Violations are generally
|
||||
reported with a reference to the <a href="http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html">Java Language Specifications</a> (JLS x.x.x)
|
||||
and Metamata Audit rules (x.x).
|
||||
Please consult these documents for additional information about violations.
|
||||
<p/>
|
||||
Rules checked also enforce adherence to <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">Sun Java coding guidelines</a> in use at Jakarta.
|
||||
<p/>
|
||||
One should note that these violations do not necessary underline errors but should be used
|
||||
as an indication for <i>possible</i> errors. As always, use your best judgment and review
|
||||
them carefully, it might save you hours of debugging.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Packages</h3>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:call-template name="class.audit.header"/>
|
||||
<xsl:for-each select="class[not(./@package = preceding-sibling::class/@package)]">
|
||||
<xsl:sort select="@package" order="ascending"/>
|
||||
<tr>
|
||||
<xsl:call-template name="alternate-row"/>
|
||||
<td><a href="{translate(@package,'.','/')}/package-summary.html"><xsl:value-of select="@package"/></a></td>
|
||||
<td><xsl:value-of select="sum(/classes/class[./@package = current()/@package]/@violations)"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<xsl:call-template name="pageFooter"/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="package.summary">
|
||||
<xsl:param name="name"/>
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<xsl:call-template name="create.stylesheet.link">
|
||||
<xsl:with-param name="package.name" select="$name"/>
|
||||
</xsl:call-template>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute>
|
||||
<xsl:call-template name="pageHeader"/>
|
||||
<h3>Package <xsl:value-of select="$name"/></h3>
|
||||
|
||||
<!--table border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:call-template name="class.metrics.header"/>
|
||||
<xsl:apply-templates select="." mode="print.metrics"/>
|
||||
</table-->
|
||||
|
||||
<xsl:if test="count(/classes/class[./@package = $name]) > 0">
|
||||
<H3>Classes</H3>
|
||||
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<xsl:call-template name="class.audit.header"/>
|
||||
<xsl:apply-templates select="/classes/class[./@package = $name]" mode="print.audit">
|
||||
<xsl:sort select="@name"/>
|
||||
</xsl:apply-templates>
|
||||
</table>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="pageFooter"/>
|
||||
</BODY>
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
transform string like a.b.c to ../../../
|
||||
@param path the path to transform into a descending directory path
|
||||
-->
|
||||
<xsl:template name="path">
|
||||
<xsl:param name="path"/>
|
||||
<xsl:if test="contains($path,'.')">
|
||||
<xsl:text>../</xsl:text>
|
||||
<xsl:call-template name="path">
|
||||
<xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(contains($path,'.')) and not($path = '')">
|
||||
<xsl:text>../</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- create the link to the stylesheet based on the package name -->
|
||||
<xsl:template name="create.stylesheet.link">
|
||||
<xsl:param name="package.name"/>
|
||||
<LINK REL ="stylesheet" TYPE="text/css" TITLE="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></LINK>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Page HEADER -->
|
||||
<xsl:template name="pageHeader">
|
||||
|
||||
<!-- jakarta logo -->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td class="bannercell" rowspan="2">
|
||||
<a href="http://jakarta.apache.org/">
|
||||
<img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/>
|
||||
</a>
|
||||
</td>
|
||||
<td style="text-align:right"><h2>Source Code Audit</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right">Designed for use with <a href='http://www.webgain.com/products/quality_analyzer/'>Webgain QA/Metamata Audit</a> and <a href='http://jakarta.apache.org'>Ant</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr size="1"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Page HEADER -->
|
||||
<xsl:template name="pageFooter">
|
||||
<table width="100%">
|
||||
<tr><td><hr noshade="yes" size="1"/></td></tr>
|
||||
<tr><td>
|
||||
<div align="center"><font color="#525D76" size="-1"><em>
|
||||
Copyright © 1999-2001, Apache Software Foundation
|
||||
</em></font></div>
|
||||
</td></tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- class header -->
|
||||
<xsl:template name="class.audit.header">
|
||||
<tr>
|
||||
<th width="80%">Name</th>
|
||||
<th>Violations</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- method header -->
|
||||
<xsl:template name="violation.audit.header">
|
||||
<tr>
|
||||
<th>Line</th>
|
||||
<th>Message</th>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- class information -->
|
||||
<xsl:template match="class" mode="print.audit">
|
||||
<tr>
|
||||
<xsl:call-template name="alternate-row"/>
|
||||
<td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td>
|
||||
<td><xsl:apply-templates select="@violations"/></td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="violation" mode="print.audit">
|
||||
<tr>
|
||||
<xsl:call-template name="alternate-row"/>
|
||||
<td><xsl:value-of select="@line"/></td>
|
||||
<td><xsl:apply-templates select="@message"/></td>
|
||||
</tr>
|
||||
</xsl:template>
|
||||
|
||||
<!-- alternated row style -->
|
||||
<xsl:template name="alternate-row">
|
||||
<xsl:attribute name="class">
|
||||
<xsl:if test="position() mod 2 = 1">a</xsl:if>
|
||||
<xsl:if test="position() mod 2 = 0">b</xsl:if>
|
||||
</xsl:attribute>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,177 @@
|
||||
<!--
|
||||
Copyright 2004 The Apache Software Foundation
|
||||
|
||||
Licensed 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.
|
||||
|
||||
-->
|
||||
<!-- a stylesheet to display changelogs ala netbeans -->
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version="1.0">
|
||||
<xsl:param name="title"/>
|
||||
<xsl:param name="module"/>
|
||||
<xsl:param name="cvsweb"/>
|
||||
|
||||
<xsl:output method="html" indent="yes"/>
|
||||
|
||||
<!-- Copy standard document elements. Elements that
|
||||
should be ignored must be filtered by apply-templates
|
||||
tags. -->
|
||||
<xsl:template match="*">
|
||||
<xsl:copy>
|
||||
<xsl:copy-of select="attribute::*[. != '']"/>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="tagdiff">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE><xsl:value-of select="$title"/></TITLE>
|
||||
</HEAD>
|
||||
<BODY link="#000000" alink="#000000" vlink="#000000" text="#000000">
|
||||
<style type="text/css">
|
||||
body, p {
|
||||
font-family: verdana,arial,helvetica;
|
||||
font-size: 80%;
|
||||
color:#000000;
|
||||
}
|
||||
.dateAndAuthor {
|
||||
font-family: verdana,arial,helvetica;
|
||||
font-size: 80%;
|
||||
font-weight: bold;
|
||||
text-align:left;
|
||||
background:#a6caf0;
|
||||
}
|
||||
tr, td{
|
||||
font-family: verdana,arial,helvetica;
|
||||
font-size: 80%;
|
||||
background:#eeeee0;
|
||||
}
|
||||
</style>
|
||||
<h1>
|
||||
<a name="top"><xsl:value-of select="$title"/></a>
|
||||
</h1>
|
||||
Tagdiff between <xsl:value-of select="@startTag"/> <xsl:value-of select="@startDate"/> and
|
||||
<xsl:value-of select="@endTag"/> <xsl:value-of select="@endDate"/>
|
||||
<p align="right">Designed for use with <a href="http://ant.apache.org/">Ant</a>.</p>
|
||||
<hr size="2"/>
|
||||
<a name="TOP"/>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="right">
|
||||
<a href="#New">New Files</a> |
|
||||
<a href="#Modified">Modified Files</a> |
|
||||
<a href="#Removed">Removed Files</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="3" CELLSPACING="1">
|
||||
<xsl:call-template name="show-entries">
|
||||
<xsl:with-param name="title">New Files</xsl:with-param>
|
||||
<xsl:with-param name="anchor">New</xsl:with-param>
|
||||
<xsl:with-param name="entries" select=".//entry[file/revision][not(file/prevrevision)]"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<xsl:call-template name="show-entries">
|
||||
<xsl:with-param name="title">Modified Files</xsl:with-param>
|
||||
<xsl:with-param name="anchor">Modified</xsl:with-param>
|
||||
<xsl:with-param name="entries" select=".//entry[file/revision][file/prevrevision]"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<xsl:call-template name="show-entries">
|
||||
<xsl:with-param name="title">Removed Files</xsl:with-param>
|
||||
<xsl:with-param name="anchor">Removed</xsl:with-param>
|
||||
<xsl:with-param name="entries" select=".//entry[not(file/revision)][not(file/prevrevision)]"/>
|
||||
</xsl:call-template>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="show-entries">
|
||||
<xsl:param name="title"/>
|
||||
<xsl:param name="anchor"/>
|
||||
<xsl:param name="entries"/>
|
||||
<TR>
|
||||
<TD colspan="2" class="dateAndAuthor">
|
||||
<a>
|
||||
<xsl:attribute name="name"><xsl:value-of select="$anchor"/></xsl:attribute>
|
||||
<xsl:value-of select="$title"/> - <xsl:value-of select="count($entries)"/> entries
|
||||
</a>
|
||||
<a href="#TOP">(back to top)</a>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD width="20">
|
||||
<xsl:text> </xsl:text>
|
||||
</TD>
|
||||
<TD>
|
||||
<ul>
|
||||
<xsl:apply-templates select="$entries"/>
|
||||
</ul>
|
||||
</TD>
|
||||
</TR>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="entry">
|
||||
<xsl:apply-templates select="file"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="date">
|
||||
<i><xsl:value-of select="."/></i>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="time">
|
||||
<i><xsl:value-of select="."/></i>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="author">
|
||||
<i>
|
||||
<a>
|
||||
<xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
|
||||
<xsl:value-of select="."/>
|
||||
</a>
|
||||
</i>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file">
|
||||
<li>
|
||||
<a target="_new">
|
||||
<xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" /></xsl:attribute>
|
||||
<xsl:value-of select="name" />
|
||||
</a>
|
||||
<xsl:if test="string-length(prevrevision) > 0 or string-length(revision) > 0">
|
||||
<xsl:text> </xsl:text>
|
||||
<a target="_new">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(prevrevision) = 0 ">
|
||||
<xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?rev=<xsl:value-of select="revision" />&content-type=text/x-cvsweb-markup</xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?r1=<xsl:value-of select="revision" />&r2=<xsl:value-of select="prevrevision"/>&diff_format=h</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose> (<xsl:value-of select="revision"/>)
|
||||
</a>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Any elements within a msg are processed,
|
||||
so that we can preserve HTML tags. -->
|
||||
<xsl:template match="msg">
|
||||
<b><xsl:apply-templates/></b>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,14 @@
|
||||
Please refer to the Ant manual under Installing Ant / Library
|
||||
Dependencies for a list of the jar requirements for various optional
|
||||
tasks and features.
|
||||
|
||||
This directory contains xercesImpl.jar from the 2.6.2 release of
|
||||
Apache Xerces. For more information or newer releases see
|
||||
<http://xml.apache.org/xerces2-j/>. See the file LICENSE.xerces for
|
||||
the terms of distribution.
|
||||
|
||||
It also contains xml-apis.jar from the 2.6.2 release of Apache Xerces.
|
||||
For more information or newer releases see
|
||||
<http://xml.apache.org/commons/>. See the files LICENSE.dom and
|
||||
LICENSE.sax for the terms of distribution.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
8
dbcmnpsrc/FE/mnpdev/sim/InfobusR4/build/build.cmd
Normal file
8
dbcmnpsrc/FE/mnpdev/sim/InfobusR4/build/build.cmd
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
@set ANT_HOME=apache-ant-1.6.2
|
||||
@set JAVA_HOME=D:\Java\jdk1.6.0_45
|
||||
@set PATH=%ANT_HOME%/bin;%JAVA_HOME%/bin
|
||||
|
||||
|
||||
|
||||
ant -buildfile build.xml %1
|
||||
86
dbcmnpsrc/FE/mnpdev/sim/InfobusR4/build/build.xml
Normal file
86
dbcmnpsrc/FE/mnpdev/sim/InfobusR4/build/build.xml
Normal file
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="Infobus_r4_TEST" basedir="." default="init">
|
||||
|
||||
<condition property="isWindowsOs">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="isWindowsXpOs">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="isUnix">
|
||||
<os family="unix"/>
|
||||
</condition>
|
||||
<condition property="isAixOs">
|
||||
<os family="unix" name="aix"/>
|
||||
</condition>
|
||||
|
||||
<condition property="build.prop.file.path" value="winxp">
|
||||
<isset property="isWindowsXpOs"/>
|
||||
</condition>
|
||||
<condition property="build.prop.file.path" value="aix">
|
||||
<isset property="isAixOs"/>
|
||||
</condition>
|
||||
|
||||
<property environment="env" />
|
||||
|
||||
|
||||
<property name="build.prop.file" value="${build.prop.file.path}/build_${user.name}.properties"/>
|
||||
<property file="${build.prop.file}"/>
|
||||
|
||||
<property name="src.dir" value="${project.home}\src"/>
|
||||
<property name="build.dir" value="${project.home}\build\building"/>
|
||||
<property name="classes.dir" value="${build.dir}\classes"/>
|
||||
<property name="compile.dir" value="${build.dir}\compile"/>
|
||||
<property name="jar.dir" value="${build.dir}\jar"/>
|
||||
<property name="lib.dir" value="${project.home}\InfoBUSConnector_TEST\APP-INF\lib"/>
|
||||
<property name="build.manifest" value="${project.home}\InfoBUSConnector_TEST\META-INF\MANIFEST.MF"/>
|
||||
<property name="descriptors.dir" value ="${project.home}\InfoBUSConnector\"/>
|
||||
|
||||
|
||||
<target name="init" depends="clean,compile,ejb.c">
|
||||
<echo>
|
||||
** Making Jar terminated **
|
||||
</echo>
|
||||
</target>
|
||||
<target name="clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
</target>
|
||||
<target name="compile">
|
||||
<path id="classpath">
|
||||
<fileset dir="${lib.dir}" includes="**/*.jar"/>
|
||||
<fileset dir="${sdk.home}/lib/" includes="**/*.jar"/>
|
||||
<pathelement location="${weblogic.home}/server/lib/weblogic.jar"/>
|
||||
</path>
|
||||
<mkdir dir="${classes.dir}"/>
|
||||
<echo>
|
||||
** Compile **
|
||||
${classpath}
|
||||
</echo>
|
||||
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on"
|
||||
deprecation="off" failonerror="true">
|
||||
<classpath refid="classpath"/>
|
||||
</javac>
|
||||
</target>
|
||||
<target name="ejb.c">
|
||||
<echo>
|
||||
** Making ejbc **
|
||||
${classpath}
|
||||
</echo>
|
||||
<mkdir dir="${compile.dir}"/>
|
||||
<copy todir="${compile.dir}">
|
||||
<fileset dir="${descriptors.dir}" />
|
||||
<fileset dir="${classes.dir}" />
|
||||
</copy>
|
||||
|
||||
<jar destfile="${build.dir}/INFOBUS_CONNECTOR_TEST_SRC.jar">
|
||||
<fileset dir="${compile.dir}" />
|
||||
</jar>
|
||||
|
||||
<java fork="true" failonerror="true" classname="weblogic.ejbc">
|
||||
<classpath refid="classpath"/>
|
||||
<arg value="${build.dir}/INFOBUS_CONNECTOR_TEST_SRC.jar"/>
|
||||
<arg value="${build.dir}/INFOBUS_CONNECTOR.jar"/>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
@set ANT_HOME=apache-ant-1.6.2
|
||||
@set JAVA_HOME=C:/Java/jdk1.6.0_45
|
||||
@set PATH=%ANT_HOME%/bin;%JAVA_HOME%/bin
|
||||
|
||||
ant -buildfile build.xml %1
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=C:/bea81/jdk142_04
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=C:/bea81/weblogic81
|
||||
|
||||
#home del progetto,
|
||||
project.home=C:/progetti/mnp/FE/mnpdev/sim/InfobusR4
|
||||
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=C:/bea/jdk142_05
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=C:/bea/weblogic81
|
||||
|
||||
#home del progetto,
|
||||
project.home=D:/projects/TIM/gui/mnp/CVS/mnp/FE/mnpdev/dbcgo
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=E:/bea81sp3/jdk142_04
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=E:/bea81sp3/weblogic81
|
||||
|
||||
#home del progetto,
|
||||
project.home=C:/progetti/mnp/FE/mnpdev/dbcgo
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=D:/Java/jdk1.6.0_45
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=D:/progetti/bea1035/wlserver_10.3
|
||||
|
||||
#home del progetto,
|
||||
project.home=D:/progetti/MNP_BRN_UPGRADE/mnp/FE/mnpdev/sim/InfobusR4
|
||||
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=C:/bea81sp3/jdk142_04
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=C:/bea81sp3/weblogic81
|
||||
|
||||
#home del progetto,
|
||||
project.home=C:/progetti/mnp/FE/mnpdev/dbcgo
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=C:/bea/bea81sp3/jdk142_04
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=C:/bea/bea81sp3/weblogic81
|
||||
|
||||
|
||||
#home del progetto,
|
||||
project.home=.
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#home di Java SDK
|
||||
#sdk.home=D:/Java/jdk1.6.0_45
|
||||
sdk.home=C:/Java/jdk1.6.0_45
|
||||
|
||||
#home di weblogic server
|
||||
#weblogic.home=D:/progetti/bea1035/wlserver_10.3
|
||||
weblogic.home=C:/Oracle/Middleware/wlserver_10.3
|
||||
|
||||
#home del progetto,
|
||||
#project.home=D:/progetti/MNP_BRN_UPGRADE/mnp/FE/mnpdev/sim/InfobusR4
|
||||
project.home=../
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=C:/bea/jdk142_04
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=C:/bea/weblogic81
|
||||
|
||||
|
||||
#home del progetto,
|
||||
project.home=C:/progetti/mnp/FE/mnpdev/dbcgo
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
#home di Java SDK
|
||||
sdk.home=C:/bea/jdk142_04
|
||||
|
||||
#home di weblogic server
|
||||
weblogic.home=C:/bea/weblogic81
|
||||
|
||||
|
||||
#home del progetto,
|
||||
project.home=C:/progetti/mnp/FE/mnpdev/dbcgo
|
||||
|
||||
#Properties per il deploy dell'applicazione (admin server)
|
||||
deploy.username=weblogic
|
||||
deploy.username=weblogic
|
||||
deploy.server=localhost
|
||||
deploy.port=8001
|
||||
deploy.url=t3://${deploy.server}:${deploy.port}/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user