⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plugininitializer.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
							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 + -