Update of Krysalis Centipede build system to version 1.0-dev

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352312 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nicola Ken Barozzi 2002-04-03 17:06:10 +00:00
parent 0047e5a07c
commit 7a06cfb182
54 changed files with 464 additions and 3900 deletions

View File

@ -1,74 +0,0 @@
P O I
@version@
What is it?
-----------
The POI project consists of APIs for manipulating various file formats
based upon Microsoft's OLE 2 Compound Document format using pure Java.
A common misconception is that POI writes Excel files. POI is the name
of the project.
POI contains several components, one of which, HSSF, writes Excel files.
The following are components of the entire POI project.
POIFS
-----
The oldest and most stable part of the project.
It is our port of the OLE 2 Compound Document Format to pure Java.
It supports both read and write functionality.
All of our components ultimately rely on it by definition.
HSSF
-----
It's our port of the Microsoft Excel 97(-2002) file format (BIFF8)
to pure Java. It supports read and write capability.
HDF
---
It's our port of the Microsoft Word 97 file format to pure Java.
It supports read and write capability.
This component is in the early stages of design.
Jump in!
Where is it?
------------
The home page for the POI project can be found in the POI
Project web site (http://jakarta.apache.org/poi/). There you also find
information on how to download the latest release as well as all the other
information you might need regarding this project.
Requirements
------------
The following requirements exist for installing it:
o A Java 1.2 or later compatible virtual machine for your operating system.
Installation Instructions and Documentation
-------------------------------------------
The documentation available as of the date of this release is
included in the "docs/" directory.
Look for the most updated documentation on the POI web site.
Licensing and legal issues
--------------------------
For legal and licensing issues, please read the LICENSE files
in the /legal directory.
Thanks for using POI.
The POI Project
http://jakarta.apache.org/poi/

View File

@ -1,11 +1,10 @@
@echo off
set OLD_ANT_HOME=%ANT_HOME%
set ANT_HOME=tools\ant
set ANT_HOME=tools\antipede
set OLD_CLASSPATH=%CLASSPATH%
for %%i in (.\lib\endorsed\*.jar) do call appendcp.bat %%i
for %%i in (.\tools\centipede\lib\*.jar) do call appendcp.bat %%i
call %ANT_HOME%\bin\ant -listener org.apache.tools.ant.XmlLogger %1 %2 %3 %4 %5 %6 %7 %8 %9

3
build.number Normal file
View File

@ -0,0 +1,3 @@
#Build Number for ANT. Do not edit!
#Wed Apr 03 18:45:13 CEST 2002
build.number=78

View File

@ -6,8 +6,8 @@ if [ "$JAVA_HOME" = "" ] ; then
exit 1
fi
chmod u+x ./tools/ant/bin/antRun
chmod u+x ./tools/ant/bin/ant
chmod u+x ./tools/antipede/bin/antRun
chmod u+x ./tools/antipede/bin/ant
# ----- Verify and Set Required Environment Variables -------------------------
@ -26,10 +26,10 @@ CP=$CLASSPATH
export CP
unset CLASSPATH
CLASSPATH="`echo ./lib/endorsed/*.jar | tr ' ' $S``echo ./tools/centipede/lib/*.jar | tr ' ' $S`"
CLASSPATH="`echo ./lib/endorsed/*.jar | tr ' ' $S`"
export CLASSPATH
$PWD/./tools/ant/bin/ant -listener org.apache.tools.ant.XmlLogger $@
$PWD/./tools/antipede/bin/ant -listener org.apache.tools.ant.XmlLogger $@
unset CLASSPATH

316
build.xml
View File

@ -1,57 +1,36 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="tools/antipede/resources/stylesheets/layout.xsl"?>
<!DOCTYPE project [
<!-- ===========================================================================
<!-- antipede -->
<!ENTITY import-antipede SYSTEM "./tools/antipede/build.xtarget">
]>
<project default="interactive" basedir="." name="project build file">
<description>
* ===================================== *
| Krysalis Centipede Build System |
* ===================================== *
by
Nicola Ken Barozzi <barozzi@nicolaken.com>
Marc Johnson <mjohnson at apache dot org>
Nicola Ken Barozzi (nicolaken@apache.org)
Marc Johnson (mjohnson@apache.org)
extends the Apache Cocoon Build System
(http://xml.apache.org/cocoon/)
started as an extension of the
the Apache Cocoon Build System
(http://xml.apache.org/cocoon/)
by
Stefano Mazzocchi <stefano@apache.org>
Carsten Ziegeler <cziegeler@apache.org>
Stefano Mazzocchi (stefano@apache.org)
Carsten Ziegeler (cziegeler@apache.org)
-->
<!-- ================= Main project targets and info ================= -->
<!ENTITY project-target SYSTEM "./src/targets/project.xtarget">
<!ENTITY interactive-target SYSTEM "./src/targets/interactive.xtarget">
<!-- =================================================================== -->
<!-- ====================== Scratchpad targets ======================= -->
<!ENTITY scratchpad-target SYSTEM "./src/scratchpad/targets/scratchpad.xtarget">
<!-- =================================================================== -->
<!-- ======================== Contrib targets ======================== -->
<!ENTITY contrib-target SYSTEM "./src/contrib/targets/contrib.xtarget">
<!-- =================================================================== -->
<!-- ================== Krysalis Centipede targets =================== -->
<!ENTITY preinit-target SYSTEM "./tools/centipede/targets/preinit.xtarget">
<!ENTITY init-target SYSTEM "./tools/centipede/targets/init.xtarget">
<!ENTITY compile-target SYSTEM "./tools/centipede/targets/compile.xtarget">
<!ENTITY util-target SYSTEM "./tools/centipede/targets/util.xtarget">
<!ENTITY dev-target SYSTEM "./tools/centipede/targets/dev.xtarget">
<!ENTITY test-target SYSTEM "./tools/centipede/targets/test.xtarget">
<!ENTITY robot-target SYSTEM "./tools/centipede/targets/robot.xtarget">
<!ENTITY docs-target SYSTEM "./tools/centipede/targets/docs.xtarget">
<!-- =================================================================== -->
]>
<project default="interactive" basedir="." name="krysalis">
<!--
Installing the build tools
==========================
The Krysalis build system is based on Apache Ant, which is a Java building tool
originally developed for the Tomcat project but now used in many other
Apache projects and extended by many developers.
The Krysalis Centipede build system is based on Apache Ant,
which is a Java building tool originally developed for the Tomcat
project but now used in many other Apache projects and extended
by many developers.
Ant is a little but very handy tool that uses a build file written in XML
(this file) as building instructions. For more information refer to
@ -84,24 +63,6 @@ Also, you'll note that reusing a single JVM instance for each task, increases
tremendously the performance of the whole build system, compared to other
tools (i.e. make or shell scripts) where a new JVM is started for each task.
Building on another directory
=============================
Sometimes you might want to build on an external directory to keep the
distribution clean: no worries, this is just an environment property away.
Suppose you want to use the "../build" directory instead, you simply tipe
[unix] ./build.sh -Dbuild.root=../build
[win32] .\build.bat -Dbuild.root=..\build
By using the -Dxxx=yyy argument, you are setting environments in the JVM: Ant
is designed to give higher priority to system environments to allow you to
modify _any_ <property> that you can find in the building instructions below,
so it's just a matter of understanding what property you want to change
and you don't have to touch this file (which you shouldn't need to do).
Build targets
=============
@ -112,12 +73,7 @@ is used by project maintainers to take care of everything in the project,
no less and no more.
To know more about the available targets take a look at this file, which is
pretty self-explanatory.
To see al list of all targets, type
[unix] ./build.sh -projecthelp
[win32] .\build.bat -projecthelp
pretty self-explanatory, or run the build with "-projecthelp".
Build Dependencies
==================
@ -125,63 +81,193 @@ Some components are optional and require special jar files to be compiled
and added to the application. Some of these jars are already included
in the distribution while others not.
For each optional package which is not available, a warning can be
printed. If you don't like these warnings, specify the property "omit.opt.warnings"
(build -Domit.opt.warnings).
Distribution Version
====================
When preparing a distribution for release, specify the version ID on
the command line: -Dversion="dev-1.2.1", for example.
Specifying a subset of unit tests to be executed
================================================
Specify the package on the command line:
-Dtest.specific="org.krysalis.p.testme" will select only the testme
tests to be run. If you've run any other unit tests in a prior
session, you'll need to specify the 'clean' target to remove
extraneous test classes from execution:
./build.sh clean test -Dtest.specific="org/krysalis/p/testme"
or
.\build.bat clean test -Dtest.specific="org/krysalis/p/testme"
printed.
Happy hacking from the Dev Team :)
============================================================================ -->
Happy hacking :)
============================================================================
</description>
<!-- =================================================================== -->
<!-- external reference are relative to to **/*.xtarget; -->
<!-- see entity decalrations at the start of this file -->
<!-- =================================================================== -->
<!-- Pre Initialization --> &preinit-target;
<!-- =================================================================== -->
<!-- Project targets --> &project-target;
<!-- Basic build targets for the project -->
<!-- =================================================================== -->
<!-- Initialization targets --> &init-target;
<!-- =================================================================== -->
<!-- Compile targets --> &compile-target;
<!-- =================================================================== -->
<!-- Interactive targets --> &interactive-target;
<!-- =================================================================== -->
<!-- Scratchpad targets --> &scratchpad-target;
<!-- =================================================================== -->
<!-- Contrib targets --> &contrib-target;
<!-- =================================================================== -->
<!-- Utility targets --> &util-target;
<!-- =================================================================== -->
<!-- Developer targets --> &dev-target;
<!-- =================================================================== -->
<!-- Testcases targets --> &test-target;
<!-- =================================================================== -->
<!-- "Scripts" targets --> &robot-target;
<!-- =================================================================== -->
<!-- Documentation targets --> &docs-target;
<!-- =================================================================== -->
</project>
<!-- End of file -->
<!-- ================================== -->
<!-- Interactive -->
<!-- ================================== -->
<target name="interactive" depends="-init"
description="Interactive target">
<splash/>
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="compile"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Compile -->
<!-- ================================== -->
<target name="compile" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="compile"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Build jars -->
<!-- ================================== -->
<target name="jar" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="package"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Build distributions -->
<!-- ================================== -->
<target name="dist" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="dist"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Clean build dir -->
<!-- ================================== -->
<target name="clean" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="clean"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Run Junit tests -->
<!-- ================================== -->
<target name="test" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="junit"/>
<param name="cent-target" value="test"/>
</antcall>
<antcall target="call-cent">
<param name="cent-name" value="junit"/>
<param name="cent-target" value="report"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Generates the documentation -->
<!-- ================================== -->
<target name="docs" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="forrest"/>
<param name="cent-target" value="docs"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Generates the javadocs -->
<!-- ================================== -->
<target name="javadocs" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="javadocs"/>
</antcall>
</target>
<!-- ================================== -->
<!-- Test the main module stuff -->
<!-- ================================== -->
<target name="test-module"
depends="clean, compile, test, jar, docs"
description="Testing that all major targets work; useful before a commit"/>
<!-- ================================== -->
<!-- Target used by Gump -->
<!-- ================================== -->
<target name="gump"
depends="clean, compile, test, jar, docs, javadocs"
description="Target used by Gump"/>
<!-- ================================== -->
<!-- Generate all -->
<!-- ================================== -->
<target name="all"
depends="gump"
description="Generate all"/>
<!-- ================================== -->
<!-- Create a cent.jar package -->
<!-- using an already deployed cent -->
<!-- ================================== -->
<target name="jar-cent" depends="-init"
description="Compile java source code">
<antcall target="call-cent">
<param name="cent-name" value="centipede"/>
<param name="cent-target" value="jar-cent"/>
</antcall>
</target>
<!-- =================================================================== -->
<!-- Import Ant-Centipede -init targets - sets up basic build stuff -->
<!-- =================================================================== -->
<!--
This is the target that initializes tasks and properties used
commonly in every other target.
Remember to add depends="-init" to every target, so that this
target is called before any other.
This target is internal; to make it unusable from the commandline,
its name starts with a hyphen. To make it invisible when
using -projecthelp, it lacks a description.
-->
&import-antipede;
</project>

62
layout.xml Normal file
View File

@ -0,0 +1,62 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="tools/antipede/resources/stylesheets/layout.xsl"?>
<layout dir=".">
<library dir="./lib">
<endorsed dir="./lib/endorsed"/>
<core dir="./lib/core"/>
<optional dir="./lib/optional"/>
</library>
<source dir="./src">
<java dir="./src/java"/>
<test dir="./src/testcases"/>
<documentation dir="./src/documentation">
<content dir="./src/documentation/xdocs">
<xdocs dir="./src/documentation/xdocs"/>
</content>
<resources dir="./src/documentation/images">
<images dir="./src/documentation/images"/>
</resources>
</documentation>
<scratchpad dir="./src/scratchpad">
<java dir="./src/scratchpad/src"/>
<library dir="./src/scratchpad/lib"/>
</scratchpad>
<contributions dir="./src/contrib">
<java dir="./src/contrib/src"/>
<library dir="./src/contrib/lib"/>
</contributions>
<examples dir="./src/examples">
<java dir="./src/examples/src"/>
<library dir="./src/examples/lib"/>
</examples>
</source>
<build dir="./build">
<java dir="./build/java"/>
<classes dir="./build/classes"/>
<test dir="./build/testcases"/>
<documentation dir="./build/documentation">
<javadocs dir="./build/docs/javadocs"/>
<test dir="./build/docs/test"/>
</documentation>
<work dir="./build/work"/>
<scratchpad dir="./build/scratchpad">
<java dir="./build/scratchpad/java"/>
<classes dir="./build/classes"/>
<library dir="./build/scratchpad/lib"/>
</scratchpad>
<contributions dir="./build/contrib">
<java dir="./build/contrib/java"/>
<classes dir="./build/classes"/>
<library dir="./build/contrib/lib"/>
</contributions>
<examples dir="./build/examples">
<java dir="./build/examples/java"/>
<classes dir="./build/classes"/>
<library dir="./build/examples/lib"/>
</examples>
</build>
<distributions dir="./dist">
<source dir="./dist/src"/>
<bin dir="./dist/bin"/>
</distributions>
</layout>

123
module.xml Normal file
View File

@ -0,0 +1,123 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="tools/antipede/resources/stylesheets/module.xsl"?>
<?xml-stylesheet type="text/css" href="tools/antipede/resources/stylesheets/module.css"?>
<module name="apache-poi">
<url href="http://jakarta.apache.org/poi/"/>
<info>
<link id="status" href="status.xml">
Status </link>
<link id="properties" href="properties.xml">
properties </link>
<link id="layout" href="layout.xml">
layout </link>
<link id="build" href="build.xml">
Build </link>
<link id="log" href="log.xml">
log </link>
</info>
<cvs repository="jakarta"/>
<mailing-lists>
<mailing-list user="developer"
mail="forrest-dev@xml.apache.org"
subscribe="forrest-dev-subscribe@xml.apache.org"
unsubscribe="forrest-dev-unsubscribe@xml.apache.org"/>
</mailing-lists>
<description>
The POI project consists of APIs for manipulating various file formats
based upon Microsoft's OLE 2 Compound Document format using pure Java.
</description>
<detailed>
A common misconception is that POI writes Excel files. POI is the
name of the project. POI contains several components, one of which,
HSSF, writes Excel files. The following are components of the entire
POI project.POIFS is the oldest and most stable part of the project.
It is our port of the OLE 2 Compound Document Format to pure Java.
It supports both read and write functionality. All of our components
ultimately rely on it by definition. HSSF is our port of the
Microsoft Excel 97(-2002) file format (BIFF8) to pure Java.
It supports read and write capability. HDF is our port of the
Microsoft Word 97 file format to pure Java.
It supports read and write capability. This component is in the early
stages of design. Jump in!
</detailed>
<what>
<goal>just do it</goal>
</what>
<why>
Why not?
</why>
<licence>This software is released under the Apache Public License 1.1.
For detailed legal and licensing issues, please read the LICENSE.* files
in the /legal directory.
</licence>
<credits>
<credit>This software includes software developed by the Krysalis Project
(http://www.krysalis.org/).
</credit>
</credits>
<project name="jakarta-poi">
<version major="1"
minor="5"
fix ="0"
tag="dev"/>
<package>org.apache.poi</package>
<ant target="gump" vm="1.2"/>
<!-- script name="build"/> -->
<!-- Project jars POI *build* strictly depends on -->
<!-- needed for build -->
<depend project="jakarta-ant"/>
<depend project="xml-xerces"/>
<depend project="xml-xalan2"/>
<depend project="xml-cocoon2"/>
<depend project="jtidy"/>
<depend project="junit"/>
<depend project="IzPress"/>
<!-- needed for POI -->
<depend project="commons-logging"/>
<!-- Project jars POI build can use -->
<option project="jakarta-log4j"/>
<!-- Work dirs to be included in classpath -->
<work nested="build/jakarta-poi/classes"/>
<work nested="build/jakarta-poi/testcases"/>
<work nested="tools/tmp/anttasks"/>
<home nested="build/jakarta-poi"/>
<!-- POI jars - the result of the build -->
<jar name="jakarta-poi.jar" id="poi"/>
<jar name="jakarta-poi-scratchpad.jar" id="scratchpad"/>
<jar name="jakarta-poi-contrib.jar" id="contrib"/>
<jar name="jakarta-poi-examples.jar" id="examples"/>
<!-- POI Javadocs - location in the build dirs -->
<javadoc parent="build/jakarta-poi/docs/apidocs"/>
<!-- Getting ready for automatic site updates
<deliver fromdir="build/jakarta-poi/docs"
tosite="jakarta-apache-org"
todir="poi/" />
-->
<nag to="poi-dev@jakarta.apache.org"
from="Sam Ruby &lt;rubys@us.ibm.com&gt;"/>
</project>
</module>

View File

@ -1,87 +0,0 @@
<?xml version="1.0"?>
<project
name="Jakarta POI">
<info
module="jakarta-poi"
version="1.5"
tag="dev"
year="2001-2002"/>
<description>
<short>The POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java.</short>
<detailed>A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several components, one of which, HSSF, writes Excel files. The following are components of the entire POI project.POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to pure Java. It supports both read and write functionality. All of our components ultimately rely on it by definition. HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write capability. HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability. This component is in the early stages of design. Jump in! </detailed>
<where>The home page for the POI project can be found on the web site (http://jakarta.apache.org/poi/). There you also find information on how to download the latest release as well as all the other information you might need regarding this project.</where>
<requirements>The for installing it you need a Java 1.2 or later compatible virtual machine for your operating system.</requirements>
<howto>The documentation available as of the date of this release is included in the "docs/" directory. The documentation sources are in the "src/documentation" directory. Look for the most updated documentation on the web site.</howto>
<licence>For legal and licensing issues, please read the LICENSE.* files in the /legal directory.</licence>
</description>
<module name="jakarta-poi">
<url href="http://jakarta.apache.org/poi/"/>
<description>
Ports of file formats based on Microsoft's OLE 2 Compound Document
Format (tm) to pure Java (tm).
</description>
<cvs repository="jakarta"/>
<project name="jakarta-poi">
<package>org.apache.poi</package>
<ant target="gump"/>
<script name="build"/>
<depend project="jakarta-ant"/>
<depend project="xml-xerces"/>
<depend project="xml-xalan2"/>
<depend project="jtidy"/>
<depend project="junit"/>
<depend project="commons-logging"/>
<option project="jakarta-log4j"/>
<work nested="build/jakarta-poi/classes"/>
<home nested="build/poi"/>
<jar name="jakarta-poi.jar" id="poi"/>
<jar name="jakarta-poi-scratchpad.jar" id="scratchpad"/>
<jar name="jakarta-poi-contrib.jar" id="contrib"/>
<jar name="jakarta-poi-examples.jar" id="examples"/>
<javadoc parent="build/jakarta-poi/docs/apidocs"/>
</project>
</module>
<developers>
<!-- in strict alphabetical order -->
<person name="Andrew C. Oliver" email="acoliver@apache.org" id="ACO" />
<person name="Glen Stampoultzis" email="glens@apache.org" id="GS" />
<person name="Marc Johnson" email="mjohnson@apache.org" id="MJ" />
<person name="Nicola Ken Barozzi" email="nicolaken@apache.org" id="NKB" />
<person name="Rainer Klute" email="rainer.klute@epost.de" id="RK" />
</developers>
<todo>
<actions priority="medium">
<action context="code" assigned-to="NKB">
</action>
</actions>
</todo>
<credits>
<credit>This product includes software developed by the Krysalis Project (http://www.krysalis.org/).</credit>
</credits>
</project>

39
properties.xml Normal file
View File

@ -0,0 +1,39 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="tools/antipede/resources/stylesheets/properties.xsl"?>
<!-- Project properties -->
<properties>
<!-- Properties for core Ant tasks-->
<ant>
<XmlLogger>
<stylesheet uri="./tools/antipede/resources/stylesheets/log.xsl"/>
</XmlLogger>
</ant>
<XmlLogger file="log.xml"/>
<!-- Properties of the build -->
<build>
<!-- What to tell the compiler -->
<compiler emacs="on"
warnings="true"
pedantic="false"
depend="true"
fulldepend="true"
debug="on"
optimize="off"
deprecation="on"
nowarn="off"
type="classic"
vm="1.2"/>
</build>
<forrest>
<!-- available skins:
jakarta-site
scarab-site
xml-apache-site
cocoon-printer -->
<skin name="jakarta-site"/>
</forrest>
</properties>

30
status.xml Normal file
View File

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="tools/antipede/resources/stylesheets/status.xsl"?>
<status>
<developers>
<!-- in strict alphabetical order -->
<person name="Andrew C. Oliver" id="acoliver" email="acoliver@apache.org"/>
<person name="Glen Stampoultzis" id="glens" email="glens@apache.org"/>
<person name="Marc Johnson" id="mjohnson" email="mjohnson@apache.org"/>
<person name="Nicola Ken Barozzi" id="nicolaken" email="nicolaken@apache.org"/>
<person name="Rainer Klute" id="rainer" email="rainer@apache.org"/>
</developers>
<todo>
<actions priority="high">
<action context="code" assigned-to="acoliver">
Do it
</action>
</actions>
</todo>
<changes>
<release version="0.1" date="2002">
<action dev="nicolaken" type="add">
Merged project needed info in project-info.xgump.xml
</action>
</release>
</changes>
</status>

View File

@ -1 +1 @@
anttasks
tmp

View File

@ -1,107 +0,0 @@
#! /bin/sh
if [ -f "$HOME/.antrc" ] ; then
. $HOME/.antrc
fi
# Cygwin support. $cygwin _must_ be set to either true or false.
case "`uname`" in
CYGWIN*) cygwin=true ;;
*) cygwin=false ;;
esac
# 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"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
if [ "$ANT_HOME" = "" ] ; then
# try to find ANT
if [ -d /opt/ant ] ; then
ANT_HOME=/opt/ant
fi
if [ -d ${HOME}/opt/ant ] ; then
ANT_HOME=${HOME}/opt/ant
fi
## resolve links - $0 may be a link to ant's home
PRG=$0
progname=`basename $0`
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"`/..
fi
if [ "$JAVA_HOME" != "" ] ; then
if [ "$JAVACMD" = "" ] ; then
JAVACMD=$JAVA_HOME/bin/java
fi
else
if [ "$JAVACMD" = "" ] ; then
JAVACMD=java
fi
fi
# add in the dependency .jar files
DIRLIBS=${ANT_HOME}/lib/*.jar
for i in ${DIRLIBS}
do
# if the directory is empty, then it will return the input string
# this is stupid, so case for it
if [ "$i" != "${DIRLIBS}" ] ; then
LOCALCLASSPATH=$LOCALCLASSPATH:"$i"
fi
done
if [ "$CLASSPATH" != "" ] ; then
LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH
fi
if [ "$JAVA_HOME" != "" ] ; then
if test -f $JAVA_HOME/lib/tools.jar ; then
LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
fi
if test -f $JAVA_HOME/lib/classes.zip ; then
LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip
fi
else
echo "Warning: JAVA_HOME environment variable is not set."
echo " If build fails because sun.* classes could not be found"
echo " you will need to set the JAVA_HOME environment variable"
echo " to the installation directory of java."
fi
# supply JIKESPATH to Ant as jikes.class.path
if [ "$JIKESPATH" != "" ] ; then
if [ "$ANT_OPTS" != "" ] ; then
ANT_OPTS="$ANT_OPTS -Djikes.class.path=$JIKESPATH"
else
ANT_OPTS=-Djikes.class.path=$JIKESPATH
fi
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
ANT_HOME=`cygpath --path --windows "$ANT_HOME"`
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
fi
$JAVACMD -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" $ANT_OPTS org.apache.tools.ant.Main "$@"

View File

@ -1,97 +0,0 @@
@echo off
if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
if not "%OS%"=="Windows_NT" goto win9xStart
:winNTStart
@setlocal
rem %~dp0 is name of current script under NT
set DEFAULT_ANT_HOME=%~dp0
rem : operator works similar to make : operator
set DEFAULT_ANT_HOME=%DEFAULT_ANT_HOME:\bin\=%
if %ANT_HOME%a==a set ANT_HOME=%DEFAULT_ANT_HOME%
set DEFAULT_ANT_HOME=
rem On NT/2K grab all arguments at once
set ANT_CMD_LINE_ARGS=%*
goto doneStart
:win9xStart
rem Slurp the command line arguments. This loop allows for an unlimited number of
rem agruments (up to the command line limit, anyway).
set ANT_CMD_LINE_ARGS=
:setupArgs
if %1a==a goto doneStart
set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
shift
goto setupArgs
:doneStart
rem This label provides a place for the argument list loop to break out
rem and for NT handling to skip to.
rem find ANT_HOME
if not "%ANT_HOME%"=="" goto checkJava
rem check for ant in Program Files on system drive
if not exist "%SystemDrive%\Program Files\ant" goto checkSystemDrive
set ANT_HOME=%SystemDrive%\Program Files\ant
goto checkJava
:checkSystemDrive
rem check for ant in root directory of system drive
if not exist "%SystemDrive%\ant" goto noAntHome
set ANT_HOME=%SystemDrive%\ant
goto checkJava
:noAntHome
echo ANT_HOME is not set and ant could not be located. Please set ANT_HOME.
goto end
:checkJava
set _JAVACMD=%JAVACMD%
set LOCALCLASSPATH="%CLASSPATH%"
for %%i in ("%ANT_HOME%\lib\*.jar") do call "%ANT_HOME%\bin\lcp.bat" "%%i"
if "%JAVA_HOME%" == "" goto noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java
if exist "%JAVA_HOME%\lib\tools.jar" call "%ANT_HOME%\bin\lcp.bat" "%JAVA_HOME%\lib\tools.jar"
if exist "%JAVA_HOME%\lib\classes.zip" call "%ANT_HOME%\bin\lcp.bat" "%JAVA_HOME%\lib\classes.zip"
goto checkJikes
:noJavaHome
if "%_JAVACMD%" == "" set _JAVACMD=java
echo.
echo Warning: JAVA_HOME environment variable is not set.
echo If build fails because sun.* classes could not be found
echo you will need to set the JAVA_HOME environment variable
echo to the installation directory of java.
echo.
:checkJikes
if not "%JIKESPATH%" == "" goto runAntWithJikes
:runAnt
%_JAVACMD% -classpath %LOCALCLASSPATH% -Dant.home="%ANT_HOME%" %ANT_OPTS% org.apache.tools.ant.Main %ANT_CMD_LINE_ARGS%
goto end
:runAntWithJikes
%_JAVACMD% -classpath %LOCALCLASSPATH% -Dant.home="%ANT_HOME%" -Djikes.class.path=%JIKESPATH% %ANT_OPTS% org.apache.tools.ant.Main %ANT_CMD_LINE_ARGS%
:end
set LOCALCLASSPATH=
set _JAVACMD=
set ANT_CMD_LINE_ARGS=
if not "%OS%"=="Windows_NT" goto mainEnd
:winNTend
@endlocal
:mainEnd
if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"

View File

@ -1,9 +0,0 @@
#! /bin/sh
# Args: DIR command
cd "$1"
CMD="$2"
shift
shift
exec $CMD "$@"

View File

@ -1,20 +0,0 @@
@echo off
# Change drive and directory to %1 (Win9X only for NT/2K use "cd /d")
cd %1
%1\
set ANT_RUN_CMD=%2
shift
shift
set PARAMS=
:loop
if ""%1 == "" goto runCommand
set PARAMS=%PARAMS% %1
shift
goto loop
:runCommand
rem echo %ANT_RUN_CMD% %PARAMS%
%ANT_RUN_CMD% %PARAMS%

View File

@ -1,216 +0,0 @@
#! /usr/bin/env python
#
# Mass string translation for java/xml files (change Wanted re for other files)
#
# Author: Peter Donald <donaldp@apache.org>
#
# Adapted from fixid.py in python distribution under Tools
#
import sys
import re
import string
import os
from stat import *
import getopt
err = sys.stderr.write
dbg = err
out = sys.stdout.write
def usage():
progname = sys.argv[0]
err('Usage: ' + progname + ' [-s file] ... file-or-directory ...\n')
err('\n')
err('-s substfile : add a file of substitutions\n')
err('\n')
err('Each non-empty non-comment line in a substitution file must\n')
err('contain exactly two words separated by a | character.\n')
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'crs:')
except getopt.error, msg:
err('Options error: ' + str(msg) + '\n')
usage()
sys.exit(2)
bad = 0
if not args: # No arguments
usage()
sys.exit(2)
for opt, arg in opts:
if opt == '-s':
addsubst(arg)
initre()
for arg in args:
if os.path.isdir(arg):
if recursedown(arg): bad = 1
elif os.path.islink(arg):
err(arg + ': will not process symbolic links\n')
bad = 1
else:
if fix(arg): bad = 1
sys.exit(bad)
# Change this regular expression to select a different set of files
Wanted = '^[a-zA-Z0-9_\-]+\.(java|xml|xinfo)$'
def wanted(name):
return None <> re.match(Wanted, name)
def recursedown(dirname):
dbg('recursedown(' + `dirname` + ')\n')
bad = 0
try:
names = os.listdir(dirname)
except os.error, msg:
err(dirname + ': cannot list directory: ' + str(msg) + '\n')
return 1
names.sort()
subdirs = []
for name in names:
if name in (os.curdir, os.pardir): continue
fullname = os.path.join(dirname, name)
if os.path.islink(fullname): pass
elif os.path.isdir(fullname):
subdirs.append(fullname)
elif wanted(name):
if fix(fullname): bad = 1
for fullname in subdirs:
if recursedown(fullname): bad = 1
return bad
def fix(filename):
dbg('fix(' + `filename` + ')\n')
# File replacement mode
try:
f = open(filename, 'r')
except IOError, msg:
err(filename + ': cannot open: ' + str(msg) + '\n')
return 1
head, tail = os.path.split(filename)
tempname = os.path.join(head, '@' + tail)
# If we find a match, we rewind the file and start over but
# now copy everything to a temp file.
lineno = 0
g = None
while 1:
line = f.readline()
if not line: break
lineno = lineno + 1
newline = fixline(line)
if newline != line:
if g is None:
try:
g = open(tempname, 'w')
except IOError, msg:
f.close()
err(tempname+': cannot create: '+
str(msg)+'\n')
return 1
f.seek(0)
lineno = 0
out(filename + ':\n')
continue # restart from the beginning
out(`lineno` + '\n')
out('< ' + line)
out('> ' + newline)
if g is not None:
g.write(newline)
# End of file
f.close()
if not g: return 0 # No changes
# Finishing touch -- move files
# First copy the file's mode to the temp file
try:
statbuf = os.stat(filename)
os.chmod(tempname, statbuf[ST_MODE] & 07777)
except os.error, msg:
err(tempname + ': warning: chmod failed (' + str(msg) + ')\n')
# Then make a backup of the original file as filename~
try:
os.rename(filename, filename + '~')
except os.error, msg:
err(filename + ': warning: backup failed (' + str(msg) + ')\n')
# Now move the temp file to the original file
try:
os.rename(tempname, filename)
except os.error, msg:
err(filename + ': rename failed (' + str(msg) + ')\n')
return 1
# Return succes
return 0
def initre():
global SearcherExpr
keys = Dict.keys()
keyCount = len(keys)
i = 0
reStr = ""
while i < len(keys):
if i != 0: reStr = reStr + '|'
reStr = reStr + keys[i]
i = i + 1
SearcherExpr = re.compile( reStr )
def fixline(line):
global Program
## print '-->', `line`
i = 0
while i < len(line):
match = SearcherExpr.search(line, i)
if match == None: break
found = match.group(0)
i = match.start()
n = len(found)
if Dict.has_key(found):
subst = Dict[found]
line = line[:i] + subst + line[i+n:]
n = len(subst)
i = i + n
return line
Dict = {}
NotInComment = {}
def addsubst(substfile):
try:
fp = open(substfile, 'r')
except IOError, msg:
err(substfile + ': cannot read substfile: ' + str(msg) + '\n')
sys.exit(1)
lineno = 0
while 1:
line = fp.readline()
if not line: break
lineno = lineno + 1
try:
i = string.index(line, '#')
except string.index_error:
i = -1 # Happens to delete trailing \n
words = string.split(line[:i],'|')
if not words: continue
if len(words) <> 2:
err(substfile + ':' + `lineno` + ': warning: bad line: ' + line)
continue
[key, value] = words
## print 'Will replace ', key, ' with ', value
Dict[key] = value
fp.close()
main()

View File

@ -1,2 +0,0 @@
set LOCALCLASSPATH=%1;%LOCALCLASSPATH%

View File

@ -1,131 +0,0 @@
#!/usr/bin/perl
#######################################################################
#
# 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
# last modified: 2000-8-24
# author: Steve Loughran steve_l@sourceforge.net
#######################################################################
#
# Assumptions:
#
# - the "java" executable/script is on the command path
# - ANT_HOME has been set
# - target platform uses ":" as classpath separator or perl indicates it is dos/win32
# - target platform uses "/" as directory separator.
#be fussy about variables
use strict;
#platform specifics (disabled)
#use File::Spec::Functions;
#turn warnings on during dev; generates a few spurious uninitialised var access warnings
#use warnings;
#and set $debug to 1 to turn on trace info
my $debug=0;
#######################################################################
#
# 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 "";
#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 and dos. Add extra tests here as needed.
my $s=":";
if(($^O eq "MSWin32") || ($^O eq "dos"))
{
$s=";";
}
#build up standard classpath
my $localpath=$ENV{CLASSPATH};
if ($localpath eq "")
{
print "warning: no initial classpath\n" if ($debug);
$localpath="";
}
#add jar files. I am sure there is a perl one liner to do this.
my $jarpattern="$HOME/lib/*.jar";
my @jarfiles =glob($jarpattern);
print "jarfiles=@jarfiles\n" if ($debug);
my $jar;
foreach $jar (@jarfiles )
{
$localpath.="$s$jar";
}
#if Java home is defined, look for tools.jar & classes.zip and add to classpath
my $JAVA_HOME = $ENV{JAVA_HOME};
if ($JAVA_HOME ne "")
{
my $tools="$JAVA_HOME/lib/tools.jar";
if (-e "$tools")
{
$localpath .= "$s$tools";
}
my $classes="$JAVA_HOME/lib/classes.zip";
if (-e $classes)
{
$localpath .= "$s$classes";
}
}
else
{
print "\n\nWarning: JAVA_HOME environment variable is not set.\n".
"If the build fails because sun.* classes could not be found\n".
"you will need to set the JAVA_HOME environment variable\n".
"to the installation directory of java\n";
}
#jikes
my @ANT_OPTS=split $ENV{ANT_OPTS};
if($ENV{JIKESPATH} ne "")
{
push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}";
}
#construct arguments to java
my @ARGS;
push @ARGS, "-classpath", "$localpath", "-Dant.home=$HOME";
push @ARGS, @ANT_OPTS;
push @ARGS, "org.apache.tools.ant.Main";
push @ARGS, @ARGV;
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;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,159 +0,0 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
import java.io.*;
import java.util.*;
import java.util.zip.*;
import org.apache.tools.ant.*;
import org.apache.tools.ant.taskdefs.*;
import org.apache.tools.ant.types.*;
/**
* Will set the given property if the requested class is available in the
* specified classpath. The found class is not loaded!
* This class is heavily based on the available task in the ant package:
* @author Stefano Mazzocchi <a href="mailto:stefano@apache.org">stefano@apache.org</a>
*
* This task searches only in the defined path but not in the parents path
* unless explicitly overridden by the value of ${build.sysclasspath}
* like the original available task does.
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
* @version CVS $Revision$ $Date$
*/
public class ClassAvailableTask extends Task {
/**
* A hashtable of zip files opened by the classloader
*/
private Hashtable zipFiles = new Hashtable();
private String property;
private String classname;
private Path classpath;
private String value = "true";
public void setClasspath(Path classpath) {
createClasspath().append(classpath);
}
public Path createClasspath() {
if (this.classpath == null) {
this.classpath = new Path(this.project);
}
return this.classpath.createPath();
}
public void setClasspathRef(Reference r) {
createClasspath().setRefid(r);
}
public void setProperty(String property) {
this.property = property;
}
public void setValue(String value) {
this.value = value;
}
public void setClassname(String classname) {
if (!"".equals(classname)) {
this.classname = classname;
}
}
public void execute() throws BuildException {
if (property == null) {
throw new BuildException("property attribute is required", location);
}
if (eval()) {
this.project.setProperty(property, value);
}
}
public boolean eval() throws BuildException {
if (classname == null) {
throw new BuildException("At least one of (classname|file|resource) is required", location);
}
if (classpath != null) {
classpath.setProject(project);
classpath = classpath.concatSystemClasspath("ignore");
}
if (!findClassInComponents(classname)) {
log("Unable to load class " + classname + " to set property " + property, Project.MSG_VERBOSE);
return false;
}
return true;
}
/**
* Get an inputstream to a given resource in the given file which may
* either be a directory or a zip file.
*
* @param file the file (directory or jar) in which to search for the resource.
* @param resourceName the name of the resource for which a stream is required.
*
* @return a stream to the required resource or null if the resource cannot be
* found in the given file object
*/
private boolean contains(File file, String resourceName) {
try {
if (!file.exists()) {
return false;
}
if (file.isDirectory()) {
File resource = new File(file, resourceName);
if (resource.exists()) {
return true;
}
}
else {
// is the zip file in the cache
ZipFile zipFile = (ZipFile)zipFiles.get(file);
if (zipFile == null) {
zipFile = new ZipFile(file);
zipFiles.put(file, zipFile);
}
ZipEntry entry = zipFile.getEntry(resourceName);
if (entry != null) {
return true;
}
}
}
catch (Exception e) {
log("Ignoring Exception " + e.getClass().getName() + ": " + e.getMessage() +
" reading resource " + resourceName + " from " + file, Project.MSG_VERBOSE);
}
return false;
}
/**
* Find a class on the given classpath.
*/
private boolean findClassInComponents(String name) {
// we need to search the components of the path to see if we can find the
// class we want.
final String classname = name.replace('.', '/') + ".class";
final String[] list = classpath.list();
boolean found = false;
int i = 0;
while (i < list.length && found == false) {
final File pathComponent = (File)project.resolveFile(list[i]);
found = this.contains(pathComponent, classname);
i++;
}
return found;
}
}

