public interface CRXModule
CRXModule interface defines the API which must be
 implemented by modules extending the functionality of the repository. Modules
 are installed into the repository either by configuration or by calling the
 CRXRepository#installModule(javax.jcr.Session, CRXModule) method.
 Lifecycle
The life cycle of a module encompasses six stages:
Starting and
 (2) registering the module internally. These operations are implemented by
 the repository.stopped, the
 module may operate as implemented. A module should not operate before being
 started and should cease operating after having been stopped.
 stopping the module. After having been
 stopped, the module should not operate anymore.When the repository is shutting down, all modules which are still installed are uninstalled, that is unregistered and stopped.
Configuration
 A module configured with the the repository configuration file is configured
 automatically when the repository is started. Modules are configured in
 Module elements nested within the Modules
 element. Configuration properties may be set by nested param
 elements.
 
 When the module is installed by the repository, the module's class as
 configured in the Module.class attribute is instantiated and
 the configured properties from the nested param elements are
 set JavaBean style.
 
For the repository to be able to instantiate the module, the module must have a public default constructor. Also the property setter methods must be public and for each property a setter and a getter method must be provided for the parameter configuration to be successfull.
Installation
Modules may be installed automatically when the repository is started or manually by the application. To automatically start the modules, they must be configured as described above. To manually install a module, the application is responsible for the instantiation and configuration of the module.
 To install, the application will call the
 CRXRepository#installModule(javax.jcr.Session, CRXModule) which then
 calls the start(CRXSession) method to start the module before
 registering it.
| Modifier and Type | Method and Description | 
|---|---|
java.lang.String | 
getName()
Returns the name of this module. 
 | 
void | 
start(CRXSession session)
Starts this module and makes it ready for use. 
 | 
void | 
stop()
Stops this module. 
 | 
java.lang.String getName()
This name is expected to be unique amongst the registered modules and is just used to identify the module. Other than to register the module under this name, the repository does not use it for anything else.
null, non-empty module name.void start(CRXSession session) throws RepositoryException
 This method is called by the repository before registering the module
 internally. This means, that while this method is active, this module is
 not yet visible by the CRXRepository.getModule(String) and
 CRXRepository.getModules() method.
 
 If this method fails by throwing a RepositoryException,
 any resources already acquired must be released. A module failing to
 start is also not registered and thus visible. Finally a module failing
 to start will never be stopped, that is the stop() method will
 not be called.
 
 This method should only throw a RepositoryException if
 failing to start. Notably, the implementation should prevent throwing a
 RuntimeException.
 
NOTE:
logout() method on this
  session. Otherwise the repository may behave unexpectedly.
 session is a shared Session. This means, the Session
  is not thread safe and may at most be used for concurrent read
  operations but MUST NOT be used to write to the repository. If the
  module requires writing to the repository, a new Session MUST be
  acquired calling the CRXSession.getSession(String) method on
  the session. Such session SHOULD of course be logged out
  when the module is stopped}.
 session - The CRXSession to access the system workspace of
            the repository. This session is shared and MUST NOT be used
            to write to the repository. Use the
            CRXSession.getSession(String) method to get a session
            to write to the repository.RepositoryException - May be thrown if the module fails to start.void stop()
This method is called after the module has been unregistered. If the module failed to start, this method is never called.
 This method is not excpected to throw any exception. Care must be taken
 to prevent RuntimeExceptions from occurring.
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"