See: Description
| Interface | Description | 
|---|---|
| LocalAdapterFactory | Factory interface for creating local adapters for remote references. | 
| Class | Description | 
|---|---|
| BrokenRemoteRepository | Dummy remote repository instance that throws a  RemoteExceptionwhenever any method is invoked. | 
| ClientAdapterFactory | Default implementation of the
  LocalAdapterFactoryinterface. | 
| ClientItem | Local adapter for the JCR-RMI
  RemoteIteminterface. | 
| ClientItemDefinition | Local adapter for the JCR-RMI
  RemoteItemDefinitioninterface. | 
| ClientLock | Local adapter for the JCR-RMI
  RemoteLockinterface. | 
| ClientLockManager | |
| ClientNamespaceRegistry | Local adapter for the JCR-RMI
  RemoteNamespaceRegistryinterface. | 
| ClientNode | Local adapter for the JCR-RMI
  RemoteNodeinterface. | 
| ClientNodeDefinition | Local adapter for the JCR-RMI
  RemoteNodeDefinitioninterface. | 
| ClientNodeType | Local adapter for the JCR-RMI
  RemoteNodeTypeinterface. | 
| ClientNodeTypeManager | Local adapter for the JCR-RMI
  RemoteNodeTypeManagerinterface. | 
| ClientObject | Base class for client adapter objects. | 
| ClientObservationManager | The  ClientObservationManagerclass | 
| ClientProperty | Local adapter for the JCR-RMI
  RemotePropertyinterface. | 
| ClientPropertyDefinition | Local adapter for the JCR-RMI
  RemotePropertyDefinitioninterface. | 
| ClientQuery | Local adapter for the JCR-RMI
  RemoteQueryinterface. | 
| ClientQueryManager | Local adapter for the JCR-RMI  RemoteQueryManagerinterface. | 
| ClientQueryResult | Local adapter for the JCR-RMI
  RemoteQueryResultinterface. | 
| ClientRepository | Local adapter for the JCR-RMI
  RemoteRepositoryinterface. | 
| ClientRepositoryFactory | Object factory for JCR-RMI clients. | 
| ClientRow | Local adapter for the JCR-RMI  RemoteRowinterface. | 
| ClientSession | Local adapter for the JCR-RMI
  RemoteSessioninterface. | 
| ClientVersion | Local adapter for the JCR-RMI
  RemoteVersioninterface. | 
| ClientVersionHistory | Local adapter for the JCR-RMI
  RemoteVersionHistoryinterface. | 
| ClientVersionManager | |
| ClientWorkspace | Local adapter for the JCR-RMI  RemoteWorkspaceinterface. | 
| ClientXASession | Local adapter for the JCR-RMI
  RemoteXASessioninterface. | 
| SafeClientRepository | A "safe" local adapter for the JCR-RMI
  RemoteRepositoryinterface. | 
| Exception | Description | 
|---|---|
| RemoteRepositoryException | JCR-RMI remote exception. | 
| RemoteRuntimeException | JCR-RMI remote runtime exception. | 
This package contains the default client implementation of the transparent JCR-RMI layer. The classes in this package can be used to make a remote JCR-RMI service seem like a local JCR repository.
The contents of this package is designed using two design patterns, Factory and Adapter. All the ClientObject subclasses implement the Adapter pattern to adapt a remote JCR-RMI reference to the corresponding local JCR interface. The Factory pattern is used to centralize the creation and configuration of all adapter instances.
The ClientRepositoryFactory class provides a convenient mechanism for looking up a remote JCR-RMI repository. The factory can be used either directly or as a JNDI object factory.
The following example shows how to use the ClientRepositoryFactory directly:
    String name = ...; // The RMI URL of the repository
    
    ClientRepositoryFactory factory = new ClientRepositoryFactory();
    Repository repository = factory.getRepository(name);
The ClientRepositoryFactory can also be used via JNDI. The following example settings and code demonstrate how to configure and use the transparent JCR-RMI layer in a Tomcat 5.5 web application:
context.xml:
    <Resource name="jcr/Repository" auth="Container"
              type="javax.jcr.Repository"
              factory="org.apache.jackrabbit.rmi.client.ClientRepositoryFactory"
              url="..."/>
              
web.xml:
    <resource-env-ref>
      <description>The external content repository</description>
      <resource-env-ref-name>jcr/Repository</resource-env-ref-name>
      <resource-env-ref-type>javac.jcr.Repository</resource-env-ref-type>
    </resource-env-ref>
...SomeServlet.java:
    Context initial = new InitialContext();
    Context context = (Context) initial.lookup("java:comp/env");
    Repository repository = (Repository) context.lookup("jcr/Repository");
Note that in the example above only the context.xml configuration file contains a direct references to the JCR-RMI layer. All other parts of the web application can be implemented using the standard JCR interfaces.
Copyright © 2004–2021 The Apache Software Foundation. All rights reserved.