Package org.apache.jackrabbit.core
The following table lists the core JCR interfaces and the corresponding Jackrabbit implementation classes found in this package.
JCR interface | Implementation class |
---|---|
Repository |
RepositoryImpl |
Session |
SessionImpl |
Workspace |
WorkspaceImpl |
Item |
ItemImpl |
Property |
PropertyImpl |
Node |
NodeImpl |
A Jackrabbit repository instance can be created using the static
RepositoryImpl.create(RepositoryConfig)
method. Classes in the
org.apache.jackrabbit.core.jndi
package provide a mechanism for binding a Jackrabbit repository in a
JNDI directory context.
A SessionImpl
instance is created upon successfully login to the
Repository
(see Repository#login(Credentials, String)
).
A Session
is always tied to the Workspace
specified in the Repository#login(Credentials, String)
call. A
workspace represents a persistent tree of repository items (i.e. Node
s
and Property
s). The items in a workspace are 'visible' to all
sessions accessing it (subject to their access rights, of course).
A WorkspaceImpl
instance represents a specifc workspace as
seen by the session that accesses it.
Every repository item is uniquely identified by its ItemId
. The id
of a node (NodeId
) consists of the node's uuid. The id of a property
(PropertyId
) consists of the parent node's uuid and the
name of the property.
Item managers
Every SessionImpl
instance has its own ItemManager
.
The per-session instance of ItemManager
acts as item factory (i.e.
it creates NodeImpl
and PropertyImpl
instances) and
provides item access by item id and item caching.
The data (or state) of an item is represented by the following classes in the
subpackage state
:
There's one SharedItemStateManager
for every workspace.
It provides item state caching and it guarantees that there's only one
(persistent) item state instance for any distinct item id in that workspace.
Every session has its own SessionItemStateManager
that consists
of the session's TransientItemStateManager
and the workspace's
SharedItemStateManager
.
Each item (i.e. NodeImpl
and PropertyImpl
) instance
is holding an ItemState
instance. When e.g. a session is modifying
a property by changing the property's value, a new transient item state
is created by the session's TransientItemStateManager
. This
transient state is actually wrapping the (old) shared state (copy on write).
The PropertyImpl
's state is then replaced by the new transient state.
Transient (i.e. unsaved) modifications are 'session-local', i.e. they are not visible to other sessions. When the modifications are saved they become instantly visible to all sessions accessing the same workspace.
-
Interface Summary Interface Description HierarchyManager TheHierarchyManager
interface ...ItemLifeCycleListener TheItemLifeCycleListener
interface allows an implementing object to be informed about changes on anItem
instance.LowPriorityTask Interface for low priority tasks (like text extraction) that can be scheduled later based on the extractor's loadSessionListener TheSessionListener
interface allows an implementing object to be informed about changes on aSession
.TransientRepository.RepositoryFactory Factory interface for creatingRepositoryImpl
instances. -
Class Summary Class Description AbstractNodeData Data object representing a node.BatchedItemOperations BatchedItemOperations
is an internal helper class that provides both high- and low-level operations directly on theItemState
level.CachingHierarchyManager Implementation of aHierarchyManager
that caches paths of items.DefaultSecurityManager The security manager acts as central managing class for all security related operations on a low-level non-protected level.HierarchyManagerImpl HierarchyManagerImpl
...HierarchyManagerImpl.CycleDetector Utility class used to detect path cycles with as little overhead as possible.ItemData Data object referenced by differentItemImpl
instances that all represent the same item, i.e.ItemImpl ItemImpl
implements theItem
interface.ItemManager There's oneItemManager
instance perSession
instance.ItemRefreshOperation ItemValidator Utility class for validating an item against constraints specified by its definition.JackrabbitRepositoryStub RepositoryStub implementation for Apache Jackrabbit.LazyItemIterator LazyItemIterator
is an id-based iterator that instantiates theItem
s only when they are requested.NamespaceRegistryImpl ANamespaceRegistryImpl
...NodeImpl NodeImpl
implements theNode
interface.NodeTypeInstanceHandler TheNodeTypeInstanceHandler
is used to provide or initialize system protected properties (or child nodes).PropertyData Data object representing a property.PropertyImpl PropertyImpl
implements theProperty
interface.ProtectedItemModifier ProtectedItemModifier
: An abstract helper class to allow classes residing outside of the core package to modify and remove protected items.RepositoryContext Internal component context of a Jackrabbit content repository.RepositoryCopier Tool for backing up or migrating the entire contents (workspaces, version histories, namespaces, node types, etc.) of a repository to a new repository.RepositoryFactoryImpl RepositoryFactoryImpl
implements a repository factory that creates aTransientRepository
onRepositoryFactoryImpl.getRepository(Map)
.RepositoryImpl ARepositoryImpl
...RepositoryImpl.DescriptorValue Represents a Repository Descriptor Value (either Value or Value[])RepositoryManagerImpl The repository manager implementation.SearchManager Acts as a global entry point to execute queries and index nodes.SessionFactory SessionImpl ASessionImpl
...SessionMoveOperation TestContentLoader Test Content Loader.TransientRepository A repository proxy that automatically initializes and shuts down the underlying repository instance when the first session is opened or the last one closed.UserPerWorkspaceSecurityManager Derived security manager implementation that expects that users information is present in each workspace instead of having a single, dedicated "security-workspace" that provides user information.VersionManagerImpl Implementation of theVersionManager
.WorkspaceImpl AWorkspaceImpl
...WorkspaceManager Utility class that decouplesSessionImpl
from the internal workspace handling details ofRepositoryImpl
.XASessionImpl Session extension that provides XA support.ZombieHierarchyManager HierarchyManager
implementation that is also able to build/resolve paths of those items that have been moved or removed (i.e.