Package org.apache.sling.jcr.base
Class AbstractSlingRepository2
- java.lang.Object
 - 
- org.apache.sling.jcr.base.AbstractSlingRepository2
 
 
- 
- All Implemented Interfaces:
 javax.jcr.Repository,SlingRepository
@ProviderType public abstract class AbstractSlingRepository2 extends java.lang.Object implements SlingRepository
TheAbstractSlingRepository2is an abstract implementation of theSlingRepositoryversion 2.3 interface (phasingloginAdministrative(String)out in favor ofloginService(String, String)) which provides default support for attached repositories. Implementations of theSlingRepositoryinterface may wish to extend this class to benefit from default implementations of most methods. To be able to know the calling bundle to implement theloginService(String, String)method the bundle using the repository service has to be provided in theconstructor. The premise of this abstract class is that an instance of an implementation of this abstract class is handed out to each consumer of theSlingRepositoryservice. Each instance is generally based on the samedelegated repositoryinstance.- Since:
 - API version 2.4 (bundle version 2.3)
 - See Also:
 AbstractSlingRepositoryManager
 
- 
- 
Field Summary
- 
Fields inherited from interface javax.jcr.Repository
IDENTIFIER_STABILITY, IDENTIFIER_STABILITY_INDEFINITE_DURATION, IDENTIFIER_STABILITY_METHOD_DURATION, IDENTIFIER_STABILITY_SAVE_DURATION, IDENTIFIER_STABILITY_SESSION_DURATION, LEVEL_1_SUPPORTED, LEVEL_2_SUPPORTED, NODE_TYPE_MANAGEMENT_AUTOCREATED_DEFINITIONS_SUPPORTED, NODE_TYPE_MANAGEMENT_INHERITANCE, NODE_TYPE_MANAGEMENT_INHERITANCE_MINIMAL, NODE_TYPE_MANAGEMENT_INHERITANCE_MULTIPLE, NODE_TYPE_MANAGEMENT_INHERITANCE_SINGLE, NODE_TYPE_MANAGEMENT_MULTIPLE_BINARY_PROPERTIES_SUPPORTED, NODE_TYPE_MANAGEMENT_MULTIVALUED_PROPERTIES_SUPPORTED, NODE_TYPE_MANAGEMENT_ORDERABLE_CHILD_NODES_SUPPORTED, NODE_TYPE_MANAGEMENT_OVERRIDES_SUPPORTED, NODE_TYPE_MANAGEMENT_PRIMARY_ITEM_NAME_SUPPORTED, NODE_TYPE_MANAGEMENT_PROPERTY_TYPES, NODE_TYPE_MANAGEMENT_RESIDUAL_DEFINITIONS_SUPPORTED, NODE_TYPE_MANAGEMENT_SAME_NAME_SIBLINGS_SUPPORTED, NODE_TYPE_MANAGEMENT_UPDATE_IN_USE_SUPORTED, NODE_TYPE_MANAGEMENT_VALUE_CONSTRAINTS_SUPPORTED, OPTION_ACCESS_CONTROL_SUPPORTED, OPTION_ACTIVITIES_SUPPORTED, OPTION_BASELINES_SUPPORTED, OPTION_JOURNALED_OBSERVATION_SUPPORTED, OPTION_LIFECYCLE_SUPPORTED, OPTION_LOCKING_SUPPORTED, OPTION_NODE_AND_PROPERTY_WITH_SAME_NAME_SUPPORTED, OPTION_NODE_TYPE_MANAGEMENT_SUPPORTED, OPTION_OBSERVATION_SUPPORTED, OPTION_QUERY_SQL_SUPPORTED, OPTION_RETENTION_SUPPORTED, OPTION_SHAREABLE_NODES_SUPPORTED, OPTION_SIMPLE_VERSIONING_SUPPORTED, OPTION_TRANSACTIONS_SUPPORTED, OPTION_UNFILED_CONTENT_SUPPORTED, OPTION_UPDATE_MIXIN_NODE_TYPES_SUPPORTED, OPTION_UPDATE_PRIMARY_NODE_TYPE_SUPPORTED, OPTION_VERSIONING_SUPPORTED, OPTION_WORKSPACE_MANAGEMENT_SUPPORTED, OPTION_XML_EXPORT_SUPPORTED, OPTION_XML_IMPORT_SUPPORTED, QUERY_FULL_TEXT_SEARCH_SUPPORTED, QUERY_JOINS, QUERY_JOINS_INNER, QUERY_JOINS_INNER_OUTER, QUERY_JOINS_NONE, QUERY_LANGUAGES, QUERY_STORED_QUERIES_SUPPORTED, QUERY_XPATH_DOC_ORDER, QUERY_XPATH_POS_INDEX, REP_NAME_DESC, REP_VENDOR_DESC, REP_VENDOR_URL_DESC, REP_VERSION_DESC, SPEC_NAME_DESC, SPEC_VERSION_DESC, WRITE_SUPPORTED 
 - 
 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetDefaultWorkspace()Returns the default workspace to login to if any of theloginandcreateSessionmethods is called without an explicit workspace name.java.lang.StringgetDescriptor(java.lang.String name)java.lang.String[]getDescriptorKeys()javax.jcr.ValuegetDescriptorValue(java.lang.String key)javax.jcr.Value[]getDescriptorValues(java.lang.String key)javax.jcr.SessionimpersonateFromService(java.lang.String subServiceName, javax.jcr.Credentials credentials, java.lang.String workspaceName)Default implementation of theimpersonateFromService(String, Credentials, String)method taking into account the bundle calling this method.booleanisSingleValueDescriptor(java.lang.String key)booleanisStandardDescriptor(java.lang.String key)javax.jcr.Sessionlogin()Same as callinglogin(null, null).javax.jcr.Sessionlogin(java.lang.String workspace)Same as callinglogin(null, workspace).javax.jcr.Sessionlogin(javax.jcr.Credentials credentials)Same as callinglogin(credentials, null).javax.jcr.Sessionlogin(javax.jcr.Credentials credentials, java.lang.String workspace)Logs into the repository at the givenworkspacewith the givencredentialsand returns the session returned from the repository.javax.jcr.SessionloginAdministrative(java.lang.String workspace)Login as an administrative user.javax.jcr.SessionloginService(java.lang.String subServiceName, java.lang.String workspace)Actual implementation of theloginService(String, String)method taking into account the bundle calling this method. 
 - 
 
