Class PluginInitializer

java.lang.Object
com.biglybt.pifimpl.local.PluginInitializer
All Implemented Interfaces:
GlobalManagerListener, AEDiagnosticsEvidenceGenerator

public class PluginInitializer extends Object implements GlobalManagerListener, AEDiagnosticsEvidenceGenerator
  • Field Details

    • DISABLE_PLUGIN_VERIFICATION

      public static final boolean DISABLE_PLUGIN_VERIFICATION
      See Also:
    • LOGID

      private static final LogIDs LOGID
    • INTERNAL_PLUGIN_ID

      public static final String INTERNAL_PLUGIN_ID
      See Also:
    • builtin_plugins

      private String[][] builtin_plugins
    • singleton

      private static PluginInitializer singleton
    • class_mon

      private static AEMonitor class_mon
    • registration_queue

      private static List registration_queue
    • initThreads

      private static List initThreads
    • async_dispatcher

      private static AsyncDispatcher async_dispatcher
    • plugin_event_history

      private static List<PluginEvent> plugin_event_history
    • core

      private Core core
    • default_plugin

      private PluginInterfaceImpl default_plugin
    • plugin_manager

      private PluginManager plugin_manager
    • root_class_loader

      private ClassLoader root_class_loader
    • loaded_pi_list

      private List<List<PluginInterface>> loaded_pi_list
    • loading_builtin

      private static boolean loading_builtin
    • s_plugins

      private List<Plugin> s_plugins
    • s_plugin_interfaces

      private List<PluginInterfaceImpl> s_plugin_interfaces
    • initialisation_complete

      private boolean initialisation_complete
    • plugins_initialised

      private volatile boolean plugins_initialised
    • vc_disabled_plugins

      private Set<String> vc_disabled_plugins
  • Constructor Details

    • PluginInitializer

      protected PluginInitializer(Core core)
  • Method Details

    • getSingleton

      public static PluginInitializer getSingleton(Core core)
    • peekSingleton

      private static PluginInitializer peekSingleton()
    • queueRegistration

      protected static void queueRegistration(Class _class)
    • queueRegistration

      protected static void queueRegistration(Plugin plugin, String id, String config_key)
    • isLoadingBuiltin

      protected static boolean isLoadingBuiltin()
    • checkCoreAppVersion

      public static void checkCoreAppVersion(String name, Properties props, boolean alert_on_fail) throws PluginException
      Throws:
      PluginException
    • checkJDKVersion

      public static void checkJDKVersion(String name, Properties props, boolean alert_on_fail) throws PluginException
      Throws:
      PluginException
    • normaliseJDK

      protected static String normaliseJDK(String jdk)
    • fireCreated

      protected void fireCreated(PluginInterfaceImpl pi)
    • fireOperational

      protected void fireOperational(PluginInterfaceImpl pi, boolean op)
    • addInitThread

      public static void addInitThread()
    • removeInitThread

      public static void removeInitThread()
    • isInitThread

      public static boolean isInitThread()
    • isInitialisationThread

      protected boolean isInitialisationThread()
    • loadPlugins

      public List loadPlugins(Core core, boolean bSkipAlreadyLoaded, boolean load_external_plugins, boolean loading_for_startup, boolean initialise_plugins)
    • getRootClassLoader

      private void getRootClassLoader()
    • getRootClassLoader

      private void getRootClassLoader(File dir)
    • loadPluginsFromDir

      private List loadPluginsFromDir(File pluginDirectory, int plugin_offset, int plugin_total, boolean bSkipAlreadyLoaded, boolean loading_for_startup, boolean initialise)
    • loadPluginFromDir

      private List loadPluginFromDir(File directory, boolean bSkipAlreadyLoaded, boolean loading_for_startup, boolean initialise) throws PluginException
      Throws:
      PluginException
    • log

      private void log(String str)
    • initialisePlugins

      public void initialisePlugins()
    • checkPluginsInitialised

      protected void checkPluginsInitialised()
    • isInitialized

      protected boolean isInitialized()
    • initialisePlugin

      private void initialisePlugin(List l) throws PluginException
      Throws:
      PluginException
    • initializePluginFromClass

      protected void initializePluginFromClass(Class plugin_class, String plugin_id, String plugin_config_key, boolean force_enabled, boolean loading_for_startup, boolean initialise) throws PluginException
      Throws:
      PluginException
    • initializePluginFromInstance

      protected void initializePluginFromInstance(Plugin plugin, String plugin_id, String plugin_config_key) throws PluginException
      Throws:
      PluginException
    • unloadPlugin

      protected void unloadPlugin(PluginInterfaceImpl pi)
    • reloadPlugin

      protected void reloadPlugin(PluginInterfaceImpl pi) throws PluginException
      Throws:
      PluginException
    • reloadPlugin

      protected void reloadPlugin(PluginInterfaceImpl pi, boolean loading_for_startup, boolean initialise) throws PluginException
      Throws:
      PluginException
    • getCore

      protected Core getCore()
    • getGlobalManager

      protected GlobalManager getGlobalManager()
    • getDefaultInterface

      public static PluginInterface getDefaultInterface()
    • getDefaultInterfaceSupport

      protected PluginInterface getDefaultInterfaceSupport()
    • downloadManagerAdded

      public void downloadManagerAdded(DownloadManager dm)
      Specified by:
      downloadManagerAdded in interface GlobalManagerListener
    • downloadManagerRemoved

      public void downloadManagerRemoved(DownloadManager dm)
      Specified by:
      downloadManagerRemoved in interface GlobalManagerListener
    • destroyInitiated

      public void destroyInitiated(GlobalMangerProgressListener progress)
      Specified by:
      destroyInitiated in interface GlobalManagerListener
    • destroyed

      public void destroyed()
      Specified by:
      destroyed in interface GlobalManagerListener
    • seedingStatusChanged

      public void seedingStatusChanged(boolean seeding_only_mode, boolean b)
      Description copied from interface: GlobalManagerListener
      Notification of global seeding status changes.
      Specified by:
      seedingStatusChanged in interface GlobalManagerListener
      Parameters:
      seeding_only_mode - true if only seeding torrents (no downloads), false otherwise
      b - - as above but true if queued seeds
    • runPEVTask

      protected void runPEVTask(AERunnable run)
    • getPEVHistory

      protected List<PluginEvent> getPEVHistory()
    • fireEventSupport

      protected void fireEventSupport(int type, Object value)
    • waitForEvents

      private void waitForEvents()
    • fireEvent

      public static void fireEvent(int type)
    • fireEvent

      public static void fireEvent(int type, Object value)
    • waitForPluginEvents

      public static void waitForPluginEvents()
    • initialisationComplete

      public void initialisationComplete()
    • isInitialisationComplete

      protected boolean isInitialisationComplete()
    • getPluginInterfaces

      public static List<PluginInterfaceImpl> getPluginInterfaces()
    • getPluginInterfacesSupport

      private List<PluginInterfaceImpl> getPluginInterfacesSupport(boolean expect_partial_result)
    • getPlugins

      public PluginInterface[] getPlugins()
    • getPlugins

      public PluginInterface[] getPlugins(boolean expect_partial_result)
    • getPluginManager

      protected PluginManager getPluginManager()
    • getPluginFromClass

      protected PluginInterfaceImpl getPluginFromClass(Class cla)
    • getPluginFromClass

      protected PluginInterfaceImpl getPluginFromClass(String class_name)
    • generate

      public void generate(IndentWriter writer)
      Specified by:
      generate in interface AEDiagnosticsEvidenceGenerator