|
|||||||||||
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
ServiceableGenerator
ServiceManager
instance used by this
Serviceable
.
service
in interface Serviceable
service
in class ServiceableGenerator
ServiceException
public void configure(Configuration configuration) throws ConfigurationException
configure
in interface Configurable
ConfigurationException
public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par) throws ProcessingException, SAXException, IOException
AbstractGenerator
SourceResolver
, object model Map
,
the source and sitemap Parameters
used to process the request.
setup
in interface SitemapModelComponent
setup
in class AbstractGenerator
ProcessingException
SAXException
IOException
public void setConsumer(XMLConsumer consumer)
XMLProducer
XMLConsumer
that will receive XML data.
setConsumer
in interface XMLProducer
setConsumer
in class AbstractXMLProducer
public void generate() throws IOException, SAXException, ProcessingException
Generator
generate
in interface Generator
IOException
SAXException
ProcessingException
public void recycle()
AbstractGenerator
recycle
in interface Recyclable
recycle
in class AbstractGenerator
public Serializable getKey()
CacheableProcessingComponent
The 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 CacheableProcessingComponent
null
if the component
is currently not cacheable.public SourceValidity getValidity()
CacheableProcessingComponent
getKey()
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 CacheableProcessingComponent
null
if the
component is currently not cacheable.public void dispose()
ServiceableGenerator
dispose
in interface Disposable
dispose
in class ServiceableGenerator
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |