You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by Steven Noels <st...@outerthought.org> on 2002/11/03 22:06:50 UTC

Cocoon Ant Task committed

Yummy (if it does what Bernhard claims it does).

-------- Original Message --------
Subject: cvs commit:
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/ant CocoonCrawling.java
CocoonProcessorDelegate.java CocoonTask.java
DelayedFileOutputStream.java DelayedFileSavingEnvironment.java
NullOutputStream.java UriType.java readme.txt
Date: 3 Nov 2002 20:26:50 -0000
From: huber@apache.org
Reply-To: cocoon-dev@xml.apache.org
To: xml-cocoon2-cvs@apache.org

huber       2002/11/03 12:26:50

    Added:       src/scratchpad/src/org/apache/cocoon/ant 
CocoonCrawling.java
                          CocoonProcessorDelegate.java CocoonTask.java
                          DelayedFileOutputStream.java
                          DelayedFileSavingEnvironment.java
                          NullOutputStream.java UriType.java readme.txt
    Log:
    A simple ant task for launching cocoon. see readme.txt for additional
descriptions



    Index: readme.txt
    ===================================================================
     This directory implements a Cocoon Ant Task.

     The basic attributes of this ant task are taken from
org.apache.cocoon.Main
     Beside implementing launching Cocoon via ant the number of Cocoon
     invocation should be reduced compared to the Main implementation.

     Another trigger for implementing an Ant task:
     I wanted to exploit a bit launching cocoon from a different environment
     than servlet, and main-commandline environment.

     Side Note:
       Main invokes Cocoon for getting the links for a URI, it
       invokes Cocoon for getting the content type of a URI, and
       finally it invokes Cocoon for getting the page content itself.

     This implementation skips getting the content type of a URI,
     by implementing a DelayedFileSavingEnvironment. This class
     write the content of a page into a ByteArrayBuffer till the content 
type
     of page has been settled. This should and will save time generating
     off-line pages.
     Moreover getting links of an URI is reduced to URIs having content
type text/*.
     This should speed up the page generation a bit more. This feature 
should
     be made configurable...

     Classloader Note:
       I struggled a bit making Cocoon running as an Ant task, the
       the classpath for loading the cocoon task should include all
       classes need for running cocoon too.
       In the CocoonTask java code itself the
Thread.currentThred().setContextClassLoader()
       is absolutly important, otherwise Cocoon will fail configuring using
       it starup manager.
       Of course you can define all Cocoon classes in your java classpath
commandline
       environment, but i wanted to avoid this. Defining all needed
classes only
       in the ant script.

     Cocoon Ant task usage:
     <project basedir="." default="cocoon-docs" name="cocoon-docs">
       <property name="cocoon.dir" value="your-cocoon-directory"/>

       <path id="cocoon.classpath">
         <fileset dir="${cocoon.dir}/lib">
         <include name="core/jvm1.4/*.jar"/>
         <include name="core/*.jar"/>
         <include name="optional/*.jar"/>
         </fileset>
         <fileset dir="${cocoon.dir}/build/cocoon">
         <include name="*.jar"/>
         </fileset>
       </path>

       <target
         name="prepare-cocoon-docs"
         description="[internal] define the task for launching Cocoon">

         <taskdef name="cocoon" classname="org.apache.cocoon.ant.CocoonTask"
           classpathref="cocoon.classpath"/>
       </target>

       <target name="cocoon-docs" depends="prepare-cocoon-docs"
         description="* build cocoon documentation">

         <property name="contextDir"
value="${cocoon.dir}/build/cocoon/documentation"/>
         <property name="workDir"
value="${cocoon.dir}/build/cocoon-ant-work"/>
         <property name="destDir"
value="${cocoon.dir}/build/cocoon-ant-docs"/>

         <cocoon
           contextDir="${contextDir}"
           workDir="${workDir}"
           destDir="${destDir}"
           targets="/index.html"
           logLevel="WARN"
         />
       </target>
     </project>

     CocoonTask Attributes

     Cocoon Creation
     ---------------

     contextDir - Cocoon's context directory, mandatory
     configFile - specifies cocoon xconf file, by default try using
${contextDir}/WEB-INF/cocoon.xconf,
     ${contextDir}/cocoon.xconf

     workDir - Cocoon's work directory, by default sub directory work of
directory specified
     by system property java.io.tmpdir

     Cocoon Logging
     --------------
     logLevel - log level option DEBUG, INFO, WARN, ERROR, by default INFO
     logger - logger category, by default "cocoon"
     logkitXconf - logkit xconf file, by default try using
${contextDir}/WEB-INF/logkit.xconf,
     ${contextDir}/cocoon.xconf

     Processing Cocoon options
     -------------------------
     targets - comma, space, or semicolon seperated list of target URIs,
eg. /index.html,
     mandatory

     acceptHeader - accept header, by default text/html, * / *
     agentHeader - agent header, by default Apache Cocoon 2.1-dev

     Processing Cocoon File Generation
     ---------------------------------
     destDir - destination directory of generated targets, mandatory

     Processing Cocoon Modes
     -----------------------
     followLinks - boolean value, iff following links should be
processed, by default true
     precompileOnly - boolean value, iff xsp precompile should be
performed, by default false,
     not evaluted - yet

     Processing Cocoon Link Generation
     ---------------------------------
     to-do

     Processing Cocoon Index Generation
     ----------------------------------
     to-do


    Future Plans
     I think about creating some ant inner classes for specifying some
more subtask
     Subtask ideas:
       Offline index generation
       Offline xsp compilation
       Offline link generation

     Ideas are welcome
     Have fun.





----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org


-- 
Steven Noels                            http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
stevenn@outerthought.org                      stevenn@apache.org