|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 params = 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 JcrEngine
stored in the JNDI tree
(e.g., jndi://name/of/JcrEngine/resource?repositoryName=MyRepository
).
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
The name of the key for the ModeShape JCR URL in the parameter map |
Constructor Summary | |
---|---|
JcrRepositoryFactory()
|
Method Summary | |
---|---|
Repository |
getRepository(Map parameters)
Returns a reference to the appropriate repository for the given parameter map, if one exists. |
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 |
---|
public static final String URL
public 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 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,RepositoryFactory.getRepository(Map)
public void shutdown()
RepositoryFactory
JcrEngine 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
RepositoryFactory
JcrEngine 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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |