|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jackrabbit.commons.AbstractSession
org.apache.jackrabbit.core.SessionImpl
public class SessionImpl
A SessionImpl
...
Field Summary | |
---|---|
protected Map<String,Object> |
attributes
the attributes of this session |
static String |
AUTO_FIX_CORRUPTIONS
Name of the session attribute that controls whether repository inconsistencies should be automatically fixed when traversing over child nodes, when trying to add a child node, or removing a child node. |
protected SessionContext |
context
The component context of this session. |
static String |
DISABLE_CLUSTER_SYNC_ON_REFRESH
Name of the session attribute that controls whether the refresh(boolean) method will cause the repository to
synchronize itself to changes in other cluster nodes. |
protected Map<SessionListener,SessionListener> |
listeners
Listeners (weak references) |
protected AuthContext |
loginContext
the AuthContext of this session (can be null if this session was not instantiated through a login process) |
protected NamePathResolver |
namePathResolver
Name and Path resolver |
protected RepositoryContext |
repositoryContext
The component context of the repository that issued this session. |
protected Subject |
subject
the Subject of this session |
protected String |
userId
the user ID that was used to acquire this session |
protected InternalVersionManager |
versionMgr
The version manager for this session |
Fields inherited from interface javax.jcr.Session |
---|
ACTION_ADD_NODE, ACTION_READ, ACTION_REMOVE, ACTION_SET_PROPERTY |
Constructor Summary | |
---|---|
protected |
SessionImpl(RepositoryContext repositoryContext,
AuthContext loginContext,
WorkspaceConfig wspConfig)
Protected constructor. |
protected |
SessionImpl(RepositoryContext repositoryContext,
Subject subject,
WorkspaceConfig wspConfig)
Protected constructor. |
Method Summary | |
---|---|
void |
addListener(SessionListener listener)
Add a SessionListener |
void |
addLockToken(String lt)
|
protected boolean |
autoFixCorruptions()
Checks whether repository inconsistencies should be automatically fixed when traversing over child nodes, when trying to add a child node, or when removing a child node. |
void |
checkFormat(String identifier)
|
void |
checkPermission(String absPath,
String actions)
|
protected boolean |
clusterSyncOnRefresh()
Checks whether the refresh(boolean) method should cause
cluster synchronization. |
protected AccessManager |
createAccessManager(Subject subject)
Create the access manager. |
GarbageCollector |
createDataStoreGarbageCollector()
Create a data store garbage collector for this repository. |
protected ItemManager |
createItemManager()
Create the item manager. |
protected ObservationManagerImpl |
createObservationManager(String wspName)
|
Session |
createSession(String workspaceName)
Creates a new session with the same subject as this sessions but to a different workspace. |
protected SessionItemStateManager |
createSessionItemStateManager()
Create the session item state manager. |
protected InternalVersionManager |
createVersionManager()
Create the version manager. |
void |
finalize()
Finalize the session. |
AccessControlManager |
getAccessControlManager()
|
AccessManager |
getAccessManager()
Returns the AccessManager associated with this session. |
Object |
getAttribute(String name)
|
String[] |
getAttributeNames()
|
HierarchyManager |
getHierarchyManager()
Returns the HierarchyManager associated with this session. |
ContentHandler |
getImportContentHandler(String parentAbsPath,
int uuidBehavior)
|
InternalVersionManager |
getInternalVersionManager()
Returns the InternalVersionManager associated with this session. |
Item |
getItem(String absPath)
Returns the node or property at the given path. |
ItemManager |
getItemManager()
Returns the ItemManager of this session. |
String |
getJCRName(Name name)
Returns the qualified JCR name String for the given Name object. |
String |
getJCRPath(Path path)
Returns the given JCR path string for the given path object. |
Lock[] |
getLocks()
Returns all locks owned by this session. |
String[] |
getLockTokens()
|
Node |
getNode(String absPath)
Returns the node with the given absolute path. |
NodeImpl |
getNodeById(NodeId id)
Retrieves the Node with the given id. |
Node |
getNodeByIdentifier(String id)
|
Node |
getNodeByUUID(String uuid)
|
NodeTypeManagerImpl |
getNodeTypeManager()
Returns the NodeTypeManager . |
Path |
getPath(String identifier)
|
String |
getPrefix(String uri)
Returns the prefix which is mapped to the given URI. |
PrincipalManager |
getPrincipalManager()
Returns the PrincipalManager for the current Session . |
Property |
getProperty(String absPath)
Returns the property with the given absolute path. |
Name |
getQName(String name)
Returns the Name for the given JCR name String. |
Path |
getQPath(String path)
Returns the path object for the given JCR path string. |
Path |
getQPath(String path,
boolean normalizeIdentifier)
Returns the path object for the given JCR path string. |
Repository |
getRepository()
|
RetentionManager |
getRetentionManager()
|
protected RetentionRegistry |
getRetentionRegistry()
Returns the internal retention manager used for evaluation of effective retention policies and holds. |
Node |
getRootNode()
|
Subject |
getSubject()
Returns the Subject associated with this session. |
String |
getURI(String prefix)
Returns the URI to which the given prefix is mapped. |
String |
getUserID()
|
UserManager |
getUserManager()
Returns the UserManager for the current Session . |
ValueFactory |
getValueFactory()
|
Workspace |
getWorkspace()
|
boolean |
hasCapability(String methodName,
Object target,
Object[] arguments)
|
boolean |
hasPendingChanges()
|
boolean |
hasPermission(String absPath,
String actions)
|
Session |
impersonate(Credentials otherCredentials)
Logs in the same workspace with the given credentials. |
boolean |
isLive()
|
boolean |
itemExists(String absPath)
Calls AbstractSession.getItem(String) with the given path and returns
true if the call succeeds. |
void |
logout()
Invalidates this session and releases all associated resources. |
void |
move(String srcAbsPath,
String destAbsPath)
|
boolean |
nodeExists(String absPath)
Checks whether a node with the given absolute path exists. |
protected void |
notifyLoggedOut()
Notify the listeners that this session has been closed. |
protected void |
notifyLoggingOut()
Notify the listeners that this session is about to be closed. |
boolean |
propertyExists(String absPath)
Checks whether a property with the given absolute path exists. |
void |
refresh(boolean keepChanges)
|
void |
removeItem(String absPath)
Removes the identified item. |
void |
removeListener(SessionListener listener)
Remove a SessionListener |
void |
removeLockToken(String lt)
|
protected String |
retrieveUserId(Subject subject,
String workspaceName)
Retrieve the userID from the specified subject. |
void |
save()
|
protected void |
setAttribute(String name,
Object value)
Sets the named attribute. |
void |
setNamespacePrefix(String prefix,
String uri)
Modifies the session local namespace mappings to contain the given prefix to URI mapping. |
String |
toString()
Returns the unique internal name of this session. |
Methods inherited from class org.apache.jackrabbit.commons.AbstractSession |
---|
exportDocumentView, exportDocumentView, exportSystemView, exportSystemView, getNamespacePrefix, getNamespacePrefixes, getNamespaceURI, importXML |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface javax.jcr.Session |
---|
exportDocumentView, exportDocumentView, exportSystemView, exportSystemView, getNamespacePrefix, getNamespacePrefixes, getNamespaceURI, importXML |
Field Detail |
---|
public static final String DISABLE_CLUSTER_SYNC_ON_REFRESH
refresh(boolean)
method will cause the repository to
synchronize itself to changes in other cluster nodes. This cluster
synchronization is enabled by default, unless an attribute with this
name is set (any non-null value) for this session.
public static final String AUTO_FIX_CORRUPTIONS
protected final SessionContext context
protected final RepositoryContext repositoryContext
protected AuthContext loginContext
protected final Subject subject
protected final String userId
protected final Map<String,Object> attributes
protected NamePathResolver namePathResolver
protected final InternalVersionManager versionMgr
protected final Map<SessionListener,SessionListener> listeners
Constructor Detail |
---|
protected SessionImpl(RepositoryContext repositoryContext, AuthContext loginContext, WorkspaceConfig wspConfig) throws AccessDeniedException, RepositoryException
repositoryContext
- repository contextloginContext
- wspConfig
-
AccessDeniedException
- if the subject of the given login context
is not granted access to the specified
workspace
RepositoryException
- if another error occursprotected SessionImpl(RepositoryContext repositoryContext, Subject subject, WorkspaceConfig wspConfig) throws AccessDeniedException, RepositoryException
repositoryContext
- repository contextsubject
- wspConfig
-
AccessDeniedException
- if the given subject is not granted access
to the specified workspace
RepositoryException
- if another error occursMethod Detail |
---|
protected String retrieveUserId(Subject subject, String workspaceName) throws RepositoryException
RepositoryException
protected SessionItemStateManager createSessionItemStateManager()
protected ItemManager createItemManager()
protected ObservationManagerImpl createObservationManager(String wspName) throws RepositoryException
RepositoryException
protected InternalVersionManager createVersionManager() throws RepositoryException
RepositoryException
protected AccessManager createAccessManager(Subject subject) throws AccessDeniedException, RepositoryException
subject
-
AccessDeniedException
- if the current subject is not granted access
to the current workspace
RepositoryException
- if the access manager cannot be instantiatedpublic Subject getSubject()
Subject
associated with this session.
Subject
associated with this sessionpublic Session createSession(String workspaceName) throws AccessDeniedException, NoSuchWorkspaceException, RepositoryException
workspaceName
- name of the workspace to acquire a session for.
AccessDeniedException
- in case the current Subject is not allowed
to access the requested Workspace
NoSuchWorkspaceException
- If the named workspace does not exist.
RepositoryException
- in any other exceptional statepublic AccessManager getAccessManager()
AccessManager
associated with this session.
AccessManager
associated with this sessionpublic NodeTypeManagerImpl getNodeTypeManager()
NodeTypeManager
.
NodeTypeManager
public ItemManager getItemManager()
ItemManager
of this session.
ItemManager
public HierarchyManager getHierarchyManager()
HierarchyManager
associated with this session.
HierarchyManager
associated with this sessionpublic InternalVersionManager getInternalVersionManager()
InternalVersionManager
associated with this session.
InternalVersionManager
associated with this sessionprotected RetentionRegistry getRetentionRegistry() throws RepositoryException
RepositoryException
protected void setAttribute(String name, Object value)
null
, then
the named attribute is removed.
name
- attribute namevalue
- attribute valuepublic NodeImpl getNodeById(NodeId id) throws ItemNotFoundException, RepositoryException
Node
with the given id.
id
- id of node to be retrieved
NodeId
.
ItemNotFoundException
- if no such node exists or if this
Session
does not have permission to access the node.
RepositoryException
- if another error occurs.protected void notifyLoggingOut()
protected void notifyLoggedOut()
public void addListener(SessionListener listener)
SessionListener
listener
- the new listener to be informed on modificationspublic void removeListener(SessionListener listener)
SessionListener
listener
- an existing listenerpublic GarbageCollector createDataStoreGarbageCollector() throws RepositoryException
RepositoryException
public String getPrefix(String uri) throws NamespaceException
NamespaceResolver
getPrefix
in interface NamespaceResolver
uri
- namespace URI
NamespaceException
- if the URI is unknown.public String getURI(String prefix) throws NamespaceException
NamespaceResolver
getURI
in interface NamespaceResolver
prefix
- namespace prefix
NamespaceException
- if the prefix is unknown.public String getJCRName(Name name) throws NamespaceException
NameResolver
Name
object.
getJCRName
in interface NameResolver
name
- A Name
object.
prefix:localName
or
localName
in case of the empty namespace.
NamespaceException
- if the namespace URI can not be resolvedpublic Name getQName(String name) throws IllegalNameException, NamespaceException
NameResolver
Name
for the given JCR name String.
getQName
in interface NameResolver
name
- A JCR name String.
Name
object.
IllegalNameException
- if the JCR name format is invalid
NamespaceException
- if the namespace prefix can not be resolvedpublic String getJCRPath(Path path) throws NamespaceException
PathResolver
getJCRPath
in interface PathResolver
path
- a Path
object.
NamespaceException
- if a namespace URI can not be resolvedpublic Path getQPath(String path) throws MalformedPathException, IllegalNameException, NamespaceException
PathResolver
getQPath
in interface PathResolver
path
- prefixed JCR path
Path
object.
MalformedPathException
- if the JCR path format is invalid.
IllegalNameException
- if any of the JCR names contained in the path are invalid.
NamespaceException
- if a namespace prefix can not be resolved.public Path getQPath(String path, boolean normalizeIdentifier) throws MalformedPathException, IllegalNameException, NamespaceException
PathResolver
getQPath
in interface PathResolver
path
- prefixed JCR path
Path
object.
MalformedPathException
- if the JCR path format is invalid.
IllegalNameException
- if any of the JCR names contained in the path are invalid.
NamespaceException
- if a namespace prefix can not be resolved.public Path getPath(String identifier) throws MalformedPathException
getPath
in interface IdentifierResolver
MalformedPathException
IdentifierResolver.getPath(String)
public void checkFormat(String identifier) throws MalformedPathException
checkFormat
in interface IdentifierResolver
MalformedPathException
IdentifierResolver.checkFormat(String)
public PrincipalManager getPrincipalManager() throws RepositoryException, AccessDeniedException
JackrabbitSession
PrincipalManager
for the current Session
.
getPrincipalManager
in interface JackrabbitSession
PrincipalManager
associated with this Session
.
AccessDeniedException
- If the session lacks privileges to access
the principal manager or principals in general.
UnsupportedRepositoryOperationException
- If principal management
is not supported.
RepositoryException
- If another error occurs.JackrabbitSession.getPrincipalManager()
public UserManager getUserManager() throws AccessDeniedException, RepositoryException
JackrabbitSession
UserManager
for the current Session
.
getUserManager
in interface JackrabbitSession
UserManager
associated with this Session
.
AccessDeniedException
- If this session is not allowed to
to access user data.
UnsupportedRepositoryOperationException
- If user management is
not supported.
RepositoryException
- If another error occurs.JackrabbitSession.getUserManager()
public void checkPermission(String absPath, String actions) throws AccessControlException, RepositoryException
checkPermission
in interface Session
AccessControlException
RepositoryException
public Workspace getWorkspace()
getWorkspace
in interface Session
public Session impersonate(Credentials otherCredentials) throws LoginException, RepositoryException
The default implementation:
Repository
instance using
Session.getRepository()
Session.getWorkspace()
Workspace.getName()
Repository.login(Credentials, String)
on the
retrieved repository with the given credentials and the retrieved
workspace name.
impersonate
in interface Session
impersonate
in class AbstractSession
otherCredentials
- login credentials
RepositoryException
- if an error occurs
LoginException
public Node getRootNode() throws RepositoryException
getRootNode
in interface Session
RepositoryException
public Node getNodeByUUID(String uuid) throws ItemNotFoundException, RepositoryException
getNodeByUUID
in interface Session
ItemNotFoundException
RepositoryException
public Item getItem(String absPath) throws RepositoryException
The default implementation:
PathNotFoundException
if the given path
does not start with a slash.
Node.getNode(String)
on the root node with the
part of the given path after the first slash
Node.getProperty(String)
similarly in case the
above call fails with a PathNotFoundException
getItem
in interface Session
getItem
in class AbstractSession
absPath
- absolute path
PathNotFoundException
- if the given path is invalid or not found
RepositoryException
- if another error occursSession.getItem(String)
public boolean itemExists(String absPath) throws RepositoryException
AbstractSession.getItem(String)
with the given path and returns
true
if the call succeeds. Returns false
if a PathNotFoundException
was thrown. Other exceptions are
passed through.
itemExists
in interface Session
itemExists
in class AbstractSession
absPath
- absolute path
true
if an item exists at the given path,
false
otherwise
RepositoryException
- if an error occursSession.itemExists(String)
public void save() throws RepositoryException
save
in interface Session
RepositoryException
public void refresh(boolean keepChanges) throws RepositoryException
refresh
in interface Session
RepositoryException
protected boolean clusterSyncOnRefresh()
refresh(boolean)
method should cause
cluster synchronization.
Subclasses can override this method to implement alternative rules on when cluster synchronization should be done.
true
if the DISABLE_CLUSTER_SYNC_ON_REFRESH
attribute is not set, false
otherwiseprotected boolean autoFixCorruptions()
true
if the AUTO_FIX_CORRUPTIONS
attribute is set, false
otherwisepublic boolean hasPendingChanges() throws RepositoryException
hasPendingChanges
in interface Session
RepositoryException
public void move(String srcAbsPath, String destAbsPath) throws RepositoryException
move
in interface Session
RepositoryException
public ContentHandler getImportContentHandler(String parentAbsPath, int uuidBehavior) throws PathNotFoundException, ConstraintViolationException, VersionException, LockException, RepositoryException
getImportContentHandler
in interface Session
PathNotFoundException
ConstraintViolationException
VersionException
LockException
RepositoryException
public boolean isLive()
isLive
in interface Session
public void logout()
logout
in interface Session
logout
in class AbstractSession
public Repository getRepository()
getRepository
in interface Session
public ValueFactory getValueFactory()
getValueFactory
in interface Session
public String getUserID()
getUserID
in interface Session
public Object getAttribute(String name)
getAttribute
in interface Session
public String[] getAttributeNames()
getAttributeNames
in interface Session
public void setNamespacePrefix(String prefix, String uri) throws NamespaceException, RepositoryException
This behaviour is based on JSR 283 (JCR 2.0), but remains backwards compatible with JCR 1.0.
setNamespacePrefix
in interface Session
setNamespacePrefix
in class AbstractSession
prefix
- namespace prefixuri
- namespace URI
NamespaceException
- if the mapping is illegal
RepositoryException
- if a repository error occurspublic void addLockToken(String lt)
addLockToken
in interface Session
public String[] getLockTokens()
getLockTokens
in interface Session
public void removeLockToken(String lt)
removeLockToken
in interface Session
public Lock[] getLocks()
Lock
spublic Node getNodeByIdentifier(String id) throws ItemNotFoundException, RepositoryException
getNodeByIdentifier
in interface Session
ItemNotFoundException
RepositoryException
Session.getNodeByIdentifier(String)
public Node getNode(String absPath) throws RepositoryException
AbstractSession
getNode
in interface Session
getNode
in class AbstractSession
absPath
- absolute path
RepositoryException
- if the node can not be accessedSession.getNode(String)
public Property getProperty(String absPath) throws RepositoryException
AbstractSession
getProperty
in interface Session
getProperty
in class AbstractSession
absPath
- absolute path
RepositoryException
- if the property can not be accessedSession.getProperty(String)
public boolean nodeExists(String absPath) throws RepositoryException
AbstractSession
nodeExists
in interface Session
nodeExists
in class AbstractSession
absPath
- absolute path
true
if a node with the given path exists,
false
otherwise
RepositoryException
- if the path is invalidSession.nodeExists(String)
public boolean propertyExists(String absPath) throws RepositoryException
AbstractSession
propertyExists
in interface Session
propertyExists
in class AbstractSession
absPath
- absolute path
true
if a property with the given path exists,
false
otherwise
RepositoryException
- if the path is invalidSession.propertyExists(String)
public void removeItem(String absPath) throws RepositoryException
AbstractSession
Item.remove()
on the item removed by AbstractSession.getItem(String)
.
removeItem
in interface Session
removeItem
in class AbstractSession
absPath
- An absolute path of the item to be removed
RepositoryException
- if the item can not be removedSession.removeItem(String)
public boolean hasPermission(String absPath, String actions) throws RepositoryException
hasPermission
in interface Session
RepositoryException
Session.hasPermission(String, String)
public boolean hasCapability(String methodName, Object target, Object[] arguments) throws RepositoryException
hasCapability
in interface Session
RepositoryException
Session.hasCapability(String, Object, Object[])
public AccessControlManager getAccessControlManager() throws UnsupportedRepositoryOperationException, RepositoryException
getAccessControlManager
in interface Session
UnsupportedRepositoryOperationException
RepositoryException
Session.getAccessControlManager()
public RetentionManager getRetentionManager() throws UnsupportedRepositoryOperationException, RepositoryException
getRetentionManager
in interface Session
UnsupportedRepositoryOperationException
RepositoryException
Session.getRetentionManager()
public String toString()
toString
in class Object
sessionName
public void finalize()
finalize
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |