Package javax.jcr

Interface RepositoryFactory

  • All Known Subinterfaces:
    JackrabbitRepositoryFactory
    All Known Implementing Classes:
    GenericRepositoryFactory, JndiRepositoryFactory, OakRepositoryFactory

    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 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.