Class RepositoryImpl
- java.lang.Object
-
- org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl
-
- All Implemented Interfaces:
Repository
,JackrabbitRepository
- Direct Known Subclasses:
OsgiRepository
public class RepositoryImpl extends Object implements JackrabbitRepository
TODO document
-
-
Field Summary
Fields Modifier and Type Field Description static String
BOUND_PRINCIPALS
Name of the session attribute exposing the associated principalsprotected boolean
fastQueryResultSize
static String
REFRESH_INTERVAL
Name of the session attribute value determining the session refresh interval in seconds.static String
RELAXED_LOCKING
Name of the session attribute for enabling relaxed locking rulesprotected Whiteboard
whiteboard
-
Fields inherited from interface org.apache.jackrabbit.api.JackrabbitRepository
OPTION_PRINCIPAL_MANAGEMENT_SUPPORTED, OPTION_PRIVILEGE_MANAGEMENT_SUPPORTED, OPTION_USER_MANAGEMENT_SUPPORTED
-
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
-
-
Constructor Summary
Constructors Constructor Description RepositoryImpl(@NotNull ContentRepository contentRepository, @NotNull Whiteboard whiteboard, @NotNull SecurityProvider securityProvider, int observationQueueLength, CommitRateLimiter commitRateLimiter)
Constructor used for backward compatibility.RepositoryImpl(@NotNull ContentRepository contentRepository, @NotNull Whiteboard whiteboard, @NotNull SecurityProvider securityProvider, int observationQueueLength, CommitRateLimiter commitRateLimiter, boolean fastQueryResultSize, boolean createSessionMBeans)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SessionContext
createSessionContext(StatisticManager statisticManager, SecurityProvider securityProvider, Map<String,Object> attributes, SessionDelegate delegate, int observationQueueLength, CommitRateLimiter commitRateLimiter)
Factory method for creating aSessionContext
instance for a new session.protected GenericDescriptors
determineDescriptors()
Provides descriptors for current repository implementations.String
getDescriptor(String key)
String[]
getDescriptorKeys()
protected GenericDescriptors
getDescriptors()
Returns the descriptors associated with the repositoryValue
getDescriptorValue(String key)
Value[]
getDescriptorValues(String key)
boolean
isSingleValueDescriptor(String key)
boolean
isStandardDescriptor(String key)
Session
login()
CallsRepository.login(Credentials, String)
withnull
arguments.Session
login(@Nullable Credentials credentials, @Nullable String workspaceName)
Session
login(@Nullable Credentials credentials, @Nullable String workspaceName, @Nullable Map<String,Object> attributes)
Equivalent tologin(credentials, workspaceName)
except that the returned Session instance contains the given extra session attributes in addition to any included in the given Credentials instance.Session
login(String workspace)
CallsRepository.login(Credentials, String)
withnull
credentials and the given workspace name.Session
login(Credentials credentials)
CallsRepository.login(Credentials, String)
with the given credentials and anull
workspace name.void
shutdown()
Shuts down the repository.
-
-
-
Field Detail
-
REFRESH_INTERVAL
public static final String REFRESH_INTERVAL
Name of the session attribute value determining the session refresh interval in seconds.- See Also:
RefreshStrategy
, Constant Field Values
-
RELAXED_LOCKING
public static final String RELAXED_LOCKING
Name of the session attribute for enabling relaxed locking rules- See Also:
- OAK-1329, Constant Field Values
-
BOUND_PRINCIPALS
public static final String BOUND_PRINCIPALS
Name of the session attribute exposing the associated principals- See Also:
- OAK-9415, Constant Field Values
-
whiteboard
protected final Whiteboard whiteboard
-
fastQueryResultSize
protected final boolean fastQueryResultSize
-
-
Constructor Detail
-
RepositoryImpl
public RepositoryImpl(@NotNull @NotNull ContentRepository contentRepository, @NotNull @NotNull Whiteboard whiteboard, @NotNull @NotNull SecurityProvider securityProvider, int observationQueueLength, CommitRateLimiter commitRateLimiter)
Constructor used for backward compatibility.
-
RepositoryImpl
public RepositoryImpl(@NotNull @NotNull ContentRepository contentRepository, @NotNull @NotNull Whiteboard whiteboard, @NotNull @NotNull SecurityProvider securityProvider, int observationQueueLength, CommitRateLimiter commitRateLimiter, boolean fastQueryResultSize, boolean createSessionMBeans)
-
-
Method Detail
-
getDescriptorKeys
public String[] getDescriptorKeys()
- Specified by:
getDescriptorKeys
in interfaceRepository
- See Also:
Repository.getDescriptorKeys()
-
isStandardDescriptor
public boolean isStandardDescriptor(String key)
- Specified by:
isStandardDescriptor
in interfaceRepository
- See Also:
Repository.isStandardDescriptor(String)
-
getDescriptor
public String getDescriptor(String key)
- Specified by:
getDescriptor
in interfaceRepository
- See Also:
Repository.getDescriptor(String)
-
getDescriptorValue
public Value getDescriptorValue(String key)
- Specified by:
getDescriptorValue
in interfaceRepository
- See Also:
Repository.getDescriptorValue(String)
-
getDescriptorValues
public Value[] getDescriptorValues(String key)
- Specified by:
getDescriptorValues
in interfaceRepository
- See Also:
Repository.getDescriptorValues(String)
-
isSingleValueDescriptor
public boolean isSingleValueDescriptor(String key)
- Specified by:
isSingleValueDescriptor
in interfaceRepository
- See Also:
Repository.isSingleValueDescriptor(String)
-
login
public Session login(@Nullable @Nullable Credentials credentials, @Nullable @Nullable String workspaceName) throws RepositoryException
- Specified by:
login
in interfaceRepository
- Throws:
RepositoryException
- See Also:
Repository.login(javax.jcr.Credentials, String)
-
login
public Session login() throws RepositoryException
CallsRepository.login(Credentials, String)
withnull
arguments.- Specified by:
login
in interfaceRepository
- Returns:
- logged in session
- Throws:
RepositoryException
- if an error occurs
-
login
public Session login(Credentials credentials) throws RepositoryException
CallsRepository.login(Credentials, String)
with the given credentials and anull
workspace name.- Specified by:
login
in interfaceRepository
- Parameters:
credentials
- login credentials- Returns:
- logged in session
- Throws:
RepositoryException
- if an error occurs
-
login
public Session login(String workspace) throws RepositoryException
CallsRepository.login(Credentials, String)
withnull
credentials and the given workspace name.- Specified by:
login
in interfaceRepository
- Parameters:
workspace
- workspace name- Returns:
- logged in session
- Throws:
RepositoryException
- if an error occurs
-
login
public Session login(@Nullable @Nullable Credentials credentials, @Nullable @Nullable String workspaceName, @Nullable @Nullable Map<String,Object> attributes) throws RepositoryException
Description copied from interface:JackrabbitRepository
Equivalent tologin(credentials, workspaceName)
except that the returned Session instance contains the given extra session attributes in addition to any included in the given Credentials instance. Attribute names from the credentials and the attribute map must not overlap. In case of an overlap implementation may throw anRepositoryException
.The attributes are implementation-specific and may affect the behavior of the returned session. Unlike credentials attributes, these separately passed session attributes are guaranteed not to affect the authentication of the client.
An implementation that does not support a particular session attribute is expected to ignore it and not make it available through the returned session. A client that depends on specific behavior defined by a particular attribute can check whether the returned session contains that attribute to verify whether the underlying repository implementation supports that feature.
- Specified by:
login
in interfaceJackrabbitRepository
- Parameters:
credentials
- the credentials of the userworkspaceName
- the name of a workspaceattributes
- implementation-specific session attributes- Returns:
- a valid session for the user to access the repository
- Throws:
LoginException
- if authentication or authorization for the specified workspace failsNoSuchWorkspaceException
- if the specified workspace is not recognizedRepositoryException
- if another error occurs
-
shutdown
public void shutdown()
Description copied from interface:JackrabbitRepository
Shuts down the repository. A Jackrabbit repository instance contains a acquired resources and cached data that needs to be released and persisted when the repository is no longer used. This method handles all these shutdown tasks and must therefore be called by the client application once the repository instance is no longer used.Possible errors are logged rather than thrown as exceptions as there is little that a client application could do in such a case.
- Specified by:
shutdown
in interfaceJackrabbitRepository
-
createSessionContext
protected SessionContext createSessionContext(StatisticManager statisticManager, SecurityProvider securityProvider, Map<String,Object> attributes, SessionDelegate delegate, int observationQueueLength, CommitRateLimiter commitRateLimiter)
Factory method for creating aSessionContext
instance for a new session. Called bylogin()
. Can be overridden by subclasses to customize the session implementation.- Returns:
- session context
-
determineDescriptors
protected GenericDescriptors determineDescriptors()
Provides descriptors for current repository implementations. Can be overridden by the subclasses to add more values to the descriptor- Returns:
- repository descriptor
-
getDescriptors
protected GenericDescriptors getDescriptors()
Returns the descriptors associated with the repository- Returns:
- repository descriptor
-
-