Package io.jmix.core

Class ClassManager

java.lang.Object
io.jmix.core.ClassManager

@Component("core_ClassManager") public class ClassManager extends Object
Loads classes taking into account hot-deploy feature.
  • Field Details

  • Constructor Details

    • ClassManager

      public ClassManager()
  • Method Details

    • findClass

      public @Nullable Class<?> findClass(String className)
      Finds class by name and loads if found
      Parameters:
      className - fully qualified class name
      Returns:
      class or null if not found
    • loadClass

      public Class<?> loadClass(String className)
      Loads a class by name
      Parameters:
      className - fully qualified class name
      Returns:
      class
      Throws:
      IllegalStateException - if the class is not found
    • loadGeneratedClass

      public Class<?> loadGeneratedClass(String className, byte[] bytes)
      Loads a generated class from bytecode and replaces the cached class with the same name if it exists.
      Parameters:
      className - fully qualified class name
      bytes - bytecode
      Returns:
      loaded class
    • loadGeneratedClasses

      public Map<String,Class<?>> loadGeneratedClasses(Map<String,byte[]> generatedClasses)
      Loads generated classes from bytecode and replaces cached classes with the same names if they exist.
      Parameters:
      generatedClasses - bytecode by fully qualified class name
      Returns:
      loaded classes by fully qualified class name
    • isGeneratedClass

      public boolean isGeneratedClass(String className)
      Checks whether a class with the given name was loaded as a generated class.
      Parameters:
      className - fully qualified class name
      Returns:
      true if a generated class with this name is loaded
    • removeClass

      public boolean removeClass(String className)
      Remove compiled class from cache
      Returns:
      true if class removed from cache
    • reloadClass

      public Class<?> reloadClass(String className)
      Reloads class by name
      Parameters:
      className - fully qualified class name
      Returns:
      class or null if not found
    • clearCache

      public void clearCache()
      Clears compiled classes cache
    • getJavaClassLoader

      public JavaClassLoader getJavaClassLoader()