View File

@ -1,279 +0,0 @@
/*****************************************************************************
* Copyright (C) The Krysalis project. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Krysalis Patchy *
* Software License version 1.1_01, a copy of which has been included *
* at the bottom of this file. *
*****************************************************************************/
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.Writer;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.tidy.Tidy;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Property;
/**
* Task to ask property values to the user. Uses current value as default.
*
* @author <a href="mailto:barozzi@nicolaken.com">Nicola Ken Barozzi</a>
* @created 14 January 2002
*/
public class JTidyTask
extends org.apache.tools.ant.Task
{
private String src;
private String dest;
private String log;
private Tidy tidy;
private String warn = "false";
private String summary = "false";
PrintWriter pw;
/**
* Constructor.
*/
public JTidyTask()
{
super();
}
/**
* Initializes the task.
*/
public void init()
{
super.init();
// Setup an instance of Tidy.
tidy = new Tidy();
tidy.setXmlOut(true);
tidy.setXHTML(true);
tidy.setDropFontTags(true);
tidy.setLiteralAttribs(true);
tidy.setMakeClean(true);
tidy.setShowWarnings(Boolean.getBoolean(warn));
tidy.setQuiet(!Boolean.getBoolean(summary));
}
/**
* Run the task.
* @exception org.apache.tools.ant.BuildException The exception raised during task execution.
*/
public void execute()
throws org.apache.tools.ant.BuildException
{
try
{
PrintWriter pw = new PrintWriter(new FileWriter(log));
tidy.setErrout(pw);
// Extract the document using JTidy and stream it.
BufferedInputStream in =
new BufferedInputStream(new FileInputStream(src));
// FileOutputStream out = new FileOutputStream(dest);
PrintWriter out =
new PrintWriter(new FileWriter(dest));
// using null as output to get dom so to remove duplicate attributes
org.w3c.dom.Document domDoc = tidy.parseDOM(in, null);
domDoc.normalize();
stripDuplicateAttributes(domDoc, null);
org.apache.xml.serialize.OutputFormat format =
new org.apache.xml.serialize.OutputFormat();
format.setIndenting(true);
format.setEncoding("ISO-8859-1");
format.setPreserveSpace(true);
format.setLineSeparator("\n");
org.apache.xml.serialize.XMLSerializer serializer =
new org.apache.xml.serialize.XMLSerializer(out, format);
serializer.serialize(domDoc);
out.flush();
out.close();
in.close();
pw.flush();
pw.close();
}
catch (IOException ioe)
{
throw new BuildException(ioe);
}
}
public void setSrc(String src)
{
this.src = src;
}
public void setDest(String dest)
{
this.dest = dest;
}
public void setLog(String log)
{
this.log = log;
}
public void setWarn(String warn)
{
this.warn = warn;
}
public void setSummary(String summary)
{
this.summary = summary;
}
// using parent because jtidy dom is bugged, cannot get parent or delete child
public static void stripDuplicateAttributes(Node node, Node parent)
{
// The output depends on the type of the node
switch (node.getNodeType())
{
case Node.DOCUMENT_NODE :
{
Document doc = ( Document ) node;
Node child = doc.getFirstChild();
while (child != null)
{
stripDuplicateAttributes(child, node);
child = child.getNextSibling();
}
break;
}
case Node.ELEMENT_NODE :
{
Element elt = ( Element ) node;
NamedNodeMap attrs = elt.getAttributes();
ArrayList nodesToRemove = new ArrayList();
int nodesToRemoveNum = 0;
for (int i = 0; i < attrs.getLength(); i++)
{
Node a = attrs.item(i);
for (int j = 0; j < attrs.getLength(); j++)
{
Node b = attrs.item(j);
// if there are two attributes with same name
if ((i != j)
&& (a.getNodeName().equals(b.getNodeName())))
{
nodesToRemove.add(b);
nodesToRemoveNum++;
}
}
}
for (int i = 0; i < nodesToRemoveNum; i++)
{
org.w3c.dom.Attr nodeToDelete =
( org.w3c.dom.Attr ) nodesToRemove.get(i);
org.w3c.dom.Element nodeToDeleteParent =
( org.w3c.dom
.Element ) node; // nodeToDelete.getParentNode();
nodeToDeleteParent.removeAttributeNode(nodeToDelete);
}
nodesToRemove.clear();
Node child = elt.getFirstChild();
while (child != null)
{
stripDuplicateAttributes(child, node);
child = child.getNextSibling();
}
break;
}
default :
// do nothing
break;
}
}
}
/*
The Krysalis Patchy Software License, Version 1.1_01
Copyright (c) 2002 Nicola Ken Barozzi. All rights reserved.
This Licence is compatible with the BSD licence as described and
approved by http://www.opensource.org/, and is based on the
Apache Software Licence Version 1.1.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. The end-user documentation included with the redistribution,
if any, must include the following acknowledgment:
"This product includes software developed for project
Krysalis (http://www.krysalis.org/)."
Alternately, this acknowledgment may appear in the software itself,
if and wherever such third-party acknowledgments normally appear.
4. The names "Krysalis" and "Nicola Ken Barozzi" and
"Krysalis Centipede" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact krysalis@nicolaken.org.
5. Products derived from this software may not be called "Krysalis",
"Krysalis Centipede", nor may "Krysalis" appear in their name,
without prior written permission of Nicola Ken Barozzi.
6. This software may contain voluntary contributions made by many
individuals, who decided to donate the code to this project in
respect of this licence.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE KRYSALIS PROJECT OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
====================================================================*/

