@ProviderType public abstract class AbstractSlingRepository2 extends java.lang.Object implements SlingRepository
AbstractSlingRepository2 is an abstract implementation of
the SlingRepository version 2.3 interface (phasing
loginAdministrative(String) out in favor of
loginService(String, String)) which provides default support for
attached repositories.
Implementations of the SlingRepository interface may wish to
extend this class to benefit from default implementations of most methods.
To be able to know the calling bundle to implement the
loginService(String, String) method the bundle using the repository
service has to be provided in the
constructor.
The premise of this abstract class is that an instance of an implementation
of this abstract class is handed out to each consumer of the
SlingRepository service. Each instance is generally based on the same
delegated repository instance.AbstractSlingRepositoryManagerIDENTIFIER_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| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getDefaultWorkspace()
Returns the default workspace to login to if any of the
login and
createSession methods is called without an explicit workspace
name. |
java.lang.String |
getDescriptor(java.lang.String name) |
java.lang.String[] |
getDescriptorKeys() |
Value |
getDescriptorValue(java.lang.String key) |
Value[] |
getDescriptorValues(java.lang.String key) |
Session |
impersonateFromService(java.lang.String subServiceName,
Credentials credentials,
java.lang.String workspaceName)
Default implementation of the
impersonateFromService(String, Credentials, String)
method taking into account the bundle calling this method. |
boolean |
isSingleValueDescriptor(java.lang.String key) |
boolean |
isStandardDescriptor(java.lang.String key) |
Session |
login()
Same as calling
login(null, null). |
Session |
login(Credentials credentials)
Same as calling
login(credentials, null). |
Session |
login(Credentials credentials,
java.lang.String workspace)
Logs into the repository at the given
workspace with the given
credentials and returns the session returned from
the repository. |
Session |
login(java.lang.String workspace)
Same as calling
login(null, workspace). |
Session |
loginAdministrative(java.lang.String workspace)
Login as an administrative user.
|
Session |
loginService(java.lang.String subServiceName,
java.lang.String workspace)
Actual implementation of the
loginService(String, String) method
taking into account the bundle calling this method. |
public final java.lang.String getDefaultWorkspace()
login and
createSession methods is called without an explicit workspace
name.
This method may return null in which case the actual default
workspace used depends on the underlying JCR Repository implementation.
getDefaultWorkspace in interface SlingRepositorypublic Session login() throws LoginException, RepositoryException
login(null, null).
This method may be overwritten.
login in interface Repositorylogin(null, null).LoginException - If login is not possibleRepositoryException - If another error occurrs during loginlogin(Credentials, String)public Session login(Credentials credentials) throws LoginException, RepositoryException
login(credentials, null).
This method may be overwritten.
login in interface Repositorycredentials - The Credentials to use to login.login(credentials, null).LoginException - If login is not possibleRepositoryException - If another error occurrs during loginlogin(Credentials, String)public Session login(java.lang.String workspace) throws LoginException, NoSuchWorkspaceException, RepositoryException
login(null, workspace).
This method may be overwritten.
login in interface Repositoryworkspace - The workspace to access or null to access the
default workspacelogin(null, workspace).LoginException - If login is not possibleRepositoryException - If another error occurrs during loginNoSuchWorkspaceExceptionlogin(Credentials, String)public Session login(Credentials credentials, java.lang.String workspace) throws LoginException, NoSuchWorkspaceException, RepositoryException
workspace with the given
credentials and returns the session returned from
the repository.
This method logs in as a guest if null credentials 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.
login in interface Repositorycredentials - The Credentials to use to login. If this is
null JCR GuestCredentials are used to login.workspace - The workspace to access or null to access the
default workspaceLoginException - If login is not possibleNoSuchWorkspaceException - if the desired workspace is not
availableRepositoryException - If another error occurrs during loginpublic final Session loginService(java.lang.String subServiceName, java.lang.String workspace) throws LoginException, RepositoryException
loginService(String, String) method
taking into account the bundle calling this method.
This method uses the
ServiceUserMapper service to map the named service to a user and then
calls the createServiceSession(String, String) method actually
create a session for that user.loginService in interface SlingRepositorysubServiceName - An optional subService identifier (may be
null)workspace - The workspace to access or null to access the
default workspaceLoginException - if the service name cannot be derived or if
logging is as the user to which the service name maps is not
allowedRepositoryException - If a general error occurs while creating the
sessionpublic Session impersonateFromService(java.lang.String subServiceName, Credentials credentials, java.lang.String workspaceName) throws LoginException, RepositoryException
impersonateFromService(String, Credentials, String)
method taking into account the bundle calling this method.
This method uses the
ServiceUserMapper service to map the named service to a user and then
calls the createServiceSession(String, String) method actually
create a session for that user. This service session is then impersonated
to the subject identified by the specified credentials.impersonateFromService in interface SlingRepositorysubServiceName - An optional subService identifier (may be null)credentials - A valid non-null Credentials objectworkspaceName - The workspace to access or null to access the
default workspaceSession objectLoginException - If the current session does not have sufficient access to perform the operation.RepositoryException - If another error occurs.public final Session loginAdministrative(java.lang.String workspace) throws RepositoryException
disableLoginAdministrative
to true.
This implementation cannot be overwritten but, unless disabled, forwards
to the createAdministrativeSession(String) method.
loginAdministrative in interface SlingRepositoryworkspace - The workspace to access or null to access the
default workspaceRepositoryException - If the login fails or has been disabledpublic java.lang.String getDescriptor(java.lang.String name)
getDescriptor in interface Repositorypublic java.lang.String[] getDescriptorKeys()
getDescriptorKeys in interface Repositorypublic Value getDescriptorValue(java.lang.String key)
getDescriptorValue in interface Repositorypublic Value[] getDescriptorValues(java.lang.String key)
getDescriptorValues in interface Repositorypublic boolean isSingleValueDescriptor(java.lang.String key)
isSingleValueDescriptor in interface Repositorypublic boolean isStandardDescriptor(java.lang.String key)
isStandardDescriptor in interface RepositoryCopyright © 2010 - 2023 Adobe. All Rights Reserved