improve plugin api

This commit is contained in:
Sebastian Sdorra
2010-12-18 13:37:34 +01:00
parent abd04009b3
commit 8646be6733
7 changed files with 491 additions and 1 deletions

View File

@@ -69,6 +69,10 @@ public class DefaultPluginLoader implements PluginLoader
/** Field description */
public static final String PATH_PLUGINCONFIG = "META-INF/scm/plugin.xml";
/** Field description */
public static final String REGE_COREPLUGIN =
"^.*(?:/|\\\\)WEB-INF(?:/|\\\\)lib(?:/|\\\\).*\\.jar$";
/** the logger for DefaultPluginLoader */
private static final Logger logger =
LoggerFactory.getLogger(DefaultPluginLoader.class);
@@ -196,12 +200,24 @@ public class DefaultPluginLoader implements PluginLoader
path = path.substring("jar:file:".length(), path.lastIndexOf("!"));
boolean corePlugin = path.matches(REGE_COREPLUGIN);
if (logger.isInfoEnabled())
{
logger.info("load plugin {}", path);
logger.info("load {}plugin {}", corePlugin
? "core "
: " ", path);
}
Plugin plugin = JAXB.unmarshal(url, Plugin.class);
PluginInformation info = plugin.getInformation();
if (info != null)
{
info.setState(corePlugin
? PluginState.CORE
: PluginState.INSTALLED);
}
plugin.setPath(path);
installedPlugins.add(plugin);