diff options
| author | Sarika Sinha | 2021-07-20 14:45:47 +0000 |
|---|---|---|
| committer | Sarika Sinha | 2021-07-20 14:45:47 +0000 |
| commit | 318eb58712149c7855cc91f0aa663290dc2e483f (patch) | |
| tree | 31c52446d691fe5d198a0b0b24e29adfd0d4a2aa | |
| parent | ce3821c8694abf67ea923b65b0ab71ab012f748a (diff) | |
| download | orbit-recipes-318eb58712149c7855cc91f0aa663290dc2e483f.tar.gz orbit-recipes-318eb58712149c7855cc91f0aa663290dc2e483f.tar.xz orbit-recipes-318eb58712149c7855cc91f0aa663290dc2e483f.zip | |
Bug 574832 - Update to Ant 1.10.11
Change-Id: I0a8569547a41b6c4c6c4b30b7cec8b21e920a52c
42 files changed, 9170 insertions, 3 deletions
diff --git a/apache/ant/create-ant-recipes.sh b/apache/ant/create-ant-recipes.sh index d898b9a4..8befe09d 100644 --- a/apache/ant/create-ant-recipes.sh +++ b/apache/ant/create-ant-recipes.sh @@ -6,7 +6,7 @@ function ebr () { # Edit these as needed GID='org.apache.ant' -VERSION='1.10.10' +VERSION='1.10.11' ARTIDS=( ant ) diff --git a/apache/ant/org.apache.ant_1.10.11/.project b/apache/ant/org.apache.ant_1.10.11/.project new file mode 100644 index 00000000..f78c2054 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/.project @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.apache.ant_1.10.11</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + </buildSpec> + <natures> + </natures> +</projectDescription> diff --git a/apache/ant/org.apache.ant_1.10.11/osgi.bnd b/apache/ant/org.apache.ant_1.10.11/osgi.bnd new file mode 100644 index 00000000..fa1cd24b --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/osgi.bnd @@ -0,0 +1,14 @@ +package-version=${version;===;${Bundle-Version}} +ant-launcher-version=${version;===;1.10.11} + +Export-Package: \ + !about.html,!about_files.*,!bin.*,!etc.*,!images.*,!lib.*, \ + *.internal.*;x-internal:=true;version="${package-version}", \ + *.impl.*;x-internal:=true;version="${package-version}", \ + *;version="${package-version}" + +Import-Package: \ + *;resolution:=optional + +# this bundle needs to be unzipped (https://bugs.eclipse.org/550793) +Eclipse-BundleShape: dir diff --git a/apache/ant/org.apache.ant_1.10.11/pom.xml b/apache/ant/org.apache.ant_1.10.11/pom.xml new file mode 100644 index 00000000..48855db8 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/pom.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.eclipse.orbit.bundles</groupId> + <artifactId>ant</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <artifactId>org.apache.ant</artifactId> + <version>1.10.11-SNAPSHOT</version> + <packaging>eclipse-bundle-recipe</packaging> + + <name>Apache Ant (all-in-one)</name> + + <properties> + <recipe.excludes>META-INF/maven/**/*.*,images/</recipe.excludes> + <recipe.unpackdependencies>false</recipe.unpackdependencies> + <recipe.stripversion>true</recipe.stripversion> + <recipe.excludedotfolder>true</recipe.excludedotfolder> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-antlr</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-bcel</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-bsf</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-log4j</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-oro</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-regexp</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-resolver</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-apache-xalan2</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-commons-logging</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-commons-net</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-imageio</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-jai</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-javamail</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-jdepend</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-jmf</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-jsch</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-junit</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-junitlauncher</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-junit4</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-launcher</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-netrexx</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-swing</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-testutil</artifactId> + <version>1.10.11</version> + </dependency> + + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant</artifactId> + <version>1.10.11</version> + </dependency> + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-xz</artifactId> + <version>1.10.11</version> + </dependency> + </dependencies> + +</project> diff --git a/apache/ant/org.apache.ant_1.10.11/src/eclipse/ip_log.xml b/apache/ant/org.apache.ant_1.10.11/src/eclipse/ip_log.xml new file mode 100644 index 00000000..67437505 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/eclipse/ip_log.xml @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ip_log version="1.0"> + <project id="org.apache.ant" version="1.10.11" status="done"> + <info> + <name>Apache Ant (all-in-one)</name> + <repository>scm:git:git.eclipse.org:/gitroot/orbit/recipes.git</repository> + <location>apache-parent/ant/org.apache.ant</location> + </info> + <contact> + <name>Sarika Sinha</name> + <email>sarika.sinha@in.ibm.com</email> + <company>IBM</company> + </contact> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-antlr-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-bcel-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-bsf-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-log4j-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-oro-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-regexp-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-resolver-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-apache-xalan2-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-commons-logging-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-commons-net-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-imageio-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-jai-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-javamail-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-jdepend-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-jmf-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-jsch-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-junit-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-junitlauncher-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-junit4-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-launcher-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-netrexx-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-swing-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-testutil-1.10.11.jar</package> + </legal> + <legal> + <ipzilla bug_id="23618"/> + <license> + <name>Apache License, 2.0</name> + <reference>http://www.apache.org/licenses/LICENSE-2.0.txt</reference> + </license> + <package>ant-xz-1.10.11.jar</package> + </legal> + </project> +</ip_log>
\ No newline at end of file diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/OSGI-INF/l10n/bundle.properties b/apache/ant/org.apache.ant_1.10.11/src/main/resources/OSGI-INF/l10n/bundle.properties new file mode 100644 index 00000000..81544458 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/OSGI-INF/l10n/bundle.properties @@ -0,0 +1,3 @@ +# Bundle Localization +bundleName = Apache Ant +bundleVendor = Eclipse Orbit diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/about.html b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about.html new file mode 100644 index 00000000..116a52f6 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about.html @@ -0,0 +1,200 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>July 19, 2021</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 2.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +<h3>Third Party Content</h3> +<p>The Content includes items that have been sourced from third parties as set out below. If you +did not receive this Content directly from the Eclipse Foundation, the following is provided +for informational purposes only, and you should look to the Redistributor's license for +terms and conditions of use.</p> + +<h4>Apache Ant Core</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant Core project.</p> + +<p>Apache Ant Core is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant Core including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + ANTLR</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + ANTLR project.</p> + +<p>Apache Ant + ANTLR is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + ANTLR including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + BCEL</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + BCEL project.</p> + +<p>Apache Ant + BCEL is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + BCEL including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + BSF</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + BSF project.</p> + +<p>Apache Ant + BSF is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + BSF including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Log4J</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Log4J project.</p> + +<p>Apache Ant + Log4J is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Log4J including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Apache Oro</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Apache Oro project.</p> + +<p>Apache Ant + Apache Oro is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Apache Oro including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Apache Regexp</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Apache Regexp project.</p> + +<p>Apache Ant + Apache Regexp is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Apache Regexp including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Apache Resolver</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Apache Resolver project.</p> + +<p>Apache Ant + Apache Resolver is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Apache Resolver including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Xalan 2</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Xalan 2 project.</p> + +<p>Apache Ant + Xalan 2 is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Xalan 2 including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Commons Logging</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Commons Logging project.</p> + +<p>Apache Ant + Commons Logging is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Commons Logging including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Commons Net</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Commons Net project.</p> + +<p>Apache Ant + Commons Net is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Commons Net including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> + +<h4>Apache Ant + ImageIO</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant ImageIO project.</p> + +<p>Apache Ant ImageIO is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant ImageIO including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> + + +<h4>Apache Ant + JAI</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JAI project.</p> + +<p>Apache Ant + JAI is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JAI including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + JavaMail</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JavaMail project.</p> + +<p>Apache Ant + JavaMail is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JavaMail including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + JDepend</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JDepend project.</p> + +<p>Apache Ant + JDepend is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JDepend including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + JMF</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JMF project.</p> + +<p>Apache Ant + JMF is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JMF including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + JSch</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JSch project.</p> + +<p>Apache Ant + JSch is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JSch including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + JUnit</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JUnit project.</p> + +<p>Apache Ant + JUnit is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JUnit including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + JUnit 4</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + JUnit 4 project.</p> + +<p>Apache Ant + JUnit 4 is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + JUnit 4 including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant Launcher</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant Launcher project.</p> + +<p>Apache Ant Launcher is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant Launcher including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + NetRexx</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + NetRexx project.</p> + +<p>Apache Ant + NetRexx is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + NetRexx including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant + Swing</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant + Swing project.</p> + +<p>Apache Ant + Swing is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant + Swing including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> +<h4>Apache Ant Test Utilities</h4> + +<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Ant Test Utilities project.</p> + +<p>Apache Ant Test Utilities is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank">The Apache Software License, Version 2.0</a> (<a href="about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt" target="_blank">THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt</a>) license.</p> + +<p>Apache Ant Test Utilities including its source is available from <a href="http://ant.apache.org/" target="_blank">ant.apache.org/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="http://issues.apache.org/bugzilla/" target="_blank">issues.apache.org/bugzilla/</a>. The following mailing lists can be used to communicate with the project communities: Ant Developers List <dev@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-dev" target="_blank">archive</a>) or Ant Users List <user@ant.apache.org> (<a href="http://mail-archives.apache.org/mod_mbox/ant-user" target="_blank">archive</a>).</p> + + +</body> +</html>
\ No newline at end of file diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/DOM-LICENSE.html b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/DOM-LICENSE.html new file mode 100644 index 00000000..a14bbd1b --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/DOM-LICENSE.html @@ -0,0 +1,111 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content= +"text/html; charset=utf-8" /> +<meta name="generator" content= +"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org" /> +<title>DOM License</title> +<link rel="stylesheet" href="./DOM-LICENSE_files/minimum" type= +"text/css" media="all" /> +<style type="text/css" media="all" xml:space="preserve"> +/*<![CDATA[*/ + @import url("/2008/site/css/advanced"); +/*]]>*/ +</style> +<link href="./DOM-LICENSE_files/minimum" rel="stylesheet" type= +"text/css" media= +"handheld, only screen and (max-device-width: 480px)" disabled= +"disabled" /> +<meta name="viewport" content="width=device-width" /> +<link rel="stylesheet" href="./DOM-LICENSE_files/print" type= +"text/css" media="all" /> +<link rel="shortcut icon" href= +"http://www.w3.org/2008/site/images/favicon.ico" type= +"image/x-icon" /> +</head> +<body id="www-w3-org" class="w3c_public w3c_javascript w3c_print"> +<div id="w3c_container"> +<div id="w3c_main"> +<h1 class="title">W3C Software Notice and License</h1> +<div id="w3c_content_body"> +<div class="line"> +<p class="intro tPadding">This work (and included software, +documentation such as READMEs, or other related items) is being +provided by the copyright holders under the following license.</p> +<h2>License</h2> +<p class="tPadding">By obtaining, using and/or copying this work, +you (the licensee) agree that you have read, understood, and will +comply with the following terms and conditions.</p> +<p>Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose +and without fee or royalty is hereby granted, provided that you +include the following on ALL copies of the software and +documentation or portions thereof, including modifications:</p> +<ul class="show_items"> +<li>The full text of this NOTICE in a location viewable to users of +the redistributed or derivative work.</li> +<li>Any pre-existing intellectual property disclaimers, notices, or +terms and conditions. If none exist, the <a href= +"http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231.html"> +W3C Software Short Notice</a> should be included (hypertext is +preferred, text is permitted) within the body of any redistributed +or derivative code.</li> +<li>Notice of any changes or modifications to the files, including +the date changes were made. (We recommend you provide URIs to the +location from which the code is derived.)</li> +</ul> +<h2>Disclaimers</h2> +<p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND +COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE +USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD +PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p> +<p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, +SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE +SOFTWARE OR DOCUMENTATION.</p> +<p>The name and trademarks of copyright holders may NOT be used in +advertising or publicity pertaining to the software without +specific, written prior permission. Title to copyright in this +software and any associated documentation will at all times remain +with copyright holders.</p> +<h2>Notes</h2> +<p>This version: +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</p> +<p>This formulation of W3C's notice and license became active on +December 31 2002. This version removes the copyright ownership +notice such that this license can be used with materials other than +those owned by the W3C, reflects that ERCIM is now a host of the +W3C, includes references to this specific dated version of the +license, and removes the ambiguous grant of "use". Otherwise, this +version is the same as the <a href= +"http://www.w3.org/Consortium/Legal/copyright-software-19980720">previous +version</a> and is written so as to preserve the <a href= +"http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses"> +Free Software Foundation's assessment of GPL compatibility</a> and +<a href="http://www.opensource.org/licenses/W3C.php">OSI's +certification</a> under the <a href= +"http://www.opensource.org/docs/definition.php">Open Source +Definition</a>.</p> +</div> +</div> +</div> +</div> +<p class="copyright">Copyright © 2009 W3C <sup>®</sup> ( <a href= +"http://www.csail.mit.edu/"><acronym title= +"Massachusetts Institute of Technology">MIT</acronym></a> , +<a href="http://www.ercim.org/"><acronym title= +"European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a> +, <a href="http://www.keio.ac.jp/">Keio</a>) <a href= +"http://www.w3.org/Consortium/Legal/2002/ipr-notice-20021231">Usage +policies apply</a>.</p> +<!-- Generated from data/scripts.php, ../../smarty/{scripts.tpl} --><!-- At the bottom for performance reasons --> +<div id="w3c_scripts"><script type="text/javascript" src= +"./DOM-LICENSE_files/main" xml:space="preserve"> +//<![CDATA[ +<!-- --> +//]]> +</script></div> +</body> +</html> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/LICENSE b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/LICENSE new file mode 100644 index 00000000..5cfe309e --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/LICENSE @@ -0,0 +1,272 @@ +/* + * Apache License + * Version 2.0, January 2004 + * http://www.apache.org/licenses/ + * + * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + * + * 1. Definitions. + * + * "License" shall mean the terms and conditions for use, reproduction, + * and distribution as defined by Sections 1 through 9 of this document. + * + * "Licensor" shall mean the copyright owner or entity authorized by + * the copyright owner that is granting the License. + * + * "Legal Entity" shall mean the union of the acting entity and all + * other entities that control, are controlled by, or are under common + * control with that entity. For the purposes of this definition, + * "control" means (i) the power, direct or indirect, to cause the + * direction or management of such entity, whether by contract or + * otherwise, or (ii) ownership of fifty percent (50%) or more of the + * outstanding shares, or (iii) beneficial ownership of such entity. + * + * "You" (or "Your") shall mean an individual or Legal Entity + * exercising permissions granted by this License. + * + * "Source" form shall mean the preferred form for making modifications, + * including but not limited to software source code, documentation + * source, and configuration files. + * + * "Object" form shall mean any form resulting from mechanical + * transformation or translation of a Source form, including but + * not limited to compiled object code, generated documentation, + * and conversions to other media types. + * + * "Work" shall mean the work of authorship, whether in Source or + * Object form, made available under the License, as indicated by a + * copyright notice that is included in or attached to the work + * (an example is provided in the Appendix below). + * + * "Derivative Works" shall mean any work, whether in Source or Object + * form, that is based on (or derived from) the Work and for which the + * editorial revisions, annotations, elaborations, or other modifications + * represent, as a whole, an original work of authorship. For the purposes + * of this License, Derivative Works shall not include works that remain + * separable from, or merely link (or bind by name) to the interfaces of, + * the Work and Derivative Works thereof. + * + * "Contribution" shall mean any work of authorship, including + * the original version of the Work and any modifications or additions + * to that Work or Derivative Works thereof, that is intentionally + * submitted to Licensor for inclusion in the Work by the copyright owner + * or by an individual or Legal Entity authorized to submit on behalf of + * the copyright owner. For the purposes of this definition, "submitted" + * means any form of electronic, verbal, or written communication sent + * to the Licensor or its representatives, including but not limited to + * communication on electronic mailing lists, source code control systems, + * and issue tracking systems that are managed by, or on behalf of, the + * Licensor for the purpose of discussing and improving the Work, but + * excluding communication that is conspicuously marked or otherwise + * designated in writing by the copyright owner as "Not a Contribution." + * + * "Contributor" shall mean Licensor and any individual or Legal Entity + * on behalf of whom a Contribution has been received by Licensor and + * subsequently incorporated within the Work. + * + * 2. Grant of Copyright License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * copyright license to reproduce, prepare Derivative Works of, + * publicly display, publicly perform, sublicense, and distribute the + * Work and such Derivative Works in Source or Object form. + * + * 3. Grant of Patent License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * (except as stated in this section) patent license to make, have made, + * use, offer to sell, sell, import, and otherwise transfer the Work, + * where such license applies only to those patent claims licensable + * by such Contributor that are necessarily infringed by their + * Contribution(s) alone or by combination of their Contribution(s) + * with the Work to which such Contribution(s) was submitted. If You + * institute patent litigation against any entity (including a + * cross-claim or counterclaim in a lawsuit) alleging that the Work + * or a Contribution incorporated within the Work constitutes direct + * or contributory patent infringement, then any patent licenses + * granted to You under this License for that Work shall terminate + * as of the date such litigation is filed. + * + * 4. Redistribution. You may reproduce and distribute copies of the + * Work or Derivative Works thereof in any medium, with or without + * modifications, and in Source or Object form, provided that You + * meet the following conditions: + * + * (a) You must give any other recipients of the Work or + * Derivative Works a copy of this License; and + * + * (b) You must cause any modified files to carry prominent notices + * stating that You changed the files; and + * + * (c) You must retain, in the Source form of any Derivative Works + * that You distribute, all copyright, patent, trademark, and + * attribution notices from the Source form of the Work, + * excluding those notices that do not pertain to any part of + * the Derivative Works; and + * + * (d) If the Work includes a "NOTICE" text file as part of its + * distribution, then any Derivative Works that You distribute must + * include a readable copy of the attribution notices contained + * within such NOTICE file, excluding those notices that do not + * pertain to any part of the Derivative Works, in at least one + * of the following places: within a NOTICE text file distributed + * as part of the Derivative Works; within the Source form or + * documentation, if provided along with the Derivative Works; or, + * within a display generated by the Derivative Works, if and + * wherever such third-party notices normally appear. The contents + * of the NOTICE file are for informational purposes only and + * do not modify the License. You may add Your own attribution + * notices within Derivative Works that You distribute, alongside + * or as an addendum to the NOTICE text from the Work, provided + * that such additional attribution notices cannot be construed + * as modifying the License. + * + * You may add Your own copyright statement to Your modifications and + * may provide additional or different license terms and conditions + * for use, reproduction, or distribution of Your modifications, or + * for any such Derivative Works as a whole, provided Your use, + * reproduction, and distribution of the Work otherwise complies with + * the conditions stated in this License. + * + * 5. Submission of Contributions. Unless You explicitly state otherwise, + * any Contribution intentionally submitted for inclusion in the Work + * by You to the Licensor shall be under the terms and conditions of + * this License, without any additional terms or conditions. + * Notwithstanding the above, nothing herein shall supersede or modify + * the terms of any separate license agreement you may have executed + * with Licensor regarding such Contributions. + * + * 6. Trademarks. This License does not grant permission to use the trade + * names, trademarks, service marks, or product names of the Licensor, + * except as required for reasonable and customary use in describing the + * origin of the Work and reproducing the content of the NOTICE file. + * + * 7. Disclaimer of Warranty. Unless required by applicable law or + * agreed to in writing, Licensor provides the Work (and each + * Contributor provides its Contributions) on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied, including, without limitation, any warranties or conditions + * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + * PARTICULAR PURPOSE. You are solely responsible for determining the + * appropriateness of using or redistributing the Work and assume any + * risks associated with Your exercise of permissions under this License. + * + * 8. Limitation of Liability. In no event and under no legal theory, + * whether in tort (including negligence), contract, or otherwise, + * unless required by applicable law (such as deliberate and grossly + * negligent acts) or agreed to in writing, shall any Contributor be + * liable to You for damages, including any direct, indirect, special, + * incidental, or consequential damages of any character arising as a + * result of this License or out of the use or inability to use the + * Work (including but not limited to damages for loss of goodwill, + * work stoppage, computer failure or malfunction, or any and all + * other commercial damages or losses), even if such Contributor + * has been advised of the possibility of such damages. + * + * 9. Accepting Warranty or Additional Liability. While redistributing + * the Work or Derivative Works thereof, You may choose to offer, + * and charge a fee for, acceptance of support, warranty, indemnity, + * or other liability obligations and/or rights consistent with this + * License. However, in accepting such obligations, You may act only + * on Your own behalf and on Your sole responsibility, not on behalf + * of any other Contributor, and only if You agree to indemnify, + * defend, and hold each Contributor harmless for any liability + * incurred by, or claims asserted against, such Contributor by reason + * of your accepting any such warranty or additional liability. + * + * END OF TERMS AND CONDITIONS + * + * APPENDIX: How to apply the Apache License to your work. + * + * To apply the Apache License to your work, attach the following + * boilerplate notice, with the fields enclosed by brackets "[]" + * replaced with your own identifying information. (Don't include + * the brackets!) The text should be enclosed in the appropriate + * comment syntax for the file format. We also recommend that a + * file or class name and description of purpose be included on the + * same "printed page" as the copyright notice for easier + * identification within third-party archives. + * + * Copyright [yyyy] [name of copyright owner] + * + * 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 + * + * https://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. + */ + +W3C® SOFTWARE NOTICE AND LICENSE +https://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. By obtaining, using and/or copying this work, you (the licensee) agree +that you have read, understood, and will comply with the following terms and +conditions. + +Permission to copy, modify, and distribute this software and its documentation, +with or without modification, for any purpose and without fee or royalty is +hereby granted, provided that you include the following on ALL copies of the +software and documentation or portions thereof, including modifications: + + 1. The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, the W3C Software Short Notice should be + included (hypertext is preferred, text is permitted) within the body + of any redistributed or derivative code. + 3. Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE +NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT +THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY +PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising or +publicity pertaining to the software without specific, written prior permission. +Title to copyright in this software and any associated documentation will at +all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. +This version removes the copyright ownership notice such that this license can +be used with materials other than those owned by the W3C, reflects that ERCIM +is now a host of the W3C, includes references to this specific dated version of +the license, and removes the ambiguous grant of "use". Otherwise, this version +is the same as the previous version and is written so as to preserve the Free +Software Foundation's assessment of GPL compatibility and OSI's certification +under the Open Source Definition. Please see our Copyright FAQ for common +questions about using materials from our site, including specific terms and +conditions for packages like libwww, Amaya, and Jigsaw. Other questions about +this notice can be directed to site-policy@w3.org. + +Joseph Reagle <site-policy@w3.org> + +This license came from: http://www.megginson.com/SAX/copying.html + However please note future versions of SAX may be covered + under http://saxproject.org/?selected=pd + +SAX2 is Free! + +I hereby abandon any property rights to SAX 2.0 (the Simple API for +XML), and release all of the SAX 2.0 source code, compiled code, and +documentation contained in this distribution into the Public Domain. +SAX comes with NO WARRANTY or guarantee of fitness for any +purpose. + +David Megginson, david@megginson.com +2000-05-05 diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/NOTICE b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/NOTICE new file mode 100644 index 00000000..d77bd064 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/NOTICE @@ -0,0 +1,9 @@ +Apache Ant +Copyright 1999-2021 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +The <sync> task is based on code Copyright (c) 2002, Landmark +Graphics Corp that has been kindly donated to the Apache Software +Foundation. diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/SAX-LICENSE.html b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/SAX-LICENSE.html new file mode 100644 index 00000000..5ebc7052 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/SAX-LICENSE.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta name="generator" content= +"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org" /> +<meta http-equiv="Content-Type" content= +"text/html; charset=utf-8" /> +<title>SAX License</title> + +<style type="text/css"> +/*<![CDATA[*/ +<!-- + h1, h2, h3, h4, h5, h6 { color: maroon; } + /* make sure that goes OK with the nav column background + * net-friendly colors include: yellow/ffffcc, blue/ccccff + */ + --> +/*]]>*/ +</style> +</head> +<body color="#000000"> +<h2>Origin</h2> +<p>This page was originally taken from: <a href= +"http://www.saxproject.org/copying.html">http://www.saxproject.org/copying.html</a> +with the navigation links remove from the left-hand-side of the +page.</p> +<h2>Copyright Status</h2> +<div> +<p><em>SAX is free!</em></p> +<p>In fact, it's not possible to own a license to SAX, since it's +been placed in the public domain.</p> +<h2>No Warranty</h2> +<p>Because SAX is released to the public domain, there is no +warranty for the design or for the software implementation, to the +extent permitted by applicable law. Except when otherwise stated in +writing the copyright holders and/or other parties provide SAX "as +is" without warranty of any kind, either expressed or implied, +including, but not limited to, the implied warranties of +merchantability and fitness for a particular purpose. The entire +risk as to the quality and performance of SAX is with you. Should +SAX prove defective, you assume the cost of all necessary +servicing, repair or correction.</p> +<p>In no event unless required by applicable law or agreed to in +writing will any copyright holder, or any other party who may +modify and/or redistribute SAX, be liable to you for damages, +including any general, special, incidental or consequential damages +arising out of the use or inability to use SAX (including but not +limited to loss of data or data being rendered inaccurate or losses +sustained by you or third parties or a failure of the SAX to +operate with any other programs), even if such holder or other +party has been advised of the possibility of such damages.</p> +<h2>Copyright Disclaimers</h2> +<p>This page includes statements to that effect by David Megginson, +who would have been able to claim copyright for the original +work.</p> +<!-- MAYBE: link to archived copies of the messages? --> +<h3>SAX 1.0</h3> +<p>Version 1.0 of the Simple API for XML (SAX), created +collectively by the membership of the XML-DEV mailing list, is +hereby released into the public domain.</p> +<p>No one owns SAX: you may use it freely in both commercial and +non-commercial applications, bundle it with your software +distribution, include it on a CD-ROM, list the source code in a +book, mirror the documentation at your own web site, or use it in +any other way you see fit.</p> +<p><em>David Megginson, <a href= +"http://www.megginson.com/">Megginson Technologies Ltd.</a><br /> +1998-05-11</em></p> +<h3>SAX 2.0</h3> +<p>I hereby abandon any property rights to SAX 2.0 (the Simple API +for XML), and release all of the SAX 2.0 source code, compiled +code, and documentation contained in this distribution into the +Public Domain. SAX comes with NO WARRANTY or guarantee of fitness +for any purpose.</p> +<p><em>David Megginson, <a href= +"http://www.megginson.com/">Megginson Technologies Ltd.</a><br /> +2000-05-05</em></p> +</div> +<br /> +</body> +</html> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt new file mode 100644 index 00000000..7a4a3ea2 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/about_files/THE_APACHE_SOFTWARE_LICENSE__VERSION_2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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.
\ No newline at end of file diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant new file mode 100644 index 00000000..81107b58 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant @@ -0,0 +1,377 @@ +#! /bin/sh + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://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 + +if [ -z "$PROTECT_NL" ]; then + PROTECT_NL=true + os=`uname -s` + rel=`uname -r` + # heirloom bourne-shell used by Solaris 10 is not POSIX + # it lacks features necessary to protect trailing NL from subshell trimming + if [ "$os" = SunOS -a "$rel" = "5.10" ]; then + PROTECT_NL=false + fi +fi + +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 + + if [ "$PROTECT_NL" = "true" ]; then + # pad the value with X to protect trailing NLs from subshell output trimming + esc_arg="${arg}X" + else + esc_arg="${arg}" + fi + + # wrap all arguments as "" strings, escape any internal back-slash, double-quote, $, or back-tick characters + # use printf to avoid echo interpretation behaviors such as escapes and line continuation + # Mac bsd_sed does not support group-0, so pattern uses group-1 + # Solaris sed only processes lines with trailing newline, passing in an extra newline + # subshell (heirloom and posix) will trim the added trailing newline + esc_arg="`printf '%s\n' "$esc_arg" | sed -e 's@\([$\"\`\\]\)@\\\\\\1@g' `" + + if [ "$PROTECT_NL" = "true" ]; then + # remove the padding X added above, this syntax is POSIX compatible but not heirloom-sh + esc_arg="${esc_arg%X}" + fi + quoted_arg="\"$esc_arg\"" + + if $ant_exec_debug; then + # using printf to avoid echo line continuation and escape interpretation + printf "arg : %s\n" "$arg" + printf "quoted_arg: %s\n" "$quoted_arg" + fi + ant_exec_args="$ant_exec_args $quoted_arg" + fi +done + +# Source/default ant configuration +if $no_config; then + rpm_mode=false + usejikes=$use_jikes_default +else + # load system-wide ant configuration (ONLY if ANT_HOME has NOT been set) + if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then + if [ -f "/etc/ant.conf" ]; then + . /etc/ant.conf + fi + 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; +mingw=false; +case "`uname`" in + CYGWIN*) + cygwin=true + ;; + Darwin*) + darwin=true + if [ -z "$JAVA_HOME" ]; then + if [ -x '/usr/libexec/java_home' ]; then + JAVA_HOME=`/usr/libexec/java_home` + elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then + JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home + fi + fi + ;; + MINGW*) + mingw=true + ;; +esac + +if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ]; then + ## 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" > /dev/null && pwd` +fi + +# For Cygwin and Mingw, 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 +if $mingw; then + [ -n "$ANT_HOME" ] && ANT_HOME="`(cd "$ANT_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +# set ANT_LIB location +ANT_LIB="${ANT_HOME}/lib" + +if [ -z "$JAVACMD" ]; then + if [ -n "$JAVA_HOME" ]; then + # IBM's JDK on AIX uses strange locations for the executables + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + JAVACMD="$JAVA_HOME/jre/sh/java" + elif [ -x "$JAVA_HOME/jre/bin/java" ]; then + JAVACMD="$JAVA_HOME/jre/bin/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 "We cannot run Java, please ensure you have Java installed." + echo " We have tried to execute $JAVACMD but failed." + echo "If you have installed Java in a unusual place you can set JAVA_HOME" + echo "to the directory containing the Java installation." + 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/lib will also be included, 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 && [ -x /usr/bin/build-classpath ]; then + LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)" + + # If no optional jars have been specified then build the default list + if [ -z "$OPT_JAR_LIST" ]; then + for file in /etc/ant.d/*; do + if [ -f "$file" ]; then + case "$file" in + *~|*#*|*.rpmsave|*.rpmnew) + ;; + *) + for dep in `cat "$file"`; do + OPT_JAR_LIST="$OPT_JAR_LIST${OPT_JAR_LIST:+ }$dep" + done + ;; + esac + fi + done + fi + + # 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 -cp 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 +# For PATHs convert to unix format first, then to windows format to ensure +# both formats are supported. Probably this will fail on directories with ; +# in the name in the path. Let's assume that paths containing ; are more +# rare than windows style paths on cygwin. +if $cygwin; then + if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null; then + format=mixed + else + format=windows + fi + [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --$format "$ANT_HOME"` + ANT_LIB=`cygpath --$format "$ANT_LIB"` + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --$format "$JAVA_HOME"` + LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"` + LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"` + if [ -n "$CLASSPATH" ]; then + CP_TEMP=`cygpath --path --unix "$CLASSPATH"` + CLASSPATH=`cygpath --path --$format "$CP_TEMP"` + 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\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"\$CLASSPATH\"" +if $ant_exec_debug; then + # using printf to avoid echo line continuation and escape interpretation confusion + printf "%s\n" "$ant_exec_command $ant_exec_args" +fi + +eval "$ant_exec_command $ant_exec_args" diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant.bat b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant.bat new file mode 100644 index 00000000..553af258 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant.bat @@ -0,0 +1,218 @@ +@echo off + +REM Licensed to the Apache Software Foundation (ASF) under one or more +REM contributor license agreements. See the NOTICE file distributed with +REM this work for additional information regarding copyright ownership. +REM The ASF licenses this file to You under the Apache License, Version 2.0 +REM (the "License"); you may not use this file except in compliance with +REM the License. You may obtain a copy of the License at +REM +REM https://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 This is an inordinately troublesome piece of code, particularly because it +REM tries to work on both Win9x and WinNT-based systems. If we could abandon '9x +REM support, things would be much easier, but sadly, it is not yet time. +REM Be cautious about editing this, and only add WinNT specific stuff in code that +REM only runs on WinNT. + +if "%HOME%"=="" goto homeDrivePathPre +if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat" + +:homeDrivePathPre +if "%HOMEDRIVE%%HOMEPATH%"=="" goto userProfilePre +if "%HOMEDRIVE%%HOMEPATH%"=="%HOME%" goto userProfilePre +if exist "%HOMEDRIVE%%HOMEPATH%\antrc_pre.bat" call "%HOMEDRIVE%%HOMEPATH%\antrc_pre.bat" + +:userProfilePre +if "%USERPROFILE%"=="" goto alpha +if "%USERPROFILE%"=="%HOME%" goto alpha +if "%USERPROFILE%"=="%HOMEDRIVE%%HOMEPATH%" goto alpha +if exist "%USERPROFILE%\antrc_pre.bat" call "%USERPROFILE%\antrc_pre.bat" + +:alpha + +if "%OS%"=="Windows_NT" @setlocal +if "%OS%"=="WINNT" @setlocal + +if "%ANT_HOME%"=="" goto setDefaultAntHome + +:stripAntHome +if not _%ANT_HOME:~-1%==_\ goto checkClasspath +set ANT_HOME=%ANT_HOME:~0,-1% +goto stripAntHome + +:setDefaultAntHome +rem %~dp0 is expanded pathname of the current script under NT +set ANT_HOME=%~dp0.. + +:checkClasspath +set _USE_CLASSPATH=yes +rem CLASSPATH must not be used if it is equal to "" +if "%CLASSPATH%"=="""" set _USE_CLASSPATH=no +if "%CLASSPATH%"=="" set _USE_CLASSPATH=no + +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= +:setupArgs +if ""%1""=="""" goto doneStart +if ""%1""==""-noclasspath"" goto clearclasspath +set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1 +shift +goto setupArgs + +rem here is there is a -noclasspath in the options +:clearclasspath +set _USE_CLASSPATH=no +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 + +if "%_USE_CLASSPATH%"=="no" goto findAntHome + +:stripClasspath +if not _%CLASSPATH:~-1%==_\ goto findAntHome +set CLASSPATH=%CLASSPATH:~0,-1% +goto stripClasspath + +:findAntHome +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 "%_USE_CLASSPATH%"=="no" goto runAntNoClasspath +:runAntWithClasspath +"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS% +rem Check the error code of the Ant build +if not "%OS%"=="Windows_NT" goto onError +set ANT_ERROR=%ERRORLEVEL% +goto end + +:runAntNoClasspath +"%_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% +rem Check the error code of the Ant build +if not "%OS%"=="Windows_NT" goto onError +set ANT_ERROR=%ERRORLEVEL% +goto end + +:runAntWithJikes + +if not _%JIKESPATH:~-1%==_\ goto checkJikesAndClasspath +set JIKESPATH=%JIKESPATH:~0,-1% +goto runAntWithJikes + +:checkJikesAndClasspath + +if "%_USE_CLASSPATH%"=="no" goto runAntWithJikesNoClasspath + +: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% -cp "%CLASSPATH%" %ANT_CMD_LINE_ARGS% +rem Check the error code of the Ant build +if not "%OS%"=="Windows_NT" goto onError +set ANT_ERROR=%ERRORLEVEL% +goto end + +:runAntWithJikesNoClasspath +"%_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% +rem Check the error code of the Ant build +if not "%OS%"=="Windows_NT" goto onError +set ANT_ERROR=%ERRORLEVEL% +goto end + +:onError +rem Windows 9x way of checking the error code. It matches via brute force. +for %%i in (1 10 100) do set err%%i= +for %%i in (0 1 2) do if errorlevel %%i00 set err100=%%i +if %err100%==2 goto onError200 +if %err100%==0 set err100= +for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%%i0 set err10=%%i +if "%err100%"=="" if %err10%==0 set err10= +:onError1 +for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%err10%%%i set err1=%%i +goto onErrorEnd +:onError200 +for %%i in (0 1 2 3 4 5) do if errorlevel 2%%i0 set err10=%%i +if err10==5 for %%i in (0 1 2 3 4 5) do if errorlevel 25%%i set err1=%%i +if not err10==5 goto onError1 +:onErrorEnd +set ANT_ERROR=%err100%%err10%%err1% +for %%i in (1 10 100) do set err%%i= + +:end +rem bug ID 32069: resetting an undefined env variable changes the errorlevel. +if not "%_JAVACMD%"=="" set _JAVACMD= +if not "%_ANT_CMD_LINE_ARGS%"=="" set ANT_CMD_LINE_ARGS= + +if "%ANT_ERROR%"=="0" goto mainEnd + +goto omega + +:mainEnd + +rem If there were no errors, we run the post script. +if "%OS%"=="Windows_NT" @endlocal +if "%OS%"=="WINNT" @endlocal + +if "%HOME%"=="" goto homeDrivePathPost +if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat" + +:homeDrivePathPost +if "%HOMEDRIVE%%HOMEPATH%"=="" goto userProfilePost +if "%HOMEDRIVE%%HOMEPATH%"=="%HOME%" goto userProfilePost +if exist "%HOMEDRIVE%%HOMEPATH%\antrc_post.bat" call "%HOMEDRIVE%%HOMEPATH%\antrc_post.bat" + +:userProfilePost +if "%USERPROFILE%"=="" goto omega +if "%USERPROFILE%"=="%HOME%" goto omega +if "%USERPROFILE%"=="%HOMEDRIVE%%HOMEPATH%" goto omega +if exist "%USERPROFILE%\antrc_post.bat" call "%USERPROFILE%\antrc_post.bat" + +:omega + +exit /b %ANT_ERROR% diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant.cmd b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant.cmd new file mode 100644 index 00000000..a018e308 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/ant.cmd @@ -0,0 +1,93 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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 diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun new file mode 100644 index 00000000..713762ef --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun @@ -0,0 +1,24 @@ +#! /bin/sh + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://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" "$@" diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun.bat b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun.bat new file mode 100644 index 00000000..b3c5a103 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun.bat @@ -0,0 +1,49 @@ +@echo off + +REM Licensed to the Apache Software Foundation (ASF) under one or more +REM contributor license agreements. See the NOTICE file distributed with +REM this work for additional information regarding copyright ownership. +REM The ASF licenses this file to You under the Apache License, Version 2.0 +REM (the "License"); you may not use this file except in compliance with +REM the License. You may obtain a copy of the License at +REM +REM https://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 "%OS%"=="Windows_NT" @setlocal +if "%OS%"=="WINNT" @setlocal + +if ""%1""=="""" goto runCommand + +rem Change drive and directory to %1 +if "%OS%"=="Windows_NT" goto nt_cd +if "%OS%"=="WINNT" goto nt_cd +cd ""%1"" +goto end_cd +:nt_cd +cd /d ""%1"" +:end_cd +shift + +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_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 +if "%OS%"=="WINNT" @endlocal diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun.pl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun.pl new file mode 100644 index 00000000..e57f3d7d --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antRun.pl @@ -0,0 +1,61 @@ +#!/usr/bin/perl +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://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 +####################################################################### +#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; +} diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antenv.cmd b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antenv.cmd new file mode 100644 index 00000000..6cbccedd --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/antenv.cmd @@ -0,0 +1,98 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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. +*/ + +'@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 diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/complete-ant-cmd.pl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/complete-ant-cmd.pl new file mode 100644 index 00000000..e7472b34 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/complete-ant-cmd.pl @@ -0,0 +1,114 @@ +#!/usr/bin/perl +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://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.pl 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.pl ${args[1]} $1) +# } +# compctl -K ant_complete ant build.sh + +my $cmdLine = "$ENV{'ANT_ARGS'} $ENV{'COMP_LINE'}"; +my $antCmd = $ARGV[0]; +my $word = $ARGV[1]; + +my @completions; +if ($word =~ /^-/) { + list(restrict($word, getArguments())); +} elsif ($cmdLine =~ /-(f|file|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 -file -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|file|buildfile)\s+(\S+)(?!.*\s-(f|file|buildfile)\s)/) { + $buildFile = $2; + } + return () unless (-f $buildFile); + + # Run "ant -projecthelp -debug" to list targets (-debug is required to get + # "Other targets", i.e. targets without a description). Keep a cache of + # results in a cache-file. + my $cacheFile = $buildFile; + $cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|; + if ((!-e $cacheFile) || (-z $cacheFile) || (-M $buildFile) < (-M $cacheFile)) { + open(CACHE, '>' . $cacheFile) || die "can\'t write $cacheFile: $!\n"; + open(HELP, "$antCmd -projecthelp -debug -buildfile '$buildFile'|") || return(); + my %targets; + while (<HELP>) { + # Exclude target names starting with dash, because they cannot be + # specified on the command line. + if (/^\s+\+Target:\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; + +} diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/envset.cmd b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/envset.cmd new file mode 100644 index 00000000..846f85d2 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/envset.cmd @@ -0,0 +1,131 @@ +/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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 diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/lcp.bat b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/lcp.bat new file mode 100644 index 00000000..9ad1b787 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/lcp.bat @@ -0,0 +1,30 @@ +REM +REM Licensed to the Apache Software Foundation (ASF) under one or more +REM contributor license agreements. See the NOTICE file distributed with +REM this work for additional information regarding copyright ownership. +REM The ASF licenses this file to You under the Apache License, Version 2.0 +REM (the "License"); you may not use this file except in compliance with +REM the License. You may obtain a copy of the License at +REM +REM https://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=%LOCALCLASSPATH%;%_CLASSPATHCOMPONENT% diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runant.pl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runant.pl new file mode 100644 index 00000000..81eee8e1 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runant.pl @@ -0,0 +1,132 @@ +#!/usr/bin/perl +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://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. +####################################################################### +# +# 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) { + die "\n\nANT_HOME *MUST* be set!\n\n"; +} + +my $JAVACMD = $ENV{JAVACMD} || "java"; + +my $onnetware = ($^O eq "NetWare"); + +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") || $oncygwin || $onnetware) { + $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}) { + 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) { + $localpath = `cygpath --path --windows $localpath`; + chomp ($localpath); + if ($classpath) { + $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) { + push @ARGS, "-Dcygwin.user.home=\"$CYGHOME\"" +} +push @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS; +push @ARGS, @ARGV; +if ($classpath) { + if ($onnetware) { + # 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; +} diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runant.py b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runant.py new file mode 100644 index 00000000..d4c086d2 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runant.py @@ -0,0 +1,106 @@ +#!/usr/bin/python +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://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 + 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 + + Assumptions: + + - the "java" executable/script is on the command path +""" +import os.path +import 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 'ANT_HOME' in os.environ: + 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 'JAVACMD' not in os.environ: + if 'JAVA_HOME' in os.environ: + if not os.path.exists(os.environ['JAVA_HOME']): + print("Warning: JAVA_HOME is not defined correctly.") + else: + JAVA_HOME = os.environ['JAVA_HOME'] + while JAVA_HOME[0] == JAVA_HOME[-1] == "\"": + JAVA_HOME = JAVA_HOME[1:-1] + JAVACMD = os.path.join(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('Warning: Unable to locate ant-launcher.jar. Expected to find it ' + + 'in %s' % ANT_LIB) + +# Build up standard classpath (LOCALCLASSPATH) +LOCALCLASSPATH = launcher_jar +if 'LOCALCLASSPATH' in os.environ: + LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH'] + +ANT_OPTS = "" +if 'ANT_OPTS' in os.environ: + ANT_OPTS = os.environ['ANT_OPTS'] + +OPTS = "" +if 'JIKESPATH' in os.environ: + OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH'] + +ANT_ARGS = "" +if 'ANT_ARGS' in os.environ: + ANT_ARGS = os.environ['ANT_ARGS'] + +CLASSPATH = "" +if 'CLASSPATH' in os.environ: + CLASSPATH = "-lib " + os.environ['CLASSPATH'] + +while JAVACMD[0] == JAVACMD[-1] == "\"": + JAVACMD = JAVACMD[1:-1] + +# Builds the commandline +cmdline = ('"%s" %s -classpath %s -Dant.home=%s %s ' + + 'org.apache.tools.ant.launch.Launcher %s %s %s') \ + % (JAVACMD, ANT_OPTS, LOCALCLASSPATH, ANT_HOME, OPTS, ANT_ARGS, + CLASSPATH, ' '.join(sys.argv[1:])) + +if debug: + print('\n%s\n\n' % cmdline) +sys.stdout.flush() + +# Run the biniou! +os.system(cmdline) diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runrc.cmd b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runrc.cmd new file mode 100644 index 00000000..47525d21 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/bin/runrc.cmd @@ -0,0 +1,60 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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 diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/changelog.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/changelog.xsl new file mode 100644 index 00000000..6a5904fb --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/changelog.xsl @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<xsl:stylesheet + xmlns:xsl='http://www.w3.org/1999/XSL/Transform' + version='1.0'> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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="https://ant.apache.org/">Apache 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> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-frames-sortby-check.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-frames-sortby-check.xsl new file mode 100644 index 00000000..e7a19b2a --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-frames-sortby-check.xsl @@ -0,0 +1,367 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" + xmlns:lxslt="http://xml.apache.org/xslt" + xmlns:redirect="http://xml.apache.org/xalan/redirect" + extension-element-prefixes="redirect"> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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="'.'"/> + + + + <!-- + Matches the root element of the data and starts the generation. + --> + <xsl:template match="checkstyle"> + <!-- create the sorted.html with the data --> + <redirect:write file="{$output.dir}/sorted.html"> + <xsl:call-template name="sorted.html"/> + </redirect:write> + + <!-- create the stylesheet.css with layout --> + <redirect:write file="{$output.dir}/sorted.css"> + <xsl:call-template name="sorted.css"/> + </redirect:write> + + <!-- create the switch.js for collepsing the data --> + <redirect:write file="{$output.dir}/switch.js"> + <xsl:call-template name="switch.js"/> + </redirect:write> + </xsl:template> + + + + <!-- + Generates the HTML page with the data. + --> + <xsl:template name="sorted.html"> + <html> + <head> + <title>CheckStyle Audit</title> + <script language="JavaScript" src="switch.js" type="text/javascript"></script> + <link rel="stylesheet" type="text/css" href="sorted.css"/> + </head> + <body onload="javascript:openFirst();"> + <h1>CheckStyle Audit</h1> + <p>Designed for use with + <a href='https://checkstyle.org/'>CheckStyle</a> and + <a href='https://ant.apache.org/'>Ant</a>. + </p> + <xsl:apply-templates select="." mode="navigation"/> + <xsl:apply-templates select="." mode="data"/> + </body> + </html> + </xsl:template> + + + + <!-- + Key for detecting duplicate CheckModules + --> + <xsl:key name="module" match="file/error" use="@source"/> + + + + <!-- + Generates the navagation bar. + --> + <xsl:template match="checkstyle" mode="navigation"> + <ul id="navigation"> + <xsl:for-each select="file/error[generate-id() = generate-id(key('module',@source))]"> + <xsl:sort select="@source"/> + <xsl:variable name="last-index"> + <xsl:call-template name="last-index-of"> + <xsl:with-param name="txt" select="@source"/> + <xsl:with-param name="delimiter" select="'.'"></xsl:with-param> + </xsl:call-template> + </xsl:variable> + <li><a href="javascript:change('{@source}');"> + <xsl:value-of select="substring(@source, $last-index+1)"/> + </a></li> + </xsl:for-each> + </ul> + </xsl:template> + + + + <!-- + Generates the data part. + --> + <xsl:template match="checkstyle" mode="data"> + <div id="content"> + <xsl:for-each select="file/error[generate-id() = generate-id(key('module',@source))]"> + <xsl:sort select="@source"/> + <div class="hideable" id="{@source}"> + <xsl:variable name="module" select="@source"/> + <h2><xsl:value-of select="@source"/></h2> + <xsl:call-template name="data"> + <xsl:with-param name="filter" select="$module"/> + </xsl:call-template> + </div> + </xsl:for-each> + </div> + </xsl:template> + + + + <!-- + Generates the content table for the given check module. + @param filter full qualified module name + --> + <xsl:template name="data"> + <xsl:param name="filter"/> + + <table> + <tr> + <th>file</th> + <th>line</th> + <th>severity</th> + <th>message</th> + </tr> + <xsl:for-each select="/checkstyle/file"> + <xsl:choose> + <xsl:when test="error/@source=$filter"> + <xsl:call-template name="data-rows"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="filter" select="$filter"/> + </xsl:call-template> + </xsl:when> + </xsl:choose> + </xsl:for-each> + </table> + </xsl:template> + + + + <!-- + Generates the data rows for the current check module. + Ignores errors in the current file from other modules. + @param node the file with the errors + @param filter full qualified module name + --> + <xsl:template name="data-rows"> + <xsl:param name="node"/> + <xsl:param name="filter"/> + + <xsl:for-each select="$node/error"> + <xsl:choose> + <xsl:when test="@source=$filter"> + <tr> + <!-- Hide the basdir. First char of the result is a path separator so remove that. --> + <td><xsl:value-of select="substring(substring-after($node/@name, $basedir),2)"/></td> + <td><xsl:value-of select="@line"/></td> + <td><xsl:value-of select="@severity"/></td> + <td><xsl:value-of select="@message"/></td> + </tr> + </xsl:when> + </xsl:choose> + </xsl:for-each> + </xsl:template> + + + + <!-- + Generates the CSS with the layout instructions. + Generated so this XSL is the single source of the whole report. + --> + <xsl:template name="sorted.css"> + body { + font:normal 80% arial,helvetica,sanserif; + color: black; + background-color: white; + margin: 0; + padding: 1em; + min-width: 41em; + } + h1 { + font-weight:bold; + font-size:140%; + margin: 0 0 0.7em; + padding: 0.3em; + text-align: center; + background-color: #eee; + border: 2px ridge silver; + } + html<xsl:text disable-output-escaping="yes">></xsl:text>body h1 { + border-color: gray; + } + + ul#navigation { + font-size: 0.83em; + float: left; width: 18em; + margin: 0 0 1.2em; padding: 0; + border: 1px dashed silver; + } + ul#navigation li { + list-style: none; + margin: 0; padding: 0.2em; + } + ul#navigation a { + display: block; + padding: 0.2em; + font-weight: bold; + } + ul#navigation a:link { + color: black; background-color: #eee; + } + ul#navigation a:visited { + color: #666; background-color: #eee; + } + ul#navigation a:hover { + color: red; background-color: white; + } + ul#navigation a:active { + color: white; background-color: gray; + } + + div#content { + margin: 0 1em 1em 16em; + padding: 0 1em; + } + * html div#content { + height: 1em; /* Workaround 3-Pixel-Bug of Internet Explorers */ + } + div#content h2 { + font-size:100%; + font-weight:bold; + background: #525D76; + color: white; + text-decoration: none; + padding: 5px; + margin-right: 2px; + margin-left: 2px; + margin-bottom: 0; + } + div#content p { + font-size: 1em; + margin: 1em 0; + } + table { + width:100%; + border-collapse:collapse; + } + table td, table th { + border:1px solid #000; + padding:3px 7px 2px 7px; + } + table th { + font-weight:bold; + background: #ccc; + color: black; + } + table tr:nth-child(odd) td { + background: #efefef; + } + table tr:nth-child(even) td { + background: #fff; + } + </xsl:template> + + + + <!-- + Generates the JavaScript for the dynamic style. + Generated so this XSL is the single source of the whole report. + --> + <xsl:template name="switch.js"> + /* + * Hides all "hideable" div-containers + */ + function hideAll() { + allElements = document.getElementsByTagName("div"); + for (i = 0; i <xsl:text disable-output-escaping="yes"><</xsl:text> allElements.length; i++) { + if (allElements[i].className=="hideable") { + allElements[i].style.display="none"; + } + } + return; + } + + /* + * Shows one div-container and hides the other. + * @param id id of the element to show + */ + function change(id) { + hideAll(); + e = document.getElementById(id); + if (e.style.display=="none") { + e.style.display=""; + } + window.scrollTo(0, 0); + return; + } + + /* + * Shows only the first data row. + * Used in body:onload so the user could directly see some messages. + */ + function openFirst() { + hideAll(); + for (i = 0; i <xsl:text disable-output-escaping="yes"><</xsl:text> allElements.length; i++) { + if (allElements[i].className=="hideable") { + allElements[i].style.display=""; + return; + } + } + return; + } + </xsl:template> + + + + <!-- + Calculates the index of the last occurence of a substring in a string. + @param txt the whole string in which to search + @delimiter the substring to search + --> + <xsl:template name="last-index-of"> + <xsl:param name="txt"/> + <xsl:param name="remainder" select="$txt"/> + <xsl:param name="delimiter" select="' '"/> + + <xsl:choose> + <xsl:when test="contains($remainder, $delimiter)"> + <xsl:call-template name="last-index-of"> + <xsl:with-param name="txt" select="$txt"/> + <xsl:with-param name="remainder" select="substring-after($remainder, $delimiter)"/> + <xsl:with-param name="delimiter" select="$delimiter"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="lastIndex" select="string-length(substring($txt, 1, string-length($txt)-string-length($remainder)))+1"/> + <xsl:choose> + <xsl:when test="string-length($remainder)=0"> + <xsl:value-of select="string-length($txt)"/> + </xsl:when> + <xsl:when test="$lastIndex>0"> + <xsl:value-of select="($lastIndex - string-length($delimiter))"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="0"/> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-frames.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-frames.xsl new file mode 100644 index 00000000..c0351e22 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-frames.xsl @@ -0,0 +1,299 @@ +<?xml version="1.0"?> +<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" + extension-element-prefixes="redirect"> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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='https://checkstyle.org/'>CheckStyle</a> and + <a href='https://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"/> + + <!-- Convert a windows path '\' to a unix path '/' for further processing. --> + <xsl:variable name="path2" select="translate($path,'\','/')"/> + + + <xsl:if test="contains($path2,'/')"> + <xsl:text>../</xsl:text> + <xsl:call-template name="path"> + <xsl:with-param name="path"><xsl:value-of select="substring-after($path2,'/')"/></xsl:with-param> + </xsl:call-template> + </xsl:if> + <xsl:if test="not(contains($path2,'/')) and not($path2 = '')"> + <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> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-text.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-text.xsl new file mode 100644 index 00000000..65943a3f --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-text.xsl @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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> + diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-xdoc.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-xdoc.xsl new file mode 100644 index 00000000..5f7b3677 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/checkstyle/checkstyle-xdoc.xsl @@ -0,0 +1,130 @@ +<?xml version="1.0"?> +<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"> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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> + diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/coverage-frames.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/coverage-frames.xsl new file mode 100644 index 00000000..c2379de2 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/coverage-frames.xsl @@ -0,0 +1,487 @@ +<?xml version="1.0"?> +<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="," /> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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. + +--> + +<!-- 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="https://ant.apache.org/"> + <img src="https://ant.apache.org/images/group-logo.gif" alt="https://ant.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 Sitraka JProbe and <a href='https://ant.apache.org'>Ant</a>.</td> + </tr> + </table> + <hr size="1"/> +</xsl:template> + +<!-- Page Footer --> +<xsl:template name="pageFooter"> +</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> + + diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/jdepend-frames.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/jdepend-frames.xsl new file mode 100644 index 00000000..d35444b1 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/jdepend-frames.xsl @@ -0,0 +1,485 @@ +<?xml version="1.0"?> +<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"/> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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. + + --> +<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="https://github.com/clarkware/jdepend">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="https://github.com/clarkware/jdepend">JDepend</a> and <a href="https://ant.apache.org">Ant</a>.</td> + </tr> + </table> + <hr size="1"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/jdepend.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/jdepend.xsl new file mode 100644 index 00000000..68aaa2f1 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/jdepend.xsl @@ -0,0 +1,276 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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="https://github.com/clarkware/jdepend">JDepend</a> and <a href="https://ant.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="https://github.com/clarkware/jdepend">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> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-frames-xalan1.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-frames-xalan1.xsl new file mode 100644 index 00000000..bc41a7cd --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-frames-xalan1.xsl @@ -0,0 +1,746 @@ +<?xml version="1.0"?> +<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:string="xalan://java.lang.String" + xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils" + extension-element-prefixes="redirect"> +<xsl:output method="html" indent="yes" encoding="UTF-8"/> +<xsl:decimal-format decimal-separator="." grouping-separator=","/> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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.html"> + <html> + <head> + <title>Standard Output from <xsl:value-of select="@name"/></title> + </head> + <body> + <pre><xsl:value-of select="./system-out"/></pre> + </body> + </html> + </redirect:write> + </xsl:if> + <xsl:if test="string-length(./system-err)!=0"> + <redirect:write file="{$output.dir}/{$package.dir}/{@name}-err.html"> + <html> + <head> + <title>Standard Error from <xsl:value-of select="@name"/></title> + </head> + <body> + <pre><xsl:value-of select="./system-err"/></pre> + </body> + </html> + </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; + doc.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.html</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.html</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="skipCount" select="sum(testsuite/@skipped)"/> + <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>Skipped</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:value-of select="$skipCount" /></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:value-of select="sum($insamepackage/@skipped)" /></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="https://www.junit.org/">JUnit</a> and <a href="https://ant.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>Skipped</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:apply-templates select="@skipped" /></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:when test="skipped"> + <td>Skipped</td> + <td><xsl:apply-templates select="skipped"/></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="string:replaceAll(string:new(string($string)),'\\','\\\\')"/> + <xsl:param name="tmp2" select="string:replaceAll(string:new(string($tmp1)),"'","\\'")"/> + <xsl:param name="tmp3" select="string:replaceAll(string:new(string($tmp2))," ",'\\n')"/> + <xsl:param name="tmp4" select="string:replaceAll(string:new(string($tmp3))," ",'\\r')"/> + <xsl:value-of select="$tmp4"/> +</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/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-frames.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-frames.xsl new file mode 100644 index 00000000..732e0403 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-frames.xsl @@ -0,0 +1,988 @@ +<?xml version="1.0"?> +<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:string="xalan://java.lang.String" + extension-element-prefixes="redirect"> +<xsl:output method="html" indent="yes" encoding="UTF-8"/> +<xsl:decimal-format decimal-separator="." grouping-separator=","/> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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:param name="TITLE">Unit Test Results.</xsl:param> + + +<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> + + <!-- create the all-tests.html at the root --> + <redirect:write file="{$output.dir}/all-tests.html"> + <xsl:apply-templates select="." mode="all.tests"/> + </redirect:write> + + <!-- create the alltests-fails.html at the root --> + <redirect:write file="{$output.dir}/alltests-fails.html"> + <xsl:apply-templates select="." mode="all.tests"> + <xsl:with-param name="type" select="'fails'"/> + </xsl:apply-templates> + </redirect:write> + + <!-- create the alltests-errors.html at the root --> + <redirect:write file="{$output.dir}/alltests-errors.html"> + <xsl:apply-templates select="." mode="all.tests"> + <xsl:with-param name="type" select="'errors'"/> + </xsl:apply-templates> + </redirect:write> + + <!-- create the alltests-skipped.html at the root --> + <redirect:write file="{$output.dir}/alltests-skipped.html"> + <xsl:apply-templates select="." mode="all.tests"> + <xsl:with-param name="type" select="'skipped'"/> + </xsl:apply-templates> + </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}/{@id}_{@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}/{@id}_{@name}-out.html"> + <html> + <head> + <title>Standard Output from <xsl:value-of select="@name"/></title> + </head> + <body> + <pre><xsl:value-of select="./system-out"/></pre> + </body> + </html> + </redirect:write> + </xsl:if> + <xsl:if test="string-length(./system-err)!=0"> + <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-err.html"> + <html> + <head> + <title>Standard Error from <xsl:value-of select="@name"/></title> + </head> + <body> + <pre><xsl:value-of select="./system-err"/></pre> + </body> + </html> + </redirect:write> + </xsl:if> + <xsl:if test="@failures != 0"> + <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-fails.html"> + <xsl:apply-templates select="." mode="class.details"> + <xsl:with-param name="type" select="'fails'"/> + </xsl:apply-templates> + </redirect:write> + </xsl:if> + <xsl:if test="@errors != 0"> + <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-errors.html"> + <xsl:apply-templates select="." mode="class.details"> + <xsl:with-param name="type" select="'errors'"/> + </xsl:apply-templates> + </redirect:write> + </xsl:if> + <xsl:if test="@skipped != 0"> + <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-skipped.html"> + <xsl:apply-templates select="." mode="class.details"> + <xsl:with-param name="type" select="'skipped'"/> + </xsl:apply-templates> + </redirect:write> + </xsl:if> + </xsl:for-each> +</xsl:template> + +<xsl:template name="index.html"> +<html> + <head> + <title><xsl:value-of select="$TITLE"/></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> + +<!-- Create list of all/failed/errored/skipped tests --> +<xsl:template match="testsuites" mode="all.tests"> + <xsl:param name="type" select="'all'"/> + <html> + <xsl:variable name="title"> + <xsl:choose> + <xsl:when test="$type = 'fails'"> + <xsl:text>All Failures</xsl:text> + </xsl:when> + <xsl:when test="$type = 'errors'"> + <xsl:text>All Errors</xsl:text> + </xsl:when> + <xsl:when test="$type = 'skipped'"> + <xsl:text>All Skipped</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>All Tests</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <head> + <title>Unit Test Results: <xsl:value-of select="$title"/></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><xsl:value-of select="$title"/></h2> + + <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> + <xsl:call-template name="testcase.test.header"> + <xsl:with-param name="show.class" select="'yes'"/> + </xsl:call-template> + <!-- + 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:choose> + <xsl:when test="$type = 'fails'"> + <xsl:apply-templates select=".//testcase[failure]" mode="print.test"> + <xsl:with-param name="show.class" select="'yes'"/> + </xsl:apply-templates> + </xsl:when> + <xsl:when test="$type = 'errors'"> + <xsl:apply-templates select=".//testsuite[error]" mode="alltests.error.row"/> + <xsl:apply-templates select=".//testcase[error]" mode="print.test"> + <xsl:with-param name="show.class" select="'yes'"/> + </xsl:apply-templates> + </xsl:when> + <xsl:when test="$type = 'skipped'"> + <xsl:apply-templates select=".//testcase[skipped]" mode="print.test"> + <xsl:with-param name="show.class" select="'yes'"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select=".//testsuite[error]" mode="alltests.error.row"/> + <xsl:apply-templates select=".//testcase" mode="print.test"> + <xsl:with-param name="show.class" select="'yes'"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> + </table> + </body> + </html> +</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:param name="type" select="'all'"/> + <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; + doc.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> + + <xsl:choose> + <xsl:when test="$type = 'fails'"> + <h2>Failures</h2> + </xsl:when> + <xsl:when test="$type = 'errors'"> + <h2>Errors</h2> + </xsl:when> + <xsl:when test="$type = 'skipped'"> + <h2>Skipped</h2> + </xsl:when> + <xsl:otherwise> + <h2>Tests</h2> + </xsl:otherwise> + </xsl:choose> + <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:choose> + <xsl:when test="$type = 'fails'"> + <xsl:apply-templates select="./testcase[failure]" mode="print.test"/> + </xsl:when> + <xsl:when test="$type = 'errors'"> + <xsl:apply-templates select="./testcase[error]" mode="print.test"/> + </xsl:when> + <xsl:when test="$type = 'skipped'"> + <xsl:apply-templates select="./testcase[skipped]" mode="print.test"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="./testcase" mode="print.test"/> + </xsl:otherwise> + </xsl:choose> + </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="@id"/>_<xsl:value-of select="@name"/>-out.html</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="@id"/>_<xsl:value-of select="@name"/>-err.html</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="{@id}_{@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="@id"/>_<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="skippedCount" select="sum(testsuite/@skipped)" /> + <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>Skipped</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><a title="Display all tests" href="all-tests.html"><xsl:value-of select="$testCount"/></a></td> + <td><a title="Display all failures" href="alltests-fails.html"><xsl:value-of select="$failureCount"/></a></td> + <td><a title="Display all errors" href="alltests-errors.html"><xsl:value-of select="$errorCount"/></a></td> + <td><a title="Display all skipped test" href="alltests-skipped.html"><xsl:value-of select="$skippedCount" /></a></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:value-of select="sum($insamepackage/@skipped)" /></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><xsl:value-of select="$TITLE"/></h1> + <table width="100%"> + <tr> + <td align="left"></td> + <td align="right">Designed for use with <a href="https://www.junit.org/">JUnit</a> and <a href="https://ant.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>Skipped</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"> + <xsl:param name="show.class" select="''"/> + <tr valign="top"> + <xsl:if test="boolean($show.class)"> + <th>Class</th> + </xsl:if> + <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 title="Display all tests" href="{@id}_{@name}.html"><xsl:value-of select="@name"/></a></td> + <td><a title="Display all tests" href="{@id}_{@name}.html"><xsl:apply-templates select="@tests"/></a></td> + <td> + <xsl:choose> + <xsl:when test="@errors != 0"> + <a title="Display only errors" href="{@id}_{@name}-errors.html"><xsl:apply-templates select="@errors"/></a> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="@errors"/> + </xsl:otherwise> + </xsl:choose> + </td> + <td> + <xsl:choose> + <xsl:when test="@failures != 0"> + <a title="Display only failures" href="{@id}_{@name}-fails.html"><xsl:apply-templates select="@failures"/></a> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="@failures"/> + </xsl:otherwise> + </xsl:choose> + </td> + <td> + <xsl:choose> + <xsl:when test="@skipped != 0"> + <a title="Display only skipped tests" href="{@id}_{@name}-skipped.html"><xsl:apply-templates select="@skipped"/></a> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="@skipped"/> + </xsl:otherwise> + </xsl:choose> + </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"> + <xsl:param name="show.class" select="''"/> + <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> + <xsl:variable name="class.href"> + <xsl:value-of select="concat(translate(../@package,'.','/'), '/', ../@id, '_', ../@name, '.html')"/> + </xsl:variable> + <xsl:if test="boolean($show.class)"> + <td><a href="{$class.href}"><xsl:value-of select="../@name"/></a></td> + </xsl:if> + <td> + <a name="{@name}"/> + <xsl:choose> + <xsl:when test="boolean($show.class)"> + <a href="{concat($class.href, '#', @name)}"><xsl:value-of select="@name"/></a> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@name"/> + </xsl:otherwise> + </xsl:choose> + </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:when test="skipped"> + <td>Skipped</td> + <td><xsl:apply-templates select="skipped"/></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 skipped, 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> + +<xsl:template match="skipped"> + <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="string:replaceAll(string:new(string($string)),'\\','\\\\')"/> + <xsl:param name="tmp2" select="string:replaceAll(string:new(string($tmp1)),"'","\\'")"/> + <xsl:param name="tmp3" select="string:replaceAll(string:new(string($tmp2))," ",'\\n')"/> + <xsl:param name="tmp4" select="string:replaceAll(string:new(string($tmp3))," ",'\\r')"/> + <xsl:value-of select="$tmp4"/> +</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="splitlimit">32</xsl:param> + <xsl:variable name="secondhalfstartindex" select="(string-length($word)+(string-length($word) mod 2)) div 2"/> + <xsl:variable name="secondhalfword" select="substring($word, $secondhalfstartindex)"/> + <!-- When word is very big, a recursive replace is very heap/stack expensive, so subdivide on line break after middle of string --> + <xsl:choose> + <xsl:when test="(string-length($word) > $splitlimit) and (contains($secondhalfword, '
'))"> + <xsl:variable name="secondhalfend" select="substring-after($secondhalfword, '
')"/> + <xsl:variable name="firsthalflen" select="string-length($word) - string-length($secondhalfword)"/> + <xsl:variable name="firsthalfword" select="substring($word, 1, $firsthalflen)"/> + <xsl:variable name="firsthalfend" select="substring-before($secondhalfword, '
')"/> + <xsl:call-template name="br-replace"> + <xsl:with-param name="word" select="concat($firsthalfword,$firsthalfend)"/> + </xsl:call-template> + <br/> + <xsl:call-template name="br-replace"> + <xsl:with-param name="word" select="$secondhalfend"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="contains($word, '
')"> + <xsl:value-of select="substring-before($word, '
')"/> + <br/> + <xsl:call-template name="br-replace"> + <xsl:with-param name="word" select="substring-after($word, '
')"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$word"/> + </xsl:otherwise> + </xsl:choose> +</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:template match="testsuite" mode="alltests.error.row"> + <xsl:variable name="package.dir"> + <xsl:if test="not(@package = '')"><xsl:value-of select="translate(@package,'.','/')"/><xsl:text>/</xsl:text></xsl:if> + </xsl:variable> + <xsl:variable name="class.href"> + <xsl:value-of select="concat($package.dir, @id, '_', @name, '.html')"/> + </xsl:variable> + <tr class="Error"> + <td><a href="{$class.href}"><xsl:value-of select="@name"/></a></td> + <td colspan="3"><xsl:apply-templates select="./error"/></td> + </tr> +</xsl:template> + +</xsl:stylesheet> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-noframes.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-noframes.xsl new file mode 100644 index 00000000..0d03eb3a --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/junit-noframes.xsl @@ -0,0 +1,513 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" + xmlns:lxslt="http://xml.apache.org/xslt" + xmlns:string="xalan://java.lang.String"> +<xsl:output method="html" indent="yes" encoding="UTF-8" + doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" /> +<xsl:decimal-format decimal-separator="." grouping-separator="," /> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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">Unit Test Results.</xsl:param> + +<!-- + + 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. + +--> +<xsl:template match="testsuites"> + <html> + <head> + <title><xsl:value-of select="$TITLE"/></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; + doc.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="skippedCount" select="sum($testsuites-in-package/@skipped)" /> + <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:value-of select="$skippedCount" /></td> + <td> + <xsl:call-template name="display-time"> + <xsl:with-param name="value" select="$timeCount"/> + </xsl:call-template> + </td> + <td><xsl:value-of select="$testsuites-in-package/@timestamp"/></td> + <td><xsl:value-of select="$testsuites-in-package/@hostname"/></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="skippedCount" select="sum(testsuite/@skipped)" /> + <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>Skipped</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:value-of select="$skippedCount" /></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><xsl:value-of select="$TITLE"/></h1> + <table width="100%"> + <tr> + <td align="left"></td> + <td align="right">Designed for use with <a href='https://www.junit.org'>JUnit</a> and <a href='https://ant.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>Skipped</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>Skipped</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"> + <!-- 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:value-of select="@skipped" /></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="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:when test="skipped"> + <td>Skipped</td> + <td><xsl:apply-templates select="skipped"/></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> + +<xsl:template match="skipped"> + <xsl:call-template name="display-failures"/> +</xsl:template> + +<!-- Style for the error, failure and skipped 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 --> + <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="string:replaceAll(string:new(string($string)),'\\','\\\\')"/> + <xsl:param name="tmp2" select="string:replaceAll(string:new(string($tmp1)),"'","\\'")"/> + <xsl:param name="tmp3" select="string:replaceAll(string:new(string($tmp2))," ",'\\n')"/> + <xsl:param name="tmp4" select="string:replaceAll(string:new(string($tmp3))," ",'\\r')"/> + <xsl:value-of select="$tmp4"/> +</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="splitlimit">32</xsl:param> + <xsl:variable name="secondhalfstartindex" select="(string-length($word)+(string-length($word) mod 2)) div 2"/> + <xsl:variable name="secondhalfword" select="substring($word, $secondhalfstartindex)"/> + <!-- When word is very big, a recursive replace is very heap/stack expensive, so subdivide on line break after middle of string --> + <xsl:choose> + <xsl:when test="(string-length($word) > $splitlimit) and (contains($secondhalfword, '
'))"> + <xsl:variable name="secondhalfend" select="substring-after($secondhalfword, '
')"/> + <xsl:variable name="firsthalflen" select="string-length($word) - string-length($secondhalfword)"/> + <xsl:variable name="firsthalfword" select="substring($word, 1, $firsthalflen)"/> + <xsl:variable name="firsthalfend" select="substring-before($secondhalfword, '
')"/> + <xsl:call-template name="br-replace"> + <xsl:with-param name="word" select="concat($firsthalfword,$firsthalfend)"/> + </xsl:call-template> + <br/> + <xsl:call-template name="br-replace"> + <xsl:with-param name="word" select="$secondhalfend"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="contains($word, '
')"> + <xsl:value-of select="substring-before($word, '
')"/> + <br/> + <xsl:call-template name="br-replace"> + <xsl:with-param name="word" select="substring-after($word, '
')"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$word"/> + </xsl:otherwise> + </xsl:choose> +</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/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/log.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/log.xsl new file mode 100644 index 00000000..9fe60fb1 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/log.xsl @@ -0,0 +1,203 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> +<xsl:output method="html" indent="yes" encoding="US-ASCII"/> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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="https://ant.apache.org/"> + <img src="https://ant.apache.org/images/group-logo.gif" alt="https://ant.apache.org" align="left" border="0"/> + </a> + </td> + <td style="text-align:right;vertical-align:bottom"> + <a href="https://ant.apache.org/">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"/> + + </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> diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/maudit-frames.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/maudit-frames.xsl new file mode 100644 index 00000000..aa36b387 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/maudit-frames.xsl @@ -0,0 +1,502 @@ +<?xml version="1.0"?> +<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="," /> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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. + +--> + +<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="https://docs.oracle.com/javase/specs/">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="https://www.oracle.com/technetwork/java/codeconvtoc-136057.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="https://ant.apache.org/"> + <img src="https://ant.apache.org/images/group-logo.gif" alt="https://ant.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 Webgain QA/Metamata Audit and <a href='https://ant.apache.org'>Ant</a>.</td> + </tr> + </table> + <hr size="1"/> +</xsl:template> + +<!-- Page HEADER --> +<xsl:template name="pageFooter"> +</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> + diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/mmetrics-frames.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/mmetrics-frames.xsl new file mode 100644 index 00000000..02616bd4 --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/mmetrics-frames.xsl @@ -0,0 +1,1023 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" + xmlns:lxslt="http://xml.apache.org/xslt" + xmlns:xalan="http://xml.apache.org/xalan" + xmlns:redirect="org.apache.xalan.lib.Redirect" + exclude-result-prefixes="xalan" + extension-element-prefixes="redirect"> +<xsl:output method="html" indent="yes" encoding="US-ASCII"/> +<xsl:decimal-format decimal-separator="." grouping-separator="," /> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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="output.dir" select="'.'"/> + +<!-- default max value for the metrics --> +<xsl:param name="vg.max" select="10"/> +<xsl:param name="loc.max" select="1000"/> +<xsl:param name="dit.max" select="10"/> +<xsl:param name="noa.max" select="250"/> +<xsl:param name="nrm.max" select="50"/> +<xsl:param name="nlm.max" select="250"/> +<xsl:param name="wmc.max" select="250"/> +<xsl:param name="rfc.max" select="50"/> +<xsl:param name="dac.max" select="10"/> +<xsl:param name="fanout.max" select="10"/> +<xsl:param name="cbo.max" select="15"/> +<xsl:param name="lcom.max" select="10"/> +<xsl:param name="nocl.max" select="10"/> + + +<!-- create a tree fragment to speed up processing --> +<xsl:variable name="doctree.var"> + <xsl:element name="classes"> + <xsl:for-each select=".//class"> + <xsl:element name="class"> + <xsl:attribute name="package"> + <xsl:value-of select="(ancestor::package)[last()]/@name"/> + </xsl:attribute> + <xsl:copy-of select="@*"/> + <xsl:attribute name="name"> + <xsl:apply-templates select="." mode="class.name"/> + </xsl:attribute> + <xsl:copy-of select="method"/> + </xsl:element> + </xsl:for-each> + </xsl:element> +</xsl:variable> + +<xsl:variable name="doctree" select="xalan:nodeset($doctree.var)"/> + +<xsl:template match="metrics"> + + <!-- 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> + + <redirect:write file="{$output.dir}/metrics-reference.html"> + <xsl:call-template name="metrics-reference.html"/> + </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"/> +</xsl:template> + + +<xsl:template match="package"> + <xsl:variable name="package.name" select="@name"/> + <xsl:variable name="package.dir"> + <xsl:if test="not($package.name = 'unnamed package')"><xsl:value-of select="translate($package.name,'.','/')"/></xsl:if> + <xsl:if test="$package.name = 'unnamed package'">.</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 --> + <!-- @bug there will be a problem with inner classes having the same name, it will be overwritten --> + <xsl:for-each select="$doctree/classes/class[@package = current()/@name]"> + <!--Processing <xsl:value-of select="$class.name"/><xsl:text> </xsl:text> --> + <redirect:write file="{$output.dir}/{$package.dir}/{@name}.html"> + <xsl:apply-templates select="." mode="class.details"/> + </redirect:write> + </xsl:for-each> +</xsl:template> + +<!-- little trick to compute the classname for inner and non inner classes --> +<!-- this is all in one line to avoid CRLF in the name --> +<xsl:template match="class" mode="class.name"> + <xsl:if test="parent::class"><xsl:apply-templates select="parent::class" mode="class.name"/>.<xsl:value-of select="@name"/></xsl:if><xsl:if test="not(parent::class)"><xsl:value-of select="@name"/></xsl:if> +</xsl:template> + + +<xsl:template name="index.html"> +<HTML> + <HEAD><TITLE>Metrics 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="metrics-reference.html"> +<html> +<head> +<link title="Style" type="text/css" rel="stylesheet" href="stylesheet.css"/> +</head> +<body style="text-align:justify;"> +<h2>Metrics Reference</h2> +<a href="#V(G)">V(G)</a> | +<a href="#LOC">LOC</a> | +<a href="#DIT">DIT</a> | +<a href="#NOA">NOA</a> | +<a href="#NRM">NRM</a> | +<a href="#NLM">NLM</a> | +<a href="#WMC">WMC</a> | +<a href="#RFC">RFC</a> | +<a href="#DAC">DAC</a> | +<a href="#FANOUT">FANOUT</a> | +<a href="#CBO">CBO</a> | +<a href="#LCOM">LCOM</a> | +<a href="#NOC">NOC</a> + +<a name="V(G)"/> +<h3>Cyclomatic Complexity - V(G)</h3> +This metric was introduced in the 1970s to measure the amount of control +flow complexity or branching complexity in a module such as a +subroutine. It gives the number of paths that may be taken through the +code, and was initially developed to give some measure of the cost of +producing a test case for the module by executing each path. +<p/> +Methods with a high cyclomatic complexity tend to be more difficult to +understand and maintain. In general the more complex the methods of an +application, the more difficult it will be to test it, and this will adversely +affect its reliability. +<p/> +V(G) is a measure of the control flow complexity of a method or +constructor. It counts the number of branches in the body of the method, +defined as: +<ul> +<li>while statements;</li> +<li>if statements;</li> +<li>for statements.</li> +</ul> + +The metric can also be configured to count each case of a switch +statement as well. + +<a name="LOC"/> +<h3>Lines of Code - LOC</h3> + +This is perhaps the simplest of all the metrics to define and compute. +Counting lines has a long history as a software metric dating from before +the rise of structured programming, and it is still in widespread use today. +The size of a method affects the ease with which it can be understood, its +reusability and its maintainability. There are a variety of ways that the size +can be calculated. These include counting all the lines of code, the number +of statements, the blank lines of code, the lines of commentary, and the +lines consisting only of syntax such as block delimiters. +<p/> +This metric can also be used for sizing other constructs as well, for +example, the overall size of a Java class or package can be measured by +counting the number of source lines it consists of. +<p/> +LOC can be used to determine the size of a compilation unit (source file), +class or interface, method, constructor, or field. It can be configured to +ignore: +<ul> +<li>blank lines;</li> +<li>lines consisting only of comments;</li> +<li>lines consisting only of opening and closing braces.</li> +</ul> + +<a name="DIT"/> +<h3>Depth of Inheritance Hierarchy - DIT</h3> + +This metric calculates how far down the inheritance hierarchy a class is +declared. In Java all classes have java.lang.Object as their ultimate +superclass, which is defined to have a depth of 1. So a class that +immediately extends java.lang.Object has a metric value of 2; any of its +subclasses will have a value of 3, and so on. +<p/> +A class that is deep within the tree inherits more methods and state +variables, thereby increasing its complexity and making it difficult to +predict its behavior. It can be harder to understand a system with many +inheritance layers. +<p/> +DIT is defined for classes and interfaces: +<ul> +<li>all interface types have a depth of 1;</li> +<li>the class java.lang.Object has a depth of 1;</li> +<li>all other classes have a depth of 1 + the depth of their super class.</li> +</ul> + +<a name="NOA"/> +<h3>Number of Attributes - NOA</h3> + +The number of distinct state variables in a class serves as one measure of +its complexity. The more state a class represents the more difficult it is to +maintain invariants for it. It also hinders comprehensibility and reuse. +<p/> +In Java, state can be exposed to subclasses through protected fields, which +entails that the subclass also be aware of and maintain any invariants. This +interference with the class's data encapsulation can be a source of defects +and hidden dependencies between the state variables. +<p/> +NOA is defined for classes and interfaces. It counts the number of fields +declared in the class or interface. + +<a name="NRM"/> +<h3>Number of Remote Methods - NRM</h3> + +NRM is defined for classes. A remote method call is defined as an +invocation of a method that is not declared in any of: +<ul> +<li>the class itself;</li> +<li>a class or interface that the class extends or implements;</li> +<li>a class or method that extends the class.</li> +</ul> + +The value is the count of all the remote method calls in all of the methods +and constructors of the class. + +<a name="NLM"/> +<h3>Number of Local Methods - NLM</h3> + +NLM is defined for classes and interfaces. A local method is defined as a +method that is declared in the class or interface. NLM can be configured to +include the local methods of all of the class's superclasses. Methods with +public, protected, package and private visibility can be independently +counted by setting configuration parameters. + +<a name="WMC"/> +<h3>Weighted Methods per Class - WMC</h3> + +If the number of methods in a class can be determined during the design +and modeling phase of a project, it can be used as a predictor of how +much time and effort is needed to develop, debug and maintain it. This +metric can be further refined by incorporating a weighting for the +complexity of each method. The usual weighting is given by the cyclomatic +complexity of the method. +<p/> +The subclasses of a class inherit all of its public and protected methods, +and possibly its package methods as well, so the number of methods a +class has directly impacts the complexity of its subclasses. Classes with +large numbers of methods are often specific to a particular application, +reducing the ability to reuse them. +<p/> +The definition of WMC is based upon NLM, and it provides the same +configuration parameters for counting inherited methods and of varying +visibility. The main difference is that NLM always counts each method as 1, +whereas WMC will weight each method. There are two weighting schemes: +<ul> +<li>V(G) the cyclomatic complexity of the method is used as its weight. + Methods from class files are given a V(G) of 1.</li> +<li>the arity, or the number of parameters of the method are used to + determine the weight.</li> +</ul> + +<a name="RFC"/> +<h3>Response For Class - RFC</h3> + +The response set of a class is the set of all methods that can be invoked as +a result of a message sent to an object of the class. This includes methods +in the class's inheritance hierarchy and methods that can be invoked on +other objects. The Response For Class metric is defined to be size of the +response set for the class. A class which provides a larger response set is +considered to be more complex than one with a smaller response set. +<p/> +One reason for this is that if a method call on a class can result in a large +number of different method calls on the target and other classes, then it +can be harder to test the behavior of the class and debug problems. It will +typically require a deeper understanding of the potential interactions that +objects of the class can have with the rest of the system. +<p/> +RFC is defined as the sum of NLM and NRM for the class. The local methods +include all of the public, protected, package and private methods, but not +methods declared only in a superclass. + +<a name="DAC"/> +<h3>Data Abstraction Coupling - DAC</h3> + +DAC is defined for classes and interfaces. It counts the number of reference +types that are used in the field declarations of the class or interface. The +component types of arrays are also counted. Any field with a type that is +either a supertype or a subtype of the class is not counted. + +<a name="FANOUT"/> +<h3>Fan Out - FANOUT</h3> + +FANOUT is defined for classes and interfaces, constructors and methods. It +counts the number of reference types that are used in: +<ul> +<li>field declarations;</li> +<li>formal parameters and return types;</li> +<li>throws declarations;</li> +<li>local variables.</li> +</ul> + +The component types of arrays are also counted. Any type that is either a +supertype or a subtype of the class is not counted. + +<a name="CBO"/> +<h3>Coupling Between Objects - CBO</h3> + +When one object or class uses another object or class they are said to be +coupled. One major source of coupling is that between a superclass and a +subclass. A coupling is also introduced when a method or field in another +class is accessed, or when an object of another class is passed into or out +of a method invocation. Coupling Between Objects is a measure of the +non-inheritance coupling between two objects. +<p/> +A high value of coupling reduces the modularity of the class and makes +reuse more difficult. The more independent a class is the more likely it is +that it will be possible to reuse it in another part of the system. When a +class is coupled to another class it becomes sensitive to changes in that +class, thereby making maintenance for difficult. In addition, a class that is +overly dependent on other classes can be difficult to understand and test in +isolation. +<p/> +CBO is defined for classes and interfaces, constructors and methods. It +counts the number of reference types that are used in: +<ul> +<li>field declarations</li> +<li>formal parameters and return types</li> +<li>throws declarations</li> +<li>local variables</li> +</ul> + +It also counts: +<ul> +<li>types from which field and method selections are made</li> +</ul> + +The component types of arrays are also counted. Any type that is either a +supertype or a subtype of the class is not counted. + +<a name="LCOM"/> +<h3>Lack of Cohesion Of Methods - LCOM</h3> + +The cohesion of a class is the degree to which its methods are related to +each other. It is determined by examining the pattern of state variable +accesses within the set of methods. If all the methods access the same state +variables then they have high cohesion; if they access disjoint sets of +variables then the cohesion is low. An extreme example of low cohesion +would be if none of the methods accessed any of the state variables. + +If a class exhibits low method cohesion it indicates that the design of the +class has probably been partitioned incorrectly, and could benefit by being +split into more classes with individually higher cohesion. On the other +hand, a high value of cohesion (a low lack of cohesion) implies that the +class is well designed. A cohesive class will tend to provide a high degree +of encapsulation, whereas a lack of cohesion decreases encapsulation and +increases complexity. +<p/> +Another form of cohesion that is useful for Java programs is cohesion +between nested and enclosing classes. A nested class that has very low +cohesion with its enclosing class would probably better designed as a peer +class rather than a nested class. +<p/> +LCOM is defined for classes. Operationally, LCOM takes each pair of +methods in the class and determines the set of fields they each access. If +they have disjoint sets of field accesses increase the count P by one. If they +share at least one field access then increase Q by one. After considering +each pair of methods, +LCOM = (P > Q) ? (P - Q) : 0 +<p/> +Indirect access to fields via local methods can be considered by setting a +metric configuration parameter. + +<a name="NOC"/> +<h3>Number Of Classes - NOC</h3> + +The overall size of the system can be estimated by calculating the number +of classes it contains. A large system with more classes is more complex +than a smaller one because the number of potential interactions between +objects is higher. This reduces the comprehensibility of the system which +in turn makes it harder to test, debug and maintain. +<p/> +If the number of classes in the system can be projected during the initial +design phase of the project it can serve as a base for estimating the total +effort and cost of developing, debugging and maintaining the system. +<p/> +The NOC metric can also usefully be applied at the package and class level +as well as the total system. +<p/> +NOCL is defined for class and interfaces. It counts the number of classes or +interfaces that are declared. This is usually 1, but nested class declarations +will increase this number. +</body> +</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; + } + .Error { + font-weight:bold; color:red; + } + +</xsl:template> + +<!-- print the metrics of the class --> +<xsl:template match="class" mode="class.details"> + <!--xsl:variable name="package.name" select="(ancestor::package)[last()]/@name"/--> + <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 = 'unnamed package')"><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="all.metrics.header"/> + <xsl:apply-templates select="." mode="print.metrics"/> + </table> + + <H3>Methods</H3> + <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> + <xsl:call-template name="method.metrics.header"/> + <xsl:apply-templates select="method" mode="print.metrics"/> + </table> + + <xsl:call-template name="pageFooter"/> + </BODY> + </HTML> +</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%"> + <!-- xalan-nodeset:nodeset for Xalan 1.2.2 --> + <xsl:for-each select="$doctree/classes/class[@package = current()/@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="metrics" mode="all.classes"> + <html> + <head> + <xsl:call-template name="create.stylesheet.link"> + <xsl:with-param name="package.name" select="''"/> + </xsl:call-template> + </head> + <body> + <h2>Classes</h2> + <table width="100%"> + <xsl:for-each select="$doctree/classes/class"> + <xsl:sort select="@name"/> + <xsl:apply-templates select="." mode="all.classes"/> + </xsl:for-each> + </table> + </body> + </html> +</xsl:template> + +<xsl:template match="class" mode="all.classes"> + <xsl:variable name="package.name" select="@package"/> + <xsl:variable name="class.name" select="@name"/> + <tr> + <td nowrap="nowrap"> + <a target="classFrame"> + <xsl:attribute name="href"> + <xsl:if test="not($package.name='unnamed package')"> + <xsl:value-of select="translate($package.name,'.','/')"/><xsl:text>/</xsl:text> + </xsl:if> + <xsl:value-of select="$class.name"/><xsl:text>.html</xsl:text> + </xsl:attribute> + <xsl:value-of select="$class.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="metrics" mode="all.packages"> + <html> + <head> + <xsl:call-template name="create.stylesheet.link"> + <xsl:with-param name="package.name" select="./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=".//package[not(./@name = 'unnamed package')]" mode="all.packages"> + <xsl:sort select="@name"/> + </xsl:apply-templates> + </table> + </body> + </html> +</xsl:template> + +<xsl:template match="package" mode="all.packages"> + <tr> + <td nowrap="nowrap"> + <a href="{translate(@name,'.','/')}/package-summary.html" target="classFrame"> + <xsl:value-of select="@name"/> + </a> + </td> + </tr> +</xsl:template> + + +<xsl:template match="metrics" mode="overview.packages"> + <html> + <head> + <xsl:call-template name="create.stylesheet.link"> + <xsl:with-param name="package.name" select="''"/> + </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><a href="metrics-reference.html#V(G)">V(G)</a></th> + <th><a href="metrics-reference.html#LOC">LOC</a></th> + <th><a href="metrics-reference.html#DIT">DIT</a></th> + <th><a href="metrics-reference.html#NOA">NOA</a></th> + <th><a href="metrics-reference.html#NRM">NRM</a></th> + <th><a href="metrics-reference.html#NLM">NLM</a></th> + <th><a href="metrics-reference.html#WMC">WMC</a></th> + <th><a href="metrics-reference.html#RFC">RFC</a></th> + <th><a href="metrics-reference.html#DAC">DAC</a></th> + <th><a href="metrics-reference.html#FANOUT">FANOUT</a></th> + <th><a href="metrics-reference.html#CBO">CBO</a></th> + <th><a href="metrics-reference.html#LCOM">LCOM</a></th> + <th><a href="metrics-reference.html#NOCL">NOCL</a></th> + </tr> + <xsl:apply-templates select="." mode="print.metrics"/> + </table> + <table border="0" width="100%"> + <tr> + <td style="text-align: justify;"> + Note: Metrics evaluate the quality of software by analyzing the program source and quantifying + various kind of complexity. Complexity is a common source of problems and defects in software. + High complexity makes it more difficult to develop, understand, maintain, extend, test and debug + a program. + <p/> + The primary use of metrics is to focus your attention on those parts of code that potentially are + complexity hot spots. Once the complex areas your program have been uncovered, you can take remedial + actions. + For additional information about metrics and their meaning, please consult + Metamata Metrics manual. + </td> + </tr> + </table> + + <h3>Packages</h3> + <table border="0" cellpadding="5" cellspacing="2" width="100%"> + <xsl:call-template name="all.metrics.header"/> + <xsl:for-each select=".//package[not(@name = 'unnamed package')]"> + <xsl:sort select="@name" order="ascending"/> + <xsl:apply-templates select="." mode="print.metrics"/> + </xsl:for-each> + </table> + <!-- @bug there could some classes at this level (classes in unnamed package) --> + <xsl:call-template name="pageFooter"/> + </body> + </html> +</xsl:template> + +<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> + <body onload="open('package-frame.html','classListFrame')"> + <xsl:call-template name="pageHeader"/> + <!-- create an anchor to this package name --> + <h3>Package <xsl:value-of select="@name"/></h3> + + <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> + <xsl:call-template name="all.metrics.header"/> + <xsl:apply-templates select="." mode="print.metrics"/> + </table> + + <table border="0" width="100%"> + <tr> + <td style="text-align: justify;"> + Note: Metrics evaluate the quality of software by analyzing the program source and quantifying + various kind of complexity. Complexity is a common source of problems and defects in software. + High complexity makes it more difficult to develop, understand, maintain, extend, test and debug + a program. + <p/> + The primary use of metrics is to focus your attention on those parts of code that potentially are + complexity hot spots. Once the complex areas your program have been uncovered, you can take remedial + actions. + For additional information about metrics and their meaning, please consult + Metamata Metrics manual. + </td> + </tr> + </table> + + <xsl:variable name="classes-in-package" select="$doctree/classes/class[@package = current()/@name]"/> + <xsl:if test="count($classes-in-package) > 0"> + <H3>Classes</H3> + <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> + <xsl:call-template name="all.metrics.header"/> + <xsl:for-each select="$classes-in-package"> + <xsl:sort select="@name"/> + <xsl:apply-templates select="." mode="print.metrics"/> + </xsl:for-each> + </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="https://ant.apache.org/"> + <img src="https://ant.apache.org/images/group-logo.gif" alt="https://ant.apache.org" align="left" border="0"/> + </a> + </td> + <td style="text-align:right"><h2>Source Code Metrics</h2></td> + </tr> + <tr> + <td style="text-align:right">Designed for use with Webgain QA/Metamata Metrics and <a href='https://ant.apache.org'>Ant</a>.</td> + </tr> + </table> + <hr size="1"/> +</xsl:template> + +<!-- Page Footer --> +<xsl:template name="pageFooter"> +</xsl:template> + +<!-- class header --> +<xsl:template name="all.metrics.header"> + <tr> + <th width="80%">Name</th> + <th nowrap="nowrap">V(G)</th> + <th>LOC</th> + <th>DIT</th> + <th>NOA</th> + <th>NRM</th> + <th>NLM</th> + <th>WMC</th> + <th>RFC</th> + <th>DAC</th> + <th>FANOUT</th> + <th>CBO</th> + <th>LCOM</th> + <th>NOCL</th> + </tr> +</xsl:template> + +<!-- method header --> +<xsl:template name="method.metrics.header"> + <tr> + <th width="80%">Name</th> + <th nowrap="nowrap">V(G)</th> + <th>LOC</th> + <th>FANOUT</th> + <th>CBO</th> + </tr> +</xsl:template> + +<!-- method information --> +<xsl:template match="method" mode="print.metrics"> + <tr> + <xsl:call-template name="alternate-row"/> + <td><xsl:apply-templates select="@name"/></td> + <td><xsl:apply-templates select="@vg"/></td> + <td><xsl:apply-templates select="@loc"/></td> + <td><xsl:apply-templates select="@fanout"/></td> + <td><xsl:apply-templates select="@cbo"/></td> + </tr> +</xsl:template> + +<!-- class information --> +<xsl:template match="class" mode="print.metrics"> + <tr> + <xsl:call-template name="alternate-row"/> + <td><a href="{@name}.html"><xsl:value-of select="@name"/></a></td> + <td><xsl:apply-templates select="@vg"/></td> + <td><xsl:apply-templates select="@loc"/></td> + <td><xsl:apply-templates select="@dit"/></td> + <td><xsl:apply-templates select="@noa"/></td> + <td><xsl:apply-templates select="@nrm"/></td> + <td><xsl:apply-templates select="@nlm"/></td> + <td><xsl:apply-templates select="@wmc"/></td> + <td><xsl:apply-templates select="@rfc"/></td> + <td><xsl:apply-templates select="@dac"/></td> + <td><xsl:apply-templates select="@fanout"/></td> + <td><xsl:apply-templates select="@cbo"/></td> + <td><xsl:apply-templates select="@lcom"/></td> + <td><xsl:apply-templates select="@nocl"/></td> + </tr> +</xsl:template> + +<xsl:template match="file|package" mode="print.metrics"> + <tr> + <xsl:call-template name="alternate-row"/> + <td> + <a href="{translate(@name,'.','/')}/package-summary.html" target="classFrame"> + <xsl:value-of select="@name"/> + </a> + </td> + <td><xsl:apply-templates select="@vg"/></td> + <td><xsl:apply-templates select="@loc"/></td> + <td><xsl:apply-templates select="@dit"/></td> + <td><xsl:apply-templates select="@noa"/></td> + <td><xsl:apply-templates select="@nrm"/></td> + <td><xsl:apply-templates select="@nlm"/></td> + <td><xsl:apply-templates select="@wmc"/></td> + <td><xsl:apply-templates select="@rfc"/></td> + <td><xsl:apply-templates select="@dac"/></td> + <td><xsl:apply-templates select="@fanout"/></td> + <td><xsl:apply-templates select="@cbo"/></td> + <td><xsl:apply-templates select="@lcom"/></td> + <td><xsl:apply-templates select="@nocl"/></td> + </tr> +</xsl:template> + +<xsl:template match="metrics" mode="print.metrics"> + <tr> + <xsl:call-template name="alternate-row"/> + <!-- the global metrics is the top package metrics --> + <td><xsl:apply-templates select="./package/@vg"/></td> + <td><xsl:apply-templates select="./package/@loc"/></td> + <td><xsl:apply-templates select="./package/@dit"/></td> + <td><xsl:apply-templates select="./package/@noa"/></td> + <td><xsl:apply-templates select="./package/@nrm"/></td> + <td><xsl:apply-templates select="./package/@nlm"/></td> + <td><xsl:apply-templates select="./package/@wmc"/></td> + <td><xsl:apply-templates select="./package/@rfc"/></td> + <td><xsl:apply-templates select="./package/@dac"/></td> + <td><xsl:apply-templates select="./package/@fanout"/></td> + <td><xsl:apply-templates select="./package/@cbo"/></td> + <td><xsl:apply-templates select="./package/@lcom"/></td> + <td><xsl:apply-templates select="./package/@nocl"/></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> + + +<!-- how to display the metrics with their max value --> +<!-- @todo the max values must be external to the xsl --> + + <xsl:template match="@vg"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$vg.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@loc"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$loc.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@dit"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$dit.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@noa"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$noa.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@nrm"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$nrm.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@nlm"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$nlm.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@wmc"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$wmc.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@rfc"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$rfc.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@dac"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$dac.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@fanout"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$fanout.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@cbo"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$cbo.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@lcom"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$lcom.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template match="@nocl"> + <xsl:call-template name="display-value"> + <xsl:with-param name="value" select="current()"/> + <xsl:with-param name="max" select="$nocl.max"/> + </xsl:call-template> + </xsl:template> + + <xsl:template name="display-value"> + <xsl:param name="value"/> + <xsl:param name="max"/> + <xsl:if test="$value > $max"> + <xsl:attribute name="class">Error</xsl:attribute> + </xsl:if> + <xsl:value-of select="$value"/> + </xsl:template> + +</xsl:stylesheet> + diff --git a/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/tagdiff.xsl b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/tagdiff.xsl new file mode 100644 index 00000000..42c9569e --- /dev/null +++ b/apache/ant/org.apache.ant_1.10.11/src/main/resources/etc/tagdiff.xsl @@ -0,0 +1,179 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://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> + <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> + </head> + <body link="#000000" alink="#000000" vlink="#000000" text="#000000"> + <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="https://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> + + <!-- change to entries select to address bug #36827 --> + <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)][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:if test="count(prevrevision) > 0"> <xsl:value-of select="prevrevision"/> --> </xsl:if> <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> diff --git a/apache/ant/pom.xml b/apache/ant/pom.xml index ae6be56f..fe1dd0cb 100644 --- a/apache/ant/pom.xml +++ b/apache/ant/pom.xml @@ -15,7 +15,7 @@ <name>Eclipse Orbit :: Ant Recipes</name> <modules> - <module>org.apache.ant_1.10.10</module> + <module>org.apache.ant_1.10.11</module> </modules> </project> diff --git a/releng/aggregationfeature/feature.xml b/releng/aggregationfeature/feature.xml index 8a14906e..a5e6b833 100644 --- a/releng/aggregationfeature/feature.xml +++ b/releng/aggregationfeature/feature.xml @@ -65,7 +65,7 @@ <plugin id="com.jcraft.jsch" version="0.1.55.qualifier"/> - <plugin id="org.apache.ant" version="1.10.10.qualifier"/> + <plugin id="org.apache.ant" version="1.10.11.qualifier"/> <plugin id="org.apache.batik.anim" version="1.9.1.qualifier"/> <plugin id="org.apache.batik.bridge" version="1.9.1.qualifier"/> |
