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
AbstractVersion Base implementation of the Version interface.
AbstractVersionHistory Base implementation of the VersionHistory interface.
GenericVersionSelector This Class implements a generic version selector that either selects a version by name, label or creation date.
VersionHistoryImpl This Class implements a version history that extends a node.
VersionImpl This Class implements a Version that extends the node interface
VersionManagerImpl This Class implements a VersionManager.
XAVersion Implementation of a Version that works in an XA environment.
XAVersionHistory Implementation of a VersionHistory that works in an XA environment.
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-2006 The Apache Software Foundation. All Rights Reserved.