📄 plugininitializer.java
字号:
List l = (List)loaded_pi_list.get(idx);
if (l.size() > 0)
{
PluginInterfaceImpl plugin_interface = (PluginInterfaceImpl)l.get(0);
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, (new StringBuilder()).append("Initializing plugin '").append(plugin_interface.getPluginName()).append("'").toString()));
if (core_operation != null)
core_operation.reportCurrentTask((new StringBuilder()).append(MessageText.getString("splash.plugin.init")).append(" ").append(plugin_interface.getPluginName()).toString());
initialisePlugin(l);
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, (new StringBuilder()).append("Initialization of plugin '").append(plugin_interface.getPluginName()).append("' complete").toString()));
}
}
catch (Throwable e)
{
if (core_operation != null)
core_operation.reportPercent((100 * (idx + 1)) / loaded_pi_list.size());
break label0;
}
finally
{
if (core_operation != null)
core_operation.reportPercent((100 * (idx + 1)) / loaded_pi_list.size());
throw exception2;
}
if (core_operation != null)
core_operation.reportPercent((100 * (idx + 1)) / loaded_pi_list.size());
break label0;
}
Logger.doRedirects();
}
{
this$0 = PluginInitializer.this;
idx = i;
super();
}
});
}
initQueue.add(new Runnable() {
final PluginInitializer this$0;
public void run()
{
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, "Initializing built-in plugins"));
}
{
this$0 = PluginInitializer.this;
super();
}
});
final PluginManagerDefaults def = PluginManager.getDefaults();
for (int i = 0; i < builtin_plugins.length; i++)
{
final int idx = i;
initQueue.add(new Runnable() {
final PluginManagerDefaults val$def;
final int val$idx;
final PluginInitializer this$0;
public void run()
{
if (def.isDefaultPluginEnabled(builtin_plugins[idx][0]))
{
String id = builtin_plugins[idx][2];
String key = builtin_plugins[idx][3];
try
{
Class cla = root_class_loader.loadClass(builtin_plugins[idx][1]);
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, (new StringBuilder()).append("Initializing built-in plugin '").append(builtin_plugins[idx][2]).append("'").toString()));
initializePluginFromClass(cla, id, key, "true".equals(builtin_plugins[idx][5]), true, true);
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, 1, (new StringBuilder()).append("Initialization of built in plugin '").append(builtin_plugins[idx][2]).append("' complete").toString()));
}
catch (Throwable e)
{
try
{
initializePluginFromClass(org/gudy/azureus2/pluginsimpl/local/FailedPlugin, id, key, false, false, true);
}
catch (Throwable f) { }
if (builtin_plugins[idx][4].equalsIgnoreCase("true"))
{
Debug.printStackTrace(e);
Logger.log(new LogAlert(false, (new StringBuilder()).append("Initialization of built in plugin '").append(builtin_plugins[idx][2]).append("' fails").toString(), e));
}
}
} else
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, 1, (new StringBuilder()).append("Built-in plugin '").append(builtin_plugins[idx][2]).append("' is disabled").toString()));
}
{
this$0 = PluginInitializer.this;
def = pluginmanagerdefaults;
idx = i;
super();
}
});
}
initQueue.add(new Runnable() {
final PluginInitializer this$0;
public void run()
{
if (Logger.isEnabled())
Logger.log(new LogEvent(PluginInitializer.LOGID, "Initializing dynamically registered plugins"));
}
{
this$0 = PluginInitializer.this;
super();
}
});
for (int i = 0; i < registration_queue.size(); i++)
{
final int idx = i;
initQueue.add(new Runnable() {
final int val$idx;
final PluginInitializer this$0;
public void run()
{
try
{
Object entry = PluginInitializer.registration_queue.get(idx);
if (entry instanceof Class)
{
Class cla = (Class)entry;
PluginInitializer.singleton.initializePluginFromClass(cla, "<internal>", cla.getName(), false, true, true);
} else
{
Object x[] = (Object[])(Object[])entry;
Plugin plugin = (Plugin)x[0];
PluginInitializer.singleton.initializePluginFromInstance(plugin, (String)x[1], plugin.getClass().getName());
}
}
catch (PluginException e) { }
}
{
this$0 = PluginInitializer.this;
idx = i;
super();
}
});
}
secondaryInitializer = new AEThread2(true, initQueue) {
final LinkedList val$initQueue;
final PluginInitializer this$0;
public void run()
{
PluginInitializer.addInitThread();
_L2:
Runnable toRun;
label0:
{
synchronized (initQueue)
{
if (!initQueue.isEmpty())
break label0;
}
break; /* Loop/switch isn't completed */
}
toRun = (Runnable)initQueue.remove(0);
linkedlist1;
JVM INSTR monitorexit ;
try
{
toRun.run();
}
catch (Throwable e)
{
Debug.out(e);
}
if (true) goto _L2; else goto _L1
_L1:
PluginInitializer.removeInitThread();
break MISSING_BLOCK_LABEL_78;
Exception exception3;
exception3;
PluginInitializer.removeInitThread();
throw exception3;
}
{
this$0 = PluginInitializer.this;
initQueue = linkedlist;
super(x0, x1);
}
};
secondaryInitializer.start();
_L2:
Runnable toRun;
label0:
{
synchronized (initQueue)
{
if (!initQueue.isEmpty())
break label0;
}
break; /* Loop/switch isn't completed */
}
toRun = (Runnable)initQueue.remove(0);
linkedlist;
JVM INSTR monitorexit ;
try
{
toRun.run();
}
catch (Throwable e)
{
Debug.out(e);
}
if (true) goto _L2; else goto _L1
_L1:
secondaryInitializer.join();
registration_queue.clear();
plugins_initialised = true;
fireEvent(7);
removeInitThread();
break MISSING_BLOCK_LABEL_268;
Exception exception1;
exception1;
removeInitThread();
throw exception1;
}
protected void checkPluginsInitialised()
{
if (!plugins_initialised)
Debug.out("Wait until plugin initialisation is complete until doing this!");
}
private void initialisePlugin(List l)
throws PluginException
{
PluginException last_load_failure = null;
for (int i = 0; i < l.size(); i++)
{
final PluginInterfaceImpl plugin_interface = (PluginInterfaceImpl)l.get(i);
if (plugin_interface.getPluginState().isDisabled())
{
synchronized (s_plugin_interfaces)
{
s_plugin_interfaces.add(plugin_interface);
}
continue;
}
if (plugin_interface.getPluginState().isOperational())
continue;
Throwable load_failure = null;
final Plugin plugin = plugin_interface.getPlugin();
try
{
UtilitiesImpl.callWithPluginThreadContext(plugin_interface, new org.gudy.azureus2.pluginsimpl.local.utils.UtilitiesImpl.runnableWithException() {
final PluginInterfaceImpl val$plugin_interface;
final Plugin val$plugin;
final PluginInitializer this$0;
public void run()
throws PluginException
{
fireCreated(plugin_interface);
plugin.initialize(plugin_interface);
if (!(plugin instanceof FailedPlugin))
plugin_interface.getPluginStateImpl().setOperational(true, false);
}
{
this$0 = PluginInitializer.this;
plugin_interface = plugininterfaceimpl;
plugin = plugin1;
super();
}
});
}
catch (Throwable e)
{
load_failure = e;
}
synchronized (s_plugin_interfaces)
{
s_plugins.add(plugin);
s_plugin_interfaces.add(plugin_interface);
}
if (load_failure != null)
{
Debug.printStackTrace(load_failure);
String msg = (new StringBuilder()).append("Error initializing plugin '").append(plugin_interface.getPluginName()).append("'").toString();
Logger.log(new LogAlert(false, msg, load_failure));
System.out.println((new StringBuilder()).append(msg).append(" : ").append(load_failure).toString());
last_load_failure = new PluginException(msg, load_failure);
}
}
if (last_load_failure != null)
throw last_load_failure;
else
return;
}
protected void initializePluginFromClass(final Class plugin_class, final String plugin_id, String plugin_config_key, boolean force_enabled, boolean loading_for_startup, boolean initialise)
throws PluginException
{
if (plugin_class != org/gudy/azureus2/pluginsimpl/local/FailedPlugin && getPluginFromClass(plugin_class) != null)
{
Logger.log(new LogAlert(false, 1, (new StringBuilder()).append("Error loading '").append(plugin_id).append("', plugin class '").append(plugin_class.getName()).append("' is already loaded").toString()));
return;
}
try
{
final Plugin plugin = (Plugin)plugin_class.newInstance();
String plugin_name;
if (plugin_config_key.length() == 0)
{
plugin_name = plugin_class.getName();
int pos = plugin_name.lastIndexOf(".");
if (pos != -1)
plugin_name = plugin_name.substring(pos + 1);
} else
{
plugin_name = plugin_config_key;
}
Properties properties = new Properties();
properties.put("plugin.name", plugin_name);
final PluginInterfaceImpl plugin_interface = new PluginInterfaceImpl(plugin, this, plugin_class, plugin_class.getClassLoader(), plugin_config_key, properties, "", plugin_id, null);
boolean bEnabled = loading_for_startup ? plugin_interface.getPluginState().isLoadedAtStartup() : initialise;
if (force_enabled && !bEnabled)
{
plugin_interface.getPluginState().setLoadedAtStartup(true);
bEnabled = true;
Logger.log(new LogAlert(false, 1, MessageText.getString("plugins.init.force_enabled", new String[] {
plugin_id
})));
}
plugin_interface.getPluginState().setDisabled(!bEnabled);
final boolean f_enabled = bEnabled;
UtilitiesImpl.callWithPluginThreadContext(plugin_interface, new org.gudy.azureus2.pluginsimpl.local.utils.UtilitiesImpl.runnableWithException() {
final Class val$plugin_class;
final Plugin val$plugin;
final PluginInterfaceImpl val$plugin_interface;
final String val$plugin_id;
final boolean val$f_enabled;
final PluginInitializer this$0;
public void run()
throws PluginException
{
try
{
Method load_method = plugin_class.getMethod("load", new Class[] {
org/gudy/azureus2/plugins/PluginInterface
});
load_method.invoke(plugin, new Object[] {
plugin_interface
});
}
catch (NoSuchMethodException e) { }
catch (Throwable e)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -