org.mmbase.module
Class Module

java.lang.Object
  extended byorg.mmbase.module.Module
Direct Known Subclasses:
AbstractSendMail, cache, MMFlash, PasswordGenerator, ProcessorModule, scancache, TransactionHandler, TransactionHandler

public abstract class Module
extends java.lang.Object

An MMBase Module is an extension of this class, which is configured by an XML in the <mmbase config dir >/modules directory. All XML's (which are defined 'active') in this directory are automaticly loaded, and all found 'Module's are then initialized. There are several Modules which are more or less compulsary in MMBase, like the 'mmbaseroot' module, the actual core of MMBase implemented by MMBase, and the 'jdbc' module.

Version:
$Id: Module.java,v 1.52 2004/03/26 14:59:20 michiel Exp $
Author:
Rico Jansen, Rob Vermeulen (securitypart), Pierre van Rooden

Constructor Summary
Module()
           
 
Method Summary
 java.lang.String getInitParameter(java.lang.String key)
          Gets an init-parameter key-value pair
 java.util.Hashtable getInitParameters()
          Gets own modules properties
 java.lang.String getMaintainer()
           
 java.lang.String getMimeType(java.lang.String ext)
          getMimeType: Returns the mimetype using ServletContext.getServletContext which returns the servlet context which is set when servscan is loaded.
 java.lang.String getMimeTypeFile(java.lang.String fileName)
           
static java.lang.Object getModule(java.lang.String name)
          Retrieves a reference to a Module.
static java.lang.Object getModule(java.lang.String name, boolean startOnLoad)
          Retrieves a reference to a Module.
 java.lang.String getModuleInfo()
          provide some info on the module
static java.util.Iterator getModules()
          Returns an iterator of all the modules that are currently active.
 java.lang.String getName()
          Returns the name of the module
protected  java.util.Hashtable getProperties(java.lang.String propertytable)
          Returns the properties to the subclass.
protected  java.lang.String getProperty(java.lang.String name, java.lang.String var)
          Returns one propertyvalue to the subclass.
 int getVersion()
           
 boolean hasStarted()
          Returns whether the module has started (has been initialized or is in its initialization fase).
abstract  void init()
          Initializes the module.
static java.util.Hashtable loadModulesFromDisk()
          Loads all module-xml present in /modules.
 void maintainance()
          maintainance call called by the admin module every x seconds.
abstract  void onload()
          prepares the module when loaded.
 void setInitParameter(java.lang.String key, java.lang.String value)
          Sets an init-parameter key-value pair
 void setMaintainer(java.lang.String m)
           
 void setName(java.lang.String name)
           
 void setVersion(int v)
           
protected  void shutdown()
          Shuts down the module.
static void shutdownModules()
          Calls shutdown of all registered modules.
 void startModule()
          Starts the module.
static void startModules()
           
 java.util.Hashtable state()
          state, returns the state hashtable that is/can be used to debug.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Module

public Module()
Method Detail

setName

public final void setName(java.lang.String name)

startModule

public final void startModule()
Starts the module. This module calls the init() of a module exactly once. In other words, once the init() is called, it does not call it again. This method is final and cannot be overridden. It is used to safely initialize modules during startup, and allows other modules to force the 'startup' of another module without risk.


hasStarted

public final boolean hasStarted()
Returns whether the module has started (has been initialized or is in its initialization fase).


init

public abstract void init()
Initializes the module. Init must be overridden to read the environment variables it needs.
This method is called by startModule(), which makes sure it is not called more than once. You should not call init() directly, call startModule() instead.


onload

public abstract void onload()
prepares the module when loaded. Onload must be overridden to execute methods that need to be performed when the module is loaded but before any other modules are initailized.
This method is called by startModules(). You should not call onload() directly.

Warning: Scope will be changed to:
protected

shutdown

protected void shutdown()
Shuts down the module. This method is called by shutdownModules.

Since:
MMBase-1.6.2

state

public java.util.Hashtable state()
state, returns the state hashtable that is/can be used to debug. Should be overridden when live state should be done.


setInitParameter

public void setInitParameter(java.lang.String key,
                             java.lang.String value)
Sets an init-parameter key-value pair


getInitParameter

public java.lang.String getInitParameter(java.lang.String key)
Gets an init-parameter key-value pair


getProperties

protected java.util.Hashtable getProperties(java.lang.String propertytable)
Returns the properties to the subclass.


getProperty

protected java.lang.String getProperty(java.lang.String name,
                                       java.lang.String var)
Returns one propertyvalue to the subclass.


getInitParameters

public java.util.Hashtable getInitParameters()
Gets own modules properties


getModules

public static final java.util.Iterator getModules()
Returns an iterator of all the modules that are currently active. This function null if no attempt has the modules have (not) yet been to loaded. Unlike getModule(java.lang.String), this method does not automatically load modules if this hadn't occurred yet.

Returns:
an Iterator with all active modules

getName

public final java.lang.String getName()
Returns the name of the module

Returns:
the module name

getModuleInfo

public java.lang.String getModuleInfo()
provide some info on the module


maintainance

public void maintainance()
maintainance call called by the admin module every x seconds.


getMimeType

public java.lang.String getMimeType(java.lang.String ext)
getMimeType: Returns the mimetype using ServletContext.getServletContext which returns the servlet context which is set when servscan is loaded. Fixed on 22 December 1999 by daniel & davzev. XXX: why is this in Module???

Parameters:
ext - A String containing the extension.
Returns:
The mimetype.

getMimeTypeFile

public java.lang.String getMimeTypeFile(java.lang.String fileName)

shutdownModules

public static final void shutdownModules()
Calls shutdown of all registered modules.

Since:
MMBase-1.6.2

startModules

public static final void startModules()

getModule

public static java.lang.Object getModule(java.lang.String name)
Retrieves a reference to a Module. This call does not ensure that the requested module has been initialized. XXX: return type Object in stead of Module?

Parameters:
name - the name of the module to retrieve
Returns:
a refernce to a Module, or null if the module does not exist or is inactive.

getModule

public static java.lang.Object getModule(java.lang.String name,
                                         boolean startOnLoad)
Retrieves a reference to a Module. If you set the startOnLoad to true, this call ensures that the requested module has been initialized by calling the startModule() method. This is needed if you need to call Module methods from the init() of another module. XXX: return type Object in stead of Module?

Parameters:
name - the name of the module to retrieve
startOnLoad - whetehr to make sure the module has been started or not.
Returns:
a reference to a Module, or null if the module does not exist or is inactive.

getMaintainer

public java.lang.String getMaintainer()

setMaintainer

public void setMaintainer(java.lang.String m)

setVersion

public void setVersion(int v)

getVersion

public int getVersion()

loadModulesFromDisk

public static java.util.Hashtable loadModulesFromDisk()
Loads all module-xml present in /modules.

Returns:
A HashTable with --> Module-instance
Warning: Scope will be changed to:
private (only called from getModule)


MMBase build 1.7.1.20041002