org.jboss.dna.jcr
Class JcrRepository

java.lang.Object
  extended by org.jboss.dna.jcr.JcrRepository
All Implemented Interfaces:
javax.jcr.Repository

@ThreadSafe
public class JcrRepository
extends Object
implements javax.jcr.Repository

Creates JCR sessions to an underlying repository (which may be a federated repository).

This JCR repository must be configured with the ability to connect to a repository via a supplied repository connection factory and repository source name. An execution context factory must also be supplied to enable working with the underlying DNA graph implementation to which this JCR implementation delegates.

If credentials are used to login, implementations must also implement one of the following methods:

 public AccessControlContext getAccessControlContext();
 public LoginContext getLoginContext();
 
Note, attributes on credentials are not supported. JCR SimpleCredentials are also not supported.

Author:
John Verhaeg, Randall Hauch

Field Summary
 
Fields inherited from interface javax.jcr.Repository
LEVEL_1_SUPPORTED, LEVEL_2_SUPPORTED, OPTION_LOCKING_SUPPORTED, OPTION_OBSERVATION_SUPPORTED, OPTION_QUERY_SQL_SUPPORTED, OPTION_TRANSACTIONS_SUPPORTED, OPTION_VERSIONING_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
 
Constructor Summary
JcrRepository(ExecutionContextFactory executionContextFactory, RepositoryConnectionFactory connectionFactory)
          Creates a JCR repository that uses the supplied repository connection factory to establish sessions to the underlying repository source upon login.
JcrRepository(Map<String,String> descriptors, ExecutionContextFactory executionContextFactory, RepositoryConnectionFactory connectionFactory)
          Creates a JCR repository that uses the supplied repository connection factory to establish sessions to the underlying repository source upon login.
 
Method Summary
 String getDescriptor(String key)
          
 String[] getDescriptorKeys()
          
 javax.jcr.Session login()
          
 javax.jcr.Session login(javax.jcr.Credentials credentials)
          
 javax.jcr.Session login(javax.jcr.Credentials credentials, String workspaceName)
          
 javax.jcr.Session login(String workspaceName)
          
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JcrRepository

public JcrRepository(ExecutionContextFactory executionContextFactory,
                     RepositoryConnectionFactory connectionFactory)
Creates a JCR repository that uses the supplied repository connection factory to establish sessions to the underlying repository source upon login.

Parameters:
executionContextFactory - An execution context factory.
connectionFactory - A repository connection factory.
Throws:
IllegalArgumentException - If executionContextFactory or connectionFactory is null.

JcrRepository

public JcrRepository(Map<String,String> descriptors,
                     ExecutionContextFactory executionContextFactory,
                     RepositoryConnectionFactory connectionFactory)
Creates a JCR repository that uses the supplied repository connection factory to establish sessions to the underlying repository source upon login.

Parameters:
descriptors - The descriptors for this repository; may be null.
executionContextFactory - An execution context factory.
connectionFactory - A repository connection factory.
Throws:
IllegalArgumentException - If executionContextFactory or connectionFactory is null.
Method Detail

getDescriptor

public String getDescriptor(String key)

Specified by:
getDescriptor in interface javax.jcr.Repository
Throws:
IllegalArgumentException - if key is null.
See Also:
Repository.getDescriptor(java.lang.String)

getDescriptorKeys

public String[] getDescriptorKeys()

Specified by:
getDescriptorKeys in interface javax.jcr.Repository
See Also:
Repository.getDescriptorKeys()

login

public javax.jcr.Session login()
                        throws javax.jcr.RepositoryException

Specified by:
login in interface javax.jcr.Repository
Throws:
javax.jcr.RepositoryException
See Also:
Repository.login()

login

public javax.jcr.Session login(javax.jcr.Credentials credentials)
                        throws javax.jcr.RepositoryException

Specified by:
login in interface javax.jcr.Repository
Throws:
javax.jcr.RepositoryException
See Also:
Repository.login(javax.jcr.Credentials)

login

public javax.jcr.Session login(String workspaceName)
                        throws javax.jcr.RepositoryException

Specified by:
login in interface javax.jcr.Repository
Throws:
javax.jcr.RepositoryException
See Also:
Repository.login(java.lang.String)

login

public javax.jcr.Session login(javax.jcr.Credentials credentials,
                               String workspaceName)
                        throws javax.jcr.RepositoryException

Specified by:
login in interface javax.jcr.Repository
Throws:
IllegalArgumentException - if credentials is not null but:
  • provides neither a getLoginContext() nor a getAccessControlContext() method.
  • provides a getLoginContext() method that doesn't return a LoginContext.
  • provides a getLoginContext() method that returns a null LoginContext.
  • does not provide a getLoginContext() method, but provides a getAccessControlContext() method that doesn't return an AccessControlContext.
  • does not provide a getLoginContext() method, but provides a getAccessControlContext() method that returns a null AccessControlContext.
javax.jcr.RepositoryException
See Also:
Repository.login(javax.jcr.Credentials, java.lang.String)


Copyright © 2008-Present JBoss a division of Red Hat. All Rights Reserved.