diff options
author | Shevek <[email protected]> | 2008-03-21 23:05:04 +0000 |
---|---|---|
committer | Shevek <[email protected]> | 2008-03-21 23:05:04 +0000 |
commit | 5ff55648127c8a8e1b9829775045af986e37647c (patch) | |
tree | b28209b1efe12824fbdcabd4ee9073e93ca30636 /etc | |
parent | fca34200881fcaf7b84b4210f7a5f40c8925c4d1 (diff) |
move stuff into trunk
Diffstat (limited to 'etc')
-rw-r--r-- | etc/MANIFEST | 2 | ||||
-rw-r--r-- | etc/build.properties | 64 | ||||
-rw-r--r-- | etc/checkstyle/config.xml | 178 | ||||
-rw-r--r-- | etc/global.xml | 107 | ||||
-rw-r--r-- | etc/junit/xsl/junit-frames.xsl | 716 | ||||
-rw-r--r-- | etc/junit/xsl/junit-noframes.xsl | 461 | ||||
-rw-r--r-- | etc/targets/global-checkstyle.xml | 23 | ||||
-rw-r--r-- | etc/targets/global-clean.xml | 8 | ||||
-rw-r--r-- | etc/targets/global-cobertura.xml | 35 | ||||
-rw-r--r-- | etc/targets/global-compile.xml | 35 | ||||
-rw-r--r-- | etc/targets/global-findbugs.xml | 47 | ||||
-rw-r--r-- | etc/targets/global-inject.xml | 20 | ||||
-rw-r--r-- | etc/targets/global-jar.xml | 35 | ||||
-rw-r--r-- | etc/targets/global-javadoc.xml | 53 | ||||
-rw-r--r-- | etc/targets/global-junit.xml | 99 | ||||
-rw-r--r-- | etc/targets/global-tar.xml | 84 | ||||
-rw-r--r-- | etc/targets/global-taskdefs.xml | 65 | ||||
-rw-r--r-- | etc/targets/global-verify.xml | 23 | ||||
-rw-r--r-- | etc/targets/global-vpp.xml | 32 |
19 files changed, 2087 insertions, 0 deletions
diff --git a/etc/MANIFEST b/etc/MANIFEST new file mode 100644 index 0000000..95dd104 --- /dev/null +++ b/etc/MANIFEST @@ -0,0 +1,2 @@ +Class-Path: log4j.jar dnsjava-2.0.0.jar +Main-Class: org.anarres.iengine.Main diff --git a/etc/build.properties b/etc/build.properties new file mode 100644 index 0000000..5b54165 --- /dev/null +++ b/etc/build.properties @@ -0,0 +1,64 @@ +global.version = 1.0.8 +global.name = anarres-cpp + +global.dir.arch = ${global.dir.root}/arch +global.dir.etc = ${global.dir.root}/etc +global.dir.lib = ${global.dir.root}/lib +global.dir.tmp = ${global.dir.root}/build/tmp + +global.dir.licenses = ${global.dir.etc}/licenses + +global.dir.src = ${global.dir.root}/src +global.dir.src.docs = ${global.dir.root}/src/docs +global.dir.src.java = ${global.dir.root}/src/java +global.dir.src.resources = ${global.dir.root}/src/resources +global.dir.src.scripts = ${global.dir.root}/src/scripts +global.dir.src.sql = ${global.dir.root}/src/sql +global.dir.src.tests = ${global.dir.root}/src/tests +global.dir.src.tools = ${global.dir.root}/src/tools + +# XXX Add hacks. + +global.dir.build = ${global.dir.root}/build +global.dir.build.classes = ${global.dir.root}/build/classes +global.dir.build.cobertura = ${global.dir.root}/build/cobertura +global.dir.build.depcache = ${global.dir.root}/build/depcache +global.dir.build.dist = ${global.dir.root}/build/dist +global.dir.build.docs = ${global.dir.root}/build/docs +global.dir.build.hbm = ${global.dir.root}/build/hbm +global.dir.build.jar = ${global.dir.root}/build/jar +global.dir.build.java = ${global.dir.root}/build/java +global.dir.build.javadoc = ${global.dir.root}/build/javadoc +global.dir.build.lib = ${global.dir.root}/build/lib +global.dir.build.reports = ${global.dir.root}/build/reports +global.dir.build.sql = ${global.dir.root}/build/sql +global.dir.build.tar = ${global.dir.root}/build/tar +global.dir.build.test-xml = ${global.dir.root}/build/test-xml +global.dir.build.tests = ${global.dir.root}/build/tests +global.dir.build.tools = ${global.dir.root}/build/tools +global.dir.build.wsdd = ${global.dir.root}/build/wsdd +global.dir.build.wsdl = ${global.dir.root}/build/wsdl +global.dir.build.xml = ${global.dir.root}/build/xml + +global.file.jar.name = ${global.name}.jar +global.file.jar = ${global.dir.build.tar}/lib/${global.file.jar.name} +global.file.bintar.name = ${global.name}-bin-${global.version}.tar.gz +global.file.bintar = ${global.dir.build.dist}/${global.file.bintar.name} +global.file.srctar.name = ${global.name}-src-${global.version}.tar.gz +global.file.srctar = ${global.dir.build.dist}/${global.file.srctar.name} + +build.compiler = modern +system.javac.optimize = true +system.javac.debug = true +system.javac.source = 1.5 +system.javac.target = ${system.javac.source} +system.javac.deprecation = true + +# system.javadoc.access = package +system.javadoc.access = protected +system.javadoc.source = ${system.javac.source} +system.javadoc.offline = false + +system.jar.compress = true + +wsdl.server.http.url = http://localhost:8080/axis diff --git a/etc/checkstyle/config.xml b/etc/checkstyle/config.xml new file mode 100644 index 0000000..07ff52a --- /dev/null +++ b/etc/checkstyle/config.xml @@ -0,0 +1,178 @@ +<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<!--
+
+ Checkstyle configuration that checks the sun coding conventions from:
+
+ - the Java Language Specification at
+ http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+ - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+ - the Javadoc guidelines at
+ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+ - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+ - some best practices
+
+ Checkstyle is very configurable. Be sure to read the documentation at
+ http://checkstyle.sf.net (or in your downloaded distribution).
+
+ Most Checks are configurable, be sure to consult the documentation.
+
+ To completely disable a check, just comment it out or delete it from the file.
+
+ Finally, it is worth reading the documentation.
+
+-->
+<!--
+ Modified for karmaphere use
+-->
+
+<module name="Checker">
+
+ <!-- Checks that a package.html file exists for each package. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
+ <!-- Currently too numerous, disabled -->
+ <!--module name="PackageHtml"/-->
+
+ <!-- Checks whether files end with a new line. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+ <module name="NewlineAtEndOfFile"/>
+
+ <!-- Checks that property files contain the same keys. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+ <module name="Translation"/>
+
+
+ <module name="TreeWalker">
+
+ <!-- Checks for Javadoc comments. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html -->
+ <!-- Currently too numerous -->
+ <!--module name="JavadocMethod"/-->
+ <!--module name="JavadocType"/-->
+ <!--module name="JavadocVariable"/-->
+ <!--module name="JavadocStyle"/-->
+
+
+ <!-- Checks for Naming Conventions. -->
+ <!-- See http://checkstyle.sf.net/config_naming.html -->
+ <module name="ConstantName"/>
+ <module name="LocalFinalVariableName"/>
+ <module name="LocalVariableName"/>
+ <module name="MemberName"/>
+ <module name="MethodName"/>
+ <module name="PackageName"/>
+ <module name="ParameterName"/>
+ <module name="StaticVariableName"/>
+ <module name="TypeName"/>
+
+
+ <!-- Checks for Headers -->
+ <!-- See http://checkstyle.sf.net/config_header.html -->
+ <!-- <module name="Header"> -->
+ <!-- The follow property value demonstrates the ability -->
+ <!-- to have access to ANT properties. In this case it uses -->
+ <!-- the ${basedir} property to allow Checkstyle to be run -->
+ <!-- from any directory within a project. See property -->
+ <!-- expansion, -->
+ <!-- http://checkstyle.sf.net/config.html#properties -->
+ <!-- <property -->
+ <!-- name="headerFile" -->
+ <!-- value="${basedir}/java.header"/> -->
+ <!-- </module> -->
+
+ <!-- Following interprets the header file as regular expressions. -->
+ <!-- <module name="RegexpHeader"/> -->
+
+
+ <!-- Checks for imports -->
+ <!-- See http://checkstyle.sf.net/config_import.html -->
+ <module name="AvoidStarImport"/>
+ <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
+ <module name="RedundantImport"/>
+ <module name="UnusedImports"/>
+
+
+ <!-- Checks for Size Violations. -->
+ <!-- See http://checkstyle.sf.net/config_sizes.html -->
+ <module name="FileLength"/>
+ <module name="LineLength"/>
+ <module name="MethodLength"/>
+ <module name="ParameterNumber"/>
+
+
+ <!-- Checks for whitespace -->
+ <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+ <module name="EmptyForIteratorPad"/>
+ <module name="MethodParamPad"/>
+ <module name="NoWhitespaceAfter"/>
+ <module name="NoWhitespaceBefore"/>
+ <module name="OperatorWrap"/>
+ <module name="ParenPad"/>
+ <module name="TypecastParenPad"/>
+ <!--
+ <module name="TabCharacter"/>
+ <module name="WhitespaceAfter"/>
+ <module name="WhitespaceAround"/>
+ -->
+
+
+ <!-- Modifier Checks -->
+ <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+ <module name="ModifierOrder"/>
+ <module name="RedundantModifier"/>
+
+
+ <!-- Checks for blocks. You know, those {}'s -->
+ <!-- See http://checkstyle.sf.net/config_blocks.html -->
+ <module name="AvoidNestedBlocks"/>
+ <module name="EmptyBlock"/>
+ <module name="LeftCurly"/>
+ <!--module name="NeedBraces"/-->
+ <module name="RightCurly"/>
+
+
+ <!-- Checks for common coding problems -->
+ <!-- See http://checkstyle.sf.net/config_coding.html -->
+ <module name="AvoidInlineConditionals"/>
+ <module name="DoubleCheckedLocking"/> <!-- MY FAVOURITE -->
+ <module name="EmptyStatement"/>
+ <module name="EqualsHashCode"/>
+ <module name="HiddenField"/>
+ <module name="IllegalInstantiation"/>
+ <module name="InnerAssignment"/>
+ <module name="MagicNumber"/>
+ <module name="MissingSwitchDefault"/>
+ <module name="RedundantThrows"/>
+ <module name="SimplifyBooleanExpression"/>
+ <module name="SimplifyBooleanReturn"/>
+
+ <!-- Checks for class design -->
+ <!-- See http://checkstyle.sf.net/config_design.html -->
+ <module name="DesignForExtension"/>
+ <module name="FinalClass"/>
+ <module name="HideUtilityClassConstructor"/>
+ <module name="InterfaceIsType"/>
+ <module name="VisibilityModifier"/>
+
+
+ <!-- Miscellaneous other checks. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html -->
+ <module name="ArrayTypeStyle"/>
+ <module name="FinalParameters"/>
+ <module name="GenericIllegalRegexp">
+ <property name="format" value="\s+$"/>
+ <property name="message" value="Line has trailing spaces."/>
+ </module>
+ <module name="TodoComment"/>
+ <module name="UpperEll"/>
+
+ </module>
+
+</module>
diff --git a/etc/global.xml b/etc/global.xml new file mode 100644 index 0000000..052ea6b --- /dev/null +++ b/etc/global.xml @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global" default="all" basedir="."> + + <dirname property="global.dir.etc" file="${ant.file}"/> + <dirname property="global.dir.root" file="${global.dir.etc}"/> + <property file="${global.dir.etc}/custom.properties" /> + <property file="${global.dir.etc}/build.properties" /> + <property file="${global.dir.etc}/log4j.properties" /> + + <path id="compile-classpath"> + <!-- + <fileset dir="${global.dir.lib}"> + <include name="**/*.jar"/> + </fileset> + --> + </path> + + <path id="runtime-classpath"> + <pathelement path="${global.dir.build.classes}" /> + <path refid="compile-classpath" /> + </path> + + <path id="antcontrib-classpath"> + <fileset dir="${global.dir.lib}/ant"> + <include name="*.jar"/> + </fileset> + </path> + + <path id="checkstyle-classpath"> + <fileset dir="${global.dir.lib}/checkstyle"> + <include name="**/*.jar"/> + </fileset> + </path> + + <path id="vpp-classpath"> + <fileset dir="${global.dir.lib}/vpp"> + <include name="**/*.jar" /> + </fileset> + </path> + + <path id="findbugs-classpath"> + <fileset dir="${global.dir.lib}/findbugs"> + <include name="**/*.jar" /> + </fileset> + </path> + + <path id="jrat-classpath"> + <fileset dir="${global.dir.lib}/jrat"> + <include name="*.jar"/> + </fileset> + </path> + + <path id="cobertura-classpath"> + <fileset dir="${global.dir.lib}/log4j"> + <include name="log4j-*.jar"/> + </fileset> + <fileset dir="${global.dir.lib}/cobertura"> + <include name="**/*.jar" /> + </fileset> + </path> + + <path id="svn-classpath"> + <fileset dir="${global.dir.lib}/svn"> + <include name="**/*.jar" /> + </fileset> + </path> + + <!-- classpath for compiling junit tasks --> + <path id="junit-compile-classpath"> + <fileset dir="${global.dir.lib}/junit"> + <include name="**/*.jar" /> + </fileset> + <path refid="runtime-classpath" /> + </path> + + <!-- classpath for running junit tasks --> + <path id="junit-run-classpath"> + <pathelement path="${global.dir.build.tests}"/> + <pathelement path="${global.dir.build.cobertura}"/> + <pathelement path="${global.dir.src.resources}" /> + <pathelement path="${global.dir.src.tests}" /> + <path refid="junit-compile-classpath"/> + <path refid="cobertura-classpath"/> + <path refid="jrat-classpath"/> + </path> + + + + + + + <import file="${global.dir.etc}/targets/global-checkstyle.xml" /> + <import file="${global.dir.etc}/targets/global-clean.xml" /> + <import file="${global.dir.etc}/targets/global-cobertura.xml" /> + <import file="${global.dir.etc}/targets/global-compile.xml" /> + <import file="${global.dir.etc}/targets/global-findbugs.xml" /> + <import file="${global.dir.etc}/targets/global-inject.xml" /> + <import file="${global.dir.etc}/targets/global-jar.xml" /> + <import file="${global.dir.etc}/targets/global-javadoc.xml" /> + <import file="${global.dir.etc}/targets/global-junit.xml" /> + <import file="${global.dir.etc}/targets/global-tar.xml" /> + <import file="${global.dir.etc}/targets/global-taskdefs.xml" /> + <import file="${global.dir.etc}/targets/global-verify.xml" /> + <import file="${global.dir.etc}/targets/global-vpp.xml" /> + +</project> diff --git a/etc/junit/xsl/junit-frames.xsl b/etc/junit/xsl/junit-frames.xsl new file mode 100644 index 0000000..a9d37a5 --- /dev/null +++ b/etc/junit/xsl/junit-frames.xsl @@ -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:[email protected]"/> + @author Erik Hatcher <a href="mailto:[email protected]"/> + @author Martijn Kruithof <a href="mailto:[email protected]"/> + +--> +<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 ([email protected]) + --> + <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="concat( @classname, '.', @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> + diff --git a/etc/junit/xsl/junit-noframes.xsl b/etc/junit/xsl/junit-noframes.xsl new file mode 100644 index 0000000..25487f8 --- /dev/null +++ b/etc/junit/xsl/junit-noframes.xsl @@ -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:[email protected]"/> + @author Erik Hatcher <a href="mailto:[email protected]"/> + +--> +<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 ([email protected]) + --> + <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> + diff --git a/etc/targets/global-checkstyle.xml b/etc/targets/global-checkstyle.xml new file mode 100644 index 0000000..5c15352 --- /dev/null +++ b/etc/targets/global-checkstyle.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-checkstyle" basedir="."> + + <target name="global-checkstyle" depends="global-vpp" + unless="test.no.checkstyle"> + + <mkdir dir="${global.dir.build.reports}" /> + + <!-- XXX: Stupid checkstyle task doesn't expand it's parameters --> + <checkstyle config="etc/checkstyle/config.xml" + failOnViolation="false"> + <classpath refid="checkstyle-classpath" /> + <fileset dir="${global.dir.build.java}" /> + <formatter type="xml" + toFile="${global.dir.build.reports}/checkstyle.xml" /> + <formatter type="plain" + toFile="${global.dir.build.reports}/checkstyle.txt" /> + </checkstyle> + + </target> + +</project> diff --git a/etc/targets/global-clean.xml b/etc/targets/global-clean.xml new file mode 100644 index 0000000..246a2d0 --- /dev/null +++ b/etc/targets/global-clean.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-clean" basedir="."> + <target name="global-clean"> + <delete dir="${global.dir.root}/build" /> + <delete dir="${global.dir.root}/webroot" /> + </target> +</project> diff --git a/etc/targets/global-cobertura.xml b/etc/targets/global-cobertura.xml new file mode 100644 index 0000000..425a9fd --- /dev/null +++ b/etc/targets/global-cobertura.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-cobertura" basedir="."> + + <target name="global-cobertura-instrument" depends="global-taskdefs" + unless="test.no.cobertura"> + <delete dir="${global.dir.build.cobertura}" /> + <mkdir dir="${global.dir.build.cobertura}" /> + + <cobertura-instrument + todir="${global.dir.build.cobertura}" + datafile="${global.dir.build.cobertura}/cobertura.ser"> + <fileset dir="${global.dir.build.classes}"> + <include name="**/*.class" /> + <exclude name="**/Main.class" /> + <exclude name="**/cmd/**" /> + <exclude name="**/soap/port/*/*PortSoapBindingStub.class" /> + <exclude name="**/soap/port/*/*PortServiceLocator.class" /> + <exclude name="**/soap/port/*/*PortService.class" /> + </fileset> + </cobertura-instrument> + + </target> + + <target name="global-cobertura-report" depends="global-taskdefs" + unless="test.no.cobertura"> + <cobertura-report + format="html" + datafile="${global.dir.build.cobertura}/cobertura.ser" + destdir="${global.dir.build.reports}/cobertura" + srcdir="${global.dir.build.java}" /> + </target> + + +</project> diff --git a/etc/targets/global-compile.xml b/etc/targets/global-compile.xml new file mode 100644 index 0000000..b226041 --- /dev/null +++ b/etc/targets/global-compile.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-compile" basedir="."> + + <target name="global-compile" depends="global-vpp"> + <mkdir dir="${global.dir.build.classes}" /> + <mkdir dir="${global.dir.build.depcache}" /> + <mkdir dir="${global.dir.build.java}" /> + + <depend + srcdir="${global.dir.build.java}" + destdir="${global.dir.build.classes}" + cache="${global.dir.build.depcache}" + closure="yes"> + </depend> + + <javac + srcdir="${global.dir.build.java}" + destdir="${global.dir.build.classes}" + optimize="${system.javac.optimize}" + debug="${system.javac.debug}" + source="${system.javac.source}" + target="${system.javac.target}" + deprecation="${system.javac.deprecation}" + > + <classpath refid="compile-classpath" /> + <!-- + <compilerarg compiler="modern" value="-Xlint:unchecked" /> + --> + <compilerarg compiler="modern" value="-Xlint:deprecation" /> + <compilerarg compiler="modern" value="-Xlint:finally" /> + </javac> + </target> + +</project> diff --git a/etc/targets/global-findbugs.xml b/etc/targets/global-findbugs.xml new file mode 100644 index 0000000..9a06996 --- /dev/null +++ b/etc/targets/global-findbugs.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-findbugs" basedir="."> + + <!-- Used to depend on compile. --> + <target name="global-findbugs" depends="global-taskdefs"> + <delete dir="${global.dir.build.reports}/findbugs-output" /> + <mkdir dir="${global.dir.build.reports}/findbugs-output" /> + <findbugs + home="${global.dir.lib}/findbugs" + output="xml" + outputFile="${global.dir.build.reports}/findbugs-output/findbugs.xml" > + <sourcePath path="${global.dir.build.java}" /> + <class location="${global.dir.build.classes}" /> + <auxClasspath refid="compile-classpath" /> + </findbugs> + + </target> + + <target name="global-findbugs-report" depends="global-taskdefs"> + <xslt + basedir="${global.dir.build.reports}/findbugs-output" + destdir="${global.dir.build.reports}/findbugs" + extension=".html" + style="${global.dir.lib}/findbugs/xsl/plain.xsl"> + </xslt> + </target> + + <target name="global-findbugs-gui" depends="global-taskdefs"> + <java + fork="true" + spawn="true" + classname="edu.umd.cs.findbugs.gui.FindBugsFrame"> + <classpath> + <fileset dir="${global.dir.lib}/findbugs/lib" /> + </classpath> + <sysproperty + key="findbugs.home" + value="${global.dir.lib}/findbugs" /> + <jvmarg value="-Xmx768m" /> + <arg value="-loadbugs" /> + <arg value="${global.dir.build.reports}/findbugs-output/findbugs.xml" /> + </java> + </target> + + +</project> diff --git a/etc/targets/global-inject.xml b/etc/targets/global-inject.xml new file mode 100644 index 0000000..e707b04 --- /dev/null +++ b/etc/targets/global-inject.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-inject" basedir="."> + + <target name="global-inject"> + <inject> + <fileset dir="${global.dir.build.classes}"> + <include name="**/*.class" /> + </fileset> + <criteria> + <!-- <includeClass class="org.jboss.util.stream.*"/> --> + <!-- <excludeClass class="java.lang.reflect.*"/> --> + <!-- <excludeMethod method="get*"/> --> + <!-- <excludeMethod method="set*"/> --> + </criteria> + </inject> + + </target> + +</project> diff --git a/etc/targets/global-jar.xml b/etc/targets/global-jar.xml new file mode 100644 index 0000000..22b6cd4 --- /dev/null +++ b/etc/targets/global-jar.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-jar" basedir="."> + + <target name="global-jar" depends="global-compile"> + <delete dir="${global.dir.build.jar}" /> + <mkdir dir="${global.dir.build.jar}" /> + <mkdir dir="${global.dir.build.tar}/lib" /> + <mkdir dir="${global.dir.src.resources}" /> + + <copy todir="${global.dir.build.jar}"> + <fileset dir="${global.dir.build.java}"> + <include name="**/*.dat" /> + </fileset> + <fileset dir="${global.dir.build.classes}"> + <include name="**" /> + </fileset> + <fileset dir="${global.dir.src.resources}"> + <include name="log4j.properties" /> + </fileset> + </copy> + + <jar + destfile="${global.file.jar}" + manifest="etc/MANIFEST" + index="true" + compress="${system.jar.compress}"> + <fileset dir="${global.dir.build.jar}" /> + <manifest> + <attribute name="Built-By" value="${user.name}" /> + </manifest> + </jar> + </target> + +</project> diff --git a/etc/targets/global-javadoc.xml b/etc/targets/global-javadoc.xml new file mode 100644 index 0000000..db48b03 --- /dev/null +++ b/etc/targets/global-javadoc.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-javadoc" basedir="."> + + <target name="global-javadoc" depends="global-vpp" unless="build.no.javadoc"> + <javadoc + sourcepath="${global.dir.build.java}:${global.dir.src.docs}/javadoc" + destdir="${global.dir.build.javadoc}" + classpathref="compile-classpath" + source="${system.javac.source}" + access="${system.javadoc.access}" + use="true" + splitindex="false" + failonerror="true" + windowtitle="Anarres C Preprocessor version ${global.version}" + > + + <package name="org.anarres.cpp" /> + <packageset dir="${global.dir.build.java}" /> + + <link + href="http://java.sun.com/j2se/1.5.0/docs/api/" + offline="${system.javadoc.offline}" /> + <link + href="http://java.sun.com/j2ee/1.4/docs/api/" + offline="${system.javadoc.offline}" /> + <link + href="http://java.sun.com/products/servlet/2.3/javadoc/" + offline="${system.javadoc.offline}" /> + <link + href="http://ws.apache.org/axis/java/apiDocs/" + offline="${system.javadoc.offline}" /> + <link + href="http://www.jdom.org/docs/apidocs/" + offline="${system.javadoc.offline}" /> + <link + href="http://www.junit.org/junit/javadoc/3.8.1/" + offline="${system.javadoc.offline}" /> + <link + href="http://jakarta.apache.org/commons/configuration/apidocs/" + offline="${system.javadoc.offline}" /> + <link + href="http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/" + offline="${system.javadoc.offline}" /> +<!-- href="http://www.cs.bris.ac.uk/Teaching/Resources/General/ant/docs/manual/api/" --> + <tag dir="${global.dir.etc}/javadoc" /> + + <bottom><![CDATA[Copyright © 2007 <a href="http://www.anarres.org/">Shevek, Anarres</a>. All Rights Reserved.]]></bottom> + </javadoc> + + </target> + +</project> diff --git a/etc/targets/global-junit.xml b/etc/targets/global-junit.xml new file mode 100644 index 0000000..e53c5a7 --- /dev/null +++ b/etc/targets/global-junit.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-junit" basedir="."> + + <target name="global-junit" depends="global-taskdefs"> + <runtarget target="global-junit-compile" /> + <runtarget target="global-cobertura-instrument" /> + + <mkdir dir="${global.dir.build.reports}/junit-output" /> + <!-- This only sets the properties if they aren't set + - already. --> + <property name="test.package" value="" /> + <property name="test.case" value="" /> + <property name="test.all" value="" /> + <property name="test.root" value="${global.dir.build.tests}"/> + <property name="jrat.configuration" value="${global.dir.src.resources}/jrat.xml" /> + + <runtarget target="global-junit-cleanup" /> + + <junit + printsummary="yes" + showoutput="yes" + haltonfailure="no" + fork="yes" + forkmode="once" + > + <jvmarg value="-Xbootclasspath/p:${global.dir.build}/hacks/lib/boot.jar"/> + <classpath refid="junit-run-classpath"/> + <formatter type="plain" /> + <formatter type="xml" /> + <sysproperty key="net.sourceforge.cobertura.datafile" + file="${global.dir.build.cobertura}/cobertura.ser" /> + <sysproperty key="test.package" value="${test.package}" /> + <sysproperty key="test.case" value="${test.case}" /> + <sysproperty key="test.root" value="${test.root}" /> + <sysproperty key="test.all" value="${test.all}" /> + <sysproperty key="global.dir.build.classes" + value="${global.dir.build.classes}" /> + <sysproperty key="jrat.configuration" value="${jrat.configuration}" /> + + <assertions> + <enable/> + </assertions> + + <batchtest fork="yes" todir="${global.dir.build.reports}/junit-output"> + <fileset dir="${global.dir.build.tests}"> + <include name="AutoTestSuite.class" /> + </fileset> + </batchtest> + </junit> + + <delete dir="${global.dir.root}/webroot" /> + <delete dir="${global.dir.src.resources}/webapp/WEB-INF" /> + + + <runtarget target="global-junit-report" /> + <runtarget target="global-cobertura-report" /> + </target> + + <target name="global-junit-cleanup"> + <delete dir="${global.dir.root}/webroot" /> + </target> + + <target name="global-junit-compile"> + <delete dir="${global.dir.build.tests}" /> + <mkdir dir="${global.dir.src.tests}" /> + <mkdir dir="${global.dir.build.tests}" /> + + <javac + srcdir="${global.dir.src.tests}" + destdir="${global.dir.build.tests}" + optimize="false" + debug="true" + source="${system.javac.source}" + target="${system.javac.target}" + deprecation="${system.javac.deprecation}" + classpathref="junit-compile-classpath" + > + <!-- + <exclude name="**/master/**" /> + <exclude name="**/slave/**" /> + <exclude name="**/old/**" /> + --> + </javac> + </target> + + <target name="global-junit-report" depends="global-taskdefs"> + <junitreport + todir="${global.dir.build.reports}/junit-output"> + <fileset dir="${global.dir.build.reports}/junit-output"> + <include name="*.xml" /> + <exclude name="TESTS-TestSuites.xml" /> + </fileset> + <report format="frames" todir="${global.dir.build.reports}/junit" + styledir="${global.dir.etc}/junit/xsl"/> + </junitreport> + </target> + +</project> diff --git a/etc/targets/global-tar.xml b/etc/targets/global-tar.xml new file mode 100644 index 0000000..1b053ae --- /dev/null +++ b/etc/targets/global-tar.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-tar" basedir="."> + + <target name="global-tar" depends="global-jar,global-javadoc"> + <mkdir dir="${global.dir.build.dist}" /> + <mkdir dir="${global.dir.build.tar}/lib" /> + <mkdir dir="${global.dir.build.tar}/bin" /> + <mkdir dir="${global.dir.build.javadoc}" /> + + <copy todir="${global.dir.build.tar}/lib"> + <fileset dir="${global.dir.lib}/log4j"> + <include name="**/*.jar" /> + </fileset> + <mapper type="flatten" /> + </copy> + + <copy todir="${global.dir.build.tar}"> + <fileset dir="${global.dir.src.scripts}"> + <include name="cpp.sh" /> + </fileset> + <fileset dir="${global.dir.root}"> + <include name="LICENSE" /> + </fileset> + </copy> + + <copy todir="${global.dir.build.tar}/docs/api"> + <fileset dir="${global.dir.build.javadoc}" /> + </copy> + +<!-- + <copy todir="${global.dir.build.tar}/docs/examples"> + <fileset + dir="${global.dir.build.java}/org/anarres/cpp/examples"> + <include name="**" /> + </fileset> + </copy> +--> + + <chmod perm="a+x"> + <fileset dir="${global.dir.build.tar}/bin"> + <include name="**/*.pl"/> + </fileset> + <fileset dir="${global.dir.build.tar}"> + <include name="*.sh"/> + </fileset> + </chmod> + + <!-- <runtarget target="global-inject" /> --> + + <tar + destfile="${global.file.bintar}" + compression="gzip" + longfile="gnu"> + <tarfileset + dir="${global.dir.build.tar}" + prefix="${global.name}-bin-${global.version}" + username="root" group="root" + uid="0" gid="0" + > + <include name="**" /> + </tarfileset> + </tar> + + <tar + destfile="${global.file.srctar}" + compression="gzip" + longfile="gnu"> + <tarfileset + dir="${global.dir.root}" + prefix="${global.name}-src-${global.version}" + username="root" group="root" + uid="0" gid="0" + > + <include name="**" /> + <exclude name="build/**" /> + <exclude name="**/.*.swp" /> + <exclude name="src/scripts/release.sh" /> + </tarfileset> + </tar> + + </target> + +</project> diff --git a/etc/targets/global-taskdefs.xml b/etc/targets/global-taskdefs.xml new file mode 100644 index 0000000..8218c91 --- /dev/null +++ b/etc/targets/global-taskdefs.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-taskdefs"> + + <target name="global-taskdefs" unless="global.taskdefs.done"> + + <taskdef + resource="net/sf/antcontrib/antlib.xml" + classpathref="antcontrib-classpath" + loaderref="ant" /> + + <taskdef + resource="net/sf/antcontrib/antcontrib.properties" + classpathref="antcontrib-classpath" + loaderref="ant" /> + + <taskdef + resource="checkstyletask.properties" + classpathref="checkstyle-classpath" + loaderref="checkstyle" + /> + + <taskdef + resource="foundrylogic/vpp/taskdef.properties" + classpathref="vpp-classpath" + loaderref="vpp" /> + + <!-- + velocity-tools-generic-1.4.jar + jtidy-r8-21122004.jar + --> + + <taskdef name="injectcopy" + classname="org.shiftone.jrat.inject.ant.InjectCopyTask" + classpathref="jrat-classpath" + loaderref="jrat" /> + + <taskdef name="inject" + classname="org.shiftone.jrat.inject.ant.InjectTask" + classpathref="jrat-classpath" + loaderref="jrat" /> + + <taskdef + classpathref="cobertura-classpath" + resource="tasks.properties" + loaderref="cobratura" + /> + + <taskdef name="findbugs" + classname="edu.umd.cs.findbugs.anttask.FindBugsTask" + classpathref="findbugs-classpath" + loaderref="findbugs" /> + + <taskdef + name="svn" + classname="org.tigris.subversion.svnant.SvnTask" + classpathref="svn-classpath" + loaderref="svn" + /> + + <property name="global.taskdefs.done" value="true" /> + + </target> + +</project> diff --git a/etc/targets/global-verify.xml b/etc/targets/global-verify.xml new file mode 100644 index 0000000..11c8674 --- /dev/null +++ b/etc/targets/global-verify.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-verify" basedir="."> + + <target name="global-verify" depends="global-taskdefs"> + <!-- "master-jar,slave-jar,client-jar" --> + <mkdir dir="${global.dir.build.reports}" /> + + <verifydesign + design="${global.dir.etc}/design.xml" + jar="${master.file.jar}" /> + + <verifydesign + design="${global.dir.etc}/design.xml" + jar="${slave.file.jar}" /> + + <verifydesign + design="${global.dir.etc}/design.xml" + jar="${client.file.jar}" /> + + </target> + +</project> diff --git a/etc/targets/global-vpp.xml b/etc/targets/global-vpp.xml new file mode 100644 index 0000000..6ffc23d --- /dev/null +++ b/etc/targets/global-vpp.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project name="global-vpp"> + + <target name="global-vpp" depends="global-taskdefs"> + <mkdir dir="${global.dir.build.java}" /> + + <vppcopy todir="${global.dir.build.java}"> + <fileset dir="${global.dir.src.java}"> + <include name="**/*.java" /> + </fileset> + <config> + <context> + <!-- Avoid subversion and RCS tags. --> + <property key="Revision" value="\$Revision" /> + <property key="Id" value="\$Id" /> + <property key="Author" value="\$Author" /> + <property key="Date" value="\$Date" /> + <property key="URL" value="\$URL" /> + <property key="Rev" value="\$Rev" /> + <property key="SOA" value="\$SOA" /> + <property key="TTL" value="\$TTL" /> + <property key="DATASET" value="$DATASET" /> + <property key="_" value="\$_" /> + + <property key="version" value="${global.version}" /> + </context> + </config> + </vppcopy> + </target> + +</project> |