View File

@ -1,91 +0,0 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import org.apache.tools.ant.taskdefs.Property;
/**
* Task to ask property values to the user. Uses current value as default.
*
* @author <a href="mailto:barozzi@nicolaken.com">Nicola Ken Barozzi</a>
* @created 14 January 2002
* @version CVS $Revision$ $Date$
*/
public class UserInputTask extends org.apache.tools.ant.Task {
private String question;
private String name;
private String value;
/**
* Constructor.
*/
public UserInputTask() {
super();
}
/**
* Initializes the task.
*/
public void init() {
super.init();
question = "?";
}
/**
* Run the task.
* @exception org.apache.tools.ant.BuildException The exception raised during task execution.
*/
public void execute() throws org.apache.tools.ant.BuildException {
value = project.getProperty(name);
String defaultvalue = value;
//if the property exists
if (value != null) {
System.out.println("\n"+question + " ["+value + "] ");
BufferedReader reader = new BufferedReader(new InputStreamReader (System.in));
try
{
value = reader.readLine();
}
catch (IOException e)
{
value = defaultvalue;
}
if (!value.equals("")) {
project.setProperty(name, value);
} else {
project.setProperty(name, defaultvalue);
}
}
}
/**
* Sets the prompt text that will be presented to the user.
* @param prompt String
*/
public void addText(String question) {
this.question=question;
}
public void setQuestion(String question) {
this.question = question;
}
public void setName(String name) {
this.name = name;
}
}

View File

@ -1,226 +0,0 @@
/*****************************************************************************
* Copyright (C) The Krysalis project. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Krysalis Patchy *
* Software License version 1.1_01, a copy of which has been included *
* at the bottom of this file. *
*****************************************************************************/
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.Writer;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Property;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.Property;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.ProjectHelper;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
/**
* Task get property values from a valid xml file.
* Example:
* <root-tag myattr="true">
* <inner-tag>Text</inner-tag>
* <2><3><4>false</4></3></2>
* </root-tag>
*
* xml.root-tag.myattr=true
* xml.root-tag.inner-tag=Text
* xml.root-tag.2.3.4=false
*
* @author <a href="mailto:barozzi@nicolaken.com">Nicola Ken Barozzi</a>
* @created 14 January 2002
*/
public class XmlPropertyTask extends org.apache.tools.ant.Task
{
private String src;
private org.w3c.dom.Document document;
/**
* Constructor.
*/
public XmlPropertyTask()
{
super();
}
/**
* Initializes the task.
*/
public void init()
{
super.init();
}
/**
* Run the task.
* @exception org.apache.tools.ant.BuildException The exception raised during task execution.
*/
public void execute()
throws org.apache.tools.ant.BuildException
{
BufferedInputStream configurationStream = null;
try
{
configurationStream =
new BufferedInputStream(new FileInputStream(src));
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(false);
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse( configurationStream );
addNodeRecursively(document.getDocumentElement(),"xml");
} catch (SAXException sxe) {
// Error generated during parsing
Exception x = sxe;
if (sxe.getException() != null)
x = sxe.getException();
throw new BuildException(x);
} catch (ParserConfigurationException pce) {
// Parser with specified options can't be built
throw new BuildException(pce);
} catch (IOException ioe) {
// I/O error
throw new BuildException(ioe);
}
finally
{
if(configurationStream!=null){
try{configurationStream.close();}catch(Exception e){}}
}
}
void addNodeRecursively(org.w3c.dom.Node node, String text) {
if (node.hasAttributes()) {
org.w3c.dom.NamedNodeMap nodeAttributes = node.getAttributes();
for (int i = 0; i < nodeAttributes.getLength(); i++) {
Node attributeNode = nodeAttributes.item(i);
String attributeName = text+"."+node.getNodeName()+"."+attributeNode.getNodeName();
String attributeValue = attributeNode.getNodeValue();
log(attributeName+":"+attributeValue, Project.MSG_VERBOSE);
project.setUserProperty(attributeName,attributeValue);
}
}
if(node.getNodeType()==Node.TEXT_NODE){
String nodeText = node.getNodeValue();
if(nodeText.trim().length()!=0)
{
log(text+":"+nodeText, Project.MSG_VERBOSE);
project.setUserProperty(text,nodeText);
}
}
if (node.hasChildNodes()) {
text+=("."+node.getNodeName());
org.w3c.dom.NodeList nodeChildren = node.getChildNodes();
for (int i = 0; i < nodeChildren.getLength(); i++) {
addNodeRecursively(nodeChildren.item(i), text);
}
}
}
public void setFile(String src)
{
this.src = src;
}
}
/*
The Krysalis Patchy Software License, Version 1.1_01
Copyright (c) 2002 Nicola Ken Barozzi. All rights reserved.
This Licence is compatible with the BSD licence as described and
approved by http://www.opensource.org/, and is based on the
Apache Software Licence Version 1.1.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. The end-user documentation included with the redistribution,
if any, must include the following acknowledgment:
"This product includes software developed for project
Krysalis (http://www.krysalis.org/)."
Alternately, this acknowledgment may appear in the software itself,
if and wherever such third-party acknowledgments normally appear.
4. The names "Krysalis" and "Nicola Ken Barozzi" and
"Krysalis Centipede" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact krysalis@nicolaken.org.
5. Products derived from this software may not be called "Krysalis",
"Krysalis Centipede", nor may "Krysalis" appear in their name,
without prior written permission of Nicola Ken Barozzi.
6. This software may contain voluntary contributions made by many
individuals, who decided to donate the code to this project in
respect of this licence.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE KRYSALIS PROJECT OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
====================================================================*/

View File

@ -1,18 +0,0 @@
- build distributions
- sign distributions
- Generate announcements and HEADER.html
- upload distributions to correct dir
- tag CVS
- generate www pages and upload
- bump release ID
- send announcements to announcement@apache.org, announcements@xml.apache.org, announcements@jakarta.apache.org
- news to newsgroups: comp.lang.java.softwaretools
- post stories on
*) jakarta news page
*) theserverside.com
*) freshmeat.net
*) www.javaworld.com
*) www.javalobby.com
*) www.jguru.com
*) www.slashdot.org
(and follow them up)

View File