- 
- 
Method Detail
- 
getDefaultWorkspace
public final java.lang.String getDefaultWorkspace()
Returns the default workspace to login to if any of theloginandcreateSessionmethods is called without an explicit workspace name.This method may return
nullin which case the actual default workspace used depends on the underlying JCR Repository implementation.- Specified by:
 getDefaultWorkspacein interfaceSlingRepository- Returns:
 - null if the configured default workspace name is empty, SLING-256
 
 
- 
login
public javax.jcr.Session login() throws javax.jcr.LoginException, javax.jcr.RepositoryExceptionSame as callinglogin(null, null).This method may be overwritten.
- Specified by:
 loginin interfacejavax.jcr.Repository- Returns:
 - the result of calling 
login(null, null). - Throws:
 javax.jcr.LoginException- If login is not possiblejavax.jcr.RepositoryException- If another error occurrs during login- See Also:
 login(Credentials, String)
 
- 
login
public javax.jcr.Session login(javax.jcr.Credentials credentials) throws javax.jcr.LoginException, javax.jcr.RepositoryExceptionSame as callinglogin(credentials, null).This method may be overwritten.
- Specified by:
 loginin interfacejavax.jcr.Repository- Parameters:
 credentials- TheCredentialsto use to login.- Returns:
 - the result of calling 
login(credentials, null). - Throws:
 javax.jcr.LoginException- If login is not possiblejavax.jcr.RepositoryException- If another error occurrs during login- See Also:
 login(Credentials, String)
 
- 
login
public javax.jcr.Session login(java.lang.String workspace) throws javax.jcr.LoginException, javax.jcr.NoSuchWorkspaceException, javax.jcr.RepositoryExceptionSame as callinglogin(null, workspace).This method may be overwritten.
- Specified by:
 loginin interfacejavax.jcr.Repository- Parameters:
 workspace- The workspace to access ornullto access thedefault workspace- Returns:
 - the result of calling 
login(null, workspace). - Throws:
 javax.jcr.LoginException- If login is not possiblejavax.jcr.RepositoryException- If another error occurrs during loginjavax.jcr.NoSuchWorkspaceException- See Also:
 login(Credentials, String)
 
