You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/07/10 06:15:41 UTC

cvs commit: jakarta-avalon-logkit/src/xdocs/stylesheets changes.vsl docs.vsl project.xml templates.vm velocity.properties

donaldp     2002/07/09 21:15:41

  Modified:    .        .cvsignore build.xml
               src/xdocs announcement.xml changes.xml features.xml
                        index.xml whitepaper.xml
  Added:       src/xdocs/css ns4_only.css print.css site.css tigris.css
               src/xdocs/images header.gif
               src/xdocs/stylesheets changes.vsl docs.vsl project.xml
                        templates.vm velocity.properties
  Removed:     src/xdocs book.xml logkit.uris
               src/xdocs/dtd changes-v10.dtd characters.ent
                        document-v10.dtd
  Log:
  Get documentation working again.
  
  Revision  Changes    Path
  1.13      +2 -2      jakarta-avalon-logkit/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/.cvsignore,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- .cvsignore	20 May 2002 10:13:19 -0000	1.12
  +++ .cvsignore	10 Jul 2002 04:15:40 -0000	1.13
  @@ -1,10 +1,10 @@
   ant.properties
   Announcement.txt
   docs
  -prj.el
  -emacs-jprj.el
   dist
   build
   distributions
   test
   todo
  +velocity.log*
  +*.el
  
  
  
  1.76      +49 -77    jakarta-avalon-logkit/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/build.xml,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- build.xml	18 May 2002 03:14:26 -0000	1.75
  +++ build.xml	10 Jul 2002 04:15:40 -0000	1.76
  @@ -85,6 +85,7 @@
   
     <property name="servlet.jar" value="${lib.dir}/servlet.jar"/>
     <property name="mail.jar" value="${lib.dir}/mail.jar"/>
  +  <property name="jakarta-site.dir" value="../jakarta-site"/>
   
     <path id="project.class.path">
       <pathelement path="${java.class.path}" />
  @@ -100,9 +101,7 @@
     </path>
   
     <path id="tools.class.path">
  -    <pathelement location="${tools.jar}"/>
  -    <pathelement location="${junit.jar}"/>
  -    <fileset dir="${tools.dir}/lib"/>
  +    <fileset dir="${jakarta-site.dir}/lib"/>
     </path>
   
     <path id="test.class.path">
  @@ -422,87 +421,59 @@
   
     </target>
   
  -  <!-- Create the Local API documentation -->
  -  <target name="local-javadocs" depends="javadocs">
  -
  -    <delete dir="${javadocs.dir}"/>
  -    <mkdir dir="${javadocs.dir}"/>
  -
  -    <copy todir="${javadocs.dir}">
  -      <fileset dir="${build.javadocs}" />
  -    </copy>
  +    <target name="anakia-avail">
  +        <available classname="org.apache.velocity.anakia.AnakiaTask"
  +            property="AnakiaTask.present">
  +            <classpath refid="tools.class.path"/>
  +        </available>
  +    </target>
  +
  +    <target name="anakia-check" depends="anakia-avail" unless="AnakiaTask.present">
  +        <echo>
  +            AnakiaTask is not present! Please check to make sure that
  +            velocity.jar is in your classpath. The easiest way to build
  +            the documentation is to checkout jakarta-site CVS and specify
  +            jakarta-site.dir property.
  +        </echo>
  +    </target>
  +
  +    <target name="docs" depends="anakia-check" description="Generate documentation and website">
  +        <taskdef name="anakia"
  +            classname="org.apache.velocity.anakia.AnakiaTask">
  +            <classpath refid="tools.class.path"/>
  +        </taskdef>
  +
  +        <anakia basedir="${xdocs.dir}"
  +            destdir="${docs.dir}"
  +            style="docs.vsl"
  +            projectfile="stylesheets/project.xml"
  +            includes="**/*.xml"
  +            excludes="stylesheets/**, changes.xml, announcement.xml"
  +            velocitypropertiesfile="src/xdocs/stylesheets/velocity.properties"
  +            />
  +
  +        <anakia basedir="${xdocs.dir}"
  +            destdir="${docs.dir}"
  +            style="changes.vsl"
  +            projectfile="stylesheets/project.xml"
  +            includes="changes.xml"
  +            velocitypropertiesfile="${xdocs.dir}/stylesheets/velocity.properties"
  +            />
   
  -  </target>
  -
  -  <target name="printerdocs" depends="javadocs,all">
  -    <echo message="Printer friendly documentation not implemented yet"/>
  -  </target>
  -
  -  <!-- Prepares the documentation directory -->
  -  <target name="docs" depends="javadocs,all">
  -
  -    <mkdir dir="${build.context}"/>
  -    <mkdir dir="${build.xdocs}"/>
  -    <mkdir dir="${build.docs}"/>
  -    <mkdir dir="${build.dir}/work"/>
  -
  -    <!-- Base pointers for non-xdocs documentation. Override these in .ant.properties to link to local docs -->
  -    <property name="avalon.base" value="http://jakarta.apache.org/avalon"/>
  -    <property name="framework.base" value="http://jakarta.apache.org/avalon/framework"/>
  -    <property name="phoenix.base" value="http://jakarta.apache.org/avalon/phoenix"/>
  -    <property name="cornerstone.base" value="http://jakarta.apache.org/avalon/cornerstone"/>
  -    <property name="logkit.base" value="http://jakarta.apache.org/avalon/logkit"/>
  -    <property name="testlet.base" value="http://jakarta.apache.org/avalon/testlet"/>
  -
  -    <filter token="year" value="${year}"/>
  -    <filter token="AVALON_BASE" value="${avalon.base}"/>
  -    <filter token="FRAMEWORK_BASE" value="${framework.base}"/>
  -    <filter token="PHOENIX_BASE" value="${phoenix.base}"/>
  -    <filter token="CORNERSTONE_BASE" value="${cornerstone.base}"/>
  -    <filter token="LOGKIT_BASE" value="${logkit.base}"/>
  -    <filter token="TESTLET_BASE" value="${testlet.base}"/>
  -
  -    <copy todir="${build.context}" overwrite="true" filtering="on">
  -      <fileset dir="${context.dir}">
  -        <exclude name="**/*.gif"/>
  -        <exclude name="**/*.jpg"/>
  -        <exclude name="**/*.png"/>
  -      </fileset>
  -    </copy>
  -    <copy todir="${build.context}" filtering="off">
  -      <fileset dir="${context.dir}">
  +     <copy todir="${docs.dir}" filtering="off">
  +      <fileset dir="${xdocs.dir}">
  +        <include name="**/images/**"/>
           <include name="**/*.gif"/>
           <include name="**/*.jpg"/>
           <include name="**/*.png"/>
  +        <include name="**/*.css"/>
  +        <include name="**/*.js"/>
         </fileset>
       </copy>
  -    <copy todir="${build.xdocs}" filtering="on" overwrite="true">
  -      <fileset dir="${xdocs.dir}"/>
  -    </copy>
  -
  -    <java classname="org.apache.cocoon.Main" fork="true">
  -      <arg value="-c${build.context}/"/>
  -      <arg value="-d${build.docs}"/>
  -      <arg value="-w${build.dir}/work"/>
  -      <arg value="-l${build.dir}/work/cocoon.log"/>
  -      <arg value="-uINFO"/>
  -      <arg value="index.html"/>
  -      <classpath>
  -        <path refid="tools.class.path"/>
  -        <fileset dir="${build.lib}"/>
  -        <fileset dir="${tools.dir}/ext"/>
  -      </classpath>
  -    </java>
  -  </target>
  -
  -  <target name="local-docs" depends="local-javadocs,docs">
  -    <copy todir="${docs.dir}">
  -      <fileset dir="${build.docs}"/>
  -    </copy>
  -  </target>
  +    </target>
   
     <!-- Update the www directory -->
  -  <target name="site-docs" depends="local-docs">
  +  <target name="site-docs" depends="docs,javadocs">
   
       <mkdir dir="${www.dir}"/>
   
  @@ -516,7 +487,7 @@
   
       <mkdir dir="${www.dir}"/>
       <copy todir="${www.dir}">
  -      <fileset dir="${docs.dir}" />
  +      <fileset dir="${build.docs}" />
       </copy>
   
     </target>
  @@ -697,6 +668,7 @@
       <delete dir="${build.dir}" />
       <delete dir="test" /> <!-- cleanup unit test directory -->
       <delete>
  +      <fileset dir="." includes="velocity.log*"/>
         <fileset dir="." includes="**/*~" defaultexcludes="no"/>
       </delete>
     </target>
  
  
  
  1.11      +2 -4      jakarta-avalon-logkit/src/xdocs/announcement.xml
  
  Index: announcement.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/src/xdocs/announcement.xml,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- announcement.xml	18 Nov 2001 07:51:02 -0000	1.10
  +++ announcement.xml	10 Jul 2002 04:15:40 -0000	1.11
  @@ -1,5 +1,4 @@
  -<?xml version="1.0"?>
  -
  +<?xml version="1.0" encoding="UTF-8"?>
   <announcement>
     <title>@Name@ @version@</title>
     <abstract>The Avalon team is proud to announce the @version@ @status@ release of @Name@.</abstract>
  @@ -27,5 +26,4 @@
       <downloads name="LogKit" base="http://jakarta.apache.org/builds/jakarta-avalon/release/@name@"/>
     </project>
   
  -</announcement>
  -
  +</announcement>
  \ No newline at end of file
  
  
  
  1.29      +9 -12     jakarta-avalon-logkit/src/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/src/xdocs/changes.xml,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- changes.xml	17 Apr 2002 10:47:40 -0000	1.28
  +++ changes.xml	10 Jul 2002 04:15:40 -0000	1.29
  @@ -1,18 +1,15 @@
  -<?xml version="1.0"?>
  -
  -<!DOCTYPE changes SYSTEM "dtd/changes-v10.dtd">
  -
  +<?xml version="1.0" encoding="UTF-8"?>
   <changes title="LogKit History of Changes">
     <devs>
  -    <person name="Peter Donald" email="peter@apache.org" id="PD"/>
  -    <person name="Berin Loritsch" email="bloritsch@apache.org" id="BL"/>
  -    <person name="Stuart Roebuck" email="stuart.roebuck@adolos.co.uk" id="SR"/>
  -    <person name="Eung-ju Park" email="colus@apache.org" id="EP"/>
  -    <person name="Leif Mortenson" email="leif@apache.org" id="LM"/>
  -    <person name="Giacomo Pati" email="giacomo@apache.org" id="GP"/>
  -    <person name="Marcus Crafter" email="crafterm@apache.org" id="MC"/>
  +    <author email="peter@apache.org">Peter Donald</author>
  +    <author email="bloritsch@apache.org">Berin Loritsch</author>
  +    <author email="stuart.roebuck@adolos.co.uk">Stuart Roebuck</author>
  +    <author email="colus@apache.org">Eung-ju Park</author>
  +    <author email="leif@apache.org">Leif Mortenson</author>
  +    <author email="giacomo@apache.org">Giacomo Pati</author>
  +    <author email="crafterm@apache.org">Marcus Crafter</author>
     </devs>
  -  <release version="1.1">
  +  <release version="1.1" date="Unreleased">
       <action dev="MC" type="add">
         Added SMTPOutputLogTarget to enable logging to email addresses.
       </action>
  
  
  
  1.8       +10 -13    jakarta-avalon-logkit/src/xdocs/features.xml
  
  Index: features.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/src/xdocs/features.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- features.xml	2 Apr 2002 11:03:32 -0000	1.7
  +++ features.xml	10 Jul 2002 04:15:40 -0000	1.8
  @@ -1,21 +1,18 @@
  -<?xml version="1.0"?>
  -
  -<!DOCTYPE document SYSTEM "dtd/document-v10.dtd">
  -
  +<?xml version="1.0" encoding="UTF-8"?>
   <document>
   
  - <header>
  + <properties>
     <title>Logkit - Features</title>
  -  <authors>
  -    <person name="Peter Donald" email="peter@apache.org"/>
  -  </authors>
  - </header>
  +  
  +    <author email="peter@apache.org">Peter Donald</author>
  +  
  + </properties>
   
   <body>
   
  -<s1 title="Features">
  +<section name="Features">
     <p>
  -    <strong>This document is under construction!</strong><br />
  +    <strong>This document is under construction!</strong><br/>
       The LogKit provides the following features:
     </p>
     <ul>
  @@ -61,7 +58,7 @@
       </li>
     </ul>
   
  -</s1>
  +</section>
   
   </body>
  -</document>
  +</document>
  \ No newline at end of file
  
  
  
  1.7       +12 -20    jakarta-avalon-logkit/src/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/src/xdocs/index.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- index.xml	2 Apr 2002 11:03:32 -0000	1.6
  +++ index.xml	10 Jul 2002 04:15:40 -0000	1.7
  @@ -1,28 +1,20 @@
  -<?xml version="1.0"?>
  -
  -<!DOCTYPE document SYSTEM "dtd/document-v10.dtd">
  -
  +<?xml version="1.0" encoding="UTF-8"?>
   <document>
  -  <header>
  +  <properties>
       <title>LogKit - Introduction</title>
  -    <authors>
  -      <person name="Avalon Documentation Team" email="avalon-dev@jakarta.apache.org"/>
  -    </authors>
  -  </header>
  +    
  +      <author email="avalon-dev@jakarta.apache.org">Avalon Documentation Team</author>
  +    
  +  </properties>
     <body>
  -    <s1 title="Introduction">
  +    <section name="Introduction">
         <p>
           LogKit is a logging toolkit designed for secure performance oriented logging
           in applications. To get started using LogKit, it is recomended that you read the 
  -        <link href="whitepaper.html">whitepaper</link> and browse the 
  -        <link href="http://jakarta.apache.org/avalon/logkit/api/index.html">API docs</link>.
  +        <link href="whitepaper.html" type="simple" show="replace" actuate="user">whitepaper</link> and browse the 
  +        <link href="http://jakarta.apache.org/avalon/logkit/api/index.html" type="simple" show="replace" actuate="user">API docs</link>.
         </p>
  -    </s1>
  +    </section>
     </body>
  -  <footer>
  -    <legal>
  -      Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
  -      $Revision$ $Date$
  -    </legal>
  -  </footer>
  -</document>
  +  
  +</document>
  \ No newline at end of file
  
  
  
  1.8       +46 -54    jakarta-avalon-logkit/src/xdocs/whitepaper.xml
  
  Index: whitepaper.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-logkit/src/xdocs/whitepaper.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- whitepaper.xml	2 Apr 2002 11:03:32 -0000	1.7
  +++ whitepaper.xml	10 Jul 2002 04:15:40 -0000	1.8
  @@ -1,16 +1,13 @@
  -<?xml version="1.0"?>
  -
  -<!DOCTYPE document SYSTEM "dtd/document-v10.dtd">
  -
  +<?xml version="1.0" encoding="UTF-8"?>
   <document>
  -  <header>
  +  <properties>
       <title>LogKit - Whitepaper</title>
  -    <authors>
  -      <person name="Peter Donald" email="peter@apache.org"/>
  -    </authors>
  -  </header>
  +    
  +      <author email="peter@apache.org">Peter Donald</author>
  +    
  +  </properties>
     <body>
  -    <s1 title="Abstract">
  +    <section name="Abstract">
         <p>
           Logging is an integral component to any software development project. 
           During the development stages it offers a valuable source of debugging
  @@ -18,8 +15,8 @@
           operational data that allows administrators to diagnose problems as they 
           arise. This whitepaper describes the design and implementation of LogKit.
         </p>
  -    </s1>
  -    <s1 title="Introduction">
  +    </section>
  +    <section name="Introduction">
   
         <p>
           LogKit, began life as a facade for a more complex logging toolkit. During
  @@ -43,9 +40,9 @@
           serialization of events.
         </p>
   
  -    </s1>
  +    </section>
   
  -    <s1 title="Structure and Elements">
  +    <section name="Structure and Elements">
   
         <p>
           The most basic components of LogKit are the Logger, the LogEvent and the
  @@ -54,9 +51,9 @@
           are routed to a LogTarget. The LogTarget decides what to do with the LogEvent,
           usually it is recorded to a file, a database or transmitted over the network.
         </p>
  -    </s1>
  +    </section>
   
  -    <s1 title="Priorities">
  +    <section name="Priorities">
         <p>
           One of the advantages of a logging toolkit is fine grain control over which
           statements get printed. At some times during development you may wish to enable 
  @@ -123,7 +120,7 @@
           "is<em>Priority</em>Enabled()". An example use case is displayed below.
         </p>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   if( logger.isDebugEnabled() )
   {
     //Construct a message (expensive operation)
  @@ -131,11 +128,11 @@
                            "\tVar3 value: " + var3 + ".";
     logger.debug( message );
   }
  -]]></source>
  +</source>
   
  -    </s1>
  +    </section>
   
  -    <s1 title="Categories">
  +    <section name="Categories">
   
         <p>
           In a complex system it is often not enough to suppress logging based on priority.
  @@ -176,9 +173,9 @@
           loggers.
         </p>
   
  -    </s1>
  +    </section>
   
  -    <s1 title="Log Targets">
  +    <section name="Log Targets">
   
         <p>
           In LogKit, LogTargets are the destination of LogEvents. Decoupling LogEvent 
  @@ -194,7 +191,7 @@
           runtime performance penalty.
         </p>
   
  -      <s2 title="Filters">
  +      <subsection name="Filters">
   
           <p>
             Filters are a special kind of LogTarget. Instead of writing to an output 
  @@ -212,9 +209,9 @@
             for pager log target.          
           </p>
         
  -      </s2>
  +      </subsection>
   
  -      <s2 title="AsyncLogTarget">
  +      <subsection name="AsyncLogTarget">
   
           <p>
             AsyncLogTarget is another kind of special LogTarget. It takes a log event
  @@ -228,7 +225,7 @@
             in another thread.
           </p>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   LogTarget mySlowTarget = ...;
   AsyncLogTarget asyncTarget = new AsyncLogTarget( mySlowTarget );
   Thread thread = new Thread( asyncTarget );
  @@ -236,12 +233,12 @@
   thread.start();
   
   logger.setLogTargets( new LogTarget[] { asyncTarget } );
  -]]></source>
  -      </s2>
  +</source>
  +      </subsection>
   
  -    </s1> 
  +    </section> 
   
  -    <s1 title="Formatters">
  +    <section name="Formatters">
   
         <p>
           LogTargets that write to a serial or unstructured store (ie filesystem or 
  @@ -275,7 +272,7 @@
           and actual output.
         </p>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   format: "%7.7{priority} %5.5{rtime} [%8.8{category}]: %{message}\n%{throwable}"
   output: DEBUG   123   [network.]: This is a debug message
   
  @@ -286,7 +283,7 @@
   format: "%7.7{priority} %5.5{rtime} [%10.{category}]: %{message}\n"
   output: DEBUG   123   [network.interceptor.connected]: This is a debug message
   output: DEBUG   123   [network   ]: This is another debug message
  -]]></source>
  +</source>
   
         <p>
           There is also ExtendedPatternFormatter that allows two extra fields, namely
  @@ -295,9 +292,9 @@
           the name of the current thread.
         </p>
   
  -    </s1>
  +    </section>
   
  -    <s1 title="Context">
  +    <section name="Context">
   
         <p>
           In many systems you need to include extra information depending in logs that depends
  @@ -324,7 +321,7 @@
           illustrated below.
         </p>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   format: "%7.7{priority} [%{context:hostname}]: %{message}\n"
   output: DEBUG   [helm.realityforge.org]: This is a debug message
   
  @@ -335,7 +332,7 @@
   
   format: "%7.7{priority} [%{context:user}]: %{message}\n"
   output: DEBUG   [Barney Rubble]: This is a debug message
  -]]></source>
  +</source>
   
         <p>
           <em>Warning:</em> Older versions of LogKit also incorporated a ContextStack
  @@ -365,7 +362,7 @@
           Below is an example of how a user can create and bind a ContextMap.
         </p>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   final ContextMap context = new ContextMap();
   context.set( "user", "Fred Flinstone" );
   context.set( "interface", myInterface );
  @@ -375,11 +372,11 @@
   
   //bind new ContextMap to current thread and subthreads
   ContextMap.bind( context );
  -]]></source>
  +</source>
   
  -    </s1> 
  +    </section> 
   
  -    <s1 title="Examples">
  +    <section name="Examples">
   
         <p>
           One of the best ways to learn how to use a toolkit is to see an 
  @@ -388,13 +385,13 @@
           The servlet example demonstrates the usage of filters.
         </p>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   Logger logger = Hierarchy.getDefaultHierarchy().getLoggerFor("myCategory");
   logger.setPriority( Priority.DEBUG );
   logger.debug( "This is a debug message" );
  -]]></source>
  +</source>
   
  -<source><![CDATA[
  +<source xml:space="preserve">
   //Create a Log filter that writes to servlet Containers log
   //If priority greater than ERROR
   PriorityFilter filter = new PriorityFilter(Priority.ERROR);
  @@ -427,11 +424,11 @@
   //Set log targets parameter based on init parameters
   Priority priority = Priority.getPriorityForName( logLevel );
   myLogger.setPriority( priority );
  -]]></source>
  +</source>
   
  -    </s1>
  +    </section>
   
  -    <s1 title="Conclusion">
  +    <section name="Conclusion">
   
         <p>
           LogKit is a friendly, easy to use logging toolkit. It is high performing and 
  @@ -441,13 +438,8 @@
           limiting client access to hierarchies. 
         </p>
   
  -    </s1>
  +    </section>
   
     </body>
  -  <footer>
  -    <legal>
  -      Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
  -      $Revision$ $Date$
  -    </legal>
  -  </footer>
  -</document>
  +  
  +</document>
  \ No newline at end of file
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/css/ns4_only.css
  
  Index: ns4_only.css
  ===================================================================
  /* simple rules suitable for Netscape 4.x only; richer rules are in tigris.css. see <http://style.tigris.org/> */
  
  /* colors, backgrounds, borders, link indication */ 
  
  body {
   background: #fff;
   color: #000;
   }
  #leftcol a:link, #leftcol a:visited {
   color: blue;
   }
  a:active, a:hover, #leftcol a:active, #leftcol a:hover {
   color: #f30;
   }
  #login a:link, #login a:visited {
   color: white; 
   text-decoration: underline;
   }
  #banner a:active, #banner a:hover {
   color: #f90;
   }
  #leftcol a, #breadcrumbs a  {
   text-decoration: none;
   }
  h2 .lastchild {
   color: #777
   } 
  .a td { 
   background: #ddd;
   }
  .b td { 
   background: #efefef;
   }
  .tabs td, .tabs th {
   background-color: #ddd;
   }
  body .app th {
   background-color: #bbb;
   }
  body .tabs th {
   background-color: #888;
   color: #fff;
   }
  body .app .axial th {
   background-color: #ddd;
   color: black
   }
  .tabs td {
   background-color: #ddd;
   }
  .alert { 
   color: #c00;
   }
  .confirm {
   color: green;
   }
  .info {
   color: blue;
   }
  .selection {
   background: #ffc;
   }
  #login {
   color: #fff;
   }
  #helptext th {
   background: #cc9;
   }
  #helptext td {
   background: #ffc;
   }
  .tabs a  {
   text-decoration: none;
   }
  #navcolumn div strong {
   color: #555;
   }
  #banner, #banner td { 
   background: #036;
   color: #fff;
   }
  body #banner #login a { 
   color: white;
   }
  
  
  /* font and text properties, exclusive of link indication, alignment, text-indent */
  
  body, div, p, th, td, li, dl, dd {
   font-family: Lucida, Arial, Helvetica, sans-serif;
   }
  code, pre {
   font-family: 'Andale Mono', Courier, monospace;
   }
  h2, h3, h4 {
   font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
   }
  .selection {
   font-weight: bold
   }
  #login .username {
   font-weight: bold;
   }
  
  
  /* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
  
  th, td {
   text-align: left;
   vertical-align: top 
   }
  .right {
   text-align: right;
   }
  .center {
   text-align: center;
   }
  body .app .axial th {
   text-align: right;
   }
  .app .axial td th {
   text-align: left;
   }
  body td .stb {
   margin-top: 1em;
   text-indent: 0;
   }
  body td .mtb {
   margin-top: 2em;
   text-indent: 0;
   }
  dd {
   margin-bottom: .67em;
   }
  #footer {
   margin: 4px
   }
  #helptext {
   margin-top: 1em
   }
  #helptext td div {
   margin: .5em
   }
  .courtesylinks {
   margin-top: 1em;
   padding-top: 1em
   }
  #navcolumn div {
   margin-bottom: .5em;
   }
  #navcolumn div div {
   margin-top: .3em
   }
  #navcolumn div div {
   padding-left: 1em;
   }
  #banner, #banner td { 
   vertical-align: middle;
   }
  body.docs, body.nonav {
   margin: 1em
   }
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/css/print.css
  
  Index: print.css
  ===================================================================
  #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks	{
  	display: none;
  	}
  body.docs div.docs	{
  	margin: 0 !important;
  	border: none !important
  	}
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/css/site.css
  
  Index: site.css
  ===================================================================
  
  div#banner {
   border-top: 1px solid #fff;
   border-bottom: 1px solid #aaa;
  }
  
  #banner, #banner td {
   background: #fff;
   color: #036;
  }
  
  #source {
   background-color: #fff;
   color: #000;
   border-right: 1px solid #888;
   border-left: 1px solid #888;
   border-top: 1px solid #888;
   border-bottom: 1px solid #888;
   margin-right: 7px;
   margin-left: 7px;
   margin-top: 1em;
  }
  
  #source pre {
   margin-right: 7px;
   margin-left: 7px;
  }
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/css/tigris.css
  
  Index: tigris.css
  ===================================================================
  /* contains rules unsuitable for Netscape 4.x; simpler rules are in ns4_only.css. see <http://style.tigris.org/> */
  
  /* colors, backgrounds, borders, link indication */ 
  
  body {
   background: #fff;
   color: #000;
   }
  .app h3, .app h4, .tabs td, .tabs th, .functnbar {
   background-image: url(../images/nw_min.gif);
   background-repeat: no-repeat;
   }
  #navcolumn div div, body.docs #toc li li  {
   background-image: url(../images/strich.gif);
   background-repeat: no-repeat;
   background-position: .5em .5em;
   }
  #navcolumn div div.heading  {
   background-image: none;
   }
  .app h3, .app h4 {
   color: #fff;
   }
  .app h3 {
   background-color: #036;
   }
  .app h4 { 
   background-color: #888;
   }
  .a td { 
   background: #ddd;
   }
  .b td { 
   background: #efefef;
   }
  table, th, td {
   border: none
   } 
  .mtb {
   border-top: solid 1px #ddd;
   }
  div.colbar {
   background: #bbb;
   }
  #banner {
   border-top: 1px solid #369;
   border-bottom: 1px solid #003;
   }
  div#helptext th {
   border-bottom: 1px solid #996;
   border-right: 1px solid #996;
   }
  div#helptext td {
   border-bottom: 1px solid #cc9;
   border-right: 1px solid #cc9;
   }
  .tabs th {
   border-right: 1px solid #333;
   background-color: #ddd;
   color: #fff;
   }
  .tabs td {
   background-color: #999;
   border-bottom: 1px solid #fff;
   border-right: 1px solid #fff;
   }
  .tabs { 
   border-bottom: 6px #ddd solid;
   }
  .tabs th, .tabs th a:link, .tabs th a:visited {
   color: #555;
   }
  .tabs td, .tabs td a:link, .tabs td a:visited  { 
   color: #fff;
   }
  .tabs a  {
   text-decoration: none;
   }
  #navcolumn {
   background: #eee;
   border-right: 1px solid #aaa;
   border-bottom: 1px solid #aaa;
   }
  #breadcrumbs {
   border-bottom: 1px solid #aaa;
   background-color: #ddd
   }
  #navcolumn, #breadcrumbs {
   border-top: 1px solid #fff;
   }
  #rightcol div.www, #rightcol div.help {
   border: 1px solid #ddd;
   }
  div#navcolumn div.focus { 
   border-top: 1px solid #aaa;
   border-left: 1px solid #aaa;
   background-color: #fff;
   } 
  body.docs div.docs { 
   background: #fff;
   border-left: 1px solid #ddd;
   border-top: 1px solid #ddd;
   }
  body.docs { 
   background: #eee url(../images/help_logo.gif) top right no-repeat !important;
   }
  .docs h3, .docs h4 {
   border-top: solid 1px #000;
   }
  #alerterrormessage { 
   background: url(../images/icon_alert.gif) top left no-repeat !important;
   }
  .functnbar {
   background-color: #aaa;
   }
  .functnbar2, .functnbar3  {
   background: #aaa url(../images/sw_min.gif) no-repeat bottom left;
   }
  .functnbar3 {
   background-color: #ddd;
   }
  .functnbar, .functnbar2, .functnbar3 {
   color: #000;
   }
  .functnbar a, .functnbar2 a, .functnbar3 a {
   color: #000;
   text-decoration: underline;
   }
  #topmodule {
   background: #ddd;
   border-top: 1px solid #fff;
   border-bottom: 1px solid #aaa; 
   border-right: 1px solid #aaa; 
   }
  #topmodule #issueid {
   border-right: 1px solid #aaa;
   }
  a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
   color: blue;
   }
  a:link.selfref, a:visited.selfref {
   color: #555 !important;
   text-decoration: none;
   }
  a:active, a:hover, #leftcol a:active, #leftcol a:hover {
   color: #f30 !important;
   }
  #login a:link, #login a:visited {
   color: white; 
   text-decoration: underline;
   }
  #banner a:active, #banner a:hover {
   color: #f90 !important;
   }
  #leftcol a, #breadcrumbs a  {
   text-decoration: none;
   }
  #apphead h2 em {
   color: #777;
   }
  a:link.selfref, a:visited.selfref {
   color: #555 !important;
   text-decoration: none;
   }
  .app th {
   background-color: #bbb;
   }
  .axial th {
   background-color: #ddd;
   color: black
   }
  .alert { 
   color: #c00;
   }
  .confirm {
   color: green;
   }
  .info {
   color: blue;
   }
  .selection {
   background: #ffc;
   }
  #login {
   color: #fff;
   }
  #helptext th {
   background: #cc9;
   }
  #helptext td {
   background: #ffc;
   }
  #navcolumn div strong {
   color: #000;
   }
  #banner, #banner td { 
   background: #036;
   color: #fff;
   }
  body #banner #login a { 
   color: #fff;
   }
  h4 a:link, h4 a:visited  {
   text-decoration: underline;
   color: #fff;
   }
  
  /* font and text properties, exclusive of link indication, alignment, text-indent */
  
  body, th, td, input, select, textarea, h2 small {
   font-family: Verdana, Helvetica, Arial, sans-serif;
   }
  code, pre {
   font-family: 'Andale Mono', Courier, monospace;
   }
  html body, body th, body td, textarea, h2 small, .app h3, .app h4, #rightcol h3, #bodycol pre, #bodycol code {
   font-size: x-small;
   voice-family: "\"}\"";
   voice-family: inherit;
   font-size: small
   }
  html>body, html>body th, html>body td, html>body input, html>body select, html>body textarea, html>body h2 small, html>body .app h3, html>body .app h4, html>body #rightcol h3, html>body #bodycol pre, html>body #bodycol code {
   font-size: small
   }
  small, div#footer td, div#login, div.tabs th, div.tabs td, input, select, .paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs td, .courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol {
   font-size: x-small;
   voice-family: "\"}\"";
   voice-family: inherit;
   font-size: x-small
   }
  html>body small, html>body div#footer td, html>body div#login, html>body div.tabs th, html>body div.tabs td, html>body input, html>body select, html>body .paginate, html>body .functnbar, html>body .functnbar2, html>body .functnbar3, html>body #breadcrumbs td, html>body .courtesylinks, html>body #rightcol div.help, html>body .colbar, html>body .tasknav, html>body.docs #toc, html>body #leftcol {
   font-size: x-small
   }
  #bodycol h2 {
   font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
   font-size: 1.5em;
   font-weight: normal;
   }
  .tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection {
   font-weight: bold
   }
  h4 {
   font-size: 1em;
   }
  #apphead h2 em {
  	font-style: normal;
   } 
  
  /* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
  
  #bodycol h2 {
   margin-top: .3em;
   margin-bottom: .5em;
   }
  p, ul, ol, dl {
   margin-top: .67em;
   margin-bottom: .67em;
   }
  h3, h4 {
   margin-bottom: 0;
   }
  form {
   margin-top: 0;
   margin-bottom: 0;
   }
  #bodycol {
   padding-left: 12px;
   padding-right: 12px;
   width: 100%;
   voice-family: "\"}\"";
   voice-family: inherit;
   width: auto;
   }
  html>body #bodycol {
   width: auto;
   }
  .docs {
   line-height: 1.4;
   }
  .app h3, .app h4 {
   padding: 5px;
   margin-right: 2px;
   margin-left: 2px;
   }
  .h3 p, .h4 p, .h3 dt, .h4 dt {
   margin-right: 7px;
   margin-left: 7px;
   }
  .tasknav {
   margin-bottom: 1.33em
   }
  div.colbar {
   padding: 3px;
   margin: 2px 2px 0;
   }
  .tabs { 
   margin-top: .67em;
   margin-right: 2px;
   margin-left: 2px;
   }
  #leftcol {
   padding-bottom: .5em;
   }
  #breadcrumbs td {
   vertical-align: middle;
   padding: 2px 8px;
   } 
  .tabs td, .tabs th {
   padding: 3px 9px;
   }
  #rightcol div.www, #rightcol div.help {
   padding: 0 .5em
   }
  #navcolumn {
   margin: -8px -8px 0 -8px;
   padding: 4px;
   }
  #navcolumn div {
   padding-left: 5px
   }
  div#navcolumn div div {
   margin-top: .3em;
   margin-bottom: .3em;
   }
  div#navcolumn div.focus { 
   margin-top: -.1em;
   padding: .2em 4px; 
   } 
  body.docs #toc { 
   position: absolute;
   top: 15px;
   left: 0px;
   width: 120px;
   padding: 0 20px 0 0
   }
  body.docs #toc ul, #toc ol {
   margin-left: 0;
   padding-left: 0;
   }
  body.docs #toc li {
   margin-top: 7px;
   padding-left: 10px;
   list-style-type: none;
   }
  body.docs div.docs { 
   margin: 61px 0 0 150px;
   padding: 1em 2em 1em 1em !important;
   }
  .docs p+p {
   text-indent: 5%;
   margin-top: -.67em
   }
  .docs h3, .docs h4 {
   margin-bottom: .1em;
   padding-top: .3em;
   }
  #alerterrormessage { 
   padding-left: 100px;
   }
  .functnbar, .functnbar2, .functnbar3 {
   padding: 5px;
   margin: .67em 2px;
   }
  #topmodule td {
   vertical-align: middle;
   padding: 2px 8px
   } 
  body {
   padding: 1em;
   }
  body.composite, body.docs {
   margin: 0;
   padding: 0;
   }
  th, td {
   text-align: left;
   vertical-align: top 
   }
  .right {
   text-align: right !important;
   }
  .center {
   text-align: center !important;
   }
  .axial th {
   text-align: right;
   }
  .app .axial td th {
   text-align: left;
   }
  body td .stb {
   margin-top: 1em;
   text-indent: 0;
   }
  body td .mtb {
   margin-top: 2em;
   text-indent: 0;
   }
  dd {
   margin-bottom: .67em;
   }
  #footer {
   margin: 4px
   }
  #helptext {
   margin-top: 1em
   }
  #helptext td div {
   margin: .5em
   }
  .courtesylinks {
   margin-top: 1em;
   padding-top: 1em
   }
  #navcolumn div {
   margin-bottom: .5em;
   }
  #navcolumn div div {
   margin-top: .3em
   }
  #navcolumn div div {
   padding-left: 1em;
   }
  #banner, #banner td { 
   vertical-align: middle;
   }
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/images/header.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/stylesheets/changes.vsl
  
  Index: changes.vsl
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  
  #parse( "templates.vm" )
  
  <!-- Content Stylesheet for Site -->
  
      ## Defined variables
      #set ($bodybg = "#ffffff")
      #set ($bodyfg = "#000000")
      #set ($bodylink = "#525D76")
      #set ($bannerbg = "#525D76")
      #set ($bannerfg = "#ffffff")
      #set ($subbannerbg = "#828DA6")
      #set ($subbannerfg = "#ffffff")
      #set ($tablethbg = "#039acc")
      #set ($tabletdbg = "#a0ddf0")
      #set ($pound = "#" )
  
  <!-- start the processing -->
  #changes()
  <!-- end the processing -->
  
  #macro (change $action)
    <p>$action.getText() ($action.getAttributeValue("dev"))</p>
  #end
  
  #macro (changeset $release)
    <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="$subbannerbg">
        <font color="$subbannerfg" face="arial,helvetica,sanserif">
          <strong>
            Revision $release.getAttributeValue("version") ($release.getAttributeValue("date"))
          </strong>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
          <ul>
          #foreach ($action in $release.getChildren("action"))
          <li>#change ($action)</li>
          #end
          </ul>
        </blockquote>
      </td></tr>
    </table>
    </a>
  #end
  
  #macro (changes)
    #header
    <table border="0" cellspacing="0" cellpadding="2" width="100%">
      <tr><td bgcolor="$bannerbg">
        <font color="$bannerfg" face="arial,helvetica,sanserif">
          <strong>ChangeLog</strong>
        </font>
      </td></tr>
      <tr><td>
        <blockquote>
        #set ($releases = $root.getChildren("release"))
        #foreach ( $release in $releases )
          #changeset ($release)
        #end
        </blockquote>
      </td></tr>
    </table>
    #footer
  #end
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/stylesheets/docs.vsl
  
  Index: docs.vsl
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  
  #parse ( "templates.vm" )
  
  #macro(document)
    #header()
    #set($allSections = $root.getChild("body").getChildren("section"))
    #foreach( $section in $allSections )
      #section ($section)
    #end
    #footer()
  #end
  
  #macro ( subsection $subsection)
    <div class="h4">
      #if ( $subsection.getAttributeValue("anchor") )
        #set ($anchor = $subsection.getAttributeValue("anchor"))
      #else
        #set ($anchor = $subsection.getAttributeValue("name"))
      #end
      <h4><a name="$anchor">$subsection.getAttributeValue("name")</a></h4>
      #foreach ( $items in $subsection.getChildren() )
        #copy($items)
      #end
    </div>
  #end
  
  #macro (section $section)
    <div class="h3">
      #if ( $section.getAttributeValue("anchor") )
        #set ($anchor = $section.getAttributeValue("anchor"))
      #else
        #set ($anchor = $section.getAttributeValue("name"))
      #end
      <h3><a name="$anchor">$section.getAttributeValue("name")</a></h3>
      #foreach ( $items in $section.getChildren() )
        #if ($items.getName().equals("subsection"))
          #subsection ($items)
        #else
          #copy($items)
        #end
      #end
    </div>
  #end
  
  #parse ( "templates.vm" )
  
  <!-- This is a generated file.  Do not edit. -->
  #document()
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/stylesheets/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <project href="http://jakarta.apache.org/avalon/logkit" 
           name="LogKit">
   <title>LogKit</title>
   <logo href="images/header.gif">LogKit</logo>
   <body>
    <menu name="About">
      <item name="Overview" href="/index.html"/>
      <item name="Features" href="/features.html"/>
      <item name="Download" href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest"/>
      <item name="Whitepaper" href="/whitepaper.html"/>
      <item name="Changes" href="/changes.html"/>
      <item name="API Docs" href="http://jakarta.apache.org/avalon/logkit/api/index.html"/>
    </menu>
   </body>
  </project>
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/stylesheets/templates.vm
  
  Index: templates.vm
  ===================================================================
  #macro (header)
    <html>
      <head>
        <style type="text/css">
          @import url("$relativePath/css/tigris.css");
          @import url("$relativePath/css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
        #set ($authors = $root.getChild("properties").getChildren("author"))
        #foreach ( $au in $authors )
          #metaauthor ( $au.getText() $au.getAttributeValue("email") )
        #end
  
        <title>$project.getChild("title").getText() - $root.getChild("properties").getChild("title").getText()</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>#getProjectImage()</td>
              <td><div align="right" valign="bottom"><b><font size="+3">$project.getChild("title").getText()</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
              #makeProject()
              </div>
            </td>
            <td><div id="bodycol"><div class="app">
  #end
  
  #macro (footer)
            </div>
  	#getAuthorList()
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  #end
  
  #macro ( subsection $subsection)
    <div class="h4">
      #if ( $subsection.getAttributeValue("anchor") )
        #set ($anchor = $subsection.getAttributeValue("anchor"))
      #else
        #set ($anchor = $subsection.getAttributeValue("name"))
      #end
      <h4><a name="$anchor">$subsection.getAttributeValue("name")</a></h4>
      #foreach ( $items in $subsection.getChildren() )
        #copy($items)
      #end
    </div>
  #end
  
  #macro (section $section)
    <div class="h3">
      #if ( $section.getAttributeValue("anchor") )
        #set ($anchor = $section.getAttributeValue("anchor"))
      #else
        #set ($anchor = $section.getAttributeValue("name"))
      #end
      <h3><a name="$anchor">$section.getAttributeValue("name")</a></h3>
      #foreach ( $items in $section.getChildren() )
        #if ($items.getName().equals("subsection"))
          #subsection ($items)
        #else
          #copy($items)
        #end
      #end
    </div>
  #end
  
  #macro ( table $table)
    #set ($rowcount = 1)
    <table cellpadding="3" cellspacing="2" border="1" width="100%">
    #foreach ( $items in $table.getChildren() )
      #if ($items.getName().equals("tr"))
        #tr ($items)
      #end
    #end
    </table>
  #end
  
  #macro ( tr $tr)
    #printRow ($rowcount)
    #set ($rowcount = $rowcount + 1)
    #foreach ( $items in $tr.getChildren() )
      #if ($items.getName().equals("td"))
        #td ($items)
      #elseif ($items.getName().equals("th"))
        #th ($items)
      #end
    #end
    </tr>
  #end
  
  #macro (printRow $count)
    #if ($count % 2 > 0)
      <tr class="a">
    #else
      <tr class="b">
    #end
  #end
  
  #macro ( td $value)
    <td
      #if ($value.getAttributeValue("colspan"))
        #set ($colspan = $value.getAttributeValue("colspan"))
        colspan="$!colspan"
      #end
      #if ($value.getAttributeValue("rowspan"))
        #set ($rowspan = $value.getAttributeValue("rowspan"))
        rowspan="$!rowspan"
      #end
    >
      #if ($value.getText().length() != 0 || $value.hasChildren())
        #copycontent($value)
      #else
        &nbsp;
      #end
    </td>
  #end
  
  #macro ( th $value)
    <th
      #if ($value.getAttributeValue("colspan"))
         #set ($colspan = $value.getAttributeValue("colspan"))
         colspan="$!colspan"
      #end
      #if ($value.getAttributeValue("rowspan"))
        #set ($rowspan = $value.getAttributeValue("rowspan"))
        rowspan="$!rowspan"
      #end
    >
      #if ($value.getText().length() != 0 || $value.hasChildren())
        #copycontent($value)
      #else
        &nbsp;
      #end
    </th>
  #end
  
  #macro ( anchor $name $value )
    #if ($value.startsWith("http://"))
      <a href="$value">$name</a>
    #elseif ($value.startsWith("/site"))
      <a href="http://jakarta.apache.org$value">$name</a>
    #elseif ( $value.startsWith("/") )
      <a href="$relativePath$value">$name</a>
    #else
      <a href="$value">$name</a>
    #end
  #end
  
  #macro ( metaauthor $author $email )
    <meta name="author" value="$author">
    <meta name="email" value="$email">
  #end
  
  #macro ( image $value )
    #if ($value.getAttributeValue("width"))
      #set ($width=$value.getAttributeValue("width"))
    #end
    #if ($value.getAttributeValue("height"))
      #set ($height=$value.getAttributeValue("height"))
    #end
    #if ($value.getAttributeValue("align"))
      #set ($align=$value.getAttributeValue("align"))
    #end
    <img src="$relativePath$value.getAttributeValue("src")">
  #end
  
  #macro ( source $value)
    <div id="source">
      <pre>$escape.getText( $value.text.trim() )</pre>
    </div>
  #end
  
  #macro ( makeProject )
    #set ($menus = $project.getChild("body").getChildren("menu"))
    #foreach ( $menu in $menus )
      <div>
        <strong>$menu.getAttributeValue("name")</strong>
        #foreach ( $item in $menu.getChildren() )
          #set ($name = $item.getAttributeValue("name"))
          <div><small>#anchor($name $item.getAttributeValue("href"))</small></div>
        #end
      </div>
    #end
  #end
  
  #macro (getProjectImage)
    #if ($project.getChild("logo"))
      <td align="left">
      <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
      </td>
      <td align="right">
      #set ( $logoString = $project.getChild("logo").getAttributeValue("href") )
      #if ( $logoString.startsWith("/") )
        <a href="$project.getAttributeValue("href")"><img src="$relativePath$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
      #else
        <a href="$project.getAttributeValue("href")"><img src="$relativePath/$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
      #end
      </td>
    #else
      <td colspan="2">
      <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
      </td>
    #end
  #end
  
  #macro (copy $element)
    #if ( $element.name == "a" )
      #anchor ( $element.content $element.getAttributeValue( "href" ) )
    #elseif ( $element.name == "img" )
      #image ($element)
    #elseif ( $element.name == "source" )
      #source ($element)
    #elseif ( $element.name == "table" )
      #table ($element)
    #elseif ( $element.name == "pre" )
      <pre>$element.content</pre>
    #elseif ( $element.name == "escaped" )
      $element.text
    #else
      <$element.name
      #foreach ( $attr in $element.attributes )
        $attr.name="$attr.value"
      #end
      >#copycontent($element)</$element.name>
    #end
  #end
  
  #macro (getAuthorList)
  	<div align="right" id="authors">
  	#set ($authors = $root.getChild("properties").getChildren("author"))
  	#foreach ( $au in $authors )
   #if( $velocityCount == 1 )by #end
   #if( $velocityCount != 1 ),#end <a href="$au.getAttributeValue("email")">$au.getText()</a>
  	#end
  	</div>
  #end
  
  #macro (copycontent $element)
    #if ( $element.children.size() > 0 )
      #foreach ( $child in $element.content )
        #if ( $child.class.name.endsWith( "Element" ) )
          #copy( $child )
        #else
          $escape.getText( $child.getText() )
        #end
      #end
    #else
      $element.content
    #end
  #end
  
  
  
  1.1                  jakarta-avalon-logkit/src/xdocs/stylesheets/velocity.properties
  
  Index: velocity.properties
  ===================================================================
  file.resource.loader.path=src/xdocs/stylesheets
  # disable this for now velocimacro.library=templates.vm
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>