Class ProjectClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- org.drools.wiring.api.classloader.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classProjectClassLoader.DummyClassNotFoundExceptionstatic interfaceProjectClassLoader.InternalTypesClassLoader
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<java.lang.String>generatedClassNames
-
Constructor Summary
Constructors Modifier Constructor Description protectedProjectClassLoader(java.lang.ClassLoader parent, ResourceProvider resourceProvider)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclearStore()static ProjectClassLoadercreateProjectClassLoader()static ProjectClassLoadercreateProjectClassLoader(java.lang.ClassLoader parent)static ProjectClassLoadercreateProjectClassLoader(java.lang.ClassLoader parent, java.util.Map<java.lang.String,byte[]> store)static ProjectClassLoadercreateProjectClassLoader(java.lang.ClassLoader parent, ResourceProvider resourceProvider)java.lang.Class<?>defineClass(java.lang.String name, byte[] bytecode)java.lang.Class<?>defineClass(java.lang.String name, java.lang.String resourceName, byte[] bytecode)byte[]getBytecode(java.lang.String resourceName)static java.lang.ClassLoadergetClassLoader(java.lang.ClassLoader classLoader, java.lang.Class<?> cls)java.util.Set<java.lang.String>getGeneratedClassNames()java.net.URLgetResource(java.lang.String name)java.io.InputStreamgetResourceAsStream(java.lang.String name)java.util.Enumeration<java.net.URL>getResources(java.lang.String name)java.util.Map<java.lang.String,byte[]>getStore()java.lang.ClassLoadergetTypesClassLoader()voidinitFrom(ProjectClassLoader other)java.lang.Class<?>internalLoadClass(java.lang.String name, boolean resolve)booleanisClassInUse(java.lang.String className)booleanisClassInUse(java.lang.String className, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClazz)abstract booleanisDynamic()static booleanisEnableStoreFirst()protected booleanisStoreFirst(java.lang.String name)protected java.lang.Class<?>loadClass(java.lang.String name, boolean resolve)abstract ProjectClassLoader.InternalTypesClassLoadermakeClassLoader()java.util.List<java.lang.String>reinitTypes()voidsetDroolsClassLoader(java.lang.ClassLoader droolsClassLoader)voidsetGeneratedClassNames(java.util.Set<java.lang.String> generatedClassNames)voidsetInternalClassLoader(ProjectClassLoader.InternalTypesClassLoader classLoader)voidsetResourceProvider(ResourceProvider resourceProvider)voidstoreClass(java.lang.String name, byte[] bytecode)voidstoreClass(java.lang.String name, java.lang.String resourceName, byte[] bytecode)voidstoreClasses(java.util.Map<java.lang.String,byte[]> classesMap)java.lang.Class<?>tryDefineType(java.lang.String name, java.lang.ClassNotFoundException cnfe)voidundefineClass(java.lang.String name)java.lang.Class<?>writeClass(java.lang.String name, byte[] bytecode)-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
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()
-
createProjectClassLoader
public static ProjectClassLoader createProjectClassLoader(java.lang.ClassLoader parent)
-
createProjectClassLoader
public static ProjectClassLoader createProjectClassLoader(java.lang.ClassLoader parent, ResourceProvider resourceProvider)
-
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:
loadClassin classjava.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:
writeClassin interfaceorg.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:
getResourceAsStreamin classjava.lang.ClassLoader
-
getResource
public java.net.URL getResource(java.lang.String name)
- Overrides:
getResourcein classjava.lang.ClassLoader
-
getResources
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException- Overrides:
getResourcesin classjava.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:
getStorein interfaceorg.kie.memorycompiler.StoreClassLoader
-
clearStore
public void clearStore()
-
setDroolsClassLoader
public void setDroolsClassLoader(java.lang.ClassLoader droolsClassLoader)
-
setInternalClassLoader
public void setInternalClassLoader(ProjectClassLoader.InternalTypesClassLoader classLoader)
-
setResourceProvider
public void setResourceProvider(ResourceProvider resourceProvider)
-
initFrom
public void initFrom(ProjectClassLoader other)
-
makeClassLoader
public abstract ProjectClassLoader.InternalTypesClassLoader makeClassLoader()
-
reinitTypes
public java.util.List<java.lang.String> reinitTypes()
-
-