|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.modeshape.jcr.JcrRepositoryFactory
@ThreadSafe public class JcrRepositoryFactory

Service provider for the JCR2 RepositoryFactory interface. This class provides a single public method,
getRepository(Map), that allows for a runtime link to a ModeShape JCR repository.
The canonical way to get a reference to this class is to use the ServiceLocator:
String configUrl = ... ; // URL that points to your configuration file
Map parameters = Collections.singletonMap(JcrRepositoryFactory.URL, configUrl);
Repository repository;
for (RepositoryFactory factory : ServiceLoader.load(RepositoryFactory.class)) {
repository = factory.getRepository(parameters);
if (repository != null) break;
}
It is also possible to instantiate this class directly.
RepositoryFactory repoFactory = new JcrRepositoryFactory(); String configUrl = ... ; // URL that points to your configuration file Map params = Collections.singletonMap(JcrRepositoryFactory.URL, configUrl); Repository repository = repoFactory.getRepository(params);]]>
The configUrl used in the sample above should point to a configuration file (e.g.,
file:src/test/resources/configRepository.xml?repositoryName=MyRepository) OR a Repositories instance stored in
the JNDI tree (e.g., jndi://name/of/Repositories/resource?repositoryName=MyRepository).
getRepository(Map),
RepositoryFactory.getRepository(Map)| Field Summary | |
|---|---|
static String |
REPOSITORY_NAME
Deprecated. Use RepositoryFactory.REPOSITORY_NAME instead |
static String |
REPOSITORY_NAME_PARAM
The name of the URL parameter that specifies the repository name. |
static String |
URL
Deprecated. Use RepositoryFactory.URL instead |
| Constructor Summary | |
|---|---|
JcrRepositoryFactory()
|
|
| Method Summary | |
|---|---|
Repositories |
getRepositories(String jcrUrl)
Returns the Repositories instance referenced by the jcrUrl parameter. |
Repository |
getRepository(Map parameters)
Returns a reference to the appropriate repository for the given parameter map, if one exists. |
Repository |
getRepository(String jcrUrl,
String repositoryName)
Returns the repository with the given name from the Repositories referenced by jcrUrl if the engine and the
named repository exist, null otherwise. |
Set<String> |
getRepositoryNames(String jcrUrl)
Returns the repository names in the JcrEngine referenced by the jcrUrl parameter. |
void |
shutdown()
Begin the shutdown process for all the JcrEngine JcrEngines created by calls to RepositoryFactory.getRepository(Map). |
boolean |
shutdown(long timeout,
TimeUnit unit)
Begin the shutdown process for all the JcrEngine JcrEngines created by calls to RepositoryFactory.getRepository(Map). |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
@Deprecated public static final String URL
RepositoryFactory.URL instead@Deprecated public static final String REPOSITORY_NAME
RepositoryFactory.REPOSITORY_NAME insteadpublic static final String REPOSITORY_NAME_PARAM
| Constructor Detail |
|---|
public JcrRepositoryFactory()
| Method Detail |
|---|
public Repository getRepository(Map parameters)
parameters map can have any number of entries, this method only considers the entry with the key
JcrRepositoryFactory#URL.
The value of this key is treated as a URL with the format PROTOCOL://PATH[?repositoryName=REPOSITORY_NAME] where
PROTOCOL is "jndi" or "file", PATH is the JNDI name of the JcrEngine or the path to the configuration file, and
REPOSITORY_NAME is the name of the repository to return if there is more than one JCR repository in the given JcrEngine or
configuration file.
getRepository in interface RepositoryFactoryparameters - a map of parameters to use to look up the repository; may be null
URL, or null if any of the following are true:
URL; or,URL key is null or cannot be parsed into a ModeShape JCR URL; or,RepositoryFactory.getRepository(Map)public void shutdown()
RepositoryFactoryJcrEngine JcrEngines created by calls to RepositoryFactory.getRepository(Map).
Calling #getRepository(Map) with a file-based URL parameter causes a new JcrEngine to be instantiated and
started. Any JcrEngine created in this manner must be stored by the RepositoryFactory implementation.
Invoking this method iteratively invokes the shutdown() method on each JcrEngine.
This method merely initiates the shutdown process for each JcrEngine. There is no guarantee that the shutdown
process will have completed prior to this method returning. The RepositoryFactory.shutdown(long, TimeUnit) method provides the
ability to wait until all engines are shutdown or the given time elapses.
Invoking this method does not preclude creating new JcrEngines with future calls to RepositoryFactory.getRepository(Map).
Any caller using this method as part of an application shutdown process should take care to cease invocations of
RepositoryFactory.getRepository(Map) prior to invoking this method.
public boolean shutdown(long timeout,
TimeUnit unit)
throws InterruptedException
RepositoryFactoryJcrEngine JcrEngines created by calls to RepositoryFactory.getRepository(Map).
Calling #getRepository(Map) with a file-based URL parameter causes a new JcrEngine to be instantiated and
started. Any JcrEngine created in this manner must be stored by the RepositoryFactory implementation.
Invoking this method iteratively invokes the shutdown() method on each JcrEngine and then iteratively
invokes the awaitTermination(long, TimeUnit) method to await termination.
Although this method initiates the shutdown process for each JcrEngine and invokes the awaitTermination
method, there is still no guarantee that the shutdown process will have completed prior to this method returning. It is
possible for the time required to shutdown one or more of the engines to exceed the provided time window.
Invoking this method does not preclude creating new JcrEngines with future calls to RepositoryFactory.getRepository(Map).
Any caller using this method as part of an application shutdown process should take care to cease invocations of
RepositoryFactory.getRepository(Map) prior to invoking this method.
timeout - the maximum time per engine to allow for shutdownunit - the time unit of the timeout argument
InterruptedException - if interrupted while waiting
public Repository getRepository(String jcrUrl,
String repositoryName)
throws RepositoryException
Repositories referenced by jcrUrl if the engine and the
named repository exist, null otherwise.
If the jcrUrl parameter contains a valid, ModeShape-compatible URL for a JcrEngine that has not yet been
started, that JcrEngine will be created and started as a side effect of this method.
If the repositoryName parameter is null, the repository name specified in the jcrUrl parameter will be used
instead. If no repository name is specified in the jcrUrl parameter and the JcrEngine has exactly one
repository, that repository will be used. Otherwise, this method will return null.
jcrUrl - the ModeShape-compatible URL that specifies the Repositories to be used; may not be nullrepositoryName - the name of the repository to return; may be null
Repository with the given name from the Repositories referenced by jcrUrl if the engine
exists and can be started (or is already started), and the named repository exists or null is provided as
the repositoryName and the given engine has exactly one repository or the jcrUrl specifies a
repository. If any of these conditions do not hold, null is returned.
RepositoryException - if the named repository exists but cannot be accessedJcrEngine.getRepository(String)public Set<String> getRepositoryNames(String jcrUrl)
JcrEngine referenced by the jcrUrl parameter.
If the jcrUrl parameter contains a valid, ModeShape-compatible URL for a JcrEngine that has not yet been
started, that JcrEngine will be created and started as a side effect of this method.
jcrUrl - the ModeShape-compatible URL that specifies the JcrEngine to be used; may not be null
jcrUrl parameter if that engine exists
and it can be started (or is already started), otherwise nullpublic Repositories getRepositories(String jcrUrl)
RepositoryFactoryRepositories instance referenced by the jcrUrl parameter.
If the jcrUrl parameter contains a valid, ModeShape-compatible URL for a Repositories instance that has not
yet been started, that Repositories instance will be created and started as a side effect of this method.
jcrUrl - the ModeShape-compatible URL that specifies the JcrEngine to be used; may not be null
Repositories instance specified by the given url if one exists, otherwise null
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||