Package org.apache.jackrabbit.spi

Defines the interfaces of the JCR SPI (Service Provider Interface).


Interface Summary
Batch The Batch defines an ordered list of of operations that must be executed at once on the persistent layer.
ChildInfo ChildInfo...
Event Event is similar to the regular JCR Event and adds additional information about the affected item.
EventBundle An EventBundle is similar to the EventIterator interface.
EventFilter An EventFilter is applied to the events as generated on the repository server.
IdFactory IdFactory defines methods to construct new ItemIds.
ItemId An ItemId identifies an item using a combination of unique ID and path.
ItemInfo The ItemInfo is the base interface of NodeInfo and PropertyInfo.
ItemInfoCache ItemInfoCache instances are responsible for caching ItemInfos along with an opaque generation counter.
LockInfo LockInfo is used to transport lock information across the SPI boundary.
Name A Name is a combination of a namespace URI and a local part.
NameFactory NameFactory...
NodeId NodeId identifies a node on the SPI layer.
NodeInfo The NodeInfo provides the basic information required to build nodes making up the repository hierarchy.

Note however, that the list of child nodes does not form part of a NodeInfo.

Path The Path interface defines the SPI level representation of a JCR path.
Path.Element Object representation of a single JCR path element.
PathFactory PathFactory...
PropertyId PropertyId identifies a property on the SPI layer.
PropertyInfo The PropertyInfo provides the basic information to build a Property.
QItemDefinition QItemDefinition is the SPI representation of an item definition.
QNodeDefinition QNodeDefinition is the SPI representation of a node definition.
QNodeTypeDefinition QNodeTypeDefinition is the SPI representation of a node type.
QPropertyDefinition QPropertyDefinition is the SPI representation of a property definition.
QueryInfo QueryInfo is the the return value of RepositoryService.executeQuery(SessionInfo, String, String, Map, long, long, Map) which is used to run a query on the RepositoryService.
QueryResultRow QueryResultRow represents the SPI equivalent of a query result row.
QValue QValue is the SPI representation of a jcr value.
QValueConstraint QValueConstraint is used to check the syntax of a value constraint and to test if a specific value satisfies it.
QValueFactory QValueFactory defines methods to create QValue instances.
RepositoryService The RepositoryService interface defines methods used to retrieve information from the persistent layer of the repository as well as the methods that modify its persistent state.
RepositoryServiceFactory Factory for creating RepositoryService instances.
SessionInfo SessionInfo is created upon RepositoryService.obtain(javax.jcr.Credentials, String) or RepositoryService.obtain(SessionInfo, String) and will be used for any call on the RepositoryService that requires user and workspace identification.

In addition the SessionInfo acts as primary container for lock tokens.

Subscription Subscription defines a marker interface for an event subscription.
XASessionInfo XASessionInfo extends the SessionInfo and provides access to the XAResource of the session info.

Class Summary
ItemInfoCache.Entry<T extends ItemInfo> This class represents a cache entry.

Package org.apache.jackrabbit.spi Description

Defines the interfaces of the JCR SPI (Service Provider Interface).

The SPI cuts the JCR stack into two parts:


Because one of the goals of this SPI is to make it easier to implement a remoting layer using various existing protocols, the observation mechanism has been design with this goal in mind. Instead of a listener registration with a callback for each event bundle, the SPI uses a polling mechanism with a timeout: RepositoryService.getEvents(). With every call to this method the repository is advised to return the events that occurred since the last call. As a reference to the last retrieved EventBundle the SessionInfo contains a bundle identifier which is automatically updated on each call to RepositoryService.getEvents(). While this design allows for a polling implementation on top of the SPI it is also well suited for a listener based observation implementation on top of the SPI. With only little thread synchronization overhead events can be acquired using a timeout of Long.MAX_VALUE.

If an SPI implementation does not support observation, the method RepositoryService.getEvents() will always throw an UnsupportedRepositoryOperationException.

Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.