JRubik v0.6

es.aeat.eett.jRubik.plugins
Class PluginManager

java.lang.Object
  extended byes.aeat.eett.jRubik.plugins.PluginManager

public class PluginManager
extends java.lang.Object

en: This class is responsible of the plugin management. When this class is instantiated it searchs for the plugins in the /lib/plugin directory. The plugins are packed in jar files. This files contains a manifest file that describes the plugin. The manifest file must to contain 'RubikPlugin' section with the mandatory keys 'PluginName','PluginType', 'PluginLocale' and 'PluginBaseClass'. It runs as a plugin factory too, it allows to obtain a given plugin instance.

es: Responsable de manejar los plugins de la aplicacion. Al crear la clase busca los plugins del directorio de plugins definido en Rubik. Dichos plugins deben estar enpaquetados en un fichero Jar, y tener un manifiesto que defina la seccion 'RubikPlugin' con las claves 'PluginName','PluginType', 'PluginLocale' y 'PluginBaseClass'. Permite además recuperar una instancia de un plugin (bajo demanda) actuando como factoria de plugins.


Field Summary
private static java.lang.String LOADING
           
private static java.util.ResourceBundle localizationResources
           
private static org.apache.log4j.Logger logger
           
private static int MAX_NUM_TYPES
           
private  Plugin nullPlugin
           
private static java.lang.String PLUGIN_BASE_CLASS
           
private static java.lang.String PLUGIN_CAPTION
           
private static java.lang.String PLUGIN_DESC
           
private static java.lang.String PLUGIN_ICON
           
private static java.lang.String PLUGIN_LOCALE
           
private static java.lang.String PLUGIN_NAME
           
private static java.lang.String PLUGIN_TYPE
           
private static java.lang.String PLUGINS_KEY
           
private  java.net.URLClassLoader pluginsClassLoader
           
private  java.lang.String pluginsFolder
           
private  java.util.HashMap pluginsMap
           
 
Constructor Summary
PluginManager()
           
 
Method Summary
 InfoPlugin getInfoPlugin(java.lang.String pluginName)
           en: Returns the InfoPlugin data associated to a given plugin es: Devuelve InfoPlugin, con la informacion almacenada del plugin
 java.util.List getInfoPlugins(int typePlugin)
           
 Plugin getPlugin(java.lang.String pluginName)
           en: Returns the stored plugin instance.
 java.util.Collection getPluginLabels()
           en: Create an alphabetically ordered available plugin label list es: Genera una lista con las etiquetas de los plugins disponibles (por orden alfabetico)
private  java.net.URL[] loadPlugins(java.util.HashMap pluginsMap)
           en: Load the plugins contained on plugin directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

localizationResources

private static java.util.ResourceBundle localizationResources

LOADING

private static final java.lang.String LOADING

logger

private static org.apache.log4j.Logger logger

PLUGINS_KEY

private static final java.lang.String PLUGINS_KEY
See Also:
Constant Field Values

PLUGIN_NAME

private static final java.lang.String PLUGIN_NAME
See Also:
Constant Field Values

PLUGIN_LOCALE

private static final java.lang.String PLUGIN_LOCALE
See Also:
Constant Field Values

PLUGIN_BASE_CLASS

private static final java.lang.String PLUGIN_BASE_CLASS
See Also:
Constant Field Values

PLUGIN_TYPE

private static final java.lang.String PLUGIN_TYPE
See Also:
Constant Field Values

PLUGIN_ICON

private static final java.lang.String PLUGIN_ICON
See Also:
Constant Field Values

PLUGIN_DESC

private static final java.lang.String PLUGIN_DESC
See Also:
Constant Field Values

PLUGIN_CAPTION

private static final java.lang.String PLUGIN_CAPTION
See Also:
Constant Field Values

MAX_NUM_TYPES

private static final int MAX_NUM_TYPES
See Also:
Constant Field Values

pluginsFolder

private java.lang.String pluginsFolder

pluginsClassLoader

private java.net.URLClassLoader pluginsClassLoader

pluginsMap

private java.util.HashMap pluginsMap

nullPlugin

private Plugin nullPlugin
Constructor Detail

PluginManager

public PluginManager()
Method Detail

loadPlugins

private java.net.URL[] loadPlugins(java.util.HashMap pluginsMap)

en: Load the plugins contained on plugin directory. It register all the plugins and returns an URL array that points to the jar files.

es: Busca los plugins del directorio, registrandolos en la table de registrados y devuelve una coleecion de URLs que apuntan a los ficheros Jar.

Parameters:
pluginsMap - Registered plugin InfoPlugin table
Returns:
URLs array

getPluginLabels

public java.util.Collection getPluginLabels()

en: Create an alphabetically ordered available plugin label list

es: Genera una lista con las etiquetas de los plugins disponibles (por orden alfabetico)

Returns:
lista de Strings

getInfoPlugin

public InfoPlugin getInfoPlugin(java.lang.String pluginName)

en: Returns the InfoPlugin data associated to a given plugin

es: Devuelve InfoPlugin, con la informacion almacenada del plugin

Parameters:
pluginName - Plugin name
Returns:
InfoPlugin Returns a null value if the plugin is not found.

getInfoPlugins

public java.util.List getInfoPlugins(int typePlugin)

getPlugin

public Plugin getPlugin(java.lang.String pluginName)

en: Returns the stored plugin instance. The plugin is instantiated in the first call. If the plugin creation fails it returns a null plugin.

es: Devuelve la instancia almacenada de un plugin. La instancia se crea bajo demanda en la primera peticion. Ante error se devuelve siempre el plugin Nulo

Parameters:
pluginName - Plugin name
Returns:
Plugin Returned plugin

JRubik v0.6

JRubik v0.6