org.apache.cocoon.generation
Class VelocityGenerator

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.cocoon.xml.AbstractXMLProducer
          extended by org.apache.cocoon.generation.AbstractGenerator
              extended by org.apache.cocoon.generation.ServiceableGenerator
                  extended by org.apache.cocoon.generation.VelocityGenerator
All Implemented Interfaces:
Poolable, Recyclable, Disposable, Initializable, Component, Configurable, LogEnabled, Serviceable, Generator, SitemapModelComponent, XMLProducer, org.apache.velocity.runtime.log.LogSystem

public class VelocityGenerator
extends ServiceableGenerator
implements Initializable, Configurable, org.apache.velocity.runtime.log.LogSystem

Cocoon Generator that produces dynamic XML SAX events from a Velocity template file.

If called from a Flowscript, the immediate properties of the context object from the Flowscript are available in the Velocity context. In that case, the current Web Continuation from the Flowscript is also available as a variable named continuation. You would typically access its id:

    <form action="$continuation.id">
 

You can also reach previous continuations by using the getContinuation() function:

     <form action="$continuation.getContinuation(1).id}" >
 

In addition the following implicit objects are always available in the Velocity context:

request (org.apache.cocoon.environment.Request)
The Cocoon current request
response (org.apache.cocoon.environment.Response)
The Cocoon response associated with the current request
session (org.apache.cocoon.environment.Session)
The Cocoon session associated with the current request
context (org.apache.cocoon.environment.Context)
The Cocoon context associated with the current request
parameters (org.apache.avalon.framework.parameters.Parameters)
Any parameters passed to the generator in the pipeline

Sitemap Configuration

Attributes:

usecache (optional; default: 'false')
set to 'true' to enable template caching on the 'cocoon' resource loader
checkInterval (optional; default: '0')
This is the number of seconds between modification checks when caching is turned on. When this is an integer > 0, this represents the number of seconds between checks to see if the template was modified. If the template has been modified since last check, then it is reloaded and reparsed. Otherwise nothing is done. When <= 0, no modification checks will take place, and assuming that the property cache (above) is true, once a template is loaded and parsed the first time it is used, it will not be checked or reloaded after that until the application or servlet engine is restarted.

Child Elements:

<property name="propertyName" value="propertyValue"/> (optional; 0..n)
An additional property to pass along to the Velocity template engine during initialization
<resource-loader name="loaderName" class="javaClassName" > (optional; 0..n; children: property*)
The default configuration uses the 'cocoon' resource loader which resolves resources via the Cocoon SourceResolver. Additional resource loaders can be added with this configuration element. Configuration properties for the resource loader can be specified by adding a child property element of the resource-loader element. The prefix '<name>.resource.loader.' is automatically added to the property name.

Version:
CVS $Id: VelocityGenerator.html 1304258 2012-03-23 10:09:27Z ilgrosso $

Nested Class Summary
static class VelocityGenerator.ChainedContext
          Velocity context implementation specific to the Servlet environment.
static class VelocityGenerator.JSIntrospector
          Velocity Introspector that supports Rhino JavaScript objects as well as Java Objects
static class VelocityGenerator.TemplateLoader
          Velocity ResourceLoader implementation to load template resources using Cocoon's SourceResolver.
 
Field Summary
 
Fields inherited from class org.apache.cocoon.generation.ServiceableGenerator
manager
 
Fields inherited from class org.apache.cocoon.generation.AbstractGenerator
objectModel, parameters, resolver, source
 
Fields inherited from class org.apache.cocoon.xml.AbstractXMLProducer
contentHandler, EMPTY_CONTENT_HANDLER, lexicalHandler, xmlConsumer
 
Fields inherited from interface org.apache.velocity.runtime.log.LogSystem
DEBUG_ID, DEBUG_ON, ERROR_ID, INFO_ID, WARN_ID
 
Fields inherited from interface org.apache.cocoon.generation.Generator
ROLE
 
Constructor Summary
VelocityGenerator()
           
 
Method Summary
 void configure(Configuration configuration)
          Read any additional objects to export to the Velocity context from the configuration.
 void generate()
          Generate XML data using Velocity template.
 void init(org.apache.velocity.runtime.RuntimeServices rs)
          This implementation does nothing.
 void initialize()
           
 void logVelocityMessage(int level, String message)
          Pass along Velocity log messages to our configured logger.
 void recycle()
          Free up the VelocityContext associated with the pipeline, and release any Source objects resolved by the resource loader.
 void setup(SourceResolver resolver, Map objectModel, String src, Parameters params)
          Set the SourceResolver, object model Map, the source and sitemap Parameters used to process the request.
 
Methods inherited from class org.apache.cocoon.generation.ServiceableGenerator
dispose, service
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLProducer
setConsumer, setContentHandler, setLexicalHandler
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.cocoon.xml.XMLProducer
setConsumer
 

Constructor Detail

VelocityGenerator

public VelocityGenerator()
Method Detail

configure

public void configure(Configuration configuration)
               throws ConfigurationException
Read any additional objects to export to the Velocity context from the configuration.

Specified by:
configure in interface Configurable
Parameters:
configuration - the class configurations.
Throws:
ConfigurationException
See Also:
Configurable.configure(Configuration)

initialize

public void initialize()
                throws Exception
Specified by:
initialize in interface Initializable
Throws:
Exception
See Also:
Initializable.initialize()

setup

public void setup(SourceResolver resolver,
                  Map objectModel,
                  String src,
                  Parameters params)
           throws ProcessingException,
                  SAXException,
                  IOException
Description copied from class: AbstractGenerator
Set the SourceResolver, object model Map, the source and sitemap Parameters used to process the request.

Specified by:
setup in interface SitemapModelComponent
Overrides:
setup in class AbstractGenerator
Throws:
ProcessingException
SAXException
IOException
See Also:
SitemapModelComponent.setup(SourceResolver, Map, String, Parameters)

recycle

public void recycle()
Free up the VelocityContext associated with the pipeline, and release any Source objects resolved by the resource loader.

Specified by:
recycle in interface Recyclable
Overrides:
recycle in class AbstractGenerator
See Also:
Recyclable.recycle()

generate

public void generate()
              throws IOException,
                     SAXException,
                     ProcessingException
Generate XML data using Velocity template.

Specified by:
generate in interface Generator
Throws:
IOException
SAXException
ProcessingException
See Also:
Generator.generate()

init

public void init(org.apache.velocity.runtime.RuntimeServices rs)
          throws Exception
This implementation does nothing.

Specified by:
init in interface org.apache.velocity.runtime.log.LogSystem
Throws:
Exception
See Also:
LogSystem.init(RuntimeServices)

logVelocityMessage

public void logVelocityMessage(int level,
                               String message)
Pass along Velocity log messages to our configured logger.

Specified by:
logVelocityMessage in interface org.apache.velocity.runtime.log.LogSystem
See Also:
LogSystem.logVelocityMessage(int, String)


Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.