@echo off
-rem ----------------------------------------------------------------------------
-rem build.bat - Win32 Build Script for Apache Cocoon
-rem
-rem $Id$
-rem ----------------------------------------------------------------------------
-rem ----- Copy Xalan and Xerces for the build system ------------------------
-copy lib\optional\xerces*.jar tools\lib
-copy lib\optional\xalan*.jar tools\lib
-copy lib\optional\xml-api*.jar tools\lib
-copy lib\optional\jtidy*.jar tools\lib
+set OLD_ANT_HOME=%ANT_HOME%
+set ANT_HOME=tools\ant
-rem ----- Verify and Set Required Environment Variables ------------------------
+set OLD_CLASSPATH=%CLASSPATH%
+set CLASSPATH=tools\centipede\lib\xml-apis.jar;tools\centipede\lib\xerces.jar;tools\centipede\lib\xalan.jar;tools\centipede\lib\junit.jar;tools\centipede\lib\jIzPress.jar;tools\centipede\lib\jtidy.jar
-REM Commented out so it always uses poi's ant -- gjs -- if not "%ANT_HOME%" == "" goto gotAntHome
-set OLD_ANT_HOME=%ANT_HOME%
-set ANT_HOME=tools
-:gotAntHome
+call %ANT_HOME%\bin\ant -listener org.apache.tools.ant.XmlLogger %1 %2 %3 %4 %5 %6 %7 %8 %9
-call %ANT_HOME%\bin\ant %1 %2 %3 %4 %5 %6 %7 %8 %9
set ANT_HOME=%OLD_ANT_HOME%
+set CLASSPATH=%OLD_CLASSPATH%
#!/bin/sh
-echo
-echo "POI Build System "
-echo "----------------------------"
+chmod u+x ./tools/ant/bin/antRun
+chmod u+x ./tools/ant/bin/ant
-cp -f ./lib/optional/xalan*.jar ./tools/lib
-cp -f ./lib/optional/xerces*.jar ./tools/lib
-cp -f ./lib/optional/xml-api*.jar ./tools/lib
-cp -f ./lib/optional/jtidy*.jar ./tools/lib
-
-chmod u+x ./tools/bin/antRun
-chmod u+x ./tools/bin/ant
+OLD_ANT_HOME=$ANT_HOME
unset ANT_HOME
CP=$CLASSPATH
export CP
unset CLASSPATH
-$PWD/tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger -emacs $@
+CLASSPATH="./tools/centipede/lib/xml-apis.jar:./tools/centipede/lib/xerces.jar:./tools/centipede/lib/xalan.jar:./tools/centipede/lib/junit.jar:./tools/centipede/lib/jIzPress.jar:./tools/centipede/lib/jtidy.jar"
+export CLASSPATH
+
+$PWD/./tools/ant/bin/ant -listener org.apache.tools.ant.XmlLogger $@
+
+unset CLASSPATH
CLASSPATH=$CP
export CLASSPATH
+ANT_HOME=OLD_ANT_HOME
+export ANT_HOME
<?xml version="1.0"?>
<!DOCTYPE project [
-<!ENTITY preinit-target SYSTEM "./tools/targets/preinit.xtarget">
-<!ENTITY init-target SYSTEM "./tools/targets/init.xtarget">
-<!ENTITY compile-target SYSTEM "./tools/targets/compile.xtarget">
-<!ENTITY interactive-target SYSTEM "./tools/targets/interactive.xtarget">
-<!ENTITY scratchpad-target SYSTEM "./tools/targets/scratchpad.xtarget">
-<!ENTITY contrib-target SYSTEM "./tools/targets/contrib.xtarget">
-<!ENTITY util-target SYSTEM "./tools/targets/util.xtarget">
-<!ENTITY dev-target SYSTEM "./tools/targets/dev.xtarget">
-<!ENTITY test-target SYSTEM "./tools/targets/test.xtarget">
-<!ENTITY robot-target SYSTEM "./tools/targets/robot.xtarget">
-<!ENTITY docs-target SYSTEM "./tools/targets/docs.xtarget">
-]>
-
-<project default="interactive" basedir="." name="krysalis">
-
<!-- ===========================================================================
by
Nicola Ken Barozzi <barozzi@nicolaken.com>
- Marc Johnson <mjohnson at apache dot org>
+ Marc Johnson <mjohnson at apache dot org>
extends the Apache Cocoon Build System
(http://xml.apache.org/cocoon/)
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
==========================
<!-- =================================================================== -->
- <!-- external reference are relative to to tools/targets/*.xtarget -->
- <!-- =================================================================== -->
+ <!-- external reference are relative to to **/*.xtarget; -->
+ <!-- see entity decalrations at the start of this file -->
+ <!-- =================================================================== -->
<!-- Pre Initialization --> &preinit-target;
<!-- =================================================================== -->
+ <!-- Project targets --> &project-target;
+ <!-- =================================================================== -->
<!-- Initialization targets --> &init-target;
<!-- =================================================================== -->
<!-- Compile targets --> &compile-target;
--- /dev/null
+/*
+ * $Header$
+ * $Revision$
+ * $Date$
+ *
+ * ====================================================================
+ *
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * 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 acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software itself,
+ * if and wherever such third-party acknowlegements normally appear.
+ *
+ * 4. The names "The Jakarta Project", "Commons", and "Apache Software
+ * Foundation" must not be used to endorse or promote products derived
+ * from this software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * 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 APACHE SOFTWARE FOUNDATION 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+
+
+
+
+++ /dev/null
-<!-- try.xml ... these are trial build targets which are currently
- undergoing testing. When ready they can be moved into the main build.xml -->
-
-<project default="poibrowser" basedir="../../" name="POIBrowser build">
-
- <!-- =================================================================== -->
- <!-- GUI Run Target -->
- <!-- =================================================================== -->
- <target name="poibrowser">
- <taskdef name="user-input" classname="UserInput"
- classpath="./tools/anttasks"/>
-
- <property name="contrib.input.selection" value=""/>
- <user-input name="contrib.input.selection">Please select a file to view </user-input>
-
- <java classname="org.apache.poi.contrib.poibrowser.POIBrowser" fork="true">
- <arg value="${contrib.input.selection}"/>
- <classpath>
- <pathelement location="build/jakarta-poi/classes"/>
- <pathelement location="build/jakarta-poi/contrib/classes"/>
- </classpath>
- </java>
- </target>
-
-
-</project>
-
-<!-- End of file -->
--- /dev/null
+- 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)
+++ /dev/null
-<?xml version="1.0"?>
-<cocoon version="2.0">
-
-<!-- ================ Apache Cocoon configuration file ================== -->
-<!-- Please refer to the online documentation for full descriptions.
- The notes that accompany the settings below are intended to be concise.
--->
-
-<!-- ===================== General Components =========================== -->
-
- <!-- Parser:
- The default parser used in the Apache Cocoon 2 system is
- org.apache.cocoon.components.parser.JaxpParser
- Apache Cocoon 2 system 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
- <parser class="org.apache.cocoon.components.parser.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.cocoon.components.parser.Parser=org.apache.cocoon.components.parser.XercesParser
-
- validate: 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.
- -->
- <parser class="org.apache.cocoon.components.parser.JaxpParser">
- <parameter name="validate" value="false"/>
- </parser>
-
- <!-- Storing:
- freememory: Indicates how much memory should be left free in the
- JVM for normal operation.
- heapsize: Indicates how big the heap size can grow to before the
- cleanup thread kicks in.
- objectlifetime: Indicates how long (seconds) a cache object will
- be hold in memory. The object will be thrown out,
- when the time is over.
- interval: Indicates the interval of the cleanup thread in seconds.
- maxobjects: 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.
- usethread: Indicates whether we use a cleanup thread or not.
- threadpriority: Indicates the priority of the cleanup thread.
- (1 is the lowest priority and 10 is the highest).
- filesystem: Turns the filesystem storage for objects on or off.
- -->
- <store class="org.apache.cocoon.components.store.MRUMemoryStore">
- <parameter name="maxobjects" value="100"/>
- <parameter name="threadpriority" value="5"/>
- <parameter name="filesystem" value="true"/>
- </store>
-
- <!-- Store Janitor:
- freememory = How much free memory shall be available in the jvm
- heapsize = Indicates the limit of the jvm memory consumption
- cleanupthreadinterval = How often shall the cleanup thread check memory
- threadpriority = Indicates the thread priority of the cleanup thread
-
- Be careful with the heapsize and freememory paramters. Wrong values can
- cause high cpu usage.
- Example configuration:
- Jvm settings:
- -Xms100000000 -Xmx200000000
- store-janitor settings:
- <parameter name="freememory" value="50000000"/>
- <parameter name="heapsize" value="150000000"/>
-
- Heapsize must be higher then the -Xms parameter and freememory
- between those both.
- -->
- <store-janitor class="org.apache.cocoon.components.store.StoreJanitorImpl" logger="root.store">
- <parameter name="freememory" value="1000000"/>
- <parameter name="heapsize" value="60000000"/>
- <parameter name="cleanupthreadinterval" value="10"/>
- <parameter name="threadpriority" value="5"/>
- </store-janitor>
-
- <!-- 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"/>
-
- -->
- <resolver class="org.apache.cocoon.components.resolver.ResolverImpl">
- <parameter name="catalog" value="/resources/entities/catalog"/>
- <parameter name="verbosity" value="0"/>
- </resolver>
-
- <!-- XSLT Processor:
- -->
- <xslt-processor class="org.apache.cocoon.components.xslt.XSLTProcessorImpl" logger="root.xslt">
- <parameter name="use-store" value="true"/>
- </xslt-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>
- <protocol name="resource" class="org.apache.cocoon.components.url.ResourceURLFactory"/>
- <protocol name="context" class="org.apache.cocoon.components.url.ContextURLFactory"/>
- </url-factory>
-
- <!-- 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>
- </source-handler>
-
- <!-- Program Generator:
- The ProgamGenerator builds programs from a XML document written in a
- MarkupLanguage.
- auto-reload:
- root-package: persistent code repository.
- preload:
- -->
- <program-generator>
- <parameter name="auto-reload" value="false"/>
- <parameter name="root-package" value="orgapachecocoonwww"/>
- <parameter name="preload" value="true"/>
- </program-generator>
-
- <!-- Programming Languages:
- -->
- <programming-languages>
- <java-language name="java">
- <!-- compiler parameter specifies which class to use to compile Java.
- Possible variants are Javac and Jikes compilers.
- Javac requires javac.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"/>
- <!-- 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"/>
-
- <!-- 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">
- <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>
-
- <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 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>
--->
- </target-language>
- </xsp-language>
-
- <!-- Defines Sitemap Core logicsheet for the Java language -->
- <sitemap-language name="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>
-
- <!-- 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.
- -->
- <stream-pipeline class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
- pool-max="32" pool-min="4" pool-grow="4"/>
-
- <!-- Caching of stream pipeline:
- freememory: Indicates how much memory should be left free in the
- JVM for normal operation.
- heapsize: Indicates how big the heap size can grow to before the
- cleanup thread kicks in.
- objectlifetime: Indicates how long (seconds) a cache object will
- be hold in memory. The object will be thrown out,
- when the time is over.
- interval: Indicates the interval of the cleanup thread in seconds.
- maxobjects: 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.
- usethread: Indicates whether we use a cleanup thread or not.
- threadpriority: Indicates the priority of the cleanup thread.
- (1 is the lowest priority and 10 is the highest).
- filesystem: Turns the filesystem storage for objects on or off.
- -->
- <stream-cache class="org.apache.cocoon.components.store.MRUMemoryStore" logger="root.store">
- <parameter name="maxobjects" value="100"/>
- <parameter name="threadpriority" value="5"/>
- <parameter name="filesystem" value="true"/>
- </stream-cache>
-
- <!-- 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.pipeline.CachingEventPipeline"
- pool-max="32" pool-min="4" pool-grow="4"/>
-
- <!-- Caching of event pipeline:
- freememory: Indicates how much memory should be left free in the
- JVM for normal operation.
- heapsize: Indicates how big the heap size can grow to before the
- cleanup thread kicks in.
- objectlifetime: Indicates how long (seconds) a cache object will
- be hold in memory. The object will be thrown out,
- when the time is over.
- interval: Indicates the interval of the cleanup thread in seconds.
- maxobjects: 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.
- usethread: Indicates whether we use a cleanup thread or not.
- threadpriority: Indicates the priority of the cleanup thread.
- (1 is the lowest priority and 10 is the highest).
- filesystem: Turns the filesystem storage for objects on or off.
- -->
- <event-cache class="org.apache.cocoon.components.store.MRUMemoryStore" logger="root.store">
- <parameter name="maxobjects" value="100"/>
- <parameter name="threadpriority" value="5"/>
- <parameter name="filesystem" value="true"/>
- </event-cache>
-
- <!-- SAXConnector:
- Connects the various pipeline components.
- LoggingSAXConnector logs SAX events between pipeline components
- into cocoon's log file.
- Uncomment one of the following lines for using the SAXConnector.
- <sax-connector class="org.apache.cocoon.components.saxconnector.LoggingSAXConnector"/>
- -->
-
-<!-- ======================== 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="synchron" check-reload="no"/>
-
-</cocoon>
+++ /dev/null
-The LinkAlarm report for xml.apache.org/cocoon/ is at
-http://reports.linkalarm.com/373104199608/
-
-LinkAlarm scans are run after each release to detect any
-issues that need to be addressed prior to the next release.
-
-The LinkAlarm report gives detailed HTML views of the situation
-in an easy-to-read style. However, the summary file that is
-explained below has concise info about actual broken links.
-One other LinkAlarm page that is of special interest is the
-"mailto:" validation page (those errors are not included in
-the summary listing below).
-
-To facilitate the management of link mending by the cocoon-dev
-team, there is a summary file in the HEAD CVS at
- documentation/linkalarm-broken.txt
-This tab-delimited file has the following format ...
-
-status problem_link referring_page response_code meaning comment
-
-where "status" has these codes ...
- - ... not yet addressed
- F ... fixed
- ? ... has some issue (see the "comment" field)
- [1-3] ... external link has been broken for n runs
-
-To reduce duplication of effort, please update the "status"
-tag for each issue that you might address.
<!-- =========================== Components ================================ -->
<map:components>
-
- <map:generators default="file">
- <map:generator name="file" src="org.apache.cocoon.generation.FileGenerator" label="content"/>
- <!-- FIXME: Change this once better view handling is implemented -->
- <map:generator name="file-nolabel" src="org.apache.cocoon.generation.FileGenerator"/>
- </map:generators>
-
- <map:transformers default="xslt">
- <map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer">
- <use-request-parameters>false</use-request-parameters>
- <use-browser-capabilities-db>false</use-browser-capabilities-db>
- </map:transformer>
- </map:transformers>
-
- <map:readers default="resource">
- <map:reader name="resource" src="org.apache.cocoon.reading.ResourceReader"/>
- </map:readers>
-
- <map:serializers default="html">
- <map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serialization.HTMLSerializer">
- <encoding>iso8859-1</encoding>
- </map:serializer>
- <map:serializer name="xml" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
- <map:serializer name="links" src="org.apache.cocoon.serialization.LinkSerializer"/>
- </map:serializers>
-
- <map:matchers default="wildcard">
+ <!-- Components used are declared in the cocoon tool section -->
+
+ <map:generators default="file"/> <!-- available: file, serverpages -->
+ <map:transformers default="xslt"/> <!-- available: xslt -->
+ <map:readers default="resource"/> <!-- available: resource -->
+ <map:serializers default="html"/> <!-- available: html, xml, links -->
+ <map:matchers default="wildcard">
<map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher"/>
</map:matchers>
+
</map:components>
<!-- =========================== Views =================================== -->
<map:pipelines>
- <!-- C2 documentation pipeline -->
+ <!-- Documentation pipeline -->
<map:pipeline>
<map:match pattern="">
<map:redirect-to uri="index.html"/>
</map:match>
<map:match pattern="body-todo.xml">
- <map:generate type="file-nolabel" src="xdocs/todo.xml"/>
+ <map:generate type="file" src="xdocs/todo.xml"/>
<map:transform src="stylesheets/todo2document.xsl" label="content"/>
<map:transform src="stylesheets/document2docbook.xsl"/>
<map:transform src="stylesheets/docbook2body.xsl"/>
</map:match>
<map:match pattern="body-changes.xml">
- <map:generate type="file-nolabel" src="xdocs/changes.xml"/>
+ <map:generate type="file" src="xdocs/changes.xml"/>
<map:transform src="stylesheets/changes2document.xsl" label="content"/>
<map:transform src="stylesheets/document2docbook.xsl"/>
<map:transform src="stylesheets/docbook2body.xsl"/>
</map:match>
<map:match pattern="body-faq.xml">
- <map:generate type="file-nolabel" src="xdocs/faq.xml"/>
+ <map:generate type="file" src="xdocs/faq.xml"/>
<map:transform src="stylesheets/faq2document.xsl" label="content"/>
<map:transform src="stylesheets/document2docbook.xsl"/>
<map:transform src="stylesheets/docbook2body.xsl"/>
<map:serialize/>
</map:match>
- <!-- Generate the "doclist" - list of all documentation
- The first match generates each book.xml and adds a new attribute "uri".
- The second match aggregates each book.xml into a doclist and
- then converts it to a document.
- -->
- <map:match pattern="doclist/xdocs/**book.xml">
- <map:generate src="xdocs/{1}book.xml"/>
- <map:transform src="stylesheets/doclist.xsl">
- <map:parameter name="uri" value="{1}"/>
- </map:transform>
- <map:serialize type="xml"/>
- </map:match>
- <map:match pattern="body-doclist.xml">
- <map:aggregate element="doclist">
- <map:part src="cocoon:/doclist/xdocs/book.xml"/>
- <map:part src="cocoon:/doclist/xdocs/plan/book.xml"/>
- <map:part src="cocoon:/doclist/xdocs/poifs/book.xml"/>
- <map:part src="cocoon:/doclist/xdocs/hdf/book.xml"/>
- <map:part src="cocoon:/doclist/xdocs/hssf/book.xml"/>
- <map:part src="cocoon:/doclist/xdocs/hpsf/book.xml"/>
- <map:part src="cocoon:/doclist/xdocs/utils/book.xml"/>
- </map:aggregate>
- <map:transform src="stylesheets/doclist2document.xsl"/>
- <map:transform src="stylesheets/document2html.xsl"/>
- <map:serialize type="html"/>
- </map:match>
-
<map:match pattern="body-**.xml">
<map:generate src="xdocs/{1}.xml"/>
<map:transform src="stylesheets/document2docbook.xsl"/>
<!-- ================ Static =========================== -->
- <map:match pattern="**sample/**">
- <map:read src="xdocs/{1}sample/{2}" mime-type="text/plain"/>
- </map:match>
-
<map:match pattern="**.txt">
<map:read src="xdocs/{1}.txt" mime-type="text/plain"/>
</map:match>
- <map:match pattern="**resources/script.js">
- <map:read src="stylesheets/script-cli.js" mime-type="application/javascript"/>
- </map:match>
-
<map:match pattern="**resources/**.js">
<map:read src="stylesheets/{2}.js" mime-type="application/javascript"/>
</map:match>
<map:read src="images/{2}.gif" mime-type="image/gif"/>
</map:match>
- <map:match pattern="**graphics/**-*.jpg">
- <map:generate src="svg/{3}.xml"/>
- <map:transform src="svg/addlabel.xsl">
- <map:parameter name="use-request-parameters" value="true"/>
- <map:parameter name="label" value="{2}"/>
- </map:transform>
- <map:serialize type="svg2jpeg"/>
- </map:match>
-
</map:pipeline>
</map:pipelines>
+++ /dev/null
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
- <xsl:template match="changes">
- <xsl:variable name="file" select="concat('../', @file)"/>
- <xsl:variable name="version" select="@version"/>
- <xsl:apply-templates select="document($file)/changes/release[attribute::version=string($version)]"/>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:import href="announcement.xsl"/>
- <xsl:output method="text" indent="no"/>
-
- <xsl:template match="announcement">
- <xsl:variable name="titlelen" select="string-length(project)+9"/>
- <text>
- <xsl:value-of select="project"/><xsl:text> Released
-</xsl:text>
- <xsl:call-template name="line">
- <xsl:with-param name="len" select="$titlelen"/>
- </xsl:call-template>
- <xsl:text>
-</xsl:text>
- <xsl:apply-templates select="abstract"/>
- <xsl:apply-templates select="body"/>
- <xsl:text>
-For more information about </xsl:text>
- <xsl:value-of select="project"/>
- <xsl:text>, please go to
-</xsl:text>
- <xsl:value-of select="@site"/>
- <xsl:text>
-
-Changes with </xsl:text>
- <xsl:value-of select="project"/>
- <xsl:text>
-
-</xsl:text>
- <xsl:apply-templates select="changes"/>
- </text>
- </xsl:template>
-
- <xsl:template match="project"/>
- <xsl:template match="title"/>
-
- <xsl:template match="subproject">
- <xsl:variable name="titlelen" select="string-length(title)"/>
- <xsl:text>
-</xsl:text>
- <xsl:value-of select="title"/>
- <xsl:text>
-</xsl:text>
- <xsl:call-template name="line">
- <xsl:with-param name="len" select="$titlelen"/>
- </xsl:call-template>
- <xsl:text>
-</xsl:text>
- <xsl:apply-templates select="abstract"/>
- <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"/>
- <xsl:text>
-
-Changes with </xsl:text>
- <xsl:value-of select="title"/>
- <xsl:text>
-
-</xsl:text>
- <xsl:apply-templates select="changes"/>
- </xsl:template>
-
- <xsl:template match="abstract">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="p">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="link">
- <xsl:value-of select="."/>
- <xsl:text> (</xsl:text>
- <xsl:value-of select="@href"/>
- <xsl:text>)</xsl:text>
- </xsl:template>
-
- <xsl:template match="release">
- <xsl:for-each select="action">
- <xsl:text>*) </xsl:text>
- <xsl:value-of select="normalize-space(.)"/><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:stylesheet>
</xsl:template>
<xsl:template match="menu">
- <font color="#000000" size="+1"><xsl:value-of select="@label"/></font>
- <font size="-1">
- <ul>
+ <hr/>
+ <span class="s1"><xsl:value-of select="@label"/></span><br/>
<xsl:apply-templates/>
- </ul>
- </font><br/>
</xsl:template>
<xsl:template match="menu-item">
<xsl:if test="not(@type) or @type!='hidden'">
- <li><a href="{@href}"><font size="-1"><xsl:value-of select="@label"/></font></a></li>
+ <a href="{@href}" class="s1"><xsl:value-of select="@label"/></a><br/>
</xsl:if>
</xsl:template>
<xsl:template match="node()|@*" priority="-1"/>
-</xsl:stylesheet>
-
+</xsl:stylesheet>
\ No newline at end of file
<xsl:template match="book">
<body>
<title><xsl:value-of select="title"/></title>
- <center>
- <table width="80%">
- <tr>
- <td bgcolor="#F3DD61">
- <br/><center><b><xsl:value-of select="title"/><xsl:if test="subtitle"><xsl:text>: </xsl:text><xsl:value-of select="subtitle"/></xsl:if></b></center>
- <br/>
- </td>
- </tr>
- </table>
- </center><br/>
+ <table class="centered" align="center" width="100%">
+ <tbody>
+ <tr>
+ <td align="center">
+ <table class="title" cellspacing="0" cellpadding="1" border="0">
+ <tbody>
+ <tr>
+ <td bgcolor="#525d76">
+ <table class="centered" cellspacing="0" cellpadding="2" border="0" width="100%">
+ <tbody>
+ <tr>
+ <td bgcolor="#f3dd61">
+ <span class="title"><xsl:value-of select="title"/><xsl:if test="subtitle"><xsl:text>: </xsl:text><xsl:value-of select="subtitle"/></xsl:if></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
<xsl:apply-templates select="dedication"/>
<xsl:apply-templates select="bookinfo"/>
</body>
<body>
<xsl:if test="normalize-space(title)!=''">
<title><xsl:value-of select="title"/></title>
- <center>
- <table width="80%">
- <tr>
- <td bgcolor="#F3DD61">
- <font size="+1" face="Arial,sans-serif"><center><b><xsl:value-of select="title"/></b></center></font>
- </td>
- </tr>
- </table>
- </center>
+ <table class="centered" align="center" width="100%">
+ <tbody>
+ <tr>
+ <td align="center">
+ <table class="title" cellspacing="0" cellpadding="1" border="0">
+ <tbody>
+ <tr>
+ <td bgcolor="#525d76">
+ <table class="centered" cellspacing="0" cellpadding="2" border="0" width="100%">
+ <tbody>
+ <tr>
+ <td bgcolor="#f3dd61">
+ <span class="title"><xsl:value-of select="title"/></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
</xsl:if>
<xsl:if test="subtitle">
<xsl:apply-templates select="para"/>
- <br/>
+
<xsl:apply-templates select="section">
<xsl:with-param name="level" select="1"/>
<xsl:apply-templates/>
</xsl:template>
- <xsl:template match="entry[@role='th']">
- <td align="center" bgcolor="#006CB8" valign="top"
- style="font-weight: bold">
- <font color="#ffffff" size="-1"><xsl:apply-templates/></font>
- </td>
- </xsl:template>
-
<xsl:template match="entry">
<td align="left" bgcolor="#a0ddf0" valign="top">
<font color="#000000" size="-1"><xsl:apply-templates/></font>
+++ /dev/null
-<?xml version="1.0"?>
-
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
-
- <xsl:param name="uri"/>
-
- <xsl:template match="book">
- <book title="{@title}" uri="{$uri}">
- <xsl:copy-of select="node()"/>
- </book>
- </xsl:template>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0"?>
-
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
-
- <xsl:template match="doclist">
- <document>
- <header>
- <title>List of all documentation</title>
- </header>
- <body>
- <s1 title="Documentation List">
- <p>
- This complete list shows, at a glance, how all of the documentation
- fits together within the hierarchy of sections.
-<!-- For an overview of the documentation see the new
- "Table of Contents". -->
- </p>
- <p>
- The side-panel of each actual document is used to reach other documents
- that are relevant to that section. The side-panel will change, according
- to that section's location in the documentation hierarchy.
- </p>
- </s1>
- <xsl:apply-templates/>
- </body>
- </document>
- </xsl:template>
-
- <xsl:template match="book">
- <s1 title="{@title}">
- <xsl:if test="position()=1">
- <p>This first section is a list of the top-level documentation
- (and is a replica of this page's side-panel).</p>
- </xsl:if>
- <xsl:apply-templates/>
- </s1>
- </xsl:template>
-
- <xsl:template match="menu">
- <xsl:if test="@label!='Navigation'">
- <p><strong><xsl:value-of select="@label"/></strong></p>
- <ul>
- <xsl:apply-templates>
- <xsl:with-param name="uri" select="../@uri"/>
- </xsl:apply-templates>
- </ul>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="menu-item">
- <xsl:param name="uri"/>
- <xsl:if test="not(@type) or @type!='hidden'">
- <xsl:if test="@label!='Main' and @label!='User Documentation'">
-<!-- FIXME: ensure href is not full URL scheme:// -->
-<!--
- (uri=<xsl:value-of select="$uri"/> href=<xsl:value-of select="@href"/>)
--->
- <li><link href="{$uri}{@href}"><xsl:value-of select="@label"/></link>
- </li>
- </xsl:if>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="external">
- <xsl:param name="uri"/>
- <xsl:if test="not(@type) or @type!='hidden'">
- <xsl:choose>
- <!-- FIXME: specially handle menu item "API (Javadoc)", it causes a bug. -->
- <xsl:when test="starts-with(@label,'API')">
- <li><link href="http://xml.apache.org/cocoon/apidocs/"><xsl:value-of select="@label"/></link></li>
-<!-- FIXME: here is the bug:
- <li><link href="{@href}"><xsl:value-of select="@label"/></link></li>
- <li><xsl:value-of select="@label"/>href=<xsl:value-of select="@href"/></li>
--->
- </xsl:when>
- <xsl:otherwise>
- <li><link href="{@href}"><xsl:value-of select="@label"/></link></li>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:template>
-
-</xsl:stylesheet>
<table>
<tgroup>
<xsl:attribute name="cols"><xsl:value-of select="count(tr/td)"/></xsl:attribute>
- <xsl:apply-templates select="th"/>
+ <xsl:if test="th">
+ <thead>
+ <xsl:apply-templates select="th"/>
+ </thead>
+ </xsl:if>
<tbody>
<xsl:apply-templates select="tr"/>
</tbody>
</table>
</xsl:template>
- <xsl:template match="th">
- <entry role="th">
- <xsl:apply-templates/>
- </entry>
- </xsl:template>
-
- <xsl:template match="tr">
+ <xsl:template match="th|tr">
<row>
<xsl:apply-templates/>
</row>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
+
+++ /dev/null
-<?xml version="1.0"?>
-
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
-
-<!-- ====================================================================== -->
-<!-- document section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="/">
- <!-- checks if this is the included document to avoid neverending loop -->
- <xsl:if test="not(book)">
- <document>
- <xsl:choose>
- <xsl:when test="document/header/title">
- <title><xsl:value-of select="document/header/title"/></title>
- </xsl:when>
- <xsl:otherwise>
- <title>NO TITLE</title>
- </xsl:otherwise>
- </xsl:choose>
- <body text="#000000" link="#039acc" vlink="#0086b2" alink="#cc0000"
- topmargin="4" leftmargin="4" marginwidth="4" marginheight="4"
- bgcolor="#ffffff">
-
- <xsl:apply-templates/>
-
- </body>
- </document>
- </xsl:if>
-
- <xsl:if test="book">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- header section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="header">
- <!-- ignore on general document -->
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- body section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="s1">
- <div align="right">
- <table border="0" width="98%" cellspacing="0" cellpadding="0">
- <tr>
- <td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- <td width="100%" bgcolor="#0086b2">
- <font size="+1" face="arial,helvetica,sanserif" color="#ffffff">
- <img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
- </td>
- <td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-bottom.gif"><img src="images/void.gif" height="12" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- </tr>
- </table>
- <table border="0" width="98%" cellspacing="0" cellpadding="0">
- <tr>
- <td>
- <font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
- </td>
- </tr>
- </table>
- </div>
- <br/>
- </xsl:template>
-
- <xsl:template match="s2">
- <div align="right">
- <table border="0" width="95%" cellspacing="0" cellpadding="0">
- <tr>
- <td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- <td width="100%" bgcolor="#0086b2">
- <font face="arial,helvetica,sanserif" color="#ffffff">
- <img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
- </td>
- <td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-bottom.gif"><img src="images/void.gif" width="1" height="12" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- </tr>
- </table>
- <table border="0" width="95%" cellspacing="0" cellpadding="0">
- <tr>
- <td>
- <font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
- </td>
- </tr>
- </table>
- </div>
- <br/>
- </xsl:template>
-
- <xsl:template match="s3">
- <div align="right">
- <table border="0" width="90%" cellspacing="0" cellpadding="0">
- <tr>
- <td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- <td width="100%" bgcolor="#0086b2">
- <font size="-1" face="arial,helvetica,sanserif" color="#ffffff">
- <img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
- </td>
- <td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-bottom.gif"><img src="images/void.gif" width="1" height="12" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- </tr>
- </table>
- <table border="0" width="90%" cellspacing="0" cellpadding="0">
- <tr>
- <td>
- <font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
- </td>
- </tr>
- </table>
- </div>
- <br/>
- </xsl:template>
-
- <xsl:template match="s4">
- <div align="right">
- <table border="0" width="85%" cellspacing="0" cellpadding="0">
- <tr>
- <td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- <td width="100%" bgcolor="#0086b2">
- <font size="-2" face="arial,helvetica,sanserif" color="#ffffff">
- <img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
- </td>
- <td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- <td background="images/bar-border-bottom.gif"><img src="images/void.gif" width="1" height="12" vspace="0" hspace="0" border="0"/></td>
- <td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
- </tr>
- </table>
- <table border="0" width="85%" cellspacing="0" cellpadding="0">
- <tr>
- <td>
- <font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
- </td>
- </tr>
- </table>
- </div>
- <br/>
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- footer section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="footer">
- <!-- ignore on general documents -->
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- paragraph section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="p">
- <p align="justify"><xsl:apply-templates/></p>
- </xsl:template>
-
- <xsl:template match="note">
- <p>
- <table width="100%" cellspacing="3" cellpadding="0" border="0">
- <tr>
- <td width="28" valign="top">
- <img src="images/note.gif" width="28" height="29" vspace="0" hspace="0" border="0" alt="Note"/>
- </td>
- <td valign="top">
- <font size="-1" face="arial,helvetica,sanserif" color="#000000">
- <i>
- <xsl:apply-templates/>
- </i>
- </font>
- </td>
- </tr>
- </table>
- </p>
- </xsl:template>
-
- <xsl:template match="source">
- <div align="center">
- <table cellspacing="4" cellpadding="0" border="0">
- <tr>
- <td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- <td bgcolor="#0086b2" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- <td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td bgcolor="#0086b2" width="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- <td bgcolor="#ffffff"><pre><xsl:apply-templates/></pre></td>
- <td bgcolor="#0086b2" width="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- <tr>
- <td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- <td bgcolor="#0086b2" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- <td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
- </tr>
- </table>
- </div>
- </xsl:template>
-
- <xsl:template match="fixme">
- <!-- ignore on documentation -->
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- list section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="ul|ol|dl">
- <blockquote>
- <xsl:copy>
- <xsl:apply-templates/>
- </xsl:copy>
- </blockquote>
- </xsl:template>
-
- <xsl:template match="li">
- <xsl:copy>
- <xsl:apply-templates/>
- </xsl:copy>
- </xsl:template>
-
- <xsl:template match="sl">
- <ul>
- <xsl:apply-templates/>
- </ul>
- </xsl:template>
-
- <xsl:template match="dt">
- <li>
- <strong><xsl:value-of select="."/></strong>
- <xsl:text> - </xsl:text>
- <xsl:apply-templates select="dd"/>
- </li>
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- table section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="table">
- <table width="100%" border="0" cellspacing="2" cellpadding="2">
- <caption><xsl:value-of select="caption"/></caption>
- <xsl:apply-templates/>
- </table>
- </xsl:template>
-
- <xsl:template match="tr">
- <tr><xsl:apply-templates/></tr>
- </xsl:template>
-
- <xsl:template match="th">
- <td bgcolor="#039acc" colspan="{@colspan}" rowspan="{@rowspan}" valign="center" align="center">
- <font color="#ffffff" size="-1" face="arial,helvetica,sanserif">
- <b><xsl:apply-templates/></b> 
- </font>
- </td>
- </xsl:template>
-
- <xsl:template match="td">
- <td bgcolor="#a0ddf0" colspan="{@colspan}" rowspan="{@rowspan}" valign="top" align="left">
- <font color="#000000" size="-1" face="arial,helvetica,sanserif">
- <xsl:apply-templates/> 
- </font>
- </td>
- </xsl:template>
-
- <xsl:template match="tn">
- <td bgcolor="#ffffff" colspan="{@colspan}" rowspan="{@rowspan}">
-  
- </td>
- </xsl:template>
-
- <xsl:template match="caption">
- <!-- ignore since already used -->
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- markup section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="strong">
- <b><xsl:apply-templates/></b>
- </xsl:template>
-
- <xsl:template match="em">
- <i><xsl:apply-templates/></i>
- </xsl:template>
-
- <xsl:template match="code">
- <code><font face="courier, monospaced"><xsl:apply-templates/></font></code>
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- images section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="figure">
- <p align="center">
- <xsl:choose>
- <xsl:when test="string(@width) and string(@height)">
- <img src="{@src}" alt="{@alt}" width="{@width}" height="{@height}" border="0" vspace="4" hspace="4"/>
- </xsl:when>
- <xsl:otherwise>
- <img src="{@src}" alt="{@alt}" border="0" vspace="4" hspace="4"/>
- </xsl:otherwise>
- </xsl:choose>
- </p>
- </xsl:template>
-
- <xsl:template match="img">
- <img src="{@src}" alt="{@alt}" border="0" vspace="4" hspace="4" align="right"/>
- </xsl:template>
-
- <xsl:template match="icon">
- <img src="{@src}" alt="{@alt}" border="0" align="absmiddle"/>
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- links section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="link">
- <a href="{@href}"><xsl:apply-templates/></a>
- </xsl:template>
-
- <xsl:template match="connect">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="jump">
- <a href="{@href}#{@anchor}"><xsl:apply-templates/></a>
- </xsl:template>
-
- <xsl:template match="fork">
- <a href="{@href}" target="_blank"><xsl:apply-templates/></a>
- </xsl:template>
-
- <xsl:template match="anchor">
- <a name="{@id}"><xsl:comment>anchor</xsl:comment></a>
- </xsl:template>
-
-<!-- ====================================================================== -->
-<!-- specials section -->
-<!-- ====================================================================== -->
-
- <xsl:template match="br">
- <br/>
- </xsl:template>
-
-</xsl:stylesheet>
--- /dev/null
+<?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="announcement">
+ <xsl:variable name="titlelen" select="string-length(project)+9"/>
+ <text>
+ <xsl:value-of select="project"/><xsl:text> Released
+</xsl:text>
+ <xsl:call-template name="line">
+ <xsl:with-param name="len" select="$titlelen"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="abstract"/>
+ <xsl:apply-templates select="body"/>
+ <xsl:text>
+For more information about </xsl:text>
+ <xsl:value-of select="project"/>
+ <xsl:text>, please go to
+</xsl:text>
+ <xsl:value-of select="@site"/>
+ <xsl:text>
+
+Changes with </xsl:text>
+ <xsl:value-of select="project"/>
+ <xsl:text>
+
+</xsl:text>
+ <xsl:apply-templates select="changes"/>
+ </text>
+ </xsl:template>
+
+ <xsl:template match="project"/>
+ <xsl:template match="title"/>
+
+ <xsl:template match="subproject">
+ <xsl:variable name="titlelen" select="string-length(title)"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:value-of select="title"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="line">
+ <xsl:with-param name="len" select="$titlelen"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="abstract"/>
+ <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"/>
+ <xsl:text>
+
+Changes with </xsl:text>
+ <xsl:value-of select="title"/>
+ <xsl:text>
+
+</xsl:text>
+ <xsl:apply-templates select="changes"/>
+ </xsl:template>
+
+ <xsl:template match="abstract">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="p">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <xsl:value-of select="."/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>)</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="release">
+ <xsl:for-each select="action">
+ <xsl:text>*) </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/><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:stylesheet>
--- /dev/null
+<?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="announcement">
+ <xsl:variable name="titlelen" select="string-length(project)+9"/>
+ <text>
+ <xsl:value-of select="project"/><xsl:text> Released
+</xsl:text>
+ <xsl:call-template name="line">
+ <xsl:with-param name="len" select="$titlelen"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="abstract"/>
+ <xsl:apply-templates select="body"/>
+ <xsl:text>
+For more information about </xsl:text>
+ <xsl:value-of select="project"/>
+ <xsl:text>, please go to
+</xsl:text>
+ <xsl:value-of select="@site"/>
+ <xsl:text>
+
+Changes with </xsl:text>
+ <xsl:value-of select="project"/>
+ <xsl:text>
+
+</xsl:text>
+ <xsl:apply-templates select="changes"/>
+ </text>
+ </xsl:template>
+
+ <xsl:template match="project"/>
+ <xsl:template match="title"/>
+
+ <xsl:template match="subproject">
+ <xsl:variable name="titlelen" select="string-length(title)"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:value-of select="title"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="line">
+ <xsl:with-param name="len" select="$titlelen"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="abstract"/>
+ <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"/>
+ <xsl:text>
+
+Changes with </xsl:text>
+ <xsl:value-of select="title"/>
+ <xsl:text>
+
+</xsl:text>
+ <xsl:apply-templates select="changes"/>
+ </xsl:template>
+
+ <xsl:template match="abstract">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="p">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <xsl:value-of select="."/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>)</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="release">
+ <xsl:for-each select="action">
+ <xsl:text>*) </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/><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:stylesheet>
--- /dev/null
+<?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="announcement">
+ <xsl:variable name="titlelen" select="string-length(project)+9"/>
+ <text>
+ <xsl:value-of select="project"/><xsl:text> Released
+</xsl:text>
+ <xsl:call-template name="line">
+ <xsl:with-param name="len" select="$titlelen"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="abstract"/>
+ <xsl:apply-templates select="body"/>
+ <xsl:text>
+For more information about </xsl:text>
+ <xsl:value-of select="project"/>
+ <xsl:text>, please go to
+</xsl:text>
+ <xsl:value-of select="@site"/>
+ <xsl:text>
+
+Changes with </xsl:text>
+ <xsl:value-of select="project"/>
+ <xsl:text>
+
+</xsl:text>
+ <xsl:apply-templates select="changes"/>
+ </text>
+ </xsl:template>
+
+ <xsl:template match="project"/>
+ <xsl:template match="title"/>
+
+ <xsl:template match="subproject">
+ <xsl:variable name="titlelen" select="string-length(title)"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:value-of select="title"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:call-template name="line">
+ <xsl:with-param name="len" select="$titlelen"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates select="abstract"/>
+ <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"/>
+ <xsl:text>
+
+Changes with </xsl:text>
+ <xsl:value-of select="title"/>
+ <xsl:text>
+
+</xsl:text>
+ <xsl:apply-templates select="changes"/>
+ </xsl:template>
+
+ <xsl:template match="abstract">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="p">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <xsl:value-of select="."/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="@href"/>
+ <xsl:text>)</xsl:text>
+ </xsl:template>
+
+ <xsl:template match="release">
+ <xsl:for-each select="action">
+ <xsl:text>*) </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/><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:stylesheet>
+++ /dev/null
-rolloverImagesOn=new Array();
-rolloverImagesOff=new Array();
-
-function rolloverOn(name) {
- if(document.images[name] && rolloverImagesOn[name]) document.images[name].src=rolloverImagesOn[name].src;
-}
-
-function rolloverOff(name) {
- if(document.images[name] && rolloverImagesOff[name]) document.images[name].src=rolloverImagesOff[name].src;
-}
-
-
-function rolloverLoad(name,on,off) {
- rolloverImagesOn[name]=new Image();
- rolloverImagesOn[name].src=mangle(on);
- rolloverImagesOff[name]=new Image();
- rolloverImagesOff[name].src=mangle(off);
-}
-
-function mangle(name) {
-
- name = name.replace(/:/g, "_");
- name = name.replace(/\?/g, "_");
- name = name.replace(/\"/g, "\'");
-
- return name;
-}
+++ /dev/null
-rolloverImagesOn=new Array();
-rolloverImagesOff=new Array();
-
-function rolloverOn(name) {
- if(document.images[name] && rolloverImagesOn[name]) document.images[name].src=rolloverImagesOn[name].src;
-}
-
-function rolloverOff(name) {
- if(document.images[name] && rolloverImagesOff[name]) document.images[name].src=rolloverImagesOff[name].src;
-}
-
-function rolloverLoad(name,on,off) {
- rolloverImagesOn[name]=new Image();
- rolloverImagesOn[name].src=on;
- rolloverImagesOff[name]=new Image();
- rolloverImagesOff[name].src=off;
-}
\ No newline at end of file
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:version="1.0">
- <head><title><xsl:value-of select="/site/body/title"/></title></head>
- <body text="#000000" link="#525D76" vlink="#023264" alink="#023264"
- topmargin="4" leftmargin="4" marginwidth="4" marginheight="4"
- bgcolor="#ffffff">
+ <head>
+ <meta content="text/html; charset=ISO-8859-1"/>
+ <title><xsl:value-of select="/site/body/title"/></title>
+<style type="text/css">
+<![CDATA[ body { background-color: white; font-size: normal; color: black ; }
+ a { color: #525d76; }
+ a.black { color: #000000;}
+ table {border-width: 0; width: 100%}
+ table.centered {text-align: center}
+ table.title {text-align: center; width: 80%}
+ img{border-width: 0;}
+ span.s1 {font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #000000; }
+ span.s1_white { font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #ffffff; }
+ span.title {font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #000000; }
+ span.c1 {color: #000000; font-family: Helvetica, Arial, sans-serif}
+ tr.left {text-align: left}
+ hr { width: 100%; size: 2} ]]>
+</style>
+ </head>
+ <body>
+
+ <!-- header -->
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"/></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"/></td>
+</tr>
+<tr>
+<td bgcolor="#525d76" colspan="2"><span class="c1"><a href="http://www.apache.org/" class="black">www.apache.org ></a><a href="http://jakarta.apache.org/" class="black">jakarta.apache.org ></a><a class="black" href="http://jakarta.apache.org/poi/">jakarta.apache.org/poi</a></span></td>
+</tr>
+<tr>
+<td height="8"></td>
+</tr>
+</table>
+
+ <!-- main -->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
- <td valign="top" align="left">
- <a href="http://jakarta.apache.org/index.html">
- <img hspace="0" vspace="0" border="0" src="images/jakarta-logo.gif"/>
- </a>
- </td>
- <td width="100%" valign="top" align="left" bgcolor="#ffffff">
- <img hspace="0"
- vspace="0"
- border="0"
- align="right"
- src="images/header.gif"/>
- </td>
- </tr>
- <tr>
- <td width="100%" height="2" colspan="2"><hr noshade="" size="1"/></td>
- </tr>
- </table>
-
- <table width="100%" cellspacing="0" cellpadding="0" border="0">
- <tr>
- <td width="1%" valign="top"/>
+ <!-- left menu -->
+ <td width="1%"><br/></td>
<td width="14%" valign="top" nowrap="1">
- <br/>
- <font face="arial,helvetica,sanserif">
- <br/>
- <xsl:copy-of select="/site/menu/node()|@*"/>
- <br/>
- </font>
+ <xsl:copy-of select="/site/menu/node()|@*"/>
</td>
+ <td width="1%"><br/></td>
+
+ <!-- contents -->
<td width="*" valign="top" align="left">
<xsl:copy-of select="/site/body/node()|@*"/>
</td>
</tr>
</table>
<br/>
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr><td><hr noshade="" size="1"/></td></tr>
- <tr>
- <td align="center">
- <font face="arial,helvetica,sanserif" size="-1" color="#525D76">
- <i>
- Copyright ©2002 Apache Software Foundation
- </i>
- </font>
- </td>
- <td align="right" width="5%">
- <img hspace="0"
- vspace="0"
- border="0"
- align="right"
- src="images/cocoon2-small.jpg"/>
- </td>
- </tr>
+
+ <!-- footer -->
+ <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tbody>
+ <tr>
+ <td>
+ <hr size="1" noshade=""/>
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <i>Copyright © 2002 Apache Software Foundation</i>
+ </td>
+ </tr>
+ <tr>
+ <td width="100%" align="right">
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td width="100%" align="right">
+ <a href="http://krysalis.org/"><img src="images/krysalis-compatible.png" alt="Krysalis Logo"/></a>
+ <a href="http://xml.apache.org/cocoon/"><img src="images/built-with-cocoon.png" alt="Cocoon Logo"/></a>
+ </td>
+ </tr>
+ </tbody>
</table>
+
</body>
</html>
copyright="@year@ Poi Project"
xmlns:xlink="http://www.w3.org/1999/xlink">
- <menu label="Main">
- <menu-item label="Jakarta" href="http://jakarta.apache.org"/>
- </menu>
-
<menu label="About">
<menu-item label="Index" href="index.html"/>
<menu-item label="History" href="historyandfuture.html"/>
<menu label="References">
<menu-item label="In The News" href="inthenews.html"/>
<menu-item label="Live Sites" href="livesites.html"/>
- <menu-item label="Building" href="building.xml"/>
<menu-item label="XLS spec [PDF]" href="http://sc.openoffice.org/excelfileformat.pdf"/>
<menu-item label="Apache Cocoon" href="http://xml.apache.org/cocoon/"/>
<menu-item label="Resolutions" href="resolutions/index.html"/>
--- /dev/null
+#log4j.rootCategory=debug, globalLog
+log4j.category.org.apache.poi.hssf=debug, hssfLog
+log4j.category.org.apache.poi.hdf=debug, hdfLog
+log4j.category.org.apache.poi.hpsf=debug, hpsfLog
+log4j.category.org.apache.poi.poifs=debug, poifsLog
+log4j.category.org.apache.poi.util=debug, utilLog
+
+log4j.appender.hssfLog=org.apache.log4j.FileAppender
+log4j.appender.hssfLog.File=hssf.log
+log4j.appender.hssfLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.hssfLog.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
+log4j.appender.hdfLog=org.apache.log4j.FileAppender
+log4j.appender.hdfLog.File=hdf.log
+log4j.appender.hdfLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.hdfLog.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
+log4j.appender.hpsfLog=org.apache.log4j.FileAppender
+log4j.appender.hpsfLog.File=hpsf.log
+log4j.appender.hpsfLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.hpsfLog.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
+log4j.appender.poifsLog=org.apache.log4j.FileAppender
+log4j.appender.poifsLog.File=poifs.log
+log4j.appender.poifsLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.poifsLog.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
+log4j.appender.utilLog=org.apache.log4j.FileAppender
+log4j.appender.utilLog.File=util.log
+log4j.appender.utilLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.utilLog.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-/*
- * HSSFLog.java
- *
- * Created on December 3, 2001, 2:30 PM
- */
-package org.apache.poi.hssf;
-
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-
-/**
- * Provides logging to HSSF without it having to mess with
- * configuration/initialization.
- *
- * @author Andrew C. Oliver (acoliver at apache dot org)
- * @author Marc Johnson (mjohnson at apache dot org)
- */
-
-public class HSSFLog
- extends POILogFactory
-{
- private static HSSFLog _the_instance = null;
-
- /**
- * Create a new instance of HSSFLog
- */
-
- private HSSFLog()
- {
- super("hssflog.properties", "HSSF.log");
- }
-
- public static POILogger getPOILogger(final Class theclass)
- {
- if (_the_instance == null)
- {
- _the_instance = new HSSFLog();
- }
- return _the_instance.getLogger(theclass);
- }
-}
import java.util.ArrayList;
import java.util.Iterator;
-import org.apache.poi.hssf.HSSFLog;
+import org.apache.poi.util.POILogFactory;
import org.apache.poi.hssf
.record.*; // normally I don't do this, buy we literally mean ALL
import org.apache.poi.hssf.record.formula.FormulaUtil;
protected MergeCellsRecord merged = null;
protected int mergedloc = 0;
private static POILogger log =
- HSSFLog.getPOILogger(Sheet.class);
+ POILogFactory.getLogger(Sheet.class);
private ArrayList columnSizes =
null; // holds column info
protected ValueRecordsAggregate cells = null;
import org.apache.poi.hssf.record.*;
import org.apache.poi.util.POILogger;
-import org.apache.poi.hssf.HSSFLog;
+import org.apache.poi.util.POILogFactory;
/**
* Workbook
private int backuppos =
0; // holds the position of the backup record.
private static POILogger log =
- HSSFLog.getPOILogger(Workbook.class);
+ POILogFactory.getLogger(Workbook.class);
/**
* Creates new Workbook with no intitialization --useless right now
+++ /dev/null
-V[1.1:net.sourceforge.poi.hssf]
-S[net.sourceforge.poi.hssf:HSSFLog,net.sourceforge.poi.util:POILogFactory]{2:(140,107),(148,329)}
-P[net.sourceforge.poi.hssf:HSSFLog]{20,20}
-P[net.sourceforge.poi.hssf:HSSFLog]{279,20}
-P[net.sourceforge.poi.util:POILogFactory]{11,329}
*/
package org.apache.poi.hssf.usermodel;
-import org.apache.poi.hssf.HSSFLog;
+import org.apache.poi.util.POILogFactory;
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.*;
private Workbook book;
private int firstrow;
private int lastrow;
- private static POILogger log = HSSFLog.getPOILogger(HSSFSheet.class);
+ private static POILogger log = POILogFactory.getLogger(HSSFSheet.class);
/**
* Creates new HSSFSheet - called by HSSFWorkbook to create a sheet from
*/
package org.apache.poi.hssf.usermodel;
-import org.apache.poi.hssf.HSSFLog;
+import org.apache.poi.util.POILogFactory;
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.*;
*/
private ArrayList sheets;
- private static POILogger log = HSSFLog.getPOILogger(HSSFWorkbook.class);
+ private static POILogger log = POILogFactory.getLogger(HSSFWorkbook.class);
/**
* Creates new HSSFWorkbook from scratch (start here!)
import java.util.*;
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Hierarchy;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.apache.log4j.SimpleLayout;
-import org.apache.log4j.spi.RootCategory;
+import org.apache.commons.logging.*;
/**
* Provides logging without clients having to mess with
*
* @author Andrew C. Oliver (acoliver at apache dot org)
* @author Marc Johnson (mjohnson at apache dot org)
+ * @author Nicola Ken Barozzi (nicolaken at apache.org)
*/
public class POILogFactory
{
- private Hierarchy _creator;
+ private static LogFactory _creator = LogFactory.getFactory();
// map of POILogger instances, with classes as keys
- private Map _loggers;
- private static final String _fs = System.getProperty("file.separator");
+ private static Map _loggers = new HashMap();;
+
/**
* construct a POILogFactory.
- *
- * @param logFile the name of the file that contains the
- * properties governing the logs; should not be
- * null or empty
- * @param logPathProperty the name of the system property that
- * defines the path of logFile; can not be
- * null or empty
*/
- public POILogFactory(final String logFile, final String logPathProperty)
+ private POILogFactory()
{
- String logfile = logFile;
- String logpath = System.getProperty(logPathProperty);
-
- if ((logpath != null) && (logpath.trim().length() != 0))
- {
- logfile = logpath + _fs + logfile;
- }
- _creator =
- new Hierarchy(new RootCategory(Logger.getRootLogger()
- .getLevel()));
- try
- {
- new FileInputStream(logfile).close();
- new PropertyConfigurator().doConfigure(logfile, _creator);
- }
- catch (IOException e)
- {
- _creator.getRootLogger()
- .addAppender(new ConsoleAppender(new SimpleLayout(),
- ConsoleAppender.SYSTEM_OUT));
- _creator.getRootLogger().setLevel((Level)Level.INFO);
- }
- _loggers = new HashMap();
}
/**
* @return a POILogger for the specified class
*/
- public POILogger getLogger(final Class theclass)
+ public static POILogger getLogger(final Class theclass)
{
- POILogger logger = ( POILogger ) _loggers.get(theclass);
+ POILogger logger = null;
- if (logger == null)
+ if (_loggers.containsKey(theclass))
{
- logger = new POILogger(_creator.getLogger(theclass.getName()));
+ logger = ( POILogger ) _loggers.get(theclass);
+ }
+ else
+ {
+ logger = new POILogger(_creator.getInstance(theclass));
_loggers.put(theclass, logger);
}
return logger;
}
} // end public class POILogFactory
-
*/
package org.apache.poi.util;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.apache.commons.logging.Log;
import java.util.*;
*
* @author Marc Johnson (mjohnson at apache dot org)
* @author Glen Stampoultzis (glens at apache.org)
+ * @author Nicola Ken Barozzi (nicolaken at apache.org)
*/
public class POILogger
{
- private Logger log = null;
- public static final int DEBUG = Level.DEBUG_INT;
- public static final int INFO = Level.INFO_INT;
- public static final int WARN = Level.WARN_INT;
- public static final int ERROR = Level.ERROR_INT;
- public static final int FATAL = Level.FATAL_INT;
+ private Log log = null;
+ public static final int DEBUG = 1;
+ public static final int INFO = 3;
+ public static final int WARN = 5;
+ public static final int ERROR = 7;
+ public static final int FATAL = 9;
/**
* package scope so it cannot be instantiated outside of the util
* @param log the object that does the real work of logging
*/
- POILogger(final Logger log)
+ POILogger(final Log log)
{
this.log = log;
}
/**
* Log a message
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
- * @param obj1 The object to log. This is converted to a string.
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log.
*/
- public void log(final int logLevel, final Object obj1)
+ public void log(final int level, final Object obj1)
{
- log.log(Level.toLevel(logLevel), obj1);
+ if(level==FATAL)
+ {
+ if(log.isFatalEnabled())
+ {
+ log.fatal(obj1);
+ }
+ }
+ else if(level==ERROR)
+ {
+ if(log.isErrorEnabled())
+ {
+ log.error(obj1);
+ }
+ }
+ else if(level==WARN)
+ {
+ if(log.isWarnEnabled())
+ {
+ log.warn(obj1);
+ }
+ }
+ else if(level==INFO)
+ {
+ if(log.isInfoEnabled())
+ {
+ log.info(obj1);
+ }
+ }
+ else if(level==DEBUG)
+ {
+ if(log.isDebugEnabled())
+ {
+ log.debug(obj1);
+ }
+ }
+ else
+ {
+ if(log.isTraceEnabled())
+ {
+ log.trace(obj1);
+ }
+ }
+
+ }
+
+ /**
+ * Check if a logger is enabled to log at the specified level
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The logger to check.
+ */
+
+ public boolean check(final Log log, final int level)
+ {
+ if(level==FATAL)
+ {
+ if(log.isFatalEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==ERROR)
+ {
+ if(log.isErrorEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==WARN)
+ {
+ if(log.isWarnEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==INFO)
+ {
+ if(log.isInfoEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==DEBUG)
+ {
+ if(log.isDebugEnabled())
+ {
+ return true;
+ }
+ }
+
+ return false;
+
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first object to place in the message
* @param obj2 second object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2)
+ public void log(final int level, final Object obj1, final Object obj2)
{
- Level level = Level.toLevel(logLevel);
-
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(32).append(obj1).append(obj2));
+ log(level, new StringBuffer(32).append(obj1).append(obj2));
}
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third Object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level,
+ log(level,
new StringBuffer(48).append(obj1).append(obj2)
.append(obj3));
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third Object to place in the message
* @param obj4 fourth Object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level,
+ log(level,
new StringBuffer(64).append(obj1).append(obj2)
.append(obj3).append(obj4));
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third Object to place in the message
* @param obj5 fifth Object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level,
+ log(level,
new StringBuffer(80).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5));
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third Object to place in the message
* @param obj6 sixth Object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Object obj6)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(Level.toLevel(logLevel),
+ log(level ,
new StringBuffer(96).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6));
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third Object to place in the message
* @param obj7 seventh Object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Object obj6, final Object obj7)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level,
+ log(level,
new StringBuffer(112).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6)
.append(obj7));
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third Object to place in the message
* @param obj8 eighth Object to place in the message
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Object obj6, final Object obj7, final Object obj8)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level,
+ log(level,
new StringBuffer(128).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6)
.append(obj7).append(obj8));
/**
* Log a message
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 The object to log. This is converted to a string.
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1,
+ public void log(final int level, final Object obj1,
final Throwable exception)
{
- log.log(Level.toLevel(logLevel), obj1, exception);
+ log(level , obj1, exception);
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(32).append(obj1).append(obj2),
+ log(level, new StringBuffer(32).append(obj1).append(obj2),
exception);
}
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third object to place in the message
* @param exception An error message to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(48).append(obj1).append(obj2)
+ log(level, new StringBuffer(48).append(obj1).append(obj2)
.append(obj3), exception);
}
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third object to place in the message
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4,
final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(64).append(obj1).append(obj2)
+ log(level, new StringBuffer(64).append(obj1).append(obj2)
.append(obj3).append(obj4), exception);
}
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third object to place in the message
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(80).append(obj1).append(obj2)
+ log(level, new StringBuffer(80).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5), exception);
}
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third object to place in the message
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Object obj6, final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(Level.toLevel(logLevel), new StringBuffer(96).append(obj1)
+ log(level , new StringBuffer(96).append(obj1)
.append(obj2).append(obj3).append(obj4).append(obj5)
.append(obj6), exception);
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third object to place in the message
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Object obj6, final Object obj7,
final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(112).append(obj1).append(obj2)
+ log(level, new StringBuffer(112).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6)
.append(obj7), exception);
}
/**
* Log a message. Lazily appends Object parameters together.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param obj1 first Object to place in the message
* @param obj2 second Object to place in the message
* @param obj3 third object to place in the message
* @param exception An exception to be logged
*/
- public void log(final int logLevel, final Object obj1, final Object obj2,
+ public void log(final int level, final Object obj1, final Object obj2,
final Object obj3, final Object obj4, final Object obj5,
final Object obj6, final Object obj7, final Object obj8,
final Throwable exception)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
- log.log(level, new StringBuffer(128).append(obj1).append(obj2)
+ log(level, new StringBuffer(128).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6)
.append(obj7).append(obj8), exception);
}
* If the last parameter (after flattening) is a Throwable it is
* logged specially.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param message The message to log.
* @param obj1 The first object to match against.
*/
- public void logFormatted(final int logLevel, final String message,
+ public void logFormatted(final int level, final String message,
final Object obj1)
{
- commonLogFormatted(logLevel, message, new Object[]
+ commonLogFormatted(level, message, new Object[]
{
obj1
});
* If the last parameter (after flattening) is a Throwable it is
* logged specially.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param message The message to log.
* @param obj1 The first object to match against.
* @param obj2 The second object to match against.
*/
- public void logFormatted(final int logLevel, final String message,
+ public void logFormatted(final int level, final String message,
final Object obj1, final Object obj2)
{
- commonLogFormatted(logLevel, message, new Object[]
+ commonLogFormatted(level, message, new Object[]
{
obj1, obj2
});
* If the last parameter (after flattening) is a Throwable it is
* logged specially.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param message The message to log.
* @param obj1 The first object to match against.
* @param obj2 The second object to match against.
* @param obj3 The third object to match against.
*/
- public void logFormatted(final int logLevel, final String message,
+ public void logFormatted(final int level, final String message,
final Object obj1, final Object obj2,
final Object obj3)
{
- commonLogFormatted(logLevel, message, new Object[]
+ commonLogFormatted(level, message, new Object[]
{
obj1, obj2, obj3
});
* If the last parameter (after flattening) is a Throwable it is
* logged specially.
*
- * @param logLevel One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param message The message to log.
* @param obj1 The first object to match against.
* @param obj2 The second object to match against.
* @param obj4 The forth object to match against.
*/
- public void logFormatted(final int logLevel, final String message,
+ public void logFormatted(final int level, final String message,
final Object obj1, final Object obj2,
final Object obj3, final Object obj4)
{
- commonLogFormatted(logLevel, message, new Object[]
+ commonLogFormatted(level, message, new Object[]
{
obj1, obj2, obj3, obj4
});
}
- private void commonLogFormatted(final int logLevel, final String message,
+ private void commonLogFormatted(final int level, final String message,
final Object [] unflatParams)
{
- Level level = Level.toLevel(logLevel);
+
- if (log.isEnabledFor(level))
+ if (check(log, level))
{
Object[] params = flattenArrays(unflatParams);
if (params[ params.length - 1 ] instanceof Throwable)
{
- log(logLevel, StringUtil.format(message, params),
+ log(level, StringUtil.format(message, params),
( Throwable ) params[ params.length - 1 ]);
}
else
{
- log(logLevel, StringUtil.format(message, params));
+ log(level, StringUtil.format(message, params));
}
}
}
--- /dev/null
+###
+### Jindent 3.2x property file -- http://www.jindent.de
+###
+### this encapsulates my preferred style, plus project-specific style ...
+###
+### author: Marc Johnson
+###
+
+### General -- Convention
+
+conventionName = ""
+conventionString = ""
+conventionNotePosition = "none"
+blankLinesToSeparateConventionNote = 2
+
+### General -- Jindent Note
+
+jindentNotePosition = "none"
+blankLinesToSeparateJindentNote = 2
+
+### Header/Footer -- Header Template
+
+headerSmartMode = infinite
+headerIdentifyKey = "Copyright (c) 2002 The Apache Software Foundation"
+blankLinesBeforeHeader = 1
+header[00]="/* ===================================================================="
+header[01]=" * The Apache Software License, Version 1.1"
+header[02]=" *"
+header[03]=" * Copyright (c) 2002 The Apache Software Foundation. All rights"
+header[04]=" * reserved."
+header[05]=" *"
+header[06]=" * Redistribution and use in source and binary forms, with or without"
+header[07]=" * modification, are permitted provided that the following conditions"
+header[08]=" * are met:"
+header[09]=" *"
+header[10]=" * 1. Redistributions of source code must retain the above copyright"
+header[11]=" * notice, this list of conditions and the following disclaimer."
+header[12]=" *"
+header[13]=" * 2. Redistributions in binary form must reproduce the above copyright"
+header[14]=" * notice, this list of conditions and the following disclaimer in"
+header[15]=" * the documentation and/or other materials provided with the"
+header[16]=" * distribution."
+header[17]=" *"
+header[18]=" * 3. The end-user documentation included with the redistribution,"
+header[19]=" * if any, must include the following acknowledgment:"
+header[20]=" * "This product includes software developed by the"
+header[21]=" * Apache Software Foundation (http://www.apache.org/).""
+header[22]=" * Alternately, this acknowledgment may appear in the software itself,"
+header[23]=" * if and wherever such third-party acknowledgments normally appear."
+header[24]=" *"
+header[25]=" * 4. The names "Apache" and "Apache Software Foundation" and"
+header[26]=" * "Apache POI" must not be used to endorse or promote products"
+header[27]=" * derived from this software without prior written permission. For"
+header[28]=" * written permission, please contact apache@apache.org."
+header[29]=" *"
+header[30]=" * 5. Products derived from this software may not be called "Apache","
+header[31]=" * "Apache POI", nor may "Apache" appear in their name, without"
+header[32]=" * prior written permission of the Apache Software Foundation."
+header[33]=" *"
+header[34]=" * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED"
+header[35]=" * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES"
+header[36]=" * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE"
+header[37]=" * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR"
+header[38]=" * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,"
+header[39]=" * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT"
+header[40]=" * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF"
+header[41]=" * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND"
+header[42]=" * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,"
+header[43]=" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT"
+header[44]=" * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF"
+header[45]=" * SUCH DAMAGE."
+header[46]=" * ===================================================================="
+header[47]=" *"
+header[48]=" * This software consists of voluntary contributions made by many"
+header[49]=" * individuals on behalf of the Apache Software Foundation. For more"
+header[50]=" * information on the Apache Software Foundation, please see"
+header[51]=" * <http://www.apache.org/>."
+header[52]=" */"
+blankLinesAfterHeader = 1
+
+### Header/Footer -- Footer Template
+
+footerSmartMode = infinite
+footerIdentifyKey = ""
+blankLinesBeforeFooter = 0
+footer[00] = ""
+blankLinesAfterFooter = 0
+
+### Indentation -- Misc
+
+tabulatorSize = 8
+indentSize = 4
+firstLevelIndent = 0
+indentCaseFromSwitch = true
+labelNewLine = true
+indentLabels = true
+minimumCommentIndent = 3
+indentLeadingsByTabs = false
+indentCommentsByTabs = false
+indentDeclarationsByTabs = false
+indentAssignmentsByTabs = false
+
+### Indentation -- Alignment
+
+alignComments = true
+alignDeclarations = true
+alignAssignments = true
+alignTernaryConditions = false
+alignTernaryExpressions = true
+alignTooLongComments = true
+
+### Braces -- Style
+
+leftBraceNewLineGeneral = true
+rightBraceNewLineGeneral = true
+indentLeftBraceGeneral = 0
+indentRightBraceGeneral = 0
+indentAfterRightBraceGeneral = 0
+cuddleEmptyBracesGeneral = false
+indentCuddledBracesGeneral = 0
+
+leftBraceNewLineClassInterface = true
+rightBraceNewLineClassInterface = true
+indentLeftBraceClassInterface = 0
+indentRightBraceClassInterface = 0
+indentAfterRightBraceClassInterface = 0
+cuddleEmptyBracesClassInterface = false
+indentCuddledBracesClassInterface = 0
+
+leftBraceNewLineMethod = true
+rightBraceNewLineMethod = true
+indentLeftBraceMethod = 0
+indentRightBraceMethod = 0
+indentAfterRightBraceMethod = 0
+cuddleEmptyBracesMethod = false
+indentCuddledBracesMethod = 0
+
+leftBraceNewLineTryCatch = true
+rightBraceNewLineTryCatch = true
+indentLeftBraceTryCatch = 0
+indentRightBraceTryCatch = 0
+indentAfterRightBraceTryCatch = 0
+cuddleEmptyBracesTryCatch = false
+indentCuddledBracesTryCatch = 0
+
+### Braces -- Insert At
+
+insertBracesAtIfElse = true
+insertBracesAtFor = true
+insertBracesAtWhile = true
+insertBracesAtDoWhile = true
+insertParenthesisAtConditions = true
+
+### Braces -- If-Else
+
+singleIfStatementInOneLine = false
+singleElseStatementInOneLine = false
+specialElseIfTreatment = true
+
+### JavaDoc -- Misc
+
+deleteJavaDocComments = false
+formatJavaDocComments = true
+insertMissingJavaDocTags = true
+deleteObsoleteJavaDocTags = false
+createPublicClassInterfaceJavaDocs = true
+createFriendlyClassInterfaceJavaDocs = false
+createPrivateClassInterfaceJavaDocs = false
+createProtectedClassInterfaceJavaDocs = false
+createPublicMethodJavaDocs = false
+createFriendlyMethodJavaDocs = false
+createPrivateMethodJavaDocs = false
+createProtectedMethodJavaDocs = false
+createPublicFieldJavaDocs = false
+createFriendlyFieldJavaDocs = false
+createPrivateFieldJavaDocs = false
+createProtectedFieldJavaDocs = false
+
+### JavaDoc -- Templates
+
+sortExceptionsInTemplates = true
+javaDocMethodTop[00] = "/**"
+javaDocMethodTop[01] = " * Method $objectName$"
+javaDocMethodTop[02] = " *"
+javaDocMethodParamSeparator[00] = " *"
+javaDocMethodParam[00] = " * @param $paramName$"
+javaDocMethodReturn[00] = " *"
+javaDocMethodReturn[01] = " * @return"
+javaDocMethodExceptionSeparator[00] = " *"
+javaDocMethodException[00] = " * @exception $exceptionName$"
+javaDocMethodBottom[00] = " *"
+javaDocMethodBottom[01] = " */"
+javaDocConstructorTop[00] = "/**"
+javaDocConstructorTop[01] = " * Constructor $objectName$"
+javaDocConstructorTop[02] = " *"
+javaDocConstructorParamSeparator[00] = " *"
+javaDocConstructorParam[00] = " * @param $paramName$"
+javaDocConstructorExceptionSeparator[00] = " *"
+javaDocConstructorException[00] = " * @exception $exceptionName$"
+javaDocConstructorBottom[00] = " *"
+javaDocConstructorBottom[01] = " */"
+javaDocClass[00] = "/**"
+javaDocClass[01] = " * Class $objectName$"
+javaDocClass[02] = " *"
+javaDocClass[03] = " *"
+javaDocClass[04] = " * @author"
+javaDocClass[05] = " * @version %I%, %G%"
+javaDocClass[06] = " */"
+javaDocInterface[00] = "/**"
+javaDocInterface[01] = " * Interface $objectName$"
+javaDocInterface[02] = " *"
+javaDocInterface[03] = " *"
+javaDocInterface[04] = " * @author"
+javaDocInterface[05] = " * @version %I%, %G%"
+javaDocInterface[06] = " */"
+javaDocField[00] = "/** Field $objectName$ */"
+
+### Comments -- Format/Delete
+
+deleteBlockComments = false
+deleteSingleLineComments = false
+deleteTrailingComments = false
+deleteEndOfLineComments = false
+formatBlockComments = true
+formatSingleLineComments = true
+formatTrailingComments = true
+formatEndOfLineComments = true
+
+### Comments -- Exceptions
+
+neverIndentFirstColumnComments = true
+neverFormatFirstColumnComments = true
+neverFormatHeader = false
+neverFormatFooter = false
+
+### Separation -- Misc
+
+keepBlankLines = 0
+minLinesToInsertBlankLineInClasses = infinite
+minLinesToInsertBlankLineInMethods = infinite
+
+### Separation -- Separate
+
+separateChunksByComments = false
+allowBreakSeparatedFromCaseBlock = false
+blankLinesBetweenCaseBlocks = 1
+blankLinesBetweenChunks = 0
+comparableImportDepth = 2
+blankLinesToSeparateImports = 1
+blankLinesBetweenClassInterface = 2
+
+### Separation -- Insert Blank Lines
+
+blankLinesAfterDeclarations = 1
+blankLinesAfterMethods = 1
+blankLinesAfterClasses = 1
+blankLinesAfterInterfaces = 1
+blankLinesBeforeJavaDocComments = 1
+blankLinesAfterJavaDocComments = 1
+blankLinesBeforeBlockComments = 1
+blankLinesAfterBlockComments = 0
+blankLinesBeforeSingleLineComments = 1
+blankLinesAfterSingleLineComments = 0
+blankLinesBeforeEndOfLineComments = 1
+blankLinesAfterEndOfLineComments = 0
+blankLinesAfterSwitch = 1
+blankLinesAfterPackage = 1
+blankLinesAfterLastImport = 1
+
+### Whitespaces -- Padding
+
+separateAssignmentOperators = true
+separateConditionalOperators = true
+separateComparisonOperators = true
+separateNumericalOperators = true
+paddingCastParenthesis = true
+paddingParenthesis = false
+paddingBrackets = true
+paddingBraces = true
+
+### Whitespaces -- Space Before
+
+spaceBeforeMethodDeclarationParenthesis = false
+spaceBeforeMethodCallParenthesis = false
+spaceBeforeBrackets = false
+spaceBeforeBracketsInTypes = true
+spaceBeforeStatementParenthesis = true
+spaceBeforeConditionBang = true
+spaceBeforeCaseColon = true
+
+### Whitespaces -- Space After
+
+spaceAfterComma = true
+spaceAfterSemicolon = true
+spaceAfterCasting = true
+
+### Whitespaces -- No Spaces
+
+noSpacesInEmptyForExpressions = true
+
+### Line Wrapping -- Misc
+
+maxFieldElementsPerLine = 0
+wrapLines = true
+wrapBecauseOfComments = true
+wrapLongMethodNames = true
+maxLineLength = 78
+deepIndent = 45
+forceIndent = 8
+forceIndentTolerance = 4
+allowWrappingAfterAssignments = true
+allowWrappingAfterParenthesis = true
+preferWrappingAfterThrows = true
+alwaysWrapThrows = true
+alwaysWrapExtends = true
+alwaysWrapImplements = true
+indentWrappedThrows = 4
+indentWrappedExtends = 4
+indentWrappedImplements = 4
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-package org.apache.poi.util;
-
-import org.apache.log4j.Category;
-
-import junit.framework.*;
-
-import java.io.*;
-
-/**
- * @author Marc Johnson (mjohnson at apache dot org)
- * @author Glen Stampoultzis (glens at apache.org)
- */
-
-public class TestPOILogFactory
- extends TestCase
-{
- private String _test_file_path;
- private static final String _test_file_path_property =
- "UTIL.testdata.path";
- private static final String _fs =
- System.getProperty("file.separator");
-
- /**
- * Creates new TestPOILogFactory
- *
- * @param name
- */
-
- public TestPOILogFactory(String name)
- {
- super(name);
- _test_file_path = System.getProperty(_test_file_path_property) + _fs;
- }
-
- /**
- * test log creation
- *
- * @exception IOException
- */
-
- public void testLog()
- throws IOException
- {
-
- // empty log files
- // check the path exists first
- assertTrue("Checking for existance of test property directory was "
- + _test_file_path, new File(_test_file_path).exists());
- new File("p1.log").delete();
- new File("p2.log").delete();
- POILogFactory f1 = new POILogFactory(_test_file_path
- + "test_properties1", "foo");
- POILogFactory f2 = new POILogFactory(_test_file_path
- + "test_properties2", "bar");
- POILogger l1 = f1.getLogger(f1.getClass());
- POILogger l2 = f2.getLogger(f2.getClass());
-
- l1.log(POILogger.WARN, "test1");
- l2.log(POILogger.WARN, "test2");
-
- // It appears necessary that sleep is required for files to be
- // written on Win2000. Tried manually closing appenders with
- // no luck.
- try
- {
- Thread.sleep(4000);
- }
- catch (InterruptedException letBuffersFlush)
- {
- }
- assertTrue(new File("p1.log").length() != 0);
- assertTrue(new File("p2.log").length() != 0);
- }
-
- /**
- * main method to run the unit tests
- *
- * @param ignored_args
- */
-
- public static void main(String [] ignored_args)
- {
- System.out.println("Testing util.POILogFactory functionality");
- junit.textui.TestRunner.run(TestPOILogFactory.class);
- }
-}
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-package org.apache.poi.util;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.io.FileInputStream;
-
-/**
- * Tests the log class.
- *
- * @author Glen Stampoultzis (glens at apache.org)
- * @author Marc Johnson (mjohnson at apache dot org)
- */
-
-public class TestPOILogger
- extends TestCase
-{
- private String _test_file_path;
- private static final String _test_file_path_property =
- "UTIL.testdata.path";
- private static final String _fs =
- System.getProperty("file.separator");
- private static final String _log_file = "POILogger.log";
-
- /**
- * Constructor TestPOILogger
- *
- *
- * @param s
- *
- */
-
- public TestPOILogger(String s)
- {
- super(s);
- }
-
- /**
- * Method setUp
- *
- *
- * @exception Exception
- *
- */
-
- protected void setUp()
- throws Exception
- {
- super.setUp();
- _test_file_path = System.getProperty(_test_file_path_property) + _fs;
- }
-
- /**
- * Test different types of log output.
- *
- * @exception Exception
- */
-
- public void testVariousLogTypes()
- throws Exception
- {
- assertTrue(
- "Checking for existance of test property directory, looking for "
- + _test_file_path, new File(_test_file_path).exists());
- new File(_log_file).delete();
- POILogFactory f1 = new POILogFactory(_test_file_path
- + "test_properties3", "foo");
- POILogger log = f1.getLogger(getClass());
-
- log.log(POILogger.WARN, "Test = ", new Integer(1));
- log.logFormatted(POILogger.ERROR, "Test param 1 = %, param 2 = %",
- "2", new Integer(3));
- log.logFormatted(POILogger.ERROR, "Test param 1 = %, param 2 = %",
- new int[]
- {
- 4, 5
- });
- log.logFormatted(POILogger.ERROR,
- "Test param 1 = %1.1, param 2 = %0.1", new double[]
- {
- 4, 5.23
- });
-
- // It appears necessary that sleep is required for files to be
- // written on Win2000. Tried manually closing appenders with
- // no luck.
- try
- {
- Thread.sleep(4000);
- }
- catch (InterruptedException letBuffersFlush)
- {
- }
- String s = fileRead(_log_file);
-
- assertTrue(s.indexOf("Test = 1") > 0);
- assertTrue(s.indexOf("Test param 1 = 2, param 2 = 3") > 0);
- assertTrue(s.indexOf("Test param 1 = 4, param 2 = 5") > 0);
- assertTrue(s.indexOf("Test param 1 = 4, param 2 = 5.2") > 0);
- }
-
- /**
- * Reads the contents of a file.
- *
- * @param fileName The name of the file to read.
- * @return The file contents or null if read failed.
- *
- * @exception Exception
- */
-
- public String fileRead(String fileName)
- throws Exception
- {
- StringBuffer buf = new StringBuffer();
- FileInputStream in = new FileInputStream(fileName);
- int count;
- byte[] b = new byte[ 512 ];
-
- while ((count = in.read(b)) > 0) // blocking read
- {
- buf.append(new String(b, 0, count));
- }
- in.close();
- return buf.toString();
- }
-}
+++ /dev/null
-#! /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 "$@"
+++ /dev/null
-@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"
-
+++ /dev/null
-#! /bin/sh
-
-# Args: DIR command
-cd "$1"
-CMD="$2"
-shift
-shift
-
-exec $CMD "$@"
+++ /dev/null
-@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%
-
+++ /dev/null
-#! /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()
+++ /dev/null
-set LOCALCLASSPATH=%1;%LOCALCLASSPATH%
-
+++ /dev/null
-#!/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;
- }
<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">
<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}">
</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="**"/>
<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="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"/>
</fileset>
</path>
+ <path id="examples.classpath">
+ <!-- FIXME : how to build a path that references a property set in 'init' target ? -->
+ <pathelement path="./build/jakarta-poi/classes"/>
+ </path>
+
<path id="scratchpad.classpath">
<fileset dir="./lib/core">
<include name="*.jar"/>
<pathelement path="./build/jakarta-poi/classes"/>
</path>
+
</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}" />
+++ /dev/null
-xalan-2.2.0-D14.jar
-xerces-1.4.4.jar
-xml-apis.jar
+++ /dev/null
-- 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)
+++ /dev/null
-###
-### Jindent 3.2x property file -- http://www.jindent.de
-###
-### this encapsulates my preferred style, plus project-specific style ...
-###
-### author: Marc Johnson
-###
-
-### General -- Convention
-
-conventionName = ""
-conventionString = ""
-conventionNotePosition = "none"
-blankLinesToSeparateConventionNote = 2
-
-### General -- Jindent Note
-
-jindentNotePosition = "none"
-blankLinesToSeparateJindentNote = 2
-
-### Header/Footer -- Header Template
-
-headerSmartMode = infinite
-headerIdentifyKey = "Copyright (c) 2002 The Apache Software Foundation"
-blankLinesBeforeHeader = 1
-header[00]="/* ===================================================================="
-header[01]=" * The Apache Software License, Version 1.1"
-header[02]=" *"
-header[03]=" * Copyright (c) 2002 The Apache Software Foundation. All rights"
-header[04]=" * reserved."
-header[05]=" *"
-header[06]=" * Redistribution and use in source and binary forms, with or without"
-header[07]=" * modification, are permitted provided that the following conditions"
-header[08]=" * are met:"
-header[09]=" *"
-header[10]=" * 1. Redistributions of source code must retain the above copyright"
-header[11]=" * notice, this list of conditions and the following disclaimer."
-header[12]=" *"
-header[13]=" * 2. Redistributions in binary form must reproduce the above copyright"
-header[14]=" * notice, this list of conditions and the following disclaimer in"
-header[15]=" * the documentation and/or other materials provided with the"
-header[16]=" * distribution."
-header[17]=" *"
-header[18]=" * 3. The end-user documentation included with the redistribution,"
-header[19]=" * if any, must include the following acknowledgment:"
-header[20]=" * "This product includes software developed by the"
-header[21]=" * Apache Software Foundation (http://www.apache.org/).""
-header[22]=" * Alternately, this acknowledgment may appear in the software itself,"
-header[23]=" * if and wherever such third-party acknowledgments normally appear."
-header[24]=" *"
-header[25]=" * 4. The names "Apache" and "Apache Software Foundation" and"
-header[26]=" * "Apache POI" must not be used to endorse or promote products"
-header[27]=" * derived from this software without prior written permission. For"
-header[28]=" * written permission, please contact apache@apache.org."
-header[29]=" *"
-header[30]=" * 5. Products derived from this software may not be called "Apache","
-header[31]=" * "Apache POI", nor may "Apache" appear in their name, without"
-header[32]=" * prior written permission of the Apache Software Foundation."
-header[33]=" *"
-header[34]=" * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED"
-header[35]=" * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES"
-header[36]=" * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE"
-header[37]=" * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR"
-header[38]=" * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,"
-header[39]=" * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT"
-header[40]=" * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF"
-header[41]=" * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND"
-header[42]=" * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,"
-header[43]=" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT"
-header[44]=" * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF"
-header[45]=" * SUCH DAMAGE."
-header[46]=" * ===================================================================="
-header[47]=" *"
-header[48]=" * This software consists of voluntary contributions made by many"
-header[49]=" * individuals on behalf of the Apache Software Foundation. For more"
-header[50]=" * information on the Apache Software Foundation, please see"
-header[51]=" * <http://www.apache.org/>."
-header[52]=" */"
-blankLinesAfterHeader = 1
-
-### Header/Footer -- Footer Template
-
-footerSmartMode = infinite
-footerIdentifyKey = ""
-blankLinesBeforeFooter = 0
-footer[00] = ""
-blankLinesAfterFooter = 0
-
-### Indentation -- Misc
-
-tabulatorSize = 8
-indentSize = 4
-firstLevelIndent = 0
-indentCaseFromSwitch = true
-labelNewLine = true
-indentLabels = true
-minimumCommentIndent = 3
-indentLeadingsByTabs = false
-indentCommentsByTabs = false
-indentDeclarationsByTabs = false
-indentAssignmentsByTabs = false
-
-### Indentation -- Alignment
-
-alignComments = true
-alignDeclarations = true
-alignAssignments = true
-alignTernaryConditions = false
-alignTernaryExpressions = true
-alignTooLongComments = true
-
-### Braces -- Style
-
-leftBraceNewLineGeneral = true
-rightBraceNewLineGeneral = true
-indentLeftBraceGeneral = 0
-indentRightBraceGeneral = 0
-indentAfterRightBraceGeneral = 0
-cuddleEmptyBracesGeneral = false
-indentCuddledBracesGeneral = 0
-
-leftBraceNewLineClassInterface = true
-rightBraceNewLineClassInterface = true
-indentLeftBraceClassInterface = 0
-indentRightBraceClassInterface = 0
-indentAfterRightBraceClassInterface = 0
-cuddleEmptyBracesClassInterface = false
-indentCuddledBracesClassInterface = 0
-
-leftBraceNewLineMethod = true
-rightBraceNewLineMethod = true
-indentLeftBraceMethod = 0
-indentRightBraceMethod = 0
-indentAfterRightBraceMethod = 0
-cuddleEmptyBracesMethod = false
-indentCuddledBracesMethod = 0
-
-leftBraceNewLineTryCatch = true
-rightBraceNewLineTryCatch = true
-indentLeftBraceTryCatch = 0
-indentRightBraceTryCatch = 0
-indentAfterRightBraceTryCatch = 0
-cuddleEmptyBracesTryCatch = false
-indentCuddledBracesTryCatch = 0
-
-### Braces -- Insert At
-
-insertBracesAtIfElse = true
-insertBracesAtFor = true
-insertBracesAtWhile = true
-insertBracesAtDoWhile = true
-insertParenthesisAtConditions = true
-
-### Braces -- If-Else
-
-singleIfStatementInOneLine = false
-singleElseStatementInOneLine = false
-specialElseIfTreatment = true
-
-### JavaDoc -- Misc
-
-deleteJavaDocComments = false
-formatJavaDocComments = true
-insertMissingJavaDocTags = true
-deleteObsoleteJavaDocTags = false
-createPublicClassInterfaceJavaDocs = true
-createFriendlyClassInterfaceJavaDocs = false
-createPrivateClassInterfaceJavaDocs = false
-createProtectedClassInterfaceJavaDocs = false
-createPublicMethodJavaDocs = false
-createFriendlyMethodJavaDocs = false
-createPrivateMethodJavaDocs = false
-createProtectedMethodJavaDocs = false
-createPublicFieldJavaDocs = false
-createFriendlyFieldJavaDocs = false
-createPrivateFieldJavaDocs = false
-createProtectedFieldJavaDocs = false
-
-### JavaDoc -- Templates
-
-sortExceptionsInTemplates = true
-javaDocMethodTop[00] = "/**"
-javaDocMethodTop[01] = " * Method $objectName$"
-javaDocMethodTop[02] = " *"
-javaDocMethodParamSeparator[00] = " *"
-javaDocMethodParam[00] = " * @param $paramName$"
-javaDocMethodReturn[00] = " *"
-javaDocMethodReturn[01] = " * @return"
-javaDocMethodExceptionSeparator[00] = " *"
-javaDocMethodException[00] = " * @exception $exceptionName$"
-javaDocMethodBottom[00] = " *"
-javaDocMethodBottom[01] = " */"
-javaDocConstructorTop[00] = "/**"
-javaDocConstructorTop[01] = " * Constructor $objectName$"
-javaDocConstructorTop[02] = " *"
-javaDocConstructorParamSeparator[00] = " *"
-javaDocConstructorParam[00] = " * @param $paramName$"
-javaDocConstructorExceptionSeparator[00] = " *"
-javaDocConstructorException[00] = " * @exception $exceptionName$"
-javaDocConstructorBottom[00] = " *"
-javaDocConstructorBottom[01] = " */"
-javaDocClass[00] = "/**"
-javaDocClass[01] = " * Class $objectName$"
-javaDocClass[02] = " *"
-javaDocClass[03] = " *"
-javaDocClass[04] = " * @author"
-javaDocClass[05] = " * @version %I%, %G%"
-javaDocClass[06] = " */"
-javaDocInterface[00] = "/**"
-javaDocInterface[01] = " * Interface $objectName$"
-javaDocInterface[02] = " *"
-javaDocInterface[03] = " *"
-javaDocInterface[04] = " * @author"
-javaDocInterface[05] = " * @version %I%, %G%"
-javaDocInterface[06] = " */"
-javaDocField[00] = "/** Field $objectName$ */"
-
-### Comments -- Format/Delete
-
-deleteBlockComments = false
-deleteSingleLineComments = false
-deleteTrailingComments = false
-deleteEndOfLineComments = false
-formatBlockComments = true
-formatSingleLineComments = true
-formatTrailingComments = true
-formatEndOfLineComments = true
-
-### Comments -- Exceptions
-
-neverIndentFirstColumnComments = true
-neverFormatFirstColumnComments = true
-neverFormatHeader = false
-neverFormatFooter = false
-
-### Separation -- Misc
-
-keepBlankLines = 0
-minLinesToInsertBlankLineInClasses = infinite
-minLinesToInsertBlankLineInMethods = infinite
-
-### Separation -- Separate
-
-separateChunksByComments = false
-allowBreakSeparatedFromCaseBlock = false
-blankLinesBetweenCaseBlocks = 1
-blankLinesBetweenChunks = 0
-comparableImportDepth = 2
-blankLinesToSeparateImports = 1
-blankLinesBetweenClassInterface = 2
-
-### Separation -- Insert Blank Lines
-
-blankLinesAfterDeclarations = 1
-blankLinesAfterMethods = 1
-blankLinesAfterClasses = 1
-blankLinesAfterInterfaces = 1
-blankLinesBeforeJavaDocComments = 1
-blankLinesAfterJavaDocComments = 1
-blankLinesBeforeBlockComments = 1
-blankLinesAfterBlockComments = 0
-blankLinesBeforeSingleLineComments = 1
-blankLinesAfterSingleLineComments = 0
-blankLinesBeforeEndOfLineComments = 1
-blankLinesAfterEndOfLineComments = 0
-blankLinesAfterSwitch = 1
-blankLinesAfterPackage = 1
-blankLinesAfterLastImport = 1
-
-### Whitespaces -- Padding
-
-separateAssignmentOperators = true
-separateConditionalOperators = true
-separateComparisonOperators = true
-separateNumericalOperators = true
-paddingCastParenthesis = true
-paddingParenthesis = false
-paddingBrackets = true
-paddingBraces = true
-
-### Whitespaces -- Space Before
-
-spaceBeforeMethodDeclarationParenthesis = false
-spaceBeforeMethodCallParenthesis = false
-spaceBeforeBrackets = false
-spaceBeforeBracketsInTypes = true
-spaceBeforeStatementParenthesis = true
-spaceBeforeConditionBang = true
-spaceBeforeCaseColon = true
-
-### Whitespaces -- Space After
-
-spaceAfterComma = true
-spaceAfterSemicolon = true
-spaceAfterCasting = true
-
-### Whitespaces -- No Spaces
-
-noSpacesInEmptyForExpressions = true
-
-### Line Wrapping -- Misc
-
-maxFieldElementsPerLine = 0
-wrapLines = true
-wrapBecauseOfComments = true
-wrapLongMethodNames = true
-maxLineLength = 78
-deepIndent = 45
-forceIndent = 8
-forceIndentTolerance = 4
-allowWrappingAfterAssignments = true
-allowWrappingAfterParenthesis = true
-preferWrappingAfterThrows = true
-alwaysWrapThrows = true
-alwaysWrapExtends = true
-alwaysWrapImplements = true
-indentWrappedThrows = 4
-indentWrappedExtends = 4
-indentWrappedImplements = 4
+++ /dev/null
-<?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 <<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/KEYS">
- <samp>http://jakarta.apache.org/builds/jakarta-avalon/release/KEYS</samp></a>>.</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>,
-> pgpk -a KEYS
-> pgpv <xsl:value-of select="$filename"/>.asc
-<i>or</i>,
-> pgp -ka KEYS
-> pgp <xsl:value-of select="$filename"/>.asc
-<i>or</i>,
-> gpg --import KEYS
-> 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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
-
+++ /dev/null
-<?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" />&content-type=text/x-cvsweb-markup</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?r1=<xsl:value-of select="revision" />&r2=<xsl:value-of select="prevrevision"/>&diff_format=h</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="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>
-
+++ /dev/null
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output indent="yes"/>
- <xsl:param name="stack">bodyroot</xsl:param>
-
- <xsl:template match="html|HTML">
- <xsl:text disable-output-escaping="yes">
- <![CDATA[ <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "../dtd/document-v10.dtd"> ]]>
- </xsl:text>
- <document>
- <xsl:apply-templates select = "head" />
- <xsl:apply-templates select="body"/>
- </document>
- </xsl:template>
-
- <xsl:template match="head|HEAD">
- <header>
- <title><xsl:value-of select="title" /><xsl:value-of select="TITLE" /></title>
- <authors>
- <person id="AO" name="Andrew C. Oliver" email="acoliver2@users.sourceforge.net"/>
- </authors>
- </header>
- </xsl:template>
-
- <xsl:template match="body|BODY">
- <body><s1><xsl:attribute name="title"><xsl:value-of select="'pippo'"></xsl:value-of></xsl:attribute>
- <xsl:apply-templates select="*"/>
- </s1>
- </body>
- </xsl:template>
-
-
- <xsl:template match="meta|META"/>
-
- <xsl:template match="title|TITLE"/>
-
- <xsl:template match="h1|H1">
- </xsl:template>
-
- <xsl:template match="h2|H2">
- <s2><xsl:attribute name="title"><xsl:value-of select="."></xsl:value-of></xsl:attribute></s2>
- </xsl:template>
-
- <xsl:template match="h3|H3">
- <s2><xsl:attribute name="title"><xsl:value-of select="."></xsl:value-of></xsl:attribute></s2>
- </xsl:template>
-
- <xsl:template match="h4|H4">
- <s2><xsl:attribute name="title"><xsl:value-of select="."></xsl:value-of></xsl:attribute></s2>
- </xsl:template>
-
- <xsl:template match="dl|DL">
- <!--<dl>
- <xsl:apply-templates select = "dd|DD|dt|DT" />
- </dl>-->
- </xsl:template>
-
- <xsl:template match="dd|DD">
- <!--<dd>
- <xsl:apply-templates select = "*" />
- </dd> -->
- </xsl:template>
-
- <xsl:template match="dt|DT">
- <!--<dt>
- <xsl:apply-templates select = "*" />
- </dt>-->
- </xsl:template>
-
- <xsl:template match="p|P">
- <xsl:choose>
- <xsl:when test="name(parent::node())='li' or name(parent::node())='LI'">
- <xsl:value-of select = "*" />
- </xsl:when>
- <xsl:otherwise>
- <p>
- <xsl:value-of select = "*" />
- </p>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="pre|PRE">
- <xsl:choose>
- <xsl:when test="name(parent::node())='li' or name(parent::node())='LI'">
- <code>
- <xsl:value-of disable-output-escaping="no" select="." />
- </code>
- </xsl:when>
- <xsl:otherwise>
- <source>
- <xsl:value-of disable-output-escaping="no" select="." />
- </source>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="ul|UL">
- <ul>
- <xsl:apply-templates select = "li|LI" />
- </ul>
- </xsl:template>
-
- <xsl:template match="li|LI">
- <li>
- <xsl:apply-templates select = "*" />
- </li>
- </xsl:template>
-
- <xsl:template match="ol|OL">
- <ol>
- <xsl:apply-templates select = "li|LI" />
- </ol>
- </xsl:template>
-
- <xsl:template match="div|DIV">
- <xsl:apply-templates select = "*" />
- </xsl:template>
-
- <xsl:template match="br|BR">
- <br/>
- </xsl:template>
-
- <xsl:template match="i|I">
- <em>
- <xsl:value-of select = "*" />
- </em>
- </xsl:template>
-
- <xsl:template match="b|B">
- <strong>
- <xsl:value-of select = "*" />
- </strong>
- </xsl:template>
-
- <xsl:template match="u|U">
- <em>
- <xsl:value-of select = "*" />
- </em>
- </xsl:template>
-
- <xsl:template match="a|A">
- <link><xsl:attribute name="href"><xsl:value-of select="@href" /><xsl:value-of select="@HREF" /></xsl:attribute>
- <xsl:value-of select = "." />
- </link>
- </xsl:template>
-
- <xsl:template match="img|IMG">
- <img><xsl:attribute name="src"><xsl:value-of select="@src" /></xsl:attribute></img>
- </xsl:template>
-
-
-</xsl:stylesheet>
+++ /dev/null
-<?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.
------------------------------------------------------------
-
-***********************************************************
- COCOON PATCH QUEUE UPDATE
-
- 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>
+++ /dev/null
-<?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">
- ]]>
- <!-- this file is automatically generated by build patchqueue-xdocs -->
- </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>
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-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 ClassAvailable
- 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;
- }
-}
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-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;
- }
- }
-}
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-import java.io.*;
-
-import java.util.*;
-
-import org.apache.tools.ant.*;
-import org.apache.tools.ant.taskdefs.*;
-import org.apache.tools.ant.types.*;
-
-/**
- * Add components to the sitemap
- *
- * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
- * @version CVS $Revision$ $Date$
- */
-
-public final class SitemapTool
- extends Task
-{
- private String sitemap;
- private String directory;
- private String extension;
-
- public void setSitemap(String sitemap)
- {
- this.sitemap = sitemap;
- }
-
- public void setDirectory(String directory)
- {
- this.directory = directory;
- }
-
- public void setExtension(String extension)
- {
- this.extension = extension;
- }
-
- public void execute()
- throws BuildException
- {
- if (this.sitemap == null)
- {
- throw new BuildException("sitemap attribute is required",
- location);
- }
- if (this.extension == null)
- {
- throw new BuildException("extension attribute is required",
- location);
- }
- if (this.directory == null)
- {
- throw new BuildException("directory attribute is required",
- location);
- }
- try
- {
-
- // process recursive
- this.process(new File(this.directory), this.extension,
- this.sitemap);
- }
- catch (IOException ioe)
- {
- throw new BuildException("IOException: " + ioe);
- }
- }
-
- /**
- * Scan recursive
- */
-
- private void process(final File directoryFile, final String ext,
- final String sitemapLocation)
- throws IOException, BuildException
- {
- final File[] files = directoryFile.listFiles();
-
- for (int i = 0; i < files.length; i++)
- {
- if (files[ i ].isDirectory() == true)
- {
- this.process(files[ i ], ext, sitemapLocation);
- }
- else
- {
- if (files[ i ].getName().endsWith("." + ext) == true)
- {
- System.out.println("Reading: "
- + files[ i ].getAbsolutePath());
- final String data =
- this.load(files[ i ].getAbsolutePath());
-
- // separate the data by lines
- final StringTokenizer st = new StringTokenizer(data);
-
- while (st.hasMoreElements() == true)
- {
-
- // now get the properties of a line. These are separated by a "|"
- final String line =
- ( String ) st.nextElement();
- final StringTokenizer prop =
- new StringTokenizer(line, "|");
- String category = null;
- String componentName = null;
- String className = null;
- String configuration = null;
- String label = null;
- String mimeType = null;
-
- while (prop.hasMoreElements() == true)
- {
- final String property =
- ( String ) prop.nextElement();
- final int pos = property.indexOf(":");
- final String propName =
- property.substring(0, pos);
- final String propVal = property.substring(pos
- + 1);
-
- if (propName.equals("category"))
- {
- category = propVal;
- }
- else if (propName.equals("componentName"))
- {
- componentName = propVal;
- }
- else if (propName.equals("componentClass"))
- {
- className = propVal;
- }
- else if (propName.equals("configuration"))
- {
- configuration = propVal;
- }
- else if (propName.equals("label"))
- {
- label = propVal;
- }
- else if (propName.equals("mimeType"))
- {
- mimeType = propVal;
- }
- else
- {
- throw new BuildException(
- "Unknown property " + propName
- + " in file "
- + files[ i ].getAbsolutePath());
- }
- }
-
- // Test for required values
- if (category == null)
- {
- throw new BuildException(
- "category property is required in file "
- + files[ i ].getAbsolutePath(), location);
- }
- if (componentName == null)
- {
- throw new BuildException(
- "componentName property is required in file "
- + files[ i ].getAbsolutePath(), location);
- }
- if (className == null)
- {
- throw new BuildException(
- "componentClass property is required in file "
- + files[ i ].getAbsolutePath(), location);
- }
- this.add(sitemapLocation, category, componentName,
- className, configuration, label, mimeType);
- }
- }
- }
- }
- }
-
- /**
- * Add entry to sitemap
- */
-
- private void add(final String sitemapLocation, final String category,
- final String componentName, final String className,
- final String configuration, final String label,
- final String mimeType)
- throws IOException
- {
- final String data = load(sitemapLocation);
- final String searchString =
- new StringBuffer("</map:").append(category).append(">")
- .toString();
- final int pos = data.indexOf(searchString);
- int categoryStartPos =
- data
- .indexOf(new StringBuffer("<map:").append(category).append(">")
- .toString());
-
- if (categoryStartPos == -1)
- {
- categoryStartPos =
- data
- .indexOf(new StringBuffer("<map:").append(category)
- .append(" ").toString());
- }
- if ((categoryStartPos != -1) && (categoryStartPos < pos)
- && (pos != -1))
- {
-
- // the category exists, now search if a component
- // with the name already exists
- int componentPos =
- data.substring(categoryStartPos, pos)
- .indexOf(new StringBuffer("name=\"").append(componentName)
- .append("\"").toString());
-
- if (componentPos == -1)
- {
- StringBuffer buffer =
- new StringBuffer(data.substring(0, pos)).append("<map:")
- .append(category.substring(0, category.length() - 1))
- .append(" name=\"").append(componentName)
- .append("\" src=\"").append(className).append("\"")
- .append(" logger=\"sitemap.")
- .append(category.substring(0, category.length() - 1))
- .append('.').append(componentName).append('\"');
-
- if ((null != mimeType) && (mimeType.length() > 0))
- {
- buffer.append(" mime-type=\"").append(mimeType)
- .append("\"");
- }
- if ((null != label) && (label.length() > 0))
- {
- buffer.append(" label=\"").append(label).append("\"");
- }
- if (null != configuration)
- {
- buffer.append(">\n").append(configuration).append("\n")
- .append("</map:")
- .append(category.substring(0, category.length() - 1))
- .append(">\n");
- }
- else
- {
- buffer.append("/>\n");
- }
- buffer.append(data.substring(pos)).toString();
- this.save(sitemapLocation, buffer.toString());
- }
- }
- }
-
- /**
- * Load a file and return the content as a string.
- */
-
- public String load(String filename)
- throws IOException
- {
- FileInputStream fis;
-
- fis = new FileInputStream(filename);
- int available;
- byte[] data = null;
- byte[] tempData;
- byte[] copyData;
-
- do
- {
- available = 1024;
- tempData = new byte[ available ];
- available = fis.read(tempData, 0, available);
- if (available > 0)
- {
- copyData = new byte[ ((data == null) ? 0
- : data.length) + available ];
- if (data != null)
- {
- System.arraycopy(data, 0, copyData, 0, data.length);
- }
- System.arraycopy(tempData, 0, copyData, ((data == null) ? 0
- : data.length), available);
- data = copyData;
- }
- }
- while (available > 0);
- fis.close();
- return ((data != null) ? new String(data)
- : "");
- }
-
- /**
- * Save the string to a file
- */
-
- public void save(String filename, String data)
- throws IOException
- {
- FileWriter fw = new FileWriter(filename);
-
- fw.write(data);
- fw.close();
- }
-}
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-import java.io.InputStreamReader;
-import java.io.BufferedReader;
-import java.io.IOException;
-
-/**
- * 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 UserInput
- extends org.apache.tools.ant.Task
-{
- private String question;
- private String name;
- private String value;
-
- /**
- * Constructor.
- */
-
- public UserInput()
- {
- 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 question 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;
- }
-}
+++ /dev/null
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002 The Apache Software Foundation. All rights
- * reserved.
- *
- * 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 by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache POI" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache POI", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * 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 APACHE SOFTWARE FOUNDATION 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.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-import java.io.*;
-
-import java.util.*;
-
-import org.apache.tools.ant.*;
-import org.apache.tools.ant.taskdefs.*;
-import org.apache.tools.ant.types.*;
-
-/**
- * Add components to the cocoon.xconf
- * This is only a ugly first shot
- *
- * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
- * @version CVS $Revision$ $Date$
- */
-
-public final class XConfTool
- extends Task
-{
- private String configuration;
- private String directory;
- private String extension;
-
- public void setConfiguration(String configuration)
- {
- this.configuration = configuration;
- }
-
- public void setDirectory(String directory)
- {
- this.directory = directory;
- }
-
- public void setExtension(String extension)
- {
- this.extension = extension;
- }
-
- public void execute()
- throws BuildException
- {
- if (this.configuration == null)
- {
- throw new BuildException("configuration attribute is required",
- location);
- }
- if (this.extension == null)
- {
- throw new BuildException("extension attribute is required",
- location);
- }
- if (this.directory == null)
- {
- throw new BuildException("directory attribute is required",
- location);
- }
- try
- {
-
- // process recursive
- this.process(new File(this.directory), this.extension,
- this.configuration);
- }
- catch (IOException ioe)
- {
- throw new BuildException("IOException: " + ioe);
- }
- }
-
- /**
- * Scan recursive
- */
-
- private void process(final File directoryFile, final String ext,
- final String configurationLocation)
- throws IOException, BuildException
- {
- final File[] files = directoryFile.listFiles();
-
- for (int i = 0; i < files.length; i++)
- {
- if (files[ i ].isDirectory() == true)
- {
- this.process(files[ i ], ext, configurationLocation);
- }
- else
- {
- if (files[ i ].getName().endsWith("." + ext) == true)
- {
- System.out.println("Reading: "
- + files[ i ].getAbsolutePath());
- final String newComponent =
- this.load(files[ i ].getAbsolutePath());
-
- this.add(configurationLocation, newComponent);
- }
- }
- }
- }
-
- /**
- * Add entry to sitemap
- */
-
- private void add(final String configurationLocation,
- final String newComponent)
- throws IOException
- {
- final String data = load(configurationLocation);
-
- // first search if component already present:
- if (data.indexOf(newComponent) == -1)
- {
- int pos = data.indexOf("<cocoon");
-
- if (pos != -1)
- {
- pos = data.indexOf(">", pos);
- if (pos != -1)
- {
- StringBuffer buffer =
- new StringBuffer(data.substring(0, pos + 1))
- .append("\n\n").append(newComponent)
- .append(data.substring(pos + 1));
-
- this.save(configurationLocation, buffer.toString());
- }
- }
- }
- }
-
- /**
- * Load a file and return the content as a string.
- */
-
- public String load(String filename)
- throws IOException
- {
- FileInputStream fis;
-
- fis = new FileInputStream(filename);
- int available;
- byte[] data = null;
- byte[] tempData;
- byte[] copyData;
-
- do
- {
- available = 1024;
- tempData = new byte[ available ];
- available = fis.read(tempData, 0, available);
- if (available > 0)
- {
- copyData = new byte[ ((data == null) ? 0
- : data.length) + available ];
- if (data != null)
- {
- System.arraycopy(data, 0, copyData, 0, data.length);
- }
- System.arraycopy(tempData, 0, copyData, ((data == null) ? 0
- : data.length), available);
- data = copyData;
- }
- }
- while (available > 0);
- fis.close();
- return ((data != null) ? new String(data)
- : "");
- }
-
- /**
- * Save the string to a file
- */
-
- public void save(String filename, String data)
- throws IOException
- {
- FileWriter fw = new FileWriter(filename);
-
- fw.write(data);
- fw.close();
- }
-}
+++ /dev/null
-<?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>
- <h1 align="center"><xsl:value-of select="title"/><xsl:text> Released</xsl:text></h1>
- <xsl:apply-templates select="abstract"/>
-
- <xsl:for-each select="project">
- <h2>About <xsl:value-of select="title"/></h2>
- <xsl:apply-templates select="."/>
- </xsl:for-each>
-
- </xsl:template>
-
- <xsl:template match="project">
- <p><xsl:apply-templates select="description"/></p>
-
- <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="abstract">
- <div align="center">
- <xsl:apply-templates/>
- </div>
- </xsl:template>
-
- <xsl:template match="para">
- <p><xsl:apply-templates/></p>
- </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>
+++ /dev/null
-<?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 <<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/KEYS">
- <samp>http://jakarta.apache.org/builds/jakarta-avalon/release/KEYS</samp></a>>.</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>,
-> pgpk -a KEYS
-> pgpv <xsl:value-of select="$filename"/>.asc
-<i>or</i>,
-> pgp -ka KEYS
-> pgp <xsl:value-of select="$filename"/>.asc
-<i>or</i>,
-> gpg --import KEYS
-> 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>
+++ /dev/null
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:lxslt="http://xml.apache.org/xslt"
- xmlns:my-ext="ext1"
- extension-element-prefixes="my-ext"
->
-
- <xsl:output method="xml" indent="yes"/>
- <!--The component and its script are in the lxslt namespace and define the
- implementation of the extension.-->
- <lxslt:component prefix="my-ext" elements="timelapse" functions="getdate">
- <lxslt:script lang="javascript">
- var month = new Array (
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December"
- );
-
- function getdate()
- {
- var d = new Date();
- var mo = month[d.getMonth()];
- var dy = d.getDate();
- var yr = d.getFullYear();
- var dateString = dy + " " + mo + " " + yr;
- return dateString;
- }
- </lxslt:script>
- </lxslt:component>
-
- <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">
- <h3><xsl:value-of select="my-ext:getdate()"/> - <xsl:value-of select="title"/><xsl:text> Released</xsl:text></h3>
- <xsl:apply-templates select="abstract"/>
-
- <xsl:for-each select="project">
- <p><b>About <xsl:value-of select="title"/>:</b>
- <xsl:apply-templates select="."/>
- </p>
- </xsl:for-each>
-
- <hr noshade="" size="1"/>
- </xsl:template>
-
- <xsl:template match="project">
- <xsl:apply-templates select="description"/>
-
- <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>
-
- <!-- ignore changelog for site -->
- </xsl:template>
-
- <xsl:template match="abstract">
- <p><xsl:apply-templates/></p>
- </xsl:template>
-
- <xsl:template match="description">
- <xsl:choose>
- <xsl:when test="para">
- <xsl:apply-templates select="para[position()=1]/node()"/>
- <xsl:apply-templates select="para[position()>1]"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="para">
- <p><xsl:apply-templates/></p>
- </xsl:template>
-
- <xsl:template match="ulink">
- <a href="{@uri}"><xsl:value-of select="."/></a>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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" />&content-type=text/x-cvsweb-markup</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="href"><xsl:value-of select="$cvsweb"/><xsl:value-of select="$module" />/<xsl:value-of select="name" />?r1=<xsl:value-of select="revision" />&r2=<xsl:value-of select="prevrevision"/>&diff_format=h</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="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>
-
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- 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="**"/>
- <!--
- <include name="**/Manifest.mf"/>
- <include name="**/*.xsl"/>
- <include name="**/*.roles"/>
- <include name="**/*.xconf"/>
- <include name="META-INF/**"/>
- -->
- </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="**"/>
- <!--
- <include name="**/Manifest.mf"/>
- <include name="**/*.xsl"/>
- <include name="**/*.roles"/>
- <include name="**/*.xconf"/>
- <include name="META-INF/**"/>
- -->
- </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="**"/>
- <!--
- <include name="**/Manifest.mf"/>
- <include name="**/*.xsl"/>
- <include name="**/*.roles"/>
- <include name="**/*.xconf"/>
- <include name="META-INF/**"/>
- -->
- </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>
-
- <target name="cleandocs" depends="init" description="* Cleans the build docs directories">
- <delete dir="${build.docs}"/>
- </target>
-
- <target name="distclean" depends="clean" description="* Cleans everything to the original state">
- <delete dir="${build.root}"/>
- <delete file="${dist.target}/${Name}-${version}.tar.gz"/>
- <delete file="${dist.target}/${Name}-${version}.tar"/>
- <delete file="${dist.target}/${Name}-${version}.zip"/>
- <delete file="${dist.target}/${Name}-${version}-src.tar.gz"/>
- <delete file="${dist.target}/${Name}-${version}-src.tar"/>
- <delete file="${dist.target}/${Name}-${version}-src.zip"/>
- <delete file="${dist.target}/${Name}-${version}-bin.tar.gz"/>
- <delete file="${dist.target}/${Name}-${version}-bin.tar"/>
- <delete file="${dist.target}/${Name}-${version}-bin.zip"/>
- <delete dir="${dist.root}"/>
- </target>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- Interactive scratchpad builds -->
- <!-- =================================================================== -->
- <target name="contrib" depends="init" description="Interactive Contributors' Build">
- <echo message="--------------------------------------------------------------"/>
- <echo message=" "/>
- <echo message=" ${fullname} ${version} CONTRIB"/>
- <echo message=" "/>
- <echo message="--------------------------------------------------------------"/>
- <echo message="Building with ${ant.version}"/>
- <echo message="using build file ${ant.file}"/>
- <echo message="--------------------------------------------------------------"/>
- <echo message=" "/>
- <echo message=" These are CONTRIB BUILDS. They are not guaranteed to work."/>
- <echo message=" You have been warned. "/>
- <echo message=" "/>
- <echo message=" poibrowser - POIBrowser 0.10 GUI POI Viewer"/>
- <echo message=" -"/>
- <echo message=" -"/>
- <echo message=" -"/>
- <echo message=" -"/>
- <echo message=" -"/>
- <echo message=" "/>
- <taskdef name="user-input" classname="UserInput"
- classpath="./tools/anttasks"/>
-
- <property name="input.selection" value="poibrowser"/>
- <user-input name="input.selection">Please select a target </user-input>
-
- <ant antfile="src/contrib/builds/${input.selection}.xml"/>
-
- </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- 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="**"/>
+ <!--
+ <include name="**/Manifest.mf"/>
+ <include name="**/*.xsl"/>
+ <include name="**/*.roles"/>
+ <include name="**/*.xconf"/>
+ <include name="META-INF/**"/>
+ -->
+ </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="**"/>
+ <!--
+ <include name="**/Manifest.mf"/>
+ <include name="**/*.xsl"/>
+ <include name="**/*.roles"/>
+ <include name="**/*.xconf"/>
+ <include name="META-INF/**"/>
+ -->
+ </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="**"/>
+ <!--
+ <include name="**/Manifest.mf"/>
+ <include name="**/*.xsl"/>
+ <include name="**/*.roles"/>
+ <include name="**/*.xconf"/>
+ <include name="META-INF/**"/>
+ -->
+ </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>
+
+ <target name="cleandocs" depends="init" description="* Cleans the build docs directories">
+ <delete dir="${build.docs}"/>
+ </target>
+
+ <target name="distclean" depends="clean" description="* Cleans everything to the original state">
+ <delete dir="${build.root}"/>
+ <delete file="${dist.target}/${Name}-${version}.tar.gz"/>
+ <delete file="${dist.target}/${Name}-${version}.tar"/>
+ <delete file="${dist.target}/${Name}-${version}.zip"/>
+ <delete file="${dist.target}/${Name}-${version}-src.tar.gz"/>
+ <delete file="${dist.target}/${Name}-${version}-src.tar"/>
+ <delete file="${dist.target}/${Name}-${version}-src.zip"/>
+ <delete file="${dist.target}/${Name}-${version}-bin.tar.gz"/>
+ <delete file="${dist.target}/${Name}-${version}-bin.tar"/>
+ <delete file="${dist.target}/${Name}-${version}-bin.zip"/>
+ <delete dir="${dist.root}"/>
+ </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- Interactive scratchpad builds -->
+ <!-- =================================================================== -->
+ <target name="contrib" depends="init" description="Interactive Contributors' Build">
+ <echo message="--------------------------------------------------------------"/>
+ <echo message=" "/>
+ <echo message=" ${fullname} ${version} CONTRIB"/>
+ <echo message=" "/>
+ <echo message="--------------------------------------------------------------"/>
+ <echo message="Building with ${ant.version}"/>
+ <echo message="using build file ${ant.file}"/>
+ <echo message="--------------------------------------------------------------"/>
+ <echo message=" "/>
+ <echo message=" These are CONTRIB BUILDS. They are not guaranteed to work."/>
+ <echo message=" You have been warned. "/>
+ <echo message=" "/>
+ <echo message=" poibrowser - POIBrowser 0.10 GUI POI Viewer"/>
+ <echo message=" -"/>
+ <echo message=" -"/>
+ <echo message=" -"/>
+ <echo message=" -"/>
+ <echo message=" -"/>
+ <echo message=" "/>
+ <taskdef name="user-input" classname="UserInput"
+ classpath="./tools/anttasks"/>
+
+ <property name="input.selection" value="poibrowser"/>
+ <user-input name="input.selection">Please select a target </user-input>
+
+ <ant antfile="src/contrib/builds/${input.selection}.xml"/>
+
+ </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- Creates the source distribution -->
+ <!-- =================================================================== -->
+ <target name="dist-src" depends="docs, javadocs"
+ 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}/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}/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/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"
+ 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.bin.dir}/docs"/>
+ <mkdir dir="${dist.bin.dir}/docs/apidocs"/>
+
+ <copy file="${build.dir}/${name}.jar" tofile="${dist.bin.dir}/lib/${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>
+
+
+ <!-- =================================================================== -->
+ <!-- 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>
+
+ <!-- =================================================================== -->
+ <!-- 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>
+
+ <target name="generate-records" depends="prepare"
+ description="Generates the record source code">
+
+ <java classname="org.apache.poi.hssf.util.RecordGenerator" fork="yes">
+ <arg value="src/records/definitions"/>
+ <arg value="src/records/styles"/>
+ <arg value="src/java"/>
+ <arg value="src/testcases"/>
+ <classpath>
+ <path refid="scratchpad.classpath"/>
+ <pathelement location="${build.dest}"/>
+ </classpath>
+ </java>
+
+ </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- 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>
+
+ </target>
+
+
+ <!-- =================================================================== -->
+ <!-- Set a variable if the generated docs are already up-to-date. -->
+ <!-- =================================================================== -->
+ <target name="docs_check" depends="init">
+ <uptodate property="docs.notrequired" targetfile="${build.docs}/index.html" >
+ <srcfiles dir="." includes="changes.xml,todo.xml"/>
+ <srcfiles dir="${context.dir}/xdocs" includes="**/*.xml"/>
+ </uptodate>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- If generated docs is already up-to-date, print a message saying so. -->
+ <!-- =================================================================== -->
+ <target name="docs_done" if="docs.notrequired">
+ <echo message="-------------------------------------------------------------"/>
+ <echo message="Not rebuilding docs, as they are up-to-date:"/>
+ <echo message=" ${build.docs}/index.html is more recent than"/>
+ <echo message=" todo.xml, changes.xml, ${context.dir}/xdocs/*.xml"/>
+ <echo message="-------------------------------------------------------------"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- The documentation system -->
+ <!-- =================================================================== -->
+ <target name="docs"
+ depends="package, prepare-docs, docs_check, docs_done"
+ unless="docs.notrequired"
+ 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="-uINFO"/>
+ <arg value="index.html"/>
+ <classpath>
+ <path refid="classpath"/>
+ <fileset dir="${build.dir}">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="${tools.lib.dir}">
+ <include name="*.jar"/>
+ </fileset>
+ <pathelement location="${tools.jar}"/>
+ <pathelement location="${build.context}/WEB-INF/classes"/>
+ </classpath>
+ </java>
+
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Set a variable if the generated printer docs are already up-to-date. -->
+ <!-- =================================================================== -->
+ <target name="printer-docs_check" depends="init">
+ <uptodate property="printer-docs.notrequired" targetfile="${build.docs.printer}/index.html" >
+ <srcfiles dir="." includes="changes.xml,todo.xml"/>
+ <srcfiles dir="${docs.dir}" includes="**/*.xml"/>
+ </uptodate>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- If generated printer docs is already up-to-date, print a message saying so. -->
+ <!-- =================================================================== -->
+ <target name="printer-docs_done" if="printer-docs.notrequired">
+ <echo message="-------------------------------------------------------------"/>
+ <echo message="Not rebuilding printer docs, as they are up-to-date:"/>
+ <echo message=" ${build.docs.printer}/index.html is more recent than"/>
+ <echo message=" todo.xml, changes.xml, ${docs.dir}/*.xml"/>
+ <echo message="-------------------------------------------------------------"/>
+ </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>
+ <!-- =================================================================== -->
+ <!-- Prepares the printer-docs -->
+ <!-- =================================================================== -->
+ <target name="prepare-printer-docs" depends="prepare-docs">
+
+ <mkdir dir="${build.dir}/printer_documentation"/>
+
+ <!-- copy prepared docs -->
+ <copy todir="${build.dir}/printer_documentation" filtering="off">
+ <fileset dir="${build.context}">
+ </fileset>
+ </copy>
+
+ <!-- copy printer skin -->
+ <copy todir="${build.dir}/printer_documentation/stylesheets" filtering="off" overwrite="yes">
+ <fileset dir="${build.context}/stylesheets/printer_skin">
+ </fileset>
+ </copy>
+
+ </target>
+
+
+ <!-- =================================================================== -->
+ <!-- Generate printer-friendly HTML docs -->
+ <!-- =================================================================== -->
+ <target name="printer-docs" depends="package, prepare-printer-docs, printer-docs_check, printer-docs_done"
+ unless="printer-docs.notrequired"
+ description="* Generates printer-friendly documentation">
+ <mkdir dir="${build.docs.printer}"/>
+
+ <java classname="org.apache.cocoon.Main" fork="true" dir="${build.dir}/printer_documentation" failonerror="true">
+ <arg value="-c."/>
+ <arg value="-d../printer-docs"/>
+ <arg value="-w../work-printer"/>
+ <arg value="-l../work-printer/cocoon.log"/>
+ <arg value="-uINFO"/>
+ <arg value="index.html"/>
+ <classpath>
+ <path refid="classpath"/>
+ <fileset dir="${build.dir}">
+ <include name="*.jar"/>
+ </fileset>
+ <pathelement location="${tools.jar}"/>
+ <pathelement location="${build.context}/WEB-INF/classes"/>
+ </classpath>
+ </java>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Creates the web site -->
+ <!-- =================================================================== -->
+ <target name="site" depends="docs, javadocs"
+ description="Generates the web site (for site maintainers only)">
+ <mkdir dir="${build.docs}/apidocs"/>
+ <copy todir="${build.docs}/apidocs" filtering="off">
+ <fileset dir="${build.javadocs}"/>
+ </copy>
+ </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 © ${year} ${fullname} project. All Rights Reserved."
+ stylesheetfile="${resource.dir}/javadoc.css">
+ <classpath refid="classpath"/>
+ </javadoc>
+ </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- Initialization target -->
+ <!-- =================================================================== -->
+ <target name="init">
+ <tstamp/>
+
+ <property name="version" value="1.1-dev"/>
+ <property name="short.version" value="1.1"/>
+ <property name="year" value="2001-2002"/>
+
+ <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="debug" value="on"/>
+ <property name="optimize" value="off"/>
+ <property name="deprecation" value="off"/>
+ <property name="nowarn" value="on"/>
+ <property name="build.compiler" value="classic"/>
+ <property name="target.vm" value="1.2"/>
+
+ <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="tools.dir" value="./tools"/>
+ <property name="tools.lib.dir" value="${tools.dir}/lib"/>
+ <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="project-info" value="./project-info.xml"/>
+ <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"/>
+
+ <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"/>
+
+ <!-- compile the ant tasks -->
+ <mkdir dir="${tools.dir}/anttasks"/>
+ <javac srcdir="${tools.dir}/src" destdir="${tools.dir}/anttasks"/>
+
+ </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- Interactive build -->
+ <!-- =================================================================== -->
+ <target name="interactive" description="Interactive Build" depends="init">
+ <echo message="--------------------------------------------------------------"/>
+ <echo message=" "/>
+ <echo message=" ${fullname} ${version} [${year}] "/>
+ <echo message=" "/>
+ <echo message="--------------------------------------------------------------"/>
+ <echo message="Building with ${ant.version}"/>
+ <echo message="using build file ${ant.file}"/>
+ <echo message="--------------------------------------------------------------"/>
+ <echo message=" These are the most common build targets."/>
+ <echo message=" You can also invoke them directly; see build.xml for more info. "/>
+ <echo message=" Builds will be in /build directory, distributions in /dist."/>
+ <echo message=" "/>
+ <echo message=" compile ----------- compiles the source code "/>
+ <echo message=" docs -------------- generates the html docs"/>
+ <echo message=" cleandocs --------- cleans the build docs directory"/>
+ <echo message=" javadocs ---------- generates the API documentation"/>
+ <echo message=" test -------------- performs the jUnit tests"/>
+ <echo message=" clean ------------- cleans the build directory"/>
+ <echo message=" dist -------------- creates src and bin distributions"/>
+ <echo message=" contrib ----------- build-run contributed components"/>
+ <echo message=" generate-records -- generate records from xml"/>
+ <taskdef name="user-input" classname="UserInput"
+ classpath="./tools/anttasks"/>
+
+ <property name="input.selection" value="compile"/>
+ <user-input name="input.selection">Please select a target </user-input>
+
+ <antcall target="${input.selection}"/>
+
+ </target>
--- /dev/null
+ <!--
+ 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"/>
+
+ <!-- =================================================================== -->
+ <!-- Project names -->
+ <!-- =================================================================== -->
+
+ <property name="fullname" value="JAKARTA POI"/>
+ <property name="Name" value="Jakarta Poi"/>
+ <property name="name" value="jakarta-poi"/>
+ <property name="packages" value="org.apache.poi.*"/>
+
+ <!-- =================================================================== -->
+ <!-- Indentify Classpath -->
+ <!-- =================================================================== -->
+ <path id="classpath">
+ <fileset dir="./lib/core">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="./lib/optional">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+
+ <path id="scratchpad.classpath">
+ <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/${name}/scratchpad/classes"/>
+ <pathelement path="./build/${name}/classes"/>
+ </path>
+
+ <path id="examples.classpath">
+ <!-- FIXME : how to build a path that references a property set in 'init' target ? -->
+ <pathelement path="./build/${name}/classes"/>
+ </path>
+
+ <path id="contrib.classpath">
+ <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/${name}/classes"/>
+ </path>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- 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&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Cocoon+2&short_desc=%5BPATCH%5D&short_desc_type=anywordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=cocoon+patch+queue&newqueryname=&order=Reuse+same+sort+as+last+time"
+ dest="${build.patchqueue}/bugzillapatchqueue.html"
+ verbose="true"
+ usetimestamp="true"
+ ignoreerrors="true"/>
+
+ <taskdef name="jtidy" classname="JTidyTask"
+ classpath="${tools.dir}/anttasks"/>
+
+ <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>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- Interactive scratchpad builds -->
+ <!-- =================================================================== -->
+ <target name="scratchpad" depends="init" description="Interactive Scratchpad Build">
+ <echo message="--------------------------------------------------------------"/>
+ <echo message=" "/>
+ <echo message=" ${fullname} ${version} SCRATCHPAD "/>
+ <echo message=" "/>
+ <echo message="--------------------------------------------------------------"/>
+ <echo message="Building with ${ant.version}"/>
+ <echo message="using build file ${ant.file}"/>
+ <echo message="--------------------------------------------------------------"/>
+ <echo message=" "/>
+ <echo message=" These are SCRATCHPAD BUILDS. They are not guaranteed to work."/>
+ <echo message=" You have been warned. "/>
+ <echo message=" "/>
+ <echo message=" --------------"/>
+ <echo message=" --------------"/>
+ <echo message=" --------------"/>
+ <echo message=" --------------"/>
+ <echo message=" --------------"/>
+ <echo message=" --------------"/>
+ <echo message=" "/>
+ <taskdef name="user-input" classname="UserInput"
+ classpath="./tools/anttasks"/>
+
+ <property name="input.selection" value=""/>
+ <user-input name="input.selection">Please select a target </user-input>
+
+ <ant antfile="src/scratchpad/${input.selection}/build.xml"/>
+
+ </target>
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- 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>
--- /dev/null
+<!-- try.xml ... these are trial build targets which are currently
+ undergoing testing. When ready they can be moved into the main build.xml -->
+
+<project default="trial-init" basedir="." name="Trial builds">
+
+ <!-- =================================================================== -->
+ <!-- Initialization target -->
+ <!-- =================================================================== -->
+ <target name="trial-init">
+
+ </target>
+
+</project>
+
+<!-- End of file -->
--- /dev/null
+ <!-- =================================================================== -->
+ <!-- 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>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- Creates the source distribution -->
- <!-- =================================================================== -->
- <target name="dist-src" depends="docs, javadocs"
- 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}/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}/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/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"
- 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.bin.dir}/docs"/>
- <mkdir dir="${dist.bin.dir}/docs/apidocs"/>
-
- <copy file="${build.dir}/${name}.jar" tofile="${dist.bin.dir}/lib/${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>
-
-
- <!-- =================================================================== -->
- <!-- 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>
-
- <!-- =================================================================== -->
- <!-- 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>
-
- <target name="generate-records" depends="prepare"
- description="Generates the record source code">
-
- <java classname="org.apache.poi.hssf.util.RecordGenerator" fork="yes">
- <arg value="src/records/definitions"/>
- <arg value="src/records/styles"/>
- <arg value="src/java"/>
- <arg value="src/testcases"/>
- <classpath>
- <path refid="scratchpad.classpath"/>
- <pathelement location="${build.dest}"/>
- </classpath>
- </java>
-
- </target>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- 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>
-
- </target>
-
-
- <!-- =================================================================== -->
- <!-- Set a variable if the generated docs are already up-to-date. -->
- <!-- =================================================================== -->
- <target name="docs_check" depends="init">
- <uptodate property="docs.notrequired" targetfile="${build.docs}/index.html" >
- <srcfiles dir="." includes="changes.xml,todo.xml"/>
- <srcfiles dir="${context.dir}/xdocs" includes="**/*.xml"/>
- </uptodate>
- </target>
-
- <!-- =================================================================== -->
- <!-- If generated docs is already up-to-date, print a message saying so. -->
- <!-- =================================================================== -->
- <target name="docs_done" if="docs.notrequired">
- <echo message="-------------------------------------------------------------"/>
- <echo message="Not rebuilding docs, as they are up-to-date:"/>
- <echo message=" ${build.docs}/index.html is more recent than"/>
- <echo message=" todo.xml, changes.xml, ${context.dir}/xdocs/*.xml"/>
- <echo message="-------------------------------------------------------------"/>
- </target>
-
- <!-- =================================================================== -->
- <!-- The documentation system -->
- <!-- =================================================================== -->
- <target name="docs"
- depends="package, prepare-docs, docs_check, docs_done"
- unless="docs.notrequired"
- 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="-uINFO"/>
- <arg value="index.html"/>
- <classpath>
- <path refid="classpath"/>
- <fileset dir="${build.dir}">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="${tools.lib.dir}">
- <include name="*.jar"/>
- </fileset>
- <pathelement location="${tools.jar}"/>
- <pathelement location="${build.context}/WEB-INF/classes"/>
- </classpath>
- </java>
-
- </target>
-
- <!-- =================================================================== -->
- <!-- Set a variable if the generated printer docs are already up-to-date. -->
- <!-- =================================================================== -->
- <target name="printer-docs_check" depends="init">
- <uptodate property="printer-docs.notrequired" targetfile="${build.docs.printer}/index.html" >
- <srcfiles dir="." includes="changes.xml,todo.xml"/>
- <srcfiles dir="${docs.dir}" includes="**/*.xml"/>
- </uptodate>
- </target>
-
- <!-- =================================================================== -->
- <!-- If generated printer docs is already up-to-date, print a message saying so. -->
- <!-- =================================================================== -->
- <target name="printer-docs_done" if="printer-docs.notrequired">
- <echo message="-------------------------------------------------------------"/>
- <echo message="Not rebuilding printer docs, as they are up-to-date:"/>
- <echo message=" ${build.docs.printer}/index.html is more recent than"/>
- <echo message=" todo.xml, changes.xml, ${docs.dir}/*.xml"/>
- <echo message="-------------------------------------------------------------"/>
- </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>
- <!-- =================================================================== -->
- <!-- Prepares the printer-docs -->
- <!-- =================================================================== -->
- <target name="prepare-printer-docs" depends="prepare-docs">
-
- <mkdir dir="${build.dir}/printer_documentation"/>
-
- <!-- copy prepared docs -->
- <copy todir="${build.dir}/printer_documentation" filtering="off">
- <fileset dir="${build.context}">
- </fileset>
- </copy>
-
- <!-- copy printer skin -->
- <copy todir="${build.dir}/printer_documentation/stylesheets" filtering="off" overwrite="yes">
- <fileset dir="${build.context}/stylesheets/printer_skin">
- </fileset>
- </copy>
-
- </target>
-
-
- <!-- =================================================================== -->
- <!-- Generate printer-friendly HTML docs -->
- <!-- =================================================================== -->
- <target name="printer-docs" depends="package, prepare-printer-docs, printer-docs_check, printer-docs_done"
- unless="printer-docs.notrequired"
- description="* Generates printer-friendly documentation">
- <mkdir dir="${build.docs.printer}"/>
-
- <java classname="org.apache.cocoon.Main" fork="true" dir="${build.dir}/printer_documentation" failonerror="true">
- <arg value="-c."/>
- <arg value="-d../printer-docs"/>
- <arg value="-w../work-printer"/>
- <arg value="-l../work-printer/cocoon.log"/>
- <arg value="-uINFO"/>
- <arg value="index.html"/>
- <classpath>
- <path refid="classpath"/>
- <fileset dir="${build.dir}">
- <include name="*.jar"/>
- </fileset>
- <pathelement location="${tools.jar}"/>
- <pathelement location="${build.context}/WEB-INF/classes"/>
- </classpath>
- </java>
- </target>
-
- <!-- =================================================================== -->
- <!-- Creates the web site -->
- <!-- =================================================================== -->
- <target name="site" depends="docs, javadocs"
- description="Generates the web site (for site maintainers only)">
- <mkdir dir="${build.docs}/apidocs"/>
- <copy todir="${build.docs}/apidocs" filtering="off">
- <fileset dir="${build.javadocs}"/>
- </copy>
- </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 © ${year} ${fullname} project. All Rights Reserved."
- stylesheetfile="${resource.dir}/javadoc.css">
- <classpath refid="classpath"/>
- </javadoc>
- </target>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- Initialization target -->
- <!-- =================================================================== -->
- <target name="init">
- <tstamp/>
-
- <property name="version" value="1.1-dev"/>
- <property name="short.version" value="1.1"/>
- <property name="year" value="2001-2002"/>
-
- <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="debug" value="on"/>
- <property name="optimize" value="off"/>
- <property name="deprecation" value="off"/>
- <property name="nowarn" value="on"/>
- <property name="build.compiler" value="classic"/>
- <property name="target.vm" value="1.2"/>
-
- <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="tools.dir" value="./tools"/>
- <property name="tools.lib.dir" value="${tools.dir}/lib"/>
- <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="project-info" value="./project-info.xml"/>
- <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"/>
-
- <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"/>
-
- <!-- compile the ant tasks -->
- <mkdir dir="${tools.dir}/anttasks"/>
- <javac srcdir="${tools.dir}/src" destdir="${tools.dir}/anttasks"/>
-
- </target>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- Interactive build -->
- <!-- =================================================================== -->
- <target name="interactive" description="Interactive Build" depends="init">
- <echo message="--------------------------------------------------------------"/>
- <echo message=" "/>
- <echo message=" ${fullname} ${version} [${year}] "/>
- <echo message=" "/>
- <echo message="--------------------------------------------------------------"/>
- <echo message="Building with ${ant.version}"/>
- <echo message="using build file ${ant.file}"/>
- <echo message="--------------------------------------------------------------"/>
- <echo message=" These are the most common build targets."/>
- <echo message=" You can also invoke them directly; see build.xml for more info. "/>
- <echo message=" Builds will be in /build directory, distributions in /dist."/>
- <echo message=" "/>
- <echo message=" compile ----------- compiles the source code "/>
- <echo message=" docs -------------- generates the html docs"/>
- <echo message=" cleandocs --------- cleans the build docs directory"/>
- <echo message=" javadocs ---------- generates the API documentation"/>
- <echo message=" test -------------- performs the jUnit tests"/>
- <echo message=" clean ------------- cleans the build directory"/>
- <echo message=" dist -------------- creates src and bin distributions"/>
- <echo message=" contrib ----------- build-run contributed components"/>
- <echo message=" generate-records -- generate records from xml"/>
- <taskdef name="user-input" classname="UserInput"
- classpath="./tools/anttasks"/>
-
- <property name="input.selection" value="compile"/>
- <user-input name="input.selection">Please select a target </user-input>
-
- <antcall target="${input.selection}"/>
-
- </target>
+++ /dev/null
- <!--
- 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"/>
-
- <!-- =================================================================== -->
- <!-- Project names -->
- <!-- =================================================================== -->
-
- <property name="fullname" value="JAKARTA POI"/>
- <property name="Name" value="Jakarta Poi"/>
- <property name="name" value="jakarta-poi"/>
- <property name="packages" value="org.apache.poi.*"/>
-
- <!-- =================================================================== -->
- <!-- Indentify Classpath -->
- <!-- =================================================================== -->
- <path id="classpath">
- <fileset dir="./lib/core">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="./lib/optional">
- <include name="*.jar"/>
- </fileset>
- </path>
-
- <path id="scratchpad.classpath">
- <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/${name}/scratchpad/classes"/>
- <pathelement path="./build/${name}/classes"/>
- </path>
-
- <path id="examples.classpath">
- <!-- FIXME : how to build a path that references a property set in 'init' target ? -->
- <pathelement path="./build/${name}/classes"/>
- </path>
-
- <path id="contrib.classpath">
- <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/${name}/classes"/>
- </path>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- 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&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Cocoon+2&short_desc=%5BPATCH%5D&short_desc_type=anywordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=cocoon+patch+queue&newqueryname=&order=Reuse+same+sort+as+last+time"
- dest="${build.patchqueue}/bugzillapatchqueue.html"
- verbose="true"
- usetimestamp="true"
- ignoreerrors="true"/>
-
- <taskdef name="jtidy" classname="JTidyTask"
- classpath="${tools.dir}/anttasks"/>
-
- <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>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- Interactive scratchpad builds -->
- <!-- =================================================================== -->
- <target name="scratchpad" depends="init" description="Interactive Scratchpad Build">
- <echo message="--------------------------------------------------------------"/>
- <echo message=" "/>
- <echo message=" ${fullname} ${version} SCRATCHPAD "/>
- <echo message=" "/>
- <echo message="--------------------------------------------------------------"/>
- <echo message="Building with ${ant.version}"/>
- <echo message="using build file ${ant.file}"/>
- <echo message="--------------------------------------------------------------"/>
- <echo message=" "/>
- <echo message=" These are SCRATCHPAD BUILDS. They are not guaranteed to work."/>
- <echo message=" You have been warned. "/>
- <echo message=" "/>
- <echo message=" --------------"/>
- <echo message=" --------------"/>
- <echo message=" --------------"/>
- <echo message=" --------------"/>
- <echo message=" --------------"/>
- <echo message=" --------------"/>
- <echo message=" "/>
- <taskdef name="user-input" classname="UserInput"
- classpath="./tools/anttasks"/>
-
- <property name="input.selection" value=""/>
- <user-input name="input.selection">Please select a target </user-input>
-
- <ant antfile="src/scratchpad/${input.selection}/build.xml"/>
-
- </target>
+++ /dev/null
- <!-- =================================================================== -->
- <!-- 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>
+++ /dev/null
-<!-- try.xml ... these are trial build targets which are currently
- undergoing testing. When ready they can be moved into the main build.xml -->
-
-<project default="trial-init" basedir="." name="Trial builds">
-
- <!-- =================================================================== -->
- <!-- Initialization target -->
- <!-- =================================================================== -->
- <target name="trial-init">
-
- </target>
-
-</project>
-
-<!-- End of file -->
+++ /dev/null
- <!-- =================================================================== -->
- <!-- 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>