Class ProjectClassLoader

  • All Implemented Interfaces:
    org.kie.internal.utils.KieTypeResolver, org.kie.memorycompiler.StoreClassLoader, org.kie.memorycompiler.WritableClassLoader

    public abstract class ProjectClassLoader
    extends java.lang.ClassLoader
    implements org.kie.internal.utils.KieTypeResolver, org.kie.memorycompiler.StoreClassLoader, org.kie.memorycompiler.WritableClassLoader
    • Field Detail

      • generatedClassNames

        protected java.util.Set<java.lang.String> generatedClassNames
    • Constructor Detail

      • ProjectClassLoader

        protected ProjectClassLoader​(java.lang.ClassLoader parent,
                                     ResourceProvider resourceProvider)
    • Method Detail

      • getClassLoader

        public static java.lang.ClassLoader getClassLoader​(java.lang.ClassLoader classLoader,
                                                           java.lang.Class<?> cls)
      • getTypesClassLoader

        public java.lang.ClassLoader getTypesClassLoader()
      • createProjectClassLoader

        public static ProjectClassLoader createProjectClassLoader​(java.lang.ClassLoader parent)
      • createProjectClassLoader

        public static ProjectClassLoader createProjectClassLoader​(java.lang.ClassLoader parent,
                                                                  java.util.Map<java.lang.String,​byte[]> store)
      • isDynamic

        public abstract boolean isDynamic()
      • loadClass

        protected java.lang.Class<?> loadClass​(java.lang.String name,
                                               boolean resolve)
                                        throws java.lang.ClassNotFoundException
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • isStoreFirst

        protected boolean isStoreFirst​(java.lang.String name)
      • internalLoadClass

        public java.lang.Class<?> internalLoadClass​(java.lang.String name,
                                                    boolean resolve)
                                             throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • tryDefineType

        public java.lang.Class<?> tryDefineType​(java.lang.String name,
                                                java.lang.ClassNotFoundException cnfe)
                                         throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • writeClass

        public java.lang.Class<?> writeClass​(java.lang.String name,
                                             byte[] bytecode)
        Specified by:
        writeClass in interface org.kie.memorycompiler.WritableClassLoader
      • defineClass

        public java.lang.Class<?> defineClass​(java.lang.String name,
                                              byte[] bytecode)
      • defineClass

        public java.lang.Class<?> defineClass​(java.lang.String name,
                                              java.lang.String resourceName,
                                              byte[] bytecode)
      • undefineClass

        public void undefineClass​(java.lang.String name)
      • storeClass

        public void storeClass​(java.lang.String name,
                               byte[] bytecode)
      • storeClasses

        public void storeClasses​(java.util.Map<java.lang.String,​byte[]> classesMap)
      • storeClass

        public void storeClass​(java.lang.String name,
                               java.lang.String resourceName,
                               byte[] bytecode)
      • isClassInUse

        public boolean isClassInUse​(java.lang.String className,
                                    java.lang.Class<? extends java.lang.annotation.Annotation> annotationClazz)
      • isClassInUse

        public boolean isClassInUse​(java.lang.String className)
      • getResourceAsStream

        public java.io.InputStream getResourceAsStream​(java.lang.String name)
        Overrides:
        getResourceAsStream in class java.lang.ClassLoader
      • getResource

        public java.net.URL getResource​(java.lang.String name)
        Overrides:
        getResource in class java.lang.ClassLoader
      • getResources

        public java.util.Enumeration<java.net.URL> getResources​(java.lang.String name)
                                                         throws java.io.IOException
        Overrides:
        getResources in class java.lang.ClassLoader
        Throws:
        java.io.IOException
      • getGeneratedClassNames

        public java.util.Set<java.lang.String> getGeneratedClassNames()
      • setGeneratedClassNames

        public void setGeneratedClassNames​(java.util.Set<java.lang.String> generatedClassNames)
      • isEnableStoreFirst

        public static boolean isEnableStoreFirst()
      • getBytecode

        public byte[] getBytecode​(java.lang.String resourceName)
      • getStore

        public java.util.Map<java.lang.String,​byte[]> getStore()
        Specified by:
        getStore in interface org.kie.memorycompiler.StoreClassLoader
      • clearStore

        public void clearStore()
      • setDroolsClassLoader

        public void setDroolsClassLoader​(java.lang.ClassLoader droolsClassLoader)
      • setResourceProvider

        public void setResourceProvider​(ResourceProvider resourceProvider)
      • reinitTypes

        public java.util.List<java.lang.String> reinitTypes()