@ -1,89 +0,0 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="changes">
<xsl:variable name="version" select="@version"/>
<xsl:apply-templates select="document(@file,/)/changes/release[attribute::version=string($version)]"/>
</xsl:template>
<xsl:template match="announcement">
<style>
body { background-color: #FFFFFF }
p { font-size: 10pt; font-family: Helvetica, Arial, sans-serif }
li,ul { font-size: 10pt; font-family: Helvetica, Arial, sans-serif }
div { font-size: 10pt; font-family: Helvetica, Arial, sans-serif; font-style:italic }
h1 { font-size: 14pt; font-family: Helvetica, Arial, sans-serif; font-weight: bold }
h2 { font-size: 12pt; font-family: Helvetica, Arial, sans-serif; font-weight: bold }
h3 { font-size: 10pt; font-family: Helvetica, Arial, sans-serif; font-weight: bold }
A:link { color: #0000A0 } /* unvisited link */
A:visited { color: #A00000 } /* visited links */
A:active { color: #00A000 } /* active links */
</style>
<a name="sig"><h2>PGP Signatures</h2></a>
<p>Many of the distribution kits have been digitally signed (using
PGP). If so, there will be an accompanying
<samp><em>distribution</em>.asc</samp> file in the same directory as
the distribution. The PGP keys can be found in the distribution
directory at &lt;<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/KEYS">
<samp>http://jakarta.apache.org/builds/jakarta-avalon/release/KEYS</samp></a>&gt;.</p>
<xsl:variable name="filename"><xsl:value-of
select="project/downloads/@name"/>-<xsl:value-of
select="project/changes/@version"/>-bin.tar.gz</xsl:variable>
<pre>Always test available signatures, <i>e.g.</i>,
&gt; pgpk -a KEYS
&gt; pgpv <xsl:value-of select="$filename"/>.asc
<i>or</i>,
&gt; pgp -ka KEYS
&gt; pgp <xsl:value-of select="$filename"/>.asc
<i>or</i>,
&gt; gpg --import KEYS
&gt; gpg --verify <xsl:value-of select="$filename"/>.asc
</pre>
<xsl:for-each select="project">
<xsl:if test="downloads">
<h2>About <xsl:value-of select="title"/></h2>
<xsl:apply-templates select="."/>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="project">
<p>For more information about <xsl:value-of select="title"/>, please go to
<a><xsl:attribute name="href"><xsl:value-of select="@site"/></xsl:attribute>
<xsl:value-of select="@site"/></a>.</p>
<!-- print out ChangeLog if present -->
<xsl:if test="changes">
<h3>ChangeLog for <xsl:value-of select="title"/></h3>
<xsl:apply-templates select="changes"/>
</xsl:if>
</xsl:template>
<xsl:template match="ulink">
<a href="{@uri}"><xsl:value-of select="."/></a>
</xsl:template>
<xsl:template match="release">
<ul>
<xsl:for-each select="action">
<li>
<xsl:value-of select="normalize-space(.)"/>
<xsl:if test="@dev">
<xsl:text>[</xsl:text><xsl:value-of select="@dev"/><xsl:text>]</xsl:text>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,174 +0,0 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no"/>
<xsl:template match="changes">
<xsl:variable name="version" select="@version"/>
<xsl:apply-templates select="document(@file,/)/changes/release[attribute::version=string($version)]"/>
</xsl:template>
<xsl:template name="print-title">
<xsl:param name="title"/>
<xsl:variable name="text" select="normalize-space($title)"/>
<xsl:value-of select="$text"/><xsl:text>
</xsl:text>
<xsl:call-template name="line">
<xsl:with-param name="len" select="string-length($text)"/>
</xsl:call-template>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="announcement">
<text>
<xsl:call-template name="print-title">
<xsl:with-param name="title"><xsl:value-of select="title"/> Released</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="word-wrap">
<xsl:with-param name="text" select="normalize-space(abstract)"/>
<xsl:with-param name="count" select="0"/>
</xsl:call-template>
<xsl:text>
</xsl:text>
<xsl:for-each select="project">
<xsl:call-template name="print-title">
<xsl:with-param name="title">About <xsl:value-of select="title"/></xsl:with-param>
</xsl:call-template>
<xsl:apply-templates select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</text>
</xsl:template>
<xsl:template match="project">
<xsl:choose>
<xsl:when test="description/para">
<xsl:for-each select="description/para">
<xsl:call-template name="word-wrap">
<xsl:with-param name="text">
<xsl:apply-templates select="."/>
</xsl:with-param>
<xsl:with-param name="count" select="0"/>
</xsl:call-template>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="word-wrap">
<xsl:with-param name="text">
<xsl:apply-templates select="description"/>
</xsl:with-param>
<xsl:with-param name="count" select="0"/>
</xsl:call-template>
<xsl:text>
</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>
For more information about </xsl:text>
<xsl:value-of select="title"/>
<xsl:text>, please go to
</xsl:text>
<xsl:value-of select="@site"/>
<!-- print out ChangeLog if present -->
<xsl:if test="changes">
<xsl:text>
ChangeLog for </xsl:text>
<xsl:value-of select="title"/>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="changes"/>
</xsl:if>
<!-- print out Downloads if present -->
<xsl:if test="downloads">
<xsl:text>
Downloads for </xsl:text><xsl:value-of select="title"/> available at
<xsl:value-of select="downloads/@base"/>/latest
</xsl:if>
</xsl:template>
<xsl:template match="para">
<xsl:apply-templates/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="ulink">
<xsl:value-of select="."/>
<xsl:text> (</xsl:text>
<xsl:value-of select="@uri"/>
<xsl:text>)</xsl:text>
</xsl:template>
<xsl:template match="release">
<xsl:for-each select="action">
<xsl:text>*) </xsl:text>
<xsl:call-template name="word-wrap">
<xsl:with-param name="text" select="."/>
<xsl:with-param name="count" select="0"/>
</xsl:call-template><xsl:text> </xsl:text>
<xsl:if test="@dev">
<xsl:text>[</xsl:text><xsl:value-of select="@dev"/><xsl:text>]</xsl:text>
</xsl:if>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template name="line">
<xsl:param name="len"/>
<xsl:if test="number($len) > 0">
<xsl:text>-</xsl:text>
<xsl:call-template name="line">
<xsl:with-param name="len" select="number($len)-1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="word-wrap">
<xsl:param name="text"/>
<xsl:param name="count"/>
<xsl:param name="mytext" select="normalize-space($text)"/>
<xsl:choose>
<xsl:when test="$count > 40">
<xsl:text>
</xsl:text>
<xsl:call-template name="word-wrap">
<xsl:with-param name="text" select="$mytext"/>
<xsl:with-param name="count" select="0"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="not(contains($mytext,' '))">
<xsl:text> </xsl:text>
<xsl:value-of select="$mytext"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="word" select="substring-before($mytext,' ')"/>
<xsl:variable name="remainder" select="substring-after($mytext,' ')"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$word"/>
<xsl:if test="string-length($word) > 0">
<xsl:call-template name="word-wrap">
<xsl:with-param name="text" select="$remainder"/>
<xsl:with-param name="count" select="$count + string-length($word)"/>
</xsl:call-template>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,36 +0,0 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:html="http://www.w3.org/1999/xhtml">
<!-- @author <a href="mailto:barozzi@nicolaken.com">Nicola Ken Barozzi</a> -->
<xsl:template match="html:body">
<patch-queue>
<xsl:apply-templates/>
</patch-queue>
</xsl:template>
<xsl:template match="html:tr">
<xsl:if test="contains(@class,'th')">
<bug>
<xsl:attribute name="id"><xsl:value-of select="html:td[1]/html:a"/></xsl:attribute>
<xsl:attribute name="url">http://nagoya.apache.org/bugzilla/<xsl:value-of select="html:td[1]/html:a/@href"/></xsl:attribute>
<xsl:attribute name="severity"><xsl:value-of select="html:td[2]"/></xsl:attribute>
<xsl:attribute name="priority"><xsl:value-of select="html:td[3]"/></xsl:attribute>
<xsl:attribute name="platform"><xsl:value-of select="html:td[4]"/></xsl:attribute>
<xsl:attribute name="owner"><xsl:value-of select="html:td[5]"/></xsl:attribute>
<xsl:attribute name="status"><xsl:value-of select="html:td[6]"/></xsl:attribute>
<xsl:attribute name="resolution"><xsl:value-of select="html:td[7]"/></xsl:attribute>
<xsl:attribute name="summary"><xsl:value-of select="html:td[8]"/></xsl:attribute>
</bug>
</xsl:if>
</xsl:template>
<xsl:template match="@*|*|text()|processing-instruction()">
<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,95 +0,0 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes"/>
<xsl:param name="module">module</xsl:param>
<xsl:param name="cvsweb">cvsweb</xsl:param>
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../../html/javadoc.css" title="Style"></link>
</head>
<body bgcolor="white">
<h1>Change Log</h1>
<xsl:apply-templates select="changelog/entry">
<xsl:sort order="descending" select="date" />
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="entry">
<h2>
<xsl:call-template name="escape-return">
<xsl:with-param name="string"><xsl:value-of select="msg"/></xsl:with-param>
</xsl:call-template>
</h2>
<p>
<b>
<xsl:apply-templates select="date"/>
by <xsl:value-of disable-output-escaping="yes" select="author"/>
</b>
</p>
<p>
<xsl:apply-templates select="file"/>
</p>
<hr/>
</xsl:template>
<xsl:template match="date">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="weekday">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="time">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="file">
<br/><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" />&amp;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" />&amp;r2=<xsl:value-of select="prevrevision"/>&amp;diff_format=h</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="name" />
</a>
</xsl:template>
<xsl:template name="escape-return">
<xsl:param name="string"/>
<!-- must be a better way to define a carrige return -->
<xsl:variable name="return"><xsl:text>
</xsl:text>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($string, $return)">
<xsl:value-of select="substring-before($string, $return)"/><br/>
<xsl:call-template name="escape-return">
<xsl:with-param name="string">
<xsl:value-of select="substring-after($string, $return)"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,70 +0,0 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- @author <a href="mailto:barozzi@nicolaken.com">Nicola Ken Barozzi</a> -->
<xsl:output method="text"/>
<xsl:template match="/">-----------------------------------------------------------
This mail is generated automatically using
Jakarta Ant. Contents are automatically
downloaded from Apache's Bugzilla.
-----------------------------------------------------------
Please do not reply to this mail.
-----------------------------------------------------------
***********************************************************
__ __ __ __ __ __
(___ (__) (___ (__) (__) | )
__ __ _|_ __ |__ ___ __
|__) (__( |_, (___ | ) (__/_ __)
|
***********************************************************
***************** patches in queue: <xsl:value-of select="count(patch-queue/bug)"/> ********************
***********************************************************
<xsl:for-each select="patch-queue/bug">
-----------------------------------------------------------
<xsl:value-of select="@id"/>:<xsl:value-of select="@summary"/>
-----------------------------------------------------------
<xsl:value-of select="@url"/>
REVIEWER: <xsl:value-of select="@owner"/>
RESOLUTION: <xsl:value-of select="@resolution"/>
STATUS: <xsl:value-of select="@status"/>
</xsl:for-each>
*************************that's it!************************
------------------------patch HOWTO------------------------
Send patches to http://nagoya.apache.org/bugzilla/
specifying [PATCH] in the summary.
Bugzilla sends a mail automatically to this list.
Reviewers will mark it FIXED there when applied.
Patches not sent to Bugzilla will not be reviewed.
-----------------------------------------------------------
This file is generated and updated automatically at least
once a week, and the data is taken from Bugzilla.
If you don't find the patch you submitted to bugzilla
after one week, please notify cocoon-dev@xml.apache.org
for assistance.
-----------------------------------------------------------
There is usually a HEAD branch and a previous-version
branch that are maintained. Where will the patch go?
1. If it is a bug fix it should go to both branches
2. If something is totally new it goes into HEAD scratchpad.
3. Something in between, but does not break backward
compatibility _may_ go into both (and may not)
4. For everything else, a vote is required so
first it may go into HEAD, and then be VOTEd in order
to sync this into branch.
Please note that structural changes have to be VOTEd first.
</xsl:template>
<xsl:template match="@*|*|text()|processing-instruction()">
<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,109 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- @author <a href="mailto:barozzi@nicolaken.com">Nicola Ken Barozzi</a> -->
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">
<![CDATA[
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN"
"dtd/document-v10.dtd">
]]>
</xsl:text>
<document>
<header>
<title>Patch Queue</title>
<authors>
<person name="Robin Green" email="greenrd@hotmail.com"/>
<person name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
This is an <strong>informal</strong> list - in chronological order -
of some of the noteworthy patches that have been posted
to the <link href="mailto:cocoon-dev@xml.apache.org">cocoon-dev</link> mailing list.
These patches are not (yet) part of the Apache Cocoon project, but need reviewing for possible
inclusion. This system was instituted because, due to the large volume of mail and
the lack of time of the committers, some patches tended to get forgotten about. This
queue does not guarantee that any patch will be reviewed within a reasonable time frame,
but it does at least make them easier to find!
</p>
<p><strong>Reviewers wanted!</strong> - If you have time to review and/or test these patches,
we would be grateful for your time. Please post comments to the cocoon-dev mailing lists.
</p>
<p>
Before submitting a patch, please read the page on <connect href="contrib.xml">Third-Party
Contributions</connect>. The preferred submission method for patches is:
</p>
<ul>
<li>Post to cocoon-dev@xml.apache.org</li>
<li>Describe the patch, the reason for it and (if necessary) why this is important.</li>
<li>Generate the patch in <code>diff -u</code> format from CVS</li>
<li>Also generate a documentation patch or new file, if this is something that should be documented.
</li>
<li>Post as an attachment rather than inline (unless it is trivially small).</li>
</ul>
<p>Following the above guidelines will facilitate your patch being reviewed
and applied efficiently.</p>
</s1>
<s1 title="Patch Queue">
<p><strong> [Under Construction] </strong> Archive links will be added later.
<strong>Please do not bother the patch submitters/authors</strong> without first reading the
relevant post(s) in the <connect href="mail-archives.xml">mailing list archives.</connect>
</p>
<p>Vapourware will not be listed.</p>
<table>
<tr>
<th>id<!--and Link--></th>
<th>Summary</th>
<th>Reviewer</th>
<th>Resolution</th>
<th>Status</th>
</tr>
<xsl:for-each select="patch-queue/bug">
<tr>
<th>
<connect>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@id"/>
</connect>
</th>
<th><xsl:value-of select="@summary"/></th>
<th><xsl:value-of select="@owner"/></th>
<th><xsl:value-of select="@resolution"/></th>
<th><xsl:value-of select="@status"/></th>
</tr>
</xsl:for-each>
</table>
<p>See also additional list of patches to be added in <connect href="todo.xml">To Do</connect>.
</p>
</s1>
</body>
</document>
</xsl:template>
<xsl:template match="@*|*|text()|processing-instruction()">
<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,160 +0,0 @@
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
<target name="prepare" depends="init">
<mkdir dir="${build.dir}"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the source code -->
<!-- =================================================================== -->
<target name="prepare-src" depends="prepare">
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<copy todir="${build.src}" filtering="on">
<fileset dir="${java.dir}"/>
</copy>
<mkdir dir="${build.scratchpad.src}"/>
<mkdir dir="${build.scratchpad.dest}"/>
<copy todir="${build.scratchpad.src}" filtering="on">
<fileset dir="${scratchpad.src}"/>
</copy>
<mkdir dir="${build.examples.src}"/>
<mkdir dir="${build.examples.dest}"/>
<copy todir="${build.examples.src}" filtering="on">
<fileset dir="${examples.src}"/>
</copy>
<mkdir dir="${build.contrib.src}"/>
<mkdir dir="${build.contrib.dest}"/>
<copy todir="${build.contrib.src}" filtering="on">
<fileset dir="${contrib.src}"/>
</copy>
</target>
<!-- =================================================================== -->
<!-- Compiles the source directory -->
<!-- =================================================================== -->
<target name="compile" depends="prepare-src"
description="Compiles the source code">
<copy todir="${build.dest}">
<fileset dir="${build.src}">
<include name="**"/>
</fileset>
</copy>
<echo message="Compiling with Java ${ant.java.version}, debug ${debug}, optimize ${optimize}, deprecation ${deprecation}"/>
<javac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}"
target="${target.vm}"
nowarn="${nowarn}">
<classpath refid="classpath"/>
</javac>
<copy todir="${build.scratchpad.dest}">
<fileset dir="${build.scratchpad.src}">
<include name="**"/>
</fileset>
</copy>
<javac srcdir="${build.scratchpad.src}"
destdir="${build.scratchpad.dest}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}"
target="${target.vm}">
<classpath refid="scratchpad.classpath"/>
</javac>
<copy todir="${build.examples.dest}">
<fileset dir="${build.examples.src}">
<include name="**"/>
<!--
<include name="**/Manifest.mf"/>
<include name="**/*.xsl"/>
<include name="**/*.roles"/>
<include name="**/*.xconf"/>
<include name="META-INF/**"/>
-->
</fileset>
</copy>
<javac srcdir="${build.examples.src}"
destdir="${build.examples.dest}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}"
target="${target.vm}">
<classpath refid="examples.classpath"/>
</javac>
<copy todir="${build.contrib.dest}">
<fileset dir="${build.contrib.src}">
<include name="**"/>
</fileset>
</copy>
<javac srcdir="${build.contrib.src}"
destdir="${build.contrib.dest}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}"
target="${target.vm}">
<classpath refid="contrib.classpath"/>
</javac>
</target>
<!-- =================================================================== -->
<!-- Creates the jar file -->
<!-- =================================================================== -->
<target name="all" depends="package" description="Default target"/>
<target name="package" depends="compile" description="Generates the jar package">
<jar jarfile="${build.dir}/${name}.jar" manifest="${build.src}/Manifest.mf">
<fileset dir="${build.dest}">
<include name="**"/>
<include name="META-INF/**"/>
</fileset>
</jar>
<jar jarfile="${build.dir}/${scratchpad.name}.jar">
<fileset dir="${build.scratchpad.dest}">
<include name="**"/>
</fileset>
</jar>
<jar jarfile="${build.dir}/${examples.name}.jar">
<fileset dir="${build.examples.dest}">
<include name="**"/>
</fileset>
</jar>
<jar jarfile="${build.dir}/${contrib.name}.jar">
<fileset dir="${build.contrib.dest}">
<include name="**"/>
</fileset>
</jar>
</target>
<!-- =================================================================== -->
<!-- Copies the tools.jar to javac.jar in web-inf/lib -->
<!-- =================================================================== -->
<target name="prepare-tools-lib" depends="package" if="tools.jar.present">
<!-- NOTE: java.home is normally set by the JVM to the /jre directory -->
<copy file="${tools.jar}" tofile="${build.war}/WEB-INF/lib/javac.jar"/>
</target>
<!-- =================================================================== -->
<!-- Clean targets -->
<!-- =================================================================== -->
<target name="clean" depends="init" description="* Cleans the build directories">
<delete dir="${build.dir}"/>
</target>

View File

@ -1,242 +0,0 @@
<!-- =================================================================== -->
<!-- Creates the source distribution -->
<!-- =================================================================== -->
<target name="dist-src" depends="docs, javadocs, test"
description="Prepares the source distribution">
<!-- Simply copy all and add the html docs -->
<mkdir dir="${dist.root}"/>
<mkdir dir="${dist.src.dir}"/>
<mkdir dir="${dist.src.dir}/lib"/>
<mkdir dir="${dist.src.dir}/lib/core"/>
<mkdir dir="${dist.src.dir}/lib/optional"/>
<mkdir dir="${dist.src.dir}/lib/endorsed"/>
<mkdir dir="${dist.src.dir}/src"/>
<mkdir dir="${dist.src.dir}/src/java"/>
<mkdir dir="${dist.src.dir}/src/documentation"/>
<mkdir dir="${dist.src.dir}/src/resources"/>
<mkdir dir="${dist.src.dir}/src/scratchpad"/>
<mkdir dir="${dist.src.dir}/src/testcases"/>
<mkdir dir="${dist.src.dir}/src/contrib"/>
<mkdir dir="${dist.src.dir}/src/examples"/>
<mkdir dir="${dist.src.dir}/src/targets"/>
<mkdir dir="${dist.src.dir}/docs"/>
<mkdir dir="${dist.src.dir}/docs/apidocs"/>
<mkdir dir="${dist.src.dir}/tools"/>
<!--
<copy todir="${dist.src.dir}/bin">
<fileset dir="${bin.dir}"/>
</copy> -->
<copy todir="${dist.src.dir}/tools">
<fileset dir="${tools.dir}"/>
</copy>
<copy todir="${dist.src.dir}/src/documentation">
<fileset dir="${build.context}"/>
</copy>
<copy todir="${dist.src.dir}/lib">
<fileset dir="${lib.dir}"/>
</copy>
<copy todir="${dist.src.dir}/src/resources" filtering="on">
<fileset dir="${resource.dir}">
<exclude name="**/*.gif"/>
<exclude name="**/*.jpg"/>
<exclude name="**/*.png"/>
</fileset>
</copy>
<copy todir="${dist.src.dir}/src/resources" filtering="off">
<fileset dir="${resource.dir}">
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
<include name="**/*.png"/>
</fileset>
</copy>
<copy todir="${dist.src.dir}/src/java" filtering="on">
<fileset dir="${java.dir}"/>
</copy>
<copy todir="${dist.src.dir}/src/scratchpad" filtering="off">
<fileset dir="${scratchpad.dir}"/>
</copy>
<copy todir="${dist.src.dir}/src/contrib" filtering="off">
<fileset dir="${contrib.dir}"/>
</copy>
<copy todir="${dist.src.dir}/src/examples" filtering="off">
<fileset dir="${examples.dir}"/>
</copy>
<copy todir="${dist.src.dir}/src/targets" filtering="off">
<fileset dir="./src/targets"/>
</copy>
<copy todir="${dist.src.dir}/src/testcases" filtering="off">
<fileset dir="${test.dir}"/>
</copy>
<copy todir="${dist.src.dir}/docs">
<fileset dir="${build.docs}"/>
</copy>
<copy todir="${dist.src.dir}/docs/apidocs">
<fileset dir="${build.javadocs}"/>
</copy>
<copy todir="${dist.src.dir}">
<fileset dir="${docs.dir}">
<include name="changes.xml, todo.xml"/>
</fileset>
</copy>
<copy todir="${dist.src.dir}" filtering="on">
<fileset dir=".">
<include name="README.txt"/>
<include name="legal/*"/>
<include name="*.bat"/>
<include name="*.sh"/>
<include name="*.xml"/>
</fileset>
</copy>
<chmod perm="+x" file="${dist.src.dir}/build.sh"/>
<chmod perm="+x" file="${dist.src.dir}/tools/bin/antRun"/>
<fixcrlf srcdir="${dist.src.dir}" includes="**.sh" eol="lf"/>
<fixcrlf srcdir="${dist.src.dir}" includes="antRun" eol="lf"/>
<fixcrlf srcdir="${dist.src.dir}" includes="**.bat" eol="crlf"/>
</target>
<!-- =================================================================== -->
<!-- Packages the source distribution as .zip -->
<!-- =================================================================== -->
<target name="dist-src-zip" depends="dist-src"
description="Generates the source distribution as a .zip file">
<zip zipfile="${dist.target}/${dist.name}-src.zip"
basedir="${dist.root}/source"/>
</target>
<!-- =================================================================== -->
<!-- Packages the source distribution with .tar.gzip -->
<!-- =================================================================== -->
<target name="dist-src-tgz" depends="dist-src"
description="Generates the source distribution as a .tar.gz file">
<tar tarfile="${dist.target}/${dist.name}-src.tar"
basedir="${dist.root}/source"
longfile="gnu"/>
<gzip zipfile="${dist.target}/${dist.name}-src.tar.gz"
src="${dist.target}/${dist.name}-src.tar"/>
</target>
<!-- =================================================================== -->
<!-- Creates the binary distribution -->
<!-- =================================================================== -->
<target name="dist-bin" depends="package, docs, javadocs, test"
description="Prepares the binary distribution">
<!-- Copy the html docs -->
<mkdir dir="${dist.root}"/>
<mkdir dir="${dist.bin.dir}"/>
<mkdir dir="${dist.bin.dir}/lib"/>
<mkdir dir="${dist.src.dir}/lib/core"/>
<mkdir dir="${dist.src.dir}/lib/optional"/>
<mkdir dir="${dist.bin.dir}/docs"/>
<mkdir dir="${dist.bin.dir}/docs/apidocs"/>
<copy todir="${dist.bin.dir}/lib/core">
<fileset dir="${lib.dir}/core"/>
</copy>
<copy todir="${dist.bin.dir}/lib/optional">
<fileset dir="${lib.dir}/optional"/>
</copy>
<copy file="${build.dir}/${name}.jar" tofile="${dist.bin.dir}/lib/core/${name}-${version}.jar"/>
<copy todir="${dist.bin.dir}/docs">
<fileset dir="${build.docs}"/>
</copy>
<copy todir="${dist.bin.dir}/docs/apidocs">
<fileset dir="${build.javadocs}"/>
</copy>
<copy todir="${dist.bin.dir}">
<fileset dir="${docs.dir}">
<include name="changes.xml, todo.xml"/>
</fileset>
</copy>
<copy todir="${dist.bin.dir}" filtering="on">
<fileset dir=".">
<include name="README.txt"/>
<include name="legal/*"/>
</fileset>
</copy>
</target>
<!-- =================================================================== -->
<!-- Packages the binary distribution as .zip -->
<!-- =================================================================== -->
<target name="dist-bin-zip" depends="dist-bin"
description="Generates the binary distribution as a .zip file">
<zip zipfile="${dist.target}/${dist.name}-bin.zip"
basedir="${dist.root}/bin"/>
</target>
<!-- =================================================================== -->
<!-- Packages the binary distribution with .tar.gzip -->
<!-- =================================================================== -->
<target name="dist-bin-tgz" depends="dist-bin"
description="Generates the binary distribution as a .tar.gz file">
<tar tarfile="${dist.target}/${dist.name}-bin.tar"
basedir="${dist.root}/bin"
longfile="gnu"/>
<gzip zipfile="${dist.target}/${dist.name}-bin.tar.gz"
src="${dist.target}/${dist.name}-bin.tar"/>
</target>
<!-- =================================================================== -->
<!-- Clean dist -->
<!-- =================================================================== -->
<target name="distclean" depends="clean" description="* Cleans everything to the original state">
<delete dir="${build.root}"/>
<delete file="${dist.target}/core/${Name}-${version}.tar.gz"/>
<delete file="${dist.target}/core/${Name}-${version}.tar"/>
<delete file="${dist.target}/core/${Name}-${version}.zip"/>
<delete file="${dist.target}/core/${Name}-${version}-src.tar.gz"/>
<delete file="${dist.target}/core/${Name}-${version}-src.tar"/>
<delete file="${dist.target}/core/${Name}-${version}-src.zip"/>
<delete file="${dist.target}/core/${Name}-${version}-bin.tar.gz"/>
<delete file="${dist.target}/core/${Name}-${version}-bin.tar"/>
<delete file="${dist.target}/core/${Name}-${version}-bin.zip"/>
<delete dir="${dist.root}"/>
</target>
<!-- =================================================================== -->
<!-- Build all distributions -->
<!-- =================================================================== -->
<target name="dist"
depends="dist-info, dist-bin-tgz, dist-bin-zip, dist-src-tgz, dist-src-zip"
description="* Generates all distributions (source/binary)">
</target>
<!-- =================================================================== -->
<!-- Build all distributions -->
<!-- =================================================================== -->
<target name="dist-info" depends="init">
<echo>**********************************************</echo>
<echo>*</echo>
<echo>* Build all distributions:</echo>
<echo>* - source distribution for windows/unix.</echo>
<echo>* - binary distribution for windows/unix.</echo>
<echo>*</echo>
<echo>* This may take a while...</echo>
<echo>*</echo>
<echo>***********************************************</echo>
<echo/>
</target>

View File

@ -1,169 +0,0 @@
<!-- =================================================================== -->
<!-- Prepares the docs -->
<!-- =================================================================== -->
<target name="prepare-docs" depends="init">
<mkdir dir="${build.context}"/>
<mkdir dir="${build.context}/images"/>
<mkdir dir="${build.docs}"/>
<mkdir dir="${build.dir}/work"/>
<!-- make filtered copy of XML docs -->
<copy todir="${build.context}" filtering="on">
<fileset dir="${context.dir}">
<exclude name="images/**"/>
</fileset>
</copy>
<!-- Copy images -->
<copy todir="${build.context}/images" filtering="off">
<fileset dir="${context.dir}/images"/>
</copy>
<!-- Copy entity catalog and entities -->
<copy todir="${build.context}/resources/entities" filtering="on">
<fileset dir="${resource.dir}/entities"/>
</copy>
<mkdir dir="${build.context}/WEB-INF/classes"/>
<move todir="${build.context}/WEB-INF/classes">
<fileset dir="${build.context}/resources/entities">
<include name="CatalogManager.properties"/>
</fileset>
</move>
<!-- Copy Cocoon configuration (cocoon.xconf) -->
<copy todir="${build.context}" filtering="off">
<fileset dir="${tools.dir}/cocoon/conf"/>
</copy>
</target>
<!-- =================================================================== -->
<!-- Clean generated docs dir. -->
<!-- =================================================================== -->
<target name="cleandocs" depends="init" description="* Cleans the build docs directories">
<delete dir="${build.docs}"/>
</target>
<!-- =================================================================== -->
<!-- If generated docs is already up-to-date, print a message saying so. -->
<!-- =================================================================== -->
<target name="making-docs">
<echo message="-------------------------------------------------------------"/>
<echo message=" Building docs, please stand by ..."/>
</target>
<!-- =================================================================== -->
<!-- The documentation system -->
<!-- =================================================================== -->
<target name="owdocs"
depends="prepare-docs, making-docs"
description="* Generates the documentation">
<java classname="org.apache.cocoon.Main" fork="true" dir="${build.context}" failonerror="true">
<arg value="-c."/>
<arg value="-d../docs"/>
<arg value="-w../work"/>
<arg value="-l../work/cocoon.log"/>
<arg value="-uWARN"/>
<arg value="index.html"/>
<classpath>
<path refid="classpath"/>
<fileset dir="${build.dir}">
<include name="*.jar"/>
</fileset>
<fileset dir="${tools.dir}">
<include name="*/lib/*.jar"/>
</fileset>
<pathelement location="${tools.jar}"/>
<pathelement location="${build.context}/WEB-INF/classes"/>
</classpath>
</java>
<echo message=" ...docs generated succesfully in ./build/${name}/docs ."/>
<echo message="-------------------------------------------------------------"/>
</target>
<!-- =================================================================== -->
<!-- The documentation system -->
<!-- =================================================================== -->
<target name="docs"
depends="cleandocs, owdocs"
description="Cleans docs and generates the documentation">
</target>
<!-- =================================================================== -->
<!-- Create the announcements -->
<!-- =================================================================== -->
<target name="announcement" depends="prepare" description="* Creates the announcement for new releases">
<copy file="${project-info}" tofile="${build.project-info}" filtering="on"/>
<style basedir="./" destdir="./" style="${projectinfo2announcement}"
includes="project-info.xml" extension=".txt"/>
</target>
<!-- =================================================================== -->
<!-- Create the text version of projectinfo -->
<!-- =================================================================== -->
<target name="projectinfo" depends="prepare" description="* Creates the text version of projectinfo">
<copy file="${project-info}" tofile="${build.project-info}" filtering="on"/>
<style basedir="./" destdir="./" style="${project-info2txt}"
includes="project-info.xml" extension=".txt"/>
</target>
<!-- =================================================================== -->
<!-- Creates the web site -->
<!-- =================================================================== -->
<target name="site" depends="docs, javadocs"
description="Generates the web site">
</target>
<!-- =================================================================== -->
<!-- Set a variable if javadoc is already up-to-date. -->
<!-- =================================================================== -->
<target name="javadocs_check">
<uptodate property="javadocs.notrequired" targetfile="${build.javadocs}/packages.html" >
<srcfiles dir= "${build.src}" includes="**/*.java"/>
</uptodate>
</target>
<!-- =================================================================== -->
<!-- If javadoc is already up-to-date, print a message saying so. -->
<!-- =================================================================== -->
<target name="javadocs_done" if="javadocs.notrequired">
<echo message="-------------------------------------------------------------"/>
<echo message="Not rebuilding Javadocs, as they are up-to-date:"/>
<echo message=" ${build.javadocs}/packages.html is more recent than"/>
<echo message=" ${build.src}/**/*.java"/>
<echo message="-------------------------------------------------------------"/>
</target>
<!-- =================================================================== -->
<!-- Creates the API documentation -->
<!-- =================================================================== -->
<target name="javadocs" depends="prepare-src, javadocs_check, javadocs_done"
unless="javadocs.notrequired"
description="* Generates the API documentation">
<mkdir dir="${build.javadocs}"/>
<javadoc packagenames="${packages}"
sourcepath="${build.src}"
destdir="${build.javadocs}"
author="true"
version="true"
use="false"
noindex="true"
windowtitle="${Name} API"
doctitle="${Name}"
bottom="Copyright &#169; ${year} ${fullname} project. All Rights Reserved."
stylesheetfile="${resource.dir}/javadoc.css">
<classpath refid="classpath"/>
</javadoc>
</target>

View File

@ -1,156 +0,0 @@
<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
<target name="init">
<tstamp>
<format property="TODAY" pattern="dd-MMMM-yyyy" locale="en"/>
<format property="YEAR" pattern="yyyy"/>
</tstamp>
<echo message="--------------------------------------------------------------"/>
<echo message="Setting up customized ant tasks..."/>
<!-- set up tools and compiler properties -->
<property name="debug" value="on"/>
<property name="optimize" value="off"/>
<property name="deprecation" value="on"/>
<property name="nowarn" value="off"/>
<property name="build.compiler" value="classic"/>
<property name="target.vm" value="1.2"/>
<property name="tools.dir" value="./tools"/>
<property name="tools.ant.dir" value="${tools.dir}/ant"/>
<property name="tools.ant.lib" value="${tools.ant.dir}/lib"/>
<property name="tools.anttasks.dir" value="${tools.dir}/tmp/anttasks"/>
<property name="centipede.dir" value="${tools.dir}/centipede"/>
<property name="centipede.lib.dir" value="${centipede.dir}/lib"/>
<property name="cocoon.dir" value="${tools.dir}/cocoon"/>
<property name="cocoon.lib.dir" value="${cocoon.dir}/lib"/>
<!-- compile the ant tasks -->
<mkdir dir="${tools.anttasks.dir}"/>
<javac srcdir="${tools.dir}/centipede/src/java"
destdir="${tools.anttasks.dir}"
debug="yes"
optimize="no"
deprecation="no"
target="${target.vm}">
<classpath refid="centipede.classpath"/>
</javac>
<!-- define generally used centipede ant tasks -->
<taskdef name="user-input" classname="UserInputTask" classpath="${tools.anttasks.dir}"/>
<taskdef name="xml-property" classname="XmlPropertyTask" classpath="${tools.anttasks.dir}"/>
<taskdef name="jtidy" classname="JTidyTask" classpath="${tools.anttasks.dir}"/>
<taskdef name="class-available" classname="ClassAvailableTask" classpath="${tools.anttasks.dir}"/>
<!--<taskdef name="compress-html" classname="IZPressHtmlCompressTask" classpath="${tools.anttasks.dir}"/>-->
<echo message="... done."/>
<!--
Load project information from project-info.xml
-->
<property name="project-info" value="./project-info.xml"/>
<xml-property file="${project-info}"/>
<!--
Project information
-->
<property name="fullname" value="${xml.project.name}"/>
<property name="name" value="${xml.project.info.module}"/>
<property name="Name" value="${xml.project.name}"/>
<property name="packages" value="${xml.project.module.project.package}.*"/>
<property name="short.version" value="${xml.project.info.version}"/>
<property name="version.tag" value="${xml.project.info.tag}"/>
<property name="version" value="${short.version}-${version.tag}"/>
<property name="year" value="${xml.project.info.year}"/>
<echo message="--------------------------------------------------------------"/>
<echo message=" ${fullname} [${year}] "/>
<echo message="--------------------------------------------------------------"/>
<echo message="Building with ${ant.version}"/>
<echo message="using build file ${ant.file}"/>
<echo message="--------------------------------------------------------------"/>
<property name="src.dir" value="./src"/>
<property name="java.dir" value="${src.dir}/java"/>
<property name="test.dir" value="${src.dir}/testcases"/>
<property name="test.specific" value=""/>
<property name="lib.dir" value="./lib"/>
<property name="bin.dir" value="./bin"/>
<property name="docs.dir" value="${src.dir}/documentation/xdocs"/>
<property name="images.dir" value="${src.dir}/documentation/images"/>
<property name="resource.dir" value="${src.dir}/resources"/>
<property name="context.dir" value="${src.dir}/documentation"/>
<property name="scratchpad.dir" value="${src.dir}/scratchpad"/>
<property name="scratchpad.src" value="${scratchpad.dir}/src"/>
<property name="scratchpad.lib" value="${scratchpad.dir}/lib"/>
<property name="scratchpad.name" value="${name}-scratchpad"/>
<property name="examples.dir" value="${src.dir}/examples"/>
<property name="examples.src" value="${examples.dir}/src"/>
<property name="examples.lib" value="${examples.dir}/lib"/>
<property name="examples.name" value="${name}-examples"/>
<property name="contrib.dir" value="${src.dir}/contrib"/>
<property name="contrib.src" value="${contrib.dir}/src"/>
<property name="contrib.lib" value="${contrib.dir}/lib"/>
<property name="contrib.name" value="${name}-contrib"/>
<property name="build.root" value="./build"/>
<property name="build.dir" value="${build.root}/${name}"/>
<property name="build.src" value="${build.dir}/src"/>
<property name="build.test" value="${build.dir}/testcases"/>
<property name="build.dest" value="${build.dir}/classes"/>
<property name="build.docs" value="${build.dir}/docs"/>
<property name="build.xdocs" value="${build.dir}/xdocs"/>
<property name="build.docs.printer" value="${build.dir}/printer-docs"/>
<property name="build.javadocs" value="${build.dir}/javadocs"/>
<property name="build.context" value="${build.dir}/documentation"/>
<property name="build.scratchpad" value="${build.dir}/scratchpad"/>
<property name="build.scratchpad.src" value="${build.scratchpad}/src"/>
<property name="build.scratchpad.dest" value="${build.scratchpad}/classes"/>
<property name="build.examples" value="${build.dir}/examples"/>
<property name="build.examples.src" value="${build.examples}/src"/>
<property name="build.examples.dest" value="${build.examples}/classes"/>
<property name="build.contrib" value="${build.dir}/contrib"/>
<property name="build.contrib.src" value="${build.contrib}/src"/>
<property name="build.contrib.dest" value="${build.contrib}/classes"/>
<property name="build.patchqueue" value="${build.dir}/patchqueue"/>
<property name="dist.root" value="./dist"/>
<property name="dist.name" value="${name}-${version}"/>
<property name="dist.dir" value="${dist.root}/${dist.name}"/>
<property name="dist.src.dir" value="${dist.root}/source/${dist.name}"/>
<property name="dist.bin.dir" value="${dist.root}/bin/${dist.name}"/>
<property name="dist.target" value="${dist.root}"/>
<property name="site" value="../xml-site/targets/${name}"/>
<property name="build.project-info" value="${build.dir}/project-info.xml"/>
<property name="project-info2txt" value="${src.dir}/documentation/stylesheets/projectinfo2txt.xsl"/>
<property name="projectinfo2announcement" value="${src.dir}/documentation/stylesheets/projectinfo2announcement.xsl"/>
<property name="projectinfo2todo" value="${src.dir}/documentation/stylesheets/projectinfo2todo.xsl"/>
<!--
The location of tools.jar, relative to the JAVA_HOME home.
-->
<property name="tools.jar" value="${java.home}/../lib/tools.jar"/>
<available file="${tools.jar}" property="tools.jar.present"/>
<!--
Specifies where to send build build-log.xml
-->
<property name="XmlLogger.file" value="${build.dir}/build-log.xml"/>
<delete file="${XmlLogger.file}"/>
<filter token="Name" value="${fullname}"/>
<filter token="name" value="${fullname}"/>
<filter token="year" value="${year}"/>
<filter token="version" value="${version}"/>
<filter token="date" value="${TODAY}"/>
<filter token="log" value="true"/>
<filter token="verbose" value="true"/>
</target>

View File

@ -1,88 +0,0 @@
<!--
Give user a chance to override without editing this file
(and without typing -D each time he compiles it)
-->
<property file=".ant.properties"/>
<property file="${user.home}/.ant.properties"/>
<!--
these are here only for those who use jikes compiler. For other
developers this part makes no difference.
-->
<property name="build.compiler.emacs" value="on"/>
<property name="build.compiler.warnings" value="true"/>
<property name="build.compiler.pedantic" value="false"/>
<property name="build.compiler.depend" value="true"/>
<property name="build.compiler.fulldepend" value="true"/>
<!-- Temporary fix. Longer term solution to be discussed. -->
<property name="build.root" value="./build"/>
<!-- =================================================================== -->
<!-- Indentify Classpath -->
<!-- =================================================================== -->
<path id="centipede.classpath">
<fileset dir="./lib/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="./tools/centipede/lib">
<include name="*.jar"/>
</fileset>
</path>
<path id="classpath">
<fileset dir="./lib/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib/core">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib/optional">
<include name="*.jar"/>
</fileset>
</path>
<path id="examples.classpath">
<fileset dir="./lib/endorsed">
<include name="*.jar"/>
</fileset>
<!-- FIXME : how to build a path that references a property set in 'init' target ? -->
<pathelement path="${build.root}/jakarta-poi/classes"/>
</path>
<path id="scratchpad.classpath">
<fileset dir="./lib/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib/core">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib/optional">
<include name="*.jar"/>
</fileset>
<fileset dir="./src/scratchpad/lib">
<include name="*.jar"/>
</fileset>
<!-- FIXME : how to build a path that references a property set in 'init' target ? -->
<pathelement path="${build.root}/jakarta-poi/classes"/>
</path>
<path id="contrib.classpath">
<fileset dir="./lib/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib/core">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib/optional">
<include name="*.jar"/>
</fileset>
<fileset dir="./src/contrib/lib">
<include name="*.jar"/>
</fileset>
<!-- FIXME : how to build a path that references a property set in 'init' target ? -->
<pathelement path="${build.root}/jakarta-poi/classes"/>
</path>

View File

@ -1,83 +0,0 @@
<!-- =================================================================== -->
<!-- Gets pending patches from bugzilla and cleans html -->
<!-- =================================================================== -->
<target name="prepare-patchqueue" depends="init" description="Patch queue 2 mail">
<mkdir dir="${build.patchqueue}"/>
<get
src="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Cocoon+2&amp;short_desc=%5BPATCH%5D&amp;short_desc_type=anywordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;namedcmd=cocoon+patch+queue&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time"
dest="${build.patchqueue}/bugzillapatchqueue.html"
verbose="true"
usetimestamp="true"
ignoreerrors="true"/>
<jtidy src="${build.patchqueue}/bugzillapatchqueue.html"
dest="${build.patchqueue}/bugzillapatchqueue.xhtml"
log="${build.patchqueue}/bugzillapatchqueue.log"
summary="true"
warn="true"/>
</target>
<!-- =================================================================== -->
<!-- Transforms bugzilla patches html into xml -->
<!-- =================================================================== -->
<target name="patchqueue-xml" depends="prepare-patchqueue">
<copy file="${tools.dir}/src/bugzilla2patchqueue.xsl"
tofile="${build.patchqueue}/bugzilla2patchqueue.xsl"/>
<style basedir="${build.patchqueue}"
destdir="${build.patchqueue}"
includes="bugzillapatchqueue.xhtml"
extension=".xml"
style="bugzilla2patchqueue.xsl"/>
</target>
<!-- =================================================================== -->
<!-- Makes patches.xml for xdocs using bugzilla patches xml -->
<!-- =================================================================== -->
<target name="patchqueue-xdocs" depends="patchqueue-xml">
<copy file="${tools.dir}/src/patchqueue2xdocs.xsl"
tofile="${build.patchqueue}/patchqueue2xdocs.xsl"/>
<style basedir="${build.patchqueue}"
destdir="${build.patchqueue}"
includes="bugzillapatchqueue.xml"
extension=".xdoc"
style="patchqueue2xdocs.xsl"/>
<copy file="${build.patchqueue}/bugzillapatchqueue.xdoc" tofile="${docs.dir}/patches.xml"/>
</target>
<!-- =================================================================== -->
<!-- Sends a notification of the current patch queue to the mailing list -->
<!-- =================================================================== -->
<target name="patchqueue" depends="patchqueue-xdocs">
<copy file="${tools.dir}/src/patchqueue2text4dev.xsl"
tofile="${build.patchqueue}/patchqueue2text4dev.xsl"/>
<style basedir="${build.patchqueue}"
destdir="${build.patchqueue}"
includes="bugzillapatchqueue.xml"
extension=".txt"
style="patchqueue2text4dev.xsl"/>
</target>
<!-- =================================================================== -->
<!-- Sends a notification of the current patch queue to the mailing list -->
<!-- =================================================================== -->
<target name="patchqueue-notify" depends="patchqueue">
<mail from="patch-queue@nicolaken.com"
tolist="cocoon-dev@xml.apache.org"
mailhost="192.4.0.155"
subject="DO NOT REPLY [PATCH QUEUE] Summary ${TODAY}"
files="${build.patchqueue}/bugzillapatchqueue.txt"/>
</target>
<!-- =================================================================== -->
<!-- Calls the targets needed for Gump -->
<!-- =================================================================== -->
<target name="gump" depends="testmodule, package">
</target>

View File

@ -1,51 +0,0 @@
<!-- =================================================================== -->
<!-- Test targets -->
<!-- =================================================================== -->
<target name="test" depends="compile" description="Perform jUnit tests">
<mkdir dir="${build.test}"/>
<!-- Copy test files to build test dir -->
<copy todir="${build.test}" filtering="on">
<fileset dir="${test.dir}/${test.specific}"/>
</copy>
<!-- Compile tests -->
<javac srcdir="${build.test}"
destdir="${build.test}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}"
target="${target.vm}">
<classpath refid="classpath"/>
<classpath>
<pathelement path="${build.dest}" />
</classpath>
</javac>
<junit printsummary="yes" haltonfailure="yes" fork="yes">
<sysproperty key="UTIL.testdata.path"
value="${test.dir}/org/apache/poi/util/data"/>
<sysproperty key="HSSF.testdata.path"
value="${test.dir}/org/apache/poi/hssf/data"/>
<classpath>
<pathelement location="${build.test}" />
<pathelement location="${build.dest}" />
<pathelement path="${java.class.path}" />
</classpath>
<classpath refid="classpath"/>
<formatter type="plain" usefile="no" />
<batchtest>
<fileset dir="${build.test}">
<include name="**/test/*TestCase.class"/>
<include name="**/*Test.class" />
<include name="**/Test*.class" />
<exclude name="**/AllTest.class" />
<exclude name="**/*$$*Test.class" />
</fileset>
</batchtest>
</junit>
</target>
<!-- =================================================================== -->
<!-- Testing that all major targets work; useful before a commit -->
<!-- =================================================================== -->
<target name="testmodule" depends="clean, docs, test, javadocs"
description="Testing that all major targets work; useful before a commit ">
</target>

View File

@ -1,22 +0,0 @@
<!-- =================================================================== -->
<!-- Print out warnings for optional components -->
<!-- =================================================================== -->
<target name="optional-warnings"
description="Outputs warnings if some optional jars are missing from the environment">
</target>
<!-- =================================================================== -->
<!-- Try other builds that could go into this core build -->
<!-- =================================================================== -->
<target name="try"
depends="init"
description="Builds to try before including in main build">
<ant target="${try.target}" antfile="./tools/targets/try.xml"/>
</target>
<!-- =================================================================== -->
<!-- Fix line endings in src -->
<!-- =================================================================== -->
<target name="fixsrclf" depends="init" description="Fix lf in src directory (internal use only!)">
<fixcrlf srcdir="${java.dir}" includes="**/*.java" eol="lf"/>
</target>

View File

@ -1,718 +0,0 @@
<?xml version="1.0"?>
<cocoon version="2.0">
<tree-processor>
<!-- The sitemap language -->
<language name="sitemap" class="org.apache.cocoon.treeprocessor.sitemap.SitemapLanguage">
<!-- Namespace for this language -->
<namespace uri="http://apache.org/cocoon/sitemap/1.0"/>
<!-- File name for files in this language, relative to the environment prefix -->
<file name="sitemap.xmap"/>
<!-- Description of the element for nodes parameters -->
<parameter element="parameter"/>
<!-- roles for the sitemap language -->
<roles>
<role name="org.apache.cocoon.acting.ActionSelector"
shorthand="actions"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
<role name="org.apache.cocoon.selection.SelectorSelector"
shorthand="selectors"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
<role name="org.apache.cocoon.matching.MatcherSelector"
shorthand="matchers"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector">
<hint shorthand="regexp-uri-matcher"
class="org.apache.cocoon.matching.RegexpURIMatcher"/>
<hint shorthand="wildcard-uri-matcher"
class="org.apache.cocoon.matching.WildcardURIMatcher"/>
</role>
<role name="org.apache.cocoon.generation.GeneratorSelector"
shorthand="generators"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector">
<hint shorthand="file-generator"
class="org.apache.cocoon.generation.FileGenerator"/>
<hint shorthand="XSP-generator"
class="org.apache.cocoon.generation.ServerPagesGenerator"/>
</role>
<role name="org.apache.cocoon.transformation.TransformerSelector"
shorthand="transformers"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector">
<hint shorthand="XSLT-transformer"
class="org.apache.cocoon.transformation.TraxTransformer"/>
<hint shorthand="cinclude-transformer"
class="org.apache.cocoon.transformation.CIncludeTransformer"/>
</role>
<role name="org.apache.cocoon.serialization.SerializerSelector"
shorthand="serializers"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
<role name="org.apache.cocoon.reading.ReaderSelector"
shorthand="readers"
default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
<role name="org.apache.cocoon.components.notification.NotifyingBuilder"
shorthand="notifying-builder"
default-class="org.apache.cocoon.components.notification.DefaultNotifyingBuilder"/>
</roles>
<!-- node definitions for the sitemap language -->
<nodes>
<!-- All node names are given as local names in the above namespace (no prefix) -->
<!-- Sitemap root node -->
<node name="sitemap" builder="org.apache.cocoon.treeprocessor.sitemap.SitemapNodeBuilder">
<allowed-children>components, views, action-sets, resources, pipelines</allowed-children>
</node>
<!-- Components definition : parse view info associated to components
(actual components creation is done by SitemapLanguage) -->
<node name="components"
builder="org.apache.cocoon.treeprocessor.sitemap.ComponentsNodeBuilder"/>
<node name="pipelines"
builder="org.apache.cocoon.treeprocessor.sitemap.PipelinesNodeBuilder">
<allowed-children>pipeline</allowed-children>
</node>
<node name="views" builder="org.apache.cocoon.treeprocessor.CategoryNodeBuilder"/>
<node name="view" builder="org.apache.cocoon.treeprocessor.sitemap.ViewNodeBuilder"/>
<node name="resources" builder="org.apache.cocoon.treeprocessor.CategoryNodeBuilder"/>
<node name="resource" builder="org.apache.cocoon.treeprocessor.NamedContainerNodeBuilder"/>
<node name="action-sets" builder="org.apache.cocoon.treeprocessor.CategoryNodeBuilder"/>
<node name="action-set"
builder="org.apache.cocoon.treeprocessor.sitemap.ActionSetNodeBuilder"/>
<node name="pipeline" builder="org.apache.cocoon.treeprocessor.sitemap.PipelineNodeBuilder">
<forbidden-children>sitemap, components, pipelines</forbidden-children>
</node>
<node name="match" builder="org.apache.cocoon.treeprocessor.sitemap.MatchNodeBuilder">
<forbidden-children>sitemap, components, pipeline, handle-errors</forbidden-children>
</node>
<node name="select" builder="org.apache.cocoon.treeprocessor.sitemap.SelectNodeBuilder"/>
<node name="act" builder="org.apache.cocoon.treeprocessor.sitemap.ActNodeBuilder">
<forbidden-children>sitemap, components, pipeline, handle-errors</forbidden-children>
</node>
<node name="redirect-to"
builder="org.apache.cocoon.treeprocessor.sitemap.RedirectToNodeBuilder"/>
<node name="call" builder="org.apache.cocoon.treeprocessor.sitemap.CallNodeBuilder"/>
<node name="mount" builder="org.apache.cocoon.treeprocessor.sitemap.MountNodeBuilder"/>
<node name="read" builder="org.apache.cocoon.treeprocessor.sitemap.ReadNodeBuilder"/>
<node name="aggregate"
builder="org.apache.cocoon.treeprocessor.sitemap.AggregateNodeBuilder"/>
<node name="generate" builder="org.apache.cocoon.treeprocessor.sitemap.GenerateNodeBuilder"/>
<node name="transform"
builder="org.apache.cocoon.treeprocessor.sitemap.TransformNodeBuilder"/>
<node name="serialize"
builder="org.apache.cocoon.treeprocessor.sitemap.SerializeNodeBuilder"/>
<node name="handle-errors"
builder="org.apache.cocoon.treeprocessor.sitemap.HandleErrorsNodeBuilder"/>
</nodes>
</language>
</tree-processor>
<!-- Source Handler:
The source handler adds special url protocols to the system, they are
then available inside Cocoon, e.g. as a source argument for one of the
sitemap components.
-->
<source-handler logger="core.source-handler">
<!-- file protocol : this is a WriteableSource -->
<protocol name="file" class="org.apache.cocoon.components.source.FileSourceFactory"/>
</source-handler>
<!-- Entity resolution catalogs: *********************************************
catalog:
The default catalog is distributed at /resources/entities/catalog
This is the contextual pathname for Cocoon resources.
You can override this path, if necessary, using the "catalog" parameter.
<parameter name="catalog" value="/resources/entities/catalog"/>
However, it is probably desirable to leave this default catalog config
and declare your own local catalogs, which are loaded in addition to
the system catalog.
There are various ways to do local configuration (see "Entity Catalogs"
documentation). One way is via the CatalogManager.properties file.
As an additional method, you can specify the "local-catalog" parameter here.
local-catalog:
The full filesystem pathname to a single local catalog file.
<parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
verbosity:
The level of messages for status/debug (messages go to standard output)
The following messages are provided ...
0 = none
1 = ? (... not sure yet)
2 = 1+, Loading catalog, Resolved public, Resolved system
3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
10 = 3+, List all catalog entries when loading a catalog
(Cocoon also logs the "Resolved public" messages.)
TODO: determine all messages at each level
<parameter name="verbosity" value="2"/>
************************************************************************** -->
<entity-resolver class="org.apache.cocoon.components.resolver.ResolverImpl"
logger="core.resolver">
<parameter name="catalog" value="/resources/entities/catalog"/>
<parameter name="verbosity" value="1"/>
</entity-resolver>
<!-- ================ Apache Cocoon configuration file ================== -->
<!-- For full description of the components and their parameters ...
- Apache Cocoon User Documentation at /userdocs/
- webapp/cocoon.xconf (this file) - describes each core component
- each optional component/.../*.xconf - these describe the parameters
for each component and are automatically included at build-time.
The notes that accompany the settings below are intended to be concise.
-->
<!-- ===================== General Components =========================== -->
<!-- Parser:
The default parser used in Apache Cocoon is
org.apache.avalon.excalibur.xml.JaxpParser. Apache Cocoon requires a
JAXP 1.1 parser.
If you have problems because your servlet environment uses its own
parser not conforming to JAXP 1.1 try using the alternative
XercesParser instead of the JaxpParser. To activate the XercesParser,
change the class attribute to
class="org.apache.avalon.excalibur.xml.XercesParser"
You will also need to add a system property to your JVM,
probably on the startup of your servlet engine like this:
-Dorg.apache.avalon.excalibur.xml.Parser=org.apache.avalon.excalibur.xml.XercesParser
Configuration for the JaxpParser (not the XercesParser!):
- validate (boolean, default = false): This parameter causes the parser
to be a validating parser.
XML validation is only being used for the documentation build.
(If you are going to use it elsewhere, then do so with caution.)
You really should have validated all of your XML documents already,
according to their proper DTD or schema. Do not expect Cocoon to do it.
- namespace-prefixes (boolean, default = false) : do we want
namespaces declarations also as 'xmlns:' attributes ?
Note : setting this to true confuses some XSL processors (e.g. Saxon).
- stop-on-warning (boolean, default = true) : should the parser
stop parsing if a warning occurs ?
- stop-on-recoverable-error (boolean, default = true) : should the parser
stop parsing if a recoverable error occurs ?
- reuse-parsers (boolean, default = true) : do we want to reuse
parsers or create a new parser for each parse ?
Note : even if this parameter is true, parsers are not
recycled in case of parsing errors : some parsers (e.g. Xerces) don't like
to be reused after failure.
- sax-parser-factory (string) : the name of the SAXParserFactory
implementation class to be used instead of using the standard JAXP mechanism
(SAXParserFactory.newInstance()). This allows to choose
unambiguously the JAXP implementation to be used when several of them are
available in the classpath.
- document-builder-factory (string) : the name of the
DocumentBuilderFactory implementation to be used (similar to
sax-parser-factory for DOM).
-->
<xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
logger="core.xml-parser">
<parameter name="validate" value="false"/>
<parameter name="namespace-prefixes" value="false"/>
<parameter name="stop-on-warning" value="true"/>
<parameter name="stop-on-recoverable-error" value="true"/>
<!--
<parameter name="reuse-parsers" value="true"/>
<parameter name="sax-parser-factory" value="???"/>
<parameter name="document-builder-factory" value="???"/>
-->
</xml-parser>
<!-- ============================ STORE ============================ -->
<!-- Persistent store for the cache. Two store implementations to choose
from:
* FilesystemStore: Simple. Dependable. Thorougly tested.
* JispFilesystemStore: Scalable. New kid on the block. Not thorougly tested.
If you opt in to use JispFilesystemStore, comment out FilesystemStore
entry.
JispFilesystemStore configuration parameters
(in addition to common parameters):
datafile: name of the store file to use.
indexfile: name of the index file to use.
order: FIXME: put description here.
<cache-persistent class="org.apache.cocoon.components.store.JispFilesystemStore"
logger="core.store.persistent">
<parameter name="use-cache-directory" value="true"/>
<parameter name="datafile" value="cocoon-cache.dat"/>
<parameter name="indexfile" value="cocoon-cache.idx"/>
<parameter name="order" value="1701"/>
</cache-persistent>
<cache-persistent class="org.apache.cocoon.components.store.FilesystemStore"
logger="core.store.persistent">
<parameter name="use-cache-directory" value="true"/>
</cache-persistent>
-->
<cache-persistent class="org.apache.cocoon.components.store.JispFilesystemStore"
logger="core.store.persistent">
<parameter name="use-cache-directory" value="true"/>
<parameter name="datafile" value="cocoon-cache.dat"/>
<parameter name="indexfile" value="cocoon-cache.idx"/>
<parameter name="order" value="1701"/>
</cache-persistent>
<!-- Memory Storing: -->
<cache-transient class="org.apache.cocoon.components.store.MRUMemoryStore"
logger="core.store.transient">
<!-- Indicates how many objects will be hold in the cache.
When the number of maxobjects has been reached. The last object in the
cache will be thrown out. -->
<parameter name="maxobjects" value="100"/>
<!-- Turns the swapping of the objects into persistent cache on
and off. -->
<parameter name="use-persistent-cache" value="true"/>
</cache-transient>
<!-- Store Janitor:
Be careful with the heapsize and freememory parameters. Wrong values can
cause high cpu usage. Example configuration:
Jvm settings:
-Xms100000000 -Xmx200000000
store-janitor settings:
<parameter name="freememory" value="5000000"/>
<parameter name="heapsize" value="150000000"/>
Heapsize *must* be higher then the -Xms parameter and *must* be lower or
equal than -Xmx. It is recommended to have heapsize equal to -Xmx, especially
on Sun's JVM which are unable to shrink its heap once it grows above minimum.
Freememory parameter *must* be lower than -Xms, and should be greater than
amount of memory necessary for normal application operation.
-->
<store-janitor class="org.apache.cocoon.components.store.StoreJanitorImpl"
logger="core.store.janitor">
<!-- How much free memory shall be available in the jvm -->
<parameter name="freememory" value="1000000"/>
<!-- Indicates the limit of the jvm memory consumption. The default max
heapsize for Sun's JVM is 64Mb -->
<parameter name="heapsize" value="67108864"/>
<!-- How often shall the cleanup thread check memory -->
<parameter name="cleanupthreadinterval" value="10"/>
<!-- Indicates the thread priority of the cleanup thread -->
<parameter name="threadpriority" value="5"/>
<!-- How much percent of the elements of each registered Store shall
be removed when low on memory. Default 10% -->
<parameter name="percent_to_free" value="10"/>
</store-janitor>
<!-- ============================ STORE END ========================= -->
<!-- XSLT Processor:
For Xalan: Turn 'incremental-processing' to true if you want a continous output (if set to
false the transformer
delivers SAX events after all transformations has been done). -->
<xslt-processor class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"
logger="core.xslt-processor">
<parameter name="use-store" value="true"/>
<parameter name="incremental-processing" value="false"/>
</xslt-processor>
<!-- Xpath Processor:
-->
<xpath-processor class="org.apache.cocoon.components.xpath.XPathProcessorImpl"
logger="core.xpath-processor"/>
<!-- URL Factory:
The url factory adds special url protocols to the system, they are then
available inside Cocoon, e.g. as a source argument for one of the sitemap
components.
-->
<url-factory logger="core.url-factory">
<!-- Allows access to resources available from the ClassLoader,
using getResource() method. -->
<protocol name="resource" class="org.apache.cocoon.components.url.ResourceURLFactory"/>
<!-- Allows access to resources available from the servlet context,
using getResource() method. -->
<protocol name="context" class="org.apache.cocoon.components.url.ContextURLFactory"/>
<!-- Add here protocol factories for your own protocols -->
</url-factory>
<!-- Program Generator:
The ProgamGenerator builds programs from a XML document written in a
MarkupLanguage.
auto-reload:
root-package: persistent code repository.
preload:
-->
<program-generator logger="core.program-generator">
<parameter name="auto-reload" value="true"/>
<parameter name="root-package" value="org.apache.cocoon.www"/>
<parameter name="preload" value="true"/>
</program-generator>
<!-- Xscript:
-->
<xscript logger="core.xscript">
<parameter name="xscript:copy-of"
value="resource://org/apache/cocoon/components/xscript/xslt/copy-of.xsl"/>
<parameter name="xscript:value-of"
value="resource://org/apache/cocoon/components/xscript/xslt/value-of.xsl"/>
</xscript>
<!-- Programming Languages: -->
<programming-languages>
<java-language name="java" logger="core.language.java">
<!-- Compiler parameter specifies which class to use to compile Java.
Possible variants are:
Javac. Requires javac.jar (included with Cocoon distribution).
Pizza. Requires pizza.jar (included with Cocoon distribution).
Jikes. Requires IBM jikes compiler to be present in the PATH -->
<parameter name="compiler"
value="org.apache.cocoon.components.language.programming.java.Javac"/>
<!-- Specifies which formatter to use to format source code.
This parameter is optional.
It is commented out because of bug #5689: Java "code-formatter" incorrectly formats
double values
<parameter name="code-formatter"
value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/>
-->
<!-- A singleton-like implementation of a ClassLoader -->
<parameter name="class-loader"
value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
</java-language>
</programming-languages>
<!-- Class loader:
A singleton-like implementation of a ClassLoader.
-->
<classloader class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"
logger="core.classloader"/>
<!-- Markup Languages:
This section defines several builtin logicsheets. A logicsheet is an XML
filter used to translate user-defined, dynamic markup into equivalent
code embedding directives for a given markup language.
-->
<markup-languages>
<xsp-language name="xsp" logger="core.markup.xsp">
<parameter name="prefix" value="xsp"/>
<parameter name="uri" value="http://apache.org/xsp"/>
<!-- Defines the XSP Core logicsheet for the Java language -->
<target-language name="java">
<parameter name="core-logicsheet"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
<!-- The Request logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard request operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-request"/>
<parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/>
</builtin-logicsheet>
<!-- The Response logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard response operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-response"/>
<parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/>
</builtin-logicsheet>
<!-- The Session logicsheet (taglib) is an XSP logicsheet that wraps XML tags around
standard session operations. Specifically, the Session logicsheet provides an
XML interface to most methods of the HttpSession object (see the Java Servlet API
Specification, version 2.2 ) for more information. -->
<builtin-logicsheet>
<parameter name="prefix" value="session"/>
<parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/session.xsl"/>
</builtin-logicsheet>
<!-- The Cookie logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard cookie operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-cookie"/>
<parameter name="uri" value="http://apache.org/xsp/cookie/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/cookie.xsl"/>
</builtin-logicsheet>
<!-- The ESQL logicsheet is an XSP logicsheet that performs sql queries and
serializes their results as XML. This allows you to work with data from a
wide variety of different sources when using Apache Cocoon. -->
<builtin-logicsheet>
<parameter name="prefix" value="esql"/>
<parameter name="uri" value="http://apache.org/cocoon/SQL/v2"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/esql.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="log"/>
<parameter name="uri" value="http://apache.org/xsp/log/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/log.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="util"/>
<parameter name="uri" value="http://apache.org/xsp/util/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/util.xsl"/>
</builtin-logicsheet>
<!-- The xsp-formval taglib serves as interface to retrieve validation results
from a request attribute -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-formval"/>
<parameter name="uri" value="http://apache.org/xsp/form-validator/2.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/form-validator.xsl"/>
</builtin-logicsheet>
<!-- The sel taglib allows to put multiple pages / view into
one xsp. While in general it is good style to put
different views into different xsp because they're more
easily maintained, this is a useful feature with
e.g. with long forms that are broken into parts -->
<builtin-logicsheet>
<parameter name="prefix" value="sel"/>
<parameter name="uri" value="http://apache.org/xsp/sel/1.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/sel.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="action"/>
<parameter name="uri" value="http://apache.org/cocoon/action/1.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/action.xsl"/>
</builtin-logicsheet>
<!-- The capture taglib is for capturing parts of the XSP-generated XML as
XML fragments or DOM nodes -->
<builtin-logicsheet>
<parameter name="prefix" value="capture"/>
<parameter name="uri" value="http://apache.org/cocoon/capture/1.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/capture.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="xscript"/>
<parameter name="uri" value="http://apache.org/xsp/xscript/1.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/xscript.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="soap"/>
<parameter name="uri" value="http://apache.org/xsp/soap/3.0"/>
<parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/java/soap.xsl"/>
</builtin-logicsheet>
</target-language>
</xsp-language>
<!-- Defines Sitemap Core logicsheet for the Java language -->
<sitemap-language name="sitemap" logger="core.markup.sitemap">
<parameter name="prefix" value="map"/>
<parameter name="uri" value="http://apache.org/cocoon/sitemap/1.0"/>
<target-language name="java">
<parameter name="core-logicsheet"
value="resource://org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl"/>
</target-language>
</sitemap-language>
</markup-languages>
<!-- Datasources example:
<datasources>
<jdbc name="personnel" logger="core.datasources.personnel">
<pool-controller min="5" max="10" oradb="true"/>
<pool-controller min="5" max="10"/>
<auto-commit>false</auto-commit>
<dburl>jdbc:hsqldb:hsql://localhost:9002</dburl>
<user>sa</user>
<password></password>
</jdbc>
</datasources>
-->
<!-- Stream Pipeline:
Either collects a Reader and lets it produce a character stream
or connects an EventPipeline with a Serializer and lets them produce
the character stream. Alternatives to CachingStreamPipeline are:
<stream-pipeline class="org.apache.cocoon.components.pipeline.NonCachingStreamPipeline"/>
-->
<stream-pipeline class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
logger="core.stream-pipeline"
pool-max="32" pool-min="2" pool-grow="4"/>
<!-- Event Pipeline:
Connects the generator and the various transformers and produces a
character stream. Alternatives to CachingEventPipeline are:
<event-pipeline class="org.apache.cocoon.components.pipeline.NonCachingEventPipeline"/>
<event-pipeline class="org.apache.cocoon.components.profiler.ProfilingCachingEventPipeline"/>
<event-pipeline
class="org.apache.cocoon.components.profiler.ProfilingNonCachingEventPipeline"/>
-->
<event-pipeline class="org.apache.cocoon.components.pipeline.CachingEventPipeline"
logger="core.event-pipeline"
pool-max="32" pool-min="2" pool-grow="4"/>
<!-- Compiling xml to byte streams.
The xml-serializer "compiles" xml sax events into a byte stream
and the xml-deserializer does the same vice versa.
Make sure, that if you change one of these components, that you
may have to change the other one as well, as they might have
a dependency.
-->
<xml-serializer class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"
logger="core.xml-serializer"/>
<xml-deserializer class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"
logger="core.xml-deserializer"/>
<!-- SAXConnector:
Connects the various pipeline components.
LoggingSAXConnector logs SAX events between pipeline components
into cocoon's log file.
ProfilingSAXConnector gathers timing information.
Uncomment one of the following lines for using the SAXConnector.
<sax-connector class="org.apache.cocoon.components.saxconnector.LoggingSAXConnector"/>
<sax-connector class="org.apache.cocoon.components.profiler.ProfilingSAXConnector"/>
-->
<!-- Profiler:
The profiler facilitates the gathering of statistics about timings of
different steps of pipelines. Profiler consists of several components:
profiling pipeline, profiling SAX connector, and profiler generator
which are used to generate the profile report. You need to enable all of
these components to use profiler.
Uncomment the following line to use profiler.
<profiler/>
-->
<!-- Resource Monitor:
The Monitor keeps track on changes to a Resource.
-->
<monitor logger="core.monitor">
<thread priority="5" frequency="10000"/>
</monitor>
<!-- ======================== The sitemap ============================== -->
<!-- Reloading of the sitemap:
The check-reload attribute determines if the sitemap is reloaded on change.
Set to "no", the sitemap is generated once at startup.
Set to "yes", the sitemap is regenerated if it changes.
The reload-method specifies the method for the regeneration:
asynchron: If the sitemap changes, the sitemap is regenerated at the
next request in the background and the incoming request is
served with the old sitemap. All subsequent requests are
served with the old sitemap until the regeneration in the
background has finished.
synchron: If the sitemap changes, the sitemap is regenerated at the
next request. When the regeneration is finished, the request
(and all subsequent ones) is served with the new sitemap.
For development environment, set the reload-method to synchron and the
check-reload to yes.
For production environment, it is advisable to set the reload-method to
asynchron and for more safety the check-reload to no.
<sitemap file="sitemap.xmap" reload-method="asynchron" check-reload="yes" logger="sitemap"/>
-->
<sitemap class="org.apache.cocoon.treeprocessor.TreeProcessor" logger="sitemap"/>
<!-- ===================== Sitemap Components =========================== -->
<!-- Here defined some core Cocoon sitemap components, as File generator
or XSLT transformer. Note that syntax of this file slightly differs
from the syntax of <map:components> section of the sitemap.xmap file.
-->
<generators>
<component-instance name="file" class="org.apache.cocoon.generation.FileGenerator"
label="content,data"
logger="sitemap.generator.file"
pool-max="32" pool-min="2" pool-grow="4"/>
<component-instance name="serverpages" class="org.apache.cocoon.generation.ServerPagesGenerator"
label="content,data"
logger="sitemap.generator.serverpages"
pool-max="32" pool-min="0" pool-grow="2"/>
</generators>
<transformers>
<component-instance name="xslt" class="org.apache.cocoon.transformation.TraxTransformer"
logger="sitemap.transformer.xslt"
pool-max="32" pool-min="2" pool-grow="4">
<use-request-parameters>false</use-request-parameters>
<use-browser-capabilities-db>false</use-browser-capabilities-db>
<use-deli>false</use-deli>
</component-instance>
</transformers>
<serializers>
<component-instance name="links" class="org.apache.cocoon.serialization.LinkSerializer"
encoding="iso8859-1"
logger="sitemap.serializer.links"
pool-max="32" pool-min="2" pool-grow="4"/>
<component-instance name="xml" class="org.apache.cocoon.serialization.XMLSerializer"
encoding="iso8859-1"
mime-type="text/xml"
logger="sitemap.serializer.xml"
pool-max="32" pool-min="2" pool-grow="4"/>
<component-instance name="html" class="org.apache.cocoon.serialization.HTMLSerializer"
encoding="iso8859-1"
mime-type="text/html"
logger="sitemap.serializer.html"
pool-max="32" pool-min="4" pool-grow="4">
<buffer-size>1024</buffer-size>
</component-instance>
</serializers>
<readers>
<component-instance name="resource" class="org.apache.cocoon.reading.ResourceReader"
logger="sitemap.reader.resource"
pool-max="32"/>
</readers>
<!--
<matchers/>
<selectors/>
<actions/>
-->
</cocoon>

Binary file not shown.

Binary file not shown.

Binary file not shown.