public class SessionDelegate extends Object
Constructor and Description |
---|
SessionDelegate(org.apache.jackrabbit.oak.api.ContentSession contentSession,
org.apache.jackrabbit.oak.spi.security.SecurityProvider securityProvider,
RefreshStrategy refreshStrategy,
ThreadLocal<Long> threadSaveCount,
org.apache.jackrabbit.oak.stats.StatisticManager statisticManager,
org.apache.jackrabbit.oak.stats.Clock clock)
Create a new session delegate for a
ContentSession . |
Modifier and Type | Method and Description |
---|---|
void |
checkAlive()
Check that this session is alive.
|
void |
checkProtectedNode(String path) |
void |
commit()
Commits the changes currently in the transient space.
|
void |
commit(org.apache.jackrabbit.oak.api.Root root)
Commits the changes applied to the given root.
|
org.apache.jackrabbit.oak.api.AuthInfo |
getAuthInfo() |
org.apache.jackrabbit.oak.api.ContentSession |
getContentSession() |
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager |
getIdManager() |
ItemDelegate |
getItem(String path)
Returns the node or property delegate at the given path.
|
SessionNamespaces |
getNamespaces() |
NodeDelegate |
getNode(String path)
NodeDelegate at the given path |
NodeDelegate |
getNodeByIdentifier(String id) |
org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider |
getPermissionProvider() |
PropertyDelegate |
getProperty(String path)
PropertyDelegate at the given path |
org.apache.jackrabbit.oak.api.QueryEngine |
getQueryEngine() |
org.apache.jackrabbit.oak.api.Root |
getRoot()
The current
Root instance this session delegate instance operates on. |
NodeDelegate |
getRootNode() |
SessionStats |
getSessionStats() |
long |
getUpdateCount() |
String |
getWorkspaceName() |
boolean |
hasPendingChanges() |
boolean |
isAlive()
Determine whether this session is alive and has not been logged
out or become stale by other means.
|
void |
logout() |
void |
move(String srcPath,
String destPath,
boolean transientOp)
Move a node
|
<T> T |
perform(SessionOperation<T> sessionOperation)
Performs the passed
SessionOperation in a safe execution context. |
<T> T |
performNullable(SessionOperation<T> sessionOperation)
Same as
perform(org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation)
but with the option to return null ; thus calling
SessionOperation.performNullable() |
void |
performVoid(SessionOperation<Void> sessionOperation)
Same as
perform(org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation)
for calls that don't expect any return value; thus calling
SessionOperation.performVoid() . |
void |
refresh(boolean keepChanges) |
void |
refreshAtNextAccess() |
<T> T |
safePerform(SessionOperation<T> sessionOperation)
Same as
perform(SessionOperation) unless this method expects
SessionOperation.perform() not to throw a RepositoryException . |
void |
save(String path)
Save the subtree rooted at the given
path , or the entire
transient space if given the root path or null . |
void |
setUserData(String userData) |
<T> Iterator<T> |
sync(Iterator<T> iterator)
Wrap the passed
iterator in an iterator that synchronizes
all access to the underlying session. |
String |
toString() |
public SessionDelegate(@Nonnull org.apache.jackrabbit.oak.api.ContentSession contentSession, @Nonnull org.apache.jackrabbit.oak.spi.security.SecurityProvider securityProvider, @Nonnull RefreshStrategy refreshStrategy, @Nonnull ThreadLocal<Long> threadSaveCount, @Nonnull org.apache.jackrabbit.oak.stats.StatisticManager statisticManager, @Nonnull org.apache.jackrabbit.oak.stats.Clock clock)
ContentSession
. The refresh behaviour of the
session is governed by the value of the refreshInterval
argument: if the session
has been idle longer than that value, an implicit refresh will take place.
In addition a refresh can always be scheduled from the next access by an explicit call
to refreshAtNextAccess()
. This is typically done from within the observation event
dispatcher in order.contentSession
- the content sessionsecurityProvider
- the security providerrefreshStrategy
- the refresh strategy used for auto refreshing this sessionstatisticManager
- the statistics manager for tracking session operations@Nonnull public SessionStats getSessionStats()
public void refreshAtNextAccess()
public <T> Iterator<T> sync(Iterator<T> iterator)
iterator
in an iterator that synchronizes
all access to the underlying session.T
- iterator
- iterator to synchronized@Nonnull public <T> T perform(@Nonnull SessionOperation<T> sessionOperation) throws RepositoryException
SessionOperation
in a safe execution context. This
context ensures that the session is refreshed if necessary and that refreshing
occurs before the session operation is performed and the refreshing is done only
once.T
- return type of sessionOperation
sessionOperation
- the SessionOperation
to performsessionOperation.perform()
RepositoryException
getRoot()
@Nullable public <T> T performNullable(@Nonnull SessionOperation<T> sessionOperation) throws RepositoryException
perform(org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation)
but with the option to return null
; thus calling
SessionOperation.performNullable()
T
- return type of sessionOperation
sessionOperation
- the SessionOperation
to performsessionOperation.performNullable()
, which
might also be null
.RepositoryException
perform(org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation)
public void performVoid(SessionOperation<Void> sessionOperation) throws RepositoryException
perform(org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation)
for calls that don't expect any return value; thus calling
SessionOperation.performVoid()
.sessionOperation
- the SessionOperation
to perform.RepositoryException
perform(org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation)
public <T> T safePerform(SessionOperation<T> sessionOperation)
perform(SessionOperation)
unless this method expects
SessionOperation.perform()
not to throw a RepositoryException
.
Such exceptions will be wrapped into a RuntimeException
and rethrown as they
are considered an internal error.T
- return type of sessionOperation
sessionOperation
- the SessionOperation
to performsessionOperation.perform()
getRoot()
@Nonnull public org.apache.jackrabbit.oak.api.ContentSession getContentSession()
public boolean isAlive()
true
if this session is alive, false
otherwise.public void checkAlive() throws RepositoryException
RepositoryException
- if this session is not aliveisAlive()
public long getUpdateCount()
public void setUserData(String userData)
public void commit() throws org.apache.jackrabbit.oak.api.CommitFailedException
org.apache.jackrabbit.oak.api.CommitFailedException
- if the commit failedpublic void commit(org.apache.jackrabbit.oak.api.Root root) throws org.apache.jackrabbit.oak.api.CommitFailedException
org.apache.jackrabbit.oak.api.CommitFailedException
- if the commit failedpublic void checkProtectedNode(String path) throws RepositoryException
RepositoryException
@Nonnull public org.apache.jackrabbit.oak.api.AuthInfo getAuthInfo()
public void logout()
@Nonnull public org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager getIdManager()
@CheckForNull public NodeDelegate getRootNode()
@CheckForNull public NodeDelegate getNode(String path)
NodeDelegate
at the given pathpath
- Oak pathNodeDelegate
at path
or null
if
none exists or not accessible.@CheckForNull public ItemDelegate getItem(String path)
path
- Oak pathnull
if none exists@CheckForNull public NodeDelegate getNodeByIdentifier(String id)
@CheckForNull public PropertyDelegate getProperty(String path)
PropertyDelegate
at the given pathpath
- Oak pathPropertyDelegate
at path
or null
if
none exists or not accessible.public boolean hasPendingChanges()
public void save(String path) throws RepositoryException
path
, or the entire
transient space if given the root path or null
.
This implementation only performs the save if the subtree rooted
at path
contains all transient changes and will throw an
UnsupportedRepositoryOperationException
otherwise.
path
- RepositoryException
public void refresh(boolean keepChanges)
public void move(String srcPath, String destPath, boolean transientOp) throws RepositoryException
srcPath
- oak path to the source node to copydestPath
- oak path to the destinationtransientOp
- whether or not to perform the move in transient spaceRepositoryException
@Nonnull public org.apache.jackrabbit.oak.api.QueryEngine getQueryEngine()
@Nonnull public org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider getPermissionProvider()
@Nonnull public org.apache.jackrabbit.oak.api.Root getRoot()
Root
instance this session delegate instance operates on.
To ensure the returned root reflects the correct repository revision access
should only be done from within a SessionOperation
closure through
perform(SessionOperation)
.public SessionNamespaces getNamespaces()
Copyright © 2012-2017 The Apache Software Foundation. All Rights Reserved.