You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(9) |
Jun
(30) |
Jul
(74) |
Aug
(2) |
Sep
(91) |
Oct
(27) |
Nov
(77) |
Dec
(33) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(175) |
Feb
(133) |
Mar
(94) |
Apr
(65) |
May
(108) |
Jun
(100) |
Jul
(46) |
Aug
(19) |
Sep
(145) |
Oct
(289) |
Nov
(134) |
Dec
(211) |
2003 |
Jan
(106) |
Feb
(269) |
Mar
(106) |
Apr
(202) |
May
(300) |
Jun
(83) |
Jul
(70) |
Aug
(217) |
Sep
(183) |
Oct
(292) |
Nov
(324) |
Dec
(117) |
2004 |
Jan
(318) |
Feb
(151) |
Mar
(64) |
Apr
(195) |
May
(279) |
Jun
(263) |
Jul
(280) |
Aug
(167) |
Sep
(91) |
Oct
(175) |
Nov
(34) |
Dec
(38) |
2005 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(5) |
2006 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(6) |
2007 |
Jan
(2) |
Feb
(11) |
Mar
(1) |
Apr
(33) |
May
(13) |
Jun
(1) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2008 |
Jan
(191) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
(33) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(14) |
2009 |
Jan
(39) |
Feb
(6) |
Mar
(22) |
Apr
(31) |
May
(78) |
Jun
(74) |
Jul
(39) |
Aug
(22) |
Sep
(16) |
Oct
(32) |
Nov
(4) |
Dec
(5) |
2010 |
Jan
(1) |
Feb
|
Mar
(33) |
Apr
(45) |
May
(66) |
Jun
(63) |
Jul
(32) |
Aug
(56) |
Sep
(19) |
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(1) |
2016 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
From: Xuan B. <med...@us...> - 2008-01-25 19:21:35
|
Update of /cvsroot/tm4j/tm4j In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860 Modified Files: build.sh build.xml Log Message: Update 4 years old ant. Index: build.sh =================================================================== RCS file: /cvsroot/tm4j/tm4j/build.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** build.sh 9 Feb 2002 19:25:03 -0000 1.4 --- build.sh 25 Jan 2008 19:21:07 -0000 1.5 *************** *** 1,9 **** #!/bin/sh ! for f in lib/*.jar; do export CLASSPATH=$f:$CLASSPATH; done # Make "all" target if no arguments given; otherwise use first argument as target ! test -z $1 && target=all || target=$1 ! export ANT_HOME=`dirname $0` ! . $ANT_HOME/bin/ant $target --- 1,15 ---- #!/bin/sh ! export CLASSPATH="" ! ! if false; then ! for f in lib/*.jar; do ! export CLASSPATH="$f:$CLASSPATH"; ! done ! fi # Make "all" target if no arguments given; otherwise use first argument as target ! test -z "$1" && target=all || target="$1" ! export ANT_HOME="`dirname $0`/lib/ant/apache-ant-1.7.0" ! . "$ANT_HOME"/bin/ant "$target" Index: build.xml =================================================================== RCS file: /cvsroot/tm4j/tm4j/build.xml,v retrieving revision 1.145 retrieving revision 1.146 diff -C2 -d -r1.145 -r1.146 *** build.xml 23 Jan 2008 22:39:09 -0000 1.145 --- build.xml 25 Jan 2008 19:21:07 -0000 1.146 *************** *** 18,21 **** --- 18,22 ---- <include name="*.jar"/> <include name="build/*.jar"/> + <include name="jpox/*.jar"/> </fileset> <pathelement location="build/classes"/> *************** *** 53,56 **** --- 54,64 ---- </path> + <path id="jpox.project.classpath"> + <path refid="project.class.path"/> + <fileset dir="lib/jpox"> + <include name="*.jar"/> + </fileset> + </path> + <property name="testdir" location="resource/tests"/> *************** *** 735,742 **** --- 743,753 ---- <exclude name="org/tm4j/topicmap/utils/TopicMapDoclet.java"/> <exclude name="org/tm4j/topicmap/**/test/*.java"/> + <include name="org/tm4j/topicmap/utils/ctm/**/*.java"/> </patternset> <patternset id="tm4j.resources"> <include name="org/tm4j/topicmap/xtm1.dtd"/> + <include name="org/tm4j/topicmap/utils/ctm/parser/sablecc3/parser/parser.dat"/> + <include name="org/tm4j/topicmap/utils/ctm/parser/sablecc3/lexer/lexer.dat"/> </patternset> *************** *** 845,848 **** --- 856,878 ---- </target> + <target name="enhance" depends="init"> + <copy todir="${classdir}"> + <fileset dir="src"> + <include name="**/package.jdo"/> + </fileset> + </copy> + + <!-- define the task enhancer --> + <taskdef name="enhancer" classname="org.jpox.enhancer.tools.EnhancerTask"> + <classpath refid="project.class.path"/> + </taskdef> + + <!-- enhance --> + <!-- <enhancer classpathref="compile.classpath" dir="${classdir}" verbose="true"> --> + <enhancer classpathref="project.class.path" dir="${classdir}" verbose="true" enhancerName="ASM" > + <!-- <sysproperty key="log4j.configuration" value="file:log4j.properties"/> --> + </enhancer> + </target> + <target name="tm4j-clean" depends="init,tm4j-net-clean"> <description> |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/lib In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/lib Added Files: README ant-1.7.0.pom ant-1.7.0.pom.md5 ant-1.7.0.pom.sha1 ant-antlr-1.7.0.pom ant-antlr-1.7.0.pom.md5 ant-antlr-1.7.0.pom.sha1 ant-antlr.jar ant-apache-bcel-1.7.0.pom ant-apache-bcel-1.7.0.pom.md5 ant-apache-bcel-1.7.0.pom.sha1 ant-apache-bcel.jar ant-apache-bsf-1.7.0.pom ant-apache-bsf-1.7.0.pom.md5 ant-apache-bsf-1.7.0.pom.sha1 ant-apache-bsf.jar ant-apache-log4j-1.7.0.pom ant-apache-log4j-1.7.0.pom.md5 ant-apache-log4j-1.7.0.pom.sha1 ant-apache-log4j.jar ant-apache-oro-1.7.0.pom ant-apache-oro-1.7.0.pom.md5 ant-apache-oro-1.7.0.pom.sha1 ant-apache-oro.jar ant-apache-regexp-1.7.0.pom ant-apache-regexp-1.7.0.pom.md5 ant-apache-regexp-1.7.0.pom.sha1 ant-apache-regexp.jar ant-apache-resolver-1.7.0.pom ant-apache-resolver-1.7.0.pom.md5 ant-apache-resolver-1.7.0.pom.sha1 ant-apache-resolver.jar ant-commons-logging-1.7.0.pom ant-commons-logging-1.7.0.pom.md5 ant-commons-logging-1.7.0.pom.sha1 ant-commons-logging.jar ant-commons-net-1.7.0.pom ant-commons-net-1.7.0.pom.md5 ant-commons-net-1.7.0.pom.sha1 ant-commons-net.jar ant-jai-1.7.0.pom ant-jai-1.7.0.pom.md5 ant-jai-1.7.0.pom.sha1 ant-jai.jar ant-javamail-1.7.0.pom ant-javamail-1.7.0.pom.md5 ant-javamail-1.7.0.pom.sha1 ant-javamail.jar ant-jdepend-1.7.0.pom ant-jdepend-1.7.0.pom.md5 ant-jdepend-1.7.0.pom.sha1 ant-jdepend.jar ant-jmf-1.7.0.pom ant-jmf-1.7.0.pom.md5 ant-jmf-1.7.0.pom.sha1 ant-jmf.jar ant-jsch-1.7.0.pom ant-jsch-1.7.0.pom.md5 ant-jsch-1.7.0.pom.sha1 ant-jsch.jar ant-junit-1.7.0.pom ant-junit-1.7.0.pom.md5 ant-junit-1.7.0.pom.sha1 ant-junit.jar ant-launcher-1.7.0.pom ant-launcher-1.7.0.pom.md5 ant-launcher-1.7.0.pom.sha1 ant-launcher.jar ant-netrexx-1.7.0.pom ant-netrexx-1.7.0.pom.md5 ant-netrexx-1.7.0.pom.sha1 ant-netrexx.jar ant-nodeps-1.7.0.pom ant-nodeps-1.7.0.pom.md5 ant-nodeps-1.7.0.pom.sha1 ant-nodeps.jar ant-parent-1.7.0.pom ant-parent-1.7.0.pom.md5 ant-parent-1.7.0.pom.sha1 ant-starteam-1.7.0.pom ant-starteam-1.7.0.pom.md5 ant-starteam-1.7.0.pom.sha1 ant-starteam.jar ant-stylebook-1.7.0.pom ant-stylebook-1.7.0.pom.md5 ant-stylebook-1.7.0.pom.sha1 ant-stylebook.jar ant-swing-1.7.0.pom ant-swing-1.7.0.pom.md5 ant-swing-1.7.0.pom.sha1 ant-swing.jar ant-testutil-1.7.0.pom ant-testutil-1.7.0.pom.md5 ant-testutil-1.7.0.pom.sha1 ant-testutil.jar ant-trax-1.7.0.pom ant-trax-1.7.0.pom.md5 ant-trax-1.7.0.pom.sha1 ant-trax.jar ant-weblogic-1.7.0.pom ant-weblogic-1.7.0.pom.md5 ant-weblogic-1.7.0.pom.sha1 ant-weblogic.jar ant.jar libraries.properties xercesImpl.jar xml-apis.jar Log Message: Update 4 years old ant. --- NEW FILE: ant-netrexx.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-apache-bcel-1.7.0.pom.md5 --- 7cb4be931a57998d31b68098c5d6053e --- NEW FILE: ant-jsch-1.7.0.pom.md5 --- 1c1fdd8639840ec7c3b2744248b1fe29 --- NEW FILE: ant-parent-1.7.0.pom.md5 --- bbb2b5106cdfce3220529d77200085cc --- NEW FILE: ant-javamail-1.7.0.pom.md5 --- 0678ec4770bd91b32f80b5fb457b7634 --- NEW FILE: xercesImpl.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-parent-1.7.0.pom.sha1 --- 9d12c84639c58e88a028235eaad5b801f6ba03ec --- NEW FILE: ant-swing-1.7.0.pom.sha1 --- 7c034ad0657f2e68c558b6855b0176bd03b1340e --- NEW FILE: ant-jdepend-1.7.0.pom.sha1 --- 0277822a1cac5cdabccefcb0473b6d31c1780293 --- NEW FILE: ant-commons-logging-1.7.0.pom.md5 --- aaed374c26114170486b2b60bf987739 --- NEW FILE: ant-jai.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-apache-log4j.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-nodeps-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-nodeps</artifactId> <version>1.7.0</version> <description>contains all the optional tasks and types which do not have particular dependencies</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <!-- the implementation jar of the xerces jar will be used by ant to parse XML files, particularly the build files, if the JDK does not provide a parser xercesImpl.jar is provided with ant --> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.8.1</version> <optional>true</optional> <scope>runtime</scope> </dependency> <dependency> <!-- xml-apis contains the org.w3c.dom package since ant is using DOM APIS to parse the XML build file and do other XML related activities xml-apis is a compile time dependency a version of xml-apis.jar is delivered with ant --> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.3.03</version> <optional>true</optional> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/taskdefs/optional/**</include> <include>org/apache/tools/ant/types/optional/**</include> <include>org/apache/tools/ant/util/depend/*</include> <include>org/apache/tools/ant/util/optional/**</include> <include>org/apache/tools/ant/util/java15/**</include> <include>org/apache/tools/ant/util/regexp/Jdk14Regexp*</include> </includes> <excludes> <exclude>org/apache/tools/ant/taskdefs/optional/TraXLiaison*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/junit/**</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/perforce/**</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/Script*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/script/**</exclude> <exclude>org/apache/tools/ant/util/optional/Script*</exclude> <exclude>org/apache/tools/ant/types/optional/*Script*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/StyleBook*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/NetRexxC*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/ejb/Ejbc*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/ejb/DDCreator*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/ejb/WLRun*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/ejb/WLStop*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/net/Telnet*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/net/RExec*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/scm/AntStarTeam*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/starteam/*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/ANTLR*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/sound/*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/image/*</exclude> <exclude>org/apache/tools/ant/types/optional/image/*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/jdepend/*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/splash/*</exclude> <exclude>org/apache/tools/ant/taskdefs/optional/ssh/*</exclude> </excludes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/ant-nodeps/classes</outputDirectory> <testOutputDirectory>../../../../target/ant-nodeps/testcases</testOutputDirectory> <directory>../../../../target/ant-nodeps</directory> </build> </project> --- NEW FILE: ant-apache-oro.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-weblogic-1.7.0.pom.md5 --- 830bea6ea96362992a71a90306839d94 --- NEW FILE: ant-starteam.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-starteam-1.7.0.pom.md5 --- 5ec8ae3d5a4cb08d9137b87306dff579 --- NEW FILE: ant-jai-1.7.0.pom.md5 --- bfe805489b52e51ce3a929b916a7b780 --- NEW FILE: ant-trax.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-junit.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: libraries.properties --- #this file declares the libraries for use in #a given release of the components #if you change this, change the checksum to match m2.version=2.0.4 m2.url=http://ibiblio.org/maven2/ m2.artifact-name=maven-artifact-ant m2.jar.name=${m2.artifact-name}-${m2.version}-dep.jar #this is the URL of the antlib library, that is pulled down for everything else. m2.antlib.url=${m2.url}/org/apache/maven/${m2.artifact-name}/${m2.version}/${m2.jar.name} #this is the sha1 checksum of the artifact m2.sha1.checksum=4e7ddfdb91600e9b59bb965ff8eef2f06015df50 #versions of different libraries. Please keep in alphabetical order, except #when a specific dependency forces them to be out-of-order antlr.version=2.7.2 bcel.version=5.1 bsf.version=2.4.0 bsh.version=2.0b4 bsh-core.version=${bsh.version} commons-net.version=1.4.0 commons-logging.version=1.0.4 commons-logging-api.version=${commons-logging.version} jdepend.version=2.7 jruby.version=0.8.3 junit.version=3.8.2 jsch.version=0.1.29 jython.version=2.1 log4j.version=1.2.13 #js is the javascript implementation of the rhino project js.version=1.6R3 oro.version=2.0.8 regexp.version=1.3 which.version=1.0 xerces.version=2.8.1 xercesImpl.version=${xerces.version} #should be in sync w/ xerces, but not in the maven repository #xmlParserAPIs.version=${xerces.version} xmlParserAPIs.version=2.6.1 xalan.version=2.7.0 xml-resolver.version=1.1 #paired jacl.version=1.2.6 tcljava.version=${jacl.version} --- NEW FILE: ant-jmf.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-apache-regexp-1.7.0.pom.sha1 --- 78dc4fee641b98ebdf085030dacd311c5217e2d9 --- NEW FILE: ant-jdepend-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-jdepend</artifactId> <version>1.7.0</version> <description>task jdepend invoking the jdepend parser. There is also a version 2.9.1 of the jdepend parser available on the maven repository</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>jdepend</groupId> <artifactId>jdepend</artifactId> <version>2.7</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant//taskdefs/optional/jdepend/*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-jmf-1.7.0.pom.md5 --- ce526c923382726fc57f5f7afaa69952 --- NEW FILE: ant-nodeps.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-swing-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-swing</artifactId> <version>1.7.0</version> <description>a listener and a splash task based on Swing</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant//taskdefs/optional/splash/*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-apache-bsf-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-apache-bsf</artifactId> <version>1.7.0</version> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>bsf</groupId> <artifactId>bsf</artifactId> <version>2.4.0</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/taskdefs/optional/Script*</include> <include>org/apache/tools/ant/taskdefs/optional/script/**</include> <include>org/apache/tools/ant/types/optional/*Script*</include> <include>org/apache/tools/ant/util/Script*</include> <include>org/apache/tools/ant/util/optional/Script*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-jmf-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-jmf</artifactId> <version>1.7.0</version> <description>contains the sound task and a soundplayer listener download the dependency from http://java.sun.com/products/java-media/jmf/</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.media</groupId> <artifactId>jmf</artifactId> <version>2.1.1e</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant//taskdefs/optional/sound/*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-apache-resolver-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-apache-resolver</artifactId> <version>1.7.0</version> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>xml-resolver</groupId> <artifactId>xml-resolver</artifactId> <version>1.1</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/types/resolver/**</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-stylebook-1.7.0.pom.md5 --- 2a18952408edd1bab40f2eb10774e438 --- NEW FILE: ant-jmf-1.7.0.pom.sha1 --- c50b01f6634863439f9877c607807f5ccaba4a41 --- NEW FILE: ant-apache-log4j-1.7.0.pom.sha1 --- b459c5796ed619217152fb18b41c17725956cd0c --- NEW FILE: ant-apache-resolver-1.7.0.pom.md5 --- 22f74f57403ad26242704320476cdfd2 --- NEW FILE: ant-swing.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-launcher-1.7.0.pom.sha1 --- d628e808d19cf5f6d78d4c67f22ffe99d9c19a2a --- NEW FILE: ant-weblogic-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-weblogic</artifactId> <version>1.7.0</version> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.bea</groupId> <artifactId>weblogicclasses</artifactId> <version>5.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.bea</groupId> <artifactId>weblogic</artifactId> <version>8.1.3.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant//taskdefs/optional/ejb/Ejbc*</include> <include>org/apache/tools/ant//taskdefs/optional/ejb/DDCreator*</include> <include>org/apache/tools/ant//taskdefs/optional/ejb/WLRun*</include> <include>org/apache/tools/ant//taskdefs/optional/ejb/WLStop*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-starteam-1.7.0.pom.sha1 --- 0af55275712ec4bd9fe1264e4e861a38bca63c12 --- NEW FILE: ant-commons-logging-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-commons-logging</artifactId> <version>1.7.0</version> <description>Ant Listener based on commons-logging</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging-api</artifactId> <version>1.0.4</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/tlistener/CommonsLoggingListener*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-jdepend-1.7.0.pom.md5 --- 064f0e995accca15150223c1a0ae8666 --- NEW FILE: ant-apache-regexp-1.7.0.pom.md5 --- 5167f94dce6cc78ce5e2b39e37dee499 --- NEW FILE: ant-netrexx-1.7.0.pom.sha1 --- c70e518b904c44bf542136925e619a9b34eccd63 --- NEW FILE: ant-jai-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-jai</artifactId> <version>1.7.0</version> <description>image task and corresponding types. jai (Java Advanced Imaging) is not available in public Maven repositories, therefore the dependencies are included with a scope provided the download URL is http://java.sun.com/products/java-media/jai/ </description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.media</groupId> <artifactId>jai-core</artifactId> <version>1.1.2_01</version> <scope>provided</scope> </dependency> <dependency> <groupId>jai</groupId> <artifactId>jai-codec</artifactId> <version>1.1.2.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/taskdefs/optional/image/*</include> <include>org/apache/tools/ant/types/optional/image/*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-javamail.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-commons-net-1.7.0.pom.sha1 --- 092cc31ddab3cd550ed0a5b384baf97218c15d98 --- NEW FILE: ant-javamail-1.7.0.pom.sha1 --- f8cebf57009c4d99a1bf2b5223015ed320baf1de --- NEW FILE: ant-apache-resolver-1.7.0.pom.sha1 --- 8c61f8b318cb70927513fe440fa178c396185936 --- NEW FILE: ant-apache-log4j-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-apache-log4j</artifactId> <version>1.7.0</version> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.13</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/listener/Log4jListener*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-apache-regexp.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <name>org.apache.tools.ant</name> <description>Apache Ant</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-launcher</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <!-- the implementation jar of the xerces jar will be used by ant to parse XML files, particularly the build files, if the JDK does not provide a parser xercesImpl.jar is provided with ant --> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.8.1</version> <optional>true</optional> <scope>runtime</scope> </dependency> <dependency> <!-- xml-apis contains the org.w3c.dom package since ant is using DOM APIS to parse the XML build file and do other XML related activities xml-apis is a compile time dependency a version of xml-apis.jar is delivered with ant --> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.3.03</version> <optional>true</optional> <scope>compile</scope> </dependency> </dependencies> <build> <filters> <filter>../../../../target/ant/.build.timestamp.properties</filter> </filters> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> </configuration> </plugin> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>create-timestamp-file</id> <phase>generate-resources</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <tstamp/> <mkdir dir="${project.build.directory}"/> <touch file="${project.build.directory}/.build.timestamp.properties"/> <echo file="${project.build.directory}/.build.timestamp.properties" append="false" message="TODAY=${TODAY}"/> </tasks> </configuration> </execution> <execution> <id>delete-timestamp-file</id> <phase>clean</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <delete file="${project.build.directory}/.build.timestamp.properties"/> </tasks> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <excludes> <exclude>org/apache/tools/ant/taskdefs/optional/**</exclude> <exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude> <exclude>org/apache/tools/ant/types/optional/**</exclude> <exclude>org/apache/tools/ant/types/resolver/**</exclude> <exclude>org/apache/tools/ant/util/depend/**</exclude> <exclude>org/apache/tools/ant/util/optional/**</exclude> <exclude>org/apache/tools/ant/util/Script*</exclude> <exclude>org/apache/tools/ant/listener/Log4jListener*</exclude> <exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude> <exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude> <exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude> <exclude>org/apache/tools/ant/util/regexp/Jdk14Regexp*</exclude> <exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude> <exclude>org/apache/tools/ant/launch/**</exclude> </excludes> <testExcludes> <exclude>org/apache/tools/ant/taskdefs/optional/**</exclude> <exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude> <exclude>org/apache/tools/ant/types/optional/**</exclude> <exclude>org/apache/tools/ant/types/resolver/**</exclude> <exclude>org/apache/tools/ant/util/depend/**</exclude> <exclude>org/apache/tools/ant/util/optional/**</exclude> <exclude>org/apache/tools/ant/util/Script*</exclude> <exclude>org/apache/tools/ant/listener/Log4jListener*</exclude> <exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude> <exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude> <exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude> <exclude>org/apache/tools/ant/util/regexp/Jdk14Regexp*</exclude> <exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude> <exclude>org/apache/tools/ant/launch/**</exclude> <exclude>org/apache/tools/ant/taskdefs/StyleTest*</exclude> </testExcludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <omitBasedir>true</omitBasedir> <systemProperties> <property> <name>ant.home</name> <value>${env.ANT_HOME}</value> </property> <property> <name>build.tests</name> <value>../../../../target/ant/testcases</value> </property> <property> <name>build.tests.value</name> <value>../../../../target/ant/testcases</value> </property> <property> <name>offline</name> <value>true</value> </property> <property> <name>root</name> <value>../../../..</value> </property> </systemProperties> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>../../../../src/main</directory> <filtering>true</filtering> <includes> <include>org/apache/tools/ant/taskdefs/default.properties</include> <include>org/apache/tools/ant/types/default.properties</include> <include>org/apache/tools/ant/taskdefs/default.properties</include> <include>org/apache/tools/ant/types/conditions/antlib.xml</include> <include>org/apache/tools/ant/defaultManifest.mf</include> <include>org/apache/tools/ant/version.txt</include> </includes> </resource> <resource> <directory>../../../../src/resources</directory> <filtering>true</filtering> <includes> <include>**/antlib.xml</include> </includes> </resource> <resource> <directory>../../../../docs</directory> <filtering>false</filtering> <includes> <include>images/ant_logo_large.gif</include> </includes> </resource> </resources> <testResources> <testResource> <directory>../../../../src/etc/testcases</directory> <filtering>true</filtering> </testResource> <testResource> <directory>../../../../src/main</directory> <filtering>true</filtering> <excludes> <exclude>**/*.java</exclude> </excludes> </testResource> </testResources> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/tests/junit</testSourceDirectory> <outputDirectory>../../../../target/ant/classes</outputDirectory> <testOutputDirectory>../../../../target/ant/testcases</testOutputDirectory> <directory>../../../../target/ant</directory> </build> </project> --- NEW FILE: ant-apache-bsf.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-junit-1.7.0.pom.md5 --- 6fbd6ebb8b953980060e31b66962fceb --- NEW FILE: ant-antlr-1.7.0.pom.md5 --- a63cde1195ea76b499847d8bf698edba --- NEW FILE: ant-commons-logging.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-swing-1.7.0.pom.md5 --- 6c5b44c4ee4747f711c47471a1a55762 --- NEW FILE: ant-launcher.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-weblogic.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-launcher-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-launcher</artifactId> <version>1.7.0</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant/launch/*.java</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/ant-launcher/classes</outputDirectory> <testOutputDirectory>../../../../target/ant-launcher/testcases</testOutputDirectory> <directory>../../../../target/ant-launcher</directory> </build> </project> --- NEW FILE: ant-commons-logging-1.7.0.pom.sha1 --- 82e62a4be2cdfa80658762ecdd94dfb2fed0d0c6 --- NEW FILE: ant-starteam-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-starteam</artifactId> <description>Starteam SDK tasks</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.starteam</groupId> <artifactId>starteam-sdk</artifactId> <version>5.2</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant//taskdefs/optional/scm/AntStarTeam*</include> <include>org/apache/tools/ant//taskdefs/optional/scm/starteam/*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-testutil-1.7.0.pom.sha1 --- 4d8064fed5bf7b73abe3173f17562512a6728f0b --- NEW FILE: xml-apis.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant-javamail-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-javamail</artifactId> <version>1.7.0</version> <description>implementation of the mail task based on javamail. Required to send emails to SMTP servers using user/password combinations or to send mail over SSL</description> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.2</source> <target>1.2</target> <includes> <include>org/apache/tools/ant//taskdefs/email/MimeMailer*</include> </includes> </configuration> </plugin> </plugins> <sourceDirectory>../../../../src/main</sourceDirectory> <testSourceDirectory>../../../../src/testcases</testSourceDirectory> <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> <directory>../../../../target/${project.artifactId}</directory> </build> </project> --- NEW FILE: ant-apache-oro-1.7.0.pom --- <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- This POM has been created manually by the Ant Development Team. Please contact us if you are not satisfied with the data contained in this POM. URL : http://ant.apache.org --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.apache.ant</groupId> <artifactId>ant-parent</artifactId> <relativePath>../pom.xml</relativePath> <version>1.7.0</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ant</groupId> <artifactId>ant-apache-oro</artifactId> <version>1.7.0</version> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>oro</groupId> <artifactId>oro... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:26
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/etc/checkstyle In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/etc/checkstyle Added Files: checkstyle-frames.xsl checkstyle-text.xsl checkstyle-xdoc.xsl Log Message: Update 4 years old ant. --- NEW FILE: checkstyle-text.xsl --- <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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xsl:strip-space elements="checkstyle"/> <xsl:preserve-space elements="file"/> <xsl:output method="text"/> <xsl:template match="checkstyle/file/error"> <xsl:value-of select="../@name"/> <xsl:text>:</xsl:text> <xsl:value-of select="@line"/> <xsl:text>:</xsl:text> <xsl:value-of select="@column"/> <xsl:text> </xsl:text> <xsl:value-of select="@message"/> </xsl:template> </xsl:stylesheet> --- NEW FILE: checkstyle-frames.xsl --- <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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xsl:output method="html" indent="yes" encoding="US-ASCII"/> <xsl:decimal-format decimal-separator="." grouping-separator="," /> <xsl:param name="output.dir" select="'.'"/> <xsl:param name="basedir" select="'.'"/> <xsl:template match="checkstyle"> <!-- create the index.html --> <redirect:write file="{$output.dir}/index.html"> <xsl:call-template name="index.html"/> </redirect:write> <!-- create the stylesheet.css --> <redirect:write file="{$output.dir}/stylesheet.css"> <xsl:call-template name="stylesheet.css"/> </redirect:write> <!-- create the overview-summary.html at the root --> <redirect:write file="{$output.dir}/overview-frame.html"> <xsl:apply-templates select="." mode="overview"/> </redirect:write> <!-- create the all-classes.html at the root --> <redirect:write file="{$output.dir}/allclasses-frame.html"> <xsl:apply-templates select="." mode="all.classes"/> </redirect:write> <!-- process all files --> <xsl:apply-templates select="file[count(error) != 0]"/> </xsl:template> <xsl:template name="index.html"> <html> <head> <title>CheckStyle Audit</title> </head> <frameset cols="20%,80%"> <frame src="allclasses-frame.html" name="fileListFrame"/> <frame src="overview-frame.html" name="fileFrame"/> </frameset> <noframes> <h2>Frame Alert</h2> <p> This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. </p> </noframes> </html> </xsl:template> <xsl:template name="pageHeader"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td class="text-align:right"><h2>CheckStyle Audit</h2></td> </tr> <tr> <td class="text-align:right">Designed for use with <a href='http://checkstyle.sourceforge.net/'>CheckStyle</a> and <a href='http://ant.apache.org/'>Ant</a>.</td> </tr> </table> <hr size="1"/> </xsl:template> <xsl:template match="checkstyle" mode="overview"> <html> <head> <link rel="stylesheet" type="text/css" href="stylesheet.css"/> </head> <body> <!-- page header --> <xsl:call-template name="pageHeader"/> <!-- Summary part --> <xsl:apply-templates select="." mode="summary"/> <hr size="1" width="100%" align="left"/> <!-- File list part --> <xsl:apply-templates select="." mode="filelist"/> </body> </html> </xsl:template> <xsl:template name="stylesheet.css"> .bannercell { border: 0px; padding: 0px; } body { margin-left: 10; margin-right: 10; font:normal 80% arial,helvetica,sanserif; background-color:#FFFFFF; color:#000000; } .oddrow td { background: #efefef; } .evenrow td { background: #fff; } th, td { text-align: left; vertical-align: top; } th { font-weight:bold; background: #ccc; color: black; } table, th, td { font-size:100%; border: none } table.log tr td, tr th { } h2 { font-weight:bold; font-size:140%; margin-bottom: 5; } h3 { font-size:100%; font-weight:bold; background: #525D76; color: white; text-decoration: none; padding: 5px; margin-right: 2px; margin-left: 2px; margin-bottom: 0; } </xsl:template> <!-- Creates an all-classes.html file that contains a link to all files. --> <xsl:template match="checkstyle" mode="all.classes"> <html> <head> <link rel="stylesheet" type="text/css" href="stylesheet.css"/> </head> <body> <h2>Files</h2> <p> <table width="100%"> <!-- For each file create its part --> <xsl:apply-templates select="file[count(error) != 0]" mode="all.classes"> <xsl:sort select="substring-after(@name, $basedir)"/> </xsl:apply-templates> </table> </p> </body> </html> </xsl:template> <xsl:template match="checkstyle" mode="filelist"> <h3>Files</h3> <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> <tr> <th>Name</th> <th>Errors</th> </tr> <xsl:apply-templates select="file[count(error) != 0]" mode="filelist"> <xsl:sort select="count(error)" order="descending" data-type="number"/> </xsl:apply-templates> </table> </xsl:template> <xsl:template match="file" mode="filelist"> <tr> <xsl:call-template name="alternated-row"/> <td nowrap="nowrap"> <a> <xsl:attribute name="href"> <xsl:text>files/</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text> </xsl:attribute> <xsl:value-of select="substring-after(@name, $basedir)"/> </a> </td> <td><xsl:value-of select="count(error)"/></td> </tr> </xsl:template> <xsl:template match="file" mode="all.classes"> <tr> <td nowrap="nowrap"> <a target="fileFrame"> <xsl:attribute name="href"> <xsl:text>files/</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text> </xsl:attribute> <xsl:value-of select="substring-after(@name, $basedir)"/> </a> </td> </tr> </xsl:template> <!-- transform string like a/b/c to ../../../ @param path the path to transform into a descending directory path --> <xsl:template name="path"> <xsl:param name="path"/> <xsl:if test="contains($path,'/')"> <xsl:text>../</xsl:text> <xsl:call-template name="path"> <xsl:with-param name="path"><xsl:value-of select="substring-after($path,'/')"/></xsl:with-param> </xsl:call-template> </xsl:if> <xsl:if test="not(contains($path,'/')) and not($path = '')"> <xsl:text>../</xsl:text> </xsl:if> </xsl:template> <xsl:template match="file"> <redirect:write file="{$output.dir}/files/{substring-after(@name, $basedir)}.html"> <html> <head> <link rel="stylesheet" type="text/css"> <xsl:attribute name="href"><xsl:call-template name="path"><xsl:with-param name="path" select="substring-after(@name, $basedir)"/></xsl:call-template><xsl:text>stylesheet.css</xsl:text></xsl:attribute> </link> </head> <body> <xsl:call-template name="pageHeader"/> <h3>File <xsl:value-of select="substring-after(@name, $basedir)"/></h3> <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> <tr> <th>Error Description</th> <th>Line:Column</th> </tr> <xsl:for-each select="error"> <tr> <xsl:call-template name="alternated-row"/> <td><a title="{@source}"><xsl:value-of select="@message"/></a></td> <td align="center"><xsl:value-of select="@line"/><xsl:if test="@column">:<xsl:value-of select="@column"/></xsl:if></td> </tr> </xsl:for-each> </table> </body> </html> </redirect:write> </xsl:template> <xsl:template match="checkstyle" mode="summary"> <h3>Summary</h3> <xsl:variable name="fileCount" select="count(file)"/> <xsl:variable name="errorCount" select="count(file/error)"/> <xsl:variable name="fileErrorCount" select="count(file[count(error) != 0])"/> <table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> <tr> <th>Total Files</th> <th>Files With Errors</th> <th>Errors</th> </tr> <tr> <xsl:call-template name="alternated-row"/> <td><xsl:value-of select="$fileCount"/></td> <td><xsl:value-of select="$fileErrorCount"/></td> <td><xsl:value-of select="$errorCount"/></td> </tr> </table> </xsl:template> <xsl:template name="alternated-row"> <xsl:attribute name="class"> <xsl:if test="position() mod 2 = 1">oddrow</xsl:if> <xsl:if test="position() mod 2 = 0">evenrow</xsl:if> </xsl:attribute> </xsl:template> </xsl:stylesheet> --- NEW FILE: checkstyle-xdoc.xsl --- <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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xsl:output method="xml" indent="yes"/> <xsl:decimal-format decimal-separator="." grouping-separator="," /> <xsl:param name="output.dir" select="'.'"/> <xsl:param name="basedir" select="'.'"/> <xsl:template match="checkstyle"> <document> <properties> <title>Checkstyle Audit</title> </properties> <body> <xsl:apply-templates select="." mode="summary"/> <!-- File list part --> <xsl:apply-templates select="." mode="filelist"/> <xsl:apply-templates select="file[count(error) != 0]"/> </body> </document> </xsl:template> <xsl:template match="checkstyle" mode="filelist"> <section name="Files"> <table> <tr> <th>Name</th> <th>Errors</th> </tr> <xsl:apply-templates select="file[count(error) != 0]" mode="filelist"> <xsl:sort select="count(error)" order="descending" data-type="number"/> </xsl:apply-templates> </table> </section> </xsl:template> <xsl:template match="file" mode="filelist"> <tr> <xsl:call-template name="alternated-row"/> <td nowrap="nowrap"> <a> <xsl:attribute name="href"> <xsl:text>files</xsl:text><xsl:value-of select="substring-after(@name, $basedir)"/><xsl:text>.html</xsl:text> </xsl:attribute> <xsl:value-of select="substring-after(@name, $basedir)"/> </a> </td> <td><xsl:value-of select="count(error)"/></td> </tr> </xsl:template> <xsl:template match="file"> <redirect:write file="{$output.dir}/files{substring-after(@name, $basedir)}.xml"> <document> <properties> <title>Checkstyle Audit</title> </properties> <body> <section name="Details for {substring-after(@name, $basedir)}"> <table> <tr> <th>Error Description</th> <th>Line</th> </tr> <xsl:for-each select="error"> <tr> <xsl:call-template name="alternated-row"/> <td><a title="{@source}"><xsl:value-of select="@message"/></a></td> <td><xsl:value-of select="@line"/></td> </tr> </xsl:for-each> </table> </section> </body> </document> </redirect:write> </xsl:template> <xsl:template match="checkstyle" mode="summary"> <section name="Summary"> <xsl:variable name="fileCount" select="count(file)"/> <xsl:variable name="errorCount" select="count(file/error)"/> <xsl:variable name="fileErrorCount" select="count(file[count(error) != 0])"/> <table> <tr> <th>Files</th> <th>Files With Errors</th> <th>Errors</th> </tr> <tr> <xsl:call-template name="alternated-row"/> <td><xsl:value-of select="$fileCount"/></td> <td><xsl:value-of select="$fileErrorCount"/></td> <td><xsl:value-of select="$errorCount"/></td> </tr> </table> </section> </xsl:template> <xsl:template name="alternated-row"> <xsl:attribute name="class"> <xsl:if test="position() mod 2 = 1">oddrow</xsl:if> <xsl:if test="position() mod 2 = 0">evenrow</xsl:if> </xsl:attribute> </xsl:template> </xsl:stylesheet> |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/api In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/api Added Files: allclasses-frame.html allclasses-noframe.html constant-values.html deprecated-list.html help-doc.html index-all.html index.html overview-frame.html overview-summary.html overview-tree.html package-list packages.html serialized-form.html stylesheet.css Log Message: Update 4 years old ant. --- NEW FILE: index.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc on Wed Dec 13 07:15:38 EST 2006--> <TITLE> Apache Ant API </TITLE> <SCRIPT type="text/javascript"> targetPage = "" + window.location.search; if (targetPage != "" && targetPage != "undefined") targetPage = targetPage.substring(1); function loadFrames() { if (targetPage != "" && targetPage != "undefined") top.classFrame.location = top.targetPage; } </SCRIPT> <NOSCRIPT> </NOSCRIPT> </HEAD> <FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()"> <FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()"> <FRAME src="overview-frame.html" name="packageListFrame" title="All Packages"> <FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)"> </FRAMESET> <FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes"> <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. <BR> Link to<A HREF="overview-summary.html">Non-frame version.</A> </NOFRAMES> </FRAMESET> </HTML> --- NEW FILE: overview-frame.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc (build 1.5.0_06) on Wed Dec 13 07:15:35 EST 2006 --> <TITLE> Overview (Apache Ant API) </TITLE> <META NAME="keywords" CONTENT="Overview, Apache Ant"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> </HEAD> <BODY BGCOLOR="white"> <TABLE BORDER="0" WIDTH="100%" SUMMARY=""> <TR> <TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont"> <B></B></FONT></TH> </TR> </TABLE> <TABLE BORDER="0" WIDTH="100%" SUMMARY=""> <TR> <TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT> <P> <FONT size="+1" CLASS="FrameHeadingFont"> Packages</FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/package-frame.html" target="packageFrame">org.apache.tools.ant</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/dispatch/package-frame.html" target="packageFrame">org.apache.tools.ant.dispatch</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/filters/package-frame.html" target="packageFrame">org.apache.tools.ant.filters</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/filters/util/package-frame.html" target="packageFrame">org.apache.tools.ant.filters.util</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/helper/package-frame.html" target="packageFrame">org.apache.tools.ant.helper</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/input/package-frame.html" target="packageFrame">org.apache.tools.ant.input</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/launch/package-frame.html" target="packageFrame">org.apache.tools.ant.launch</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/listener/package-frame.html" target="packageFrame">org.apache.tools.ant.listener</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/loader/package-frame.html" target="packageFrame">org.apache.tools.ant.loader</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/compilers/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.compilers</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/condition/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.condition</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/cvslib/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.cvslib</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/email/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.email</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/ccm/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.ccm</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/clearcase/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.clearcase</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/depend/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.depend</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/depend/constantpool/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.depend.constantpool</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/dotnet/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.dotnet</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/ejb/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.ejb</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/extension/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.extension</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/extension/resolvers/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.extension.resolvers</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/i18n/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.i18n</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/image/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.image</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.j2ee</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/javacc/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.javacc</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/javah/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.javah</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/jdepend/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.jdepend</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/jlink/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.jlink</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/jsp/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.jsp</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/jsp/compilers/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.jsp.compilers</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/junit/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.junit</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/native2ascii/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.native2ascii</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/net/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.net</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/perforce/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.perforce</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/pvcs/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.pvcs</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/scm/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.scm</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/script/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.script</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/sos/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.sos</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/sound/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.sound</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/splash/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.splash</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/ssh/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.ssh</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/starteam/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.starteam</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/unix/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.unix</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/vss/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.vss</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/optional/windows/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.optional.windows</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/taskdefs/rmic/package-frame.html" target="packageFrame">org.apache.tools.ant.taskdefs.rmic</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/package-frame.html" target="packageFrame">org.apache.tools.ant.types</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/mappers/package-frame.html" target="packageFrame">org.apache.tools.ant.types.mappers</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/optional/package-frame.html" target="packageFrame">org.apache.tools.ant.types.optional</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/optional/depend/package-frame.html" target="packageFrame">org.apache.tools.ant.types.optional.depend</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/optional/image/package-frame.html" target="packageFrame">org.apache.tools.ant.types.optional.image</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/resolver/package-frame.html" target="packageFrame">org.apache.tools.ant.types.resolver</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/resources/package-frame.html" target="packageFrame">org.apache.tools.ant.types.resources</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/resources/comparators/package-frame.html" target="packageFrame">org.apache.tools.ant.types.resources.comparators</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/resources/selectors/package-frame.html" target="packageFrame">org.apache.tools.ant.types.resources.selectors</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/selectors/package-frame.html" target="packageFrame">org.apache.tools.ant.types.selectors</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/selectors/modifiedselector/package-frame.html" target="packageFrame">org.apache.tools.ant.types.selectors.modifiedselector</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/types/spi/package-frame.html" target="packageFrame">org.apache.tools.ant.types.spi</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/package-frame.html" target="packageFrame">org.apache.tools.ant.util</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/depend/package-frame.html" target="packageFrame">org.apache.tools.ant.util.depend</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/depend/bcel/package-frame.html" target="packageFrame">org.apache.tools.ant.util.depend.bcel</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/facade/package-frame.html" target="packageFrame">org.apache.tools.ant.util.facade</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/java15/package-frame.html" target="packageFrame">org.apache.tools.ant.util.java15</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/optional/package-frame.html" target="packageFrame">org.apache.tools.ant.util.optional</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/ant/util/regexp/package-frame.html" target="packageFrame">org.apache.tools.ant.util.regexp</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/bzip2/package-frame.html" target="packageFrame">org.apache.tools.bzip2</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/mail/package-frame.html" target="packageFrame">org.apache.tools.mail</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/tar/package-frame.html" target="packageFrame">org.apache.tools.tar</A></FONT> <BR> <FONT CLASS="FrameItemFont"><A HREF="org/apache/tools/zip/package-frame.html" target="packageFrame">org.apache.tools.zip</A></FONT> <BR> </TD> </TR> </TABLE> <P> </BODY> </HTML> --- NEW FILE: constant-values.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc (build 1.5.0_06) on Wed Dec 13 07:15:35 EST 2006 --> <TITLE> Constant Field Values (Apache Ant API) </TITLE> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <SCRIPT type="text/javascript"> function windowTitle() { parent.document.title="Constant Field Values (Apache Ant API)"; } </SCRIPT> <NOSCRIPT> [...6549 lines suppressed...] if(window==top) { document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_bottom"></A> <!-- ======== END OF BOTTOM NAVBAR ======= --> <HR> </BODY> </HTML> --- NEW FILE: overview-summary.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc (build 1.5.0_06) on Wed Dec 13 07:15:38 EST 2006 --> <TITLE> Overview (Apache Ant API) </TITLE> <META NAME="keywords" CONTENT="Overview, Apache Ant"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <SCRIPT type="text/javascript"> function windowTitle() { parent.document.title="Overview (Apache Ant API)"; } </SCRIPT> <NOSCRIPT> </NOSCRIPT> </HEAD> <BODY BGCOLOR="white" onload="windowTitle();"> <!-- ========= START OF TOP NAVBAR ======= --> <A NAME="navbar_top"><!-- --></A> <A HREF="#skip-navbar_top" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_top_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> PREV NEXT</FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A> <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_top"></A> <!-- ========= END OF TOP NAVBAR ========= --> <HR> <CENTER> <H1> Apache Ant </H1> </CENTER> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Apache Ant Core</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/package-summary.html">org.apache.tools.ant</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/dispatch/package-summary.html">org.apache.tools.ant.dispatch</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/filters/package-summary.html">org.apache.tools.ant.filters</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/filters/util/package-summary.html">org.apache.tools.ant.filters.util</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/helper/package-summary.html">org.apache.tools.ant.helper</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/input/package-summary.html">org.apache.tools.ant.input</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/launch/package-summary.html">org.apache.tools.ant.launch</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/listener/package-summary.html">org.apache.tools.ant.listener</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/loader/package-summary.html">org.apache.tools.ant.loader</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Core Tasks</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/package-summary.html">org.apache.tools.ant.taskdefs</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/compilers/package-summary.html">org.apache.tools.ant.taskdefs.compilers</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/condition/package-summary.html">org.apache.tools.ant.taskdefs.condition</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/cvslib/package-summary.html">org.apache.tools.ant.taskdefs.cvslib</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/email/package-summary.html">org.apache.tools.ant.taskdefs.email</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/rmic/package-summary.html">org.apache.tools.ant.taskdefs.rmic</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Core Types</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/package-summary.html">org.apache.tools.ant.types</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/mappers/package-summary.html">org.apache.tools.ant.types.mappers</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/resolver/package-summary.html">org.apache.tools.ant.types.resolver</A></B></TD> <TD>Ant integration with xml-commons resolver.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/resources/package-summary.html">org.apache.tools.ant.types.resources</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/resources/comparators/package-summary.html">org.apache.tools.ant.types.resources.comparators</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/resources/selectors/package-summary.html">org.apache.tools.ant.types.resources.selectors</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/selectors/package-summary.html">org.apache.tools.ant.types.selectors</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/selectors/modifiedselector/package-summary.html">org.apache.tools.ant.types.selectors.modifiedselector</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/spi/package-summary.html">org.apache.tools.ant.types.spi</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Optional Tasks</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/package-summary.html">org.apache.tools.ant.taskdefs.optional</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/ccm/package-summary.html">org.apache.tools.ant.taskdefs.optional.ccm</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/clearcase/package-summary.html">org.apache.tools.ant.taskdefs.optional.clearcase</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/depend/package-summary.html">org.apache.tools.ant.taskdefs.optional.depend</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/depend/constantpool/package-summary.html">org.apache.tools.ant.taskdefs.optional.depend.constantpool</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/dotnet/package-summary.html">org.apache.tools.ant.taskdefs.optional.dotnet</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/ejb/package-summary.html">org.apache.tools.ant.taskdefs.optional.ejb</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/extension/package-summary.html">org.apache.tools.ant.taskdefs.optional.extension</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/extension/resolvers/package-summary.html">org.apache.tools.ant.taskdefs.optional.extension.resolvers</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/i18n/package-summary.html">org.apache.tools.ant.taskdefs.optional.i18n</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/image/package-summary.html">org.apache.tools.ant.taskdefs.optional.image</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/package-summary.html">org.apache.tools.ant.taskdefs.optional.j2ee</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/javacc/package-summary.html">org.apache.tools.ant.taskdefs.optional.javacc</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/javah/package-summary.html">org.apache.tools.ant.taskdefs.optional.javah</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/jdepend/package-summary.html">org.apache.tools.ant.taskdefs.optional.jdepend</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/jlink/package-summary.html">org.apache.tools.ant.taskdefs.optional.jlink</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/jsp/package-summary.html">org.apache.tools.ant.taskdefs.optional.jsp</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/jsp/compilers/package-summary.html">org.apache.tools.ant.taskdefs.optional.jsp.compilers</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/junit/package-summary.html">org.apache.tools.ant.taskdefs.optional.junit</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/native2ascii/package-summary.html">org.apache.tools.ant.taskdefs.optional.native2ascii</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/net/package-summary.html">org.apache.tools.ant.taskdefs.optional.net</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/perforce/package-summary.html">org.apache.tools.ant.taskdefs.optional.perforce</A></B></TD> <TD>ANT Tasks for Perforce integration.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/pvcs/package-summary.html">org.apache.tools.ant.taskdefs.optional.pvcs</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/scm/package-summary.html">org.apache.tools.ant.taskdefs.optional.scm</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/script/package-summary.html">org.apache.tools.ant.taskdefs.optional.script</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/sos/package-summary.html">org.apache.tools.ant.taskdefs.optional.sos</A></B></TD> <TD> Ant tasks for working with a SourceOffSite source control system.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/sound/package-summary.html">org.apache.tools.ant.taskdefs.optional.sound</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/splash/package-summary.html">org.apache.tools.ant.taskdefs.optional.splash</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/ssh/package-summary.html">org.apache.tools.ant.taskdefs.optional.ssh</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/starteam/package-summary.html">org.apache.tools.ant.taskdefs.optional.starteam</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/unix/package-summary.html">org.apache.tools.ant.taskdefs.optional.unix</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/vss/package-summary.html">org.apache.tools.ant.taskdefs.optional.vss</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/taskdefs/optional/windows/package-summary.html">org.apache.tools.ant.taskdefs.optional.windows</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Optional Types</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/optional/package-summary.html">org.apache.tools.ant.types.optional</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/optional/depend/package-summary.html">org.apache.tools.ant.types.optional.depend</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/types/optional/image/package-summary.html">org.apache.tools.ant.types.optional.image</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Ant Utilities</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/package-summary.html">org.apache.tools.ant.util</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/depend/package-summary.html">org.apache.tools.ant.util.depend</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/depend/bcel/package-summary.html">org.apache.tools.ant.util.depend.bcel</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/facade/package-summary.html">org.apache.tools.ant.util.facade</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/java15/package-summary.html">org.apache.tools.ant.util.java15</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/optional/package-summary.html">org.apache.tools.ant.util.optional</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/ant/util/regexp/package-summary.html">org.apache.tools.ant.util.regexp</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Other Packages</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/bzip2/package-summary.html">org.apache.tools.bzip2</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/mail/package-summary.html">org.apache.tools.mail</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/tar/package-summary.html">org.apache.tools.tar</A></B></TD> <TD> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD WIDTH="20%"><B><A HREF="org/apache/tools/zip/package-summary.html">org.apache.tools.zip</A></B></TD> <TD> </TD> </TR> </TABLE> <P> <HR> <!-- ======= START OF BOTTOM NAVBAR ====== --> <A NAME="navbar_bottom"><!-- --></A> <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_bottom_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> PREV NEXT</FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A> <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_bottom"></A> <!-- ======== END OF BOTTOM NAVBAR ======= --> <HR> </BODY> </HTML> --- NEW FILE: help-doc.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc (build 1.5.0_06) on Wed Dec 13 07:15:38 EST 2006 --> <TITLE> API Help (Apache Ant API) </TITLE> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <SCRIPT type="text/javascript"> function windowTitle() { parent.document.title="API Help (Apache Ant API)"; } </SCRIPT> <NOSCRIPT> </NOSCRIPT> </HEAD> <BODY BGCOLOR="white" onload="windowTitle();"> <!-- ========= START OF TOP NAVBAR ======= --> <A NAME="navbar_top"><!-- --></A> <A HREF="#skip-navbar_top" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_top_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> PREV NEXT</FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_top"></A> <!-- ========= END OF TOP NAVBAR ========= --> <HR> <CENTER> <H1> How This API Document Is Organized</H1> </CENTER> This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3> Overview</H3> <BLOCKQUOTE> <P> The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE> <H3> Package</H3> <BLOCKQUOTE> <P> Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL> <LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL> </BLOCKQUOTE> <H3> Class/Interface</H3> <BLOCKQUOTE> <P> Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL> <LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description <P> <LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary <P> <LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL> Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE> </BLOCKQUOTE> <H3> Annotation Type</H3> <BLOCKQUOTE> <P> Each annotation type has its own separate page with the following sections:<UL> <LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL> </BLOCKQUOTE> </BLOCKQUOTE> <H3> Enum</H3> <BLOCKQUOTE> <P> Each enum has its own separate page with the following sections:<UL> <LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL> </BLOCKQUOTE> <H3> Tree (Class Hierarchy)</H3> <BLOCKQUOTE> There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL> <LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL> </BLOCKQUOTE> <H3> Deprecated API</H3> <BLOCKQUOTE> The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE> <H3> Index</H3> <BLOCKQUOTE> The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE> <H3> Prev/Next</H3> These links take you to the next or previous class, interface, package, or related page.<H3> Frames/No Frames</H3> These links show and hide the HTML frames. All pages are available with or without frames. <P> <H3> Serialized Form</H3> Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. <P> <H3> Constant Field Values</H3> The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values. <P> <FONT SIZE="-1"> <EM> This help file applies to API documentation generated using the standard doclet.</EM> </FONT> <BR> <HR> <!-- ======= START OF BOTTOM NAVBAR ====== --> <A NAME="navbar_bottom"><!-- --></A> <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_bottom_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> PREV NEXT</FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_bottom"></A> <!-- ======== END OF BOTTOM NAVBAR ======= --> <HR> </BODY> </HTML> --- NEW FILE: overview-tree.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc (build 1.5.0_06) on Wed Dec 13 07:15:36 EST 2006 --> <TITLE> Class Hierarchy (Apache Ant API) </TITLE> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <SCRIPT type="text/javascript"> function windowTitle() { parent.document.title="Class Hierarchy (Apache Ant API)"; } </SCRIPT> <NOSCRIPT> </NOSCRIPT> </HEAD> <BODY BGCOLOR="white" onload="windowTitle();"> <!-- ========= START OF TOP NAVBAR ======= --> <A NAME="navbar_top"><!-- --></A> <A HREF="#skip-navbar_top" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_top_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> PREV NEXT</FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_top"></A> <!-- ========= END OF TOP NAVBAR ========= --> <HR> <CENTER> <H2> Hierarchy For All Packages</H2> </CENTER> <DL> <DT><B>Package Hierarchies:</B><DD><A HREF="org/apache/tools/ant/package-tree.html">org.apache.tools.ant</A>, <A HREF="org/apache/tools/ant/dispatch/package-tree.html">org.apache.tools.ant.dispatch</A>, <A HREF="org/apache/tools/ant/filters/package-tree.html">org.apache.tools.ant.filters</A>, <A HREF="org/apache/tools/ant/filters/util/package-tree.html">org.apache.tools.ant.filters.util</A>, <A HREF="org/apache/tools/ant/helper/package-tree.html">org.apache.tools.ant.helper</A>, <A HREF="org/apache/tools/ant/input/package-tree.html">org.apache.tools.ant.input</A>, <A HREF="org/apache/tools/ant/launch/package-tree.html">org.apache.tools.ant.launch</A>, <A HREF="org/apache/tools/ant/listener/package-tree.html">org.apache.tools.ant.listener</A>, <A HREF="org/apache/tools/ant/loader/package-tree.html">org.apache.tools.ant.loader</A>, <A HREF="org/apache/tools/ant/taskdefs/package-tree.html">org.apache.tools.ant.taskdefs</A>, <A HREF="org/apache/tools/ant/taskdefs/compilers/package-tree.html">org.apache.tools.ant.taskdefs.compilers</A>, <A HREF="org/apache/tools/ant/taskdefs/condition/package-tree.html">org.apache.tools.ant.taskdefs.condition</A>, <A HREF="org/apache/tools/ant/taskdefs/cvslib/package-tree.html">org.apache.tools.ant.taskdefs.cvslib</A>, <A HREF="org/apache/tools/ant/taskdefs/email/package-tree.html">org.apache.tools.ant.taskdefs.email</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/package-tree.html">org.apache.tools.ant.taskdefs.optional</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/ccm/package-tree.html">org.apache.tools.ant.taskdefs.optional.ccm</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/clearcase/package-tree.html">org.apache.tools.ant.taskdefs.optional.clearcase</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/depend/package-tree.html">org.apache.tools.ant.taskdefs.optional.depend</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/depend/constantpool/package-tree.html">org.apache.tools.ant.taskdefs.optional.depend.constantpool</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/dotnet/package-tree.html">org.apache.tools.ant.taskdefs.optional.dotnet</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/ejb/package-tree.html">org.apache.tools.ant.taskdefs.optional.ejb</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/extension/package-tree.html">org.apache.tools.ant.taskdefs.optional.extension</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/extension/resolvers/package-tree.html">org.apache.tools.ant.taskdefs.optional.extension.resolvers</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/i18n/package-tree.html">org.apache.tools.ant.taskdefs.optional.i18n</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/image/package-tree.html">org.apache.tools.ant.taskdefs.optional.image</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/package-tree.html">org.apache.tools.ant.taskdefs.optional.j2ee</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/javacc/package-tree.html">org.apache.tools.ant.taskdefs.optional.javacc</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/javah/package-tree.html">org.apache.tools.ant.taskdefs.optional.javah</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/jdepend/package-tree.html">org.apache.tools.ant.taskdefs.optional.jdepend</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/jlink/package-tree.html">org.apache.tools.ant.taskdefs.optional.jlink</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/jsp/package-tree.html">org.apache.tools.ant.taskdefs.optional.jsp</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/jsp/compilers/package-tree.html">org.apache.tools.ant.taskdefs.optional.jsp.compilers</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/junit/package-tree.html">org.apache.tools.ant.taskdefs.optional.junit</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/native2ascii/package-tree.html">org.apache.tools.ant.taskdefs.optional.native2ascii</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/net/package-tree.html">org.apache.tools.ant.taskdefs.optional.net</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/perforce/package-tree.html">org.apache.tools.ant.taskdefs.optional.perforce</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/pvcs/package-tree.html">org.apache.tools.ant.taskdefs.optional.pvcs</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/scm/package-tree.html">org.apache.tools.ant.taskdefs.optional.scm</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/script/package-tree.html">org.apache.tools.ant.taskdefs.optional.script</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/sos/package-tree.html">org.apache.tools.ant.taskdefs.optional.sos</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/sound/package-tree.html">org.apache.tools.ant.taskdefs.optional.sound</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/splash/package-tree.html">org.apache.tools.ant.taskdefs.optional.splash</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/ssh/package-tree.html">org.apache.tools.ant.taskdefs.optional.ssh</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/starteam/package-tree.html">org.apache.tools.ant.taskdefs.optional.starteam</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/unix/package-tree.html">org.apache.tools.ant.taskdefs.optional.unix</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/vss/package-tree.html">org.apache.tools.ant.taskdefs.optional.vss</A>, <A HREF="org/apache/tools/ant/taskdefs/optional/windows/package-tree.html">org.apache.tools.ant.taskdefs.optional.windows</A>, <A HREF="org/apache/tools/ant/taskdefs/rmic/package-tree.html">org.apache.tools.ant.taskdefs.rmic</A>, <A HREF="org/apache/tools/ant/types/package-tree.html">org.apache.tools.ant.types</A>, <A HREF="org/apache/tools/ant/types/mappers/package-tree.html">org.apache.tools.ant.types.mappers</A>, <A HREF="org/apache/tools/ant/types/optional/package-tree.html">org.apache.tools.ant.types.optional</A>, <A HREF="org/apache/tools/ant/types/optional/depend/package-tree.html">org.apache.tools.ant.types.optional.depend</A>, <A HREF="org/apache/tools/ant/types/optional/image/package-tree.html">org.apache.tools.ant.types.optional.image</A>, <A HREF="org/apache/tools/ant/types/resolver/package-tree.html">org.apache.tools.ant.types.resolver</A>, <A HREF="org/apache/tools/ant/types/resources/package-tree.html">org.apache.tools.ant.types.resources</A>, <A HREF="org/apache/tools/ant/types/resources/comparators/package-tree.html">org.apache.tools.ant.types.resources.comparators</A>, <A HREF="org/apache/tools/ant/types/resources/selectors/package-tree.html">org.apache.tools.ant.types.resources.selectors</A>, <A HREF="org/apache/tools/ant/types/selectors/package-tree.html">org.apache.tools.ant.types.selectors</A>, <A HREF="org/apache/tools/ant/types/selectors/modifiedselector/package-tree.html">org.apache.tools.ant.types.selectors.modifiedselector</A>, <A HREF="org/apache/tools/ant/types/spi/package-tree.html">org.apache.tools.ant.types.spi</A>, <A HREF="org/apache/tools/ant/util/package-tree.html">org.apache.tools.ant.util</A>, <A HREF="org/apache/tools/ant/util/depend/package-tree.html">org.apache.tools.ant.util.depend</A>, <A HREF="org/apache/tools/ant/util/depend/bcel/package-tree.html">org.apache.tools.ant.util.depend.bcel</A>, <A HREF="org/apache/tools/ant/util/facade/package-tree.html">org.apache.tools.ant.util.facade</A>, <A HREF="org/apache/tools/ant/util/java15/package-tree.html">org.apache.tools.ant.util.java15</A>, <A HREF="org/apache/tools/ant/util/optional/package-tree.html">org.apache.tools.ant.util.optional</A>, <A HREF="org/apache/tools/ant/util/regexp/package-tree.html">org.apache.tools.ant.util.regexp</A>, <A HREF="org/apache/tools/bzip2/package-tree.html">org.apache.tools.bzip2</A>, <A HREF="org/apache/tools/mail/package-tree.html">org.apache.tools.mail</A>, <A HREF="org/apache/tools/tar/package-tree.html">org.apache.tools.tar</A>, <A HREF="org/apache/tools/zip/package-tree.html">org.apache.tools.zip</A></DL> <HR> <H2> Class Hierarchy </H2> <UL> <LI TYPE="circle">java.lang.Object<UL> <LI TYPE="circle">org.apache.tools.ant.util.depend.<A HREF="org/apache/tools/ant/util/depend/AbstractAnalyzer.html" title="class in org.apache.tools.ant.util.depend"><B>AbstractAnalyzer</B></A> (implements org.apache.tools.ant.util.depend.<A HREF="org/apache/tools/ant/util/depend/DependencyAnalyzer.html" title="interface in org.apache.tools.ant.util.depend">DependencyAnalyzer</A>) <UL> <LI TYPE="circle">org.apache.tools.ant.util.depend.bcel.<A HREF="org/apache/tools/ant/util/depend/bcel/AncestorAnalyzer.html" title="class in org.apache.tools.ant.util.depend.bcel"><B>AncestorAnalyzer</B></A><LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.depend.<A HREF="org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.html" title="class in org.apache.tools.ant.taskdefs.optional.depend"><B>AntAnalyzer</B></A><LI TYPE="circle">org.apache.tools.ant.util.depend.bcel.<A HREF="org/apache/tools/ant/util/depend/bcel/FullAnalyzer.html" title="class in org.apache.tools.ant.util.depend.bcel"><B>FullAnalyzer</B></A></UL> <LI TYPE="circle">java.util.AbstractCollection<E> (implements java.util.Collection<E>) <UL> <LI TYPE="circle">java.util.AbstractList<E> (implements java.util.List<E>) <UL> <LI TYPE="circle">java.util.Vector<E> (implements java.lang.Cloneable, java.util.List<E>, java.util.RandomAccess, java.io.Serializable) <UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.junit.<A HREF="org/apache/tools/ant/taskdefs/optional/junit/DOMUtil.NodeListImpl.html" title="class in org.apache.tools.ant.taskdefs.optional.junit"><B>DOMUtil.NodeListImpl</B></A> (implements org.w3c.dom.NodeList) <LI TYPE="circle">java.util.Stack<E><UL> <LI TYPE="circle">org.apache.tools.ant.util.<A HREF="org/apache/tools/ant/util/IdentityStack.html" title="class in org.apache.tools.ant.util"><B>IdentityStack</B></A></UL> </UL> </UL> </UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/AbstractHotDeploymentTool.html" title="class in org.apache.tools.ant.taskdefs.optional.j2ee"><B>AbstractHotDeploymentTool</B></A> (implements org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/HotDeploymentTool.html" title="interface in org.apache.tools.ant.taskdefs.optional.j2ee">HotDeploymentTool</A>) <UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/GenericHotDeploymentTool.html" title="class in org.apache.tools.ant.taskdefs.optional.j2ee"><B>GenericHotDeploymentTool</B></A><UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/JonasHotDeploymentTool.html" title="class in org.apache.tools.ant.taskdefs.optional.j2ee"><B>JonasHotDeploymentTool</B></A> (implements org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/HotDeploymentTool.html" title="interface in org.apache.tools.ant.taskdefs.optional.j2ee">HotDeploymentTool</A>) </UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/WebLogicHotDeploymentTool.html" title="class in org.apache.tools.ant.taskdefs.optional.j2ee"><B>WebLogicHotDeploymentTool</B></A> (implements org.apache.tools.ant.taskdefs.optional.j2ee.<A HREF="org/apache/tools/ant/taskdefs/optional/j2ee/HotDeploymentTool.html" title="interface in org.apache.tools.ant.taskdefs.optional.j2ee">HotDeploymentTool</A>) </UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.ssh.<A HREF="org/apache/tools/ant/taskdefs/optional/ssh/AbstractSshMessage.html" title="class in org.apache.tools.ant.taskdefs.optional.ssh"><B>AbstractSshMessage</B></A><UL> <LI TYPE="circle">org.apache.tools.ant.taskdefs.optional.ssh.<A HREF="org/apache/to... [truncated message content] |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/OptionalTasks In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/OptionalTasks Added Files: BorlandEJBTasks.html BorlandGenerateClient.html antlr.html attrib.html cab.html ccm.html chgrp.html chown.html clearcase.html csc.html depend.html dotnet.html echoproperties.html ejb.html ftp.html ilasm.html ildasm.html image-classdiagram.gif image.html importtypelib.html jarlib-available.html jarlib-display.html jarlib-manifest.html jarlib-resolve.html javacc.html javah.html jdepend.html jjdoc.html jjtree.html jlink.html jsharpc.html jspc.html junit.html junitreport.html mimemail.html native2ascii.html netrexxc.html perforce.html propertyfile.html pvcstask.html renameextensions.html replaceregexp.html rexec.html rpm.html schemavalidate.html scp.html script.html scriptdef.html serverdeploy.html setproxy.html sos.html sound.html splash.html sshexec.html starteam.html stylebook.html symlink.html telnet.html translate.html vbc.html vss.html wljspc.html wsdltodotnet.html xmlvalidate.html Log Message: Update 4 years old ant. --- NEW FILE: setproxy.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <title>Setproxy Task</title> </head> <body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"> <table border="0" width="100%" cellspacing="4"> <!-- PAGE HEADER --> <tr> <td> <table border="0" width="100%"><tr> <td valign="bottom"> <font size="+3" face="arial,helvetica,sanserif"><strong>Setproxy Task</strong></font> <br><font face="arial,helvetica,sanserif">Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites.</font> </td> <td> <!-- PROJECT LOGO --> <a href="http://ant.apache.org/"> <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"> </a> </td> </tr></table> </td> </tr> <!-- START RIGHT SIDE MAIN BODY --> <tr> <td valign="top" align="left"> <!-- Applying task/long-description --> <!-- Start Description --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="description"> <strong>Description</strong></a></font> </td></tr> <tr><td><blockquote> Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites. You can nominate an http and ftp proxy, or a socks server, reset the server settings, or do nothing at all. <p> Examples <pre><setproxy/></pre> do nothing <pre><setproxy proxyhost="firewall"/></pre> set the proxy to firewall:80 <pre><setproxy proxyhost="firewall" proxyport="81"/></pre> set the proxy to firewall:81 <pre><setproxy proxyhost=""/></pre> stop using the http proxy; don't change the socks settings <pre><setproxy socksproxyhost="socksy"/></pre> use socks via socksy:1080 <pre><setproxy socksproxyhost=""/></pre> stop using the socks server. <p> You can set a username and password for http with the <tt>proxyHost</tt> and <tt>proxyPassword</tt> attributes. On Java1.4 and above these can also be used against SOCKS5 servers. </p> </blockquote></td></tr> </table> <!-- End Description --> <!-- Ignore --> <!-- Start Attributes --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="attributes"> <strong>Parameters</strong></a></font> </td></tr> <tr><td><blockquote> <table> <tr> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font> </td> </tr> <!-- Attribute Group --> <!-- Attribute Group --> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">nonproxyhosts</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">A list of hosts to bypass the proxy on. These should be separated with the vertical bar character '|'. Only in Java 1.4 does ftp use this list. e.g. fozbot.corp.sun.com|*.eng.sun.com</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> <td bgcolor="#eeeeee" valign="top" align="left" rowspan="7"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxyhost</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">the HTTP/ftp proxy host. Set this to "" for the http proxy option to be disabled</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxypassword</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the password for the proxy. Used only if the proxyUser is set.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxyport</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">the HTTP/ftp proxy port number; default is 80</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">proxyuser</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the proxy user. Probably requires a password to accompany this setting. Default=""</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">socksproxyhost</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">The name of a Socks server. Set to "" to turn socks proxying off.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">socksproxyport</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the ProxyPort for socks connections. The default value is 1080</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font> </td> </tr> </table> </blockquote></td></tr> </table> <!-- End Attributes --> <!-- Start Elements --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="elements"> <strong>Parameters as nested elements</strong></a></font> </td></tr> <tr><td><blockquote> </blockquote></td></tr> </table> <!-- End Elements --> </td> </tr> <!-- END RIGHT SIDE MAIN BODY --> </table> </body> </html> --- NEW FILE: BorlandGenerateClient.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>BorlandGenerateClient Task</title> </head> <body> <h2><a name="log">BorlandGenerateClient</a></h2> <p>by Benoit Moussaud (<a href="mailto:ben...@cr...">ben...@cr...</a>)</p> <h3>Description</h3> <p>The BorlandGenerateClient is a task dedicated to Borland Application Server v 4.5. It offers to generate the client jar file corresponding to an ejb jar file.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top" width="63"><b>Attribute</b></td> <td valign="top" width="915"><b>Description</b></td> <td align="center" valign="top" width="62"><b>Required</b></td> </tr> <tr> <td valign="top" width="63">ejbjar</td> <td valign="top" width="915">ejb jar file</td> <td align="center" valign="middle" width="62">yes</td> </tr> <tr> <td valign="top" width="63">debug</td> <td valign="top" width="915">If true, turn on the debug mode for each borland tools (java2iiop, iastool ...) default = false</td> <td align="center" valign="middle" width="62">no</td> </tr> <tr> <td valign="top" width="63">clientjar</td> <td valign="top" width="915">client jar file name. If missing the client jar file name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar => hellobean-ejbclient.jar</td> <td align="center" valign="middle" width="62">no</td> </tr> <tr> <td valign="top" width="63">mode</td> <td valign="top" width="915">choose the command launching mode. Two values: java or fork. default = fork. java is not supported for version=5.Possibility to specify a classpath.</td> <td align="center" valign="middle" width="62">no</td> </tr> <tr> <td valign="top" width="63">version</td> <td valign="top" width="915">set the Borland Application Version. <ul> <li>4 means B.A.S (Borland Application Server 4.x)</li> <li>5 means B.E.S (Borland Application Server 5.x)</li> </ul> </td> <td align="center" valign="middle" width="62">No, defaults to 4</td> </tr> </table> <h3>Examples</h3> <p>The following build.xml snippet is an example of how to use Borland element into the ejbjar task using the java mode.</p> <pre> <blgenclient ejbjar="lib/secutest-ejb.jar" clientjar="lib/client.jar" debug="true" mode="fork"> version="5"> <classpath> <pathelement location="mymodule.jar"/> </classpath> </blgenclient> </pre> <pre> </pre> </body> </html> --- NEW FILE: jarlib-manifest.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>jarlib-manifest Task</title> </head> <body> <h2><a name="jarlib-manifest">jarlib-manifest</a></h2> <h3>Description</h3> <p>Task to generate a manifest that declares all the dependencies in manifest. The dependencies are determined by looking in the specified path and searching for Extension / "Optional Package" specifications in the manifests of the jars.</p> <p>Note that this task works with extensions as defined by the "Optional Package" specification. For more information about optional packages, see the document <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html"> http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p> <p>See the Extension and ExtensionSet documentation for further details</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">destfile</td> <td valign="top">The file to generate Manifest into</td> <td valign="top" align="center">Yes.</td> </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>extension</h4> <p><a href="../OptionalTypes/extension.html">Extension</a> the extension that this library implements.</p> <h4>depends</h4> <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing all dependencies for jar.</p> <h4>options</h4> <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s containing all optional dependencies for jar. (Optional dependencies will be used if present else they will be ignored)</p> <h3>Examples</h3> <p><b>Basic Manifest generated for single Extension</b></p> <pre> <extension id="e1" extensionName="MyExtensions" specificationVersion="1.0" specificationVendor="Peter Donald" implementationVendorID="vv" implementationVendor="Apache" implementationVersion="2.0" implementationURL="http://somewhere.com"/> <jarlib-manifest destfile="myManifest.txt"> <extension refid="e1"/> </jarlib-manifest> </pre> <p><b>Search for extension in fileset</b></p> <p><b>A large example with required and optional dependencies</b></p> <pre> <extension id="e1" extensionName="MyExtensions" specificationVersion="1.0" specificationVendor="Peter Donald" implementationVendorID="vv" implementationVendor="Apache" implementationVersion="2.0" implementationURL="http://somewhere.com"/> <extensionSet id="option.ext"> <libfileset dir="lib/option"> <include name="**/*.jar"/> </libfileset> </extensionSet> <extensionSet id="depends.ext"> <libfileset dir="lib/required"> <include name="*.jar"/> </libfileset> </extensionSet> <jarlib-manifest destfile="myManifest.txt"> <extension refid="e1"/> <depends refid="depends.ext"/> <options refid="option.ext"/> </jarlib-manifest> </pre> </body> </html> --- NEW FILE: perforce.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> [...967 lines suppressed...] additional global options to be set.<br> Added p4fstat task</td> </tr> <tr> <td valign="top">May 2003</td> <td valign="top">V1.3</td> <td valign="top">Added p4labelsync, p4resolve, p4integrate.<br> Changed p4submit (detection of changes of change numbers, and of failed submits due to resolution needed)</td> </tr> <tr> <td valign="top">Jan 2004</td> <td valign="top">ant 1.6.1</td> <td valign="top"> Changed p4submit, needsresolveproperty and changeproperty added</td> </tr> </table> </body> </html> --- NEW FILE: cab.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Cab Task</title> </head> <body> <h2><a name="cab">Cab</a></h2> <h3>Description</h3> <p>The cab task creates Microsoft cab archive files. It is invoked similar to the <a href="../CoreTasks/jar.html">jar</a> or <a href="../CoreTasks/zip.html">zip</a> tasks. This task will work on Windows using the external cabarc tool (provided by Microsoft) which must be located in your executable path.</p> <p>To use this task on other platforms you need to download and compile libcabinet from <a href="http://trill.cis.fordham.edu/~barbacha/cabinet_library/"> http://trill.cis.fordham.edu/~barbacha/cabinet_library/</a>.</p> <p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the inclusion/exclusion of files works, and how to write patterns.</p> <p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all attributes of <code><fileset></code> (<code>dir</code> becomes <code>basedir</code>) as well as the nested <code><include></code>, <code><exclude></code> and <code><patternset></code> elements.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">cabfile</td> <td valign="top">the name of the cab file to create.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">basedir</td> <td valign="top">the directory to start archiving files from.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">verbose</td> <td valign="top">set to "yes" if you want to see the output from the cabarc tool. defaults to "no".</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">compress</td> <td valign="top">set to "no" to store files without compressing. defaults to "yes".</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">options</td> <td valign="top">use to set additional command-line options for the cabarc tool. should not normally be necessary.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">includes</td> <td valign="top">comma- or space-separated list of patterns of files that must be included. All files are included when omitted.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">includesfile</td> <td valign="top">the name of a file. Each line of this file is taken to be an include pattern</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">excludes</td> <td valign="top">comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">excludesfile</td> <td valign="top">the name of a file. Each line of this file is taken to be an exclude pattern</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">defaultexcludes</td> <td valign="top">indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted.</td> <td valign="top" align="center">No</td> </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>fileset</h4> <p>The cab task supports one nested <a href="../CoreTypes/fileset.html"><code><fileset></code></a> element to specify the files to be included in the archive. If this is specified, the "basedir" attribute cannot be used. </p> <h3>Examples</h3> <blockquote><pre> <cab cabfile="${dist}/manual.cab" basedir="htdocs/manual" /> </pre></blockquote> <p>cabs all files in the htdocs/manual directory into a file called manual.cab in the ${dist} directory.</p> <blockquote><pre> <cab cabfile="${dist}/manual.cab" basedir="htdocs/manual" excludes="mydocs/**, **/todo.html" /> </pre></blockquote> <p>cabs all files in the htdocs/manual directory into a file called manual.cab in the ${dist} directory. Files in the directory mydocs, or files with the name todo.html are excluded.</p> <blockquote><pre> <cab cabfile="${dist}/manual.cab" basedir="htdocs/manual" includes="api/**/*.html" excludes="**/todo.html" verbose="yes" /> </pre></blockquote> <p>Cab all files in the htdocs/manual directory into a file called manual.cab in the ${dist} directory. Only html files under the directory api are archived, and files with the name todo.html are excluded. Output from the cabarc tool is displayed in the build output.</p> <blockquote><pre> <cab cabfile="${dist}/manual.cab" verbose="yes"> <fileset dir="htdocs/manual" includes="api/**/*.html" excludes="**/todo.html" /> </cab> </pre></blockquote> <p>is equivalent to the example above.</p> </body> </html> --- NEW FILE: jarlib-available.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>jarlib-available Task</title> </head> <body> <h2><a name="jarlib-available">jarlib-available</a></h2> <h3>Description</h3> <p>Check whether an extension is present in a fileset or an extensionSet. If the extension is present then a property is set.</p> <p>Note that this task works with extensions as defined by the "Optional Package" specification. For more information about optional packages, see the document <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html"> http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p> <p>See the Extension and ExtensionSet documentation for further details</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">property</td> <td valign="top">The name of property to set if extensions is available.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">file</td> <td valign="top">The file to check for extension</td> <td valign="top" align="center">No, one of file, nested ExtensionSet or nested fileset must be present.</td> </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>extension</h4> <p><a href="../OptionalTypes/extension.html">Extension</a> the extension to search for.</p> <h4>fileset</h4> <p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select sets of files to check for extension.</p> <h4>extensionSet</h4> <p><a href="../OptionalTypes/extensionset.html">ExtensionSet</a>s is the set of extensions to search for extension in.</p> <h3>Examples</h3> <p><b>Search for extension in single file</b></p> <pre> <jarlib-available property="myext.present" file="myfile.jar"> <extension extensionName="org.apache.tools.ant" specificationVersion="1.4.9" specificationVendor="Apache Software Foundation"/> </jarlib-available> </pre> <p><b>Search for extension in single file referencing external Extension</b></p> <pre> <extension id="myext" extensionName="org.apache.tools.ant" specificationVersion="1.4.9" specificationVendor="Apache Software Foundation"/> <jarlib-available property="myext.present" file="myfile.jar"> <extension refid="myext"/> </jarlib-available> </pre> <p><b>Search for extension in fileset</b></p> <pre> <extension id="myext" extensionName="org.apache.tools.ant" specificationVersion="1.4.9" specificationVendor="Apache Software Foundation"/> <jarlib-available property="myext.present"> <extension refid="myext"/> <fileset dir="lib"> <include name="*.jar"/> </fileset> </jarlib-available> </pre> <p><b>Search for extension in extensionSet</b></p> <pre> <extension id="myext" extensionName="org.apache.tools.ant" specificationVersion="1.4.9" specificationVendor="Apache Software Foundation"/> <jarlib-available property="myext.present"> <extension refid="myext"/> <extensionSet id="exts3"> <libfileset includeUrl="false" includeImpl="true" dir="lib"> <include name="*.jar"/> </libfileset> </extensionSet> </jarlib-available> </pre> </body> </html> --- NEW FILE: jarlib-resolve.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>jarlib-resolve Task</title> </head> <body> <h2><a name="jarlib-resolve">jarlib-resolve</a></h2> <h3>Description</h3> <p>Try to locate a jar to satisfy an extension and place location of jar into property. The task allows you to add a number of resolvers that are capable of locating a library for a specific extension. Each resolver will be attempted in specified order until library is found or no resolvers are left. If no resolvers are left and failOnError is true then a BuildException will be thrown.</p> <p>Note that this task works with extensions as defined by the "Optional Package" specification. For more information about optional packages, see the document <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html"> http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p> <p>See the Extension and ExtensionSet documentation for further details</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">property</td> <td valign="top">The name of property to set to library location.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">failOnError</td> <td valign="top">True if failure to locate library should result in build exception.</td> <td valign="top" align="center">No, defaults to true.</td> </tr> <tr> <td valign="top">checkExtension</td> <td valign="top">True if libraries returned by nested resolvers should be checked to see if they supply extension.</td> <td valign="top" align="center">No, defaults to true.</td> </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>extension</h4> <p><a href="../OptionalTypes/extension.html">Extension</a> the extension to resolve. Must be present</p> <h4>location</h4> <p>The location sub element allows you to look for a library in a location relative to project directory.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">location</td> <td valign="top">The pathname of library.</td> <td valign="top" align="center">Yes</td> </tr> </table> <h4>url</h4> <p>The url resolver allows you to download a library from a URL to a local file.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">url</td> <td valign="top">The URL to download.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">destfile</td> <td valign="top">The file to download URL into.</td> <td valign="top" align="center">No, But one of destfile or destdir must be present</td> </tr> <tr> <td valign="top">destdir</td> <td valign="top">The directory in which to place downloaded file.</td> <td valign="top" align="center">No, But one of destfile or destdir must be present</td> </tr> </table> <h4>ant</h4> <p>The ant resolver allows you to run a ant build file to generate a library.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">antfile</td> <td valign="top">The build file.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">destfile</td> <td valign="top">The file that the ant build creates.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">target</td> <td valign="top">The target to run in build file.</td> <td valign="top" align="center">No</td> </tr> </table> <h3>Examples</h3> <p><b>Resolve Extension to file.</b> If file does not exist or file does not implement extension then throw an exception.</p> <pre> <extension id="dve.ext" extensionName="org.realityforge.dve" specificationVersion="1.2" specificationVendor="Peter Donald"/> <jarlib-resolve property="dve.library"> <extension refid="dve.ext"/> <location location="/opt/jars/dve.jar"/> </jarlib-resolve> </pre> <p><b>Resolve Extension to url.</b> If url does not exist or can not write to destfile or files does not implement extension then throw an exception.</p> <pre> <extension id="dve.ext" extensionName="org.realityforge.dve" specificationVersion="1.2" specificationVendor="Peter Donald"/> <jarlib-resolve property="dve.library"> <extension refid="dve.ext"/> <url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/> </jarlib-resolve> </pre> <p><b>Resolve Extension to file produce by ant build.</b> If file does not get produced or ant file is missing or build fails then throw an exception (Note does not check that library implements extension).</p> <pre> <extension id="dve.ext" extensionName="org.realityforge.dve" specificationVersion="1.2" specificationVendor="Peter Donald"/> <jarlib-resolve property="dve.library" checkExtension="false"> <extension refid="dve.ext"/> <ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/> </jarlib-resolve> </pre> <p><b>Resolve Extension via multiple methods.</b> First check local file to see if it implements extension. If it does not then try to build it from source in parallel directory. If that fails then finally try to download it from a website. If all steps fail then throw a build exception.</p> <pre> <extension id="dve.ext" extensionName="org.realityforge.dve" specificationVersion="1.2" specificationVendor="Peter Donald"/> <jarlib-resolve property="dve.library"> <extension refid="dve.ext"/> <location location="/opt/jars/dve.jar"/> <ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/> <url url="http://www.realityforge.net/jars/dve.jar" destfile="lib/dve.jar"/> </jarlib-resolve> </pre> </body> </html> --- NEW FILE: antlr.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>ANTLR Task</title> </head> <body> <h2><a name="antlr">ANTLR</a></h2> <h3>Description</h3> <p> Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator on a grammar file. </p> <p> To use the ANTLR task, set the <i>target</i> attribute to the name of the grammar file to process. Optionally, you can also set the <i>outputdirectory</i> to write the generated file to a specific directory. Otherwise ANTLR writes the generated files to the directory containing the grammar file. </p> <p> This task only invokes ANTLR if the grammar file (or the supergrammar specified by the glib attribute) is newer than the generated files. </p> <p>Antlr 2.7.1 Note: <i> To successfully run ANTLR, your best option is probably to build the whole jar with the provided script <b>mkalljar</b> and drop the resulting jar (about 300KB) into /Users/antoine/dev/asf/ant-core/bootstrap/lib. Dropping the default jar (70KB) is probably not enough for most needs and your only option will be to add ANTLR home directory to your classpath as described in ANTLR <tt>install.html</tt> document. </i> </p> <p>Antlr 2.7.2 Note: <i> Instead of the above, you will need antlrall.jar that can be created by the <b>antlr-all.jar</b> target of the Makefile provided with the download. </i> </p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">target</td> <td valign="top">The grammar file to process.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">outputdirectory</td> <td valign="top"> The directory to write the generated files to. If not set, the files are written to the directory containing the grammar file. </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">glib</td> <td valign="top"> An optional super grammar file that the target grammar overrides. This feature is only needed for advanced vocabularies. </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">debug</td> <td valign="top"> When set to "yes", this flag adds code to the generated parser that will launch the ParseView debugger upon invocation. The default is "no". <br> Note: ParseView is a separate component that needs to be installed or your grammar will have compilation errors. </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">html</td> <td valign="top"> Emit an html version of the grammar with hyperlinked actions. </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">diagnostic</td> <td valign="top"> Generates a text file with debugging information based on the target grammar. </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">trace</td> <td valign="top"> Forces <b>all</b> rules to call traceIn/traceOut if set to "yes". The default is "no". </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">traceParser</td> <td valign="top"> Only forces parser rules to call traceIn/traceOut if set to "yes". The default is "no". </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">traceLexer</td> <td valign="top"> Only forces lexer rules to call traceIn/traceOut if set to "yes". The default is "no". </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">traceTreeWalker</td> <td valign="top"> Only forces tree walker rules to call traceIn/traceOut if set to "yes". The default is "no". </td> <td valign="top" align="center">No</td> </tr> <!--tr> <td valign="top">fork</td> <td valign="top">Run ANTLR in a separate VM.</td> <td align="center" valign="top">No, default is "off"</td> </tr--> <tr> <td valign="top">dir</td> <td valign="top">The directory to invoke the VM in. <!--(ignored if fork is disabled)--></td> <td align="center" valign="top">No</td> </tr> </table> <h3><a name="nested">Nested Elements</a></h3> <p><code>ANTLR</code> supports a nested <code><classpath></code> element, that represents a <a href="../using.html#path">PATH like structure</a>. It is given as a convenience if you have to specify the original ANTLR directory. In most cases, dropping the appropriate ANTLR jar in the normal Ant lib repository will be enough.</p> <h4>jvmarg</h4> <p><!--If fork is enabled, -->Additional parameters may be passed to the new VM via nested <code><jvmarg></code> attributes, for example:</p> <pre> <antlr target="..."> <jvmarg value="-Djava.compiler=NONE"/> ... </antlr> </pre> <p>would run ANTLR in a VM without JIT.</p> <p><code><jvmarg></code> allows all attributes described in <a href="../using.html#arg">Command line arguments</a>.</p> <h3>Example</h3> <blockquote><pre> <antlr target="etc/java.g" outputdirectory="build/src" /> </pre></blockquote> <p> This invokes ANTLR on grammar file etc/java.g, writing the generated files to build/src. </p> </body> </html> --- NEW FILE: echoproperties.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Echoproperties Task</title> </head> <body> <h2><a name="echoproperties">echoproperties</a></h2> <h3>Description</h3> <p>Displays all the current properties (or a subset of them specified by a nested <code><propertyset></code>) in the project. The output can be sent to a file if desired. This task can be used as a somewhat contrived means of returning data from an <tt><ant></tt> invocation, but is really for debugging build files.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">destfile</td> <td valign="top">If specified, the value indicates the name of the file to send the output of the statement to. The generated output file is compatible for loading by any Java application as a property file. If not specified, then the output will go to the Ant log.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">prefix</td> <td valign="top"> a prefix which is used to filter the properties only those properties starting with this prefix will be echoed. <P> </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">regex</td> <td valign="top"> a regular expression which is used to filter the properties only those properties whose names match it will be echoed. </td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">failonerror</td> <td valign="top">By default, the "failonerror" attribute is enabled. If an error occurs while writing the properties to a file, and this attribute is enabled, then a BuildException will be thrown, causing the build to fail. If disabled, then IO errors will be reported as a log statement, and the build will continue without failure from this task.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">format</td> <td valign="top">One of <code>text</code> or <code>xml</code>. Determines the output format. Defaults to <code>text</code>.</td> <td valign="top" align="center">No</td> </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>propertyset</h4> <p>You can specify subsets of properties to be echoed with <a href="../CoreTypes/propertyset.html">propertyset</a>s. Using <tt>propertyset</tt>s gives more control on which properties will be picked up. The attributes <tt>prefix</tt> and <tt>regex</tt> are just shorcuts that use <tt>propertyset</tt>s internally. </p> <p><em>since Ant 1.6</em>.</p> <h3>Examples</h3> <blockquote><pre> <echoproperties/> </pre></blockquote> <p>Report the current properties to the log.</p> <blockquote><pre> <echoproperties destfile="my.properties"/> </pre></blockquote> <p>Report the current properties to the file "my.properties", and will fail the build if the file could not be created or written to.</p> <blockquote><pre> <echoproperties destfile="my.properties" failonerror="false"/> </pre></blockquote> <p>Report the current properties to the file "my.properties", and will log a message if the file could not be created or written to, but will still allow the build to continue.</p> <blockquote><pre> <echoproperties prefix="java."/> </pre></blockquote> <p>List all properties beginning with "java."</p> <blockquote><pre> <echoproperties> <propertyset> <propertyref prefix="java."/> </propertyset> </echoproperties> </pre></blockquote> <p>This again lists all properties beginning with "java." using a nested <tt></propertyset></tt> which is an equivalent but longer way.</p> <blockquote><pre> <echoproperties regex=".*ant.*"/> </pre></blockquote> <p>Lists all properties that contain "ant" in their names. The equivalent snippet with <tt></propertyset></tt> is:</p> <blockquote><pre> <echoproperties> <propertyset> <propertyref regex=".*ant.*"/> </propertyset> </echoproperties> </pre></blockquote> </body> </html> --- NEW FILE: attrib.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Ant User Manual</title> </head> <body> <h2><a name="attrib">Attrib</a></h2> <p><em>Since Ant 1.6.</em></p> <h3>Description</h3> <p>Changes the attributes of a file or all files inside specified directories. Right now it has effect only under Windows. Each of the 4 possible permissions has its own attribute, matching the arguments for the attrib command.</p> <p><a href="../CoreTypes/fileset.html">FileSet</a>s, <a href="../CoreTypes/dirset.html">DirSet</a>s or <a href="../CoreTypes/filelist.html">FileList</a>s can be specified using nested <code><fileset></code>, <code><dirset></code> and <code><filelist></code> elements.</p> <p>Starting with Ant 1.7, this task supports arbitrary <a href="../CoreTypes/resources.html#collection">Resource Collection</a>s as nested elements.</p> <p>By default this task will use a single invocation of the underlying attrib command. If you are working on a large number of files this may result in a command line that is too long for your operating system. If you encounter such problems, you should set the maxparallel attribute of this task to a non-zero value. The number to use highly depends on the length of your file names (the depth of your directory tree), so you'll have to experiment a little.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">file</td> <td valign="top">the file or directory of which the permissions must be changed.</td> <td valign="top" valign="middle">Yes or nested <code><fileset/list></code> elements.</td> </tr> <tr> <td valign="top">readonly</td> <td valign="top">the readonly permission.</td> <td valign="top" rowspan="4">at least one of the four. </td> </tr> <tr> <td valign="top">archive</td> <td valign="top">the archive permission.</td> </tr> <tr> <td valign="top">system</td> <td valign="top">the system permission.</td> </tr> <tr> <td valign="top">hidden</td> <td valign="top">the hidden permission.</td> </tr> <tr> <td valign="top">type</td> <td valign="top">One of <i>file</i>, <i>dir</i> or <i>both</i>. If set to <i>file</i>, only the permissions of plain files are going to be changed. If set to <i>dir</i>, only the directories are considered.<br> <strong>Note:</strong> The type attribute does not apply to nested <i>dirset</i>s - <i>dirset</i>s always implicitly assume type to be <i>dir</i>.</td> <td align="center" valign="top">No, default is <i>file</i></td> </tr> <tr> <td valign="top">verbose</td> <td valign="top">Whether to print a summary after execution or not. Defaults to <code>false</code>.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">parallel</td> <td valign="top">process all specified files using a single <code>chmod</code> command. Defaults to true.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">maxparallel</td> <td valign="top">Limit the amount of parallelism by passing at most this many sourcefiles at once. Set it to <= 0 for unlimited. Defaults to unlimited. <em>Since Ant 1.6.</em></td> <td align="center" valign="top">No</td> </tr> </table> <h3>Examples</h3> <blockquote> <pre><attrib file="${dist}/run.bat" readonly="true" hidden="true"/></pre> </blockquote> <p>makes the "run.bat" file read-only and hidden.</p> <blockquote> <pre><attrib readonly="false"> <fileset dir="${meta.inf}" includes="**/*.xml"/> <attrib> </pre> </blockquote> <p>makes all ".xml" files below <code>${meta.inf}</code> readable.</p> <blockquote> <pre> <attrib readonly="true" archive="true"> <fileset dir="shared/sources1"> <exclude name="**/trial/**"/> </fileset> <fileset refid="other.shared.sources"/> </attrib> </pre> </blockquote> <p>makes all files below <code>shared/sources1</code> (except those below any directory named trial) read-only and archived. In addition all files belonging to a FileSet with <code>id</code> <code>other.shared.sources</code> get the same attributes.</p> </body> </html> --- NEW FILE: netrexxc.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>NetRexxC Task</title> </head> <body> <h2><a name="netrexxc">NetRexxC</a></h2> <h3>Description</h3> <p>Compiles a <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a> source tree within the running (Ant) VM.</p> <p>The source and destination directory will be recursively scanned for NetRexx source files to compile. Only NetRexx files that have no corresponding class file or where the class file is older than the java file will be compiled.</p> <p>Files in the source tree are copied to the destination directory, allowing support files to be located properly in the classpath. The source files are copied because the NetRexx compiler cannot produce class files in a specific directory via parameters</p> <p>The directory structure of the source tree should follow the package hierarchy.</p> <p>It is possible to refine the set of files that are being compiled/copied. This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i> attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify the files you want to have excluded. This is also done with patterns. And finally with the <i>defaultexcludes</i> attribute, you can specify whether you want to use default exclusions or not. See the section on <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the inclusion/exclusion of files works, and how to write patterns.</p> <p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all attributes of <code><fileset></code> (<code>dir</code> becomes <code>srcdir</code>) as well as the nested <code><include></code>, <code><exclude></code> and <code><patternset></code> elements.</p> <p>All properties except classpath, srcdir and destDir are also available as properties in the form <code>ant.netrexxc.<i>attributename</i></code>, eg.<br> <code><property name="ant.netrexxc.verbose" value="noverbose"/></code><br> or from the command line as<br> <code>ant -Dant.netrexxc.verbose=noverbose ...</code> </p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">binary</td> <td valign="top">Whether literals are treated as the java binary type rather than the NetRexx types</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">classpath</td> <td valign="top">The classpath to use during compilation</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">comments</td> <td valign="top">Whether comments are passed through to the generated java source</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">compact</td> <td valign="top">Whether error messages come out in compact or verbose format. Default is the compact format.</td> <td valign="top" align="center">No</... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:24
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/etc In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/etc Added Files: ant-bootstrap.jar changelog.xsl coverage-frames.xsl jdepend-frames.xsl jdepend.xsl junit-frames-xalan1.xsl junit-frames.xsl junit-noframes.xsl log.xsl maudit-frames.xsl mmetrics-frames.xsl tagdiff.xsl Log Message: Update 4 years old ant. --- NEW FILE: jdepend.xsl --- <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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xsl:output method="html" indent="yes" encoding="US-ASCII"/> <xsl:template match="JDepend"> <html> <head> <title>JDepend Analysis</title> <style type="text/css"> body { font:normal 68% verdana,arial,helvetica; color:#000000; } table tr td, tr th { font-size: 68%; } table.details tr th{ font-weight: bold; text-align:left; background:#a6caf0; } table.details tr td{ background:#eeeee0; } p { line-height:1.5em; margin-top:0.5em; margin-bottom:1.0em; margin-left:2em; margin-right:2em; } h1 { margin: 0px 0px 5px; font: 165% verdana,arial,helvetica } h2 { margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica } h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica } h4 { margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica } h5 { margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica } h6 { margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica } .Error { font-weight:bold; color:red; } .Failure { font-weight:bold; color:purple; } .Properties { text-align:right; } </style> </head> <body> <!--h1>JDepend Report</h1> <ul> <xsl:for-each select="./Packages/Package"> <xsl:sort select="@name"/> <li><xsl:value-of select="@name"/></li> </xsl:for-each> </ul--> <h1><a name="top">JDepend Analysis</a></h1> <p align="right">Designed for use with <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> and <a href="http://jakarta.apache.org">Ant</a>.</p> <hr size="2" /> <table width="100%"><tr><td> <a name="NVsummary"><h2>Summary</h2></a> </td><td align="right"> [<a href="#NVsummary">summary</a>] [<a href="#NVpackages">packages</a>] [<a href="#NVcycles">cycles</a>] [<a href="#NVexplanations">explanations</a>] </td></tr></table> <table width="100%" class="details"> <tr> <th>Package</th> <th>Total Classes</th> <th><a href="#EXnumber">Abstract Classes</a></th> <th><a href="#EXnumber">Concrete Classes</a></th> <th><a href="#EXafferent">Afferent Couplings</a></th> <th><a href="#EXefferent">Efferent Couplings</a></th> <th><a href="#EXabstractness">Abstractness</a></th> <th><a href="#EXinstability">Instability</a></th> <th><a href="#EXdistance">Distance</a></th> </tr> <xsl:for-each select="./Packages/Package"> <xsl:if test="count(error) = 0"> <tr> <td align="left"> <a> <xsl:attribute name="href">#PK<xsl:value-of select="@name"/> </xsl:attribute> <xsl:value-of select="@name"/> </a> </td> <td align="right"><xsl:value-of select="Stats/TotalClasses"/></td> <td align="right"><xsl:value-of select="Stats/AbstractClasses"/></td> <td align="right"><xsl:value-of select="Stats/ConcreteClasses"/></td> <td align="right"><xsl:value-of select="Stats/Ca"/></td> <td align="right"><xsl:value-of select="Stats/Ce"/></td> <td align="right"><xsl:value-of select="Stats/A"/></td> <td align="right"><xsl:value-of select="Stats/I"/></td> <td align="right"><xsl:value-of select="Stats/D"/></td> </tr> </xsl:if> </xsl:for-each> <xsl:for-each select="./Packages/Package"> <xsl:if test="count(error) > 0"> <tr> <td align="left"> <xsl:value-of select="@name"/> </td> <td align="left" colspan="8"><xsl:value-of select="error"/></td> </tr> </xsl:if> </xsl:for-each> </table> <table width="100%"><tr><td> <a name="NVpackages"><h2>Packages</h2></a> </td><td align="right"> [<a href="#NVsummary">summary</a>] [<a href="#NVpackages">packages</a>] [<a href="#NVcycles">cycles</a>] [<a href="#NVexplanations">explanations</a>] </td></tr></table> <xsl:for-each select="./Packages/Package"> <xsl:if test="count(error) = 0"> <h3><a><xsl:attribute name="name">PK<xsl:value-of select="@name"/></xsl:attribute> <xsl:value-of select="@name"/></a></h3> <table width="100%"><tr> <td><a href="#EXafferent">Afferent Couplings</a>: <xsl:value-of select="Stats/Ca"/></td> <td><a href="#EXefferent">Efferent Couplings</a>: <xsl:value-of select="Stats/Ce"/></td> <td><a href="#EXabstractness">Abstractness</a>: <xsl:value-of select="Stats/A"/></td> <td><a href="#EXinstability">Instability</a>: <xsl:value-of select="Stats/I"/></td> <td><a href="#EXdistance">Distance</a>: <xsl:value-of select="Stats/D"/></td> </tr></table> <table width="100%" class="details"> <tr> <th>Abstract Classes</th> <th>Concrete Classes</th> <th>Used by Packages</th> <th>Uses Packages</th> </tr> <tr> <td valign="top" width="25%"> <xsl:if test="count(AbstractClasses/Class)=0"> <i>None</i> </xsl:if> <xsl:for-each select="AbstractClasses/Class"> <xsl:value-of select="node()"/><br/> </xsl:for-each> </td> <td valign="top" width="25%"> <xsl:if test="count(ConcreteClasses/Class)=0"> <i>None</i> </xsl:if> <xsl:for-each select="ConcreteClasses/Class"> <xsl:value-of select="node()"/><br/> </xsl:for-each> </td> <td valign="top" width="25%"> <xsl:if test="count(UsedBy/Package)=0"> <i>None</i> </xsl:if> <xsl:for-each select="UsedBy/Package"> <a> <xsl:attribute name="href">#PK<xsl:value-of select="node()"/></xsl:attribute> <xsl:value-of select="node()"/> </a><br/> </xsl:for-each> </td> <td valign="top" width="25%"> <xsl:if test="count(DependsUpon/Package)=0"> <i>None</i> </xsl:if> <xsl:for-each select="DependsUpon/Package"> <a> <xsl:attribute name="href">#PK<xsl:value-of select="node()"/></xsl:attribute> <xsl:value-of select="node()"/> </a><br/> </xsl:for-each> </td> </tr> </table> </xsl:if> </xsl:for-each> <table width="100%"><tr><td> <a name="NVcycles"><h2>Cycles</h2></a> </td><td align="right"> [<a href="#NVsummary">summary</a>] [<a href="#NVpackages">packages</a>] [<a href="#NVcycles">cycles</a>] [<a href="#NVexplanations">explanations</a>] </td></tr></table> <xsl:if test="count(Cycles/Package) = 0"> <p>There are no cyclic dependancies.</p> </xsl:if> <xsl:for-each select="Cycles/Package"> <h3><xsl:value-of select="@Name"/></h3><p> <xsl:for-each select="Package"> <xsl:value-of select="."/><br/> </xsl:for-each></p> </xsl:for-each> <table width="100%"><tr><td> <a name="NVexplanations"><h2>Explanations</h2></a> </td><td align="right"> [<a href="#NVsummary">summary</a>] [<a href="#NVpackages">packages</a>] [<a href="#NVcycles">cycles</a>] [<a href="#NVexplanations">explanations</a>] </td></tr></table> <p>The following explanations are for quick reference and are lifted directly from the original <a href="http://www.clarkware.com/software/JDepend.html">JDepend documentation</a>.</p> <h3><a name="EXnumber">Number of Classes</a></h3> <p>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</p> <h3><a name="EXafferent">Afferent Couplings</a></h3> <p>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. </p> <h3><a name="EXefferent">Efferent Couplings</a></h3> <p>The number of other packages that the classes in the package depend upon is an indicator of the package's independence. </p> <h3><a name="EXabstractness">Abstractness</a></h3> <p>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. </p> <p>The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. </p> <h3><a name="EXinstability">Instability</a></h3> <p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. </p> <p>The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. </p> <h3><a name="EXdistance">Distance</a></h3> <p>The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. </p> <p>A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). </p> <p>The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. </p> </body> </html> </xsl:template> </xsl:stylesheet> --- NEW FILE: tagdiff.xsl --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- 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="http://ant.apache.org/">Ant</a>.</p> <hr size="2"/> <a name="TOP"/> <table width="100%"> <tr> <td align="right"> <a href="#New">New Files</a> | <a href="#Modified">Modified Files</a> | <a href="#Removed">Removed Files</a> </td> </tr> </table> <table border="0" width="100%" cellpadding="3" cellspacing="1"> <xsl:call-template name="show-entries"> <xsl:with-param name="title">New Files</xsl:with-param> <xsl:with-param name="anchor">New</xsl:with-param> <xsl:with-param name="entries" select=".//entry[file/revision][not(file/prevrevision)]"/> </xsl:call-template> <xsl:call-template name="show-entries"> <xsl:with-param name="title">Modified Files</xsl:with-param> <xsl:with-param name="anchor">Modified</xsl:with-param> <xsl:with-param name="entries" select=".//entry[file/revision][file/prevrevision]"/> </xsl:call-template> <!-- 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: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> --- NEW FILE: ant-bootstrap.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: mmetrics-frames.xsl --- <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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software [...986 lines suppressed...] </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> --- NEW FILE: changelog.xsl --- <?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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <xsl:param name="title"/> <xsl:param name="module"/> <xsl:param name="cvsweb"/> <xsl:output method="html" indent="yes" encoding="US-ASCII" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html401/strict.dtd"/> <!-- Copy standard document elements. Elements that should be ignored must be filtered by apply-templates tags. --> <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="attribute::*[. != '']"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="changelog"> <html> <head> <title><xsl:value-of select="$title"/></title> <style type="text/css"> body, p { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 80%; color: #000000; background-color: #ffffff; } tr, td { font-family: Verdana, Arial, Helvetica, sans-serif; background: #eeeee0; } td { padding-left: 20px; } .dateAndAuthor { font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; text-align: left; background: #a6caf0; padding-left: 3px; } a { color: #000000; } pre { font-weight: bold; } </style> </head> <body> <h1> <a name="top"><xsl:value-of select="$title"/></a> </h1> <p style="text-align: right">Designed for use with <a href="http://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> --- NEW FILE: log.xsl --- <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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- The purpose have this XSL is to provide a nice way to look at the output from the Ant XmlLogger (ie: ant -listener org.apache.tools.ant.XmlLogger ) @author <a href="mailto:sba...@ap...">Stephane Bailliez</a> --> <xsl:decimal-format decimal-separator="." grouping-separator="," /> <xsl:template match="/"> <html> <head> <style type="text/css"> .bannercell { border: 0px; padding: 0px; } body { margin: 0; font:normal 100% arial,helvetica,sanserif; background-color:#FFFFFF; color:#000000; } table.status { font:bold 80% arial,helvetica,sanserif; background-color:#525D76; color:#ffffff; } table.log tr td, tr th { font-size: 80%; } .error { color:red; } .warn { color:brown; } .info { color:gray; } .debug{ color:gray; } .failed { font-size:80%; background-color: red; color:#FFFFFF; font-weight: bold } .complete { font-size:80%; background-color: #525D76; color:#FFFFFF; font-weight: bold } .a td { background: #efefef; } .b td { background: #fff; } th, td { text-align: left; vertical-align: top; } th { background: #ccc; color: black; } table, th, td { border: none } h3 { font:bold 80% arial,helvetica,sanserif; background: #525D76; color: white; text-decoration: none; padding: 5px; margin-right: 2px; margin-left: 2px; margin-bottom: 0; } </style> </head> <body> <!-- jakarta logo --> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td valign="top" class="bannercell"> <a href="http://jakarta.apache.org/"> <img src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="http://jakarta.apache.org" align="left" border="0"/> </a> </td> <td style="text-align:right;vertical-align:bottom"> <a href="http://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> --- NEW FILE: junit-frames.xsl --- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils" extension-element-prefixes="redirect"> <xsl:output method="html" indent="yes" encoding="US-ASCII"/> <xsl:decimal-format decimal-separator="." grouping-separator=","/> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- 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> <!-- 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> <!-- 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.txt"> <xsl:value-of disable-output-escaping="yes" select="./system-out"/> </redirect:write> </xsl:if> <xsl:if test="string-length(./system-err)!=0"> <redirect:write file="{$output.dir}/{$package.dir}/{@id}_{@name}-err.txt"> <xsl:value-of disable-output-escaping="yes" select="./system-err"/> </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: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> <!-- Create list of all/failed/errored 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: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=".//testcase[error]" mode="print.test"> <xsl:with-param name="show.class" select="'yes'"/> </xsl:apply-templates> </xsl:when> <xsl:otherwise> <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: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: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.txt</xsl:attribute> System.out » </a> </div> </xsl:if> <xsl:if test="string-length(./system-err)!=0"> <div class="Properties"> <a> <xsl:attribute name="href">./<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>-err.txt</xsl:attribute> System.err » </a> </div> </xsl:if> </body> </html> </xsl:template> <!-- Write properties into a JavaScript data structure. This is based on the original idea by Erik Hatcher (eha...@ap...) --> <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="timeCount" select="sum(testsuite/@time)"/> <xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/> <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> <tr valign="top"> <th>Tests</th> <th>Failures</th> <th>Errors</th> <th>Success rate</th> <th>Time</th> </tr> <tr valign="top"> <xsl:attribute name="class"> <xsl:choose> <xsl:when test="$errorCount > 0">Error</xsl:when> <xsl:when test="$failureCount > 0">Failure</xsl:when> <xsl:otherwise>Pass</xsl:otherwise> </xsl:choose> </xsl:attribute> <td><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> <xsl:call-template name="display-percent"> <xsl:with-param name="value" select="$successRate"/> </xsl:call-template> </td> <td> <xsl:call-template name="display-time"> <xsl:with-param name="value" select="$timeCount"/> </xsl:call-template> </td> </tr> </table> <table border="0" width="95%"> <tr> <td style="text-align: justify;"> Note: <em>failures</em> are anticipated and checked for with assertions while <em>errors</em> are unanticipated. </td> </tr> </table> <h2>Packages</h2> <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> <xsl:call-template name="testsuite.test.header"/> <xsl:for-each select="testsuite[not(./@package = preceding-sibling::testsuite/@package)]"> <xsl:sort select="@package" order="ascending"/> <!-- get the node set containing all testsuites that have the same package --> <xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = current()/@package]"/> <tr valign="top"> <!-- display a failure if there is any failure/error in the package --> <xsl:attribute name="class"> <xsl:choose> <xsl:when test="sum($insamepackage/@errors) > 0">Error</xsl:when> <xsl:when test="sum($insamepackage/@failures) > 0">Failure</xsl:when> <xsl:otherwise>Pass</xsl:otherwise> </xsl:choose> </xsl:attribute> <td><a href="./{translate(@package,'.','/')}/package-summary.html"> <xsl:value-of select="@package"/> <xsl:if test="@package = ''"><none></xsl:if> </a></td> <td><xsl:value-of select="sum($insamepackage/@tests)"/></td> <td><xsl:value-of select="sum($insamepackage/@errors)"/></td> <td><xsl:value-of select="sum($insamepackage/@failures)"/></td> <td> <xsl:call-template name="display-time"> <xsl:with-param name="value" select="sum($insamepackage/@time)"/> </xsl:call-template> </td> <td><xsl:value-of select="$insamepackage/@timestamp"/></td> <td><xsl:value-of select="$insamepackage/@hostname"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> <xsl:template name="package.summary"> <xsl:param name="name"/> <html> <head> <xsl:call-template name="create.stylesheet.link"> <xsl:with-param name="package.name" select="$name"/> </xsl:call-template> </head> <body> <xsl:attribute name="onload">open('package-frame.html','classListFrame')</xsl:attribute> <xsl:call-template name="pageHeader"/> <h3>Package <xsl:value-of select="$name"/></h3> <!--table border="0" cellpadding="5" cellspacing="2" width="95%"> <xsl:call-template name="class.metrics.header"/> <xsl:apply-templates select="." mode="print.metrics"/> </table--> <xsl:variable name="insamepackage" select="/testsuites/testsuite[./@package = $name]"/> <xsl:if test="count($insamepackage) > 0"> <h2>Classes</h2> <p> <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> <xsl:call-template name="testsuite.test.header"/> <xsl:apply-templates select="$insamepackage" mode="print.test"> <xsl:sort select="@name"/> </xsl:apply-templates> </table> </p> </xsl:if> </body> </html> </xsl:template> <!-- transform string like a.b.c to ../../../ @param path the path to transform into a descending directory path --> <xsl:template name="path"> <xsl:param name="path"/> <xsl:if test="contains($path,'.')"> <xsl:text>../</xsl:text> <xsl:call-template name="path"> <xsl:with-param name="path"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param> </xsl:call-template> </xsl:if> <xsl:if test="not(contains($path,'.')) and not($path = '')"> <xsl:text>../</xsl:text> </xsl:if> </xsl:template> <!-- create the link to the stylesheet based on the package name --> <xsl:template name="create.stylesheet.link"> <xsl:param name="package.name"/> <link rel="stylesheet" type="text/css" title="Style"><xsl:attribute name="href"><xsl:if test="not($package.name = 'unnamed package')"><xsl:call-template name="path"><xsl:with-param name="path" select="$package.name"/></xsl:call-template></xsl:if>stylesheet.css</xsl:attribute></link> </xsl:template> <!-- Page HEADER --> <xsl:template name="pageHeader"> <h1>Unit Test Results</h1> <table width="100%"> <tr> <td align="left"></td> <td align="right">Designed for use with <a href="http://www.junit.org/">JUnit</a> and <a href="http://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 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> <x... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:24
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/projects In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/projects Added Files: index.html Log Message: Update 4 years old ant. --- NEW FILE: index.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Welcome</title> <link type="text/css" href="../page.css" rel="stylesheet"> <meta name="author" content="Christoph Wilhelms"> <meta name="email" content="chr...@t-..."> </head> <body> <p class="navpath"> <script src="../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <span class="sel">Welcome</span> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../antlibs/index.html">Introduction</a> </li> <li> <a href="../antlibs/charter.html">Charter</a> </li> <li> <a href="../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Welcome</h1> <h3 class="section"> <a name="Welcome to the Ant Projects Area"></a> Welcome to the Ant Projects Area </h3> <h3>This is where the Ant sub-projects live!</h3> <p>Now, that Ant has become an Apache Top-Level Project it is time to make space on this Web-Page for Ant sub-projects.</p> <p>To make sure you do not miss anything: Stay tuned and visit this page from time to time :)! </p> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:24
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/stylesheets In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/stylesheets Added Files: antmanual.css style.css Log Message: Update 4 years old ant. --- NEW FILE: style.css --- /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ h2 { font-size: 200%; background-color: ffffff; } h3 { font-size: 130%; color: #ffffff; background-color: #525D76; } h4 { color: #ffffff; background-color: #828DA6; } td { background-color: eeeeee; color: 000000; } /* first row */ table tr:first-child td { background-color: cccccc; color: 000000; } /* or th as first row */ table th { background-color: cccccc; color: 000000; } pre { background-color: efefef; } --- NEW FILE: antmanual.css --- /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ body { background-image:url(/images/beta.png) } |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:24
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/OptionalTypes In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/OptionalTypes Added Files: classfileset.html extension.html extensionset.html Log Message: Update 4 years old ant. --- NEW FILE: extension.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Extension Type</title> </head> <body> <h2><a name="fileset">Extension</a></h2> <p>Utility type that represents either an available "Optional Package" (formerly known as "Standard Extension") as described in the manifest of a JAR file, or the requirement for such an optional package.</p> <p>Note that this type works with extensions as defined by the "Optional Package" specification. For more information about optional packages, see the document <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html"> http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p> <h3>Attributes</h3> <p>The extension type supports the following attributes</a>: </p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">extensionName</td> <td valign="top">The name of extension</td> <td valign="top" align="center">yes</td> </tr> <tr> <td valign="top">specificationVersion</td> <td valign="top">The version of extension specification (Must be in dewey decimal aka dotted decimal notation. 3.2.4)</td> <td valign="top" align="center">no</td> </tr> <tr> <td valign="top">specificationVendor</td> <td valign="top">The specification vendor</td> <td valign="top" align="center">no</td> </tr> <tr> <td valign="top">implementationVersion</td> <td valign="top">The version of extension implementation (Must be in dewey decimal aka dotted decimal notation. 3.2.4)</td> <td valign="top" align="center">no</td> </tr> <tr> <td valign="top">implementationVendor</td> <td valign="top">The implementation vendor</td> <td valign="top" align="center">no</td> </tr> <tr> <td valign="top">implementationVendorId</td> <td valign="top">The implementation vendor ID</td> <td valign="top" align="center">no</td> </tr> <tr> <td valign="top">implementationURL</td> <td valign="top">The url from which to retrieve extension.</td> <td valign="top" align="center">no</td> </tr> </table> <h4>Examples</h4> <blockquote><pre> <extension id="e1" extensionName="MyExtensions" specificationVersion="1.0" specificationVendor="Peter Donald" implementationVendorID="vv" implementationVendor="Apache" implementationVersion="2.0" implementationURL="http://somewhere.com/myExt.jar"/> </pre></blockquote> <p>Fully specific extension object.</p> <blockquote><pre> <extension id="e1" extensionName="MyExtensions" specificationVersion="1.0" specificationVendor="Peter Donald"/> </pre></blockquote> <p>Extension object that just species the specification details.</p> </body> </html> --- NEW FILE: classfileset.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>ClassFileSet Type</title> </head> <body> <h2><a name="fileset">ClassFileSet</a></h2> <p>A classfileset is a specialised type of fileset which, given a set of "root" classes, will include all of the class files upon which the root classes depend. This is typically used to create a jar with all of the required classes for a particular application. </p> <p> classfilesets are typically used by reference. They are declared with an "id" value and this is then used as a reference where a normal fileset is expected. </p> <p> This type requires the <code>jakarta-BCEL</code> library. </p> <h3>Attributes</h3> <p>The class fileset support the following attributes in addition to those supported by the <a href="../CoreTypes/fileset.html">standard fileset</a>: </p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">rootclass</td> <td valign="top">A single root class name</td> <td valign="top" align="center">No</td> </tr> </table> <h3>Nested Elements</h3> <h4>Root</h4> <p> When more than one root class is required, multiple nested <code><root></code> elements may be used </p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">classname</td> <td valign="top">The fully qualified name of the root class</td> <td align="center" valign="top">Yes</td> </tr> </table> <h4>RootFileSet</h4> <p> A root fileset is used to add a set of root classes from a fileset. In this case the entries in the fileset are expected to be Java class files. The name of the Java class is determined by the relative location of the classfile in the fileset. So, the file <code>org/apache/tools/ant/Project.class</code> corresponds to the Java class <code>org.apache.tools.ant.Project</code>.</p> <h4>Examples</h4> <blockquote><pre> <classfileset id="reqdClasses" dir="${classes.dir}"> <root classname="org.apache.tools.ant.Project"/> </classfileset> </pre></blockquote> <p>This example creates a fileset containing all the class files upon which the <code>org.apache.tools.ant.Project</code> class depends. This fileset could then be used to create a jar. </p> <blockquote><pre> <jar destfile="minimal.jar"> <fileset refid="reqdClasses"/> </jar> </pre></blockquote> <blockquote><pre> <classfileset id="reqdClasses" dir="${classes.dir}"> <rootfileset dir="${classes.dir}" includes="org/apache/tools/ant/Project*.class"/> </classfileset> </pre></blockquote> <p>This example constructs the classfileset using all the class with names starting with Project in the org.apache.tools.ant package</p> </body> </html> --- NEW FILE: extensionset.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>ExtensionSet Type</title> </head> <body> <h2><a>ExtensionSet</a></h2> <p>Utility type that represents a set of Extensions.</p> <p>Note that this type works with extensions as defined by the "Optional Package" specification. For more information about optional packages, see the document <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html"> http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p> <h3>Nested Elements</h3> <h4>extension</h4> <p><a href="extension.html">Extension</a> object to add to set.</p> <h4>fileset</h4> <p><a href="../CoreTypes/fileset.html">FileSet</a>s all files contained contained within set that are jars and implement an extension are added to extension set.</p> <h4>LibFileSet</h4> <p>All files contained contained within set that are jars and implement an extension are added to extension set. However the extension information may be modified by attributes of libfileset</p> <h4>Examples</h4> <blockquote><pre> <extension id="e1" extensionName="MyExtensions" specificationVersion="1.0" specificationVendor="Peter Donald" implementationVendorID="vv" implementationVendor="Apache" implementationVersion="2.0" implementationURL="http://somewhere.com/myExt.jar"/> <libfileset id="lfs" includeUrl="true" includeImpl="false" dir="tools/lib"> <include name="*.jar"/> </libfileset> <extensionSet id="exts"> <libfileset dir="lib"> <include name="*.jar"/> </libfileset> <libfileset refid="lfs"/> <extension refid="e1"/> </extensionSet> </pre></blockquote> </body> </html> |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:24
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/webtest In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/webtest Added Files: testkeystore Log Message: Update 4 years old ant. --- NEW FILE: testkeystore --- (This appears to be a binary file; contents omitted.) |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/CoreTasks In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/CoreTasks Added Files: ant.html antcall.html antstructure.html apply.html apt.html available.html basename.html buildnumber.html changelog.html checksum.html chmod.html common.html concat.html condition.html conditions.html copy.html copydir.html copyfile.html cvs.html cvspass.html cvstagdiff.html cvsversion.html defaultexcludes.html delete.html deltree.html dependset.html diagnostics.html dirname.html ear.html echo.html echoxml.html exec.html fail.html filter.html fixcrlf.html genkey.html get.html gunzip.html gzip.html import.html input.html jar.html java.html javac.html javadoc.html length.html loadfile.html loadproperties.html loadresource.html macrodef.html mail.html makeurl.html manifest.html manifestclasspath.html mkdir.html move.html nice.html pack.html parallel.html patch.html pathconvert.html presetdef.html property.html recorder.html rename.html replace.html resourcecount.html rmic.html sequential.html signjar.html sleep.html sql.html style.html subant.html sync.html tar.html taskdef.html tempfile.html touch.html tstamp.html typedef.html unpack.html untar.html unzip.html uptodate.html waitfor.html war.html whichresource.html xmlproperty.html zip.html Log Message: Update 4 years old ant. --- NEW FILE: unzip.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Unzip Task</title> </head> <body> <h2><a name="unzip">Unjar/Untar/Unwar/Unzip</a></h2> <h3>Description</h3> <p>Unzips a zip-, war-, or jar file.</p> <p><a href="../CoreTypes/patternset.html">PatternSet</a>s are used to select files to extract <I>from</I> the archive. If no patternset is used, all files are extracted. </p> <p><a href="../CoreTypes/resources.html#collection">Resource Collection</a>s may be used to select archived files to perform unarchival upon. Only file system based resource collections are supported by Unjar/Unwar/Unzip, this includes <a href="../CoreTypes/fileset.html">fileset</a>, <a href="../CoreTypes/filelist.html">filelist</a>, <a href="../using.html#path">path</a>, and <a href="../CoreTypes/resources.html#files">files</a>. Untar supports arbitrary resource collections. Prior to Ant 1.7 only fileset has been supported as a nested element.</p> <p>You can define filename transformations by using a nested <a href="../CoreTypes/mapper.html">mapper</a> element. The default mapper is the <a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a>. </p> <p>File permissions will not be restored on extracted files.</p> <p>The untar task recognizes the long pathname entries used by GNU tar.<p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">src</td> <td valign="top">archive file to expand.</td> <td align="center" valign="top">Yes, if filesets are not used.</td> </tr> <tr> <td valign="top">dest</td> <td valign="top">directory where to store the expanded files.</td> <td align="center" valign="top">Yes</td> </tr> <tr> <td valign="top">overwrite</td> <td valign="top">Overwrite files, even if they are newer than the corresponding entries in the archive (true or false, default is true).</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">compression</td> <td valign="top"><b>Note:</b> This attribute is only available for the <code>untar</code> task.<br> compression method. Allowable values are "none", "gzip" and "bzip2". Default is "none".</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">encoding</td> <td valign="top"><b>Note:</b> This attribute is not available for the <code>untar</code> task.<br> The character encoding that has been used for filenames inside the zip file. For a list of possible values see <a href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br> Defaults to "UTF8", use the magic value <code>native-encoding</code> for the platform's default character encoding.</td> <td align="center" valign="top">No</td> </tr> </table> <h3>Examples</h3> <pre> <unzip src="${tomcat_src}/tools-src.zip" dest="${tools.home}"/> </pre> <p> <pre> <gunzip src="tools.tar.gz"/> <untar src="tools.tar" dest="${tools.home}"/> </pre> <pre> <unzip src="${tomcat_src}/tools-src.zip" dest="${tools.home}"> <patternset> <include name="**/*.java"/> <exclude name="**/Test*.java"/> </patternset> </unzip> </pre> <p> <pre> <unzip dest="${tools.home}"> <patternset> <include name="**/*.java"/> <exclude name="**/Test*.java"/> </patternset> <fileset dir="."> <include name="**/*.zip"/> <exclude name="**/tmp*.zip"/> </fileset> </unzip> </pre> <p> <pre> <unzip src="apache-ant-bin.zip" dest="${tools.home}"> <patternset> <include name="apache-ant/lib/ant.jar"/> </patternset> <mapper type="flatten"/> </unzip> </pre> <h3>Related tasks</h3> <pre> <unzip src="some-archive" dest="some-dir"> <patternset> <include name="some-pattern"/> </patternset> <mapper type="some-mapper"/> </unzip> </pre> is identical to <pre> <copy todir="some-dir" preservelastmodified="true"> <zipfileset src="some-archive"> <patternset> <include name="some-pattern"/> </patternset> </zipfileset> <mapper type="some-mapper"/> </copy> </pre> <p>The same is also true for <code><untar></code> and <code><tarfileset></code>. <code><copy></code> offers additional features like <a href="../CoreTypes/filterchain.html">filtering files</a> on the fly, allowing a file to be mapped to multiple destinations or a configurable file system timestamp granularity.</p> <pre><zip destfile="new.jar"> <zipfileset src="old.jar"> <exclude name="do/not/include/this/class"/> </zipfileset> </zip> </pre> <p>"Deletes" files from a zipfile.</p> </body> </html> --- NEW FILE: tempfile.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <title>Tempfile Task</title> </head> <body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"> <table border="0" width="100%" cellspacing="4"> <!-- PAGE HEADER --> <tr> <td> <table border="0" width="100%"><tr> <td valign="bottom"> <font size="+3" face="arial,helvetica,sanserif"><strong>Tempfile Task</strong></font> <br><font face="arial,helvetica,sanserif">This task sets a property to the name of a temporary file.</font> </td> <td> <!-- PROJECT LOGO --> <a href="http://ant.apache.org/"> <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"> </a> </td> </tr></table> </td> </tr> <!-- START RIGHT SIDE MAIN BODY --> <tr> <td valign="top" align="left"> <!-- Applying task/long-description --> <!-- Start Description --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="description"> <strong>Description</strong></a></font> </td></tr> <tr><td><blockquote> This task sets a property to the name of a temporary file. Unlike <code>java.io.File.createTempFile</code>, this task does not actually create the temporary file, but it does guarantee that the file did not exist when the task was executed. <p>Examples: <pre><tempfile property="temp.file"/></pre> create a temporary file <pre><tempfile property="temp.file" suffix=".xml"/></pre> create a temporary file with the <code>.xml</code> suffix <pre><tempfile property="temp.file" destDir="build"/></pre> create a temporary file in the <code>build</code> subdirectory </blockquote></td></tr> </table> <!-- End Description --> <!-- Ignore --> <!-- Start Attributes --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="attributes"> <strong>Parameters</strong></a></font> </td></tr> <tr><td><blockquote> <table> <tr> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font> </td> </tr> <!-- Attribute Group --> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">property</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the property you wish to assign the temporary file to.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> <td bgcolor="#eeeeee" valign="top" align="left" rowspan="1"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Required</font> </td> </tr> <!-- Attribute Group --> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the destination directory. If not set, the basedir directory is used instead.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font> </td> <td bgcolor="#eeeeee" valign="top" align="left" rowspan="4"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">prefix</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the optional prefix string for the temp file.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">suffix</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the optional suffix string for the temp file.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">deleteonexit</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether the temp file will be marked for deletion on normal exit of the Java Virtual Machine (even though the file may never be created); default <em>false</em>. <strong>Since Ant 1.7</strong></font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> </table> </blockquote></td></tr> </table> <!-- End Attributes --> <!-- Start Elements --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="elements"> <strong>Parameters as nested elements</strong></a></font> </td></tr> <tr><td><blockquote> </blockquote></td></tr> </table> <!-- End Elements --> </td> </tr> <!-- END RIGHT SIDE MAIN BODY --> </table> </body> </html> --- NEW FILE: antcall.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>AntCall Task</title> </head> <body> <h2><a name="antcall">AntCall</a></h2> <h3>Description</h3> <p>Call another target within the same buildfile optionally specifying some properties (params in this context). <strong>This task must not be used outside of a <code>target</code>.</strong></p> <p>By default, all of the properties of the current project will be available in the new project. Alternatively, you can set the <i>inheritAll</i> attribute to <code>false</code> and only "user" properties (i.e., those passed on the command-line) will be passed to the new project. In either case, the set of properties passed to the new project will override the properties that are set in the new project (See also the <a href="property.html">property task</a>).</p> <p>You can also set properties in the new project from the old project by using nested param tags. These properties are always passed to the new project and any project created in that project regardless of the setting of <i>inheritAll</i>. This allows you to parameterize your subprojects. Properties defined on the command line can not be overridden by nested <code><param></code> elements.</p> <p>Nested <a href="#reference"><i><code><reference></code>;</i></a> elements can be used to copy references from the calling project to the new project, optionally under a different id. References taken from nested elements will override existing references that have been defined outside of targets in the new project - but not those defined inside of targets.</p> <p> When a target is invoked by antcall, all of its dependent targets will also be called within the context of any new parameters. For example. if the target "doSomethingElse" depended on the target "init", then the <i>antcall</i> of "doSomethingElse" will call "init" during the call. Of course, any properties defined in the antcall task or inherited from the calling target will be fixed and not overridable in the init task--or indeed in the "doSomethingElse" task. </p> <p>If the build file changes after you've started the build, the behavior of this task is undefined.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">target</td> <td valign="top">The target to execute.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">inheritAll</td> <td valign="top">If <code>true</code>, pass all properties to the new Ant project. Defaults to <code>true</code>. </td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">inheritRefs</td> <td valign="top">If <code>true</code>, pass all references to the new Ant project. Defaults to <code>false</code>.</td> <td align="center" valign="top">No</td> </tr> </table> <h3>Note on <code>inheritRefs</code></h3> <p><code><antcall></code> will not override existing references, even if you set <code>inheritRefs</code> to true. As the called build files is the same build file as the calling one, this means it will not override any reference set via an <code>id</code> attribute at all. The only references that can be inherited by the child project are those defined by nested <code><reference></code> elements or references defined by tasks directly (not using the <code>id</code> attribute).</p> <h3>Parameters specified as nested elements</h3> <h4>param</h4> <p>Specifies the properties to set before running the specified target. See <a href="property.html">property</a> for usage guidelines.<br> These properties become equivalent to properties you define on the command line. These are special properties and they will always get passed down, even through additional <code><*ant*></code> tasks with inheritall set to false (see above). </p> <h4><a name="reference">reference</a></h4> <p>Used to choose references that shall be copied into the new project, optionally changing their id.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">refid</td> <td valign="top">The id of the reference in the calling project.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">torefid</td> <td valign="top">The id of the reference in the new project.</td> <td valign="top" align="center">No, defaults to the value of refid.</td> </tr> </table> <h4>propertyset</h4> <p>You can specify a set of properties to be copied into the new project with <a href="../CoreTypes/propertyset.html">propertyset</a>s.</p> <p><em>since Ant 1.6</em>.</p> <h4>target</h4> <p>You can specify multiple targets using nested <code><target></code> elements instead of using the target attribute. These will be executed as if Ant had been invoked with a single target whose dependencies are the targets so specified, in the order specified.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">name</td> <td valign="top">The name of the called target.</td> <td valign="top" align="center">Yes</td> </tr> </table> <p><em>since Ant 1.6.3</em>.</p> <h3>Examples</h3> <blockquote><pre> <target name="default"> <antcall target="doSomethingElse"> <param name="param1" value="value"/> </antcall> </target> <target name="doSomethingElse"> <echo message="param1=${param1}"/> </target> </pre></blockquote> <p>Will run the target 'doSomethingElse' and echo 'param1=value'.</p> <blockquote><pre> <antcall ... > <reference refid="path1" torefid="path2"/> </antcall> </pre></blockquote> <p>will copy the parent's definition of <code>path1</code> into the new project using the id <code>path2</code>.</p> </body> </html> --- NEW FILE: replace.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Replace Task</title> </head> <body> <h2><a name="replace">Replace</a></h2> <h3>Description</h3> <p>Replace is a directory based task for replacing the occurrence of a given string with another string in selected file.</p> <p>If you want to replace a text that crosses line boundaries, you must use a nested <code><replacetoken></code> element.</p> <p>The output file is only written if it differs from the existing file. This prevents spurious rebuilds based on unchanged files which have been regenerated by this task.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">file</td> <td valign="top">file for which the token should be replaced.</td> <td align="center" rowspan="2">Exactly one of the two.</td> </tr> <tr> <td valign="top">dir</td> <td valign="top">The base directory to use when replacing a token in multiple files.</td> </tr> <tr> <td valign="top">encoding</td> <td valign="top">The encoding of the files upon which replace operates.</td> <td align="center">No - defaults to default JVM encoding</td> </tr> <tr> <td valign="top">token</td> <td valign="top">the token which must be replaced.</td> <td valign="top" align="center">Yes, unless a nested <code>replacetoken</code> element or the replacefilterfile attribute is used.</td> </tr> <tr> <td valign="top">value</td> <td valign="top">the new value for the token. When omitted, an empty string ("") is used.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">summary</td> <td valign="top">Indicates whether a summary of the replace operation should be produced, detailing how many token occurrences and files were processed </td> <td valign="top" align="center">No, by default no summary is produced</td> </tr> <tr> <td valign="top">propertyFile</td> <td valign="top">valid property file from which properties specified using nested <code><replacefilter></code> elements are drawn.</td> <td valign="top" align="center">Yes only if <i>property</i> attribute of <code><replacefilter></code> is used.</td> </tr> <tr> <td valign="top">replacefilterfile</td> <td valign="top">valid property file. Each property will be treated as a replacefilter where <code>token</code> is the name of the property and <code>value</code> is the properties value. <td valign="top" align="center">No.</td> </tr> <tr> <td valign="top">includes</td> <td valign="top">comma- or space-separated list of patterns of files that must be included. All files are included when omitted.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">includesfile</td> <td valign="top">the name of a file. Each line of this file is taken to be an include pattern</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">excludes</td> <td valign="top">comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">excludesfile</td> <td valign="top">the name of a file. Each line of this file is taken to be an exclude pattern</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">defaultexcludes</td> <td valign="top">indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted.</td> <td valign="top" align="center">No</td> </tr> </table> <h3>Examples</h3> <pre> <replace file="${src}/index.html" token="@@@" value="wombat"/></pre> <p>replaces occurrences of the string "@@@" with the string "wombat", in the file <code>${src}/index.html</code>.</p> <h3>Parameters specified as nested elements</h3> <p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all attributes of <code><fileset></code> as well as the nested <code><include></code>, <code><exclude></code> and <code><patternset></code> elements.</p> <p>If either the text you want to replace or the replacement text cross line boundaries, you can use nested elements to specify them.</p> <h3>Examples</h3> <blockquote><pre> <replace dir="${src}" value="wombat"> <include name="**/*.html"/> <replacetoken><![CDATA[multi line token]]></replacetoken> </replace> </pre></blockquote> <p>replaces occurrences of the string "multi line<i>\n</i>token" with the string "wombat", in all HTML files in the directory <code>${src}</code>.Where <i>\n</i> is the platform specific line separator.</p> <blockquote><pre> <replace file="${src}/index.html"> <replacetoken><![CDATA[two line token]]></replacetoken> <replacevalue><![CDATA[two line token]]></replacevalue> </replace> </pre></blockquote> <h4>replacefilter</h4> <p>In addition to allowing for multiple replacements, optional nested <code><replacefilter></code> elements allow replacement values to be extracted from a property file. The name of this file is specified using the <code><replace></code> attribute <i>propertyFile</i>. </p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">token</td> <td valign="top">The string to search for.</td> <td align="center" valign="top">Yes</td> </tr> <tr> <td valign="top">value</td> <td valign="top">The replacement string.</td> <td align="center" rowspan="2">Either may be specified, but not both. Both can be omitted, if desired.</td> </tr> <tr> <td valign="top">property</td> <td valign="top">Name of the property whose value is to serve as the replacement value.</td> </tr> </table> <p>If neither <i>value</i> nor <i>property</i> is used, the value provided using the <code><replace></code> attribute <i>value</i> and/or the <code><replacevalue></code> element is used. If no value was specified using either of these options, the token is replaced with an empty string. </p> <h3>Examples</h3> <blockquote><pre> <replace file="configure.sh" value="defaultvalue" propertyFile="source/name.properties"> <replacefilter token="@token1@"/> <replacefilter token="@token2@" value="value2"/> <replacefilter token="@token3@" property="property.key"/> </replace> </pre></blockquote> <p>In file <code>configure.sh</code>, replace all instances of "@token1@" with "defaultvalue", all instances of "@token2@" with "value2", and all instances of "@token3@" with the value of the property "property.key", as it appears in property file <code>src/name.properties</code>.</p> <p><b>Note:</b> It is possible to use either the <i>token</i>/<code><replacetoken></code> and <i>value</i>/<code><replacevalue></code> attributes/elements, the nested replacefilter elements, or both in the same operation. </p> </body> </html> --- NEW FILE: defaultexcludes.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>DefaultExcludes Task</title> </head> <body> <h2><a name="echo">DefaultExcludes</a></h2> <p><em>since Ant 1.6</em></p> <h3>Description</h3> <p>Alters the default excludes for all subsequent processing in the build, and prints out the current default excludes if desired. <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">echo</td> <td valign="top">whether or not to print out the default excludes.(defaults to false)</td> <td valign="top" align="center">attribute "true" required if no other attribute specified</td> </tr> <tr> <td valign="top">default</td> <td valign="top">go back to hard wired default excludes</td> <td valign="top" align="center">attribute "true" required if no if no other attribute is specified</td> </tr> <tr> <td valign="top">add</td> <td valign="top">the pattern to add to the default excludes</td> <td valign="top" align="center">if no other attribute is specified</td> </tr> <tr> <td valign="top">remove</td> <td valign="top">remove the specified pattern from the default excludes</td> <td valign="top" align="center">if no other attribute is specified</td> </tr> </table> <h3>Examples</h3> <p>Print out the default excludes</p> <pre> <defaultexcludes echo="true"/></pre> <p>Print out the default excludes and exclude all *.bak files in <strong>all</strong> further processing</p> <pre> <defaultexcludes echo="true" add="**/*.bak"/></pre> <p>Silently allow several fileset based tasks to operate on emacs backup files and then restore normal behavior</p> <pre> <defaultexcludes remove="**/*~"/> (do several fileset based tasks here) <defaultexcludes default="true"/> </pre> <h3>Notes</h3> By default the pattern <tt>**/.svn</tt> and <tt>**/.svn/**</tt> are set as default excludes. With version 1.3 Subversion supports the <a target="_blank" href="http://subversion.tigris.org/svn_1.3_releasenotes.html">"_svn hack"</a>. That means, that the svn-libraries evaluate environment variables and use <i>.svn</i> or <i>_svn</i> directory regarding to that value. We had chosen not to evaluate environment variables to get a more reliable build. Instead you have to change the settings by yourself by changing the exclude patterns: <pre> <defaultexcludes remove="**/.svn"/> <defaultexcludes remove="**/.svn/**"/> <defaultexcludes add="**/_svn"/> <defaultexcludes add="**/_svn/**"/> </pre> </body> </html> --- NEW FILE: cvsversion.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>CVSVersion Task</title> <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css"> </head> <body> <h2><a name="cvs">CvsVersion</a></h2> <h3>Description</h3> <p> This task allows to retrieve a CVS client and server version. <i>Since Ant 1.6.1.</i> </p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td colspan="3">Attributes from parent Cvs task which are meaningful here</td> </tr> <tr> <td valign="top">cvsRoot</td> <td valign="top">the <code>CVSROOT</code> variable.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">cvsRsh</td> <td valign="top">the <code>CVS_RSH</code> variable.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">dest</td> <td valign="top">directory containing the checked out version of the project</td> <td align="center" valign="top">No, default is project's basedir.</td> </tr> <tr> <td valign="top">package</td> <td valign="top">the package/module to check out.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">port</td> <td valign="top">Port used by CVS to communicate with the server.</td> <td align="center" valign="top">No, default port 2401.</td> </tr> <tr> <td valign="top">passfile</td> <td valign="top">Password file to read passwords from.</td> <td align="center" valign="top">No, default file ~/.cvspass.</td> </tr> <tr> <td valign="top">failonerror</td> <td valign="top">Stop the build process if the command exits with a return code other than <code>0</code>. Defaults to false</td> <td align="center" valign="top">No</td> </tr> <tr> <td colspan="3">Specific attributes</td> </tr> <tr> <td valign="top">clientversionproperty</td> <td valign="top">Name of a property where the cvsclient version should be stored</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">serverversionproperty</td> <td valign="top">Name of a property where the cvs server version should be stored</td> <td align="center" valign="top">No</td> </tr> </table> <h3>Examples</h3> <pre> <cvsversion cvsRoot=":pserver:an...@cv...:/home/cvspublic" passfile="/home/myself/.cvspass" serverversionproperty="apachecvsversion" clientversionproperty="localcvsversion" /></pre> <p>finds out the cvs client and server versions and stores the versions in the properties called apachecvsversion and localcvsversion</p> </body> </html> --- NEW FILE: subant.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <title>Subant Task</title> </head> <body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"> <table border="0" width="100%" cellspacing="4"> <!-- PAGE HEADER --> <tr> <td> <table border="0" width="100%"><tr> <td valign="bottom"> <font size="+3" face="arial,helvetica,sanserif"><strong>Subant Task</strong></font> <br><font face="arial,helvetica,sanserif">Calls a given target for all defined sub-builds.</font> </td> <td> <!-- PROJECT LOGO --> <a href="http://ant.apache.org/"> <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"> </a> </td> </tr></table> </td> </tr> <!-- START RIGHT SIDE MAIN BODY --> <tr> <td valign="top" align="left"> <!-- Applying task/description --> <!-- Start Description --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="description"> <strong>Description</strong></a></font> </td></tr> <tr><td><blockquote> <p> Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution. <strong>This task must not be used outside of a <code>target</code> if it invokes the same build file it is part of.</strong> </p> <p><em>Since Ant 1.6</em></p> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <!-- Subsection heading --> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="Use with directories"> <strong>Use with directories</strong></a></font> </td></tr> <!-- Subsection body --> <tr><td> <p> subant can be used with directory sets to execute a build from different directories. 2 different options are offered : </p> <ul> <li> to run the same build file <code>/somepath/otherpath/mybuild.xml</code> with different base directories, use the genericantfile attribute </li> <li>if you want to run <code>directory1/mybuild.xml</code>, <code>directory2/mybuild.xml</code>, <code>....</code>, use the antfile attribute. The subant task does not set the base directory for you in this case, because you can specify it in each build file. </li> </ul> </td></tr> </table> </blockquote></td></tr> </table> <!-- End Description --> <!-- Ignore --> <!-- Start Attributes --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="attributes"> <strong>Parameters</strong></a></font> </td></tr> <tr><td><blockquote> <table> <tr> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font> </td> <td bgcolor="#cccccc" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font> </td> </tr> <!-- Attribute Group --> <!-- Attribute Group --> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">antfile</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Build file name, to use in conjunction with directories.<br> Defaults to "build.xml".<br> If <code>genericantfile</code> is set, this attribute is ignored.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> <td bgcolor="#eeeeee" valign="top" align="left" rowspan="10"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">buildpath</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the buildpath to be used to find sub-projects.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">buildpathref</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Buildpath to use, by reference.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Reference</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets whether to fail with a build exception on error, or go on.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">genericantfile</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Build file path, to use in conjunction with directories.<br> Use <code>genericantfile</code>, in order to run the same build file with different basedirs.<br> If this attribute is set, <code>antfile</code> is ignored.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">inheritall</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Corresponds to <code><ant></code>'s <code>inheritall</code> attribute but defaults to false in this task..</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">inheritrefs</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Corresponds to <code><ant></code>'s <code>inheritrefs</code> attribute.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">output</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">Corresponds to <code><ant></code>'s <code>output</code> attribute.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">target</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"></font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font> </td> </tr> <!-- Attribute --> <tr> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">verbose</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif"> Enable/ disable log messages showing when each sub-build path is entered/ exited. The default value is false.</font> </td> <td bgcolor="#eeeeee" valign="top" align="left"> <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font> </td> </tr> </table> </blockquote></td></tr> </table> <!-- End Attributes --> <!-- Start Elements --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="elements"> <strong>Parameters as nested elements</strong></a></font> </td></tr> <tr><td><blockquote> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>any filesystem based <a href="../CoreTypes/resources.html#collection">resource collection</a></strong></font> </td></tr> <tr><td><blockquote> This includes <code><fileset></code>, <code><dirset></code> and <code><filelist></code> which are the nested resource collections supported prior to Ant 1.7. <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>dirset</strong> (org.apache.tools.ant.types.DirSet)</font> </td></tr> <tr><td><blockquote> Adds a directory set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em> <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>filelist</strong> (org.apache.tools.ant.types.FileList)</font> </td></tr> <tr><td><blockquote> Adds an ordered file list to the implicit build path. <p> <em>Note that contrary to file and directory sets, file lists can reference non-existent files or directories!</em> <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>fileset</strong> (org.apache.tools.ant.types.FileSet)</font> </td></tr> <tr><td><blockquote> Adds a file set to the implicit build path. <p> <em>Note that the directories will be added to the build path in no particular order, so if order is significant, one should use a file list instead!</em> <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>property</strong> (org.apache.tools.ant.taskdefs.Property)</font> </td></tr> <tr><td><blockquote> Corresponds to <code><ant></code>'s nested <code><property></code> element. <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>propertyset</strong> (org.apache.tools.ant.types.PropertySet)</font> </td></tr> <tr><td><blockquote> Corresponds to <code><ant></code>'s nested <code><propertyset></code> element. <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>buildpath</strong> (org.apache.tools.ant.types.Path)</font> </td></tr> <tr><td><blockquote> Creates a nested build path, and add it to the implicit build path. <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>buildpathelement</strong> (org.apache.tools.ant.types.Path.PathElement)</font> </td></tr> <tr><td><blockquote> Creates a nested <code><buildpathelement></code>, and add it to the implicit build path. <!-- Ignore --> <!-- Ignore --> </blockquote></td></tr> </table> <!-- End Element --> <!-- manually written --> <!-- Start Element --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#828DA6"> <font color="#ffffff" face="arial,helvetica.sanserif" size="-1"> <strong>target</strong> (org.apache.tools.ant.taskdefs.Ant.TargetElement)</font> </td></tr> <tr><td><blockquote> You can specify multiple targets using nested <code><target></code> elements instead of using the target attribute. These will be executed as if Ant had been invoked with a single target whose dependencies are the targets so specified, in the order specified. <!-- Ignore --> <!-- Ignore --> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">name</td> <td valign="top">The name of the called target.</td> <td valign="top" align="center">Yes</td> </tr> </table> <p><em>since Ant 1.7</em>.</p> </blockquote></td></tr> </table> <!-- End Element --> <!-- manually written end --> </blockquote></td></tr> </table> <!-- End Elements --> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tr><td> </td></tr> <tr><td bgcolor="#525D76"> <font color="#ffffff" face="arial,helvetica.sanserif"> <a name="examples"> <strong>Examples</strong></a></font> </td></tr> <tr><td><blockquote style=""> <pre> <project name="subant" default="subant1"> <property name="build.dir" value="subant.build"/> <target name="subant1"> <subant target=""> <property name="build.dir" value="subant1.build"/> <property name="not.overloaded" value="not.overloaded"/> <fileset dir="." includes="*/build.xml"/> </subant> </target> </project> </pre> <p> this snippet build file will run ant in each subdirectory of the project directory, where a file called build.xml can be found. The property build.dir will have the value subant1.build in the ant projects called by subant. </p> <pre> <subant target=""> <propertyset> <propertyref prefix="toplevel"/> <mapper type="glob" from="foo*" to="bar*"/> </propertyset> <fileset dir="." includes="*/build.xml"/> </subant> </pre> <p> this snippet build file will run ant in each subdirectory of the project directory, where a file called build.xml can be found. All properties whose name starts with "foo" are passed, their names are changed to start with "bar" instead </p> <pre> <subant target="compile" genericantfile="/opt/project/build1.xml"> <dirset dir="." includes="projects*"/> </subant> </pre> <p> assuming the subdirs of the project dir are called projects1, projects2, projects3 this snippet will execute the compile target of /opt/project/build1.xml, setting the basedir to projects1, projects2, projects3 </p> <!-- manually written --> <p>Now a little more complex - but useful - scenario. Assume that we have a directory structure like this:</p> <pre> root | common.xml | build.xml | +-- modules +-- modA | +-- src +-- modB +-- src <u><b>common.xml:</b></u><br> <project> <property name="src.dir" value="src"/> <property name="build.dir" value="build"/> <property name="classes.dir" value="build/classes"/> <target name="compile"> <mkdir dir="${classes.dir}"/> <javac srcdir="src" destdir="${classes.dir}"/> </target> ... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:23
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/Integration In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/Integration Added Files: Antidote.html anttool1.gif jext-plugin.html remacc.gif toolmenu.gif Log Message: Update 4 years old ant. --- NEW FILE: anttool1.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Antidote.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd"> <HTML> <HEAD> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>About Antidote</TITLE> </HEAD> <BODY> <H1>About Antidote</H1> <P>Version 0.1 (2001/02/13)</P> <P>Authors: <A HREF="mailto:si...@fi...">Simeon H.K. Fitch</A> </P> <H2>Overview</H2> <P>Antidote is the <A HREF="http://ant.apache.org/index.html">Ant</A> subproject for developing a graphical user interface to facilitate the efficient use of Ant. In general, its purpose is to allow the quick generation, modification, and use of Ant build files, helping the user define a build process and track down build problems. It is not meant to be an IDE, but an enabler for the powerful features available in Ant, particularly for novice users, or users who want a rapid way of controlling their build process.</P> <H2>Status</H2> <P>Antidote is still in the early stages of development, but does have a set of usable features, including:</p> <UL> <LI>Reading Ant build files.</LI> <LI>Selecting targets and executing them.</LI> <LI>Context highlighted build status console.</LI> <LI>Modification of (some) build file components.</LI> <LI>Saving modified build file.</LI> </UL> <P>Current development tasks include:</p> <UL> <LI>A more complete set of target and task editing capabilities.</LI> <LI>A wizard for creating basic build files, including importing existing code bases.</LI> <LI>Better build progress monitoring.</LI> </UL> <P>The Antidote source distribution comes with requirements and design documentation that better cover the details of application architecture, how to develop against it, and what the long term goals are. Furthermore, there is a <code>TODO</code> file listing the detailed, near-term tasks that need accomplishing.</P> <H2>Getting Involved</H2> <P>The source code for Antidote is located in a separate Module (<a href="http://cvs.apache.org/viewcvs/ant-antidote/">ant-antidote</a>) in CVS. All the existing documentation can be found there where new contributors should read:</p> <UL> <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/design-overview.html">Design Overview</A></LI> <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-requirements.html">Feature List</A></LI> <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/gui-ideas.txt">Idea Refinement</A></LI> <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/new-module-howto.html">New Module HOWTO</A></LI> <LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/ant-antidote/docs/developer/design/uml/index.html">Static Class Diagrams</A></LI> </UL> <P>Online discussions about Antidote occur on the <A HREF="http://ant.apache.org/mail.html">Ant developer mailing list</A>. The application infrastructure is fairly complete, but there are almost unlimited opportunities for feature contributions.</p> <P>Aspiring contributors new to the project should (carefully) read the following for details on the contribution process:</p> <UL> <LI><A HREF="http://jakarta.apache.org/site/getinvolved.html">Get Involved</A></LI> <LI><A HREF="http://ant.apache.org/guidelines.html">Project Guidelines</A></LI> <LI><A HREF="http://jakarta.apache.org/site/source.html">Source Repositories (how to contribute patches)</A></LI> </UL> </BODY> </HTML> --- NEW FILE: toolmenu.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: remacc.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: jext-plugin.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Apache AntWork Plugin for the Jext Java Text Editor</title> </head> <body> <h1>AntWork Plugin for the Jext Java Text Editor</h1> <a name="authors"></a>by<ul> <li>Klaus Hartlage (<a href="mailto:KHa...@t-...">KHa...@t-...</a>)</li> </ul> <hr> <p>You can download the plugin at: <a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></p> <h2>Installation instructions from the Readme.txt:</h2> <p>You have to enable the Jext Console to see the Ant output (menu: Edit->Options... - General Panel), because the Ant messages are redirected to the Jext console.</p> <p>You can configure the Ant call in the Jext menu: Edit->Options... - Plugin Options - Antwork Plugin Panel; here you can set the ant home directory and the path to your build file.</p> <p>You can start AntWork in the menu: Plugins->Ant->Work Now! In the appearing dialog box you can enter the target which you want to compile.</p> <p>If a javac error occurs in the ant run an error-list opens within Jext. With a double-click on the error-message you jump to the error in the specified java text file.</p> </body></html> |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual/CoreTypes In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual/CoreTypes Added Files: antlib.html assertions.html custom-programming.html description.html dirset.html filelist.html fileset.html filterchain.html filterset.html mapper.html namespace.html patternset.html permissions.html propertyset.html redirector.html regexp.html resources.html selectors-program.html selectors.html tarfileset.html xmlcatalog.html zipfileset.html Log Message: Update 4 years old ant. --- NEW FILE: redirector.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Redirector Type</title> </head> <body> <h2><a name="redirector">I/O redirection</a></h2> <p>For many tasks, input and output can be defined in a fairly straightforward fashion. The <a href="../CoreTasks/exec.html">exec</a> task, used to execute an external process, stands as a very basic example. The executed process may accept input, produce output, or do either or both depending upon various circumstances. Output may be classified as "output" or as "error output." The <code><redirector></code> type provides a concrete means of redirecting input and output featuring the use of <a href="./mapper.html">File Mapper</a>s to specify source (input) and destination (output/error) files. <em>Since Ant 1.6.2</em> <p>The <code><redirector></code> element accepts the following attributes:</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">output</td> <td valign="top">Name of a file to which output should be written. If the error stream is not also redirected to a file or property, it will appear in this output.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">error</td> <td valign="top">The file to which the standard error of the command should be redirected.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">logError</td> <td valign="top">This attribute is used when you wish to see error output in Ant's log and you are redirecting output to a file/property. The error output will not be included in the output file/property. If you redirect error with the <i>error</i> or <i>errorProperty</i> attributes, this will have no effect.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">append</td> <td valign="top">Whether output and error files should be appended to rather than overwritten. Defaults to <code>false</code>.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">createemptyfiles</td> <td valign="top">Whether output and error files should be created even when empty. Defaults to <code>true</code>.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">outputproperty</td> <td valign="top">The name of a property in which the output of the command should be stored. Unless the error stream is redirected to a separate file or stream, this property will include the error output.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">errorproperty</td> <td valign="top">The name of a property in which the standard error of the command should be stored.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">input</td> <td valign="top">A file from which the executed command's standard input is taken. This attribute is mutually exclusive with the <i>inputstring</i> attribute.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">inputstring</td> <td valign="top">A string which serves as the input stream for the executed command. This attribute is mutually exclusive with the <i>input</i> attribute.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">inputencoding</td> <td valign="top">The input encoding.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">outputencoding</td> <td valign="top">The output encoding.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">errorencoding</td> <td valign="top">The error encoding.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">alwayslog</td> <td valign="top">Always send to the log in addition to any other destination. <i>Since Ant 1.6.3</i>. </td> <td align="center" valign="top">No, default is <code>false</code></td> </tr> <tr> <td valign="top">loginputstring</td> <td valign="top">Controls the display of <i>inputstring</i>'s value in log messages. Set to <code>false</code> when sending sensitive data (e.g. passwords) to external processes. <i>Since Ant 1.6.3</i>. </td> <td align="center" valign="top">No, default is <code>true</code></td> </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>inputmapper</h4> <p>A single <a href="./mapper.html">File Mapper</a> used to redirect process input. Multiple mapping results should concatenate all mapped files as input. Mapping will ordinarily be performed on a task-specified sourcefile; consult the documentation of the individual task for more details. A nested <code><inputmapper></code> is not compatible with either of the <i>input</i> or <i>inputstring</i> attributes.</p> <h4>outputmapper</h4> <p>A single <a href="./mapper.html">File Mapper</a> used to redirect process output. Mapping will ordinarily be performed on a task-specified sourcefile; consult the documentation of the individual task for more details. A nested <code><outputmapper></code> is not compatible with the <i>output</i> attribute.</p> <h4>errormapper</h4> <p>A single <a href="./mapper.html">File Mapper</a> used to redirect error output. Mapping will ordinarily be performed on a task-specified sourcefile; consult the documentation of the individual task for more details. A nested <code><errormapper></code> is not compatible with the <i>error</i> attribute.</p> <h4>inputfilterchain</h4> <p>A <a href="./filterchain.html">FilterChain</a> can be applied to the process input.</p> <h4>outputfilterchain</h4> <p>A <a href="./filterchain.html">FilterChain</a> can be applied to the process output.</p> <h4>errorfilterchain</h4> <p>A <a href="./filterchain.html">FilterChain</a> can be applied to the error output.</p> <h3>Usage</h3> Tasks known to support I/O redirection: <ul> <li><a href="../CoreTasks/exec.html">Exec</a></li> <li><a href="../CoreTasks/apply.html">Apply</a></li> <li><a href="../CoreTasks/java.html">Java</a></li> </ul> <p>The expected behavior of a <code><redirector></code> is to a great degree dependent on the supporting task. Any possible points of confusion should be noted at the task level.</p> </body> </html> --- NEW FILE: permissions.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Permissions type</title> </head> <body> <h2><a name="permissions">Permissions</a></h2> <p> Permissions represents a set of security permissions granted or revoked to a specific part code executed in the JVM where ant is running in. The actual Permissions are specified via a set of nested permission items either <code><grant></code>ed or <code><revoke></code>d.</p> <p> In the base situation a <a href="#baseset">base set</a> of permissions granted. Extra permissions can be granted. A granted permission can be overruled by revoking a permission. The security manager installed by the permissions will throw an <code>SecurityException</code> if the code subject to these permissions try to use an permission that has not been granted or that has been revoked.</p> <h3>Nested elements</h3> <h4>grant</h4> <p> Indicates a specific permission is always granted. Its attributes indicate which permissions are granted.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">class</td> <td valign="top">The fully qualified name of the Permission class.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">name</td> <td valign="top">The name of the Permission. The actual contents depends on the Permission class.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">actions</td> <td valign="top">The actions allowed. The actual contents depend on the Permission class and name.</td> <td valign="top" align="center">No</td> </tr> </table> <p> Implied permissions are granted. </p> <p> Please note that some Permission classes may actually need a name and / or actions in order to function properly. The name and actions are parsed by the actual Permission class. </p> <h4>revoke</h4> <p> Indicates a specific permission is revoked.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">class</td> <td valign="top">The fully qualified name of the Permission class.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">name</td> <td valign="top">The name of the Permission. The actual contents depends on the Permission class.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">actions</td> <td valign="top">The actions allowed. The actual contents depend on the Permission class and name.</td> <td valign="top" align="center">No</td> </tr> </table> <p> Implied permissions are not resolved and therefore also not revoked. </p> <p> The name can handle the * wildcard at the end of the name, in which case all permissions of the specified class of which the name starts with the specified name (excluding the *) are revoked. Note that the - wildcard often supported by the granted properties is not supported. If the name is left empty all names match, and are revoked. If the actions are left empty all actions match, and are revoked. </p> <h3><a name="baseset">Base set</a></h3> A permissions set implictly contains the following permissions: <blockquote><pre> <grant class="java.net.SocketPermission" name="localhost:1024-" actions="listen"> <grant class="java.util.PropertyPermission" name="java.version" actions="read"> <grant class="java.util.PropertyPermission" name="java.vendor" actions="read"> <grant class="java.util.PropertyPermission" name="java.vendor.url" actions="read"> <grant class="java.util.PropertyPermission" name="java.class.version" actions="read"> <grant class="java.util.PropertyPermission" name="os.name" actions="read"> <grant class="java.util.PropertyPermission" name="os.version" actions="read"> <grant class="java.util.PropertyPermission" name="os.arch" actions="read"> <grant class="java.util.PropertyPermission" name="file.encoding" actions="read"> <grant class="java.util.PropertyPermission" name="file.separator" actions="read"> <grant class="java.util.PropertyPermission" name="path.separator" actions="read"> <grant class="java.util.PropertyPermission" name="line.separator" actions="read"> <grant class="java.util.PropertyPermission" name="java.specification.version" actions="read"> <grant class="java.util.PropertyPermission" name="java.specification.vendor" actions="read"> <grant class="java.util.PropertyPermission" name="java.specification.name" actions="read"> <grant class="java.util.PropertyPermission" name="java.vm.specification.version" actions="read"> <grant class="java.util.PropertyPermission" name="java.vm.specification.vendor" actions="read"> <grant class="java.util.PropertyPermission" name="java.vm.specification.name" actions="read"> <grant class="java.util.PropertyPermission" name="java.vm.version" actions="read"> <grant class="java.util.PropertyPermission" name="java.vm.vendor" actions="read"> <grant class="java.util.PropertyPermission" name="java.vm.name" actions="read"> </blockquote></pre> These permissions can be revoked via <code><revoke></code> elements if necessary. <h3>Examples</h3> <blockquote><pre> <permissions> <grant class="java.security.AllPermission"/> <revoke class="java.util.PropertyPermission"/> </permissions> </pre></blockquote> <p> Grants all permissions to the code except for those handling Properties. </p> <blockquote><pre> <permissions> <grant class="java.net.SocketPermission" name="foo.bar.com" action="connect"/> <grant class="java.util.PropertyPermission" name="user.home" action="read,write"/> </permissions> </pre></blockquote> <p> Grants the base set of permissions with the addition of a SocketPermission to connect to foo.bar.com and the permission to read and write the user.home system property. </p> </body> </html> --- NEW FILE: antlib.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"></meta> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>AntLib</title> </head> <body> <h2><a name="antlib">Antlib</a></h2> <h3>Description</h3> <p> An antlib file is an xml file with a root element of "antlib". Antlib's elements are ant definition tasks - like and <a href="../CoreTasks/taskdef.html">Taskdef</a>, or any ant task that extends <code>org.apache.tools.ant.taskdefs.AntlibDefinition</code>. </p> <p> The current set of declarations bundled with Ant that do this are: </p> <ol> <li><a href="../CoreTasks/typedef.html">Typedef</a> </li> <li><a href="../CoreTasks/taskdef.html">Taskdef</a> </li> <li><a href="../CoreTasks/macrodef.html">Macrodef</a> </li> <li><a href="../CoreTasks/presetdef.html">Presetdef</a> </li> <li><a href="../OptionalTasks/scriptdef.html">Scriptdef</a> </li> </ol> <p> A group of tasks and types may be defined together in an antlib file. For example the file <i>sample.xml</i> contains the following: </p> <blockquote> <pre> <?xml version="1.0"?> <antlib> <typedef name="if" classname="org.acme.ant.If"/> <typedef name="scriptpathmapper" classname="org.acme.ant.ScriptPathMapper" onerror="ignore"/> <macrodef name="print"> <attribute name="file"/> <sequential> <concat taskname="print"> <fileset dir="." includes="@{file}"/> </concat> </sequential> </macrodef> </antlib> </pre> </blockquote> <p> It defines two types or tasks, <i>if</i> and <i>scriptpathmapper</i>. This antlib file may be used in a build script as follows: </p> <blockquote> <pre> <typedef file="sample.xml"/> </pre> </blockquote> <p> The other attributes of <code><typedef></code> may be used as well. For example, assuming that the <i>sample.xml</i> is in a jar file <i>sample.jar</i> also containing the classes, the following build fragment will define the <i>if</i> and <i>scriptpathmapper</i> tasks/types and place them in the namespace uri <i>samples:/acme.org</i>. </p> <blockquote> <pre> <typedef resource="org/acme/ant/sample.xml" uri="samples:/acme.org"/> </pre> </blockquote> <p> The definitions may then be used as follows: </p> <blockquote> <pre> <sample:if valuetrue="${props}" xmlns:sample="samples:/acme.org"> <sample:scriptpathmapper language="beanshell"> some bean shell </sample:scriptpathmapper> </sample:if> </pre> </blockquote> <h3><a name="antlibnamespace">Antlib namespace</a></h3> <p> The name space URIs with the pattern <b>antlib:<i>java package</i></b> are given special treatment. </p> <p> When ant encounters a element with a namespace URI with this pattern, it will check to see if there is a resource of the name <i>antlib.xml</i> in the package directory in the default classpath. </p> <p> For example, assuming that the file <i>antcontrib.jar</i> has been placed in the directory <i>/Users/antoine/dev/asf/ant-core/bootstrap/lib</i> and it contains the resource <i>net/sf/antcontrib/antlib.xml</i> which has all antcontrib's definitions defined, the following build file will automatically load the antcontrib definitions at location <i>HERE</i>: </p> <blockquote> <pre> <project default="deletetest" xmlns:antcontrib="antlib:net.sf.antcontrib"> <macrodef name="showdir"> <attribute name="dir"/> <sequential> <antcontrib:shellscript shell="bash"> <!-- HERE --> ls -Rl @{dir} </antcontrib:shellscript> </sequential> </macrodef> <target name="deletetest"> <delete dir="a" quiet="yes"/> <mkdir dir="a/b"/> <touch file="a/a.txt"/> <touch file="a/b/b.txt"/> <delete> <fileset dir="a"/> </delete> <showdir dir="a"/> </target> </project> </pre> </blockquote> <p> The requirement that the resource is in the default classpath may be removed in future versions of Ant.</p> </p> <h3><a name="loadFromInside">Load antlib from inside of the buildfile</a></h3> <p> If you want to seperate the antlib from your local Ant installation, e.g. because you want to hold that jar in your projects SCM system, you have to specify a classpath, so that Ant could find that jar. The best solution is loading the antlib with <tt><taskdef></tt>. </p> <blockquote> <pre> <project xmlns:<font color="green">antcontrib</font>="<font color="red">antlib:net.sf.antcontrib</font>"> <taskdef uri="<font color="red">antlib:net.sf.antcontrib</font>" resource="net/sf/antcontrib/antlib.xml" classpath="path/to/ant-contrib.jar"/> <target name="iterate"> <<font color="green">antcontrib</font>:for param="file"> <fileset dir="."/> <sequential> <echo message="- @{file}"/> </sequential> </antcontrib:for> </target> </project> </pre> </blockquote> <h3><a name="currentnamespace">Current namespace</a></h3> <p> Definitions defined in antlibs may be used in antlibs. However the namespace that definitions are placed in are dependent on the <code><typedef></code> that uses the antlib. To deal with this problem, the definitions are placed in the namepace URI <i>ant:current</i> for the duration of the antlib execution. For example the following antlib defines the task <code><if></code>, the type <code><isallowed></code> and a macro <code><ifallowed></code> that makes use of the task and type: </p> <blockquote> <pre> <antlib xmlns:current="ant:current"> <taskdef name="if" classname="org.acme.ant.If"/> <typedef name="isallowed" classname="org.acme.ant.Isallowed"/> <macrodef name="ifallowed"> <attribute name="action"/> <element name="do"/> <sequential> <current:if> <current:isallowed test="@{action}"/> <current:then> <do/> </current:then> </current:if> </sequential> </macrodef> </antlib> </pre> </blockquote> <h3>Other examples and comments</h3> <p> Antlibs may make use of other antlibs. </p> <p> As the names defined in the antlib are in the namespace uri as specified by the calling <code><typedef></code> or by automatic element resolution, one may reuse names from core ant types and tasks, provided the caller uses a namespace uri. For example, the following antlib may be used to define defaults for various tasks: </p> <blockquote> <pre> <antlib xmlns:antcontrib="antlib:net.sf.antcontrib"> <presetdef name="javac"> <javac deprecation="false" debug="true"/> </presetdef> <presetdef name="delete"> <delete quiet="yes"/> </presetdef> <presetdef name="shellscript"> <antcontrib:shellscript shell="bash"/> </presetdef> </antlib> </pre> </blockquote> <p> This may be used as follows: </p> <blockquote> <pre> <project xmlns:local="localpresets"> <typedef file="localpresets.xml" uri="localpresets"/> <local:shellscript> echo "hello world" </local:shellscript> </project> </pre> </blockquote> </body> </html> --- NEW FILE: dirset.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>DirSet Type</title> </head> <body> <h2><a name="dirset">DirSet</a></h2> <p>A DirSet is a group of directories. These directories can be found in a directory tree starting in a base directory and are matched by patterns taken from a number of <a href="patternset.html">PatternSets</a> and <a href="selectors.html">Selectors</a>. </p> <p>PatternSets can be specified as nested <code><patternset></code> elements. In addition, DirSet holds an implicit PatternSet and supports the nested <code><include></code>, <code><includesfile></code>, <code><exclude></code> and <code><excludesfile></code> elements of <code><patternset></code> directly, as well as <code><patternset></code>'s attributes.</p> <p>Selectors are available as nested elements within the DirSet. If any of the selectors within the DirSet do not select the directory, it is not considered part of the DirSet. This makes a DirSet equivalent to an <code><and></code> selector container.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">dir</td> <td valign="top">The root of the directory tree of this DirSet.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">includes</td> <td valign="top">A comma- or space-separated list of patterns of directories that must be included; all directories are included when omitted.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">includesfile</td> <td valign="top">The name of a file; each line of this file is taken to be an include pattern.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">excludes</td> <td valign="top">A comma- or space-separated list of patterns of directories that must be excluded; no directories are excluded when omitted.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">excludesfile</td> <td valign="top">The name of a file; each line of this file is taken to be an exclude pattern.</td> <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">casesensitive</td> <td valign="top">Specifies whether case-sensitivity should be applied (<code>true</code>|<code>yes</code>|<code>on</code> or <code>false</code>|<code>no</code>|<code>off</code>).</td> <td valign="top" align="center">No; defaults to true.</td> </tr> <tr> <td valign="top">followsymlinks</td> <td valign="top">Shall symbolic links be followed? Defaults to true. See <a href="fileset.html#symlink">fileset's documentation</a>.</td> <td valign="top" align="center">No</td> </tr> </table> <h4>Examples</h4> <blockquote><pre> <dirset dir="build"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </dirset> </pre></blockquote> <p>Groups all directories named <code>classes</code> found under the <code>apps</code> subdirectory of <code>build</code>, except those that have the text <code>Test</code> in their name.</p> <blockquote><pre> <dirset dir="build"> <patternset id="non.test.classes"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </patternset> </dirset> </pre></blockquote> <p>Groups the same directories as the above example, but also establishes a PatternSet that can be referenced in other <code><dirset></code> elements, rooted at a different directory.</p> <blockquote><pre> <dirset dir="${debug_build.dir}"> <patternset refid="non.test.classes"/> </dirset> </pre></blockquote> <p>Groups all directories in directory <code>${debug_build.dir}</code>, using the same patterns as the above example.</p> </body> </html> --- NEW FILE: selectors.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> [...1489 lines suppressed...] <blockquote><pre> <fileset dir="${doc.path}" includes="**/*"> <custom classname="org.apache.tools.ant.types.selectors.DepthSelector"> <param name="max" value="1"/> </custom> </fileset> </pre></blockquote> <p>Selects all files in the base directory and one directory below that.</p> <p>For more details concerning writing your own selectors, consult <a href="selectors-program.html">Programming Selectors in Ant</a>.</p> </body> </html> --- NEW FILE: filelist.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>FileList Type</title> </head> <body> <h2><a name="filelist">FileList</a></h2> <p>FileLists are explicitly named lists of files. Whereas FileSets act as filters, returning only those files that exist in the file system and match specified patterns, FileLists are useful for specifying files that may or may not exist. Multiple files are specified as a list of files, relative to the specified directory, with no support for wildcard expansion (filenames with wildcards will be included in the list unchanged). FileLists can appear inside tasks that support this feature or as stand-alone types. </p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">dir</td> <td valign="top">The base directory of this FileList.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">files</td> <td valign="top">The list of file names. This is a list of file name separated by whitespace, or by commas.</td> <td valign="top" align="center"> Yes, unless there is a nested file element</td> </tr> </table> <h4>Nested Element: file</h4> <p> This represents a file name. The nested element allows filenames containing white space and commas. </p> <p><em>Since Ant 1.6.2</em></p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">name</td> <td valign="top">The name of the file.</td> <td valign="top" align="center">Yes</td> </tr> </table> <h4>Examples</h4> <blockquote><pre> <filelist id="docfiles" dir="${doc.src}" files="foo.xml,bar.xml"/> </pre></blockquote> <p>The files <code>${doc.src}/foo.xml</code> and <code>${doc.src}/bar.xml</code>. Note that these files may not (yet) actually exist. </p> <blockquote><pre> <filelist id="docfiles" dir="${doc.src}" files="foo.xml bar.xml"/> </pre></blockquote> <p>Same files as the example above.</p> <blockquote><pre> <filelist refid="docfiles"/> </pre></blockquote> <p>Same files as the example above.</p> <blockquote><pre> <filelist id="docfiles" dir="${doc.src}"> <file name="foo.xml"/> <file name="bar.xml"/> </filelist> </pre></blockquote> <p>Same files as the example above.</p> </body> </html> --- NEW FILE: regexp.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Regexp Type</title> </head> <body> <h2><a name="regexp">Regexp</a></h2> <p> Regexp represents a regular expression. <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">pattern</td> <td valign="top">regular expression pattern</td> <td valign="top" align="center">Yes</td> </tr> </table> <h3>Examples</h3> <blockquote><pre> <regexp id="myregexp" pattern="alpha(.+)beta"/><br> </pre></blockquote> <p> Defines a regular expression for later use with id myregexp. </p> <blockquote><pre> <regexp refid="myregexp"/><br> </pre></blockquote> <p> Use the regular expression with id myregexp. </p> <h3><a name="implementation">Choice of regular expression implementation</a></h3> <p> Ant comes with wrappers for <a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html" target="_top">the java.util.regex package of JDK 1.4</a>, <a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a> and <a href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>, See <a href="../install.html#librarydependencies">installation dependencies</a> concerning the supporting libraries.</p> <p> The property <code>ant.regexp.regexpimpl</code> governs which regular expression implementation will be chosen. Possible values for this property are : <ul> <li> org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp </li> <li> org.apache.tools.ant.util.regexp.JakartaOroRegexp </li> <li> org.apache.tools.ant.util.regexp.JakartaRegexpRegexp </li> </ul> It can also be another implementation of the interface <code>org.apache.tools.ant.util.regexp.Regexp</code>. If <code>ant.regexp.regexpimpl</code> is not defined, ant checks in the order Jdk14Regexp, JakartaOroRegexp, JakartaRegexp for the availability of the corresponding library. The first of these 3 which is found will be used.</p> <p> There are cross-platform issues for matches related to line terminator. For example if you use $ to anchor your regular expression on the end of a line the results might be very different depending on both your platform and the regular expression library you use. It is 'highly recommended' that you test your pattern on both Unix and Windows platforms before you rely on it. <ul> <li>Jakarta Oro defines a line terminator as '\n' and is consistent with Perl.</li> <li>Jakarta RegExp uses a system-dependant line terminator.</li> <li>JDK 1.4 uses '\n', '\r\n', '\u0085', '\u2028', '\u2029' as a default but is configured in the wrapper to use only '\n' (UNIX_LINE)</li> </ul> <em>We <b>strongly</b> recommend that you use Jakarta Oro.</em> </p> <h3>Usage</h3> The following tasks and types use the Regexp type : <ul> <li><a href="../OptionalTasks/replaceregexp.html">ReplaceRegExp task</a></li> <li><a href="filterchain.html#linecontainsregexp">LineContainsRegexp filter</a></li> </ul> <p> These string filters also use the mechanism of regexp to choose a regular expression implementation : </p> <ul> <li><a href="filterchain.html#containsregex">ContainsRegex string filter</a></li> <li><a href="filterchain.html#replaceregex">ReplaceRegex string filter</a></li> </ul> </body> </html> --- NEW FILE: filterset.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>FilterSet Type</title> </head> <body> <h2><a name="filterset">FilterSet</a></h2> <p>FilterSets are groups of filters. Filters can be defined as token-value pairs or be read in from a file. FilterSets can appear inside tasks that support this feature or at the same level as <code><target></code> - i.e., as children of <code><project></code>.</p> <p>FilterSets support the <code>id</code> and <code>refid</code> attributes. You can define a FilterSet with an <code>id</code> attribute and then refer to that definition from another FilterSet with a <code>refid</code> attribute. It is also possible to nest filtersets into filtersets to get a set union of the contained filters.</p> <p>In addition, FilterSets can specify <code>begintoken</code> and/or <code>endtoken</code> attributes to define what to match.</p> <p>Filtersets are used for doing replacements in tasks such as <code><copy></code>, etc.</p> <p> <strong>Note: </strong>When a filterset is used in an operation, the files are processed in text mode and the filters applied line by line. This means that the copy operations will typically corrupt binary files. When applying filters you should ensure that the set of files being filtered are all text files. </p> <h2>Filterset</h2> <table cellSpacing=0 cellPadding=2 border=1> <tr> <td vAlign=top><b>Attribute</b></td> <td vAlign=top><b>Description</b></td> <td vAlign=top><b>Default</b></td> <td vAlign=top align="center"><b>Required</b></td> </tr> <tr> <td vAlign=top>begintoken</td> <td vAlign=top>The string marking the beginning of a token (eg., <code>@DATE@</code>).</td> <td vAlign=top>@</td> <td vAlign=top align="center">No</td> </tr> <tr> <td vAlign=top>endtoken</td> <td vAlign=top>The string marking the end of a token (eg., <code>@DATE@</code>).</td> <td vAlign=top>@</td> <td vAlign=top align="center">No</td> </tr> <tr> <td vAlign=top>filtersfile</td> <td vAlign=top>Specify a single filtersfile.</td> <td vAlign=top><i>none</i></td> <td vAlign=top align="center">No</td> </tr> <tr> <td vAlign=top>recurse</td> <td vAlign=top>Indicates whether the replacement text of tokens should be searched for more tokens. <b>Since Ant 1.6.3</b></td> <td vAlign=top><i>true</i></td> <td vAlign=top align="center">No</td> </tr> <tr> <td vAlign=top>onmissingfiltersfile</td> <td vAlign=top>Indicate behavior when a nonexistent <i>filtersfile</i> is specified. One of "fail", "warn", "ignore". <b>Since Ant 1.7</b></td> <td vAlign=top>"fail"</td> <td vAlign=top align="center">No</td> </tr> </table> <h2>Filter</h2> <table cellSpacing=0 cellPadding=2 border=1> <tr> <td vAlign=top><b>Attribute</b></td> <td vAlign=top><b>Description</b></td> <td vAlign=top align="center"><b>Required</b></td> </tr> <tr> <td vAlign=top>token</td> <td vAlign=top>The token to replace (eg., <code>@DATE@</code>)</td> <td vAlign=top align="center">Yes</td> </tr> <tr> <td vAlign=top>value</td> <td vAlign=top>The value to replace it with (eg., <code>Thursday, April 26, 2001</code>).</td> <td vAlign=top align="center">Yes</td> </tr> </table> <h2>Filtersfile</h2> <table cellSpacing=0 cellPadding=2 border=1> <tr> <td vAlign=top><b>Attribute</b></td> <td vAlign=top><b>Description</b></td> <td vAlign=top align="center"><b>Required</b></td> </tr> <tr> <td vAlign=top>file</td> <td vAlign=top>A properties file of name-value pairs from which to load the tokens.</td> <td vAlign=top align="center">Yes</td> </tr> </table> <h4>Examples</h4> <p>You are copying the <code>version.txt</code> file to the <code>dist</code> directory from the <code>build</code> directory but wish to replace the token <code>@DATE@</code> with today's date.</p> <blockquote><pre> <copy file="build/version.txt" toFile="apache-ant-1.7.0/version.txt"> <filterset> <filter token="DATE" value="December 13 2006"/> </filterset> </copy> </pre></blockquote> <p>You are copying the <code>version.txt</code> file to the <code>dist</code> directory from the build directory but wish to replace the token <code>%DATE*</code> with today's date.</p> <blockquote><pre> <copy file="build/version.txt" toFile="apache-ant-1.7.0/version.txt"> <filterset begintoken="%" endtoken="*"> <filter token="DATE" value="December 13 2006"/> </filterset> </copy> </pre></blockquote> <p>Copy all the docs but change all dates and appropriate notices as stored in a file.</p> <blockquote><pre> <copy toDir="apache-ant-1.7.0/docs"> <fileset dir="build/docs"> <include name="**/*.html"> </fileset> <filterset begintoken="%" endtoken="*"> <filtersfile file="/Users/antoine/dev/asf/ant-core/dist.properties"/> </filterset> </copy> </pre></blockquote> <p>Define a FilterSet and reference it later.</p> <blockquote><pre> <filterset id="myFilterSet" begintoken="%" endtoken="*"> <filter token="DATE" value="December 13 2006"/> </filterset> <copy file="build/version.txt" toFile="apache-ant-1.7.0/version.txt"> <filterset refid="myFilterSet"/> </copy> </pre></blockquote> </body></html> --- NEW FILE: mapper.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Mapper Type</title> </head> <body> <h2><a name="mapper">Mapping File Names</a></h2> <p>Some tasks take source files and create target files. Depending on the task, it may be quite obvious which name a target file will have (using <a href="../CoreTasks/javac.html">javac</a>, you know there will be <code>.class</code> files for your <code>.java</code> files) - in other cases you may want to specify the target files, either to help Ant or to get an extra bit of functionality.</p> <p>While source files are usually specified as <a href="fileset.html">fileset</a>s, you don't specify target files directly - instead, you tell Ant how to find the target file(s) for one source file. An instance of <code>org.apache.tools.ant.util.FileNameMapper</code> is responsible for this. It constructs target file names based on rules that can be parameterized with <code>from</code> and <code>to</code> attributes - the exact meaning of which is implementation-dependent.</p> <p>These instances are defined in <code><mapper></code> elements with the following attributes:</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">type</td> <td valign="top">specifies one of the built-in implementations.</td> <td rowspan="2" align="center" valign="middle">Exactly one of these</td> </tr> <tr> <td valign="top">classname</td> <td valign="top">specifies the implementation by class name.</td> </tr> <tr> <td valign="top">classpath</td> <td valign="top">the classpath to use when looking up <code>classname</code>.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">classpathref</td> <td valign="top">the classpath to use, given as <a href="../using.html#references">reference</a> to a path defined elsewhere.</td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">from</td> <td valign="top">the <code>from</code> attribute for the given implementation.</td> <td align="center" valign="top">Depends on implementation.</td> </tr> <tr> <td valign="top">to</td> <td valign="top">the <code>to</code> attribute for the given implementation.</td> <td align="center" valign="top">Depends on implementation.</td> </tr> </table> <p>Note that Ant will not automatically convert / or \ characters in the <code>to</code> and <code>from</code> attributes to the correct directory separator of your current platform. If you need to specify this separator, use <code>/</code> instead. For the regexpmapper, <code>/</code> will not work, as on windows it is the '\' character, and this is an escape character for regular expressions, one should use the <code>handledirsep</code> attribute instead. </p> <h3>Parameters specified as nested elements</h3> <p>The classpath can be specified via a nested <code><classpath></code>, as well - that is, a <a href="../using.html#path">path</a>-like structure.</p> <p><b>Since Ant 1.6.2,</b> nested File Mappers can be supplied via either <CODE><mapper></CODE> elements or <a href="../CoreTasks/typedef.html"><code><typedef></code></a>'d implementations of <CODE>org.apache.tools.ant.util.FileNameMapper</CODE>. If nested File Mappers are specified by either means, the mapper will be implicitly configured as a <a href="#composite-mapper">composite mapper</a>. </p> <hr> <h3>The built-in mapper types are:</h3> <p>All built-in mappers are case-sensitive.</p> <p><b>As of Ant 1.6.2,</b> each of the built-in mapper implementation types is directly accessible using a specific tagname. This makes it possible for filename mappers to support attributes in addition to the generally available <i>to</i> and <i>from</i>.<br> The <code><mapper type|classname="..."></code> usage form remains valid for reasons of backward compatibility.</p> <h4><a name="identity-mapper">identity</a></h4> <p>The target file name is identical to the source file name. Both <code>to</code> and <code>from</code> will be ignored.</p> <b>Examples:</b> <blockquote><pre> <mapper type="identity"/> <identitymapper/> </pre></blockquote> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Source file name</b></td> <td valign="top"><b>Target file name</b></td> </tr> <tr> <td valign="top"><code>A.java</code></td> <td valign="top"><code>A.java</code></td> </tr> <tr> <td valign="top"><code>foo/bar/B.java</code></td> <td valign="top"><code>foo/bar/B.java</code></td> </tr> <tr> <td valign="top"><code>C.properties</code></td> <td valign="top"><code>C.properties</code></td> </tr> <tr> <td valign="top"><code>Classes/dir/dir2/A.properties</code></td> <td valign="top"><code>Classes/dir/dir2/A.properties</code></td> </tr> </table> <h4><a name="flatten-mapper">flatten</a></h4> <p>The target file name is identical to the source file name, with all leading directory information stripped off. Both <code>to</code> and <code>from</code> will be ignored.</p> <b>Examples:</b> <blockquote><pre> <mapper type="flatten"/> <flattenmapper/> </pre></blockquote> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Source file name</b></td> <td valign="top"><b>Target file name</b></td> </tr> <tr> <td valign="top"><code>A.java</code></td> <td valign="top"><code>A.java</code></td> </tr> <tr> <td valign="top"><code>foo/bar/B.java</code></td> <td valign="top"><code>B.java</code></td> </tr> <tr> <td valign="top"><code>C.properties</code></td> <td valign="top"><code>C.properties</code></td> </tr> <tr> <td valign="top"><code>Classes/dir/dir2/A.properties</code></td> <td valign="top"><code>A.properties</code></td> </tr> </table> <h4><a name="merge-mapper">merge</a></h4> <p>The target file name will always be the same, as defined by <code>to</code> - <code>from</code> will be ignored.</p> <h5>Examples:</h5> <blockquote><pre> <mapper type="merge" to="archive.tar"/> <mergemapper to="archive.tar"/> </pre></blockquote> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Source file name</b></td> <td valign="top"><b>Target file name</b></td> </tr> <tr> <td valign="top"><code>A.java</code></td> <td valign="top"><code>archive.tar</code></td> </tr> <tr> <td valign="top"><code>foo/bar/B.java</code></td> <td valign="top"><code>archive.tar</code></td> </tr> <tr> <td valign="top"><code>C.properties</code></td> <td valign="top"><code>archive.tar</code></td> </tr> <tr> <td valign="top"><code>Classes/dir/dir2/A.properties</code></td> <td valign="top"><code>archive.tar</code></td> </tr> </table> <h4><a name="glob-mapper">glob</a></h4> <p>Both <code>to</code> and <code>from</code> define patterns that may contain at most one <code>*</code>. For each source file that matches the <code>from</code> pattern, a target file name will be constructed from the <code>to</code> pattern by substituting the <code>*</code> in the <code>to</code> pattern with the text that matches the <code>*</code> in the <code>from</code> pattern. Source file names that don't match the <code>from</code> pattern will be ignored.</p> <b>Examples:</b> <blockquote><pre> <mapper type="glob" from="*.java" to="*.java.bak"/> <globmapper from="*.java" to="*.java.bak"/> </pre></blockquote> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Source file name</b></td> <td valign="top"><b>Target file name</b></td> </tr> <tr> <td valign="top"><code>A.java</code></td> <td valign="top"><code>A.java.bak</code></td> </tr> <tr> <td valign="top"><code>foo/bar/B.java</code></td> <td valign="top"><code>foo/bar/B.java.bak</code></td> </tr> <tr> <td valign="top"><code>C.properties</code></td> <td valign="top">ignored</td> </tr> <tr> <td valign="top"><code>Classes/dir/dir2/A.properties</code></td> <td valign="top">ignored</td> </tr> </table> <blockquote><pre> <mapper type="glob" from="C*ies" to="Q*y"/> <globmapper from="C*ies" to="Q*y"/> </pre></blockquote> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Source file name</b></td> <td valign="top"><b>Target file name</b></td> </tr> <tr> <td valign="top"><code>A.java</code></td> <td valign="top">ignored</td> </tr> <tr> <td valign="top"><code>foo/bar/B.java</code></td> <td valign="top">ignored</td> </tr> <tr> <td valign="top"><code>C.properties</code></td> <td valign="top"><code>Q.property</code></td> </tr> <tr> <td valign="top"><code>Classes/dir/dir2/A.properties</code></td> <td valign="top"><code>Qlasses/dir/dir2/A.property</code></td> </tr> </table> <p> The globmapper mapper can take the following extra attributes. </p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">casesensitive</td> <td valign="top"> If this is false, the mapper will ignore case when matching the glob pattern. This attribute can be true or false, the default is true. <em>Since Ant 1.6.3.</em> </td> <td align="center" valign="top">No</td> </tr> <tr> <td valign="top">handledirsep</td> <td valign="top"> If this is specified, the mapper will ignore the difference between the normal directory separator characters - \ and /. This attribute can be true or false, the default is false. This attribute is useful for cross-platform build files. <em>Since Ant 1.6.3.</em> <td align="center" valign="top">No</td> </tr> </table> <p> An example: </p> <pre> <pathconvert property="x" targetos="unix"> <path path="Aj.Java"/> <mapper> <chainedmapper> <flattenmapper/> <globmapper from="a*.java" to="*.java.bak" casesensitive="no"/> </chainedmapper> </mapper> </pathconvert> <echo>x is ${x}</echo> </pre> <p> will output "x is j.java.bak". </p> <p> and </p> <pre> <pathconvert property="x" targetos="unix"> <path path="d/e/f/j.java"/> <mapper> <globmapper from="/Users/antoine/dev/asf/ant-core\d/e\*" to="*" ignoredirchar="yes"/> </mapper> </pathconvert> <echo>x is ${x}</echo> </pre> <p> will output "x is f/j.java". </p> <h4><a name="regexp-mapper">regexp</a></h4> <p>Both <code>to</code> and <code>from</code> define regular expressions. If the source file name matches the <code>from</code> pattern, the target file name will be constructed from the <code>to</code> pattern, using <code>\0</code> to <code>\9</code> as back-references for the full match (<code>\0</code>) or the matches of the subexpressions in parentheses. Source files not matching the <code>from</code> pattern will be ignored.</p> <p>Note that you need to escape a dollar-sign (<code>$</code>) with another dollar-sign in Ant.</p> <p>The regexp mapper needs a supporting library and an implementation of <code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that hides the specifics of the library. Ant comes with implementations for <a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html" target="_top">the java.util.regex package of JDK 1.4 or higher</a>, <a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a> and <a href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>. If you compile from sources and plan to use one of them, make sure the libraries are in your <code>CLASSPATH</code>. For information about using <a href="http://www.cacas.org/~wes/java/" target="_top">gnu.regexp</a> or <a href="http://www.crocodile.org/~sts/Rex/" target="_top">gnu.rex</a> with Ant, see <a href="http://marc.theaimsgroup.com/?l=ant-dev&m=97550753813481&w=2" target="_top">this</a> article.</p> <p>This means, you need one of the supported regular expression libraries <strong>and</strong> the corresponding <code>ant-[jakarta-oro, jakarta-regexp, apache-oro, apache-regexp}.jar</code> from the Ant release you are using. Make sure, both will be loaded from the same classpath, that is either put them into your <code>CLASSPATH</code>, <code>ANT_HOME/lib</code> directory or a nested <code><classpath></code> element of the mapper - you cannot have <code>ant-[jakarta-oro, jakarta-regexp, apache-oro, apache-regexp].jar</code> in <code>ANT_HOME/lib</code> and the library in a nested <code><classpath></code>.</p> <p>Ant will choose the regular-expression library based on the following algorithm:</p> <ul> <li>If the syste... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:18
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/antlibs/svn In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/antlibs/svn Added Files: index.html Log Message: Update 4 years old ant. --- NEW FILE: index.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Subversion Ant Library</title> <link type="text/css" href="../../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../../antlibs/index.html">Introduction</a> </li> <li> <a href="../../antlibs/charter.html">Charter</a> </li> <li> <a href="../../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Subversion Ant Library</h1> <h3 class="section"> <a name="Idea"></a> Idea </h3> <p>The main purpose of this Ant library is to provide the same level of support that Ant provides for CVS. This means the tasks are wrappers on top of the command line client (read: you still need to install an svn client) and there is not much more than running the executable and creating some reports.</p> <p>If you are looking for projects that aim at more, there are better alternatives, for example <a href="http://subclipse.tigris.org/svnant.html">Subclipse's Ant task</a> or <a href="http://tmate.org/svn/ant.html">JavaSVN</a>.</p> <h3 class="section"> <a name="Tasks"></a> Tasks </h3> <h4 class="subsection"> <a name="svn"></a> svn </h4> <p>A very thin layer on top of the command line executable, comparable to <a href="http://ant.apache.org/manual/CoreTasks/cvs.html">the CVS task</a>.</p> <h4 class="subsection"> <a name="changelog"></a> changelog </h4> <p>Creates a log of change comments between two revisions, comparable to <a href="http://ant.apache.org/manual/CoreTasks/changelog.html">CvsChangeLog</a>.</p> <h4 class="subsection"> <a name="*diff"></a> *diff </h4> <p><code><tagdiff></code> creates a differences report for the changes between two tags or branches.</p> <p><code><revisiondiff></code> creates a differences report for the changes between two revisions.</p> <p>Together comparable to <a href="http://ant.apache.org/manual/CoreTasks/cvstagdiff.html">CvsTagDiff</a>.</p> <h3 class="section"> <a name="Examples"></a> Examples </h3> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/images In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/images Added Files: JDJEditorsChoiceAward.jpg ant_logo.ico ant_logo_large.gif ant_logo_medium.gif ant_logo_small.gif beta.png current.gif group-logo.gif jp_rcwinner_2003.gif jw_ec_logo_winner2002.gif jw_ec_logo_winner2003.gif label.gif menu-left.gif menu-right.gif page.gif printer.gif project-logo.gif sdm_productivity_award.gif search-left.gif search-right.gif spacer.gif tab-left.gif tab-right.gif tabSel-left.gif tabSel-right.gif Log Message: Update 4 years old ant. --- NEW FILE: menu-left.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: group-logo.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: JDJEditorsChoiceAward.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: current.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: page.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant_logo.ico --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant_logo_large.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: label.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant_logo_small.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: tab-left.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: tab-right.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: jw_ec_logo_winner2002.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: jw_ec_logo_winner2003.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: search-right.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: sdm_productivity_award.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: tabSel-right.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: project-logo.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: printer.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: jp_rcwinner_2003.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: spacer.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant_logo_medium.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: menu-right.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: search-left.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: beta.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: tabSel-left.gif --- (This appears to be a binary file; contents omitted.) |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:17
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/antlibs/antunit In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/antlibs/antunit Added Files: index.html Log Message: Update 4 years old ant. --- NEW FILE: index.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - AntUnit</title> <link type="text/css" href="../../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../../antlibs/index.html">Introduction</a> </li> <li> <a href="../../antlibs/charter.html">Charter</a> </li> <li> <a href="../../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">AntUnit</h1> <h3 class="section"> <a name="AntUnit 1.0Beta2"></a> AntUnit 1.0Beta2 </h3> <h3>October 29, 2006 - Apache AntUnit 1.0Beta2 Available</h3> <p>Apache AntUnit 1.0Beta2 is now available for download as <a href="http://ant.apache.org/antlibs/bindownload.cgi">binary</a> or <a href="http://ant.apache.org/antlibs/srcdownload.cgi">source</a> release.</p> <h3 class="section"> <a name="Idea"></a> Idea </h3> <p>Initially all tests for Ant tasks were written as individual <a href="http://www.junit.org/">JUnit</a> test cases. Pretty soon it was clear that most tests needed to perform common tasks like reading a build file, initializing a project instance with it and executing a target. At this point <a href="http://svn.apache.org/viewcvs.cgi/ant/core/trunk/src/testcases/org/apache/tools/ant/BuildFileTest.java">BuildFileTest</a> was invented, a base class for almost all task test cases.</p> <p>BuildFileTest works fine and in fact has been picked up by <a href="http://ant-contrib.sf.net/">the Ant-Contrib Project</a> and others as well.</p> <p>Over time a new pattern evolved, more and more tests only executed a target and didn't check any effects. Instead that target contained the assertions as a <code><fail></code> task. This is an example taken from the build file for the ANTLR task (using Ant 1.7 features):</p> <pre class="code"> <target name="test3" depends="setup"> <antlr target="antlr.g" outputdirectory="${tmp.dir}"/> <fail> <condition> <!-- to prove each of these files exists; ANTLR >= 2.7.6 leaves behind new (.smap) files as well. --> <resourcecount when="ne" count="5"> <fileset dir="${tmp.dir}"> <include name="CalcParserTokenTypes.txt" /> <include name="CalcParserTokenTypes.java" /> <include name="CalcLexer.java" /> <include name="CalcParser.java" /> <include name="CalcTreeWalker.java" /> </fileset> </resourcecount> </condition> </fail> </target> </pre> <p>where the corresponding JUnit testcase has been reduced to</p> <pre class="code"> ... public class ANTLRTest extends BuildFileTest { private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/antlr/"; public ANTLRTest(String name) { super(name); } public void setUp() { configureProject(TASKDEFS_DIR + "antlr.xml"); } public void tearDown() { executeTarget("cleanup"); } public void test3() { executeTarget("test3"); } ... } </pre> <p>This approach has a couple of advantages, one of them is that it is very easy to translate an example build file from a bug report into a test case. If you ask a user for a testcase for a given bug in Ant, he now doesn't need to understand JUnit or how to fit a test into Ant's existing tests any more.</p> <p>AntUnit takes this approach to testing even further, it removes JUnit completely and it comes with a set of predefined <code><assert></code> tasks in order to reuse common kind of checks.</p> <p>It turns out that AntUnit lends itself as a solution to other problems as well. The assertions are an easy way to validate a setup before even starting the build process, for example. AntUnit could also be used for functional and integration tests outside of the scope of Ant tasks (assert contents of databases after running an application, assert contents of HTTP responses ...). This is an area that will need more research.</p> <h3 class="section"> <a name="Concepts"></a> Concepts </h3> <h4 class="subsection"> <a name="antunit Task"></a> antunit Task </h4> <p>The <antunit> task drives the tests much like <junit> does for JUnit tests.</p> <p>When called on a build file, the task will start a new Ant project for that build file and scan for targets with names that start with "test". For each such target it then will</p> <ol> <li>Execute the target named setUp, if there is one.</li> <li>Execute the target itself - if this target depends on other targets the normal Ant rules apply and the dependent targets are executed first.</li> <li>Execute the target names tearDown, if there is one.</li> </ol> <h4 class="subsection"> <a name="Assertions"></a> Assertions </h4> <p>The base task is <code><assertTrue></code>. It accepts a single nested condition and throws a subclass of BuildException named AssertionFailedException if that condition evaluates to false.</p> <p>This task could have been implemented using <code><macrodef></code> and <code><fail></code>, but in fact it is a "real" task so that it is possible to throw a subclass of BuildException. The <code><antunit></code> task catches this exception and marks the target as failed, any other type of Exception (including other BuildException) are test errors.</p> <p>Together with <code><assertTrue></code> there are many predefined assertions for common conditions, most of these are only macros.</p> <h4 class="subsection"> <a name="Other Tasks"></a> Other Tasks </h4> <p>The <code><logcapturer></code> captures all messages that pass Ant's logging system and provides them via a reference inside of the project. If you want to assert certain log messages, you need to start this task (prior to your target under test) and use the <code><assertLogContains></code> assertion.</p> <p><code><expectFailure></code> is a task container that catches any BuildException thrown by tasks nested into it. If no exception has been thrown it will cause a test failure (by throwing an AssertionFailedException).</p> <h4 class="subsection"> <a name="AntUnitListener"></a> AntUnitListener </h4> <p>Part of the library is the <code>AntUnitListener</code> interface that can be used to record test results. The <antunit> task accepts arbitrary many listeners and relays test results to them.</p> <p>Currently two implementations - <code><plainlistener></code> and <code>xmllistener</code> modelled after the "plain" and "xml" JUnit listeners - are bundled with the library.</p> <h3 class="section"> <a name="Examples"></a> Examples </h3> <p>This is a way to test that <code><touch></code> actually creates a file if it doesn't exist:</p> <pre class="code"> <project xmlns:au="antlib:org.apache.ant.antunit"> <!-- is called prior to the test --> <target name="setUp"> <property name="foo" value="foo"/> </target> <!-- is called after the test, even if that caused an error --> <target name="tearDown"> <delete file="${foo}" quiet="true"/> </target> <!-- the actual test case --> <target name="testTouchCreatesFile"> <au:assertFileDoesntExist file="${foo}"/> <touch file="${foo}"/> <au:assertFileExists file="${foo}"/> </target> </project> </pre> <p>When running a task like</p> <pre class="code"> <au:antunit> <fileset dir="." includes="touch.xml"/> <au:plainlistener/> </au:antunit> </pre> <p>from a buildfile of its own you'll get a result that looks like</p> <pre class="code"> [au:antunit] Build File: /tmp/touch.xml [au:antunit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.249 sec [au:antunit] Target: testTouchCreatesFile took 0.183 sec BUILD SUCCESSFUL Total time: 1 second </pre> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:17
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/antlibs/dotnet In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/antlibs/dotnet Added Files: index.html Log Message: Update 4 years old ant. --- NEW FILE: index.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - .NET Ant Library</title> <link type="text/css" href="../../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../../antlibs/index.html">Introduction</a> </li> <li> <a href="../../antlibs/charter.html">Charter</a> </li> <li> <a href="../../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">.NET Ant Library</h1> <h3 class="section"> <a name=".NET Ant Library 1.0"></a> .NET Ant Library 1.0 </h3> <h3>November 6, 2006 - Apache .NET Ant Library 1.0 Available</h3> <p>Apache .NET Ant Library 1.0 is now available for download as <a href="http://ant.apache.org/antlibs/bindownload.cgi">binary</a> or <a href="http://ant.apache.org/antlibs/srcdownload.cgi">source</a> release.</p> <h3 class="section"> <a name="Idea"></a> Idea </h3> <p>This library doesn't strive to replace NAnt or MSBuild, its main purpose is to help those of us who work on projects crossing platform boundaries. With this library you can use Ant to build and test the Java as well as the .NET parts of your project.</p> <p>This library provides a special version of the <code><exec></code> task tailored to run .NET executables. On Windows it will assume the Microsoft framework is around and run the executable directly, while it will invoke Mono on any other platform. Of course you can override these assumptions.</p> <p>Based on this a few tasks to run well known .NET utilities from within Ant are provided, namely tasks to run <a href="http://www.nunit.org/">NUnit</a>, <a href="http://nant.sf.net/">NAnt</a>, <a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=27&SiteID=1">MSBuild</a> and the <a href="http://wix.sf.net/">Wix</a> toolkit.</p> <p>The initial .NET tasks of Ant (compiler tasks for C#, J# and VB.NET for example) have also been moved to this Antlib and will see further development here.</p> <h3 class="section"> <a name="Tasks"></a> Tasks </h3> <h4 class="subsection"> <a name="dotnetexec"></a> dotnetexec </h4> <p>Runs a .NET executable.</p> <h4 class="subsection"> <a name="nunit"></a> nunit </h4> <p>Runs NUnit tests.</p> <h4 class="subsection"> <a name="nant"></a> nant </h4> <p>Invokes NAnt, either on an external file or a build file snippet contained inside your Ant build file.</p> <h4 class="subsection"> <a name="msbuild"></a> msbuild </h4> <p>Invokes MSBuild, either on an external file or a build file snippet contained inside your Ant build file.</p> <h4 class="subsection"> <a name="wix"></a> wix </h4> <p>Invokes the candle and light executables of the WiX toolkit in order to create MSI installers from within Ant.</p> <h3 class="section"> <a name="Examples"></a> Examples </h3> <h4 class="subsection"> <a name="nant"></a> nant </h4> <pre class="code"> <project xmlns:dn="antlib:org.apache.ant.dotnet"> <dn:nant> <build> <echo message="Hello world"/> </build> </dn:nant> </project> </pre> <p>runs NAnt on the embedded <code><echo></code> task, output looks like</p> <pre class="code"> Buildfile: test.xml [dn:nant] NAnt 0.85 (Build 0.85.1932.0; rc3; 16.04.2005) [dn:nant] Copyright (C) 2001-2005 Gerry Shaw [dn:nant] http://nant.sourceforge.net [dn:nant] [dn:nant] Buildfile: file:///c:/DOKUME~1/STEFAN~1.BOD/LOKALE~1/Temp/build1058451555.xml [dn:nant] Target framework: Microsoft .NET Framework 1.1 [dn:nant] [dn:nant] [echo] Hello world [dn:nant] [dn:nant] BUILD SUCCEEDED [dn:nant] [dn:nant] Total time: 0.2 seconds. BUILD SUCCESSFUL Total time: 2 seconds</pre> <h4 class="subsection"> <a name="msbuild"></a> msbuild </h4> <pre class="code"> <project xmlns:dn="antlib:org.apache.ant.dotnet"> <dn:msbuild> <build> <Message Text="Hello world" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"/> </build> </dn:msbuild> </project></pre> <p>runs MSBuild on the embedded <code><Message></code> task, output looks like</p> <pre class="code"> Buildfile: test.xml [dn:msbuild] Microsoft (R) Build Engine Version 2.0.50727.42 [dn:msbuild] [Microsoft .NET Framework, Version 2.0.50727.42] [dn:msbuild] Copyright (C) Microsoft Corporation 2005. All rights reserved. [dn:msbuild] Build started 15.12.2005 20:21:56. [dn:msbuild] __________________________________________________ [dn:msbuild] Project "c:\Dokumente und Einstellungen\stefan.bodewig\Lokale Einstellungen\Temp\build1543310185.xml" (default targets): [dn:msbuild] Target generated-by-ant: [dn:msbuild] Hello world [dn:msbuild] Build succeeded. [dn:msbuild] 0 Warning(s) [dn:msbuild] 0 Error(s) [dn:msbuild] Time Elapsed 00:00:00.10 BUILD SUCCESSFUL Total time: 0 seconds </pre> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/manual In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/manual Added Files: LICENSE antexternal.html anttaskslist.html base_task_classes.html clonevm.html conceptstypeslist.html coretasklist.html cover.html credits.html develop.html developlist.html dirtasks.html favicon.ico feedback.html ide.html index.html inputhandler.html install.html installlist.html intro.html javacprops.html listeners.html optionaltasklist.html platform.html proxy.html running.html runninglist.html sysclasspath.html tasksoverview.html toc.html tutorial-HelloWorldWithAnt.html tutorial-tasks-filesets-properties.html tutorial-tasks-filesets-properties.zip tutorial-writing-tasks-src.zip tutorial-writing-tasks.html tutorials.html using.html usinglist.html Log Message: Update 4 years old ant. --- NEW FILE: inputhandler.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <title>InputHandler</title> </head> <body> <h1>InputHandler</h1> <h2>Overview</h2> <p>When a task wants to prompt a user for input, it doesn't simply read the input from the console as this would make it impossible to embed Ant in an IDE. Instead it asks an implementation of the <code>org.apache.tools.ant.input.InputHandler</code> interface to prompt the user and hand the user input back to the task.</p> <p>To do this, the task creates an <code>InputRequest</code> object and passes it to the <code>InputHandler</code> Such an <code>InputRequest</code> may know whether a given user input is valid and the <code>InputHandler</code> is supposed to reject all invalid input.</p> <p>Exactly one <code>InputHandler</code> instance is associated with every Ant process, users can specify the implementation using the <code>-inputhandler</code> command line switch.</p> <h2>InputHandler</h2> <p>The <code>InputHandler</code> interface contains exactly one method</p> <pre> void handleInput(InputRequest request) throws org.apache.tools.ant.BuildException; </pre> <p>with some pre- and postconditions. The main postcondition is that this method must not return unless the <code>request</code> considers the user input valid, it is allowed to throw an exception in this situation.</p> <p>Ant comes with three built-in implementations of this interface:</p> <h3><a name="defaulthandler">DefaultInputHandler</a></h3> <p>This is the implementation you get, when you don't use the <code>-inputhandler</code> command line switch at all. This implementation will print the prompt encapsulated in the <code>request</code> object to Ant's logging system and re-prompt for input until the user enters something that is considered valid input by the <code>request</code> object. Input will be read from the console and the user will need to press the Return key.</p> <h3>PropertyFileInputHandler</h3> <p>This implementation is useful if you want to run unattended build processes. It reads all input from a properties file and makes the build fail if it cannot find valid input in this file. The name of the properties file must be specified in the Java system property <code>ant.input.properties</code>.</p> <p>The prompt encapsulated in a <code>request</code> will be used as the key when looking up the input inside the properties file. If no input can be found, the input is considered invalid and an exception will be thrown.</p> <p><strong>Note</strong> that <code>ant.input.properties</code> must be a Java system property, not an Ant property. I.e. you cannot define it as a simple parameter to <code>ant</code>, but you can define it inside the <code>ANT_OPTS</code> environment variable.</p> <h3>GreedyInputHandler</h3> <p>Like the default implementation, this InputHandler reads from standard input. However, it consumes <i>all</i> available input. This behavior is useful for sending Ant input via an OS pipe. <b>Since Ant 1.7</b>.</p> <h2>InputRequest</h2> <p>Instances of <code>org.apache.tools.ant.input.InputRequest</code> encapsulate the information necessary to ask a user for input and validate this input.</p> <p>The instances of <code>InputRequest</code> itself will accept any input, but subclasses may use stricter validations. <code>org.apache.tools.ant.input.MultipleChoiceInputRequest</code> should be used if the user input must be part of a predefined set of choices.</p> </html> --- NEW FILE: tutorial-writing-tasks.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <title>Tutorial: Writing Tasks</title> <meta name="author" content="Jan Matèrne"> <style type="text/css"> <!-- .code { background: #EFEFEF; margin-top: } .output { color: #FFFFFF; background: #837A67; } --> </style> </head> <body> <h1>Tutorial: Writing Tasks</h1> <p>This document provides a step by step tutorial for writing tasks.</p> <h2>Content</h2> <p><ul> <li><a href="#buildenvironment">Set up the build environment</a></li> <li><a href="#write1">Write the Task</a></li> <li><a href="#use1">Use the Task</a></li> <li><a href="#TaskAdapter">Integration with TaskAdapter</a></li> <li><a href="#derivingFromTask">Deriving from Ant's Task</a></li> <li><a href="#attributes">Attributes</a></li> <li><a href="#NestedText">Nested Text</a></li> <li><a href="#NestedElements">Nested Elements</a></li> <li><a href="#complex">Our task in a little more complex version</a></li> <li><a href="#TestingTasks">Test the Task</a></li> <li><a href="#resources">Resources</a></li> </ul></p> <a name="buildenvironment"></a> <h2>Set up the build environment</h2> <p>Ant builds itself, we are using Ant too (why we would write a task if not? :-) therefore we should use Ant for our build.<p> <p>We choose a directory as root directory. All things will be done here if I say nothing different. I will reference this directory as <i>root-directory</i> of our project. In this root-directory we create a text file names <i>build.xml</i>. What should Ant do for us? <ul> <li>compiles my stuff</li> <li>make the jar, so that I can deploy it</li> <li>clean up everything</li> </ul> So the buildfile contains three targets. <pre class="code"> <?xml version="1.0" encoding="ISO-8859-1"?> <project name="MyTask" basedir="." default="jar"> <target name="clean" description="Delete all generated files"> <delete dir="classes"/> <delete file="MyTasks.jar"/> </target> <target name="compile" description="Compiles the Task"> <javac srcdir="src" destdir="classes"/> </target> <target name="jar" description="JARs the Task"> <jar destfile="MyTask.jar" basedir="classes"/> </target> </project> </pre> This buildfile uses often the same value (src, classes, MyTask.jar), so we should rewrite that using <code><property></code>s. On second there are some handicaps: <code><javac></code> requires that the destination directory exists; a call of "clean" with a non existing classes directory will fail; "jar" requires the execution of some steps bofore. So the refactored code is: <pre class="code"> <?xml version="1.0" encoding="ISO-8859-1"?> <project name="MyTask" basedir="." default="jar"> <b><property name="src.dir" value="src"/></b> <b><property name="classes.dir" value="classes"/></b> <target name="clean" description="Delete all generated files"> <delete dir="<b>${classes.dir}</b>" <b>failonerror="false"</b>/> <delete file="<b>apache-ant.jar</b>"/> </target> <target name="compile" description="Compiles the Task"> <b><mkdir dir="${classes.dir}"/></b> <javac srcdir="<b>src</b>" destdir="${classes.dir}"/> </target> <target name="jar" description="JARs the Task" <b>depends="compile"</b>> <jar destfile="apache-ant.jar" basedir="${classes.dir}"/> </target> </project> </pre> <i>ant.project.name</i> is one of the <a href="http://ant.apache.org/manual/using.html#built-in-props" target="_blank"> build-in properties [1]</a> of Ant. <a name="write1"></a> <h2>Write the Task</h2> Now we write the simplest Task - a HelloWorld-Task (what else?). Create a text file <i>HelloWorld.java</i> in the src-directory with: <pre class="code"> public class HelloWorld { public void execute() { System.out.println("Hello World"); } } </pre> and we can compile and jar it with <tt>ant</tt> (default target is "jar" and via its <i>depends</i>-clause the "compile" is executed before). <a name="use1"></a> <h2>Use the Task</h2> <p>But after creating the jar we want to use our new Task. Therefore we need a new target "use". Before we can use our new task we have to declare it with <a href="http://ant.apache.org/manual/CoreTasks/taskdef.html" target="_blank"> <code><taskdef></code> [2]</a>. And for easier process we change the default clause: <pre class="code"> <?xml version="1.0" encoding="ISO-8859-1"?> <project name="MyTask" basedir="." default="<b>use</b>"> ... <b><target name="use" description="Use the Task" depends="jar"> <taskdef name="helloworld" classname="HelloWorld" classpath="apache-ant.jar"/> <helloworld/> </target></b> </project> </pre> Important is the <i>classpath</i>-attribute. Ant searches in its /lib directory for tasks and our task isn't there. So we have to provide the right location. </p> <p>Now we can type in <tt>ant</tt> and all should work ... <pre class="output"> Buildfile: build.xml compile: [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes jar: [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar use: [helloworld] Hello World BUILD SUCCESSFUL Total time: 3 seconds </pre> <a name="TaskAdapter"></a> <h2>Integration with TaskAdapter</h2> <p>Our class has nothing to do with Ant. It extends no superclass and implements no interface. How does Ant know to integrate? Via name convention: our class provides a method with signature <tt>public void execute()</tt>. This class is wrapped by Ant's <tt>org.apache.tools.ant.TaskAdapter</tt> which is a task and uses reflection for setting a reference to the project and calling the <i>execute()</i> method.</p> <p><i>Setting a reference to the project</i>? Could be interesting. The Project class gives us some nice abilities: access to Ant's logging facilities getting and setting properties and much more. So we try to use that class: <pre class="code"> import org.apache.tools.ant.Project; public class HelloWorld { private Project project; public void setProject(Project proj) { project = proj; } public void execute() { String message = project.getProperty("ant.project.name"); project.log("Here is project '" + message + "'.", Project.MSG_INFO); } } </pre> and the execution with <tt>ant</tt> will show us the expected <pre class="output"> use: Here is project 'MyTask'. </pre></p> <a name="derivingFromTask"></a> <h2>Deriving from Ant's Task</h2> <p>Ok, that works ... But usually you will extend <tt>org.apache.tools.ant.Task</tt>. That class is integrated in Ant, get's the project-reference, provides documentation fiels, provides easier access to the logging facility and (very useful) gives you the exact location where <i>in the buildfile</i> this task instance is used.</p> <p>Oki-doki - let's us use some of these: <pre class="code"> import org.apache.tools.ant.Task; public class HelloWorld extends Task { public void execute() { // use of the reference to Project-instance String message = getProject().getProperty("ant.project.name"); // Task's log method log("Here is project '" + message + "'."); // where this task is used? log("I am used in: " + getLocation() ); } } </pre> which gives us when running <pre class="output"> use: [helloworld] Here is project 'MyTask'. [helloworld] I am used in: C:\tmp\anttests\MyFirstTask\build.xml:23: </pre> <a name="attributes"> <h2>Attributes</h2> <p>Now we want to specify the text of our message (it seems that we are rewriting the <code><echo/></code> task :-). First we well do that with an attribute. It is very easy - for each attribute provide a <tt>public void set<code><attributename></code>(<code><type></code> newValue)</tt> method and Ant will do the rest via reflection.</p> <pre class="code"> import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; public class HelloWorld extends Task { String message; public void setMessage(String msg) { message = msg; } public void execute() { if (message==null) { throw new BuildException("No message set."); } log(message); } } </pre> <p>Oh, what's that in execute()? Throw a <i>BuildException</i>? Yes, that's the usual way to show Ant that something important is missed and complete build should fail. The string provided there is written as build-failes-message. Here it's necessary because the log() method can't handle a <i>null</i> value as parameter and throws a NullPointerException. (Of course you can initialize the <i>message</i> with a default string.)</p> <p>After that we have to modify our buildfile: <pre class="code"> <target name="use" description="Use the Task" depends="jar"> <taskdef name="helloworld" classname="HelloWorld" classpath="apache-ant.jar"/> <helloworld <b>message="Hello World"</b>/> </target> </pre> That's all.</p> <p>Some background for working with attributes: Ant supports any of these datatypes as arguments of the set-method:<ul> <li>elementary data type like <i>int</i>, <i>long</i>, ...</li> <li>its wrapper classes like <i>java.lang.Integer</i>, <i>java.lang.Long</i>, ...</li> <li><i>java.lang.String</i></li> <li>some more classes (e.g. <i>java.io.File</i>; see <a href="http://ant.apache.org/manual/develop.html#set-magic">Manual 'Writing Your Own Task' [3]</a>)</li> </ul> Before calling the set-method all properties are resolved. So a <tt><helloworld message="${msg}"/></tt> would not set the message string to "${msg}" if there is a property "msg" with a set value. <a name="NestedText"></a> <h2>Nested Text</h2> <p>Maybe you have used the <code><echo></code> task in a way like <tt><echo>Hello World</echo></tt>. For that you have to provide a <tt>public void addText(String text)</tt> method. <pre class="code"> ... public class HelloWorld extends Task { ... public void addText(String text) { message = text; } ... } </pre> But here properties are <b>not</b> resolved! For resolving properties we have to use Project's <tt>replaceProperties(String propname) : String</tt> method which takes the property name as argument and returns its value (or ${propname} if not set).</p> <a name="NestedElements"></a> <h2>Nested Elements</h2> <p>There are several ways for inserting the ability of handling nested elements. See the <a href="http://ant.apache.org/manual/develop.html#nested-elements">Manual [4]</a> for other. We use the first way of the three described ways. There are several steps for that:<ol> <li>We create a class for collecting all the infos the nested element should contain. This class is created by the same rules for attributes and nested elements as for the task (<code>set<attributename></code>() methods). </li> <li>The task holds multiple instances of this class in a list.</li> <li>A factory method instantiates an object, saves the reference in the list and returns it to Ant Core.</li> <li>The execute() method iterates over the list and evaluates its values.</li> </li></p> <pre class="code"> import java.util.Vector; import java.util.Iterator; ... public void execute() { if (message!=null) log(message); for (Iterator it=messages.iterator(); it.hasNext(); ) { <b>// 4</b> Message msg = (Message)it.next(); log(msg.getMsg()); } } Vector messages = new Vector(); <b>// 2</b> public Message createMessage() { <b>// 3</b> Message msg = new Message(); messages.add(msg); return msg; } public class Message { <b>// 1</b> public Message() {} String msg; public void setMsg(String msg) { this.msg = msg; } public String getMsg() { return msg; } } ... </pre> <p>Then we can use the new nested element. But where is xml-name for that defined? The mapping XML-name : classname is defined in the factory method: <tt>public <i>classname</i> create<i>XML-name</i>()</tt>. Therefore we write in the buildfile <pre class="code"> <helloworld> <message msg="Nested Element 1"/> <message msg="Nested Element 2"/> </helloworld> </pre> <a name="complex"></a> <h2>Our task in a little more complex version</h2> <p>For recapitulation now a little refactored buildfile: <pre class="code"> <?xml version="1.0" encoding="ISO-8859-1"?> <project name="MyTask" basedir="." default="use"> <property name="src.dir" value="src"/> <property name="classes.dir" value="classes"/> <target name="clean" description="Delete all generated files"> <delete dir="${classes.dir}" failonerror="false"/> <delete file="apache-ant.jar"/> </target> <target name="compile" description="Compiles the Task"> <mkdir dir="${classes.dir}"/> <javac srcdir="src" destdir="${classes.dir}"/> </target> <target name="jar" description="JARs the Task" depends="compile"> <jar destfile="apache-ant.jar" basedir="${classes.dir}"/> </target> <target name="use.init" description="Taskdef the HelloWorld-Task" depends="jar"> <taskdef name="helloworld" classname="HelloWorld" classpath="apache-ant.jar"/> </target> <target name="use.without" description="Use without any" depends="use.init"> <helloworld/> </target> <target name="use.message" description="Use with attribute 'message'" depends="use.init"> <helloworld message="attribute-text"/> </target> <target name="use.fail" description="Use with attribute 'fail'" depends="use.init"> <helloworld fail="true"/> </target> <target name="use.nestedText" description="Use with nested text" depends="use.init"> <helloworld>nested-text</helloworld> </target> <target name="use.nestedElement" description="Use with nested 'message'" depends="use.init"> <helloworld> <message msg="Nested Element 1"/> <message msg="Nested Element 2"/> </helloworld> </target> <target name="use" description="Try all (w/out use.fail)" depends="use.without,use.message,use.nestedText,use.nestedElement" /> </project> </pre> And the code of the task: <pre class="code"> import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; import java.util.Vector; import java.util.Iterator; /** * The task of the tutorial. * Print a message or let the build fail. * @author Jan Matèrne * @since 2003-08-19 */ public class HelloWorld extends Task { /** The message to print. As attribute. */ String message; public void setMessage(String msg) { message = msg; } /** Should the build fail? Defaults to <i>false</i>. As attribute. */ boolean fail = false; public void setFail(boolean b) { fail = b; } /** Support for nested text. */ public void addText(String text) { message = text; } /** Do the work. */ public void execute() { // handle attribute 'fail' if (fail) throw new BuildException("Fail requested."); // handle attribute 'message' and nested text if (message!=null) log(message); // handle nested elements for (Iterator it=messages.iterator(); it.hasNext(); ) { Message msg = (Message)it.next(); log(msg.getMsg()); } } /** Store nested 'message's. */ Vector messages = new Vector(); /** Factory method for creating nested 'message's. */ public Message createMessage() { Message msg = new Message(); messages.add(msg); return msg; } /** A nested 'message'. */ public class Message { // Bean constructor public Message() {} /** Message to print. */ String msg; public void setMsg(String msg) { this.msg = msg; } public String getMsg() { return msg; } } } </pre> And it works: <pre class="output"> C:\tmp\anttests\MyFirstTask>ant Buildfile: build.xml compile: [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes [javac] Compiling 1 source file to C:\tmp\anttests\MyFirstTask\classes jar: [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar use.init: use.without: use.message: [helloworld] attribute-text use.nestedText: [helloworld] nested-text use.nestedElement: [helloworld] [helloworld] [helloworld] [helloworld] [helloworld] Nested Element 1 [helloworld] Nested Element 2 use: BUILD SUCCESSFUL Total time: 3 seconds C:\tmp\anttests\MyFirstTask>ant use.fail Buildfile: build.xml compile: jar: use.init: use.fail: BUILD FAILED C:\tmp\anttests\MyFirstTask\build.xml:36: Fail requested. Total time: 1 second C:\tmp\anttests\MyFirstTask> </pre> Next step: test ... <a name="TestingTasks"></a> <h2>Test the Task</h2> <p>We have written a test already: the use.* tasks in the buildfile. But its difficult to test that automatically. Common (and in Ant) used is JUnit for that. For testing tasks Ant provides a baseclass <tt>org.apache.tools.ant.BuildFileTest</tt>. This class extends <tt>junit.framework.TestCase</tt> and can therefore be integrated into the unit tests. But this class provides some for testing tasks useful methods: initialize Ant, load a buildfile, execute targets, expecting BuildExceptions with a specified text, expect a special text in the output log ... </p> <p>In Ant it is usual that the testcase has the same name as the task with a prepending <i>Test</i>, therefore we will create a file <i>HelloWorldTest.java</i>. Because we have a very small project we can put this file into <i>src</i> directory (Ant's own testclasses are in /src/testcases/...). Because we have already written our tests for "hand-test" we can use that for automatic tests, too. But there is one little problem we have to solve: all test supporting classes are not part of the binary distribution of Ant. So you can build the special jar file from source distro with target "test-jar" or you can download a nightly build from <a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar"> http://gump.covalent.net/jars/latest/ant/ant-testutil.jar [5]</a>.</p> <p>For executing the test and creating a report we need the optional tasks <code><junit></code> and <code><junitreport></code>. So we add to the buildfile: <pre class="code"> ... <font color="#9F9F9F"><project name="MyTask" basedir="." </font>default="test"<font color="#9F9F9F">></font> ... <property name="ant.test.lib" value="ant-testutil.jar"/> <property name="report.dir" value="report"/> <property name="junit.out.dir.xml" value="${report.dir}/junit/xml"/> <property name="junit.out.dir.html" value="${report.dir}/junit/html"/> <path id="classpath.run"> <path path="/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-launcher.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar:/Users/antoine/dev/asf/ant-core/lib/optional/activation.jar:/Users/antoine/dev/asf/ant-core/lib/optional/ant-antunit-1.0Beta2.jar:/Users/antoine/dev/asf/ant-core/lib/optional/antlrall.jar:/Users/antoine/dev/asf/ant-core/lib/optional/bcel.jar:/Users/antoine/dev/asf/ant-core/lib/optional/bsf-2.4.0.jar:/Users/antoine/dev/asf/ant-core/lib/optional/bsh-2.0b4.jar:/Users/antoine/dev/asf/ant-core/lib/optional/bsh-core-2.0b4.jar:/Users/antoine/dev/asf/ant-core/lib/optional/commons-logging-api.jar:/Users/antoine/dev/asf/ant-core/lib/optional/commons-logging.jar:/Users/antoine/dev/asf/ant-core/lib/optional/commons-net-1.4.0.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jai_codec.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jai_core.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jakarta-oro-2.0.8.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jakarta-regexp-1.2.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jdepend.jar:/Users/antoine/dev/asf/ant-core/lib/optional/js-1.6R3.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jsch-0.1.29.jar:/Users/antoine/dev/asf/ant-core/lib/optional/junit-3.8.2.jar:/Users/antoine/dev/asf/ant-core/lib/optional/jython.jar:/Users/antoine/dev/asf/ant-core/lib/optional/log4j-1.2.9.jar:/Users/antoine/dev/asf/ant-core/lib/optional/mail.jar:/Users/antoine/dev/asf/ant-core/lib/optional/NetRexxC.jar:/Users/antoine/dev/asf/ant-core/lib/optional/NetRexxR.jar:/Users/antoine/dev/asf/ant-core/lib/optional/resolver.jar:/Users/antoine/dev/asf/ant-core/lib/optional/starteam-sdk.jar:/Users/antoine/dev/asf/ant-core/lib/optional/stylebook-1.0-b2.jar:/Users/antoine/dev/asf/ant-core/lib/optional/weblogic.jar:/Users/antoine/dev/asf/ant-core/lib/optional/weblogicaux.jar:/Users/antoine/dev/asf/ant-core/lib/optional/weblogicclasses.jar:/Users/antoine/dev/asf/ant-core/lib/optional/xalan.jar:/Users/antoine/dev/asf/ant-core/lib/optional/xalan1.jar:/Users/antoine/dev/asf/ant-core/lib/optional/xercesSamples.jar:/Users/antoine/dev/asf/ant-core/lib/optional/xmlParserAPIs.jar:/Users/antoine/dev/asf/ant-core/lib/optional/xsltc.jar:/Users/antoine/dev/asf/ant-core/lib/optional:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-antlr.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-apache-bcel.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-apache-bsf.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-apache-log4j.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-apache-oro.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-apache-regexp.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-apache-resolver.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-commons-logging.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-commons-net.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-jai.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-javamail.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-jdepend.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-jmf.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-jsch.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-junit.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-launcher.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-netrexx.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-nodeps.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-starteam.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-stylebook.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-swing.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-testutil.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-trax.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant-weblogic.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/ant.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/xercesImpl.jar:/Users/antoine/dev/asf/ant-core/bootstrap/lib/xml-apis.jar"/> <path location="apache-ant.jar"/> </path> <path id="classpath.test"> <path refid="classpath.run"/> <path location="${ant.test.lib}"/> </path> <target name="clean" description="Delete all generated files"> <delete failonerror="false" includeEmptyDirs="true"> <fileset dir="." includes="apache-ant.jar"/> <fileset dir="${classes.dir}"/> <fileset dir="${report.dir}"/> </delete> </target> <font color="#9F9F9F"><target name="compile" description="Compiles the Task"> <mkdir dir="${classes.dir}"/> <javac srcdir="src" destdir="${classes.dir}" </font>classpath="${ant.test.lib}"<font color="#9F9F9F">/> </target></font> ... <target name="junit" description="Runs the unit tests" depends="jar"> <delete dir="${junit.out.dir.xml}"/> <mkdir dir="${junit.out.dir.xml}"/> <junit printsummary="yes" haltonfailure="no"> <classpath refid="classpath.test"/> <formatter type="xml"/> <batchtest fork="yes" todir="${junit.out.dir.xml}"> <fileset dir="src" includes="**/*Test.java"/> </batchtest> </junit> </target> <target name="junitreport" description="Create a report for the rest result"> <mkdir dir="${junit.out.dir.html}"/> <junitreport todir="${junit.out.dir.html}"> <fileset dir="${junit.out.dir.xml}"> <include name="*.xml"/> </fileset> <report format="frames" todir="${junit.out.dir.html}"/> </junitreport> </target> <target name="test" depends="junit,junitreport" description="Runs unit tests and creates a report" /> ... </pre></p> <p>Back to the <i>src/HelloWorldTest.java</i>. We create a class extending <i>BuildFileTest</i> with String-constructor (JUnit-standard), a <i>setUp()</i> method initializing Ant and for each testcase (targets use.*) a <i>testXX()</i> method invoking that target. <pre class="code"> import org.apache.tools.ant.BuildFileTest; public class HelloWorldTest extends BuildFileTest { public HelloWorldTest(String s) { super(s); } public void setUp() { // initialize Ant configureProject("build.xml"); } public void testWithout() { executeTarget("use.without"); assertEquals("Message was logged but should not.", getLog(), ""); } public void testMessage() { // execute target 'use.nestedText' and expect a message // 'attribute-text' in the log expectLog("use.message", "attribute-text"); } public void testFail() { // execute target 'use.fail' and expect a BuildException // with text 'Fail requested.' expectBuildException("use.fail", "Fail requested."); } public void testNestedText() { expectLog("use.nestedText", "nested-text"); } public void testNestedElement() { executeTarget("use.nestedElement"); assertLogContaining("Nested Element 1"); assertLogContaining("Nested Element 2"); } } </pre></p> <p>When starting <tt>ant</tt> we'll get a short message to STDOUT and a nice HTML-report. <pre class="output"> C:\tmp\anttests\MyFirstTask>ant Buildfile: build.xml compile: [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\classes [javac] Compiling 2 source files to C:\tmp\anttests\MyFirstTask\classes jar: [jar] Building jar: C:\tmp\anttests\MyFirstTask\MyTask.jar junit: [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\xml [junit] Running HelloWorldTest [junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 2,334 sec junitreport: [mkdir] Created dir: C:\tmp\anttests\MyFirstTask\report\junit\html [junitreport] Using Xalan version: Xalan Java 2.4.1 [junitreport] Transform time: 661ms test: BUILD SUCCESSFUL Total time: 7 seconds C:\tmp\anttests\MyFirstTask> </pre></p> <a name="resources"></a> <h2>Resources</h2> <p>This tutorial and its resources are available via <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22570">BugZilla [6]</a>. The ZIP provided there contains<ul> <li>this tutorial</li> <li>the buildfile (last version)</li> <li>the source of the task (last version)</li> <li>the source of the unit test (last version)</li> <li>the ant-testutil.jar (nightly build of 2003-08-18)</li> <li>generated classes</li> <li>generated jar</li> <li>generated reports</li> </ul> The last sources and the buildfile are also available <a href="tutorial-writing-tasks-src.zip">here [7]</a> inside the manual. </p> Used Links:<br> [1] <a href="http://ant.apache.org/manual/using.html#built-in-props">http://ant.apache.org/manual/using.html#built-in-props</a><br> [2] <a href="http://ant.apache.org/manual/CoreTasks/taskdef.html">http://ant.apache.org/manual/CoreTasks/taskdef.html</a><br> [3] <a href="http://ant.apache.org/manual/develop.html#set-magic">http://ant.apache.org/manual/develop.html#set-magic</a><br> [4] <a href="http://ant.apache.org/manual/develop.html#nested-elements">http://ant.apache.org/manual/develop.html#nested-elements</a><br> [5] <a href="http://gump.covalent.net/jars/latest/ant/ant-testutil.jar">http://gump.covalent.net/jars/latest/ant/ant-testutil.jar</a><br> [6] <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22570">http://issues.apache.org/bugzilla/show_bug.cgi?id=22570</a><br> [7] <a href="tutorial-writing-tasks-src.zip">tutorial-writing-tasks-src.zip</a><br> </body> </html> --- NEW FILE: LICENSE --- /* * 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. */ --- NEW FILE: proxy.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <title>Proxy Configuration</title> </head> <body> <h2>Proxy Configuration</h2> <p> This page discussing proxy issues on command-line ant. Consult your IDE documentation for IDE-specific information upon proxy setup. </p> <p> All tasks running in Ant's JVM share the same HTTP/FTP/Socks proxy configuration. </p> <p> When any task tries to retrieve content from an HTTP page, including the <code><get></code> task, any automated URL retrieval in an XML/XSL task, or any third-party task that uses the <code>java.net.URL</code> classes, the proxy settings may make the difference between success and failure. </p> <p> Anyone authoring a build file behind a blocking firewall will immediately appreciate the problems and may want to write a build file to deal with the problem, but users of third party build build files may find that the build file itself does not work behind the firewall. </p> <p> This is a long standing problem with Java and Ant. The only way to fix it is to explictly configure Ant with the proxy settings, either by passing down the proxy details as JVM properties, or to tell Ant on a Java1.5+ system to have the JVM work it out for itself. </p> <h3>Java1.5+ proxy support (new for Ant1.7)</h3> <p> When Ant starts up, if the <code>-autoproxy</code> command is supplied, Ant sets the <code>java.net.useSystemProxies</code> system property. This tells a Java1.5+ JVM to use the current set of property settings of the host environment. Other JVMs, such as the Kaffe and Apache Harmony runtimes, may also use this property in future. It is ignored on the Java1.4 and earlier runtimes. </p> <p> This property maybe enough to give command-line Ant builds network access, although in practise the results are somewhat disappointing. </p> <p> We are not entirely sure where it reads the property settings from. For windows, it probably reads the appropriate bits of the registry. For Unix/Linux it may use the current Gnome2 settings. <p> One limitation of this feature, other than requiring a 1.5+ JVM, is that it is not dynamic. A long-lasting build hosted on a laptop will not adapt to changes in proxy settings. </p> <p> It is has also been reported a breaking the IBM Java 5 JRE on AIX, and does not appear to work reliably on Linux. Other odd things can go wrong, like Oracle JDBC drivers or pure Java SVN clients. </p> <p> To make the <code>-autproxy</code> option the default, add it to the environment variable <code>ANT_ARGS</code>, which contains a list of arguments to pass to Ant on every command line run. </p> <h3>JVM options</h3> <p> Any JVM can have its proxy options explicitly configured by passing the appropriate <code>-D</code> system property options to the runtime. Ant can be configured through all its shell scripts via the <code>ANT_OPTS</code> environment variable, which is a list of options to supply to Ant's JVM: </p> <p> For bash: </p> <pre> export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080" </pre> For csh/tcsh: <pre> setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080" </pre> <p> For Windows, set the ANT_OPTS environment variable in the appropriate "MyComputer" properties dialog box. </p> <p> This mechanism works across Java versions, is cross-platform and reliable. Once set, all build files run via the command line will automatically have their proxy setup correctly, without needing any build file changes. It also apparently overrides Ant's automatic proxy settings options. </p> <p> It is limited in the following ways: </p> <ol> <li>Does not work under IDEs. These need their own proxy settings changed</li> <li>Not dynamic enough to deal with laptop configuration changes.</li> </ol> <h3>SetProxy Task</h3> <p> The <a href="OptionalTasks/setproxy.html">setproxy task</a> can be used to explicitly set a proxy in a build file. This manipulates the many proxy configuration properties of a JVM, and controls the proxy settings for all network operations in the same JVM from that moment. </p> <p> If you have a build file that is only to be used in-house, behind a firewall, on an older JVM, <i>and you cannot change Ant's JVM proxy settings</i>, then this is your best option. It is ugly and brittle, because the build file now contains system configuration information. It is also hard to get this right across the many possible proxy options of different users (none, HTTP, SOCKS). </p> <p> Note that proxy configurations set with this task will probably override any set by other mechanisms. It can also be used with fancy tricks to only set a proxy if the proxy is considered reachable: </p> <pre> <target name="probe-proxy" depends="init"> <condition property="proxy.enabled"> <and> <isset property="proxy.host"/> <isreachable host="${proxy.host}"/> </and> </condition> </target> <target name="proxy" depends="probe-proxy" if="proxy.enabled"> <property name="proxy.port" value="80"/> <property name="proxy.user" value=""/> <property name="proxy.pass" value=""/> <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/> </target> </pre> <h3>Summary and conclusions</h3> <p> There are three ways to set up proxies in Ant. </p> <ol> <li>With Ant1.7 using the <code>-autoproxy</code> parameter.</li> <li>Via JVM system properties -set these in the ANT_ARGS environment variable.</li> <li>Via the <setproxy> task.</li> </ol> <h4>Further reading</h4> <ul> <li><a href="http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html"> Java Networking Properties</a>. Notice how not all proxy settings are documented there. <li><a href="http://blogs.sun.com/roller/resources/jcc/Proxies.pdf">Proxies</a> </li> </ul> </body> </html> --- NEW FILE: develop.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <title>Writing Your Own Task</title> </head> <body> <h1>Developing with Ant</h1> <h2><a name="writingowntask">Writing Your Own Task</a></h2> <p>It is very easy to write your own task:</p> <ol> <li>Create a Java class that extends <code>org.apache.tools.ant.Task</code> or <a href="base_task_classes.html">another class</a> that was designed to be extended.</li> <li>For each attribute, write a <i>setter</i> method. The setter method must be a <code>public void</code> method that takes a single argument. The name of the method must begin with <code>set</code>, followed by the attribute name, with the first character of the name in uppercase, and the rest in lowercase<a href="#footnote-1"><sup>*</sup></a>. That is, to support an attribute named <code>file</code> you create a method <code>setFile</code>. Depending on the type of the argument, Ant will perform some conversions for you, see <a href="#set-magic">below</a>.</li> <li>If your task shall contain other tasks as nested elements (like <a href="CoreTasks/parallel.html"><code>parallel</code></a>), your class must implement the interface <code>org.apache.tools.ant.TaskContainer</code>. If you do so, your task can not support any other nested elements. See <a href="#taskcontainer">below</a>.</li> <li>If the task should support character data (text nested between the start end end tags), write a <code>public void addText(String)</code> method. Note that Ant does <strong>not</strong> expand properties on the text it passes to the task.</li> <li>For each nested element, write a <i>create</i>, <i>add</i> or <i>addConfigured</i> method. A create method must be a <code>public</code> method that takes no arguments and returns an <code>Object</code> type. The name of the create method must begin with <code>create</code>, followed by the element name. An add (or addConfigured) method must be a <code>public void</code> method that takes a single argument of an <code>Object</code> type with a no-argument constructor. The name of the add (addConfigured) method must begin with <code>add</code> (<code>addConfigured</code>), followed by the element name. For a more complete discussion see <a href="#nested-elements">below</a>.</li> <li>Write a <code>public void execute</code> method, with no arguments, that throws a <code>BuildException</code>. This method implements the task itself.</li> </ol> <hr> <p><a name="footnote-1">*</a> Actually the case of the letters after the first one doesn't really matter to Ant, using all lower case is a good convention, though.</p> <h3>The Life-cycle of a Task</h3> <ol> <li>The task gets instantiated using a no-argument constructor, at parser time. This means even tasks that are never executed get instantiated.</li> <li>The task gets references to its project and location inside the buildfile via its inherited <code>project</code> and <code>location</code> variables.</li> <li>If the user specified an <code>id</code> attribute to this task, the project registers a reference to this newly created task, at parser time.</li> <li>The task gets a reference to the target it belongs to via its inherited <code>target</code> variable.</li> <li><code>init()</code> is called at parser time.</li> <li>All child elements of the XML element corresponding to this task are created via this task's <code>createXXX()</code> methods or instantiated and added to this task via its <code>addXXX()</code> methods, at parser time.</li> <li>All attributes of this task get set via their corresponding <code>setXXX</code> methods, at runtime.</li> <li>The content character data sections inside the XML element corresponding to this task is added to the task via its <code>addText</code> method, at runtime.</li> <li>All attributes of all child elements get set via their corresponding <code>setXXX</code> methods, at runtime.</li> <li><a name="execute"><code>execute()</code></a> is called at runtime. While the above initialization steps only occur once, the execute() method may be called more than once, if the task is invoked more than once. For example, if <code>target1</code> and <code>target2</code> both depend on <code>target3</code>, then running <code>'ant target1 target2'</code> will run all tasks in <code>target3</code> twice.</li> </ol> <h3><a name="set-magic">Conversions Ant will perform for attributes</a></h3> <p>Ant will always expand properties before it passes the value of an attribute to the corresponding setter method.</p> <p>The most common way to write an attribute setter is to use a <code>java.lang.String</code> argument. In this case Ant will pass the literal value (after property expansion) to your task. But there is more! If the argument of you setter method is</p> <ul> <li><code>boolean</code>, your method will be passed the value <i>true</i> if the value specified in the build file is one ... [truncated message content] |
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs Added Files: LICENSE ant_in_anger.html ant_task_guidelines.html antnews.html appendix_e.pdf breadcrumbs.js bugs.html bylaws.html contributors.html external.html faq.html favicon.ico index.html legal.html license.html mail.html mission.html nightlies.html page.css problems.html projects.html resources.html svn.html Log Message: Update 4 years old ant. --- NEW FILE: problems.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Having Problems?</title> <link type="text/css" href="./page.css" rel="stylesheet"> <meta name="author" content="Conor MacNeill"> <meta name="email" content=""> </head> <body> <p class="navpath"> <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="./images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td> </tr> </table> </td> <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Apache Ant <ul> <li> <a href="./index.html">Welcome</a> </li> <li> <a href="./license.html">License</a> </li> <li> <a href="./antnews.html">News</a> </li> </ul> </li> <li class="menuheader">Documentation <ul> <li> <a href="./manual/index.html">Manual</a> </li> <li> <a href="./projects.html">Related Projects</a> </li> <li> <a href="./external.html">External Tools and Tasks</a> </li> <li> <a href="./resources.html">Resources</a> </li> <li> <a href="./faq.html">Frequently Asked Questions</a> </li> <li> <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a> </li> <li> <span class="sel">Having Problems?</span> </li> </ul> </li> <li class="menuheader">Download <ul> <li> <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> <li class="menuheader">Contributing <ul> <li> <a href="./mail.html">Mailing Lists</a> </li> <li> <a href="./svn.html">Subversion Repositories</a> </li> <li> <a href="./nightlies.html">Nightly Builds</a> </li> <li> <a href="./bugs.html">Bug Database</a> </li> <li> <a href="http://www.apache.org/foundation/contributing.html">Donations</a> </li> </ul> </li> <li class="menuheader">Project Management <ul> <li> <a href="./contributors.html">Contributors</a> </li> <li> <a href="./mission.html">Apache Ant Mission</a> </li> <li> <a href="./bylaws.html">Project Bylaws</a> </li> <li> <a href="./legal.html">Legal</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Having Problems?</h1> <h3 class="section"> <a name="Having Problems?"></a> Having Problems? </h3> <p> This page details some steps you can take to try and resolve any problems you may be having with Ant. If you find you can't resolve the problem, then this page will help you collect some of the relevant information to provide in a bug report. This information will help the Ant developers understand and resolve the problem. Of course, not all the steps here will make sense for every problem you may encounter - these are just some suggestions to point you in the right direction. </p> <h4 class="subsection"> <a name="Ensure that you are actually running the version of Ant that you think you do"></a> Ensure that you are actually running the version of Ant that you think you do </h4> <p>Many tools include a version of Ant and some Operating Systems even install it by default now, so you may have a version of Ant installed that you haven't been aware of.</p> <p>One of the first things to do is to run <br /><br /> <font face="verdana" size="-1">ant -version</font> <br /><br /> and <br /><br /> <font face="verdana" size="-1">ant -diagnostics</font> <br /><br /> to be sure. Also, we highly recommend that you run Ant with an empty CLASSPATH. If any other version of Ant can be loaded from the CLASSPATH, many types of errors may happen because of incompatible classes being loaded.</p> <p>See <a href="faq.html">the FAQ</a> for <a href="faq.html#NoClassDefFoundError">some</a> <a href="faq.html#InstantiationException">examples</a>, but many other problems are a result of an old version of Ant on your system as well.</p> <h4 class="subsection"> <a name="Read the Manual"></a> Read the Manual </h4> <p> The first step to take when you have a problem with Ant is to read the <a href="manual/index.html">manual</a> entry for the task or concept that is giving you trouble. In particular, check the meaning of a task's attributes and nested elements. Perhaps an attribute is available that would provide the behavior you require. If you have problems with the manual itself, you can submit a documentation bug report (see below) to help us improve the Ant documentation. </p> <h4 class="subsection"> <a name="Examine Debug Output"></a> Examine Debug Output </h4> <p> If you're still having a problem, the next step is to try and gather additional information about what Ant is doing. Try running Ant with the <code>verbose</code> flag: <br /><br /> <font face="verdana" size="-1">ant -verbose</font> <br /><br /> or <br /><br /> <font face="verdana" size="-1">ant -v</font> <br /><br /> This will produce output that starts like the following:</p> <table class="ForrestTable" cellspacing="1" cellpadding="4"> <tr> <td colspan="1" rowspan="1" valign="top" align="left"> Ant version 1.4.1 compiled on October 11 2001<br /> Buildfile: build.xml<br /> Detected Java version: 1.3 in: D:\usr\local\java\jdk13\jre<br /> Detected OS: Windows NT<br /> parsing buildfile D:\ant\build.xml with URI = file:D:/ant/build.xml<br /> Project base dir set to: D:\ant<br /> [property] Loading Environment env.<br /> [property] Loading D:\ant\conf.properties<br /> Build sequence for target 'debug' is [debug]<br /> Complete build sequence is [debug, gensrc, compile, jar, test]<br /> . . .<br /> </td> </tr> </table> <p> You should be able to see from the trace more about what Ant is doing and why it's taking a particular course of action. If you need even more information, you can use the <code>-debug</code> flag rather than <code>-verbose</code>. This will generally produce so much output that you may want to save the output to a file and analyze it in an editor. You can save the output using the <code>-logfile <filename></code> flag, or using redirection. </p> <p> Once you have all this debug information, how can you use it to solve your problem? That will depend on the task in question and the nature of your problem. Each task logs different aspects of its operation, but it should give you an idea of what is going on. For example, the <code><javac></code> task logs the reasons why it chooses to compile particular class files and not others, along with which compiler it is using and the arguments it will pass to that compiler. The following partial trace shows why <code><javac></code> is adding one class file but skipping another. This is followed by which compiler it will be using, the arguments that will get passed to the compiler, and a list of all the class files to be compiled. </p> <table class="ForrestTable" cellspacing="1" cellpadding="4"> <tr> <td colspan="1" rowspan="1" valign="top" align="left"> [javac] Test.java omitted as D:\classes\Test.class is up to date.<br /> [javac] Unset.java added as D:\classes\Unset.class is outdated.<br /> [javac] Compiling 1 source file to D:\classes<br /> [javac] Using classic compiler<br /> [javac] Compilation args: -d D:\classes -classpath D:\classes;<br /> D:\jdk118\classes.zip; -sourcepath D:\src\java -g:none<br /> [javac] File to be compiled:<br /> D:\src\java\Unset.java<br /> </td> </tr> </table> <p> In many cases, Ant tasks are wrappers around OS commands or other Java classes. In debug mode, many of these tasks will print out the equivalent command line, as the <code><javac></code> task output does. If you are having a problem, it is often useful to run the command directly from the command line, in the same way Ant is running it, and see if the problem occurs from there as well. The problem may be in the command that is being run, or it may be in the way the Ant task is running the command. You can also see the effect of changing attribute values on the generated command line. This can help you to understand whether you are using the correct attributes and values. </p> <h4 class="subsection"> <a name="Has It Been Fixed?"></a> Has It Been Fixed? </h4> <p> After examining the debug output, if you still believe that the problem you are having is caused by Ant, chances are that someone else may have already encountered this problem, and perhaps it has been fixed. The next step, therefore, would be to download the sources of ant, see <a href="svn.html">svn</a>. </p> <p> <a href="http://vmgump.apache.org/gump/public/index.html">Gump</a> is building ant every night and using the ant built from the latest source to build a long list of open source projects. However, the version of ant built by gump is not available for download. Even if it were, it would not include most of the optional tasks. </p> <p> We currently do not have nightly builds including the optional tasks. </p> <h3 class="section"> <a name="bugs"></a> bugs </h3> <p>If you are convinced that you have identified an unfixed bug, please turn to our document concerning the <a href="bugs.html">bug database</a>.</p> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: appendix_e.pdf --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ant_task_guidelines.html --- <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html><head> <title> Apache Ant Task Design Guidelines </title> </head><body> <h1>Apache Ant Task Design Guidelines</h1> This document covers how to write Ant tasks to a standard required to be incorporated into the Ant distribution. You may find it useful when writing tasks for personal use as the issues it addresses are still there in such a case. <h2>Don't break existing builds</h2> Even if you find some really hideous problem with Ant, one that is easy to fix, if your fix breaks an existing build file then we have problems. Making sure that every build file out there still works is one of the goals of all changes. As an example of this, Ant 1.5 passes the single dollar sign "$" through in strings; Ant 1.4 and before would strip it. To get this fix in we first had to write the test suite to expose current behaviour, then change something so that single "$" was passed through, but double "$" got mapped to "$" for backwards compatibility. <h2>Don't break the Java API</h2> Ant's tasks can be used by third party programs and tasks. We cannot make changes that break the API. This includes: <ol> <li>Moving classes without leaving a backwards-compatible facade. <li>Deleting classes. <li>Deleting methods or fields, or reducing their accessibility. <li>Changing the signature of a <tt>setAttribute(Type)</tt> method. If you need to add a restrictive type, add a new attribute, and place it in the source <i>above</i> the original. The XML mapper will get the restricted type, old programs can still use the old type. <li>Don't change semantics. At least, not drastically. All bug fixes are implicit changes of semantics, after all. </ol> <h2>Use built in helper classes</h2> Ant includes helper tasks to simplify much of your work. It is much better to use them than roll your own, for development, maintenance and code size reasons. <h4>Execute</h4> Execute will spawn off separate programs under all the platforms which Ant supports, dealing with Java version issues as well as platform issues. Always use this class to invoke other programs. <h4>Java, ExecuteJava</h4> These classes can be used to spawn Java programs in a separate VM (they use execute) or in the same VM--with or without a different classloader. When deriving tasks from this, it often benefits users to permit the classpath to be specified, and for forking to be an optional attribute. <h4>Project and related classes</h4> Project, FileUtils, JavaEnvUtils all have helper functions to do things like touch a file, copy a file and the like. Use these instead of coding them yourself or trying to use tasks which may be less stable and fiddlier to use. <h2>Obey the Sun/Java style guidelines</h2> The Ant codebase aims to have a single unified coding standard, and that standard is the <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html"> Sun Java coding guidelines </a> <p> It's not that they are better than any alternatives, but they are a standard and they are what is consistently used in the rest of the tasks. Code will not be incorporated into the database until it complies with these. <p> If you are writing a task for your personal or organisational use, you are free to use whatever style you like. But using the Sun Java style will help you to become comfortable with the rest of the Ant source, which may be important. <p> One important rule is 'no tabs'. Use four spaces instead. Not two, not eight, four. Even if your editor is configured to have a tab of four spaces, lots of others aren't. Spaces have more consistency across editors and platforms. Some IDEs (JEdit) can highlight tabs, to stop you accidentally inserting them. <p> There is an Ant build file check.xml in the main ant directory with runs <a href="http://checkstyle.sourceforge.net">checkstyle</a> over Ant's source code. <h2>Attributes and elements</h2> Use the Ant introspection-based mapping of attributes into Java datatypes, rather than implementing all your attributes as setFoo(String) and doing the mapping to int, boolean or File yourself. This saves work on your part, lets Java callers use you in a typesafe manner, and will let the Xdocs documentation generator work out what the parameters are. <p> The Ant 1.x tasks are very inconsistent regarding naming of attributes--some tasks use <tt>source</tt>, others <tt>src</tt>. Here is a list of preferred attribute names: <p> <table cellpadding="5"> <tr> <td> failonerror </td> <td> boolean to control whether failure to execute should throw a <tt>BuildException</tt> or just print an error. Parameter validation failures should always throw an error, regardless of this flag. </td> </tr> <tr> <td> destdir </td> <td> destination directory for output </td> </tr> <tr> <td> destfile </td> <td> destination file for output </td> </tr> <tr> <td> srcdir </td> <td> source directory </td> </tr> <tr> <td> srcfile </td> <td> source file </td> </tr> </table> <p> Yes, this is a very short list. Try and be vaguely consistent with the core tasks, at the very least. <h2>Support classpaths</h2> Try and make it possible for people to supply a classpath to your task, if you need external libraries, rather than make them add everything to the ANT_HOME/lib directory. This lets people keep the external libraries in their Ant-based project, rather than force all users to make changes to their Ant system configuration. <h2>Design for controlled re-use</h2> Keep member variables private. If read access by subclasses is required, add accessor methods rather than change the accessiblity of the member. This enables subclasses to access the contents, yet still be decoupled from the actual implementation. <p> The other common re-use mechanism in Ant is for one task to create and configure another. This is fairly simple. There are facilities available in Ant's API to have the tasks instantiated by their familiar names ("java", "exec", etc.). It is recommended that you <b>not</b> use this approach because of the entirely real possibility that a user has overridden the name to point to a different class entirely. Use direct constructor calls (or reflection) to instantiate your subtask. Since Ant 1.6.3, you can call <code>org.apache.tools.ant.Task#bindToOwner()</code> to "mask" a helper task as its parent. <h2>Do your own Dependency Checking</h2> Make has the edge over Ant in its integrated dependency checking; the command line apps make invokes don't need to do their own work. Ant tasks do have to do their own dependency work, but if this can be done then it can be done well. A good dependency-aware task can work out the dependencies without explicit dependency information in the build file, and be smart enough to work out the real dependencies, perhaps through a bit of file parsing. The <tt>depends</tt> task is the best example of this. Some of the zip/jar tasks are pretty good too, as they can update the archive when needed. Most tasks just compare source and destination timestamps and work from there. Tasks which don't do any dependency checking do not help users as much as they can, because their needless work can trickle through the entire build, test and deploy process. <h2>Support Java 1.2 through Java 1.5+</h2> Ant 1.5 and lower was designed to support Java 1.1. Ant 1.6 and higher is designed to support Java 1.2: to build on it, to run on it. Sometimes functionality of tasks have to degrade in that environment--usually due to library limitations; such behaviour change must always be noted in the documentation. <p> What is problematic is code which is dependent on Java 1.3 features; e.g. java.lang.reflect.Proxy, or Java 1.4 features; e.g. java.io.nio. Be also aware of extra methods in older classes; e.g. StringBuffer#append(StringBuffer). These cannot be used directly by any code and still be able to compile and run on a Java 1.2 system. If a new method in an existing class is to be used, it must be used via reflection and the <tt>NoSuchMethodException</tt> handled somehow. <p> What if code simply does not work on Java 1.2? It can happen. It will probably be OK to have the task as an optional task, with compilation restricted to Java 1.3 or later through build.xml modifications. Better still, use reflection to link to the classes at run time. <p> Java 1.4 adds a new optional change to the language itself, the <tt>assert</tt> keyword, which is only enabled if the compiler is told to compile 1.4 version source. Clearly with the 1.2 compatibility requirement, Ant tasks cannot use this keyword. They also need to move away from using the JUnit <tt>assert()</tt> method and call <tt>assertTrue()</tt> instead. <p> Java 1.5 adds the <tt>enum</tt> type; again, this must not be used. <h2>Explicitly Expand properties in nested text</h2> For historical reasons, <tt>addText(String text)</tt> is called to set the task's nested text, without any property expansion taking place. Call <tt>Project.replaceProperties()</tt> to do this manually. If you forget, you create a problem that is impossible to fix without breaking users' build files. <h2>Refactor</h2> If the changes made to a task are making it too unwieldy, split it up into a cleaner design, refactor the code and submit not just feature creep but cleaner tasks. A common design pattern which tends to occur in the Ant process is the adoption of the adapter pattern, in which a base class (say Javac or Rmic) starts off simply, then gets convoluted with support for multiple back ends: javac, jikes, jvc. A refactoring to split the programmable front end from the classes which provide the back end cleans up the design and makes it much easier to add new back ends. But to carry this off one needs to keep the interface and behaviour of the front end identical, and to be sure that no subclasses have been accessing data members directly, because these data members may not exist in the refactored design. This is why having private data members is so important. <p> One thing we must not do is move existing tasks around or delete them. Remember that Ant has a Java API as well as an XML language. We don't want to break that API, or anything that subclasses existing Ant tasks. When refactoring, you need to leave facades where the original classes were. so existing code does not break. <h2>Test</h2> Look in <tt>ant/src/testcases</tt> and you will find JUnit tests for the shipping Ant tasks, to see how it is done and what is expected of a new task. Most of them are rudimentary, and no doubt you could do better for your task--feel free to do so! <p> A well written set of test cases will break the Ant task while it is in development, until the code is actually complete. And every bug which surfaces later should have a test case added to demonstrate the problem, and to fix it. <p> The test cases are a great way of testing your task during development. A simple call to 'build run-test' in the ant source tree will run all ant tests, to verify that your changes don't break anything. To test a single task, use the one shot <code>ant run-single-test -Dtestcase=${testname}</code> where <code>${testname}</code> is the name of your test class. <p> The test cases are also used by the committers to verify that changes and patches do what they say. If you've got test cases it increases your credibility significantly. To be precise, we hate submissions without test cases, as it means we have to write them ourselves. This is something that only gets done if we need the task or it is perceived as utterly essential to many users. <p> Remember also that Ant 1.x is designed to compile and run on Java 1.2, so you should test on Java 1.2 as well as any later version which you use. You ought to be able to download an old SDK from Sun for this purpose. <p> Finally, run a full <code>build test</code> before and after you start developing your project, to make sure you haven't broken anything else by accident. <h2>Document</h2> Without documentation, the task can't be used. So remember to provide a succinct and clear html (soon, xml) page describing the task in a similar style to that of existing tasks. It should include a list of attributes and elements, and at least one working example of the task. Many users cut and paste the examples into their build files as a starting point, so make the examples practical and test them too. <p> You can use the xdocs stuff in proposal/xdocs to autogenerate your documentation page from the javadocs of the source; this makes life easier and will make the transition to a full xdoclet generated documentation build process trivial. <h2>Licensing and Copyright</h2> Any code submitted to the Apache project must be compatible with the Apache Software License, and the act of submission must be viewed as an implicit license of the submitted code to the Apache Software Foundation. <p> This is important. <p> The fairly laissez-faire license of Apache is not currently considered compatible with either the GPL or the Lesser GPL of the Free Software Foundation--the Gnu project. These licenses have stricter terms, "copyleft", which are not in the Apache Software Foundation license. This permits people and organisations to build commercial and closed source applications atop the Apache libraries and source. <p> Because the Gnu GPL license immediately extends to cover any larger application (or library, in the case of LGPL) into which it is incorporated, the Ant team cannot incorporate any task based upon GPL or LGPL source into the Ant codebase. You are free to submit it, but it will be politely and firmly rejected. <p> If you link to a GPL or LGPL library, by <code>import</code> or reflection, your task must be licensed under the same terms. So tasks linking to (L)GPL code can't go into the Apache managed codebase. Tasks calling such code can use the 'exec' or 'java' tasks to run the programs, as you are just executing them at this point, not linking to them. <p> Even if we cannot include your task into the Apache codebase, we can still point to where you host it; just submit a diff to xdocs/external.html pointing to your task. <p> If your task links directly to proprietary code, we have a different problem: it is really hard to build the tasks. Please use reflection. <h3>Don't re-invent the wheel</h3> We've all done it: written and submitted a task only to discover it was already implemented in a small corner of another task, or it has been submitted by someone else and not committed. You can avoid this by being aware of what is in the latest CVS tree; keep getting the daily source updates, look at manual changes and subscribe to the dev mailing list. <p> If you are thinking of writing a task, posting a note on your thoughts to the list can be informative--you will get other peoples' insights and maybe some half-written task to do the basics, all without writing a line of code. <h2>Submitting to Ant</h2> The basic mechanism for submitting an Ant task is to mail it to the dev mailing list. It helps to be on this list, as you will see other submissions, and any debate about your own submission. <p> You may create your patch file using either of the following approaches (the committers recommend the first): <p> <ul> <li><h3>Approach 1 - The Ant Way</h3> <p> Use Ant to generate a patch file to Ant: <pre class="code"> ant -f patch.xml </pre> This will create a file named patch.tar.gz that will contain a unified diff of files that have been modified and also include files that have been added. Review the file for completeness and correctness. This approach is recommended because it standardizes the way in which patch files are constructed. It also eliminates the chance of you missing to submit new files that constitute part of the patch. <p> <li><h3>Approach 2 - The Manual Way</h3> <p> Patches to existing files should be generated with <code>svn diff -u filename</code> and save the output to a file. If you want to get the changes made to multiple files in a directory , just use <code>cvs diff -u</code>. Then, Tar and GZip the patch file as well as any new files that you have added. </ul> <p> The patches should be sent as an attachment to a message titled [PATCH] and distinctive one-line summary in the subject of the patch. The filename/task and the change usually suffices. It's important to include the changes as an attachment, as too many mailers reformat the text pasted in, which breaks the patch. <p> Then you wait for one of the committers to commit the patch, if it is felt appropriate to do so. Bug fixes go in quickly, other changes often spark a bit of discussion before a (perhaps revised) commit is made. <p> New submissions should be proceeded with [SUBMIT]. The mailer-daemon will reject any messages over 100KB, so any large update should be zipped up. If your submission is bigger than that, why not break it up into separate tasks. <p> We also like submissions to be added to <a href="http://issues.apache.org/bugzilla/">bugzilla</a>, so that they dont get lost. Please submit them by first filing the report with a meaningful name, then adding files as attachments. Use CVS diff files please! <p> If you hear nothing after a couple of weeks, remind the mailing list. Sometimes really good submissions get lost in the noise of other issues. This is particularly the case just prior to a new point release of the product. At that time anything other than bug fixes will tend to be neglected. <h2>Checklists</h2> These are the things you should verify before submitting patches and new tasks. Things don't have to be perfect; it may take a couple of iterations before a patch or submission is committed, and these items can be addressed in the process. But by the time the code is committed, everything including the documentation and some test cases will have been done, so getting them out the way up front can save time. The committers look more favourably on patches and submissions with test cases, while documentation helps sell the reason for a task. <h3>Checklist before submitting a patch</h3> <ul> <li>Added code complies with style guidelines <li>Code compiles and runs on Java 1.2 <li>New member variables are private, and provide public accessor methods if access is actually needed. <li>Existing test cases succeed. <li>New test cases written and succeed. <li>Documentation page extended as appropriate. <li>Example task declarations in the documentation tested. <li>Diff files generated using svn diff -u <li>Message to dev contains [PATCH], task name and patch reason in subject. <li>Message body contains a rationale for the patch. <li>Message attachment contains the patch file(s). </ul> <h3>Checklist before submitting a new task</h3> <ul> <li>Java file begins with Apache copyright and license statement. <li>Task does not depend on GPL or LGPL code. <li>Source code complies with style guidelines <li>Code compiles and runs on Java 1.2 <li>Member variables are private, and provide public accessor methods if access is actually needed. <li><i>Maybe</i> Task has failonerror attribute to control failure behaviour <li>New test cases written and succeed <li>Documentation page written <li>Example task declarations in the documentation tested. <li>Patch files generated using svn diff -u <li>patch files include a patch to defaults.properties to register the tasks <li>patch files include a patch to coretasklist.html or optionaltasklist.html to link to the new task page <li>Message to dev contains [SUBMIT] and task name in subject <li>Message body contains a rationale for the task <li>Message attachments contain the required files -source, documentation, test and patches zipped up to escape the HTML filter. </ul> </body></html> --- NEW FILE: mission.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Apache Ant Mission</title> <link type="text/css" href="./page.css" rel="stylesheet"> <meta name="author" content="Apache Ant PMC"> <meta name="email" content=""> </head> <body> <p class="navpath"> <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="./images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td> </tr> </table> </td> <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Apache Ant <ul> <li> <a href="./index.html">Welcome</a> </li> <li> <a href="./license.html">License</a> </li> <li> <a href="./antnews.html">News</a> </li> </ul> </li> <li class="menuheader">Documentation <ul> <li> <a href="./manual/index.html">Manual</a> </li> <li> <a href="./projects.html">Related Projects</a> </li> <li> <a href="./external.html">External Tools and Tasks</a> </li> <li> <a href="./resources.html">Resources</a> </li> <li> <a href="./faq.html">Frequently Asked Questions</a> </li> <li> <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a> </li> <li> <a href="./problems.html">Having Problems?</a> </li> </ul> </li> <li class="menuheader">Download <ul> <li> <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> <li class="menuheader">Contributing <ul> <li> <a href="./mail.html">Mailing Lists</a> </li> <li> <a href="./svn.html">Subversion Repositories</a> </li> <li> <a href="./nightlies.html">Nightly Builds</a> </li> <li> <a href="./bugs.html">Bug Database</a> </li> <li> <a href="http://www.apache.org/foundation/contributing.html">Donations</a> </li> </ul> </li> <li class="menuheader">Project Management <ul> <li> <a href="./contributors.html">Contributors</a> </li> <li> <span class="sel">Apache Ant Mission</span> </li> <li> <a href="./bylaws.html">Project Bylaws</a> </li> <li> <a href="./legal.html">Legal</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Apache Ant Mission</h1> <h3 class="section"> <a name="Board Resolution"></a> Board Resolution </h3> <p>Apache Ant is a project of the <a href="http://www.apache.org/">Apache Software Foundation</a>. It started as a subproject of the <a href="http://jakarta.apache.org/">Apache Jakarta Project</a>.</p> <p>This is the board resolution (from the <a href="http://www.apache.org/foundation/records/minutes/2002/board_minutes_2002_11_18.txt">minutes</a>) that created the Apache Ant project:</p> <pre class="code"> 7.D. Resolution [R3] to create the Ant PMC WHEREAS, the Board of Directors deems it to be in the best interests of the Foundation and consistent with the Foundation's purpose to establish a Project Management Committee charged with the creation and maintenance of open-source software related to the Apache Ant build tool, for distribution at no charge to the public. NOW, THEREFORE, BE IT RESOLVED, that a Project Management Committee (PMC), to be known as the "Apache Ant PMC", be and hereby is established pursuant to Bylaws of the Foundation; and be it further RESOLVED, that the Apache Ant PMC be and hereby is responsible for the creation and maintenance of the Ant build system and related software components, based on software licensed to the Foundation; and be it further RESOLVED, that the office of "Vice President, Apache Ant" be and hereby is created, the person holding such office to serve at the direction of the Board of Directors as the chair of the Apache Ant PMC, and to have primary responsibility for management of the projects within the scope of responsibility of the Apache Ant PMC; and be it further RESOLVED, that the persons listed immediately below be and hereby are appointed to serve as the initial members of the Apache Ant PMC: Bruce Atherton Stephane Bailliez Stefan Bodewig Erik Hatcher Diane Holt Donald Leslie Steve Loughran Conor MacNeill Costin Manolache Sam Ruby Jon Skeet Magesh Umasankar Christoph Wilhelms NOW, THEREFORE, BE IT FURTHER RESOLVED, that Conor MacNeill be and hereby is appointed to the office of Vice President, Apache Ant, to serve in accordance with and subject to the direction of the Board of Directors and the Bylaws of the Foundation until death, resignation, retirement, removal or disqualification, or until a successor is appointed; and be it further RESOLVED, that the initial Apache Ant PMC be and hereby is tasked with the creation of a set of bylaws intended to encourage open development and increased participation in the Apache Ant Project. By Unanimous Vote, Resolution R3 was approved. The Ant PMC is hereby created. </pre> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: nightlies.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Nightly Builds</title> <link type="text/css" href="./page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="./images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="./images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="./images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="./images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="./images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="./images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="./images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="8"><img alt="" height="5" width="8" src="./images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-right.gif"></td> </tr> </table> </td> <td width="5"><img alt="" height="8" width="8" src="./images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="./projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="./images/tab-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Apache Ant <ul> <li> <a href="./index.html">Welcome</a> </li> <li> <a href="./license.html">License</a> </li> <li> <a href="./antnews.html">News</a> </li> </ul> </li> <li class="menuheader">Documentation <ul> <li> <a href="./manual/index.html">Manual</a> </li> <li> <a href="./projects.html">Related Projects</a> </li> <li> <a href="./external.html">External Tools and Tasks</a> </li> <li> <a href="./resources.html">Resources</a> </li> <li> <a href="./faq.html">Frequently Asked Questions</a> </li> <li> <a href="http://wiki.apache.org/ant/FrontPage">Wiki</a> </li> <li> <a href="./problems.html">Having Problems?</a> </li> </ul> </li> <li class="menuheader">Download <ul> <li> <a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> <li class="menuheader">Contributing <ul> <li> <a href="./mail.html">Mailing Lists</a> </li> <li> <a href="./svn.html">Subversion Repositories</a> </li> <li> <span class="sel">Nightly Builds</span> </li> <li> <a href="./bugs.html">Bug Database</a> </li> <li> <a href="http://www.apache.org/foundation/contributing.html">Donations</a> </li> </ul> </li> <li class="menuheader">Project Management <ul> <li> <a href="./contributors.html">Contributors</a> </li> <li> <a href="./mission.html">Apache Ant Mission</a> </li> <li> <a href="./bylaws.html">Project Bylaws</a> </li> <li> <a href="./legal.html">Legal</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="./images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="./images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Nightly Builds</h1> <h3 class="section"> <a name="Nightly Builds"></a> Nightly Builds </h3> <p>If you wish to use the latest Ant features, you can try downloading a <a href="http://people.apache.org/builds/ant/nightly/">nightly build</a>. </p> <p>If you want to build Ant from sources, you can use a <a href="http://svn.apache.org/snapshots/ant/">Subversion snapshot</a>.</p> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: legal.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Legal</title> <link type="text/css" href="./page.css" rel="stylesheet"> <meta name="author" content="Jon S. Stevens"> <meta name="email" content="jo...@la..."> </head> <body> <p class="navpath"> <script src="./breadcrumbs.js" language="JavaScript" type="text/javascript"></script> ... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:14
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/bin In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/bin Added Files: ant ant.bat ant.cmd antRun antRun.bat antRun.pl antenv.cmd complete-ant-cmd.pl envset.cmd lcp.bat runant.pl runant.py runrc.cmd Log Message: Update 4 years old ant. --- NEW FILE: antRun.bat --- @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 http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. if "%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 --- NEW FILE: runrc.cmd --- /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 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 --- NEW FILE: runant.py --- #!/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 # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ runant.py This script is a translation of the runant.pl written by Steve Loughran. It runs ant with/out arguments, it should be quite portable (thanks to the python os library) This script has been tested with Python2.0/Win2K created: 2001-04-11 author: Pierre Dittgen pie...@cr... Assumptions: - the "java" executable/script is on the command path """ import os, os.path, string, sys # Change it to 1 to get extra debug information debug = 0 ####################################################################### # If ANT_HOME is not set default to script's parent directory if os.environ.has_key('ANT_HOME'): ANT_HOME = os.environ['ANT_HOME'] else: ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))) # set ANT_LIB location ANT_LIB = os.path.join(ANT_HOME, 'lib') # set JAVACMD (check variables JAVACMD and JAVA_HOME) JAVACMD = None if not os.environ.has_key('JAVACMD'): if os.environ.has_key('JAVA_HOME'): if not os.path.exists(os.environ['JAVA_HOME']): print "Warning: JAVA_HOME is not defined correctly." else: JAVACMD = os.path.join(os.environ['JAVA_HOME'], 'bin', 'java') else: print "Warning: JAVA_HOME not set." else: JAVACMD = os.environ['JAVACMD'] if not JAVACMD: JAVACMD = 'java' launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar') if not os.path.exists(launcher_jar): print 'Unable to locate ant-launcher.jar. Expected to find it in %s' % \ ANT_LIB # Build up standard classpath (LOCALCLASSPATH) LOCALCLASSPATH = launcher_jar if os.environ.has_key('LOCALCLASSPATH'): LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH'] ANT_OPTS = "" if os.environ.has_key('ANT_OPTS'): ANT_OPTS = os.environ['ANT_OPTS'] OPTS = "" if os.environ.has_key('JIKESPATH'): OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH'] ANT_ARGS = "" if os.environ.has_key('ANT_ARGS'): ANT_ARGS = os.environ['ANT_ARGS'] CLASSPATH = "" if os.environ.has_key('CLASSPATH'): CLASSPATH = os.environ['CLASSPATH'] # Builds the commandline cmdline = ('%s %s -classpath %s -Dant.home=%s %s ' + \ 'org.apache.tools.ant.launch.Launcher %s -lib %s %s') \ % (JAVACMD, ANT_OPTS, LOCALCLASSPATH, ANT_HOME, OPTS, ANT_ARGS, \ CLASSPATH, string.join(sys.argv[1:], ' ')) if debug: print '\n%s\n\n' % (cmdline) sys.stdout.flush() # Run the biniou! os.system(cmdline) --- NEW FILE: antRun.pl --- #!/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 # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ####################################################################### # # antRun.pl # # wrapper script for invoking commands on a platform with Perl installed # this is akin to antRun.bat, and antRun the SH script # # created: 2001-10-18 # author: Jeff Tulley jt...@no... ####################################################################### #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; } --- NEW FILE: envset.cmd --- /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 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 --- NEW FILE: ant --- #! /bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Extract launch and ant arguments, (see details below). ant_exec_args= no_config=false use_jikes_default=false ant_exec_debug=false show_help=false for arg in "$@" ; do if [ "$arg" = "--noconfig" ] ; then no_config=true elif [ "$arg" = "--usejikes" ] ; then use_jikes_default=true elif [ "$arg" = "--execdebug" ] ; then ant_exec_debug=true elif [ my"$arg" = my"--h" -o my"$arg" = my"--help" ] ; then show_help=true ant_exec_args="$ant_exec_args -h" else if [ my"$arg" = my"-h" -o my"$arg" = my"-help" ] ; then show_help=true fi ant_exec_args="$ant_exec_args \"$arg\"" fi done # Source/default ant configuration if $no_config ; then rpm_mode=false usejikes=$use_jikes_default else # load system-wide ant configuration (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; case "`uname`" in CYGWIN*) cygwin=true ;; Darwin*) darwin=true if [ -z "$JAVA_HOME" ] ; then JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home fi ;; esac if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then ## resolve links - $0 may be a link to ant's home PRG="$0" progname=`basename "$0"` # need this for relative symlinks while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`"/$link" fi done ANT_HOME=`dirname "$PRG"`/.. # make it fully qualified ANT_HOME=`cd "$ANT_HOME" && pwd` fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --unix "$ANT_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` fi # set ANT_LIB location ANT_LIB="${ANT_HOME}/lib" if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then # 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 "Error: JAVA_HOME is not defined correctly." echo " We cannot execute $JAVACMD" exit 1 fi # Build local classpath using just the launcher in non-rpm mode or # use the Jpackage helper in rpm mode with basic and default jars # specified in the ant.conf configuration. Because the launcher is # used, libraries linked in ANT_HOME/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 case "$OPT_JAR_LIST" in *"$dep"*) ;; *) OPT_JAR_LIST="$OPT_JAR_LIST${OPT_JAR_LIST:+ }$dep" esac 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 ANT_HOME=`cygpath --$format "$ANT_HOME"` ANT_LIB=`cygpath --$format "$ANT_LIB"` 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\" $ant_exec_args" if $ant_exec_debug ; then echo $ant_exec_command fi eval $ant_exec_command --- NEW FILE: antenv.cmd --- /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ '@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 --- NEW FILE: lcp.bat --- 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 http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM REM set _CLASSPATHCOMPONENT=%1 if ""%1""=="""" goto gotAllArgs shift :argCheck if ""%1""=="""" goto gotAllArgs set _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1 shift goto argCheck :gotAllArgs set LOCALCLASSPATH=%LOCALCLASSPATH%;%_CLASSPATHCOMPONENT% --- NEW FILE: antRun --- #! /bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Args: DIR command cd "$1" CMD="$2" shift shift exec "$CMD" "$@" --- NEW FILE: ant.bat --- @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 http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM 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=%1 if ""%1""=="""" goto doneStart shift :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 rem Set the return code if we are not in NT. We can only set rem a value of 1, but it's better than nothing. if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1 rem Set the ERRORLEVEL if we are running NT. if "%OS%"=="Windows_NT" color 00 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 --- NEW FILE: runant.pl --- #!/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 # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ####################################################################### # # runant.pl # # wrapper script for invoking ant in a platform with Perl installed # this may include cgi-bin invocation, which is considered somewhat daft. # (slo: that should be a separate file which can be derived from this # and returns the XML formatted output) # # the code is not totally portable due to classpath and directory splitting # issues. oops. (NB, use File::Spec::Functions will help and the code is # structured for the catfile() call, but because of perl version funnies # the code is not included. # # created: 2000-8-24 # author: Steve Loughran st...@so... ####################################################################### # # Assumptions: # # - the "java" executable/script is on the command path # - ANT_HOME has been set # - target platform uses ":" as classpath separator or perl indicates it is dos/win32 # - target platform uses "/" as directory separator. #be fussy about variables use strict; #platform specifics (disabled) #use File::Spec::Functions; #turn warnings on during dev; generates a few spurious uninitialised var access warnings #use warnings; #and set $debug to 1 to turn on trace info my $debug=1; ####################################################################### # # check to make sure environment is setup # my $HOME = $ENV{ANT_HOME}; if ($HOME eq "") { die "\n\nANT_HOME *MUST* be set!\n\n"; } my $JAVACMD = $ENV{JAVACMD}; $JAVACMD = "java" if $JAVACMD eq ""; my $onnetware = 0; if ($^O eq "NetWare") { $onnetware = 1; } my $oncygwin = ($^O eq "cygwin"); #ISSUE: what java wants to split up classpath varies from platform to platform #and perl is not too hot at hinting which box it is on. #here I assume ":" 'cept on win32, dos, and netware. Add extra tests here as needed. my $s=":"; if(($^O eq "MSWin32") || ($^O eq "dos") || ($^O eq "cygwin") || ($onnetware == 1)) { $s=";"; } #build up standard classpath my $localpath = "$HOME/lib/ant-launcher.jar"; #set JVM options and Ant arguments, if any my @ANT_OPTS=split(" ", $ENV{ANT_OPTS}); my @ANT_ARGS=split(" ", $ENV{ANT_ARGS}); #jikes if($ENV{JIKESPATH} ne "") { push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}"; } #construct arguments to java my @ARGS; push @ARGS, @ANT_OPTS; my $CYGHOME = ""; my $classpath=$ENV{CLASSPATH}; if ($oncygwin == 1) { $localpath = `cygpath --path --windows $localpath`; chomp ($localpath); if (! $classpath eq "") { $classpath = `cygpath --path --windows "$classpath"`; chomp ($classpath); } $HOME = `cygpath --path --windows $HOME`; chomp ($HOME); $CYGHOME = `cygpath --path --windows $ENV{HOME}`; chomp ($CYGHOME); } push @ARGS, "-classpath", "$localpath"; push @ARGS, "-Dant.home=$HOME"; if ( ! $CYGHOME eq "" ) { push @ARGS, "-Dcygwin.user.home=\"$CYGHOME\"" } push @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS; push @ARGS, @ARGV; if (! $classpath eq "") { if ($onnetware == 1) { # make classpath literally $CLASSPATH # this is to avoid pushing us over the 512 character limit # even skip the ; - that is already in $localpath push @ARGS, "-lib", "\$CLASSPATH"; } else { push @ARGS, "-lib", "$classpath"; } } print "\n $JAVACMD @ARGS\n\n" if ($debug); my $returnValue = system $JAVACMD, @ARGS; if ($returnValue eq 0) { exit 0; } else { # only 0 and 1 are widely recognized as exit values # so change the exit value to 1 exit 1; } --- NEW FILE: ant.cmd --- /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 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 --- NEW FILE: complete-ant-cmd.pl --- #!/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 # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # A script to allow Bash or Z-Shell to complete an Ant command-line. # # To install for Bash 2.0 or better, add the following to ~/.bashrc: # # $ complete -C complete-ant-cmd ant build.sh # # To install for Z-Shell 2.5 or better, add the following to ~/.zshrc: # # function ant_complete () { # local args_line args # read -l args_line # set -A args $args_line # set -A reply $(COMP_LINE=$args_line complete-ant-cmd ${args[1]} $1) # } # compctl -K ant_complete ant build.sh # # @author Mike Williams <mi...@co...> my $cmdLine = $ENV{'COMP_LINE'}; my $antCmd = $ARGV[0]; my $word = $ARGV[1]; my @completions; if ($word =~ /^-/) { list( restrict( $word, getArguments() )); } elsif ($cmdLine =~ /-(f|buildfile)\s+\S*$/) { list( getBuildFiles($word) ); } else { list( restrict( $word, getTargets() )); } exit(0); sub list { for (@_) { print "$_\n"; } } sub restrict { my ($word, @completions) = @_; grep( /^\Q$word\E/, @completions ); } sub getArguments { qw(-buildfile -debug -emacs -f -find -help -listener -logfile -logger -projecthelp -quiet -verbose -version); } sub getBuildFiles { my ($word) = @_; grep( /\.xml$/, glob( "$word*" )); } sub getTargets { # Look for build-file my $buildFile = 'build.xml'; if ($cmdLine =~ /-(f|buildfile)\s+(\S+)/) { $buildFile = $2; } return () unless (-f $buildFile); # Run "ant -projecthelp" to list targets. Keep a cache of results in a # cache-file. my $cacheFile = $buildFile; $cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|; if ((!-e $cacheFile) || (-M $buildFile) < (-M $cacheFile)) { open( CACHE, '>'.$cacheFile ) || die "can\'t write $cacheFile: $!\n"; open( HELP, "$antCmd -projecthelp -f '$buildFile'|" ) || return(); my %targets; while( <HELP> ) { if (/^\s+(\S+)/) { $targets{$1}++; } } my @targets = sort keys %targets; for (@targets) { print CACHE "$_\n"; } return @targets; } # Read the target-cache open( CACHE, $cacheFile ) || die "can\'t read $cacheFile: $!\n"; my @targets; while (<CACHE>) { chop; s/\r$//; # for Cygwin push( @targets, $_ ); } close( CACHE ); @targets; } |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:14
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/ant2 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/ant2 Added Files: FunctionalRequirements.html VFS.txt actionlist.html features.html original-specification.html requested-features.html requested-features.txt Log Message: Update 4 years old ant. --- NEW FILE: actionlist.html --- <html> <head><title>Ant1.9 Action List</title></head> <body bgcolor="#ffffff"> <center> <h1>Ant1.9 Action List</h1> <h2>Precursor to Ant2</h2> <i>Peter Donald [<a href="mailto:peter at apache.org">peter at apache.org</a>]</i> </center> <div align="center"> <table width="80%"><tr><td> <blockquote> <p> This document aims to contain a list of actions that people can take to produce Ant1.9. Ant1.9 is a refactoring of the Ant1.x line and a jump point for Ant2. Some changes will be backported to Ant1.x over time when they have proven themselves while other changes may only become available via Ant2.0. Ant1.9 is our melting pot where we can experiment and refactor without a thought to backwards compatability but only to the "right" way of doing things. </p> </blockquote></td></tr> </table> </div> <h2>Introduction</h2> <blockquote> <p> This document will list a bunch of actions that will guide us in the evolution of Ant1.x and provide a solid basis on which to launch Ant2.0. Feel free to add to this list of actions as our vision of Ant2 solidifies. Associated with each action is a list of victims who have "volunteered" to have a go at the action and a status. The status just tells us where they are at while the victim column will tell us exactly who is doing what. It is fine for a group of people to work on a single area. </p> <br /> <br /> <br /> <div align="center"> <table cellspacing="2" cellpadding="5" width="80%"> <tr> <td bgcolor="#eeeeee" align="center">Action</td> <td bgcolor="#eeeeee" align="center">Victims</td> <td bgcolor="#eeeeee" align="center">Status</td> </tr> <tr> <td><a href="#vfs">Create a Virtual Filesystem layer</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#naming">Formalize a naming scheme for task attributes/elements</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#selector">Design and implement s Selector API for Filesets and other Itemsets</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#coloring">Develope the infrastructure for coloring (or "environmental" dependency analysis)</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#structural">Develope the infrastructure for structural dependency analysis</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#exec">Refactor the Exec infrastructure into JavaBeans</a></td> <td>Peter Donald</td> <td>80%</td> </tr> <tr> <td><a href="#java">Refactor the Java infrastructure into JavaBeans</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#facade">Design and implement a generic solution for creating Task facades</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#packaging">Sketch out a basic way of separating all the tasks into type libraries</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#mapperext">Design and implement an API that allows mapping of file attributes during copy/move/etc tasks</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#filters">Design and implement an API so that Filters could be implemented as FilteredOutputStreams</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#catalog">Design and implement a XML "catalog" so the snippets of XML can be injected based on URI rather than relative location</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#i18n">Look at the feasability of i18n'ing tasks and the runtime</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#doco">Write a document describing the way that tasks should be written in context of Ant2</a></td> <td>Peter Donald<br />(peter at apache.org)</td> <td>Not Started</td> </tr> <tr> <td><a href="#embeddor">Design an API to embed Ant into other applications</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#info">Design a TypeInfo system similar to BeanInfo to describe Tasks</a></td> <td>None</td> <td>Not Started</td> </tr> <tr> <td><a href="#antdoc">Design Antdoc to generate manual from .java files</a></td> <td>None</td> <td>Not Started</td> </tr> </table> </div> </blockquote> <h3>Virtual File System</h3> <a name="vfs" /> <blockquote> <p> There has long been a recognition that it would be nice if ant supported some notion of a virtual filesystem layer. This layer would allow you to treat resources located and retrieved from different mechanisms in a uniform way. For instance it would allow the copy task to copy from a http server, a cvs server, a ftp server or the local filesystem using a uniform mechanism. So instead of having separate tasks to operate on each different resource type we would use just one task that plugged into multiple filesystems. </p> <p> When we are talking about a virtual filesystem or VFS, one of the concerns we must address is how to "name" the resource. In most cases a URL or URI style access will be sufficient but in other cases we may need to consider other options. So "cvs://localhost:/home/cvs/jakarta-avalon/README.txt?version=1.1", "ftp://some.server.com/dir/file.zip" and "file://C/WINDOWS/Desktop/MyFile.txt" are all examples of referring to different resources. </p> <p> Another concern that must be addressed is capabilities of both the resources and the filesystem. For instance it is possible to both read and write to resources using the "file" protocol but only possible to write resources using "mailto". The act of copying a file to a "mailto" url would actuall post the files as resources while copying to a "file" would duplicate the resource somewhere on the local filesystem. </p> <p> So we need to determine a list of capabilities. Some examples would be "read", "write", "list" (can you list dirs), "type" (can you get mime type), "access permissions" (can you tell if resource has permissions), "modify permissions" (can you modify permissions) etc. Some of these capabilities can be associated with the particular reosurces, while others may need to be associated with a whole filesystem/protocol (ie there is no standard mechanism to perform "list" on general "http" URLs). Thus a list of all these capabilities and mapping to various protocols will need to be established. </p> <p> Next we need to determine if we are going to support the notion of "mounting" URLs. For instance if we need to copy files from a FTP server do we allways need to specify the full URL - no matter how convoluted it is (ie "ftp://fred:se...@so...:28763/home/fred/project2/dir/file.zip") or can we mount this on a VFS and access it via that shorter url. ie We could mount "ftp://fred:se...@so...:28763/home/fred/" onto "vfs:/home" and then just access the resources via "vfs:/home/project2/dir/file.zip". This would make dealing with large urls easier and more uniform. </p> <p> So after we have decided what our options are we need to actually go about implementing the solution. It may be the case that existing VFS solutions could be reused with minor changes and thus we could save ourselves a lot of work. Candidates would be the Netbeans VFS, Suns XFile API or other available directory APIs (like JNDI). If none of them suit then we will need to write our own layer. </p> </blockquote> <h3>Naming</h3> <a name="naming" /> <blockquote> <p> Currently Ant has a mixture of tasks from various stages it's evolution, with different authors and each utilizing different naming patterns. Some tasks use names such as "src" and "dest" while others use "file" and "tofile". It would be preferrable if consistent naming patterns were used. It is recomended that we come up with a "best practices" document to document our recomended naming patterns. </p> <p> Before we can come up with such a document we need to identify common patterns through out the tasks. Several tasks have the notion of transforming input from a "source" to a "destination". So we should have consistent naming schemes for these attributes and elements. Analysis of existing tasks will likely bring out other similar patterns. Once we have identified and documented these similarities then we can establish conventions. </p> </blockquote> <h3>Selector API</h3> <a name="selector" /> <blockquote> <p> Currently our filesets allow us to select a set of files based on name patterns. For instance we could create a set of all the files that end with ".java". However there are cases when you wish to select files based on their other attributes, such as if they are read only or if they are older than a specified date etc. </p> <p> The selector API is one such mechanism to do this. The selector API will allow you to build file sets based on criteria other than name. Some possible criteria would be </p> <ul> <li>Is the file readable?</li> <li>Is the file writeable?</li> <li>What date was the file modified on?</li> <li>What size is the file?</li> <li>Does the contents contain the string "magic"?</li> </ul> <p> If we end up supporting a VFS then we could expand the number of selectors considerably. A mock representation that has been proposed before is the following. Of course this is subject to change as soon as someone wants to tackle this action ;) </p> <pre> <include> <selector type="name" value="**/*.java"/> <selector type="permission" value="r"/> <!-- could optionally be directory/or some other system specific features --> <selector type="type" value="file"/> <selector type="modify-time" operation="greater-than" value="29th Feb 2003"/> </include> </pre> </blockquote> <h3>Coloring API</h3> <a name="coloring" /> <blockquote> <p> When you execute a task such as "javac" there is two types of dependency information that is important to analyze before we determine if we need to recompile a file. Say we are compiling <code>Foo.java</code>, it may depend on the <code>Bar.java</code> file. We call this "structural" dependency information - the structure of the source file determines what other files it depend upon. However there is also "environmental" dependency information. For instance if the <code>Foo.java</code> file was compiled with <code>debug="true"</code> last run and this time needs to be compiled with <code>debug="false"</code> then it is out of date and needs to be recompiled. We call this "environmental" dependency information "coloring". </p> <p> So we need to create an infrastructure that allows tasks to manage "coloring". So a task should be able to add coloring information for each resource processed. When the task comes to process the resource again it will detect if the coloring has changed and if it has will force a recompile. </p> <p> An API for such a bean has yet to be established but an example API would be. </p> <pre> ColoringManager cm = ...; cm.addColor( "debug", "true" ); cm.addColor( "optimize", "false" ); cm.setFileSet( myFileSet ); File[] files = cm.getOutOfDate(); </pre> </blockquote> <h3>Structural Dependency Utils</h3> <a name="structural" /> <blockquote> <p> In the present ant, it is required that each task manage dependency separately. This makes it a lot of work to implement even simple dependency checking. To this day many of the core tasks do not implement it correctly. I am specifically talking about "structural" dependency information. The main reason is that it is painful to implement. </p> <p> Some tasks do no dependency checking and will recompile/transform/etc everytime. Others may perform a simple dependency checking (ie if source file is newer than destination file then recompile). Ideally a dependency system would actually calculate the dependencies correctly. So we need to have some mechanism to determine that <code>foo.c</code> actually depends upon <code>foo.h</code>, <code>bar.h</code> and <code>baz.h</code>. As this information is particular to each different task we need to allow tasks to implement this behaviour. Possibly by supplying an interface of the form; </p> <pre> public interface DependencyGenerator { File[] generateDependencies( File file ); } </pre> <p> Generating the dependency information is a costly operation and thus we do not want to be doing it everytime you run ant. We want to generate it on the initial build and then persist somewhere. Everytime a file is out of date, it's dependency information would be regenerated and stored in the dependency cache. Ideally this cache would also store the above mentioned coloring information. So the entry for <code>foo.c</code> may declare that it is dependent upon <code>foo.h</code>, <code>bar.h</code> and <code>baz.h</code>, aswell as being compiled with -O2 flag. If any of the dependencies have changed or are out of date then foo.c would need to be recompiled. </p> <p> A possible API would be </p> <pre> DependencyManager dm = ...; dm.setFileSet( myFileSet ); dm.setDependencyCache( myDependencyCacheFile ); File[] files = cm.getOutOfDate(); </pre> </blockquote> <h3>Refactor <exec> infrastructure into Beans</h3> <a name="exec" /> <blockquote> <p> Exec and its related classes have currently evolved through several iterations and thus it is not as cleanly designed and as reusable as it could be. Someone needs to pull apart exec and analyze which parts can be turned into JavaBeans and decouple them from the Ant infrastructure. Once that is done it will make these beans much easier to reuse from other tasks without relying on gaining access to the other task instance. </p> </blockquote> <h3>Refactor <java> infrastructure into Beans</h3> <a name="java" /> <blockquote> <p> Much like Exec should be decoupled from Ant runtime, so should classes to implement java task for the same benefits. </p> </blockquote> <h3>Generic Task Facades</h3> <a name="facade" /> <blockquote> <p> Currently we have a few tasks that have multiple implementations. For instance Javac task can actually call jikes, jvc, classic javac or modern javac. Similar things will be seen with the jspc task and the cc task (if it ever gets written). We need to examine this pattern and see if there is a way to generalize this and make it easier to write such tasks. </p> </blockquote> <h3>Task Packaging</h3> <a name="packaging" /> <blockquote> <p> We have already decided that we are going to package Ant tasks in separate jars and have some sort of descriptor that to describe the contents of the jar. However we have not yet decided how we will break up the tasks. Do we break up the tasks up into related tasks or into groups that ar elikely to be used together or what? A possible breakdown would be </p> <ul> <li>jdk tasks: javac, javadoc, rmic etc</li> <li>text tasks: regex replace, fixcrlf etc</li> <li>unix tasks: chmod, etc</li> <li>file tasks: copy, move, etc</li> </ul> </blockquote> <h3>Mapping File Attributes during transformation</h3> <a name="mapperext" /> <blockquote> <p> When we are copying files from one location to another it is currently possible to rename them using a mapper. So we could rename <code>Foo.java</code> to <code>Foo.java.bak</code>. On occasion it is useful to modify file attributes other than its name in such operations. So we could copy the files to another location and make them read-only in one operation. </p> </blockquote> <h3>Filters extensions</h3> <a name="filters" /> <blockquote> <p> This is partially related to the above action. Filters could be seen as a way to modify the content attribute of a file during a copy/move. It would be preferrable if filtering could be abstracted to use <code>FilteredOutputStream</code>s to perform the content modification. That way new Filter types could be constructed and used during file copy (ie an example would be a Perl FilterOutputStream that allowed you to use perl expressions to transform input). </p> </blockquote> <h3>XML Catalog to load XML Fragments</h3> <a name="catalog" /> <blockquote> <p> When including fragments of XML we are currently forced to use relative paths. However this is sometimes undesirable when a single fragment needs to be used across several projects in several different locations. Instead we could use a Catalog to name the fragment and then each developer would only need to install the fragment once and it would be accessible from all the projects. </p> </blockquote> <h3>i18n the Runtime and tasks</h3> <a name="i18n" /> <blockquote> <p> Look at the feasability of performing i18n on Ant runtime and core tasks. Look at how much work it will be and how useful it would be. Look at utilizing i18n from existing projects such as Avalon. </p> </blockquote> <h3>Embeddor API for Ant</h3> <a name="embeddor" /> <blockquote> <p> Identify different environments in which it would be useful to embed Ant or an Ant-like tool. Identify what these environments are likely to demand in terms of API and support and then design a system that works in these environments without compromising ants core goal (ie a build system). Some suggestions for such an API include; </p> <ul> <li>Pluggable ProjectBuilders to allow building of project from a variety of sources, file, URL, InputStream, SAX etc</li> <li>Pluggable ClassLoader arrangement</li> <li>Ability to set User Properties</li> <li>Ability to add Task/Data/Type definitions</li> <li>Ability to add/remove Listeners</li> <li>Ability to add/remove Loggers</li> <li>Ability to get meta-information about targets (such as name and description)</li> <li>The ability to execute a task and/or targets</li> <li>The ability to add tasklibs</li> <li>The ability to add VFS mount points</li> <li>The ability to manipulate ProjectModel and build it from GUIs</li> <li>A general task engine API</li> </ul> </blockquote> <h3>TypeInfo system</h3> <a name="info" /> <blockquote> <p> Add in the ability to represent tasks using specified meta-info, This would allow generation and manipulation of information such as what attributes are available, what elements are supported etc. </p> </blockquote> <h3>Antdoc</h3> <a name="antdoc" /> <blockquote> <p> This is partially based on the above TypeInfo system. It involves the ability to take the TypeInfo made available and generate documentation for the tasks. This would allow multiple formats of documentaiton to be easily maintained and reduce the chance that documentation gets out of whack. </p> </blockquote> </body> </html> --- NEW FILE: VFS.txt --- From: "Adam Murdoch" <ada...@ya...> Subject: RE: Virtual FileSystem Layer Date: Sat, 22 Dec 2001 12:06:37 +1000 Hi, I've also been doing a bit of work on the VFS. No code yet - instead, I've done a survey of the Ant 1 code, to help get a better idea of what we need the VFS to actually do. I've put together a rough list of the sort of features the current tasks require from the file system. This list is entirely from the task writer's POV. I've ignored the build file writer completely - though, the action list is a good summary of the build file writer's concerns. I've tried to steer clear of assumptions about what is actually going to provide each feature to the tasks, or what the API will look like to the tasks. The goal for doing up this list, was to help identify the features we want to support, and the API that the tasks will use to get at them. This should be largely independent of how we decide to represent the file system in the build files. In addition, it doesn't matter too much whether the list below is complete (I'm sure it isn't), or that the VFS provide every single one of the features. Whatever it doesn't provide, can stay up in the tasks, and be refactored down later. The assumption here is that we do actually want to put together a file system API. I think it's a good idea to at least put together some interfaces, even if the implementation is stolen from somewhere else. Without a doubt, the file system is the most widely used "service" in the current crop of tasks. The API that we choose has to have a good semantic match with what the tasks need to do, so that writing the tasks is easy. The API also has to be general enough to deal with stuff we haven't thought of yet. On that note, I personally think that JNDI might be a touch too general for what we need. So, the features. Note that many of these will be optional - not every feature will be available for every node in the file system. I've used the term "node" to mean both directories and files. I'm not suggesting we actually call them "nodes" in the API. I've used the term "root node" to mean the root of a file system. * Naming - Locate a node by absolute name. - Get the absolute name for a node. - Resolve a name to a node, relative to some base node - like FileUtils.resolveFile(). - Get the relative name of a node, relative to some base node. - Determine the base name (with and without the extension), and extension of the node. - Deal with file systems that are case sensitive, and case insentitive. * Properties - Determine what properties are available on the node. - Determine if the node exists. - Determine the type of node (file vs. directory, could be "has-content" vs "has-children"). - Determine if the node is readable. - Determine if the node is writeable. - Get/set the permissions on the node. This covers things like chmod & chown, making read-only, making executable, etc. * Content - Determine if the node can/does have content. - Get the size of the node. - Get/set the last-modified time of the node. - Get/set the mime-type of the node. - Get/set the encoding of the node. - Get a checksum of the node. - Get content as InputStream. - Get content as Reader. - Set content as an OutputStream. - Set content as a Writer. - Implicit creation of node and its ancestors when content is written. - Compare nodes for equality (last modified timestamp, checksum, bytewise compare). * Hierarchy - Get the parent node of a node. - Get the child nodes of a node. - Iterate over (or visit) the descendants of a node. - With or without a selector. - In various orders - depthwise, etc. - Be able to modify the nodes during traversal. * Modification - Create a new node of a particular type. Create all missing ancestors. - Move, copy, delete a node. - All descendants. - Optional selector. E.g. ignore empty dirs, ignore default excludes, etc. - Optional filter. * Conversion - Convert the node to a java.net.URL. - Make the node content available as a local file (to hand off to external commands). - Get the OS specific *filename* for a node. - Resolve an OS specific *filename* to a node. * File System Types - Local file. - HTTP. - FTP. - Classloader, uses Classloader.getResource(). - Temporary files. - etc ... - Compound file system. Made up of a bunch of mount points. The VFS itself. - Layered file systems (that sit on top of another file system or node): - zip, bzip, jar, tar - filtering - token replacement, etc - Factories for creating and configuring file system root nodes. - Ability to easily add new file system implementations. * Task Container - A mechanism for a task to get hold of the project's root node. - A mechanism that allows a task to create its own private root nodes, without letting it mess with the project's file system, or the file systems of other tasks. - A mechanism for cleaning up all the node InputStream, OutputStream, Reader and Writers opened by a task during its execute() method. Cleaning up files is one thing the current tasks don't do very well at all. Something like this would take care of anything the task did not explictly close. Would include root nodes it created. * Other things - Maybe some way to explicitly close a node and release all resources used by it. - Maybe detection of concurrent updates, in the case of parallel tasks. - Netbeans has an event model in its VFS. Something like this might be useful in dependency management. - nodesets. The replacement for, or generalisation of, FileSet, Path, FileList, etc - A nodeset that contains the descendents of a node that match a selector (like the current FileSet implementation). - A nodeset that contains arbitrary nodes. - An aggregating nodeset. - Custom nodeset implementations. - Reimplement the Ant 1 Fileset, Path and Filelist as adaptors sitting on top of the VFS. - A classloader that can load classes from a node. - etc .. What's missing? What shouldn't be on the list? Adam > -----Original Message----- > From: Magesh Umasankar > Sent: Saturday, 22 December 2001 10:44 AM > To: an...@ja... > Subject: Virtual FileSystem Layer > > > I have been spending some time now on the VFS > layer... Nothing major to report yet, but I just wanted > to sound off so that if I am going down the wrong > route, I correct it right away. > > I evaluated at WebNFS, NetBeansFS (NBFS) and > JNDI. > > 1. WebNFS seems to be going nowhere. It has > been dormant for quite sometime now. Licensing > is rigid. Technically, it doesn't look so bad as it > closely replicates java.io.File's API. But then, > that really gives us very little. > > 2. NBFS looks OK. It has got a few filesystems > already built. There may be some licensing issues, > I don't know, but that shouldn't concern us too > much as, according to Peter, it is Mozilla (I haven't > really check the license out, sorry). But, as far as I > can see, it seems to lack in sophisticated API features > like searching based on attributes, etc., which > we will definitely be needing for the Selector APIs. > > 3. JNDI, by far, beats the above to, in my > evaluation. It is generic enough. We don't have > any licensing issues. It has also become part of > the core JRE (1.4 onwards). Technically, it fits to a T > what we are looking for - virtual file system that > provides search controls, access attributes, > url mounting, etc. Furthermore, there's been > some ground work already done for us at Jakarta/Apache > (Catalina). I have written a SPI for a FTPFileSystem > - though it is in a real crude stage right now. I believe > this is the way to go because Ant's code would be > operating at the (Dir)Context level and we can keep > adding SPIs as we need them. Furthermore, > JNDI has been stable for quite sometime now and > we can depend on a widely used API. > > I don't think JNDI is a heavyweight API for our needs. > It seems to be the only one, so far, which encompasses > at the APIP level, all the new functionalities that we > desire to introduce. > > Let me know if my approach, so far, to go the JNDI > route seems reasonable. > > Cheers, > Magesh > > > > > -- > To unsubscribe, e-mail: <mailto:ant...@ja...> > For additional commands, e-mail: <mailto:ant...@ja...> -- To unsubscribe, e-mail: <mailto:ant...@ja...> For additional commands, e-mail: <mailto:ant...@ja...> --- NEW FILE: original-specification.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd"> <HTML> <HEAD> <TITLE>Ant Specification, version 0.5</TITLE> </HEAD> <BODY> <H1>Ant Specification</H1> <P>Version 0.5 (2000/04/20)</P> <P>This document specifies the behavior of Ant. At this time, this is a working document with no implementation. It is hoped that this specification will lead to a simplier and more consistent implementation of Ant.</P> <P>This document is not intended to be used as an end user manual or user guide to Ant. To adequatly explain the concepts herein in a way appropriate to such a use would potentially complicate this document.</P> <H2>Design Goals</H2> <P>The following are the overall design goals of Ant:</P> <UL> <LI>Simplicity</LI> <LI>Understandability</LI> <LI>Extensibility</LI> </UL> <H3>Simplicity</H3> <P>Ant must be simple to use. Of course, as the definition of simple varies according to the audience of the program. For Ant, since it is a build tool aimed at programmers, the goal is to be simple to use for a competent programmer.</P> <H3>Understandability</H3> <P>Ant must be clearly understandible for a first time as well as a veteran user. This means that a new user should be able to use Ant comfortably the first time and understand how to modify a build file by looking at it. And it should not require much experience with Ant to understand how it works and how to configure it for particular situtations.</P> <H3>Extensibility</H3> <P>Ant must be easy to extend. The API used to extend Ant must be easy to use and the way in which these extensions are located and used by the core runtime should be clear.</P> <H2>Conceptual Overview</H2> <P>This is a conceptual overview of the components used by Ant. Full APIs will be defined later.</P> <H3>Project</H3> <P>The base unit of work in Ant is the <STRONG>Project</STRONG>. A Project is defined by an editable text file and is represented by an object of type <CODE>org.apache.ant.Project</CODE> at runtime.</P> <P>A Project is a collection of <STRONG>Properties</STRONG> and <STRONG>Targets</STRONG>.</P> <H3>Properties</H3> <P>Properties are mutable name-value pairs that are scoped to the Project and held in a table. Only one pair is allowed per name. It is anticipated that this data structure would be of type <CODE>java.util.Properties</CODE> or a type that has approximatly the same contract.</P> <P>Properties can be defined in a hierarchical manner. The order of precidence in this hiearchy is:</P> <UL> <LI>Properties defined on the command line or via a GUI tool</LI> <LI>Properties defined in the text file which defines the project.</LI> <LI>Properties defined in a file in the users <CODE>user.home</CODE> directory</LI> <LI>Properties defined in the installation directory that can be shared by multiple users.</LI> </UL> <P>Note: The current version of Ant allows the System property list to be consulted for a return value if the property list doesn't satisfy the requested property name. As all Java code has access to the system property list via the <CODE>java.lang.System</CODE> class, this functionality is considered to be confusing and to be removed.</P> <P>Note: The current version of Ant allows property substitution to be performed in the project file. This functionality is being removed.</P> <H3>Targets</H3> <P>Targets are ordered collections of <STRONG>Tasks</STRONG>, units of work to be performed if a Target is executed. </P> <P>Targets can define dependancies on other Targets within the Project. If a Target is deemed to be executed, either directly on the command line, or via a dependancy from some other Target, then all of its dependencies must first be executed. Circular depenancies are resolved by examination of the dependancy stack when a Target is evaluated. If a dependancy is already on the stack of targets to be executed, then the dependancy is considered to have been satisfied.</P> <P>After all dependancies of a Target have been satisfied, all of the Tasks contained by the target are configured and executed in sequential order. </P> <H3>Tasks</H3> <P>A Task is a unit of work. When a Task is to be executed, an instance of the class that defines the behavior of the particular task specified is instantiated and then configured. This class implements the <CODE>org.apache.ant.Task</CODE> interface. It is then executed so that it may be able to perform its function. It is important to note that this configuration occurs just before execution of the task, and after execution of any previous tasks, so that configuration information that was modified by any other Task can be properly set.</P> <P>When a Task is executed, it is provided access to the object representing the Project it is running in allowing it to examine the Property list of the project and access to various methods needed to operate.</P> <H2>Task Jar Layout</H2> <P>Tasks are defined within Java Archive files. The name of the JAR determines the name under which the task is known by in the system. For example, if a Task JAR is named mvdir.jar, the task is known to the system as <CODE>"mvdir"</CODE>.</P> <P><EM>Question: Should we say that tasks belong in a JAR file with the .tsk extension?</EM></P> <P>The class within the Jar file that implements the <CODE>org.apache.ant.Task</CODE> interface is specified by a manifest attribute named <CODE>Ant-Task-Class</CODE> in the Jar manifest. An example manifest would look like:</P> <PRE> Manifest-Version: 1.0 Ant-Task-Class: org.apache.ant.task.javac.JavacTask</PRE> <P>When the task is used by Ant, a class loader is created that reads classes from the JAR file. This ensures that there is no chance of namespace collision in the classes of various task JAR files.</P> <H2>Installation</H2> <P>When Ant is installed on a user system, it installs a directory structure with the following form:</P> <PRE><installdir>/ant (unix shell script) /ant.bat /ant.jar /ant.properties /tasks/[task jar files] /docs/[documentation] /README</PRE> <P>Note: Current Jakarta practice is to name the Unix shell script with a .sh extension. This goes against Unix conventions and is unecessary. Testing has shown that the leaving the extension off on Unix will not interfere with the working of the Windows batch file.</P> <P>Note: The ant.jar file has been moved from the lib/ directory and placed alongside the shell startup scripts (which have also been moved out of the bin/ directory). This is because on windows platforms, the .jar file is an executable file of sorts.</P> <H3>Ant Properties</H3> <P>The <CODE>ant.properties</CODE> file contains a list of all the properties that should be set by default when ant is run. In addition there are a few special properties that are used directly by ant. An example of these properties in use is:</P> <PRE> system.taskdir=tasks/ user.taskdir=anttasks/</PRE> <P>The <CODE>system.taskdir</CODE> property sets where the system looks for Java ARchive files containing tasks. If this property defines a relative path, then the path is taken as relative from the installation directory.</P> <P>The <CODE>user.taskdir</CODE> property defines where users can locate Java Archive files containing tasks. If this property defines a realtive path, then the path is taken as relative from the users home directory (as defined by the <CODE>user.home</CODE> system property). Task JAR files in this directory take precendence of those in the system directory.</P> <P>Note: <EM>It has been suggested to add a properties file hook to the command line to roll in props. Pending investigation.</EM></P> <H3>User Preferences</H3> <P>In addition to the Ant installation directory, an <CODE>ant.properties</CODE> file can be located in the user's home directory (as found by the system property <CODE>user.home</CODE>) which can define user preferences such as the location of a user tasks directory. Properties defined in this file take precidence over those set in the installation's <CODE>ant.properties</CODE> file. Such a file could look like:</P> <PRE> user.taskdir=anttasks/ javac.debug=off</PRE> <P>Properties starting with <CODE>"system."</CODE> in the user's <CODE>ant.properties</CODE> file are not allowed and must cause a warning to be thrown.</P> <H2>Project Configuration</H2> <P>Ant's Project text file is structured using XML and reflects the structure of the various components described in the Conceptual Overview.</P> <P>A sample Project file:</P> <PRE><project name="projectname" defaulttarget="main" taskdir="tasks/"> <property name="javac.debug" value="on"/> <target name="main"> <taskimpl ...> ... </taskimpl> </target> </project></PRE> <H3>The Project Element</H3> <P>The <CODE>project</CODE> element has the following required attributes:</P> <UL> <LI><CODE><STRONG>defaulttarget</STRONG></CODE> defining the default target to be executed if no other target is specified when Ant is run</LI> </UL> <P>It also has the following optional allowed attributes:</P> <UL> <LI><CODE><CODE><STRONG>name</STRONG></CODE></CODE> defining a name for this project</LI> <LI><CODE><STRONG>taskdir</STRONG></CODE> defining a directory in which project specific tasks can be located. Tasks in this directory take precedence over those in the either the user taskdir or the installation taskdir.</LI> </UL> <P>The following elements are allowed as children of the project element:</P> <UL> <LI><CODE><STRONG>property</STRONG></CODE> defining a property scoped to the project</LI> <LI><CODE><STRONG>target</STRONG></CODE> defining a target</LI> </UL> <H3>The Property Element</H3> <P>asdf</P> <H3>The Target Element</H3> <P>asfd</P> <H2>Configuration of Tasks</H2> <P>The Task section of the configuration file is structured as such:</P> <PRE> <[taskname] [attname=value] [attname=value]...]> [<[elementname] [attname=value] ...> ... </[elementname]>] </[taskname]></PRE> <P>The taskname is used to find the class of the Task. Once the class has been located and an instance of it created, all of the attributes of the Task are reflected into the task instance using bean patterns. For example, if a Task contains an attribute named "directory", the method named setDirectory would be called with the attribute value cast to the appropriate type desired by the method. <EM>(What to do if the type isn't a file or a simple type, look for the class and see if it has a setString method?)</EM></P> <P>Text blocks contained by the element are added to task using an addText method. <EM>Place an example...</EM></P> <P>For each element contained in the Task definition, an addElementname method is found on the task. The parameter type of the method defines an object that will be loaded and instantiated. The attributes of the element are reflected into the object using bean methods. Any text is set using the addText method. Any elements are recursed in the same fashion.</P> <P>Search order of tasks.... project/user/system</P> <H2>Command Line</H2> <P>The command line utility provided with Ant must support the following allowable syntax:</P> <P><CODE>ant projectfile [prop=value [prop=value...]] [target]</CODE></P> <P>Internally, the command line shell scripts should call the <CODE>org.apache.ant.Main</CODE> class with the following arguments:</P> <PRE>java -Dant.home=installdir org.apache.ant.Main $*</PRE> <P>or its equivalent on the host platform. Note that the ant installation directory is a System property. The above syntax results in ant.home being placed in the System property list.</P> <P>Note: <EM>On unix, finding the directory of the script that was launched is relatively easy. However on Windows, I'm not sure the best way of handling this.</EM></P> <H2>File Naming Conventions</H2> <P>File naming in a cross platform tool is tricky. For maximum portability and understandiblity it is recommended that project files use the following conventions:</P> <UL> <LI>The '/' character is used as a directory seperator</LI> <LI>The ':' character is used as a path seperator</LI> <LI>Only relative paths are used</LI> </UL> <P>However, to allow for maximum flexibility and to allow project authors to use conventions that make sense on their native platform, Ant allows for a representation of file names which has the following rules:</P> <UL> <LI>Directories are seperated by the forward slash ('/') or backwards slash ('\') character.</LI> <LI>File names starting with either of the above directory seperators are considered to be absolute paths.</LI> <LI>On systems that support multiple file roots (e.g. Windows), a file name that starts with a single alphabetical character followed by a colon (':') followed by a directory seperator defines an absolute path where the letter corresponds with a directory root.</LI> <LI>File names starting with any other character are considered to be relative paths. In project files, all relative paths are resolved relative to the directory in which the project file is located.</LI> </UL> <P>Absolute paths are not recommended for build files as they reduce the ability to share a project between u sers or machines.</P> <P>In situtations where a set of filenames need to be specified, such as defining a classpath, both the colon (':') andsemicolon (';') are allowable characters to seperate each filename. The only case that has to be disambiguated is if a user specifies paths that contain windows style absolute paths. In this case, the colon is not treated as a path seperator if the following rules are met:</P> <UL> <LI>The character two places before the colon is either of the allowable path seperators (':' or ';') or if the colon is the second character of the string.</LI> <LI>The character immediately before the colon is a alphabetic character in the range a-z or A-Z.</LI> <LI>The character immediately after the colon is either of the allowable directory seperators ('/' or '\').</LI> </UL> <H2>Scripting Model</H2> <P>Sam, I'm leaving this to you. </P> <H2>Runtime Requirements</H2> <P>The following requirements are system requirements that Ant should have in order to run correctly. We should not bundle in any of these into the distribution of ant.</P> <UL> <LI>JDK 1.1 or greater</LI> <LI>A JAXP compliant parser on the classpath</LI> </UL> <P>Note: <EM>When running on JDK 1.2 or greater, the tools.jar isn't on the classpath by default. There's a few different ways we can take care of this. One is to put it on the classpath in the execute script (I don't like this one). Another is to find the location of tools.jar at runtime and put it on the classpath of class loaders that load in task.jars so that, at least in the scope of the Tasks, the relevant classes are there. </EM></P> <P></P> <P></P> </BODY> </HTML> --- NEW FILE: FunctionalRequirements.html --- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Ant Functional Requirements Document</title> </head> <body> <h2>Ant Functional Requirements</h2> <h3>Roles</h3> <p><b>User: </b>runs Ant with a complete build specification and/or writes Ant build specifications.</p> <p><b>Task Developer: </b>writes/modifies Ant tasks.</p> <p><b>Extensions Developer: </b>develops extensions like a GUI, IDE plugin, (scripting extension?)</p> <p><b>Core Developer: </b>works on the Ant core</p> <h3>Requirements from the Ant User perspective</h3> <p>It should be easy to write a build file for small Java programs. It should be possible to write a build file set for large Java systems. Maintenance of such a set should be easy (e.g. no duplication of information).</p> <p>Every build process contains dependencies (e.g. item A needs B to be available before its own build can start). It should be possible to specify these dependencies in a declarative way.</p> <p>Suppose a working build specification for system A is available. It should be possible for system B to declare dependencies to <i>(modules of?)</i> system A without touching the build specification of A. Ant should be able to handle dependencies between modules which form a DAG.</p> <p>It should be possible to modify details of the actual build (e.g. classpath, used compiler) without the need to change the build specification. This feature is needed when starting Ant (e.g. configuration with command line parameters) and for a subproject build driven by the build of a dependent project.</p> <p>Often similar items have to be built. Therefore it should be possible to provide general <i>(template?)</i> build specifications, and to declare for a concrete item that it should be built according to such a general specification.</p> <p>One result of the build process should be a log which shows what has been done.</p> <h3>Requirements from the task developer perspective</h3> <p>A task should not need to know the structure of a build specification. It would have to provide an interface (not necessarily in the Java language sense) for the Ant core to input the necessary configuration attributes and to execute the task). There should be a standard functionality to allow a task doing log output.</p> <p>An interface (again not necessarily in the Java language sense) should be provided which allows a task to get <i>(and set?)</i> information about it's context in the build process.</p> <h3>Requirements from the extensions developer perspective</h3> <p>The Ant core should be independent from a specific representation of the build specification. It should be possible to create a specification programmatically (thereby allowing the introduction of new representations). The core should do no in- or output itself. Build errors should always lead to throwing an Exception.</p> <p>Access to the current state of a build should be available, and its modification possible.</p> </body> </html> --- NEW FILE: requested-features.txt --- Status: ======= The committers have cast votes on all items (except those that came in too late) and the results are listed below - the next step will be a design phase. This list of items will be summarized into an Ant2 specification soon. I. Things that don't affect the core but are requests for new tasks or enhancements of existing tasks. ====================================================================== [ACCEPTED] for a task doesn't mean that task will be core tasks (or even be supplied by a voter), just that having them (as optional tasks) would be acceptable. * Add a new datatype filterset to group token-filters [ACCEPTED] * make usage of particular filters/filtersets explicit in copy tasks [ACCEPTED] * make facade tasks for things like javac (JikesImpl, ModernImpl etc) One candidate is jar with implementations for fastjar for example. [ACCEPTED] * unify multiple similar tasks to use similar forms (ie all the javacc type tools) [ACCEPTED] * Obfuscating task [ACCEPTED] * Add an <ant> task that will find build files according to a fileset and invokes a common target in them. <anton>? [will need more discussion because of votes by Peter Donald and Stefan Bodewig] [finally ACCEPTED] * Add a JavaApply task that executes a given class with files from a fileset as arguments - similar to <apply>. [will need more discussion because of votes by Peter Donald and Stefan Bodewig] [finally ACCEPTED] * Include some more sophisticated loggers with the Ant distribution - especially for sending emails. Make the existing one more flexible (stylesheet used by XmlLogger). Could be part of the same module tasks would be developed in? [will need more discussion because of vote by Conor MacNeill] [finally ACCEPTED] * make the default logger's output clear, informative, and terse. Actually, this is a little bit abstract, but doesn't apply to the core either. [will need more discussion because of vote by Conor MacNeill] [REJECTED - vetoes by Conot MacNeill and Stefan Bodewig] * Better docs. More examples. Tutorials, beginner documents, reference sheets for tasks, printable version. [ACCEPTED] * RPM task. [ACCEPTED] * add an attribute to <property> to read in an entire file as the value of a property. [will need more discussion because of vote by Peter Donald] [REJECTED - veto by Peter Donald] * Task for splitting files (head/tail/split like functionality). [ACCEPTED] * Task to create XMI from Java. [ACCEPTED] * socksified networking tasks, SSH tasks. [Peter Donald expressed some legal concerns that might be overcome, depending on the implementation] * a reachable task that works much like available for network URLs. [ACCEPTED] * make PATH handling consistent. Every task that has a PATH attribute must also accept references to PATHs. [will need more discussion because of vote by Stefan Bodewig] [REJECTED - vetoes by Conor MacNeill, Glenn McAllister and Stefan Bodewig] * Task to extract classes from a JAR file that a given class depends on. Based on <depend> or IBM's JAX for example. [ACCEPTED] * Unify <available> and <uptodate> into a more general <condition> task, support AND/OR of several tests here. [will need more discussion because of vote by Peter Donald] * jsp-compilation task Sounds like a candidate for a facade task. [ACCEPTED] * URL-spider task that checks links for missing content or server errors [ACCEPTED] II. Abstract goals that need to be abstract until we get into design decisions. ====================================================================== During discussion it became obvious, that some things from this list are goals for Ant and some should be guidelines for developers, therefore there are two flavors, [ACCEPTED] and [ACCEPTED AS GUIDELINE]. * Provide a clear mission statement for Ant. [ACCEPTED] * Main goals: Simplicity, Understandability, Extensibility [ACCEPTED] * remove magic properties if at all humanly possible [ACCEPTED] * remove as much dependency on native scripts as possible. [ACCEPTED] * clean object model (ie Project/Target/Task) [ACCEPTED] * good event model to integrate well with IDE/GUI/whatever [ACCEPTED] * use a consistent naming scheme for attributes across all tasks [ACCEPTED] * keep build file syntax as compatible to Ant1 as possible - i.e. don't break something just because we can. [ACCEPTED] * keep the interface for Tasks as similar to the one of Ant1 as possible - i.e. don't break something just because we can. [ACCEPTED] * Ant should be cancelable [ACCEPTED] * no commit of new features without documentation [ACCEPTED AS GUIDELINE] * no commit of new features without testcases [ACCEPTED AS GUIDELINE] III. Things that are simple, easy to implement, where we expect the committers to agree ====================================================================== * namespace support so different concerns can occupy different namespaces from ant (thus SAX2/JAXP1.1) [ACCEPTED] * Java2 [ACCEPTED] * remove all deprecated methods, attributes, tasks [ACCEPTED] * allow all datatypes to be defined anywhere - i.e. as children of project as well as of target. [ACCEPTED] * make properties fully dynamic, i.e. allow their value to be reassigned [will need more discussion because of vote by Glenn McAllister and Conor MacNeill] [finally ACCEPTED] * unify the namespace of all data types (ie properties + filesets + patternset + filtersets). [ACCEPTED] * add a user defined message if a target will be skipped because the if/unless attribute says so. [ACCEPTED] * allow user-datatypes to be defined via a <typedef> similar to <taskdef>. [ACCEPTED] IV. Things we probably agree upon but need to discuss the details or decide between several possible options. ====================================================================== [ACCEPTED] means, the goal/idea is fine, not that a decission on a particular implementation has been made. * The ability for GUI/IDE tools to integrate easily with object model without reinventing the wheel and writing their own parser (which antidote was forced to do). Two suggested solutions were allowing GUI developers to extend object model (ie GUITask extends Task) or to have Task as interface (ie GUITask implements Task). This way the GUI tasks could be W3C DOM Elements, have property vetoers/listeners etc. [ACCEPTED] * support for numerous frontends - from command line over GUI to servlets corollary of the above? [ACCEPTED] * Fully interpreted at runtime. This almost requires some form of abstraction/proxy that stands in place of tasks till it is interpreted. This can be hashtables/simple dom-like model/whatever [ACCEPTED] * provide utility classes to aid in building tasks. ie like up-to-date functionality abstracted Need to become more specific here. [ACCEPTED] * make ant-call a low cost operations so it can certain optional/template-like operations corollary of "fully interpreted at runtime"? [ACCEPTED] * allow facilities to build projects from multiple sources. ie CSS+xml or XSLT+ XML or Velocity+text or database or from inside jars or normal build.xmls etc. allow the project tree to be built dynamically. [ACCEPTED] * move to a system that allows docs to be generated - doc snippets should be included with the tasks they document. Which DTD? Which tools for generation? [ACCEPTED] * allow tasks to be loaded from jars. tasks should be indicated by either xml file in TSK-INF/taskdefs.xml or manifest file. [ACCEPTED] * allow documentation to be stored in .tsk jars corollary of the two points above? [ACCEPTED] * better scripting/notification support so the hooks are available to send notifications at certain times. Which hooks and where? [will need more discussion because of vote by Peter Donald and Simeon Fitch] [REJECTED - vetoes by Conor MacNeill, Peter Donald and Simeon Fitch] * separate tasks into .tsk jars somehow. (Probably via function - ie java tasks, file tasks, ejb tasks). Decide on categories. [will need more discussion because of vote by Conor MacNeill] [finally ACCEPTED] * make separate build files easy (ala AntFarm) and importing different projects a breeze [ACCEPTED] * provide support for user defined task configurations - i.e. give users the ability to specify a default value for attributes (always use debug="true" in <javac> unless something else has been specified). Three ideas so far: a CSS like language, a <taskconfig> element, properties following a specific naming scheme. [ACCEPTED] * support more control over the properties that are going to be passed to subprojects (modules) [ACCEPTED] * Ask for a new CVS module for Ant tasks. We need to define rules for this to work - maybe the rules proposed for the commons project could give us a start. [will need more discussion because of vote by Conor MacNeill] [REJECTED - vetoes by Conor MacNeill and Glenn McAllister] * It should be possible to modify details of the actual build (e.g. classpath, used compiler) without the need to change the build specification. Do build.compiler and build.sysclasspath cover everything or do we need to add more stuff like this? [will need more discussion because of vote by Conor MacNeill] [REJECTED - veto by Conor MacNeill] * Task to prompt for user input. Does affect core as we need a means to request input from the Frontend. [ACCEPTED] * Add cvs login feature. Requires handling of user input. [ACCEPTED] * Easier installation process. GUI - maybe webstart from the homepage. This includes asking the user whether he wants to use optional tasks and downloads the required libs. Automatic upgrades and so on. Self-extracting jar installer: java -jar jakarta-ant-1.3-bin.jar. Prompts for destination directory, extracts archive, fixes all text files with fixCRLF task; on UNIX, makes scripts executable. Could also modify ant scripts with the location of ANT_HOME. [ACCEPTED] * Logo for Ant. [ACCEPTED] * detach Ant from System.err/.in/.out. Beware of problems with spawned processes. [ACCEPTED] * better subproject handling Whatever that means in detail. [will need more discussion because of vote by Conor MacNeill] [REJECTED - vetoes by Conor MacNeill and Stefan Bodewig] * build files should be declarative in nature [ACCEPTED] V. Things we probably don't agree on. ====================================================================== [DISC] Datatypes ---------------- * Allow mappers to be genericised so that particular features can be modified during mapping. Something similar to <fileset ...> <include name="*.sh"/> <mapper type="unix-permissions"> <param name="user" value="ant"/> <param name="group" value="ant"/> <param name="mod" value="755"/> </mapper> </fileset> [REJECTED - vetoes by Stefan Bodewig and Conor MacNeill, not enough positive votes anyway.] * Allow include/exclude tow work with multiple characteristerics of a file. ie include into fileset if file is readable, modified after 29th of Feb, has a name that matches patter "**/*.java" and the property "foo.present" is set. Something similar to <include> <item-filter type="name" value="**/*.java"/> <item-filter type="permission" value="r"/> <!-- could optionally be directory/or some other system specific features --> <item-filter type="type" value="file"/> <item-filter type="modify-time" operation="greater-than" value="29th Feb 2003"/> </include> [ACCEPTED] * provide datatypes through property tag and remove need for separate free standing entities. ie <property name="foo"> <fileset dir="blah"> <include name="*/**.java" /> </fileset> </property> [REJECTED - only one +1 vote] * provide support for non-hardwired (ie loadable) low-level components (mappers/itemset-filters/converters). Allow them to be loaded in either... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:14
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0/docs/antlibs In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0/docs/antlibs Added Files: bindownload.cgi bindownload.html charter.html index.html proper.html sandbox.html srcdownload.cgi srcdownload.html Log Message: Update 4 years old ant. --- NEW FILE: index.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - The Ant Libraries Subproject</title> <link type="text/css" href="../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../antlibs/index.html">Introduction</a> </li> <li> <a href="../antlibs/charter.html">Charter</a> </li> <li> <a href="../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">The Ant Libraries Subproject</h1> <h3 class="section"> <a name="The Ant Libraries Subproject"></a> The Ant Libraries Subproject </h3> <h3>Ant Libraries - or Antlibs for short</h3> <p>With Ant 1.6.0 and the ant libraries concept creating libraries of Ant tasks that are easy to get dropped into an existing Ant installation has become far easier.</p> <p>The Ant Libraries subproject was started as a place to develop small libraries of tasks that can get released independent of Ant's release schedule - which is necessary for nascent Ant tasks since Ant's own release schedule has become rather slow over time.</p> <p>The subproject also offers a sandbox as playground for Ant committers to try new ideas for tasks.</p> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: sandbox.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Ant Libraries - The Sandbox</title> <link type="text/css" href="../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../antlibs/index.html">Introduction</a> </li> <li> <a href="../antlibs/charter.html">Charter</a> </li> <li> <a href="../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Ant Libraries - The Sandbox</h1> <h3 class="section"> <a name="Ant Libraries - The Sandbox"></a> Ant Libraries - The Sandbox </h3> <p>The sandbox is the place where new Ant Libraries start their life, it is a playground for Ant committers and other contributors who find committers to sponsor their ideas.</p> <p>The sandbox is no dumping ground. If a Sandbox Ant Library fails to attract interest within a reasonable amount of time, it gets removed from the sandbox.</p> <h3 class="section"> <a name="Current Sandbox Ant Libraries"></a> Current Sandbox Ant Libraries </h3> <h4 class="subsection"> <a name="GenDoc - Generate the manual for Ant Tasks from their sources"></a> GenDoc - Generate the manual for Ant Tasks from their sources </h4> <p>Most of the information needed for writing the manual is inside the sources: attributes, nested elements (especially inherited one). GenDoc collects these information and generates the manual as xml page. Following steps transform this xml into the final format (HTML in the first step, PDF may follow).</p> <table class="ForrestTable" cellspacing="1" cellpadding="4"> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> SVN URL: </th> <td colspan="1" rowspan="1" valign="top" align="left"> <a href="http://svn.apache.org/repos/asf/ant/sandbox/antlibs/gendoc/">http://svn.apache.org/repos/asf/ant/sandbox/antlibs/gendoc/</a> </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> ViewSVN: </th> <td colspan="1" rowspan="1" valign="top" align="left"> <a href="http://svn.apache.org/viewvc/ant/sandbox/antlibs/gendoc/">http://svn.apache.org/viewvc/ant/sandbox/antlibs/gendoc/</a> </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Ant compatibility: </th> <td colspan="1" rowspan="1" valign="top" align="left"> Ant 1.7.x </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Added to sandbox: </th> <td colspan="1" rowspan="1" valign="top" align="left"> 2005-04-15 </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Sponsoring Committers </th> <td colspan="1" rowspan="1" valign="top" align="left"> </td> </tr> </table> <h4 class="subsection"> <a name="HTTP - tasks for handling HTTP requests"></a> HTTP - tasks for handling HTTP requests </h4> <p>This antlib contains tasks to make the basic HTTP requests: get, post, head, put, with Basicauthentication.</p> <table class="ForrestTable" cellspacing="1" cellpadding="4"> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> SVN URL: </th> <td colspan="1" rowspan="1" valign="top" align="left"> <a href="http://svn.apache.org/repos/asf/ant/sandbox/antlibs/http/">http://svn.apache.org/repos/asf/ant/sandbox/antlibs/http/</a> </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> ViewSVN: </th> <td colspan="1" rowspan="1" valign="top" align="left"> <a href="http://svn.apache.org/viewvc/ant/sandbox/antlibs/http/">http://svn.apache.org/viewvc/ant/sandbox/antlibs/http/</a> </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Ant compatibility: </th> <td colspan="1" rowspan="1" valign="top" align="left"> Ant 1.7.x </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Added to sandbox: </th> <td colspan="1" rowspan="1" valign="top" align="left"> 2006-06-27 </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Sponsoring Committers </th> <td colspan="1" rowspan="1" valign="top" align="left"> </td> </tr> </table> <h4 class="subsection"> <a name="VSS - Microsoft Visual SourceSafe Tasks"></a> VSS - Microsoft Visual SourceSafe Tasks </h4> <p>This antlib provides an interface to the Microsoft Visual SourceSafe SCM. The original tasks (org.apache.tools.ant.taskdefs.optional.vss) have been expanded upon in this antlib. Some fixes to issues in the original tasks have also been incorporated.</p> <table class="ForrestTable" cellspacing="1" cellpadding="4"> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> SVN URL: </th> <td colspan="1" rowspan="1" valign="top" align="left"> <a href="http://svn.apache.org/repos/asf/ant/sandbox/antlibs/vss/">http://svn.apache.org/repos/asf/ant/sandbox/antlibs/vss/</a> </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> ViewSVN: </th> <td colspan="1" rowspan="1" valign="top" align="left"> <a href="http://svn.apache.org/viewvc/ant/sandbox/antlibs/vss/">http://svn.apache.org/viewvc/ant/sandbox/antlibs/vss/</a> </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Ant compatibility: </th> <td colspan="1" rowspan="1" valign="top" align="left"> Ant 1.7.x </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Added to sandbox: </th> <td colspan="1" rowspan="1" valign="top" align="left"> 2006-04-26 </td> </tr> <tr> <th colspan="1" rowspan="1" valign="top" align="left"> Sponsoring Committers </th> <td colspan="1" rowspan="1" valign="top" align="left"> </td> </tr> </table> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: srcdownload.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Source Distributions</title> <link type="text/css" href="../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../antlibs/index.html">Introduction</a> </li> <li> <a href="../antlibs/charter.html">Charter</a> </li> <li> <a href="../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <span class="sel">Source Distributions</span> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Source Distributions</h1> <h3 class="section"> <a name="Downloading Antlibs"></a> Downloading Antlibs </h3> <p>Use the links below to download a source distribution of Antlibs from one of our mirrors. It is good practice to <a href="[location]#Verify Releases">verify the integrity</a> of the distribution files, especially if you are using one of our mirror sites. In order to do this you must use the signatures from our <a href="http://www.apache.org/dist/ant/antlibs/">main distribution directory</a>.</p> <p>Antlibs are distributed as <code>zip</code>, <code>tar.gz</code> and <code>tar.bz2</code> archives - the contents are the same. Please note that the <code>tar.*</code> archives contain file names longer than 100 characters and have been created using GNU tar extensions. Thus they must be untarred with a GNU compatible version of <code>tar</code>.</p> <p>If you do not see the file you need in the links below, please see the <a href="http://www.apache.org/dist/ant/antlibs/">master distribution directory</a> or, preferably, its <a href="[preferred]/ant/antlibs/">mirror</a>.</p> <h3 class="section"> <a name="Downloading Betas"></a> Downloading Betas </h3> <p>Beta releases are not mirrored, you can find our latest beta releases at <a href="http://people.apache.org/dist/ant/antlibs/">http://people.apache.org/dist/ant/antlibs/</a>.</p> <p>Currently available:</p> <ul> <li><a href="http://people.apache.org/dist/ant/antlibs/antunit/source/">AntUnit 1.0Beta2</a></li> </ul> <h3 class="section"> <a name="Mirror"></a> Mirror </h3> <p>You are currently using <b>[preferred]</b>. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are <i>backup</i> mirrors (at the end of the mirrors list) that should be available.</p> <form action="[location]" method="get" id="SelectMirror"> Other mirrors: <select name="Preferred"> [if-any http] [for http]<option value="[http]">[http]</option>[end] [end] [if-any ftp] [for ftp]<option value="[ftp]">[ftp]</option>[end] [end] [if-any backup] [for backup]<option value="[backup]">[backup] (backup)</option>[end] [end] </select> <input type="submit" value="Change" /> </form> <h3 class="section"> <a name="Current Antlib Releases"></a> Current Antlib Releases </h3> <div class="warning"> <div class="label">Note</div> <div class="content">Very recent releases may not be available on all mirrors for a few days.</div> </div> <br /> <div class="warning"> <div class="label">Tar files may require gnu tar to extract</div> <div class="content">Tar files in the distribution contain long file names, and may require gnu tar to do the extraction.</div> </div> <ul> <li>Apache .NET Ant Library 1.0 <ul> <li><code>.zip</code> archive: <a href="[preferred]/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.zip">apache-ant-dotnet-1.0-src.zip</a> [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.zip.asc">PGP</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.zip.sha1">SHA1</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.zip.md5">MD5</a>]</li> <li><code>.tar.gz</code> archive: <a href="[preferred]/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.gz">apache-ant-dotnet-1.0-src.tar.gz</a> [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.gz.asc">PGP</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.gz.sha1">SHA1</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.gz.md5">MD5</a>]</li> <li><code>.tar.bz2</code> archive: <a href="[preferred]/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.bz2">apache-ant-dotnet-1.0-src.tar.bz2</a> [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.bz2.asc">PGP</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.bz2.sha1">SHA1</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/source/apache-ant-dotnet-1.0-src.tar.bz2.md5">MD5</a>]</li> </ul> </li> </ul> <h3 class="section"> <a name="Verify Releases"></a> Verify Releases </h3> <p>It is essential that you verify the integrity of the downloaded files using the PGP signature or the SHA1 or MD5 checksums. The checksums are not as strong indicators as the PGP signature.</p> <p>The PGP signatures can be verified using PGP or GPG. First download the <a href="http://www.apache.org/dist/ant/KEYS">KEYS</a> as well as the <code>asc</code> signature file for the particular distribution. Make sure you get these files from the <a href="http://www.apache.org/dist/ant/antlibs/">main distribution directory</a>, rather than from a mirror. Then verify the signatures using</p> <p><code> % pgpk -a KEYS<br /> % pgpv apache-ant-dotnet-1.0-bin.tar.gz.asc<br /> </code> <em>or</em><br /> <code> % pgp -ka KEYS<br /> % pgp apache-ant-dotnet-1.0-bin.tar.gz.asc<br /> </code> <em>or</em><br /> <code> % gpg --import KEYS<br /> % gpg --verify apache-ant-dotnet-1.0-bin.tar.gz.asc </code></p> <p>Alternatively, you can verify the checksums on the files. Unix programs called <code>md5</code>/<code>sha1</code> or <code>md5sum</code>/<code>sha1sum</code> are included in many unix distributions. <code>*sum</code> is also available as part of <a href="http://www.gnu.org/software/textutils/textutils.html">GNU Textutils</a>. Windows users can get binary md5 programs from <a href="http://www.fourmilab.ch/md5/">here</a>, <a href="http://www.pc-tools.net/win32/freeware/console/">here</a>. <a href="http://www.slavasoft.com/fsum/">fsum</a> supports MD5 and SHA1.</p> <p>We highly recommend to verify the PGP signature, though.</p> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: bindownload.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Binary Distributions</title> <link type="text/css" href="../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../antlibs/index.html">Introduction</a> </li> <li> <a href="../antlibs/charter.html">Charter</a> </li> <li> <a href="../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <span class="sel">Binary Distributions</span> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Binary Distributions</h1> <h3 class="section"> <a name="Downloading Antlibs"></a> Downloading Antlibs </h3> <p>Use the links below to download a binary distribution of Antlibs from one of our mirrors. It is good practice to <a href="[location]#Verify Releases">verify the integrity</a> of the distribution files, especially if you are using one of our mirror sites. In order to do this you must use the signatures from our <a href="http://www.apache.org/dist/ant/antlibs/">main distribution directory</a>.</p> <p>Antlibs are distributed as <code>zip</code>, <code>tar.gz</code> and <code>tar.bz2</code> archives - the contents are the same. Please note that the <code>tar.*</code> archives contain file names longer than 100 characters and have been created using GNU tar extensions. Thus they must be untarred with a GNU compatible version of <code>tar</code>.</p> <p>If you do not see the file you need in the links below, please see the <a href="http://www.apache.org/dist/ant/antlibs/">master distribution directory</a> or, preferably, its <a href="[preferred]/ant/antlibs/">mirror</a>.</p> <h3 class="section"> <a name="Downloading Betas"></a> Downloading Betas </h3> <p>Beta releases are not mirrored, you can find our latest beta releases at <a href="http://people.apache.org/dist/ant/antlibs/">http://people.apache.org/dist/ant/antlibs/</a>.</p> <p>Currently available:</p> <ul> <li><a href="http://people.apache.org/dist/ant/antlibs/antunit/binaries/">AntUnit 1.0Beta2</a></li> </ul> <h3 class="section"> <a name="Mirror"></a> Mirror </h3> <p>You are currently using <b>[preferred]</b>. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are <i>backup</i> mirrors (at the end of the mirrors list) that should be available.</p> <form action="[location]" method="get" id="SelectMirror"> Other mirrors: <select name="Preferred"> [if-any http] [for http]<option value="[http]">[http]</option>[end] [end] [if-any ftp] [for ftp]<option value="[ftp]">[ftp]</option>[end] [end] [if-any backup] [for backup]<option value="[backup]">[backup] (backup)</option>[end] [end] </select> <input type="submit" value="Change" /> </form> <h3 class="section"> <a name="Current Antlib Releases"></a> Current Antlib Releases </h3> <div class="warning"> <div class="label">Note</div> <div class="content">Very recent releases may not be available on all mirrors for a few days.</div> </div> <br /> <div class="warning"> <div class="label">Tar files may require gnu tar to extract</div> <div class="content">Tar files in the distribution contain long file names, and may require gnu tar to do the extraction.</div> </div> <ul> <li>Apache .NET Ant Library 1.0 <ul> <li><code>.zip</code> archive: <a href="[preferred]/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.zip">apache-ant-dotnet-1.0-bin.zip</a> [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.zip.asc">PGP</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.zip.sha1">SHA1</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.zip.md5">MD5</a>]</li> <li><code>.tar.gz</code> archive: <a href="[preferred]/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.gz">apache-ant-dotnet-1.0-bin.tar.gz</a> [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.gz.asc">PGP</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.gz.sha1">SHA1</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.gz.md5">MD5</a>]</li> <li><code>.tar.bz2</code> archive: <a href="[preferred]/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.bz2">apache-ant-dotnet-1.0-bin.tar.bz2</a> [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.bz2.asc">PGP</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.bz2.sha1">SHA1</a>] [<a href="http://www.apache.org/dist/ant/antlibs/dotnet/binaries/apache-ant-dotnet-1.0-bin.tar.bz2.md5">MD5</a>]</li> </ul> </li> </ul> <h3 class="section"> <a name="Verify Releases"></a> Verify Releases </h3> <p>It is essential that you verify the integrity of the downloaded files using the PGP signature or the SHA1 or MD5 checksums. The checksums are not as strong indicators as the PGP signature.</p> <p>The PGP signatures can be verified using PGP or GPG. First download the <a href="http://www.apache.org/dist/ant/KEYS">KEYS</a> as well as the <code>asc</code> signature file for the particular distribution. Make sure you get these files from the <a href="http://www.apache.org/dist/ant/antlibs/">main distribution directory</a>, rather than from a mirror. Then verify the signatures using</p> <p><code> % pgpk -a KEYS<br /> % pgpv apache-ant-dotnet-1.0-bin.tar.gz.asc<br /> </code> <em>or</em><br /> <code> % pgp -ka KEYS<br /> % pgp apache-ant-dotnet-1.0-bin.tar.gz.asc<br /> </code> <em>or</em><br /> <code> % gpg --import KEYS<br /> % gpg --verify apache-ant-dotnet-1.0-bin.tar.gz.asc </code></p> <p>Alternatively, you can verify the checksums on the files. Unix programs called <code>md5</code>/<code>sha1</code> or <code>md5sum</code>/<code>sha1sum</code> are included in many unix distributions. <code>*sum</code> is also available as part of <a href="http://www.gnu.org/software/textutils/textutils.html">GNU Textutils</a>. Windows users can get binary md5 programs from <a href="http://www.fourmilab.ch/md5/">here</a>, <a href="http://www.pc-tools.net/win32/freeware/console/">here</a>. <a href="http://www.slavasoft.com/fsum/">fsum</a> supports MD5 and SHA1.</p> <p>We highly recommend to verify the PGP signature, though.</p> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: srcdownload.cgi --- #!/bin/sh # Wrapper script around mirrors.cgi script # (we must change to that directory in order for python to pick up the # python includes correctly) cd /www/www.apache.org/dyn/mirrors /www/www.apache.org/dyn/mirrors/mirrors.cgi $* --- NEW FILE: bindownload.cgi --- #!/bin/sh # Wrapper script around mirrors.cgi script # (we must change to that directory in order for python to pick up the # python includes correctly) cd /www/www.apache.org/dyn/mirrors /www/www.apache.org/dyn/mirrors/mirrors.cgi $* --- NEW FILE: charter.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Ant Libraries - Charter</title> <link type="text/css" href="../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <script src="../breadcrumbs.js" language="JavaScript" type="text/javascript"></script> </p> <div class="logobar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="left"><img border="0" alt="Apache Ant site" src="../images/group-logo.gif"></td> <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../images/project-logo.gif"></td> <td align="right"> <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get"> <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F"> <tr> <td colspan="3"><img height="10" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td nowrap="nowrap" class="searchcaption"> <input name="q" type="hidden"> <input size="15" id="query" type="text"> <img height="1" width="5" alt="" src="../images/spacer.gif"> <input name="Search" value="Search" type="submit"> <br> the Apache Ant site </td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> </tr> <tr> <td><img alt="" border="0" height="10" width="9" src="../images/search-left.gif"></td> <td><img height="1" width="1" alt="" src="../images/spacer.gif"></td> <td><img alt="" border="0" height="10" width="9" src="../images/search-right.gif"></td> </tr> </table> </form> </td> </tr> </table> </div> <div class="tab"> <table summary="tab bar" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5"><img alt="" height="8" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../images/tab-right.gif"></td> </tr> </table> </td> <td width="8"><img alt="" height="5" width="8" src="../images/spacer.gif"></td><td valign="bottom"> <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../images/tabSel-right.gif"></td> </tr> </table> </td> </tr> </table> </div> <div class="bluebar"></div> <div class="menucontainer"> <div class="menu"> <ul> <li class="menuheader">Projects <ul> <li> <a href="../projects/index.html">Welcome</a> </li> </ul> </li> <li class="menuheader">Ant Libraries <ul> <li> <a href="../antlibs/index.html">Introduction</a> </li> <li> <a href="../antlibs/charter.html">Charter</a> </li> <li> <a href="../antlibs/proper.html">Ant Libraries</a> </li> <li> <a href="../antlibs/sandbox.html">Sandbox Ant Libraries</a> </li> <li> <a href="http://ant.apache.org/antlibs/bindownload.cgi">Binary Distributions</a> </li> <li> <a href="http://ant.apache.org/antlibs/srcdownload.cgi">Source Distributions</a> </li> </ul> </li> </ul> </div> <img style="float: left" height="10" width="10" border="0" alt="" src="../images/menu-left.gif"> <img style="float: right" height="10" width="10" border="0" alt="" src="../images/menu-right.gif"> </div> <div class="lightbluebar"> </div> <div class="main"> <div class="content"> <h1 class="title">Ant Libraries - Charter</h1> <h3 class="section"> <a name="Charter"></a> Charter </h3> <p>Below is the text of the proposal that has been accepted by the Ant PMC. Further amendments are expected.</p> <pre class="code"> Proposal to Create a Ant-Libraries Sub-Project in Apache Ant ============================================================ (0) rationale Ant itself has accumulated lots and lots of tasks over time. So many, that Ant developers have become reluctant to adding new task. Furthermore any new task in Ant would be tied to Ant's release schedule which is too slow for a thriving, fresh piece of code. The proposal allows Ant tasks and types to be developed under the Ant umbrella by Ant developers but have much shorter release cycles than Ant itself. In addition it would new committers who would have commit access to a single Ant library instead of the whole of Ant. (1) scope of the subproject The subproject shall create and maintain libraries of Ant tasks and types. Each library will be managed in the same manner as the Ant project itself, the PMC is ultimately responsible for it. Common Java libraries that only happen to provide Ant tasks as well are out of scope of the subproject. Providing the tasks or types has to be the primary goal of the library. To further this goal, the subproject shall also host a workplace for Ant committers. (1.5) interaction with other subprojects (1.5.1) the sandbox The subproject will host a SVN repository available to all Ant committers as a workplace for new Ant libraries. Before a library can have a public release it has to get promoted to the "proper" Ant libraries subproject. This also means it has to match the requirements of an Ant library as defined in section (4) under Guidelines below. The status of any library developed in the sandbox shall be reviewed after six months and the library gets either promoted or removed - or it has to be re-evaluated after another six months. (2) identify the initial source from which the subproject is to be populated Some Ant committers have developed tasks or libraries inside of the Ant CVS module under the proposal/sandbox directory. Committers are free to move them over to the new sandbox subproject or remove them completely. Libraries expected to move to the sandbox subproject initially are * the .NET tasks under proposal/sandbox/dotnet * the Subversion support tasks under proposal/sandbox/svn (3) identify the initial Apache resources to be created (3.1) mailing list(s) None. At least at the beginning we don't expect too much traffic and the existing mailing lists of the Ant projects will be used. (3.2) SVN repositories Create <http://svn.apache.org/repos/asf/ant/> Expected are sub-directories antlibs/ | -----> proper/ | | | -----> library1 | | | | | -----------> trunk | | -----------> tags | | -----------> branches | -----> library2 | | | -----------> trunk | -----------> tags | -----------> branches | -----> sandbox/ | -----> library1 | | | -----------> trunk | -----------> tags | -----------> branches -----> library2 | -----------> trunk -----------> tags -----------> branches And potentially collections of all-trunks using svn:external as shown by the current Jakarta Commons structure. (3.3) Bugzilla New components under product "Ant" for each new library. (4) identify the initial set of committers All current Ant PMC members plus the active Ant committers who are not PMC members yet. Guidelines ---------- Note: * is, has, will, shall, must - required. * may, should, are encouraged - optional but recommended. (1) The primary unit of reuse and release is the Ant library. (2) The library is not a framework or a general library but a collection of Ant tasks and types. (3) Each library must have a clearly defined purpose, scope, and API. (4) Each library is treated as a product in its own right. (4.1) Each library has its own status file, release schedule, version number, QA tests, documentation, bug category, and individual JAR. (4.2) Each library must clearly specify any external dependencies, including any other libraries, and the earliest JDK version required. (4.3) Each library must maintain a list of its active committers in its status file. (4.4) The libraries should use a standard scheme for versioning, QA tests, and directory layouts, and a common format for documentation and Ant build files. (4.4) Each library will be hosted on its own page on the subproject Web site, and will also be indexed in a master directory. (4.5) Volunteers become committers to this subproject in the same way they are entered to any Apache subproject. Once the required infrastructure is in place, volunteers may become committers for a single Ant library only. (4.6) New libraries may be proposed to the Ant dev mailing list. To be accepted, a library proposal must receive majority approval of the Ant PMC. Proposals are to identify the rationale for the library, its scope, the initial source from which the library is to be created, and the initial set of committers. (4.7) As stated in the Ant guidelines, an action requiring majority approval must receive at least 3 binding +1 votes and more +1 votes than -1 votes. (4.8) Each Ant library needs at least three committers, at least one of them has to be an Ant PMC member. </pre> </div> </div> <p class="copyright"> <script type="text/javascript" language="JavaScript"><!-- document.write(" - "+"Last Published: " + document.lastModified); // --> </script> </p> </body> </html> --- NEW FILE: proper.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Apache Ant - Ant Libraries</title> <link type="text/css" href="../page.css" rel="stylesheet"> </head> <body> <p class="navpath"> <scri... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:12
|
Update of /cvsroot/tm4j/tm4j/lib/ant/apache-ant-1.7.0 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib/ant/apache-ant-1.7.0 Added Files: INSTALL KEYS LICENSE LICENSE.dom LICENSE.sax LICENSE.xerces NOTICE README WHATSNEW fetch.xml get-m2.xml Log Message: Update 4 years old ant. --- NEW FILE: NOTICE --- ========================================================================= == NOTICE file corresponding to the section 4 d of == == the Apache License, Version 2.0, == == in this case for the Apache Ant distribution. == ========================================================================= Apache Ant Copyright 1999-2006 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). This product includes also software developed by : - the W3C consortium (http://www.w3c.org) , - the SAX project (http://www.saxproject.org) The <sync> task is based on code Copyright (c) 2002, Landmark Graphics Corp that has been kindly donated to the Apache Software Foundation. --- NEW FILE: LICENSE.sax --- 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 This page is now out of date -- see the new SAX site at http://www.saxproject.org/ for more up-to-date releases and other information. Please change your bookmarks. 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, da...@me... 2000-05-05 --- NEW FILE: LICENSE --- /* * 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. */ --- NEW FILE: KEYS --- This file contains the PGP keys of various developers. Users: pgp < KEYS gpg --import KEYS Developers: pgp -kxa <your name> and append it to this file. (pgpk -ll <your name> && pgpk -xa <your name>) >> this file. (gpg --list-sigs <your name> && gpg --armor --export <your name>) >> this file. Type Bits/KeyID Date User ID pub 1024/FEECAAED 1998/11/11 Stefan Bodewig <bo...@bo...> Stefan Bodewig <bo...@ap...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: 2.6.3i mQCNAzZJoiMAAAEEAMzhUxTOC20Nprp6K4nLTiARt+EXii/dovNWWcfzZcYXi/lX r3zpUTTZxlKQpd4RaHjFmGgoOraZE4jCRFARVcFJgYmGUKpcWJZO7YKL36WUizTM +dyB2ycOtzlty1W5VmRL3FGqo67pKA9F/QHg3NSu9hY1W9xPPK7Kq3f+7KrtAAUR tCBTdGVmYW4gQm9kZXdpZyA8Ym9kZXdpZ0Bib3N0LmRlPokAlQIFEDZSrGXHcgyK jiW9zQEBshEEAMlG4qVjKp4/agdJG56M6izx9oaKecFLXHQJrFUy3w2PvZHFYtXc osXKorX6bPrE8uB57MxbY2WapKeVRodlG0+j39vAf501duK8q2rktfWt9Cl4JjJ4 DbWhSWfV1ci62u2gCxwYQe22F9Wh+vhOR5NK9RTbSKhupdlFsnrk/i7xiQCVAwUQ NkmiI67Kq3f+7KrtAQGdxQQAlcFOzSv7G6M4uGbgvw7IGgrhx7rawtIyv9hLXgVC 7ua9xaZV8G0Fl9gh8RnbdcZ4R/aT+KIiAFaslfZ3t6hlC4MTbnAJqvdS/NO98ZkJ YvnzZSKHflAbd5gyE7IVxBC9/xRlF/Wls5sYNwb6RjoRCaOjxN/y3WCLa3Va101v zNy0I1N0ZWZhbiBCb2Rld2lnIDxib2Rld2lnQGFwYWNoZS5vcmc+iQCVAwUQOxIo BK7Kq3f+7KrtAQGn6gP/SBACdHakA4H//otpyESSrk4PmyOaYF0Kyok43Gee2mT+ m9+jZ3jLcC0oav6iH+otL/lhk9t/JDM8LjD2kAkdWWoIvvuPyCx97gOzojIo0Ve2 1wuxJTF/VIjwyOtE8FzE7p4tkc6EubVpeZkV9Pq9HFRBCUcyKJDLnF4tbstScLU= =OBLe -----END PGP PUBLIC KEY BLOCK----- pub 1024D/51898504 2001-05-29 Conor MacNeill <co...@co...> sig 3 51898504 2001-05-29 Conor MacNeill <co...@co...> sig 5F6B8B72 2002-01-11 Stefan Bodewig <bo...@ap...> uid Conor MacNeill <co...@ap...> sig 3 51898504 2001-05-29 Conor MacNeill <co...@co...> sig 5F6B8B72 2002-01-11 Stefan Bodewig <bo...@ap...> sub 1024g/D1ECBA5D 2001-05-29 sig 51898504 2001-05-29 Conor MacNeill <co...@co...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.0 (GNU/Linux) mQGiBDsTqygRBACiZckNdclTlQFonLaIKBFGhMy0KKByw0x8XA4iwdbCXuF6xNIc HIFHajJ74AHchQ4d8xtomBy6b8yvFgWVeaZensvn69BlLeqGdyeJRzfPt6TgRnzZ 2eWhb0HXdG3JwxL/2BabDhHfs4YJOrgB/vhRFQku6oCMRiBPtJj2werD6wCg0/zp jacYTw6+CR+sVvneCNyySFED/R3j10c4RnR8djgv1jKT8CKPuHYraupI9INEe+I6 7qWjtJ02GzvMO6TElAtUsf4aysu45GgwkwEBnuG6mYb3Pq0V2c5tJc2A3Tj3DrdR i3HUNwurbus76I0sPyyENPu12QPeC6mvWLEsxVJ9o0hRKFayGvYUmrwWK9UFLjvp p9cXBACDHgLn7MAVLqUdYhRrUj/M+GOUpvBikEgoJJrEUmb5X4+++dffMh5HBIO4 5LA11qEKuM2xnKqOilP7NLYXz1Fe0ocqv0jsHB4SprFTTai7ma31uwuRQvCQXVv1 yJ5CLqYda64h/UA2kmmR2dfopmvDogYEMz/HU5voozxe7BEI7bQhQ29ub3IgTWFj TmVpbGwgPGNvbm9yQGFwYWNoZS5vcmc+iFcEExECABcFAjsTqygFCwcKAwQDFQMC AxYCAQIXgAAKCRCBBGRPUYmFBDgIAKCZztXqKhK6kXOnoGy7opCNmWU0lwCgsPDa 4m+ruW3ch0rfbqtR75S52R+IRgQQEQIABgUCPD6eTgAKCRCiEVrhX2uLcqCcAKCr 1Wylqju9YjBi5Twej9ze69JFBQCeOaMgo6yjnkcV3PnVInLlaMwPr5q0LUNvbm9y IE1hY05laWxsIDxjb25vckBjb3J0ZXhlYnVzaW5lc3MuY29tLmF1PohXBBMRAgAX BQI7E6xMBQsHCgMEAxUDAgMWAgECF4AACgkQgQRkT1GJhQTY0ACgmZmKheHzjPJs 5hybpyvnvEiPYqYAn2+ryxdtz8XyOMExGRmHNlhG7svsiEYEEBECAAYFAjw+nlUA CgkQohFa4V9ri3JYYACg1WN+NCptfKVP1mbrIa+0ajztsiIAnAn+m70iwRRFZCxr jcULoY5SjyTLuQENBDsTqy0QBACfsCxJ6iCtgX8zjlVtMsMfDqu72x5sYatWKn8c u+4Oj5mi0x6azZIhwCa+K3ihLVOyG1mCRnzztGTIxWYRhq3TESIVOfgm+NgLGrmA XUTFyCT+21TExLCpuVZKmUHsWXLxDtfQ1diPeQpiQ8+Fvb/4jLGFjFIrQ2VjtFQn kumkSwADBgP9H0bF4hdMuVEcSJ9imxSoJshcOOA3Vd2+YiCTZhBygWM49wY5jNos /DArIjNCE53IlOu/UtHB2jqkSqjF0soGYsUjeCWouiTP9hLuMKPjnqj9ryJPTDKz nTCZ4TuB5CtzrKTlWLmPCPpFsGqe4KjMeKg/mqGqjPKl97xgStK9N9GIRgQYEQIA BgUCOxOrLQAKCRCBBGRPUYmFBMM6AJsF3FFyZGEmbt9aGG1W/u0oI9mcLgCfQyJ+ aalbspazea4J9zgi59SSwOM= =cBdR -----END PGP PUBLIC KEY BLOCK----- pub 1024R/697ECEDD 2000-04-06 Henri Gomez <hg...@sl...> sig 697ECEDD 2000-04-06 Henri Gomez <hg...@sl...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.0 (GNU/Linux) mQCNAzjsydwAAAEEAMpwFU/ci3/wR3ryCGp9Exr+Rx/hTQ7hWAJcVw8ejlBXlT4T yITlRUs0HGfRWxME2J55PuXXsIEPZzjfozNtvOyq8WlLlJ7iaiyWxVRoPJ25sSEj C9etm6wjj4E66ZgzuElZkm1m69uEsCHPPNuz1oQ/g1O+SmIVxIYirlxpfs7dAAUR tBxIZW5yaSBHb21leiA8aGdvbWV6QHNsaWIuZnI+iQCVAwUQOOzJ3IYirlxpfs7d AQFQyQQAj0D9G0hEL7SQGaSCkkoXwvamQw42N8+tNm+jfWHWdE4HAiVlhJmI2GyD sdcXVAcR8R7ILIRB5AY7a3bF+qMk0r+vO6oR878RKKn9AvtaAIOnrh6tr0tiPwf5 XDUMySxIWJEF3SmJAy9Lq3bAl5GMzZCFHiS0NW2gtWgmr/u1RuM= =6l+I -----END PGP PUBLIC KEY BLOCK----- pub 1024R/397DCAD5 2002-07-03 Henri Gomez <hg...@us...> sig 397DCAD5 2002-07-03 Henri Gomez <hg...@us...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.0 (GNU/Linux) mQCNAz0i0UUAAAEEALXePN6IHne0W96YRMnR+4EXB6402QY5f8ZLcnSUZUH55Fb1 qcZGBc3WRKlPiUvwBD+eVYgCpNSXF/H+oV1mawxNJN5XwqBEpfYmY8MRIPcqa61h bJc3LBSm1qNf05G5Cwxeed+OgVm0r1HBy6DAgDHAqNlkC8DZ/BVgqMA5fcrVAAUR tCpIZW5yaSBHb21leiA8aGdvbWV6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD6JAJUD BRA9ItFFFWCowDl9ytUBASNyA/458T84LUVhqq6Y9fPBAfcFMWY2kehuDWsQEXkO 46XoK+AnFZCkKuyDLqPHchVUO5pK/gZYsDK/xJkfh3u4FTDTsecb9wFmIeyayVIN SI8o6l8EZzDX/PGwqEwzxHrbQkIgIktNn5ApIoazvdBpbkQfNj1vr2wWoMYPLAWM 8xzecA== =UmZ8 -----END PGP PUBLIC KEY BLOCK----- pub 1024D/307A10A5 2002-07-18 Henri Gomez <hg...@us...> sig 3 307A10A5 2002-07-18 Henri Gomez <hg...@us...> sub 2048g/862B8F70 2002-07-18 sig 307A10A5 2002-07-18 Henri Gomez <hg...@us...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.0 (GNU/Linux) mQGiBD02vbERBAC1v8fR6gjERpaz4UMfdy0hRVWCPSbOdF+Swm/IenjVzErco6zb MTa13umUNrDPBy/tTWiCCZrOnqi7fgDzWqPEqrXJjKAFVLEWE6MmKylPPEPG1/bm idkNGERSAZduvhKv777PzvEJJ/8eGe3wy/O8NbgIjCPtr4UklwCZS8cFuwCg8oMO UdT8qZRtzdxdAyu1m5fUb+MD/3IKJYWXsdtb6iBphCU4f/BoyjVC9EZJ1ywLuiVM siKbuaDUaXU9nWcbNKv+fx8uZ1NaadpfLokqqhnWcpnSiqw8HNR7SwsF1D33rkXK O4FSuVss/tIoqGdWFcJyPkP4yP5shxqR335narVw2vDa0+BiWkALbA2qVsSIdZDB LeFZA/47AMBS0U2BRk2rQT8LmMuFl7mR+wNBM4n7FUGdxsGn3TcYd4pXTNrEQPrV YNdooKlikgGk4hgFnIFX09Spmimqgq0goFue81rttVdZZ4uep8dTghY6gwmvcOxX jATbhWStBhdu9B35kzfHc+1QihD5Z94u4uyWIVBIzikcdiY8LbQqSGVucmkgR29t ZXogPGhnb21lekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+iFcEExECABcFAj02vbEF CwcKAwQDFQMCAxYCAQIXgAAKCRAZMdaEMHoQpYijAKCCP68ndU/kTXR9XAKLvibC 3S8+1QCfUFQYte3Jo+MHKaWjsu9JGptRzo+5Ag0EPTa93RAIAKlsRJ5gOGTFsmaR W9k6MIh4c/MCy7J7HUxT5xTdHROa+3zUh+FAE/JaOx9ZtZtH863DFHA8cP4L+tpi PjBT6g2E94dwGcuH/OiSSCT4JSBukbGbOuLLdmFXqUl8+4gsL90Xal67FtNLwyLG 1n7geLir0byD+OT7VLA5w+6G0NOpJEveV/FIa2qLgdRZ8vz73ybgMh18hBUrUmro jncp0rln2VU7VCH1C2aClKm7kK4mGAjIFIzKbguK+kM3b8NDHmXKpT6syyCtIM3h prkV1TUCAFqLI32aSdlTN79lpeA2zDga9k4/4X/RDHsFpRN2neRFGTNUtuUgYpQQ E5zWBmMAAwUH/RiGxyeBsad923IwE1+GAjxFl2tqF9xWk0J6yTnSK4nfhYAE9evV jwDEok9jRl4ILCcXx6YN/d/lWNuSbARKHz/3hLiTouPpwd3SSJ8is2x9PgpJz5JX cD0y1SkbPLvs3jH3ZmdcxZpuAmJeI/typqFKK5pWP44oXIH+XH/8nWDtmLEBkgKQ /ATQWenMTmZ6MIJ6aWKWGkO9QS6iYRz3PPPGQ1O8W02CeprM2wBtlb8J1Z3RxNhM rZcg/1Qi3V3D1HI4zw6tAFmDeBb8J4PaBQzqlhzx2EBTbfwNPhV8AlPvpxHEeGGn v+O1yhZr33SnyZdINNoNDn+owVMdmkobe9GIRgQYEQIABgUCPTa93QAKCRAZMdaE MHoQpRsTAJ4qst3MhLm48fBAEnzuzi/BIKr+AgCfYaCB/AvPoncQbHc8BcNGRimR P9A= =hQhz -----END PGP PUBLIC KEY BLOCK----- pub 1024D/EDF62C35 2002-04-10 Magesh Umasankar <um...@ap...> sig 3 EDF62C35 2002-04-10 Magesh Umasankar <um...@ap...> sig 3 5F6B8B72 2003-03-07 Stefan Bodewig <bo...@ap...> sub 1024g/B5FFC53F 2002-04-10 sig EDF62C35 2002-04-10 Magesh Umasankar <um...@ap...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.0 (GNU/Linux) mQGiBDy0ebgRBADuKIKD8PuJ4wKEV1h2AprwJjxCRx8vn48XNwfLZuvhw8cpArtK rZwhoGPPUPEEXgtTNerlKq4VwpAwcnvRz7oC/7aWkUbcR2sAyhfe2scohwPgw7Xv +isWC0NDPdrxvXG/PUOG/cnELunr51ymybBqBxUd2gMhYIxPo67D+YPYLwCgwcZp yc/6kJa116ESWHrti342GD8D/1srpnRs9CiS1DQF1uZ1wW4vzj4VD61tKsjdWD8D V573R22iMDLSj4oMB536WxUH7snz8XsAKm/peqJ6G9m0smtmWA1ago5yzQj70WqF xzWBhHn2I/YfAQ8pb2s9q1lClj8elnCxT65L27ydBAZteejb2VqjtQ6iGy86PUT2 wRUvBADZmoV1eIZJEM5NnxBv1EtvRYZtIQEzZ8dO2A1LOS7qlVr8IypljNPLGhzX VHNvVsjC9QMUSWeBsDedvQHQ3hJpIMnTI32XE1V4gX06gfVTZdhf2fLTtwnsHZp0 oumqshGDVRhNJJdDYLikxWOxOfkNveKEqJFvtuBR+ZqqluQKebQlTWFnZXNoIFVt YXNhbmthciA8dW1hZ2VzaEBhcGFjaGUub3JnPohXBBMRAgAXBQI8tHm4BQsHCgME AxUDAgMWAgECF4AACgkQ76Pnee32LDWSRwCfeASWXvpdt7bSFPMtszU/7uPEktsA n23mYUN5WKJA1ZreW+0CcZ2ESnOviEYEExECAAYFAj5ogYgACgkQohFa4V9ri3IW YACgsxGig0PL0M86rJsA/IpXjBdg3ysAoJzsoUZ/7s2BxDfzF/FRTVIzS+TMuQEN BDy0eb8QBACBVb9YDJRp9Irzmq71Jf9FIPw+4g/cWpF3t/Eb7eSzMcOvTAXyNIWz aaOjHre7lFctHfq8ls/6gR7uqajiAnfQcfTcu7pp+F5KsU0Embt83SFzZ3aoJwET mB/LqUyrrGDiue3lU+flJO7UmcsRvtk0+BDkyCeB9HgfdpXbBLCyuwADBQP+PNxX 4e1tg3ZJo/xNEnD2Re3HjmQRrr0RYJLUGjgQrAEONSgowx3IW8/JssmNJVjnYm0q jSKsb8rergCFJhPNZ8Dd/k00pKcrq+IN6j7WTYLqPce87zrGAZUtmDwDSp5mxy5E xWJJxsgBPk4YBQLzJt21A3BgK/i24Sze2VLbaZuIRgQYEQIABgUCPLR5vwAKCRDv o+d57fYsNa8xAJ4mLfonZbd64+YY9rfvhIh3Vsl3AACeLPPKtma2K6XCfhTBEDnj hzSr4vo= =lBfF -----END PGP PUBLIC KEY BLOCK----- pub 1024D/265B4C63 2003-08-18 Antoine Levy-Lambert (Apache Ant Committer) <an...@ap...> sig 3 265B4C63 2003-12-06 Antoine Levy-Lambert (Apache Ant Committer) <an...@ap...> sig 3 5F6B8B72 2003-12-12 Stefan Bodewig <bo...@ap...> uid Antoine Levy-Lambert (Apache Ant Committer) <an...@an...> sig 3 265B4C63 2003-08-18 Antoine Levy-Lambert (Apache Ant Committer) <an...@ap...> sig 3 5F6B8B72 2003-12-12 Stefan Bodewig <bo...@ap...> sub 1024g/A3060393 2003-08-18 sig 265B4C63 2003-08-18 Antoine Levy-Lambert (Apache Ant Committer) <an...@ap...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.2 (MingW32) mQGiBD9AzmcRBACMqgb7IFvC/nLxw7mUAgHENeZXY3JOQJ8wVBevIbbMEeFvzHE2 diFydqUXocPexduYr0ahkf033WvWdAiNqDLfVW/HFOsc1TpjbHkqPUHtJ62Ya5tg nH4UGN9BYZfMbfVDOSz41lYwmfK5HYgpZN/sBQBSKf2qgoFB+LxYaae8YwCgrWlu fYhf7fkKbbdSf3BGS67ggNkD/0VvkXkw1SEnPaqrkKGkPKomCTb2auGxcYYI3/rP 1m+SGRf0gE1NtocmIEitiR6WvfKUjoMAXSCp5KdnUXmO9rwzkM002KCA7K5CY+e/ 2bLDuiQ3rNiD4mFfG6M+UnmZ+GMFba1p9Cp4PqLNLsCHz67t7hEsscTZQ8mZ9xKM +GCsA/9P+XFM7JDn9MLhYab9qo1CkceBkthUP6jWGjuAZ00elmBCkpkzNv5aIzss xih2GpaU/tmcMjw8FGp0dTwzqdpmbZBLjunRnuBTir4m4l5G9rwl4JbfK1PVqk4a VKkh9W7/yqBcEfNcsfJO9cqaQ+PzcnCoDiD9UHEBYzUhrCKwhLRCQW50b2luZSBM ZXZ5LUxhbWJlcnQgKEFwYWNoZSBBbnQgQ29tbWl0dGVyKSA8YW50b2luZUBhbnRi dWlsZC5jb20+iFsEExECABsFAj9AzmcGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ hhTWqyZbTGMnOgCeJV2gI+1CIxMR7dcIhXjPkiusreIAn2SGOsPS0o89l0EIVuc9 J2F03aB+iEYEExECAAYFAj/ZwioACgkQohFa4V9ri3J8CACgiGlh+td0BAnJPq19 ovEQR2DJ02MAoLP203EF+BLPpykeTcGp8UEWmeGQtEBBbnRvaW5lIExldnktTGFt YmVydCAoQXBhY2hlIEFudCBDb21taXR0ZXIpIDxhbnRvaW5lQGFwYWNoZS5vcmc+ iF4EExECAB4FAj/SSwYCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQhhTWqyZb TGOh/QCfbrSoipMlizyGT6c8BOPEd9zzfi0AnRRTqTDzXzsGk4CG/BJME9CCm7Ts iEYEExECAAYFAj/ZwiMACgkQohFa4V9ri3IOVACgh2QHS1+cVjvM4eLjls1bJwWi o5IAoLtAszHrwHS5qrhvr2rtnlyyyV2guQENBD9AzmkQBACNpBfqi2PweozCtxoX PqzKdRDKqCw7TOrDR6lbP3z/ov/1SN5Vc0XqNzBSGqwBcmGWtneABkX7n4uzJrC5 wvX/TZ/DkMvypPyeNVMu+/ZMlzdbx06OUDKr6Fy/NtaI7cN1rw+Igyv22Q8ilhhg s/5Rdj84EtJkWQjVRml6wXSAZwADBwP/TqyhOC4sA5YrePYGH8i46h0SU9dXjfEF JijC8vXZ+BNQHQVK3fjEXedZL8Zvvp1bsMu7Muz9SMnqygM1unp2NGxLRd/9315p Qh0VStYKn0xq13ybOKr0Gsyx5yyl3Nzlu/1qAR0es/zN4jV7/IQi3R2GOvezcpHX mkbsYiZAhu2IRgQYEQIABgUCP0DOaQAKCRCGFNarJltMYxcsAKCSJJUABlXYnLBj b+WtmAzu0JjZNACdFJ4KIATJDK/5ajFq5+irOpodoHc= =UomR -----END PGP PUBLIC KEY BLOCK----- pub 1024D/5F6B8B72 2001-05-28 Stefan Bodewig <bo...@ap...> sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bo...@ap...> sig 51898504 2002-01-11 Conor MacNeill <co...@co...> sig 3 F88341D9 2003-03-17 Lars Eilebrecht <la...@ei...> sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <ke...@ke...> sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 75A67692 2003-03-18 Erik Abele <er...@co...> sig B3B2A12C 2003-05-20 ct magazine CERTIFICATE <pg...@ct...> sig 3 8103A37E 2003-04-04 Andre Malo <nd...@ap...> sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bo...@ap...> sig D6298F01 2003-04-27 Paulo Henrique Gaspar Jorge <pj...@as...> sig 0CAA68B4 2004-11-11 Patrick Rentsch <pat...@su...> sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Har...@ha...> sig 5793498F 2005-07-21 Tim Ellison <ti...@el...> sig E4136392 2005-07-21 [User id not found] sig 8408F755 2005-07-21 Christian Geisert <ch...@ap...> sig 2 FC243F3C 2005-07-20 Henk P. Penning <pe...@cs...> sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 EE65E321 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 3642CB4B 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org> sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 CC78C893 2005-07-22 Rich Bowen <rb...@rc...> sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sy...@ap...> sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fie...@gb...> sig 3 015AFC8A 2005-07-22 Bertrand Delacretaz <bde...@ap...> sig 3 87315C31 2005-07-23 Raphaël Luta <rap...@ap...> sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <czi...@ap...> sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <co...@st...> sig 1CD4861F 2005-07-25 Eran Chinthaka <chi...@ap...> sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <aj...@ap...> sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <cha...@ap...> sig 152924AF 2005-07-29 Sander Temme <sa...@te...> sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hp...@in...> sig 3 9978AF86 2005-07-25 [User id not found] sig 3 2A623F72 2005-07-25 [User id not found] sig 3 F8EA2967 2005-07-26 [User id not found] sig 3 C152431A 2005-07-27 Steve Loughran <st...@ap...> sig DE885DD3 2005-11-25 Sander Striker <st...@ap...> uid [revoked] Stefan Bodewig <bo...@bo...> sig 3 5F6B8B72 2001-05-28 Stefan Bodewig <bo...@ap...> sig 51898504 2002-01-11 Conor MacNeill <co...@co...> sig 3 F88341D9 2003-03-17 Lars Eilebrecht <la...@ei...> sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <ke...@ke...> sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 75A67692 2003-03-18 Erik Abele <er...@co...> sig B3B2A12C 2003-05-20 ct magazine CERTIFICATE <pg...@ct...> sig 3 8103A37E 2003-04-04 Andre Malo <nd...@ap...> sig 0CAA68B4 2004-11-11 Patrick Rentsch <pat...@su...> sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Har...@ha...> rev 5F6B8B72 2005-07-22 Stefan Bodewig <bo...@ap...> sig 5793498F 2005-07-21 Tim Ellison <ti...@el...> sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 EE65E321 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 3642CB4B 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org> sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 CC78C893 2005-07-22 Rich Bowen <rb...@rc...> sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sy...@ap...> sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fie...@gb...> sig 3 87315C31 2005-07-23 Raphaël Luta <rap...@ap...> sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <czi...@ap...> sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <co...@st...> sig 1CD4861F 2005-07-25 Eran Chinthaka <chi...@ap...> sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <aj...@ap...> sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <cha...@ap...> sig 152924AF 2005-07-29 Sander Temme <sa...@te...> sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hp...@in...> sig 3 9978AF86 2005-07-25 [User id not found] sig 3 2A623F72 2005-07-25 [User id not found] sig 3 F8EA2967 2005-07-26 [User id not found] sig 3 C152431A 2005-07-27 Steve Loughran <st...@ap...> sig DE885DD3 2005-11-25 Sander Striker <st...@ap...> uid Stefan Bodewig <ste...@fr...> sig 3 5F6B8B72 2003-03-07 Stefan Bodewig <bo...@ap...> sig 3 F88341D9 2003-03-17 Lars Eilebrecht <la...@ei...> sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <ke...@ke...> sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 75A67692 2003-03-18 Erik Abele <er...@co...> sig B3B2A12C 2003-05-20 ct magazine CERTIFICATE <pg...@ct...> sig 3 8103A37E 2003-04-04 Andre Malo <nd...@ap...> sig 51898504 2005-06-21 Conor MacNeill <co...@co...> sig 0CAA68B4 2004-11-11 Patrick Rentsch <pat...@su...> sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Har...@ha...> sig 5793498F 2005-07-21 Tim Ellison <ti...@el...> sig 8408F755 2005-07-21 Christian Geisert <ch...@ap...> sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 EE65E321 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 3642CB4B 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org> sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 CC78C893 2005-07-22 Rich Bowen <rb...@rc...> sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sy...@ap...> sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fie...@gb...> sig 3 87315C31 2005-07-23 Raphaël Luta <rap...@ap...> sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <czi...@ap...> sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <co...@st...> sig 1CD4861F 2005-07-25 Eran Chinthaka <chi...@ap...> sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <aj...@ap...> sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <cha...@ap...> sig 152924AF 2005-07-29 Sander Temme <sa...@te...> sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hp...@in...> sig 3 9978AF86 2005-07-25 [User id not found] sig 3 2A623F72 2005-07-25 [User id not found] sig 3 F8EA2967 2005-07-26 [User id not found] sig 3 C152431A 2005-07-27 Steve Loughran <st...@ap...> sig DE885DD3 2005-11-25 Sander Striker <st...@ap...> uid Stefan Bodewig <st...@sa...> sig 3 5F6B8B72 2005-05-31 Stefan Bodewig <bo...@ap...> sig 51898504 2005-06-21 Conor MacNeill <co...@co...> sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Har...@ha...> sig 5793498F 2005-07-21 Tim Ellison <ti...@el...> sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 EE65E321 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 21D0A71B 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 3642CB4B 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org> sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <co...@ph...> sig 3 CC78C893 2005-07-22 Rich Bowen <rb...@rc...> sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sy...@ap...> sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fie...@gb...> sig 3 87315C31 2005-07-23 Raphaël Luta <rap...@ap...> sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <czi...@ap...> sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <co...@st...> sig 1CD4861F 2005-07-25 Eran Chinthaka <chi...@ap...> sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <aj...@ap...> sig 333E4E84 2005-07-26 Chathura Kamalanath Herath (Apachecon Europe 2005) <cha...@ap...> sig 152924AF 2005-07-29 Sander Temme <sa...@te...> sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hp...@in...> sig 3 9978AF86 2005-07-25 [User id not found] sig 3 2A623F72 2005-07-25 [User id not found] sig 3 F8EA2967 2005-07-26 [User id not found] sig 3 C152431A 2005-07-27 Steve Loughran <st...@ap...> sig DE885DD3 2005-11-25 Sander Striker <st...@ap...> uid [revoked] Stefan Bodewig <ste...@ep...> rev 5F6B8B72 2005-07-01 Stefan Bodewig <bo...@ap...> sig 75A67692 2003-03-18 Erik Abele <er...@co...> sig 3 F88341D9 2003-03-17 Lars Eilebrecht <la...@ei...> sig 3 5F6B8B72 2002-01-11 Stefan Bodewig <bo...@ap...> sig 3 8103A37E 2003-04-04 Andre Malo <nd...@ap...> sig 3 2261D073 2003-03-17 Astrid Kessler (Kess) <ke...@ke...> sig 21D0A71B 2003-03-17 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 2FE28BCF 2005-07-01 Harald Wilhelm (HAWI) <Har...@ha...> sub 1024g/24774157 2001-05-28 sig 5F6B8B72 2001-05-28 Stefan Bodewig <bo...@ap...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.4 (GNU/Linux) mQGiBDsSIk4RBADSCj6rUjV64tYCGT1DYKYR7GthyWpNdGHSYLbETBcDatAe1dzQ 5NsCgfrlybfyeY+y1lxr3T9bqf6zJWDw/718wff96qmmv1qzexSYtmIrj+h53V82 EXwWOFuYMJisuxdT940iQzosm3GOv4MJdEg3oI2SgfEyRQQ6vO4Ob5rHDwCg5taZ nrHOrXx2dIGHxpxRZ0SUl30D/jmtttFjYOQ3LBMriikz5mh2sK3ZnoSRF4o5O0zW Ve6e2SFXOEjVjImKsH6KCbdQNelrAdgiyOoXClyQKsQ27pncbdWo6bO0E3POJZVm XaeW7iudHVr63rU5PViXObIQrdQl0D59j5brKj4vdlTyUw8kaHPvbKPDEOwvZq4Y LJQ5BACA1YilTeXRJqwFsNlpcxCHwlULD4QUVP496prQWf1B7Z6g0KvLGrQsO0Vn Jcn+fEqukysTJixSXCPebosltd4RalJIupVYkp4w6MJ7biaDAlLuNhDcI/AiXTmV dXUedVXIaM8I3Ne23gucwbAyc0Hvb+3cSAKRhl/azFQhuHBvlrQjU3RlZmFuIEJv ZGV3aWcgPGJvZGV3aWdAYXBhY2hlLm9yZz6IYgQTEQIAGgULBwoDBAMVAwIDFgIB AheAAhkBBQI7EiJPABIHZUdQRwABAQkQohFa4V9ri3KPOACfdr6cV41veYBlBHiV FxfLcX7x5OEAniK4u3g2jpNQH3E0ROubdj/RO+RTiEYEEBECAAYFAjw+1Y8ACgkQ gQRkT1GJhQSdkgCeM6RDHUF/E334TtiLPgw7GpmNJSkAoNCLQCW/9VHrV+ZHsodn XUnaD4dIiJkEEwECAAYFAj513wwACgkQPo+38viDQdknZAPlHNiMnR+LUavo2yOY iJT+W9+8+qNs2grYDZ+WSYujaWT2NJrUCYXQRM6gKDyFlkcJvHI9lF2yYMkVetll ZVN1TJkeEdtbHncNHcdq+ZUQR0NkFKTF9d1K7UI2rfWxt1y6a13TcUjpJXzbtw/O XX9EZSI6QQt4rSFlvci9J3mIRgQTEQIABgUCPnXawQAKCRDu0eo5ImHQc0W4AJ9v uq4wlkc6TmmmZPF/gZVLluHcTgCeItrnvzyS11xkIETk6v4b7K4gaiiIPwMFED51 qhr9b4jGIdCnGxECRAUAoOaVZW5CdZ9oYr3PwI/i8RJN+JfJAKCmd/XIlYOCpa9Q c4C855pM8NFw6YhGBBARAgAGBQI+d6QQAAoJEBU/oM11pnaSL+sAn1DTHmbhITeE w0ZSgyBLQw2ZhcM5AJ0ZrRBbZ9lbgHXBKOJQiLpWBj4XsYhGBBARAgAGBQI+yi6W AAoJENvSRfyzsqEsF/AAoNXq7Cp/0AwEmWvhoTjmtY6eVYB5AKCMFhBUdYWNXVya lPTq8ThswNUnr4hGBBMRAgAGBQI+jc4sAAoJEMppOXSBA6N+kUoAn1Nj6YqarQg0 sL2KrFsQROM3A6fSAKCyl40SpfVJSO33fYuPci9dHp+QCIhXBBMRAgAXBQI7EiJO BQsHCgMEAxUDAgMWAgECF4AACgkQohFa4V9ri3IsngCfbIpJDWj6UgXY7rBH8To1 2BgB+RIAn3jw72WJzplAtShVTmuMlRFS+FUNiEYEEBECAAYFAj6sazwACgkQqywx 6dYpjwFkeQCeOkJrnO5r2hWDhX4ACPPLObZvXLIAnR0VHAgkEH1W/t7B4zdDYdBB Zrd5iEYEEBECAAYFAkGS8mMACgkQ5BNhMwyqaLQs9ACgio5zJcieYLppigvSYLBf ubUVrXUAnRKZJ6MACpH6fpoz2vkc2dh69tbSiEYEEBECAAYFAkLFMoEACgkQm/Ij RS/ii88aCQCfd1cIawDqpkYU86f3JEjcN85ntFcAni0m8WR6s+bkh3fd+EIrSRsr u3uQiEYEEBECAAYFAkLfRQIACgkQQeoJoFeTSY8XxQCdFd+XEWqyDkCx37gaIQAG 4dHpwiUAoOZ/K5OHyTJCNFaBUDtpCh7hL8TPiEYEEBECAAYFAkLfkncACgkQAQVm vOQTY5L3SgCgiEi5/1vYvJrKoAdl0hRWU57ieUIAn2n08BQfMZJQ439aNW/CnIK8 jPBPiEYEEBECAAYFAkLgNdAACgkQc84u+4QI91XdNQCgoBB1ebohIflinAPlvI37 pFHuu0MAoJ4yMtbKZMaq0xIBnxV9c5uu99tGiEYEEhECAAYFAkLerWMACgkQi5Yp Q/wkPzxD7ACgqKnyeb/fjVS8vov4FePxeLju4msAn1SCGaiF9gEf+qIaZUnjcT7J DJ96iJwEEwECAAYFAkLerG8ACgkQMaY9luwUC4Ea9gP/WON+0xIWOvWP7mKkg/+X 0ukW+mbjE426qKtG/B0vNrTKpElmz8ttR+oajqbg20LazoEUuA9ZXjLPfsdWA+vF kxgV6qIdtxYPMamPm7ytEBOmgMowYXUftGteqM5fxLlceHiwdUlynG2fmtMqvPnd 2OCezSFRx3W6nvAiIjoLZpCInAQTAQIABgUCQt7H0wAKCRA34/Rf7mXjIcAUA/4n DlQbnToSSDOZkFj1CoGL8TjsVgzrO3r3S3x38uQQTFAE/AGBY4mtHgNcYmiJaC2h N1Y+mlEGu/80Rjv185ZfJsFEerU6Y/9tRJJ1So9AAe5AmvGpD9ysXae5geB+k+ep IMSuf9WMeTRUCbQs9ufGZLV5a8jqstv+btcrzNaY9oicBBMBAgAGBQJC32x4AAoJ EJrNPMCpn3XdRBkD/iNi0Y6A3afDG9ZL/K4JrOPgHUFWC/DgAEBme4AY62agUsT0 uXlz+Mu1Ps2E0t26ejScuVMMvqpXg7iJ2+3yKzsnX0ySEXW6/696XEpe3TFn1iVO mMElPKxakn3t/jr6SDepo9jqD5P5CJR4GsDsG3iKIisWdDf81ZXpf86y7A5eiEYE ExECAAYFAkLeuuUACgkQMsnkzjZCy0vmSQCdHGC6jOEVo96yyospTq7bL+EEeioA oNMKIZy5qFLXXZbSNvsj7mDRg2c8iEYEExECAAYFAkLfbHoACgkQUI6uxTAtpWhY hQCaAvqVBsTX5s4c+sTOo06BNMdzHIUAoIwpThAKq936Szy/3Gfv8K3gs5NOiEYE ExECAAYFAkLfbHwACgkQ3bpkuiwxLS9z8ACfYeocOK4J204xwbXgEdUJQyvHK2UA oKz2AF1I2b8Ebu7vTUZLNFV1QMtwiEYEExECAAYFAkLgyTgACgkQXP03+sx4yJNb EgCfRcj6QKHVHQtYVXdCYKUbrj97wAoAnimqV15cvz1siDjUK9K/aTskGwajiEYE ExECAAYFAkLg7MsACgkQybWm7OLXdN8UoQCdFfqef8My1xhn6mLd9WTLLaIewTQA nRXGh/Af4hVG0KwtZcJEA464nCoJiEYEExECAAYFAkLg7TwACgkQW5aAEOBPmol+ JwCeLxZjKNisjgP4AxV5BCKR+5SU9NoAoIwPF/7B2NmGNR0t3EZze8wpNhQ0iEYE ExECAAYFAkLg7V8ACgkQN/aP9QFa/IqerACfafKJi4s8LYV2JxNfQKHgmRXzeIIA oNBHOzukDCdxIvmYJfamItnCP45giEYEExECAAYFAkLiYm8ACgkQbZiNF4cxXDH8 HwCgq8P29CwMX7PKhRmY3T32APsOaMEAnjdd/WvzVBFtTcJFWkH6iF4L8EQpiEYE ExECAAYFAkLjVb4ACgkQEy5J1OQe3H56DACcDPfWLO5cDkeKFCvIP8mc4p4KkfkA oJITROldIRxXqUiML1oTJxieuHJfiEYEExECAAYFAkLjZNoACgkQdcqio/ObN1CI tACgsJhqBxeZTaSrRVNk3aj6ciAJrgEAoIxPXYTvIpnWBr4/WMbN0jpV0TGEiEYE EBECAAYFAkLkbxIACgkQjON2uBzUhh/gZQCbBpIqkCEuIbd6tqChz3PzcIGiZbgA njluBFHl4l1/NHtP9fEYCgl8nbCviEYEEBECAAYFAkLkkr4ACgkQBJE0Quobo42f +QCgjtO6EOdDRiruCi6gKvwM1a2eRwcAn0XUELm5AZezL5E0rEfIM2FBiMi5iEYE EBECAAYFAkLlwh0ACgkQYRlqLjM+ToS9pwCfUEgO834XY/clWzkw/VLBfe7MLZQA mwdz0nleOHYWFBrnYgEz53d4MxUPiEYEEBECAAYFAkLqY/QACgkQsr68QBUpJK/o MQCfc7M9KpApCWW7eE22PlLoN1sPK+4AoJdwE8TsDM2Pmehk9K+uHIx6FoRviEYE ExECAAYFAkLj7WcACgkQMoZOQZyFIitClACfWpH0+V/N6vuucWZ7bsMm2BcmM3oA n3fF5qqovlog4/PcgvKCToNEF8uWiEYEExECAAYFAkLlELcACgkQUnkvr5l4r4YU ZwCgg7vJpDpUXnuNvgc5RHgG7UYhRQYAoIEKHsrswh6XzVn5yQRkfjdB/A0OiEYE ExECAAYFAkLlEaQACgkQa3OhBipiP3JA4QCffb8NgQssOQXaVR0dSwPCeU2nQPUA n15EAjykVZsUi2tZWqEM08SNOKI9iEYEExECAAYFAkLmmWIACgkQaOuMdvjqKWd7 AQCbBpwyitQ77kd9KIT6y95Im1vmWt8AnAnkNTBctVtMfwddYTG+xLkaOllOiEYE ExECAAYFAkLnYVAACgkQbpR1lMFSQxqIRACffQqUXTgOa4hyHYQBUwrlGEqmWt4A nRMXVGhd47loS27MmiEiWwDlkNjJiEYEEBECAAYFAkOHn54ACgkQZjW2wN6IXdOr 9gCgh2fn26W0DSL5WZATvvQkwZeJNiMAnR6+0AlUK8uFSFIVhl+RZMnY+XFwtCBT dGVmYW4gQm9kZXdpZyA8Ym9kZXdpZ0Bib3N0LmRlPohfBBMRAgAXBQI7EjmBBQsH CgMEAxUDAgMWAgECF4AAEgkQohFa4V9ri3IHZUdQRwABAcm6AKDaA//SYJv2pcXw GBC89OSzGvxy3gCg1kx6qu6zJKaWaE1L9oFqVc65OUSIRgQQEQIABgUCPD7VlQAK CRCBBGRPUYmFBNCzAJ9tv7tNS6NwaOZQ8cR0pGslJGKtuQCgpttMmhhRrUwyVuEX c+dKX7rdQMKImQQTAQIABgUCPnXfDwAKCRA+j7fy+INB2Vm6A+IDxiYtMvd/mad+ 7hRoKXvD5AddB1SwnvQdJe0ewStFBYZxZdNOLXdkVngCwAJziPGZcQmocEHVMrN+ Mxe+3OX0PEZ+3KOOsAUi+fTov2xvf8EWKgX9d0li9iEytVA4M0c52a3bPTC0Kki/ KAY3m8oNvAmTwWB9dBSooFFDMIhGBBMRAgAGBQI+ddrHAAoJEO7R6jkiYdBzruYA nAzvTrvDQNvoAoaDQJ+o/ydqMA8ZAJwNEOQDHsz+6ynbMPoQmKmUqfEISIg/AwUQ PnWqIf1viMYh0KcbEQIkpwCeInf4o3C5Ykh/xBodVImrp2Cvcy8AoMn3me5p4Sl2 rm2tjVxTJZt2sUr7iEYEEBECAAYFAj53pBoACgkQFT+gzXWmdpIpGgCgiTARP6Cf +JKOxUaVFr0L9DC5oUcAoIxF7D5mOVK/AFcp1cxNk3BLtdq3iEYEEBECAAYFAj7K LjIACgkQ29JF/LOyoSwAbACglNp7V2Pw4U575IuooM677bZf8pwAn2U2TcHj7PYp rU+qYRkyJ3pa7FyyiEYEExECAAYFAj6NzjUACgkQymk5dIEDo35YPwCeJIU/monN 96nP4jJjAuflEXMbemUAoJXq7oVCYuOCqWr/T3VW0DM3W+dniEYEEBECAAYFAkGS 8+sACgkQ5BNhMwyqaLQ2RwCeMcDf4bb+OMjRUJwAk2LHN9th42QAn03fVqMUZEVm OrVXfWILpjXNLMDIiEYEEBECAAYFAkLFMoYACgkQm/IjRS/ii8/gpQCffXXRCeZf 1Vv5ih70yE2ZXg0r/rsAoJYKsdx0K5aqfoEzyiBCj5I46JvhiGoEMBECACoFAkLh OBAjHSBUaGlzIHdhcyBhIGpvYiBhZGRyZXNzIGFuZCBJIHF1aXQACgkQohFa4V9r i3LxGACgiQ+wlaa9iMOue5DuhtyLPMSmuiIAoIkrciYFOf3VBBD0HLWfGVWUqxzR iEYEEBECAAYFAkLfRQwACgkQQeoJoFeTSY/ndgCfUEQl4Rc5nnu3G4ZX3o4OywbF 7DEAn3Htv1s/on+ei+1mmS6Z/PdwgM7viJwEEwECAAYFAkLerHEACgkQMaY9luwU C4F1JAP/epJYDZX4flU0sa8AlFtSROY/O6g3iVq5zeYm1WD3e0xOOYTXlkIntkYF hqbBzZQ3pFYfWmbhzCW/Tc0RigACdmroEELrwyrfLIHvsnUTF7C5AL6SuFQZqG6q oMjtHFd6KDMos2sDEZ3VXDG1buW+hpHY9rWRJKPzb/SgSetTCeuInAQTAQIABgUC Qt7H2QAKCRA34/Rf7mXjIaxmBACiYCwxZLtxnaRfwSOBkASqmnS8oBdyIKvTad9d LE3CziNgEW+AdfE76vQskeDxL3ZVQubhKWiaM4B7YU2nYxk4INVpok1qht9bN1Ps y+TS3SvpPKqq8Ri8xc4ZPDwdcCcCJiXLy5iR5tx3iBsnHRM5+LMIJg+LiOqd/ZnB sggjjYicBBMBAgAGBQJC32x5AAoJEJrNPMCpn3XdrMQD/3vFtnKssqT6mB7NOZ08 Tcw+cC5e9gAVr5Y33X+ZgPe7BJd6uPNt+I97FDdVJOnNtTZSvnkQZ/C79Yoci0yZ AAoHYlzRb4tXguLy4UDBjj3BlvPsCOKJZrKn7bxvtoTbeHgjHmneiIwCuyzSoA1h AYxiPliDrwuVCQTudHDVxjl1iEYEExECAAYFAkLeuu0ACgkQMsnkzjZCy0sSYACf X2gis4g5jep0HjKABAk31byHU0QAoI5294fLHOeIHKLCIdvKm+7gVLn+iEYEExEC AAYFAkLfbHsACgkQUI6uxTAtpWg6BwCfVQtdTRbNPgQGFqGQSUlBJ459xfYAoLKh j68YUwZB5VgIeIorpqt9bWR2iEYEExECAAYFAkLfbH0ACgkQ3bpkuiwxLS94SQCg hB4+5RwGR0ZOyy2xUA4e6ImO6ZQAoIjkWwYRd1Vp9SQoJW5OdSquYSctiEYEExEC AAYFAkLgyTsACgkQXP03+sx4yJOsAACeKo39hTRNVVyvj5y9ohT9Ye3/C+MAn27a EKrGgxNbwq50qGxFE+p36j7fiEYEExECAAYFAkLg7MwACgkQybWm7OLXdN8i0ACg s+aW41FnchB0K/OUdB3t0Lg4i5IAoM+l0PyxS3XJsAwI+JbCm0aR3VA8iEYEExEC AAYFAkLg7UAACgkQW5aAEOBPmokbqACcC3in6U+mqjSwb67rB5zTY0ThYucAoI4V 7qe0XHTDUwwWOgRo/NzR7k1OiEYEExECAAYFAkLiYm8ACgkQbZiNF4cxXDGcDgCg i5CrpyZ1Dcu0IKML05Ffvw8lPhYAn0nL0BczEo9RpNVYg2ytJ+YtjKUFiEYEExEC AAYFAkLjVcAACgkQEy5J1OQe3H7q9gCfV5xTyo5SD7G62VSUbjYfeqcuxXwAoKAu chsMkavYWCt0jBhgLuTJkFqUiEYEExECAAYFAkLjZNsACgkQdcqio/ObN1AdZACg pUgi5qnnDUpVXhTsJUoo4U485sYAoOXmMbhyaOMH9g9ndYFm5aHPMbf9iEYEEBEC AAYFAkLkbxQACgkQjON2uBzUhh9ScwCgqFELgIdNWky221EuFgjKzgEG5WoAn3cB ZbE+PMFhAZyUhQIl2hHEbVJIiEYEEBECAAYFAkLkkscACgkQBJE0Quobo43EoQCf RCtbvMHoTGmS7dmZ3sRyAj4W7WoAoJDfouy1wZ5tSMJT+XBm5oFtwSUSiEYEEBEC AAYFAkLlwiAACgkQYRlqLjM+ToRAHwCbBxMHNYyvbYmAb1kTEt8ydF660oYAn3zs rmZawTXrjvbPE/VpC+/7wpzpiEYEEBECAAYFAkLqY/gACgkQsr68QBUpJK8VgwCf aCR45JtzFnz0v4jCuooqaFGgH80An2BcoE/psLPTECGRDKE4v7JNADnCiEYEExEC AAYFAkLj7WoACgkQMoZOQZyFIisbBgCeJjAXLGfz5ahDdgozqDYrbOzxWG8Ani7h FwwxHFAIe42+OsL6xweRD46fiEYEExECAAYFAkLlELcACgkQUnkvr5l4r4ZbzQCe MBjFzDvBIFmK5VNIvvcK3ejdDPwAoLzg1ytKCg3A0OebfMX9nr5iQOxwiEYEExEC AAYFAkLlEaUACgkQa3OhBipiP3JevgCeJGjwezorOSri8IWxMJqTt3tOzkEAoMNZ CTo3AmcKICFhtdttgcuOZNWAiEYEExECAAYFAkLmmWIACgkQaOuMdvjqKWfg8QCf dYdGhkb7pBqgFhGn3uJ50+sY/QgAn1PdZCfRtVgdk/JVv35F7fJp5a1CiEYEExEC AAYFAkLnYVcACgkQbpR1lMFSQxoJggCfQ7Du5ZKb7ooJj6CF+ne77nxVuYgAnjLF 1tZ19A1n+hPaT4A2nmfnW2tRiEYEEBECAAYFAkOHn54ACgkQZjW2wN6IXdPfvgCf RhYzSFLrXLaM7hTa3iHktsQE1iUAn01MLep3eEdd3+VNPojrE8FlV+odtCpTdGVm YW4gQm9kZXdpZyA8c3RlZmFuLmJvZGV3aWdAZnJlZW5ldC5kZT6IXAQTEQIAHAUC PmiBXAIbAwQLBwMCAxUCAwMWAgECHgECF4AACgkQohFa4V9ri3JPKACfXhFOr4gM MIQwEGvUb6J/X4asuzIAnje2H9T1r/jSVi1NbIEtQfbpmyQXiJkEEwECAAYFAj51 3w8ACgkQPo+38viDQdmGkgPnUYJfHlDrQ2jYJWuPDve9n4pV9OvyIllKyLdfULjs LWXw4Jm+fMQJgWr2GEov1ZYIyS2+rGDZpbz/vxaBVbgqM8TPdiXzxwU8AFq4k+Em 4fKXR58ByLSJjvLLza61spNHJennEUFp3tTpEsr4bNuuaoRYhtiKzTqNuoC+0x+I RgQTEQIABgUCPnXaxwAKCRDu0eo5ImHQc5lcAJ9FOoAL4uHMuqHXrrxsEVPJvEJ2 /ACggaOR62EziUqcqpdm/1Zy3P4T22iIPwMFED51qjj9b4jGIdCnGxECWssAoKnk R63bWGCFDB5YJtfZJ+nQq3TAAKD1bzG/kITQpIHsT2vCY1yBmlWbBYhGBBARAgAG BQI+d6QaAAoJEBU/oM11pnaS+9IAn0kFlXAzOhhu4r5fglMVuw5bTAd0AKCtYRX2 ESU/+tsE8vuXWtsMCGeI5YhGBBARAgAGBQI+yi67AAoJENvSRfyzsqEsSccAoKqG 39X2y6xoQa56nviF5iCj/oTFAJwLKx9GyKEUbSM9f/IQ7AsZPhHT54hGBBMRAgAG BQI+jc41AAoJEMppOXSBA6N+xYgAn1HbGamcXTDYSFjn3U5ik2vQa8nuAKC/uUM0 1gsdn+71EiAkmrjlH6H9MIhGBBARAgAGBQJCuAqrAAoJEIEEZE9RiYUE0MUAn3cW FVW03CDuMuA7TSUqTf/eWARWAKC/GjQnPZ0+g7NbDw68ZSY3k8WuuohGBBARAgAG BQJBkvP5AAoJEOQTYTMMqmi0GIQAn1mpdHz/wV++rSU2Qn7R32slfNdpAKDJPqpn mcN4MUmk90yZEeHAdJmrhIhGBBARAgAGBQJCxTKGAAoJEJvyI0Uv4ovP3YUAn1z8 L1EnLdIYttWrT1zs0E89Lz4BAJ4sFzcSq2NO3OZsEQfh9F6CrUe3UohGBBARAgAG BQJC30UMAAoJEEHqCaBXk0mPIUgAoOF/OCzco+n/3sGJ57m0+aqGLOwjAJ9bC86B 2hRvkaZlGm/ne3TzCgFGnohGBBARAgAGBQJC4DXTAAoJEHPOLvuECPdVsEoAn2hq 8w0JUtfJpu3SmMUkFZLBFm3+AJ48pxmjHXjoBJGpokXw4i9Cfb56BoibBBMBAgAG BQJC3qxxAAoJEDGmPZbsFAuBGDUD93nHzcDWR6AuDxDvaDp1xR8oJZHojeZ9sWSR QffiNJKF07vvdjGbygqiWbQmtTM9qBnAxEiBpSpJemBhvGTKivPkb9H88KQe2jqo wDO3IJorIVMT+eUFB+4pn5c+kFLD/IhG7ohZ2rBIc47L62FFuD19esxvMcVelrBF q67ZV4KInAQTAQIABgUCQt7H2QAKCRA34/Rf7mXjIY9vBADqrguzlNOJFkWvEkgd VXCCH2TP3OUuPZ9JQtbJfbkg1nn1hCnMITapNJlEE3yyjB7kEpBkmUtyKv3VSwOD spfis/ps6zJRIne/2R5xqtT38Hf/sYucoMZUceipFAoCLYOqkKJKwTpYM0401dUp uxp1y8Lq5N0SDtTW9fKMNs9jioicBBMBAgAGBQJC32x5AAoJEJrNPMCpn3Xdek0E ANLj3wh2FCukydsfSzqgjFDpkVjiBxbTtCep86flaLMrF3H0idckGCjMUf/JostB sjwCpL2VlCtvhwl5ZgIzm8luceHupq2iC5hvUN0IjKuIXMLbZP7DE+Lfcvw82nKt 8JNPpjosXiMhysQZms2XfuNP6f/Ey8J5jaB2Z2JCYWJBiEYEExECAAYFAkLeuu0A CgkQMsnkzjZCy0vBrgCglfCttIxFGqVTLTq/nhPnRFMHX9YAoM4Z05oTuPFxGWS4 RzxCzCb3vpsAiEYEExECAAYFAkLfbHsACgkQUI6uxTAtpWgipACfTBzbyb7Vc0jr 2FZDiXJFUSBCoEYAnR+ySWmedkcJWESStqRstD8T72mOiEYEExECAAYFAkLfbH0A CgkQ3bpkuiwxLS/5RACgm88lpYDxy0bYF9/ubFbvqCw6i9YAnjrQoOLRBtQ4QmIP R+T/9HReOeSciEYEExECAAYFAkLgyTwACgkQXP03+sx4yJNXxQCffoccUBWO51YI EM0mbsqpnKHtawoAn2xTiDgo3TjtbRJskADuw+QnATQLiEYEExECAAYFAkLg7MwA CgkQybWm7OLXdN8bPwCfeKtfQWKm8i+KuFJTIoMTvAN65QQAn2A9G1wtEN4Vzg6H fnTvtgus32rRiEYEExECAAYFAkLg7UAACgkQW5aAEOBPmonAkwCfeF3l1lE2WijQ F0BmPMfqvkyA2UcAnRQzuc7PWyP0nydGoJvfEUHByVs7iEYEExECAAYFAkLiYm8A CgkQbZiNF4cxXDEC6gCgqICh/djzt1i6uadJAOztZc/zxl0AnjR1OaM2JxR+wqK3 loSTEKX1uOpBiEYEExECAAYFAkLjVcAACgkQEy5J1OQe3H7rRwCeJWLmLyPzpg3n r65j7AxqGRJeDfUAnRT2Oa85dAM02wgdYlj3FejPuNFziEYEExECAAYFAkLjZNsA CgkQdcqio/ObN1DA+gCeOaeMarEJDPbZjaN3y/Pf5PB/Cv0AoMGPjPSTGt/iHJ2a Arfyd0ME/R52iEYEEBECAAYFAkLkbxQACgkQjON2uBzUhh+lnQCfVbPGF5UWlzFb xK+xKmY2DbKXb5wAnjpoAxffSRO1PZlQUHgWlS+NaeCziEYEEBECAAYFAkLkkscA CgkQBJE0Quobo40fbACgo9YCJXu5Hpoc/SVp3rHCYmTuEMYAoIt2q6rPL/Jbbkik bRqausEnFstziEYEEBECAAYFAkLlwiAACgkQYRlqLjM+ToRP8wCeOVAIpaG+q9G7 uJgVCyDZ0JbjjfIAoJgg+NrBfhNeOBuu5mS1PSGDztQ+iEYEEBECAAYFAkLqY/gA CgkQsr68QBUpJK8HfwCfWgNlYNLBWmn/nejlx0m6NstT2CsAnRdhsusv6RbcKNoV UudxGG4Xm3nGiEYEExECAAYFAkLj7WoACgkQMoZOQZyFIiv6jQCeMior8Tg4msrR c+FfXfj5Uln03d4An3RTaHKU+Sv4SgEecXlW0RYlVa6eiEYEExECAAYFAkLlELcA CgkQUnkvr5l4r4ZC9gCbB5X0rL/DtpGptiNO12DdTQqzsMMAoOWpJFg3W7zAr7al Vjqlx0t1vS4KiEYEExECAAYFAkLlEaUACgkQa3OhBipiP3LYawCgiuQqhVay7FE8 e05Za69seQwF4CYAnAxBVNyvXu/1aeAuSi3iC6tywvFoiEYEExECAAYFAkLmmWIA CgkQaOuMdvjqKWfdbQCdHfDneYM+nWXT/oYOqohamLvk8iQAn1LLJhkLiCMOa9/b iF24zKt+MjaHiEYEExECAAYFAkLnYVcACgkQbpR1lMFSQxog0ACgp/m7d/NdNP0w 605VyrJWCdogeG8An2E+FpFBQgyvJaD6klzDRNNYLc71iEYEEBECAAYFAkOHn54A CgkQZjW2wN6IXdNgDgCfUVMGJZV/D1QEdnwrTkRmMb37KR4AnRLDWMsKtq4qKXQj YbmuLNdHa1EQtCRTdGVmYW4gQm9kZXdpZyA8c3RlZmFuQHNhbWFmbG9zdC5kZT6I XgQTEQIAHgUCQpxp5QIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCiEVrhX2uL csktAJ9XkWAsu0zJ293dGa+Yban+Zr1V9ACg3b9Petds6ebqQZoiHRopckbbOLqI RgQQEQIABgUCQrgKqwAKCRCBBGRPUYmFBP0VAKCPH0b7S+TylV1uBuYcYnWIb/RJ zwCeJvRTMPnWNjVz+CVOvVzJTH4ol5mIRgQQEQIABgUCQsUyhgAKCRCb8iNFL+KL z3iqAKCXRZWdGjBVbj3IBFl3kvh3xF2gsgCcD3H79mbVDRNMxpGArFQ1hqQFzleI RgQQEQIABgUCQt9FDAAKCRBB6gmgV5NJjzHQAJ9IfkjKkiEuFxUhznsghAQ8bsBW nACgoT0kWSB3iUepLIDoWhhGtDIS5FSInAQTAQIABgUCQt6scQAKCRAxpj2W7BQL gebOBACAFFpEKETO3ZHbjMnPogACNr6EZCQxzGTIXrXSyWQs68VcH54wUOA4yk3c GpfH2pgAxYjaHejTJRvDKvGrPGlKHgCZFy4+wHzo17pW9J1aKk2sUWlT67snDVdM un/i8WxD9yz299cXR6iCxPfP2HIMEqbsxWJaXITo7drWSjO35YicBBMBAgAGBQJC 3sfZAAoJEDfj9F/uZeMhRawEAM9wfn9sBIsFzQRQbAO+ll83f8ki++A4Anj6DXQ4 xRmClUxqahL1BjxxeQhE+Qomq1IebDJr0Se34XB0g3J7bzr/i9QmEwEqnDJfWVob v1Ugjy+1jzErlZBhm8hnCI+zPnrWKLk0n78vzJ5RrnVaTTV+OW5r4rdVZ86yKYHt pVSoiJwEEwECAAYFAkLfbHkACgkQms08wKmfdd0HDQP8DDD+1FQU8PPPe+Kuf2bJ OO7Ycrej4JF1I/Gbs2HH3xXgOZsRv6WJ41M/ovxJLYrpVqQA2YF/Gxwguwrf4lPk +4spFdabguiJK0d2/KZAtnLsjIzdYcoY01IKGT3xkPwIDErNFSmxX6bKCUePcFNH YZ6dDBHFFcYVTsdo/wbAe6aIRgQTEQIABgUCQt6wsgAKCRD9b4jGIdCnG30UAKDC xsPZksKIcvj7tbHQEwm+PV5+DwCg7PorUCgIvTIWnID8zRWDBG4ACXaIRgQTEQIA BgUCQt667QAKCRAyyeTONkLLS/d2AJwM7BQIQgqLA0qA75R2EjHFXQKZWACgo7ia ANHxIRc/Nw19j8CxNbWJRJ6IRgQTEQIABgUCQt9sewAKCRBQjq7FMC2laIx3AJsF 0Hjrm4N21EwdrmhS9PHKQL2KdgCgjlus2GyuCzafgb9JHVhBDrhelkmIRgQTEQIA BgUCQt9sfQAKCRDdumS6LDEtL7MWAKC6rQU6ZjSS6gVnwswutaqBwfwtvwCgv2mM GJf2hnYVaNNqV5WIFAuycmOIRgQTEQIABgUCQuDJOwAKCRBc/Tf6zHjIk9TlAJ9d bM2HowI5oD6hGSnADhI2dKfBrQCg4O9WtFiRzLqC1TgCAsbigqy+JDiIRgQTEQIA BgUCQuDszAAKCRDJtabs4td0311pAJ9L3yUe7GUeDqMzd3WLWatclf7ruQCeOenA 9nhyKgHASeEK/ZXQXDDBW0uIRgQTEQIABgUCQuDtQAAKCRBbloAQ4E+aibNVAJ4w nAfcA/rtUs3+Hu9nNn8ar/2Q5wCfe6W+k9yHjd7hZWnYHdnCkAZkOMeIRgQTEQIA BgUCQuJibwAKCRBtmI0XhzFcMezQAKCnk+So0Anm4kLDwl+srHvIB7b6jACgqROB N5MeEGXQm+Gan2VSt+nvTZ+IRgQTEQIABgUCQuNVwAAKCRATLknU5B7cflR0AKCT AlfhPFwHPXnBo+5IROopwNQnsQCgh2vHS9VRZRt5I9isNDaNf1biCQmIRgQTEQIA BgUCQuNk2wAKCRB1yqKj85s3UK9XAKCELi7ymxtLxdwYfdfV3dxd63mV2wCgjgaU lQqFXjx5mXnRsgy4S6cS9yuIRgQQEQIABgUCQuRvFAAKCRCM43a4HNSGH5/sAJ9J VHMVwBwHD8PN3DQq8hHEumn8twCfVQSXooNY2P744K+8k6lLO8nOH6GIRgQQEQIA BgUCQuSSxwAKCRAEkTRC6hujjb+qAJ0Z+AoGDYe122wRAOYAKayl9f9e0QCeKeto ll6NZ+Rm/NKbFJGP6fYywIuIRgQQEQIABgUCQuXCIAAKCRBhGWouMz5OhDd7AJ40 l37cLZcSxfPt3M7/aOPgVGpa5wCfciaEynzuHDfIQD/vtXrZb2m0+NeIRgQQEQIA BgUCQupj+AAKCRCyvrxAFSkkrwQsAJwM8IqtXQk/TBiQi6Fyq/HHm5/zvACg5atZ V8F+r7jVRhT1SJ+FaVsaQDiIRgQTEQIABgUCQuPtagAKCRAyhk5BnIUiKwuyAJwO ljL2++fVQ0BSKRvFSvS+fSu3KACeJxsOhbyCd3o3rqwaVeY5FFi+Fm+IRgQTEQIA BgUCQuUQtwAKCRBSeS+vmXivhv0OAJ0Sg/UEnB/IAoqjHzKoBivCMYDtrQCfVY3I DKRHbbLNfWBSDERWCTpHXtiIRgQTEQIABgUCQuURpQAKCRBrc6EGKmI/cqGBAKDE gTewzt6TjmCkI9RrYjF46a9H4wCeJPh4bmTymcfwRGn60h0a9Mz1mKaIRgQTEQIA BgUCQuaZYgAKCRBo64x2+OopZ3lEAJ9w4EWAgRUMxf0Ud1zoygYDQedAgQCeJPHS bk62Ej11NljNGN1zdwzRHuSIRgQTEQIABgUCQudhVwAKCRBulHWUwVJDGkOfAKCg QM+50dTktJDaDd8gVOGBKRiSIgCgkT9gdtDac0m9s2IHAqktk0mc0U+IRgQQEQIA BgUCQ4efngAKCRBmNbbA3ohd05uvAKCjMnn4GpnZhjWFS7iN0LIXgxm5PwCfYodj KF5zSbIROx79dJ41Gg0/VxW0KFN0ZWZhbiBCb2Rld2lnIDxzdGVmYW4uYm9kZXdp Z0BlcG9zdC5kZT6IdwQwEQIANwUCQsVK6jAdIEkgbm8gbG9uZ2VyIGhhdmUgYWNj ZXNzIHRvIHRoYXQgZW1haWwgYWRkcmVzcy4ACgkQohFa4V9ri3LW7wCdEc6hdCr0 94a8LG+chTd+OzGxfFUAnR3FvtuG8sv367Knk0ybMnpOM/4hiEYEEBECAAYFAj53 pBoACgkQFT+gzXWmdpL1ewCeOSe7lOufhc3mfTXs7eSvqECt89oAn0VM+YgQHbfd Vp32YE7Ht6N6GPf0iJkEEwECAAYFAj513w8ACgkQPo+38viDQdkP7QPmPZXPi7m6 wRiLofsTlHCbBrR+ehWoSSqCmHQjN1DGRtamGE6X8QbMIttD+NLp+uTx8j/E0sGU dPnWkky6fwt1f3AYeoAgCXNvPoewsC6mZn3FMdEo6vJc43FmhsUfumOtunvGNBnX dM8GSCJ+RBS/ASMjRrECF12/14xwgyyIVwQTEQIAFwUCPD7aNgULBwoDBAMVAwID FgIBAheAAAoJEKIRWuFfa4tys/4AoND5QhEdyVIypBvCUHv5SCaAKcd/AKDFthtZ TrjF+eEYlktPLRtI9zjeE4hGBBMRAgAGBQI+jc41AAoJEMppOXSBA6N+jAIAoIcA eCIKt2QBPnAthnUk4DhlmM7FAKCA0Iz9ZutXGb2l+p8s7hhF3+Y9L4hGBBMRAgAG BQI+ddrHAAoJEO7R6jkiYdBzi84AnRddvByuDodl5KaCSdpe6k9aYkLqAJoC/ud2 8X0M478KlmacVVjb+PqzBIg/AwUQPnWqLv1viMYh0KcbEQJ6DwCff918LRigFUyE vYj04C12so87JNUAn0RNFw+P1/SR9Mr/JQmOzJVhlwdriEYEEBECAAYFAkLFMoYA CgkQm/IjRS/ii8+wZwCfRvfW6NyBoAp7oS9ILRHNYh2GbhsAnRYGs1hSaGK4rGxm /fmqxj+DvqI2uQENBDsSIlQQBADNUpZLxCuTKzJ1tMm7b/XjAhvPYKiL3doAZ6XA LBdLF/nQmlh1jcuRy93QWpPxtwSfPjcwJLHy+Uq5tC1SnH1YwYhviLG1KEsniUBr oUmV2HJyHP92fFI3LPk3xbqxvLh1NXFpzSuWjGMA66sZqeEbtMy2B8OLRwQShdHI BWgrIwADBQP+PWkmbg2mraaUmgTswre8CGArBgcV+WYm6yaq9IC1G4V1PXmlswms DlsAr6UDdJU46GFZMIi2WmFJHarEkIBwFN44ypSLmiEVwKRJE2/CYO0f7zQHcF6G USwQo2TxneahrZyHs7GdvpcRcfm0YnlC/H1CJ3pl8FpfHttzzIrIJviITgQYEQIA BgUCOxIiVAASCRCiEVrhX2uLcgdlR1BHAAEBDTIAoJ3NtpI/E345LVOruElFKrnd uWWXAJ9Adm9Mz4yoxrosHSkp5BWzXBUt4A== =95C5 -----END PGP PUBLIC KEY BLOCK----- pub 1024D/C152431A 2005-07-18 [expires: 2010-07-17] uid Steve Loughran <st...@ap...> sig 3 C152431A 2005-07-18 Steve Loughran <st...@ap...> sig 2 FC243F3C 2005-07-20 Henk P. Penning <pe...@cs...> sig 3 302DA568 2005-07-21 Rodent of Unusual Size (DSA) <coar@Apache.Org> sig 3 2C312D2F 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org> sig 3 E04F9A89 2005-07-22 Roy T. Fielding <fie...@gb...> sig 8103A37E 2005-07-20 Andre Malo <nd...@ap...> sig 5793498F 2005-07-21 Tim Ellison <ti...@el...> sig E4136392 2005-07-21 Noel J. Bergman <no...@ap...> sig 1CD4861F 2005-07-25 Eran Chinthaka <chi...@ap...> sig EA1BA38D 2005-07-25 Ajith Harshana Ranabahu (Made at Apachecon 2005) <aj...@ap...> sig 3 21D0A71B 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 3642CB4B 2005-07-20 Martin Kraemer <ma...@ap...> sig 3 2261D073 2005-07-20 Astrid Kessler (Kess) <ke...@ke...> sig 3 E2D774DF 2005-07-22 Sylvain Wallez <sy...@ap...> sig 3 015AFC8A 2005-07-22 Bertrand Delacretaz <bde...@ap...> sig 3 E41EDC7E 2005-07-24 Carsten Ziegeler <czi...@ap...> sig 3 F39B3750 2005-07-24 Colm MacCarthaigh <co...@st...> sig 3 9C85222B 2005-07-24 Henning Schmiedehausen <hp...@in...> sig 3 9978AF86 2005-07-25 Christoph Probst <ch...@ne...> sig 3 2A623F72 2005-07-25 Christoph Probst <ch...@ne...> sig 3 F8EA2967 2005-07-26 Brian McCallister <br...@ap...> sig 3 A99F75DD 2005-07-21 Rodent of Unusual Size <coar@OpenSource.Org> sig 3 EC140B81 2005-07-20 Dirk-Willem van Gulik (http://www.anywi.com/ - Senior partner) <di...@an...> sig 3 EE65E321 2005-07-20 Martin Kraemer <ma...@ap...> sig 152924AF 2005-07-29 Sander Temme <sa...@te...> sig 3 87315C31 2005-07-23 Raphaël Luta <rap...@ap...> sub 2048g/59066D7B 2005-07-18 [expires: 2010-07-17] sig C152431A 2005-07-18 Steve Loughran <st...@ap...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.2 (GNU/Linux) mQGiBELb2+oRBADhgEV29jhAMg4dFJN9fjeIjN7+J0Lj3rcLBWc5RTlM33DTOCFM BCIE9B/RXJuVhGgi7fUuB+WsHz7XMgZRn+5nqIKGecIxwEUtZCfwsaV6Id3abt30 wccyYDTSV95gQie+bbwWF44ao7n/CaR1WUU/Nx5b26nY2EzOrQcgP1qYEwCgynnc NU1N3zd1cIYr5hQVqvdazKsEAMbYAm5WsjBlLBrolxs/smx4vxZYJaA3gUqTz9WY D08rDsotVIMoosYF0b4b3WxcePJ68N1pkF3U+zo8bIZJThT91nAfMh29ZAcSyRqg Mkd25OcrrjykeF7OavuFSwhvYoDdlwsvkuijHY3weXyhpjvzi+GzvZoONo3zSl4g aWncA/4vu6k7XZUZ6B9DbJLJ4Xqq8uhD7uT4417uCQdozIWgKE4ThM2WffhV2IgY W6IXg+o6AqY1qiMLSYYdeRsVkQ/GVss+sR++cbsO5ijDGfvlWPfGxIcA+P+alAwf KY9M45IB8E92DUDru6ImrDHMeOrlDNPRusxRyZ4SiSJYNcgBtLQiU3RldmUgTG91 Z2hyYW4gPHN0ZXZlbEBhcGFjaGUub3JnPohhBBMRAgAhBQJC29vqBQkJZgGABgsJ CAcDAgMVAgMDFgIBAh4BAheAAAoJEG6UdZTBUkMaZugAnjJVyMa1FYEm/9811Whm K06kGzXbAJ4rgRTBOcuyVbmbOAeYCgqloOxky4hGBBIRAgAGBQJC3rlGAAoJEIuW KUP8JD88RewAn3LmpnmnLlYnlQW7+byITmKLO9gwAKCi0GGQz0QUq9tFG4YeF7Rp UCl8ZIhGBBMRAgAGBQJC32y8AAoJEFCOrsUwLaVof1cAoLX3ROO9ufH+QXYlBuy6 HA5SgofAAJ9aON/jC3WmrxT9Lz/DlIBKVI9TZohGBBMRAgAGBQJC32zBAAoJEN26 ZLosMS0vCycAnjFhGc63FoWHwzpfVoocrBm8yQTHAJ47Kle1Tr+fBnlkYsAg0xY6 12VZ9YhGBBMRAgAGBQJC4PEqAAoJEFuWgBDgT5qJY6IAnj2jxdReXh3eBRr+easP bboH9Lu0AKCSoT0Gt+pM+G7XM8vQbZjsyjDhrohMBBARAgAMBQJC3t+3BYMJYv2z AAoJEMppOXSBA6N+4VAAnRfGDGvU4qDop0EdApmHCExFDHFDAJ9/3xZDnJjEeSGr l2JyOPJfbv/k0YhMBBARAgAMBQJC30/tBYMJYo19AAoJEEHqCaBXk0mPRKwAoI0M FDyhr2PON57N4614Po16a9ZNAJ0SGKJtMOIxgoDHSf6SYuFy+8sBLYhMBBARAgAM BQJC35MFBYMJYkplAAoJEAEFZrzkE2OSgcsAnjKv4POPmFUYhDGH+GCcxSyM9LPo AJ0TPnoLf74lUroWD5+rlhTPD9eMHYhMBBARAgAMBQJC5HvtBYMJXWF9AAoJEIzj drgc1IYfdCAAoIKybYLGd4yGE8NcrvnGaPSXx6NXAJ4zrIPA9tQu23tOHarZxSqg 7AWGh4hMBBARAgAMBQJC5JCBBYMJXUzpAAoJEASRNELqG6ONWZsAniJvvMiDR61N rV5Y7xx/3/id/ekWAJ9MNUUQAXTES1dkywQVHVp6C8QFvohMBBMRAgAMBQJC3rR1 BYMJYyj1AAoJEP1viMYh0Kcb26oAn2JuF355Lq6PIEvnhEr+SA3noxS8AJ9msBXz nHsORsz8mB4WZ4DMAYEH0YhMBBMRAgAMBQJC3rvoBYMJYyGCAAoJEDLJ5M42QstL Cu0An2vCOimm9iyRJekvlh7IcsrXVDksAJ9S1iVXBgyRuWBkbcuRk9OLs/TnwohM BBMRAgAMBQJC3twlBYMJYwFFAAoJEO7R6jkiYdBz3gkAn3b48pHpjPG5DCbfp0oT /WN9IqYlAJ47CLk2xg7e8N53WTmYfL+F/c/ZrohMBBMRAgAMBQJC4O0jBYMJYPBH AAoJEMm1puzi13Tf+KgAnjviBj4kvC9ABiWR70t4BU3y8kgJAJ9qmj71qWjrek/L Cb3+fAmlASx82IhMBBMRAgAMBQJC4O20BYMJYO+2AAoJEDf2j/UBWvyKJywAnjSC smaB18utPgHthVW0qDQ+DDmNAJ9a64uKqcDI7u1cDEbi3nL5ELztCohMBBMRAgAM BQJC41snBYMJXoJDAAoJEBMuSdTkHtx+SyUAn19MjVdnPdxKdiXjpMRWwOs5fhTL AJ9AGh+TvyOt877cfLVaywPK+GhN0ohMBBMRAgAMBQJC42UQBYMJXnhaAAoJEHXK oqPzmzdQe9gAoL7BugDd1NniX/ZNqs0aD7Y1uUfhAJ0b4p34ZYPWFg1CyUduwYlx MAOqo4hMBBMRAgAMBQJC4+3gBYMJXe+KAAoJEDKGTkGchSIrHl8An0ERlWCCDHYy 0jlbsVcQ4FOS9qe6AJ4sLF02AltG01bK1kpvnKXxHFVYoIhMBBMRAgAMBQJC5RDw BYMJXMx6AAoJEFJ5L6+ZeK+GWEkAoIl+GM1cgJosSMsMG0NqXog9yqeKAJ9aJ0Xr j7JP5abRyjROroIUCUcc4ohMBBMRAgAMBQJC5RHdBYMJXMuNAAoJEGtzoQYqYj9y IawAn3TzgRnJPfl4gg2kwIlJtD/a4ql5AJ43+Bbg3EWh2RVaLB7QpA1pAsRFB4hM BBMRAgAMBQJC5pnVBYMJW0OVAAoJEGjrjHb46ilnWz8An1WpumoYARq3Le1VG0vu SkQcdg8SAJ488MHNQRq2fyQFk9uIstWriQfa7YicBBMBAgAGBQJC32y2AAoJEJrN PMCpn3Xdsl0D/j7J+/vobH/4+pmWCWv3okqBbbd9PH/NJTC3B7KU+p8bFdIIZWYh n9SPXRdLoUlbKnqYw6+x0Ktn/9oWqwTM2b1bOHoMEUy/hPDM1ZK2gGDU11BFbfC4 zkXowbq2xCHLyaQXqj5Wju01PT/wj8bw5A0E2rzv2iUA2ilXJE1vQdx+iKIEEwEC AAwFAkLerQ0FgwljMF0ACgkQMaY9luwUC4H6jAP+L3lvntIdecj0QlnD4gTkdLn+ nbOPT0G9MPSjA3ML9Bqeoh/uD2TeHS0dqb67DpIzhKV/zu6vrOhsXHXNiCjR4lxR YHBg0PoxLJkggpjdAduk5vcM2ZgRJZQojsQ9CunxnmA/YCRCEEUPFeKj/5p1aFGm uPsl2zwggHxbdOBY1maIogQTAQIADAUCQt7IywWDCWMUnwAKCRA34/Rf7mXjITNS A/9YB8srHD2WbpZy5P/cN6WjPshYgx0lVFOifFdXgD4AUzgJ3VmtH1NI0Rkgadcw 8PdJYAynH/Hdz4PJ8wIEkmMFEe6TKB3BCjCGY8+Ti6R/VrlkizIGL0HzAUzNc+g2 D1NI8725Idx+XNSOSBcOBZ3mwPVo1k67X1rF8BoYAeo8TohMBBARAgAMBQJC6mYn BYMJV3dDAAoJELK+vEAVKSSv8BwAniQzr7l/ihVvAhvNUnpJzFWfr6tfAJ93Mama D+Fz4kgEVjnO5j8MrM6JtIhMBBMRAgAMBQJC4mNBBYMJX3opAAoJEG2YjReHMVwx Pr4AmQGWlApW3C1VbkuRgVs8pj6/ejXqAKC1z3D5mMpj83yyejnBjxDjXTLsUbkC DQRC29vxEAgA05PNdXcVOSTsYuizTCbdBU9i3qUBkAyqPmDE6hkWI+7fnr8KAUUo UghWwhxqBngpv48o3mE+bC+l/cTH+DuHIOsszpSK5ydufyitXi7piYk4RS+UNbyl b4BU5qGodwWwXC9wKBIjXL5rK2KjKh4Ovh0WogtZ1fwc5NzQkjcfbner9WsAmjtd nmVV2vZhJdDlxf3BBM9ai2R2IRvfhF61QFZcr2ehqAdsiDix8p0ugpC/oQS8h8pg GQebz7aNeSjh/Vb3dsdo8CaLvHp1nM5aVCDRqoCfoeKUbRfwwwKxtc1cyYzOHD1f KG9BuvtL4y4JQ/gDCsQVKdAAoiktu8Ks9wADBQf/fGkVYIh7w0+8xSIvez1DKirX rl1J3XNvOYIa1qlBk65hllXnFXeXqoOLQpvygcwNRfil3AGcpwzwlNloem3ozjnt IFvYJYzB6q4SMl1/a5uLrcc2frq8tbG0RhU+ZEhWR6sIEOBQhkKZ9LZbJ1tK9buJ M0meaIt5gVLAVbI5vf+2Lvmlv0+E/a4Zn2exl1RcBYATNZT1gC55m0z5PMzG6Bc4 tOAhPEo3WpfNjIrFeXcB0ksk4mfDIWKlA0mc8A+faKSSMdiDpeU4H4uZy5pE/hVv 2VyE3Ej5PoA3DajRzgQ69YlojTYnfnPyJErCBZhtZXTtRY7aDm9/xBT7FZ06RIhM BBgRAgAMBQJC29vxBQkJZgGAAAoJEG6UdZTBUkMakjEAoINKV6yLAdbBhXhvMsqK 0N6XOghJAJ4mSgdwgv+sIOaPKQqCm+PL2M0lPw== =4TlI -----END PGP PUBLIC KEY BLOCK----- pub 1024D/AA0077B0 2006-06-13 uid Kev Jackson (apache key) <ke...@ap...> sig 3 AA0077B0 2006-06-13 Kev Jackson (apache key) <ke...@ap...> sub 2048g/8A6DD738 2006-06-13 sig AA0077B0 2006-06-13 Kev Jackson (apache key) <ke...@ap...> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.1 (Darwin) mQGiBESOfuoRBADiCLjvY8EG8cDrfNvPaVJr1/8d8GDoLjBCeJWl50M... [truncated message content] |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:11
|
Update of /cvsroot/tm4j/tm4j/lib In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/lib Removed Files: ant.jar Log Message: Update 4 years old ant. --- ant.jar DELETED --- |
From: Xuan B. <med...@us...> - 2008-01-25 19:21:09
|
Update of /cvsroot/tm4j/tm4j/bin In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12860/bin Removed Files: ant ant.bat antRun antRun.bat Log Message: Update 4 years old ant. --- ant DELETED --- --- antRun.bat DELETED --- --- antRun DELETED --- --- ant.bat DELETED --- |