javax.jcr
Interface RepositoryFactory


public interface RepositoryFactory

RepositoryFactory is a factory for Repository objects.

An implementation of this interface must have a zero-argument public constructor. Repository factories may be installed in an instance of the Java platform as extensions, that is, jar files placed into any of the usual extension directories. Factories may also be made available by adding them to the applet or application class path or by some other platform-specific means.

A repository factory implementation should support the Java Standard Edition Service Provider mechanism, that is, an implementation should include the file META-INF/services/javax.jcr.RepositoryFactory. This file contains the fully qualified name of the class that implements RepositoryFactory.

Examples how to obtain repository instances

Explicitly specifying the repository factory implementation:

   Map parameters = new HashMap();
   parameters.put("com.vendor.address", "vendor://localhost:9999/repo");
   RepositoryFactory factory = (RepositoryFactory) Class.forName("com.vendor.RepositoryFactoryImpl");
   Repository repo = factory.getRepository(parameters);
 

Using ServiceLoader from Java SE 6:

   Map parameters = new HashMap();
   parameters.put("com.vendor.address", "vendor://localhost:9999/repo");
   Repository repo = null;
   for (RepositoryFactory factory : ServiceLoader.load(RepositoryFactory.class))
 {
     repo = factory.getRepository(parameters);
     if (repo != null) {
       // factory accepted parameters
       break;
     }
   }
 
Note: on Java SE prior to version 6, one may use the class javax.imageio.spi.ServiceRegistry to look up the available RepositoryFactory implementations.

Since:
JCR 2.0

Method Summary
 Repository getRepository(java.util.Map parameters)
          Attempts to establish a connection to a repository using the given parameters.
 

Method Detail

getRepository

Repository getRepository(java.util.Map parameters)
                         throws RepositoryException
Attempts to establish a connection to a repository using the given parameters.

Parameters are passed in a Map of String key/value pairs. The keys are not specified by JCR and are implementation specific. However, vendors should use keys that are namespace qualified in the Java package style to distinguish their key names. For example an address parameter might be com.vendor.address.

The implementation must return null if it does not understand the given parameters. The implementation may also return null if a default repository instance is requested (indicated by null parameters) and this factory is not able to identify a default repository.

An implementation of this method must be thread-safe.

Parameters:
parameters - map of string key/value pairs as repository arguments or null if none are provided and a client wishes to connect to a default repository.
Returns:
a repository instance or null if this implementation does not understand the passed parameters.
Throws:
RepositoryException - if if no suitable repository is found or another error occurs.