org.apache.jackrabbit.rmi.client
Class SafeClientRepository

java.lang.Object
  extended by org.apache.jackrabbit.rmi.client.ClientObject
      extended by org.apache.jackrabbit.rmi.client.SafeClientRepository
All Implemented Interfaces:
javax.jcr.Repository

public abstract class SafeClientRepository
extends ClientObject
implements javax.jcr.Repository

A "safe" local adapter for the JCR-RMI RemoteRepository interface. This class uses an abstract factory method for loading (and reloading) the remote repository instance that is made locally available through the JCR Repository interface. If the remote reference breaks (a RemoteException is thrown by a remote call), then this adapter attempts to reload the remote reference once before failing.

See Also:
Repository, RemoteRepository

Field Summary
 
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
SafeClientRepository(LocalAdapterFactory factory)
          Creates a client adapter for the given remote repository.
 
Method Summary
 java.lang.String getDescriptor(java.lang.String name)
          
 java.lang.String[] getDescriptorKeys()
          
 javax.jcr.Value getDescriptorValue(java.lang.String key)
           
 javax.jcr.Value[] getDescriptorValues(java.lang.String key)
           
protected abstract  RemoteRepository getRemoteRepository()
          Abstract factory class for getting the remote repository.
 boolean isSingleValueDescriptor(java.lang.String key)
           
 boolean isStandardDescriptor(java.lang.String key)
           
 javax.jcr.Session login()
          
 javax.jcr.Session login(javax.jcr.Credentials credentials)
          
 javax.jcr.Session login(javax.jcr.Credentials credentials, java.lang.String workspace)
          
 javax.jcr.Session login(java.lang.String workspace)
          
 
Methods inherited from class org.apache.jackrabbit.rmi.client.ClientObject
getFactory, getItem, getNode, getNodeTypeArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SafeClientRepository

public SafeClientRepository(LocalAdapterFactory factory)
Creates a client adapter for the given remote repository.

Parameters:
remote - remote repository
factory - local adapter factory
Method Detail

getRemoteRepository

protected abstract RemoteRepository getRemoteRepository()
                                                 throws java.rmi.RemoteException
Abstract factory class for getting the remote repository.

Returns:
remote repository
Throws:
java.rmi.RemoteException - if the remote repository could not be accessed

getDescriptor

public java.lang.String getDescriptor(java.lang.String name)

Specified by:
getDescriptor in interface javax.jcr.Repository

getDescriptorKeys

public java.lang.String[] getDescriptorKeys()

Specified by:
getDescriptorKeys in interface javax.jcr.Repository

login

public javax.jcr.Session login(javax.jcr.Credentials credentials,
                               java.lang.String workspace)
                        throws javax.jcr.RepositoryException

Specified by:
login in interface javax.jcr.Repository
Throws:
javax.jcr.RepositoryException

login

public javax.jcr.Session login(java.lang.String workspace)
                        throws javax.jcr.RepositoryException

Specified by:
login in interface javax.jcr.Repository
Throws:
javax.jcr.RepositoryException

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

login

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

Specified by:
login in interface javax.jcr.Repository
Throws:
javax.jcr.RepositoryException

getDescriptorValue

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

getDescriptorValues

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

isSingleValueDescriptor

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

isStandardDescriptor

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


Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.