Package com.helix.core.classloader
Class RuleClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
com.helix.core.classloader.RuleClassLoader
- All Implemented Interfaces:
Closeable,AutoCloseable
Custom URLClassLoader for dynamically defining and executing compiled rule bytecode.
-
Constructor Summary
ConstructorsConstructorDescriptionRuleClassLoader(String loaderId, ClassLoader parent) RuleClassLoader(String loaderId, ClassLoader parent, ClassLoaderMetrics metrics) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Class<?> defineRule(String className, byte[] byteCode) Defines a new class from raw bytecode.booleanisClosed()Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstanceMethods inherited from class java.security.SecureClassLoader
defineClass, defineClassMethods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
RuleClassLoader
-
RuleClassLoader
-
-
Method Details
-
getLoaderId
-
defineRule
Defines a new class from raw bytecode.- Parameters:
className- FQCN of the classbyteCode- raw byte array of class bytecode- Returns:
- loaded Class object
- Throws:
ClassLoadingException- if defining class fails or loader is closed
-
getLoadedClasses
-
isClosed
public boolean isClosed() -
getMetrics
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classURLClassLoader
-