Class Lib


  • public final class Lib
    extends java.lang.Object
    • Constructor Detail

      • Lib

        private Lib()
    • Method Detail

      • initClass

        public static void initClass​(VmInfo vmInfo,
                                     VmManager vmManager,
                                     java.lang.String fqn,
                                     java.io.PrintStream outputMessageStream)
      • initClassNoThrow

        public static java.lang.String initClassNoThrow​(VmInfo vmInfo,
                                                        VmManager vmManager,
                                                        java.lang.String fqn)
      • guessName

        public static java.lang.String guessName​(byte[] fileContents)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • guessNameImpl

        public static java.lang.String[] guessNameImpl​(byte[] fileContents)
                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • obtainFilteredClasses

        public static java.util.List<ClassInfo> obtainFilteredClasses​(VmInfo vmInfo,
                                                                      VmManager vmManager,
                                                                      java.util.List<java.util.regex.Pattern> filter,
                                                                      boolean details,
                                                                      java.util.Optional<java.lang.String> search,
                                                                      java.util.Optional<java.lang.String> classloader)
                                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • getByteCodeVersions

        public static int[] getByteCodeVersions​(ClassInfo clazz,
                                                VmInfo vmInfo,
                                                VmManager vmManager,
                                                java.util.Optional<java.lang.String> classloader)
      • matchesAtLeastOne

        static boolean matchesAtLeastOne​(ClassInfo clazz,
                                         java.util.List<java.util.regex.Pattern> filter)
      • searchClasses

        public static java.lang.String[] searchClasses​(VmInfo vmInfo,
                                                       VmManager manager,
                                                       java.lang.String searchedSusbtring,
                                                       java.lang.String regex,
                                                       java.util.Optional<java.lang.String> classloader)
      • obtainClasses

        public static java.lang.String[] obtainClasses​(VmInfo vmInfo,
                                                       VmManager manager,
                                                       java.util.Optional<java.lang.String> classloader)
      • obtainOverrides

        public static java.lang.String[] obtainOverrides​(VmInfo vmInfo,
                                                         VmManager manager)
      • removeOverrides

        public static void removeOverrides​(VmInfo vmInfo,
                                           VmManager manager,
                                           java.lang.String fqnAndLoader)
      • obtainClassesDetails

        public static ClassInfo[] obtainClassesDetails​(VmInfo vmInfo,
                                                       VmManager manager,
                                                       java.util.Optional<java.lang.String> classloader)
      • searchWithClassesDetails

        public static ClassInfo[] searchWithClassesDetails​(VmInfo vmInfo,
                                                           VmManager manager,
                                                           java.lang.String searchedSusbtring,
                                                           java.lang.String regex,
                                                           java.util.Optional<java.lang.String> classloader)
      • obtainClass

        public static VmDecompilerStatus obtainClass​(VmInfo vmInfo,
                                                     java.lang.String clazz,
                                                     VmManager manager,
                                                     java.util.Optional<java.lang.String> classlaoder)
      • detach

        public static void detach​(java.lang.String host,
                                  int port,
                                  VmManager vmManager)
      • decompileBytesByDecompilerName

        public static java.lang.String decompileBytesByDecompilerName​(java.lang.String base64Bytes,
                                                                      java.lang.String pluginName,
                                                                      java.lang.String className,
                                                                      VmInfo vmInfo,
                                                                      VmManager vmManager,
                                                                      PluginManager pluginManager,
                                                                      java.util.Optional<java.lang.String> classloader)
                                                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • decompileBytesByDecompilerName

        public static java.lang.String decompileBytesByDecompilerName​(byte[] bytes,
                                                                      java.lang.String pluginName,
                                                                      java.lang.String className,
                                                                      VmInfo vmInfo,
                                                                      VmManager vmManager,
                                                                      PluginManager pluginManager,
                                                                      java.util.Optional<java.lang.String> classloader)
                                                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • uploadClass

        public static java.lang.String uploadClass​(VmInfo vmInfo,
                                                   java.lang.String className,
                                                   java.lang.String clazzBytesInBase64,
                                                   VmManager vmManager,
                                                   java.util.Optional<java.lang.String> classloader)
      • addClass

        public static java.lang.String addClass​(VmInfo vmInfo,
                                                java.lang.String className,
                                                java.lang.String clazzBytesInBase64,
                                                VmManager vmManager)
      • addJar

        public static java.lang.String addJar​(VmInfo vmInfo,
                                              boolean isBoot,
                                              java.lang.String jarName,
                                              java.lang.String jarBytesInBase64,
                                              VmManager vmManager)
      • getBuildJavaPerVersion

        public static int getBuildJavaPerVersion​(byte[] source)
      • getJavaFromBytelevel

        public static int getJavaFromBytelevel​(int bytecodeVersion)
      • getByteCodeVersion

        public static int getByteCodeVersion​(byte[] source)
      • jarFromClasses

        public static InMemoryJar jarFromClasses​(java.lang.String[] fqnFilePairs,
                                                 java.lang.Object[] lastCarier)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • getPrefixByBoot

        public static java.lang.String getPrefixByBoot​(boolean boot)
      • readClassNameFromClass

        public static java.lang.String readClassNameFromClass​(byte[] b)
      • addFileClassesViaJar

        public static java.lang.String addFileClassesViaJar​(VmInfo vmInfo,
                                                            java.util.List<FqnAndClassToJar> toJar,
                                                            boolean isBoot,
                                                            VmManager vmManager)
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • addByteClassesViaJar

        public static java.lang.String addByteClassesViaJar​(VmInfo vmInfo,
                                                            java.util.List<io.github.mkoncek.classpathless.api.IdentifiedBytecode> toJar,
                                                            boolean isBoot,
                                                            VmManager vmManager)
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • getDefaultRemoteBytecodelevelCatched

        public static java.lang.Integer getDefaultRemoteBytecodelevelCatched​(VmInfo vmInfo,
                                                                             VmManager vmManager,
                                                                             java.util.Optional<java.lang.String> classloader)
        This takes classloader parameter onloy for very extreme cases, when there is more instances of object!
      • getDefaultRemoteBytecodelevelCatched

        public static java.lang.Integer getDefaultRemoteBytecodelevelCatched​(VmInfo vmInfo,
                                                                             VmManager vmManager)
      • getDefaultRemoteBytecodelevel

        public static java.lang.Integer getDefaultRemoteBytecodelevel​(VmInfo vmInfo,
                                                                      VmManager vmManager,
                                                                      java.util.Optional<java.lang.String> classloader)
        This takes classloader parameter onloy for very extreme cases, when there is more instances of object!
      • getDefaultRemoteBytecodelevel

        public static java.lang.Integer getDefaultRemoteBytecodelevel​(VmInfo vmInfo,
                                                                      VmManager vmManager)
      • getRemoteBytecodelevel

        public static java.lang.Integer getRemoteBytecodelevel​(VmInfo vmInfo,
                                                               VmManager vmManager,
                                                               java.lang.String className,
                                                               java.util.Optional<java.lang.String> classloader)
      • optionalLoaderToParam

        public static java.lang.String optionalLoaderToParam​(java.util.Optional<java.lang.String> classloader)