// if we need to improve on this then we'll have to move to a system more akin to
// the dir-loaded plugins
Class cla = root_class_loader.loadClass( builtin_plugins[i][1]);
Method load_method = cla.getMethod( "load", new Class[]{ PluginInterface.class });
load_method.invoke( null, new Object[]{ getDefaultInterfaceSupport() });
Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING,
"Built-in plugin '" + builtin_plugins[i][0] + "' ok"));
}catch( NoSuchMethodException e ){
}catch( Throwable e ){
if ( builtin_plugins[i][4].equalsIgnoreCase("true" )){
Debug.printStackTrace( e );
Logger.log(new LogAlert(LogAlert.UNREPEATABLE,
"Load of built in plugin '" + builtin_plugins[i][2] + "' fails", e));
}
}finally{
loading_builtin = false;
}
}else{
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING,
"Built-in plugin '" + builtin_plugins[i][2] + "' is disabled"));
}
}
if (Logger.isEnabled())
Logger.log(new LogEvent(LOGID, "Loading dynamically registered plugins"));
for (int i=0;i<registration_queue.size();i++){
Object entry = registration_queue.get(i);
Class cla;
String id;
if ( entry instanceof Class ){
cla = (Class)entry;
id = cla.getName();
}else{
Object[] x = (Object[])entry;
Plugin plugin = (Plugin)x[0];
cla = plugin.getClass();
id = (String)x[1];
}
try{
// lazyness here, for dynamic we use static load method with default plugin interface
// if we need to improve on this then we'll have to move to a system more akin to
// the dir-loaded plugins
Method load_method = cla.getMethod( "load", new Class[]{ PluginInterface.class });
load_method.invoke( null, new Object[]{ getDefaultInterfaceSupport() });
}catch( NoSuchMethodException e ){
}catch( Throwable e ){