edu.ucsb.adl.middleware.rmi
Class CollectionDriver

java.lang.Object
  |
  +--edu.ucsb.adl.middleware.rmi.CollectionDriver
All Implemented Interfaces:
CollectionDriver

public final class CollectionDriver
extends java.lang.Object
implements CollectionDriver

Proxy driver for the ADL collection service. This driver establishes an RMI connection to a remote middleware server and thereby provides access to a (single) remote collection. The remote collection name is renamed to the local collection name in returned collection metadata.

This class reads the following properties from the RMI proxy driver configuration file rmi-proxy-driver.conf. Property values may be indirectly specified using the notation @P where P is the name of another property (see ExtendedProperties for more information).

remote_collection_name
The name of the remote collection, e.g., "adl_catalog".
registry
The URL of the RMI registry to use, e.g., "rmi://piru.alexandria.ucsb.edu".
collection.name
The RMI name of the remote collection service, e.g., "/edu/ucsb/adl/middleware/rmi/CollectionService".

Version:
$Header: /export/home/gjanee/middleware/edu/ucsb/adl/middleware/rmi/RCS/CollectionDriver.java,v 1.5 2004/09/23 18:15:51 gjanee Exp $

$Log: CollectionDriver.java,v $ Revision 1.5 2004/09/23 18:15:51 gjanee
Rewrite to use classes edu.ucsb.adl.middleware.ExtendedProperties and edu.ucsb.adl.middleware.XmlUtils.

Revision 1.4 2004/03/05 23:39:38 gjanee
Added support for multiple middleware instances. A middleware instance is represented by a Global object that is tied to a main middleware configuration file. All service objects now maintain a reference to the appropriate Global object. Instance-wide variables formerly coded as class variables are now held by the Global object; various methods that return instance-wide variables now accept a Global object as an argument. The Global object is now passed to all service drivers.

Revision 1.3 2002/09/28 20:49:21 gjanee
Configuration file renames. Renamed the RMI proxy driver configuration file to rmi-proxy-driver.conf.

Revision 1.2 2001/08/20 17:44:59 gjanee
Switched to the new configuration file structure. In the new structure, an entirely collection-independent "main" configuration file refers to a directory of subdirectories, one subdirectory per collection; each subdirectory holds a collection-specific middleware configuration file in addition to any configuration files required by the collection driver.

Revision 1.1 2001/03/20 18:44:19 gjanee
Initial revision

Author:
Greg Janée
Alexandria Digital Library

Method Summary
static edu.ucsb.adl.middleware.rmi.CollectionDriver createDriver(edu.ucsb.adl.middleware.Global global, java.io.File directory, java.lang.String collection)
          Creates a CollectionDriver for a collection.
 void destroy()
          Frees all resources held by the driver.
 java.lang.String performCollectionService(java.lang.String collection)
          Returns the collection-level metadata for a collection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createDriver

public static edu.ucsb.adl.middleware.rmi.CollectionDriver createDriver(edu.ucsb.adl.middleware.Global global,
                                                                        java.io.File directory,
                                                                        java.lang.String collection)
                                                                 throws InternalErrorException
Creates a CollectionDriver for a collection.

Parameters:
global - Unused.
directory - The pathname of the directory containing the RMI proxy driver configuration file.
collection - The name of the collection, e.g., "adl_catalog".
Returns:
A CollectionDriver.
Throws:
InternalErrorException - If any error is encountered.

performCollectionService

public java.lang.String performCollectionService(java.lang.String collection)
                                          throws InternalErrorException
Returns the collection-level metadata for a collection. This method is multithread-safe.

Specified by:
performCollectionService in interface CollectionDriver
Parameters:
collection - The collection name, e.g., "adl_catalog".
Returns:
An XML document that is well-formed and valid according to the appropriate DTD.
Throws:
InternalErrorException - If any error occurs.
See Also:
CollectionService

destroy

public void destroy()
Frees all resources held by the driver.

Specified by:
destroy in interface CollectionDriver