|
ModeShape Distribution 3.0.0.Beta4 | |||||||||
| 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 ServiceLoader:
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 url = ... ; // URL that points to your configuration file Map params = Collections.singletonMap(JcrRepositoryFactory.URL, url); Repository repository = repoFactory.getRepository(params);]]>
Several URL formats are supported:
javax.jcr.Repository instance. For example, "jndi:jcr/local/my_repository" is a URL that identifies
the JCR repository located in JNDI at the name "jcr/local/my_repository". Note that the use of such URLs requires that the
repository already be registered in JNDI at that location.engine instance and the name of the javax.jcr.Repository repository as a URL
query parameter. For example, "jndi:jcr/local?repositoryName=my_repository" identifies a ModeShape engine
registered in JNDI at "jcr/local", and looks in that engine for a JCR repository named "my_repository".classpath:, "file:", http: and
any other URL scheme that can be resolved and opened. For example, "
file://path/to/myRepoConfig.json" identifies the file on the file system at the absolute path "
/path/to/myRepoConfig.json"; "classpath://path/to/myRepoConfig.json" identifies the file at "
/path/to/myRepoConfig.json" on the classpath, and "http://www.example.com/path/to/myRepoConfig.json
" identifies the file "myRepoConfig.json" at the given URL.
getRepository(Map),
RepositoryFactory.getRepository(Map)| Field Summary | |
|---|---|
static String |
REPOSITORY_NAME_PARAM
The name of the URL parameter that specifies the repository name. |
static String |
URL
Deprecated. use RepositoryFactory.URL instead |
| Fields inherited from interface org.modeshape.jcr.api.RepositoryFactory |
|---|
REPOSITORY_NAME |
| Constructor Summary | |
|---|---|
JcrRepositoryFactory()
|
|
| Method Summary | |
|---|---|
Repository |
getRepository(Map parameters)
Returns a reference to the appropriate repository for the given parameter map, if one exists. |
Repository |
getRepository(String repositoryName)
Return the JCR Repository with the supplied name. |
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. |
protected Repository |
getRepository(URL url,
String repositoryName,
Map<String,Object> parameters)
|
protected String |
getRepositoryNameFrom(URL url,
Map<String,Object> parameters)
|
Set<String> |
getRepositoryNames()
Get the names of the available repositories. |
Future<Boolean> |
shutdown()
Shutdown this engine to stop all repositories created by calls to RepositoryFactory.getRepository(Map), terminate any ongoing
background operations (such as sequencing), and reclaim any resources that were acquired by the repositories. |
boolean |
shutdown(long timeout,
TimeUnit unit)
Shutdown this engine to stop all repositories created by calls to RepositoryFactory.getRepository(Map), terminate any ongoing
background operations (such as sequencing), and reclaim any resources that were acquired by the repositories. |
static Future<Boolean> |
shutdownAll()
Shutdown this engine to stop all repositories created by calls to getRepository(Map), terminate any ongoing
background operations (such as sequencing), and reclaim any resources that were acquired by the repositories. |
| 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
public static final String REPOSITORY_NAME_PARAM
| Constructor Detail |
|---|
public JcrRepositoryFactory()
| Method Detail |
|---|
public static Future<Boolean> shutdownAll()
getRepository(Map), terminate any ongoing
background operations (such as sequencing), and reclaim any resources that were acquired by the repositories. This method
may be called multiple times, but only the first time has an effect.
Calling this static method is identical to calling the shutdown() method on any JcrRepositoryFactory instance, and
is provided for convenience.
Invoking this method does not preclude creating new Repository instances with future calls to
getRepository(Map). Any caller using this method as part of an application shutdown process should take care to
cease invocations of getRepository(Map) prior to invoking this method.
This method returns immediately, even before the repositories have been shut down. However, the caller can simply call the
get() method on the returned Future to block until all repositories have shut down. Note that
the Future.get(long, TimeUnit) method can be called to block for a maximum amount of time.
getting the repository from the future, where the exception is wrapped in a
ExecutionException. The value returned from the future will always be true if the engine shutdown (or was
not running), or false if the engine is still running.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 ModeShapeEngine 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
ModeShapeEngine 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,ModeShapeEngine (in the JNDI tree) or a
configuration file (in the classpath or file system); or,ModeShapeEngine with the given configuration information.RepositoryFactory.getRepository(Map)
protected Repository getRepository(URL url,
String repositoryName,
Map<String,Object> parameters)
protected String getRepositoryNameFrom(URL url,
Map<String,Object> parameters)
public Future<Boolean> shutdown()
RepositoryFactoryRepositoryFactory.getRepository(Map), terminate any ongoing
background operations (such as sequencing), and reclaim any resources that were acquired by the repositories. This method
may be called multiple times, but only the first time has an effect.
Invoking this method does not preclude creating new Repository instances 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.
This method returns immediately, even before the repositories have been shut down. However, the caller can simply call the
get() method on the returned Future to block until all repositories have shut down. Note that
the Future.get(long, TimeUnit) method can be called to block for a maximum amount of time.
getting the repository from the future, where the exception is wrapped in a
ExecutionException. The value returned from the future will always be true if the engine shutdown (or was
not running), or false if the engine is still running.
public boolean shutdown(long timeout,
TimeUnit unit)
throws InterruptedException
RepositoryFactoryRepositoryFactory.getRepository(Map), terminate any ongoing
background operations (such as sequencing), and reclaim any resources that were acquired by the repositories. This method
may be called multiple times, but only the first time has an effect.
This method is equivalent to calling "shutdown().get(timeout,unit)" on this method.
Invoking this method does not preclude creating new Repository instances 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.
This method returns immediately, even before the repositories have been shut down. However, the caller can simply call the
get() method on the returned Future to block until all repositories have shut down. Note that
the Future.get(long, TimeUnit) method can be called to block for a maximum amount of time.
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 ModeShapeEngine that has not yet
been started, that ModeShapeEngine 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 ModeShapeEngine 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 accessedModeShapeEngine.getRepository(String)
public Repository getRepository(String repositoryName)
throws RepositoryException
Repositories
getRepository in interface RepositoriesrepositoryName - the name of the repository to return; may not be null
RepositoryException - if no repository exists with the given name or there is an error communicating with
the repositorypublic Set<String> getRepositoryNames()
Repositories
getRepositoryNames in interface Repositories
|
ModeShape Distribution 3.0.0.Beta4 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||