|
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 RepositoryFactory
parameters
- 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()
RepositoryFactory
RepositoryFactory.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
RepositoryFactory
RepositoryFactory.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 waitingpublic 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 Repositories
repositoryName
- 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 |