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.

Class Summary
DateVersionSelector This Class implements a version selector that selects a version by creation date.
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.
VersionImpl Base implementation of the Version interface.
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-2007 The Apache Software Foundation. All Rights Reserved.