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
The internal versions are also mapped to the content and exposed through the
API (i.e. the
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.
- consider multi-threading behaviour
Interface Summary Interface Description InternalActivityThis interface defines the internal activity. InternalBaselineThis interface defines the internal baseline. InternalFreezethe base interface for nodes that were versioned and turned either into InternalFrozenNode or InternalFrozenVersionHistory. InternalFrozenNodeThe InternalFrozenNode interface represents the frozen node that was generated during a
InternalFrozenVersionHistoryThis interface defines a frozen versionable child node, that was created during a
Node.checkin()with a OPV==Version node.
InternalVersionThis interface defines the internal version. InternalVersionHistoryThis interface defines the internal version history. InternalVersionItemThis interface defines the base for all internal versioning items. InternalVersionManagerThis interface defines the version manager. VersionSelectorThis Interface defines the version selector that needs to provide a version, given some hints and a version history.
Class Summary Class Description DateVersionSelectorThis Class implements a version selector that selects a version by creation date. InternalVersionManagerImplThis Class implements a VersionManager. InternalVersionManagerImpl.DynamicESCFactory InternalXAVersionManagerImplementation of a
InternalVersionManagerthat works in an XA environment.
LabelVersionSelectorThis Class implements a version selector that selects a version by label. NodeStateExThis Class provides some basic node operations directly on the node state. VersionHistoryImplBase implementation of the
VersionHistoryInfoSimple data object that carries the identifiers of a version history node and the related root version node. VersionImplBase implementation of the
VersioningLockA reentrant read-write lock used by the internal version manager for synchronization. VersioningLock.ReadLock VersioningLock.WriteLock VersionItemStateManagerSpecialized SharedItemStateManager that filters out NodeReferences to non-versioning states. VersionManagerImplBaseThe JCR Version Manager implementation is split in several classes in order to group related methods together. VersionManagerImplConfigThe JCR Version Manager implementation is split in several classes in order to group related methods together. VersionManagerImplMergeThe JCR Version Manager implementation is split in several classes in order to group related methods together. VersionManagerImplRestore VersionSetThis Class implements a version selector that is based on a set of versions.
Exception Summary Exception Description InconsistentVersioningStateThe
InconsistentVersionControlStateis used to signal inconsistencies in the versioning related state of a node, such as missing mandatory properties, missing version nodes, etc.