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:
Repository

public abstract class SafeClientRepository
extends ClientObject
implements 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
 String getDescriptor(String name)
          
 String[] getDescriptorKeys()
          
 Value getDescriptorValue(String key)
           
 Value[] getDescriptorValues(String key)
           
protected abstract  RemoteRepository getRemoteRepository()
          Abstract factory class for getting the remote repository.
 boolean isSingleValueDescriptor(String key)
           
 boolean isStandardDescriptor(String key)
           
 Session login()
          
 Session login(Credentials credentials)
          
 Session login(Credentials credentials, String workspace)
          
 Session login(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 RemoteException
Abstract factory class for getting the remote repository.

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

getDescriptor

public String getDescriptor(String name)

Specified by:
getDescriptor in interface Repository

getDescriptorKeys

public String[] getDescriptorKeys()

Specified by:
getDescriptorKeys in interface Repository

login

public Session login(Credentials credentials,
                     String workspace)
              throws RepositoryException

Specified by:
login in interface Repository
Throws:
RepositoryException

login

public Session login(String workspace)
              throws RepositoryException

Specified by:
login in interface Repository
Throws:
RepositoryException

login

public Session login(Credentials credentials)
              throws RepositoryException

Specified by:
login in interface Repository
Throws:
RepositoryException

login

public Session login()
              throws RepositoryException

Specified by:
login in interface Repository
Throws:
RepositoryException

getDescriptorValue

public Value getDescriptorValue(String key)
Specified by:
getDescriptorValue in interface Repository

getDescriptorValues

public Value[] getDescriptorValues(String key)
Specified by:
getDescriptorValues in interface Repository

isSingleValueDescriptor

public boolean isSingleValueDescriptor(String key)
Specified by:
isSingleValueDescriptor in interface Repository

isStandardDescriptor

public boolean isStandardDescriptor(String key)
Specified by:
isStandardDescriptor in interface Repository


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