|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
HierarchyManager | The HierarchyManager interface ... |
InternalXAResource | Interface implemented by resources that provide XA functionality. |
ItemLifeCycleListener | The ItemLifeCycleListener interface allows an implementing
object to be informed about changes on an Item instance. |
NodeIdIterator | NodeIdIterator extends the Iterator interface by the NodeId
specific methods. |
SessionListener | The SessionListener interface allows an implementing
object to be informed about changes on a Session . |
TransientRepository.RepositoryFactory | Factory interface for creating RepositoryImpl instances. |
XASession | Deprecated. Use XASession instead |
Class Summary | |
---|---|
AbstractNodeData | Data object representing a node. |
BatchedItemOperations | BatchedItemOperations is an internal helper class that
provides both high- and low-level operations directly on the
ItemState level. |
CachingHierarchyManager | Implementation of a HierarchyManager 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 ... |
ItemData | Data object referenced by different ItemImpl instances that
all represent the same item, i.e. items having the same ItemId . |
ItemId | ItemId serves as the base class for the concrete classes
PropertyId and NodeId who uniquely identify
nodes and properties in a workspace. |
ItemImpl | ItemImpl implements the Item interface. |
ItemManager | There's one ItemManager instance per Session
instance. |
ItemValidator | Utility class for validating an item against constraints specified by its definition. |
JackrabbitRepositoryStub | RepositoryStub implementation for Apache Jackrabbit. |
NamespaceRegistryImpl | A NamespaceRegistryImpl ... |
NodeId | Node identifier. |
NodeImpl | NodeImpl implements the Node interface. |
PropertyData | Data object representing a property. |
PropertyId | Property identifier. |
PropertyImpl | PropertyImpl implements the Property interface. |
ProtectedItemModifier | SecurityItemModifier : An abstract helper class to allow classes
of the security API residing outside of the core package to modify and remove
protected items for security. |
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 a TransientRepository on RepositoryFactoryImpl.getRepository(Map) . |
RepositoryImpl | A RepositoryImpl ... |
SearchManager | Acts as a global entry point to execute queries and index nodes. |
SessionImpl | A SessionImpl ... |
TransactionContext | Represents the transaction on behalf of the component that wants to explicitly demarcate transaction boundaries. |
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. |
WorkspaceImpl | A WorkspaceImpl ... |
XASessionImpl | Session extension that provides XA support. |
XAWorkspace | Workspace extension that works in an XA environment. |
ZombieHierarchyManager | HierarchyManager implementation that is also able to
build/resolve paths of those items that have been moved or removed
(i.e. moved to the attic). |
Exception Summary | |
---|---|
TransactionException | TransactionException is thrown when some operation inside the transaction fails. |
Contains the core classes that provide the implementation of the JCR API.
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. The
RepositoryHelper
and other 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)
).
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 qualified
name of the property.
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.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |