Package org.apache.jackrabbit.core.version

The versioning framework in jackrabbit consists of 3 layers.


Interface Summary
InternalFreeze the base interface for nodes that were versioned and turned either into InternalFrozenNode or InteralFrozenVersionHistory.
InternalFrozenNode The InternalFrozenNode interface represents the frozen node that was generated during a Node.checkin().
InternalFrozenVersionHistory This interface defines a frozen versionable child node, that was created during a Node.checkin() with a OPV==Version node.
InternalVersion This interface defines the internal version.
InternalVersionHistory This interface defines the internal version history.
InternalVersionItem This interface defines the base for all internal versioning items.
VersionManager This interface defines the version manager.
VersionSelector This Interface defines the version selector that needs to provide a version, given some hints and a version history. the selector is used in the various restore methods in order to select the correct version of previously versioned OPV=Version children upon restore.

Class Summary
DateVersionSelector This Class implements a version selector that selects a version by creation date.
FrozenNodeIteratorAdapter Implements a node iterator that takes a version iterator and returns the frozen nodes of the underlying versions.
JcrVersionManagerImpl Implementation of the VersionManager.
LabelVersionSelector This Class implements a version selector that selects a version by label.
NodeStateEx This Class provides some basic node operations directly on the node state.
VersionHistoryImpl Base implementation of the VersionHistory interface.
VersionHistoryInfo Simple data object that carries the identifiers of a version history node and the related root version node.
VersionImpl Base implementation of the Version interface.
VersionItemStateManager Spezialized SharedItemStateManager that filters out NodeReferences to non-versioning states.
VersionManagerImpl This Class implements a VersionManager.
XAVersionManager Implementation of a VersionManager that works in an XA environment.

Package org.apache.jackrabbit.core.version Description

The versioning framework in jackrabbit consists of 3 layers. A persistence layer, an application layer and an presentation layer.

The persistence layer uses a 'normal' workspace as storage. The storage can later be exchanged by a more scaleable one. The application layer operates on the persistent one and provides the internal view of the version storage. It is manifested through the InternalVersion and InternalVersionHistory objects. The internal versions are also mapped to the content and exposed through the API (i.e. the Version extends Node and can be inspected with normal Node methods). Furthermore the version store is also exposed below /jcr:system/jcr:versionStorage. The exact structure of it is not defined yet, so applications should not relay on it and rather use Node.getVersionHistory() to access a particular version history or use the search mechanisms to find the respective versions.

The presentation layer is managed by the VersionManager. it is responsible for mapping the version storage to the content.

Open issues:

Copyright © 2004-2009 The Apache Software Foundation. All Rights Reserved.