|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.cocoon.xml.AbstractXMLProducer
org.apache.cocoon.generation.AbstractGenerator
org.apache.cocoon.generation.ServiceableGenerator
org.apache.cocoon.generation.EventCacheGenerator
Generator wrapper that forwards generation to to its delegate but overides its caching strategy by replacing it with an event-cache aware implementation.
Sitemap configuration is as follows:
<map:generator name="event-cache" src="org.apache.cocoon.generation.EventCacheGenerator" >
<factory name="my-event" value="com.my.EventFactoryImpl" />
<factory name="my-other-event" value="com.myother.EventFactoryImpl" />
</map:generator>
Pipeline usage is as follows:
<map:generate type="event-cache" src="delegate-src">
<map:parameter name="delegate" value="delegate-type" />
<map:parameter name="event-type" value="my-event" />
<!-- my event parameters -->
<map:parameter name="event-name" value="some name" />
<map:parameter name="event-value" value="some value" />
</map:generate>
The src attribute and all parameters are passed as is to delegate generator.
TODO: share common code with EventCacheTransformer
| Field Summary | |
static String |
DELEGATE_PARAM
|
static String |
EVENT_TYPE_DEFAULT
|
static String |
EVENT_TYPE_PARAM
|
static String |
FACTORY_CONF
|
static String |
FACTORY_NAME_CONF
|
static String |
FACTORY_NAME_TYPE
|
static String |
NAME_VALUE_EVENT_TYPE
|
static String |
NAMED_EVENT_TYPE
|
| 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.cocoon.generation.Generator |
ROLE |
| Constructor Summary | |
EventCacheGenerator()
|
|
| Method Summary | |
void |
configure(Configuration configuration)
|
void |
dispose()
Release all resources. |
void |
generate()
Generate the XML and stream it into the pipeline |
Serializable |
getKey()
Generate the unique key for the resource being rendered. |
SourceValidity |
getValidity()
Generate the validity object. |
void |
recycle()
Recycle the generator by removing references |
void |
service(ServiceManager manager)
Set the current ServiceManager instance used by this
Serviceable. |
void |
setConsumer(XMLConsumer consumer)
Set the XMLConsumer that will receive XML data. |
void |
setup(SourceResolver resolver,
Map objectModel,
String src,
Parameters par)
Set the SourceResolver, object model Map,
the source and sitemap Parameters used to process the request. |
| Methods inherited from class org.apache.cocoon.xml.AbstractXMLProducer |
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 |
| Field Detail |
public static final String NAME_VALUE_EVENT_TYPE
public static final String EVENT_TYPE_DEFAULT
public static final String NAMED_EVENT_TYPE
public static final String FACTORY_CONF
public static final String FACTORY_NAME_CONF
public static final String FACTORY_NAME_TYPE
public static final String DELEGATE_PARAM
public static final String EVENT_TYPE_PARAM
| Constructor Detail |
public EventCacheGenerator()
| Method Detail |
public void service(ServiceManager manager)
throws ServiceException
ServiceableGeneratorServiceManager instance used by this
Serviceable.
service in interface Serviceableservice in class ServiceableGeneratorServiceException
public void configure(Configuration configuration)
throws ConfigurationException
configure in interface ConfigurableConfigurationException
public void setup(SourceResolver resolver,
Map objectModel,
String src,
Parameters par)
throws ProcessingException,
SAXException,
IOException
AbstractGeneratorSourceResolver, object model Map,
the source and sitemap Parameters used to process the request.
setup in interface SitemapModelComponentsetup in class AbstractGeneratorProcessingException
SAXException
IOExceptionpublic void setConsumer(XMLConsumer consumer)
XMLProducerXMLConsumer that will receive XML data.
setConsumer in interface XMLProducersetConsumer in class AbstractXMLProducer
public void generate()
throws IOException,
SAXException,
ProcessingException
Generator
generate in interface GeneratorIOException
SAXException
ProcessingExceptionpublic void recycle()
AbstractGenerator
recycle in interface Recyclablerecycle in class AbstractGeneratorpublic Serializable getKey()
CacheableProcessingComponentThe cache key is the single most important part of the caching implementation. If you don't get it right, you can introduce more load on the caching engine than is necessary. It is important that the cache key has the following attributes:
Thankfully there is a perfectly suitable object that satisfies these
obligations from Java's core: java.lang.String. You can
also use your own specific key objects provided they respect the above
contracts.
Important:If the cache key is null then
your component will not be cached at all. You can use this to your
advantage to cache some things but not others.
getKey in interface CacheableProcessingComponentnull if the component
is currently not cacheable.public SourceValidity getValidity()
CacheableProcessingComponentgetKey() method.
The caching contracts use the Excalibur SourceValidity
interface to determine whether a resource is valid or not. The validity
can be a compound check that incorporates time since creation, parameter
values, etc. As long as the sitemap can determine whether the cached
resource is valid or not. More information is available on the
Apache
Excalibur site. Alternatively you can use the built in
CacheValidity objects in the
org.apache.cocoon.caching package and then use the
CacheValidityToSourceValidity adaptor object.
getValidity in interface CacheableProcessingComponentnull if the
component is currently not cacheable.public void dispose()
ServiceableGenerator
dispose in interface Disposabledispose in class ServiceableGenerator
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||