Package org.apache.jackrabbit.core.version
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:
- consider multi-threading behaviour
-
Interface Summary Interface Description InternalActivity This interface defines the internal activity.InternalBaseline This interface defines the internal baseline.InternalFreeze the base interface for nodes that were versioned and turned either into InternalFrozenNode or InternalFrozenVersionHistory.InternalFrozenNode The InternalFrozenNode interface represents the frozen node that was generated during aNode.checkin()
.InternalFrozenVersionHistory This interface defines a frozen versionable child node, that was created during aNode.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.InternalVersionManager 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 Class Description DateVersionSelector This Class implements a version selector that selects a version by creation date.InternalVersionManagerImpl This Class implements a VersionManager.InternalVersionManagerImpl.DynamicESCFactory InternalXAVersionManager Implementation of aInternalVersionManager
that works in an XA environment.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 theVersionHistory
interface.VersionHistoryInfo Simple data object that carries the identifiers of a version history node and the related root version node.VersionImpl Base implementation of theVersion
interface.VersioningLock A reentrant read-write lock used by the internal version manager for synchronization.VersioningLock.ReadLock VersioningLock.WriteLock VersionItemStateManager Specialized SharedItemStateManager that filters out NodeReferences to non-versioning states.VersionManagerImplBase The JCR Version Manager implementation is split in several classes in order to group related methods together.VersionManagerImplConfig The JCR Version Manager implementation is split in several classes in order to group related methods together.VersionManagerImplMerge The JCR Version Manager implementation is split in several classes in order to group related methods together.VersionManagerImplRestore The JCR Version Manager implementation is split in several classes in order to group related methods together.VersionSet This Class implements a version selector that is based on a set of versions. -
Exception Summary Exception Description InconsistentVersioningState TheInconsistentVersionControlState
is used to signal inconsistencies in the versioning related state of a node, such as missing mandatory properties, missing version nodes, etc.