org.exist.collections.triggers
Class HistoryTrigger
java.lang.Object
org.exist.collections.triggers.FilteringTrigger
org.exist.collections.triggers.HistoryTrigger
- All Implemented Interfaces:
- DocumentTrigger, Trigger, ContentHandler, LexicalHandler
public class HistoryTrigger
- extends FilteringTrigger
- implements DocumentTrigger
This collection trigger will save all old versions of documents before
they are overwritten or removed. The old versions are kept in the
'history root' which is by default '/db/history
', but can be
changed with the parameter 'root
'.
You need to configure this trigger for every collection whose history you
want to preserve, by modifying 'collection.xconf
' such that it
resembles this:
<?xml version='1.0'?>
<collection xmlns='http://exist-db.org/collection-config/1.0'>
<triggers>
<trigger
event='update'
class='org.exist.collections.triggers.HistoryTrigger'
/>
<trigger
event='remove'
class='org.exist.collections.triggers.HistoryTrigger'
/>
</triggers>
</collection>
- Author:
- Mark Spanbroek
- See Also:
Trigger
Method Summary |
void |
configure(DBBroker broker,
Collection parent,
Map parameters)
Configure the trigger. |
void |
finish(int event,
DBBroker broker,
Txn transaction,
XmldbURI documentPath,
DocumentImpl document)
This method is called after the operation completed. |
void |
prepare(int event,
DBBroker broker,
Txn transaction,
XmldbURI documentName,
DocumentImpl doc)
This method is called once before the database will actually parse the input data. |
Methods inherited from class org.exist.collections.triggers.FilteringTrigger |
characters, comment, endCDATA, endDocument, endDTD, endElement, endEntity, endPrefixMapping, getCollection, getInputHandler, getLexicalInputHandler, getLexicalOutputHandler, getLogger, getOutputHandler, ignorableWhitespace, isValidating, processingInstruction, setDocumentLocator, setLexicalOutputHandler, setOutputHandler, setValidating, skippedEntity, startCDATA, startDocument, startDTD, startElement, startEntity, startPrefixMapping |
Methods inherited from interface org.exist.collections.triggers.Trigger |
getLogger |
Methods inherited from interface org.xml.sax.ContentHandler |
characters, endDocument, endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping |
HistoryTrigger
public HistoryTrigger()
configure
public void configure(DBBroker broker,
Collection parent,
Map parameters)
throws CollectionConfigurationException
- Description copied from class:
FilteringTrigger
- Configure the trigger. The default implementation just stores the parent collection
reference into the field
collection
. Use method getCollection
to later retrieve the collection.
- Specified by:
configure
in interface Trigger
- Overrides:
configure
in class FilteringTrigger
- Parameters:
broker
- the database instance used to load the collection configuration. The broker object is
required for all database actions. Please note: the broker instance used for configuration is probably
different from the one passed to the prepare method. Don't store the broker object in your class.parent
- the collection to which this trigger belongs.parameters
- a Map containing any key/value parameters defined in the configuration file.
- Throws:
CollectionConfigurationException
- if the trigger cannot be initialized.
prepare
public void prepare(int event,
DBBroker broker,
Txn transaction,
XmldbURI documentName,
DocumentImpl doc)
throws TriggerException
- Description copied from interface:
DocumentTrigger
- This method is called once before the database will actually parse the input data. You may take any action
here, using the supplied broker instance.
- Specified by:
prepare
in interface DocumentTrigger
- Parameters:
event
- the type of event that triggered this call (see the constants defined in this interface). The ContentHandler instance for the output.broker
- the database instance used to process the current action.transaction
- the current transaction contextdocumentName
- the full absolute path of the document currently processed.doc
- optional: if event is a Trigger.UPDATE_DOCUMENT_EVENT
,
existingDocument will contain the Document object for the old document, which will be overwritten. Otherwise, the parameter
is null.
- Throws:
TriggerException
- throwing a TriggerException will abort the current action.
finish
public void finish(int event,
DBBroker broker,
Txn transaction,
XmldbURI documentPath,
DocumentImpl document)
- Description copied from interface:
DocumentTrigger
- This method is called after the operation completed. At this point, the document has already
been stored.
- Specified by:
finish
in interface DocumentTrigger
- Overrides:
finish
in class FilteringTrigger
- Parameters:
event
- the type of event that triggered this call (see the constants defined in this interface).broker
- the database instance used to process the current action.transaction
- the current transaction contextdocumentPath
- the path of the document, if removed the old path of the documentdocument
- the stored document or null if the document is removed
Copyright (C) Wolfgang Meier. All rights reserved.