Class TcclWrappingJackrabbitRepository

java.lang.Object
org.apache.sling.jcr.oak.server.internal.TcclWrappingJackrabbitRepository
All Implemented Interfaces:
javax.jcr.Repository, org.apache.jackrabbit.api.JackrabbitRepository

public class TcclWrappingJackrabbitRepository extends Object implements org.apache.jackrabbit.api.JackrabbitRepository
Custom JackrabbitRepository that ensures that the correct Thread Context ClassLoader is set in OSGi environments

Oak still requires that for Repository.login() and Session.impersonate(Credentials) calls a custom thread context class loader is set. This wrapper simply ensures that the TCCL is set for all calls.

  • Field Summary

    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
    TcclWrappingJackrabbitRepository(org.apache.jackrabbit.api.JackrabbitRepository wrapped)
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
     
    javax.jcr.Value
     
    javax.jcr.Value[]
     
    boolean
     
    boolean
     
    javax.jcr.Session
     
    javax.jcr.Session
    login(String workspaceName)
     
    javax.jcr.Session
    login(javax.jcr.Credentials credentials)
     
    javax.jcr.Session
    login(javax.jcr.Credentials credentials, String workspaceName)
     
    javax.jcr.Session
    login(javax.jcr.Credentials credentials, String workspaceName, Map<String,Object> attributes)
     
    void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TcclWrappingJackrabbitRepository

      public TcclWrappingJackrabbitRepository(org.apache.jackrabbit.api.JackrabbitRepository wrapped)
  • Method Details

    • login

      public javax.jcr.Session login(javax.jcr.Credentials credentials, String workspaceName) throws javax.jcr.LoginException, javax.jcr.NoSuchWorkspaceException, javax.jcr.RepositoryException
      Specified by:
      login in interface javax.jcr.Repository
      Throws:
      javax.jcr.LoginException
      javax.jcr.NoSuchWorkspaceException
      javax.jcr.RepositoryException
    • login

      public javax.jcr.Session login(javax.jcr.Credentials credentials) throws javax.jcr.LoginException, javax.jcr.RepositoryException
      Specified by:
      login in interface javax.jcr.Repository
      Throws:
      javax.jcr.LoginException
      javax.jcr.RepositoryException
    • login

      public javax.jcr.Session login(String workspaceName) throws javax.jcr.LoginException, javax.jcr.NoSuchWorkspaceException, javax.jcr.RepositoryException
      Specified by:
      login in interface javax.jcr.Repository
      Throws:
      javax.jcr.LoginException
      javax.jcr.NoSuchWorkspaceException
      javax.jcr.RepositoryException
    • login

      public javax.jcr.Session login() throws javax.jcr.LoginException, javax.jcr.RepositoryException
      Specified by:
      login in interface javax.jcr.Repository
      Throws:
      javax.jcr.LoginException
      javax.jcr.RepositoryException
    • login

      public javax.jcr.Session login(javax.jcr.Credentials credentials, String workspaceName, Map<String,Object> attributes) throws javax.jcr.LoginException, javax.jcr.NoSuchWorkspaceException, javax.jcr.RepositoryException
      Specified by:
      login in interface org.apache.jackrabbit.api.JackrabbitRepository
      Throws:
      javax.jcr.LoginException
      javax.jcr.NoSuchWorkspaceException
      javax.jcr.RepositoryException
    • getDescriptorKeys

      public String[] getDescriptorKeys()
      Specified by:
      getDescriptorKeys in interface javax.jcr.Repository
    • isStandardDescriptor

      public boolean isStandardDescriptor(String key)
      Specified by:
      isStandardDescriptor in interface javax.jcr.Repository
    • isSingleValueDescriptor

      public boolean isSingleValueDescriptor(String key)
      Specified by:
      isSingleValueDescriptor in interface javax.jcr.Repository
    • getDescriptorValue

      public javax.jcr.Value getDescriptorValue(String key)
      Specified by:
      getDescriptorValue in interface javax.jcr.Repository
    • getDescriptorValues

      public javax.jcr.Value[] getDescriptorValues(String key)
      Specified by:
      getDescriptorValues in interface javax.jcr.Repository
    • getDescriptor

      public String getDescriptor(String key)
      Specified by:
      getDescriptor in interface javax.jcr.Repository
    • shutdown

      public void shutdown()
      Specified by:
      shutdown in interface org.apache.jackrabbit.api.JackrabbitRepository