Package org.apache.jackrabbit.rmi.client

Client implementation of the transparent JCR-RMI layer.

See:
          Description

Interface Summary
LocalAdapterFactory Factory interface for creating local adapters for remote references.
 

Class Summary
ClientAdapterFactory Default implementation of the LocalAdapterFactory interface.
ClientItem Local adapter for the JCR-RMI RemoteItem inteface.
ClientItemDefinition Local adapter for the JCR-RMI RemoteItemDefinition inteface.
ClientLock Local adapter for the JCR-RMI RemoteLock inteface.
ClientNamespaceRegistry Local adapter for the JCR-RMI RemoteNamespaceRegistry inteface.
ClientNode Local adapter for the JCR-RMI RemoteNode inteface.
ClientNodeDefinition Local adapter for the JCR-RMI RemoteNodeDefinition inteface.
ClientNodeType Local adapter for the JCR-RMI RemoteNodeType inteface.
ClientNodeTypeManager Local adapter for the JCR-RMI RemoteNodeTypeManager inteface.
ClientObject Base class for client adapter objects.
ClientObservationManager The ClientObservationManager class
ClientProperty Local adapter for the JCR-RMI RemoteProperty inteface.
ClientPropertyDefinition Local adapter for the JCR-RMI RemotePropertyDefinition inteface.
ClientQuery Local adapter for the JCR-RMI RemoteQuery inteface.
ClientQueryManager Local adapter for the JCR-RMI RemoteQueryManager inteface.
ClientQueryResult Local adapter for the JCR-RMI RemoteQueryResult inteface.
ClientRepository Local adapter for the JCR-RMI RemoteRepository inteface.
ClientRepositoryFactory Object factory for JCR-RMI clients.
ClientRow Local adapter for the JCR-RMI RemoteRow inteface.
ClientSession Local adapter for the JCR-RMI RemoteSession inteface.
ClientVersion Local adapter for the JCR-RMI RemoteVersion interface.
ClientVersionHistory Local adapter for the JCR-RMI RemoteVersionHistory interface.
ClientWorkspace Local adapter for the JCR-RMI RemoteWorkspace interface.
 

Exception Summary
RemoteRepositoryException JCR-RMI remote exception.
RemoteRuntimeException JCR-RMI remote runtime exception.
 

Package org.apache.jackrabbit.rmi.client Description

Client implementation of the transparent JCR-RMI layer.

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.

Looking up a JCR-RMI client

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-2006 . All Rights Reserved.