ucot.core
Class PluginLoader

java.lang.Object
  extended by ucot.core.PluginLoader

public class PluginLoader
extends java.lang.Object

Handles plugin loading. This class finds all the subdirectories under spesific direcotyr. Those spesific subdirectories are considered plugin directories. Very simple configuration file is expected to be found under the plugin directory. This file is called plugin.properties and it is normal java properties file.

Here is example of plugin.properties file that defines plugin called "Adapter". Property called class defines the plugins main class that is loaded under this plugin loader.


 name=Adapter
 class=package1.AdapterClass
 

To use loaded plugins the program asks loaded class with getClasses() or getClasses(Class)


Field Summary
private static java.lang.String CLASS_PROPERTY_KEY
           
private static java.lang.String DEFAULT_PLUGIN_DIR_NAME
           
private static java.lang.String DEFAULT_PLUGIN_PROPERTIES_FILE
           
private static java.lang.String ERROR_READING_FILE_LOGMESSAGE
           
private static java.lang.String FOUND_MAIN_DIR_LOGMESSAGE
           
private static java.lang.String LOADED_PLUGIN_LOGMESSAGE
           
private static java.lang.String LOADER_CHECKING_DIR_LOGMESSAGE
           
private static java.lang.String LOADING_PLUGIN_LOGMESSAGE
           
(package private)  java.util.logging.Logger logger
           
private static java.lang.String NAME_PROPERTY_KEY
           
private static java.lang.String NO_PLUGIN_PROPERTIES_FOUND_LOGMESSAGE
           
private static java.lang.String PLUGIN_CLASS_NOT_DEFINED_LOGMESSAGE
           
private static java.lang.String PLUGIN_CLASS_NOT_FOUND_LOGMESSAGE
           
private static java.lang.String PLUGIN_DIR_IS_NOT_DIR_LOGMESSAGE
           
private static java.lang.String PLUGIN_DIR_NOT_EXIST_LOGMESSAGE
           
private static java.lang.String PLUGIN_NAME_NOT_DEFINED_LOGMESSAGE
           
(package private)  java.util.Map<java.lang.Class,java.lang.String> pluginClasses
           
(package private)  java.io.File pluginMainDir
           
 
Constructor Summary
PluginLoader(Core core)
           
 
Method Summary
 java.util.Collection<java.lang.Class> getClasses()
           
 java.util.Collection<java.lang.Class> getClasses(java.lang.Class reqApi)
           
 java.lang.String getDirNameForPlugin(java.lang.Class klass)
           
 java.io.File getPluginDir()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_PLUGIN_DIR_NAME

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

DEFAULT_PLUGIN_PROPERTIES_FILE

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

PLUGIN_DIR_NOT_EXIST_LOGMESSAGE

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

PLUGIN_DIR_IS_NOT_DIR_LOGMESSAGE

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

LOADER_CHECKING_DIR_LOGMESSAGE

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

FOUND_MAIN_DIR_LOGMESSAGE

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

NO_PLUGIN_PROPERTIES_FOUND_LOGMESSAGE

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

ERROR_READING_FILE_LOGMESSAGE

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

PLUGIN_CLASS_NOT_DEFINED_LOGMESSAGE

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

PLUGIN_NAME_NOT_DEFINED_LOGMESSAGE

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

LOADING_PLUGIN_LOGMESSAGE

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

PLUGIN_CLASS_NOT_FOUND_LOGMESSAGE

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

LOADED_PLUGIN_LOGMESSAGE

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

CLASS_PROPERTY_KEY

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

NAME_PROPERTY_KEY

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

pluginMainDir

java.io.File pluginMainDir

logger

java.util.logging.Logger logger

pluginClasses

java.util.Map<java.lang.Class,java.lang.String> pluginClasses
Constructor Detail

PluginLoader

public PluginLoader(Core core)
Method Detail

getPluginDir

public java.io.File getPluginDir()

getClasses

public java.util.Collection<java.lang.Class> getClasses()

getClasses

public java.util.Collection<java.lang.Class> getClasses(java.lang.Class reqApi)

getDirNameForPlugin

public java.lang.String getDirNameForPlugin(java.lang.Class klass)