org.fcrepo.server
Class Module

java.lang.Object
  extended by org.fcrepo.server.Parameterized
      extended by org.fcrepo.server.Pluggable
          extended by org.fcrepo.server.Module
All Implemented Interfaces:
Constants
Direct Known Subclasses:
AkubraLowlevelStorageModule, BasicPIDGenerator, ConnectionPoolManagerImpl, DefaultAccess, DefaultAuthorization, DefaultBackendSecurity, DefaultDOManager, DefaultExternalContentManager, DefaultLowlevelStorageModule, DOObjectValidatorModule, DOTranslatorModule, DOValidatorModule, DynamicAccessModule, FedoraOAIProviderModule, FieldSearchSQLModule, Journaler, ManagementModule, MessagingModule, ResourceIndexModule

public abstract class Module
extends Pluggable

Base class for Fedora server modules.

A Module is a singleton object of a Fedora Server instance with a simple lifecycle, supported by the initModule() and shutdownModule() methods, which are automatically called during server startup and shutdown, respectively.

Modules are configured via "param" elements inside module elements in the configuration file. An instance of each module specified in the configuration file is automatically created at startup and is available via the getModule(String) instance method of the Server class.

Author:
Chris Wilper

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.fcrepo.common.Constants
Constants.FedoraHome
 
Field Summary
 
Fields inherited from interface org.fcrepo.common.Constants
ACCESS, ACTION, API, ATOM_APIM1_0, ATOM_ZIP1_1, ATOM1_1, AUDIT, AUDIT1_0, BATCH_MODIFY, BATCH_MODIFY1_1, BE_SECURITY, BE_SECURITY1_0, BINDING_SPEC, DATASTREAM, DC, DISSEMINATOR, DS_COMPOSITE_MODEL, DS_COMPOSITE_MODEL1_0, DS_INPUT_SPEC1_0, DS_INPUT_SPEC1_1, ENVIRONMENT, FCFG, FEDORA, FEDORA_APP_CONTEXT_NAME, FEDORA_DEFAULT_APP_CONTEXT, FEDORA_HOME, FEDORA_REPOSITORY_PID, FOXML, FOXML1_0, FOXML1_0_LEGACY, FOXML1_1, HTTP_REQUEST, MANAGEMENT, METHOD_MAP, METS, METS_EXT, METS_EXT1_0, METS_EXT1_0_LEGACY, METS_EXT1_1, MODEL, MULGARA, OAI_DC, OAI_DC2_0, OAI_FRIENDS, OAI_FRIENDS2_0, OAI_IDENTIFIER, OAI_IDENTIFIER2_0, OAI_PMH, OAI_PMH2_0, OAI_PROV, OAI_PROV2_0, OBJ_DATASTREAMS1_0, OBJ_HISTORY1_0, OBJ_ITEMS1_0, OBJ_METHODS1_0, OBJ_PROFILE1_0, OBJ_VALIDATION1_0, OBJECT, OLD_XLINK, PID_LIST1_0, RDF, RDF_XSD, RECOVERY, RELS_EXT, RELS_EXT1_0, RELS_INT1_0, REPO_DESC1_0, RESOURCE, SDEF, SDEF_METHOD_MAP1_0, SDEP, SDEP_METHOD_MAP1_0, SDEP_METHOD_MAP1_1, SERVICE_PROFILE, SOAP, SOAP_ENC, SUBJECT, TYPES, VIEW, WSDL, WSDL_HTTP, WSDL_MIME, XACML_POLICY, XACML_POLICY1_0, XACML1, XACML1_ACTION, XACML1_POLICY, XACML1_RESOURCE, XACML1_SUBJECT, XACML2_POLICY_SCHEMA, XLINK, XML_XSD, XMLNS, XSI
 
Constructor Summary
Module(Map<String,String> moduleParameters, Server server, String role)
          Creates and initializes the Module.
 
Method Summary
 String getRole()
          Gets the role this module fulfills, as given in the constructor.
 Server getServer()
          Gets the Server instance to which this Module belongs.
 void initModule()
          Initializes the Module based on configuration parameters.
 void postInitModule()
          Second stage of Module initialization.
 void shutdownModule()
          Frees system resources allocated by this Module.
 
Methods inherited from class org.fcrepo.server.Pluggable
getHelp, getOptionalParameters, getParameterHelp, getRequiredModuleRoles, getRequiredParameters
 
Methods inherited from class org.fcrepo.server.Parameterized
getParameter, getParameter, getParameter, getParameterList, getParameters, getParameters, parameterNames, setParameter, setParameters, setParameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Module

public Module(Map<String,String> moduleParameters,
              Server server,
              String role)
       throws ModuleInitializationException
Creates and initializes the Module.

When the server is starting up, this is invoked as part of the initialization process.

Parameters:
moduleParameters - A pre-loaded Map of name-value pairs comprising the intended configuration of this Module.
server - The Server instance.
role - The role this module fulfills, a java class name.
Throws:
ModuleInitializationException - If initilization values are invalid or initialization fails for some other reason.
Method Detail

getServer

public Server getServer()
Gets the Server instance to which this Module belongs.

Returns:
The Server instance.

getRole

public final String getRole()
Gets the role this module fulfills, as given in the constructor.

Role is the name of the class or interface that this concrete Module extends or implements.

Returns:
String The role.

initModule

public void initModule()
                throws ModuleInitializationException
Initializes the Module based on configuration parameters.

Throws:
ModuleInitializationException - If initialization values are invalid or initialization fails for some other reason.

postInitModule

public void postInitModule()
                    throws ModuleInitializationException
Second stage of Module initialization. This is guaranteed to run after all Modules' initModule() methods have run.

Throws:
ModuleInitializationException - If initialization values are invalid or initialization fails for some other reason.

shutdownModule

public void shutdownModule()
                    throws ModuleShutdownException
Frees system resources allocated by this Module.

Throws:
ModuleShutdownException - If there is a problem freeing system resources. Note that if there is a problem, it won't end up aborting the shutdown process. Therefore, this method should do everything possible to recover from exceptional situations before throwing an exception.


Copyright © 2012 DuraSpace. All Rights Reserved.