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 StringBOUND_PRINCIPALSName of the session attribute exposing the associated principalsprotected booleanfastQueryResultSizestatic StringREFRESH_INTERVALName of the session attribute value determining the session refresh interval in seconds.static StringRELAXED_LOCKINGName of the session attribute for enabling relaxed locking rulesprotected Whiteboardwhiteboard-
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 SessionContextcreateSessionContext(StatisticManager statisticManager, SecurityProvider securityProvider, Map<String,Object> attributes, SessionDelegate delegate, int observationQueueLength, CommitRateLimiter commitRateLimiter)Factory method for creating aSessionContextinstance for a new session.protected GenericDescriptorsdetermineDescriptors()Provides descriptors for current repository implementations.StringgetDescriptor(String key)String[]getDescriptorKeys()protected GenericDescriptorsgetDescriptors()Returns the descriptors associated with the repositoryValuegetDescriptorValue(String key)Value[]getDescriptorValues(String key)booleanisSingleValueDescriptor(String key)booleanisStandardDescriptor(String key)Sessionlogin()CallsRepository.login(Credentials, String)withnullarguments.Sessionlogin(@Nullable Credentials credentials, @Nullable String workspaceName)Sessionlogin(@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.Sessionlogin(String workspace)CallsRepository.login(Credentials, String)withnullcredentials and the given workspace name.Sessionlogin(Credentials credentials)CallsRepository.login(Credentials, String)with the given credentials and anullworkspace name.voidshutdown()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:
getDescriptorKeysin interfaceRepository- See Also:
Repository.getDescriptorKeys()
-
isStandardDescriptor
public boolean isStandardDescriptor(String key)
- Specified by:
isStandardDescriptorin interfaceRepository- See Also:
Repository.isStandardDescriptor(String)
-
getDescriptor
public String getDescriptor(String key)
- Specified by:
getDescriptorin interfaceRepository- See Also:
Repository.getDescriptor(String)
-
getDescriptorValue
public Value getDescriptorValue(String key)
- Specified by:
getDescriptorValuein interfaceRepository- See Also:
Repository.getDescriptorValue(String)
-
getDescriptorValues
public Value[] getDescriptorValues(String key)
- Specified by:
getDescriptorValuesin interfaceRepository- See Also:
Repository.getDescriptorValues(String)
-
isSingleValueDescriptor
public boolean isSingleValueDescriptor(String key)
- Specified by:
isSingleValueDescriptorin interfaceRepository- See Also:
Repository.isSingleValueDescriptor(String)
-
login
public Session login(@Nullable @Nullable Credentials credentials, @Nullable @Nullable String workspaceName) throws RepositoryException
- Specified by:
loginin interfaceRepository- Throws:
RepositoryException- See Also:
Repository.login(javax.jcr.Credentials, String)
-
login
public Session login() throws RepositoryException
CallsRepository.login(Credentials, String)withnullarguments.- Specified by:
loginin 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 anullworkspace name.- Specified by:
loginin 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)withnullcredentials and the given workspace name.- Specified by:
loginin 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:JackrabbitRepositoryEquivalent 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:
loginin 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:JackrabbitRepositoryShuts 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:
shutdownin interfaceJackrabbitRepository
-
createSessionContext
protected SessionContext createSessionContext(StatisticManager statisticManager, SecurityProvider securityProvider, Map<String,Object> attributes, SessionDelegate delegate, int observationQueueLength, CommitRateLimiter commitRateLimiter)
Factory method for creating aSessionContextinstance 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
-
-