- 
login
public javax.jcr.Session login(javax.jcr.Credentials credentials, java.lang.String workspace) throws javax.jcr.LoginException, javax.jcr.NoSuchWorkspaceException, javax.jcr.RepositoryExceptionLogs into the repository at the givenworkspacewith the givencredentialsand returns the session returned from the repository.This method logs in as a guest if
nullcredentials are provided. The method may be overwritten to implement a different behaviour as indicated by the JCR specification for this method to use external mechanisms to login instead of leveraging provided credentials.This method may be overwritten.
- Specified by:
 loginin interfacejavax.jcr.Repository- Parameters:
 credentials- TheCredentialsto use to login. If this isnullJCRGuestCredentialsare used to login.workspace- The workspace to access ornullto access thedefault workspace- Throws:
 javax.jcr.LoginException- If login is not possiblejavax.jcr.NoSuchWorkspaceException- if the desired workspace is not availablejavax.jcr.RepositoryException- If another error occurrs during login
 
- 
loginService
public final javax.jcr.Session loginService(java.lang.String subServiceName, java.lang.String workspace) throws javax.jcr.LoginException, javax.jcr.RepositoryExceptionActual implementation of theloginService(String, String)method taking into account the bundle calling this method. This method uses theServiceUserMapperservice to map the named service to a user and then calls thecreateServiceSession(String, String)method actually create a session for that user.- Specified by:
 loginServicein interfaceSlingRepository- Parameters:
 subServiceName- An optional subService identifier (may benull)workspace- The workspace to access ornullto access thedefault workspace- Returns:
 - A session authenticated with the service user
 - Throws:
 javax.jcr.LoginException- if the service name cannot be derived or if logging is as the user to which the service name maps is not allowedjavax.jcr.RepositoryException- If a general error occurs while creating the session- See Also:
 - Service Authentication
 
 
- 
impersonateFromService
public javax.jcr.Session impersonateFromService(java.lang.String subServiceName, javax.jcr.Credentials credentials, java.lang.String workspaceName) throws javax.jcr.LoginException, javax.jcr.RepositoryExceptionDefault implementation of theimpersonateFromService(String, Credentials, String)method taking into account the bundle calling this method. This method uses theServiceUserMapperservice to map the named service to a user and then calls thecreateServiceSession(String, String)method actually create a session for that user. This service session is then impersonated to the subject identified by the specifiedcredentials.- Specified by:
 impersonateFromServicein interfaceSlingRepository- Parameters:
 subServiceName- An optional subService identifier (may benull)credentials- A valid non-nullCredentialsobjectworkspaceName- The workspace to access ornullto access thedefault workspace- Returns:
 - a new 
Sessionobject - Throws:
 javax.jcr.LoginException- If the current session does not have sufficient access to perform the operation.javax.jcr.RepositoryException- If another error occurs.- Since:
 - 2.4
 
 
- 
loginAdministrative
public final javax.jcr.Session loginAdministrative(java.lang.String workspace) throws javax.jcr.RepositoryExceptionLogin as an administrative user. This method is deprecated and its use can be completely disabled by settingdisableLoginAdministrativetotrue.This implementation cannot be overwritten but, unless disabled, forwards to the
createAdministrativeSession(String)method.- Specified by:
 loginAdministrativein interfaceSlingRepository- Parameters:
 workspace- The workspace to access ornullto access thedefault workspace- Returns:
 - An administrative session
 - Throws:
 javax.jcr.RepositoryException- If the login fails or has been disabled
 
- 
getDescriptor
public java.lang.String getDescriptor(java.lang.String name)
- Specified by:
 getDescriptorin interfacejavax.jcr.Repository
 
- 
getDescriptorKeys
public java.lang.String[] getDescriptorKeys()
- Specified by:
 getDescriptorKeysin interfacejavax.jcr.Repository
 
- 
getDescriptorValue
public javax.jcr.Value getDescriptorValue(java.lang.String key)
- Specified by:
 getDescriptorValuein interfacejavax.jcr.Repository
 
- 
getDescriptorValues
public javax.jcr.Value[] getDescriptorValues(java.lang.String key)
- Specified by:
 getDescriptorValuesin interfacejavax.jcr.Repository
 
- 
isSingleValueDescriptor
public boolean isSingleValueDescriptor(java.lang.String key)
- Specified by:
 isSingleValueDescriptorin interfacejavax.jcr.Repository
 
- 
isStandardDescriptor
public boolean isStandardDescriptor(java.lang.String key)
- Specified by:
 isStandardDescriptorin interfacejavax.jcr.Repository
 
 - 
 
 -