Class PluginManager


  • public class PluginManager
    extends java.lang.Object
    Executes manages external decompiler wrapper plugins. Wrapper plugins are stored as .java files along with .json file containing classname, wrapper url and dependencies url. When user calls decompile method with decompiler name and bytecode, wrapper plugin gets compiled and executed.
    • Constructor Detail

      • PluginManager

        public PluginManager()
    • Method Detail

      • loadConfigs

        public void loadConfigs()
        Searches plugin configuration locations and calls loadConfig(file) on files.
      • loadConfig

        private void loadConfig​(java.io.File file)
        Loads information decompiler json file into ListWrapper.
      • decompile

        public java.lang.String decompile​(DecompilerWrapperInformation wrapper,
                                          byte[] bytecode)
                                   throws java.lang.Exception
        Decompile with default options
        Throws:
        java.lang.Exception
      • decompile

        public java.lang.String decompile​(DecompilerWrapperInformation wrapper,
                                          byte[] bytecode,
                                          java.lang.String[] options)
                                   throws java.lang.Exception
        Parameters:
        wrapper - decompiler used for decompiling
        bytecode - bytecode to be decompiled
        Returns:
        Decompiled bytecode or exception String.
        Throws:
        java.lang.Exception
      • InitializeWrapper

        private void InitializeWrapper​(DecompilerWrapperInformation wrapper)
        Compiles wrapper plugin, loads it into JVM and stores it for later.
        Parameters:
        wrapper -
        Throws:
        java.lang.RuntimeException
      • validatePlugin

        public java.lang.String validatePlugin​(DecompilerWrapperInformation plugin)
        Validating the @param plugin using compilation
        Parameters:
        plugin - - plugin to validate
        Returns:
        error message or null
      • createUserPluginDir

        public static void createUserPluginDir()
      • URLListToCSV

        private java.lang.String URLListToCSV​(java.util.List<ExpandableUrl> list,
                                              java.lang.String delimeter)
        Converts list of URLs to CSV String
        example: (list){URL1,URL2,URL3} -> (String)URL1:URL2:URL3
        Parameters:
        list -
        delimeter -
        Returns:
      • flipWrapperExtension

        public static java.lang.String flipWrapperExtension​(java.lang.String filePath)