Package io.github.toolfactory.jvm
Class DriverAbst
java.lang.Object
io.github.toolfactory.jvm.DriverAbst
- All Implemented Interfaces:
Driver,Closeable,AutoCloseable
- Direct Known Subclasses:
DefaultDriver
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.github.toolfactory.jvm.Driver
Driver.Factory, Driver.InitializeException, Driver.InstantiateException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ThrowingBiConsumer<AccessibleObject,Boolean, Throwable> protected ThrowingFunction<Class<?>,Object, Throwable> protected ThrowingQuadFunction<String,Boolean, ClassLoader, Class<?>, Class<?>, Throwable> protected ThrowingFunction<ClassLoader,ClassLoader, Throwable> protected ThrowingBiFunction<Constructor<?>,Object[], Object, Throwable> protected ThrowingFunction<Class<?>,MethodHandles.Lookup, Throwable> protected ThrowingFunction<Class<?>,Constructor<?>[], Throwable> protected ThrowingFunction<Class<?>,Field[], Throwable> protected ThrowingFunction<Class<?>,Method[], Throwable> protected ThrowExceptionFunctionprotected BiFunction<Object,Field, Object> protected TriConsumer<Object,Field, Object> protected ThrowingBiFunction<Class<?>,byte[], Class<?>, Throwable> protected Function<ClassLoader,CleanableSupplier<Collection<Class<?>>>> protected Function<ClassLoader,Map<String, ?>> protected ThrowingBiFunction<ClassLoader,String, Package, Throwable> protected GetResourcesFunctionprotected ThrowingBiConsumer<Thread,Throwable, Throwable> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> TallocateInstance(Class<?> cls) voidclose()convertToBuiltinClassLoader(ClassLoader classLoader) Class<?>defineHookClass(Class<?> clientClass, byte[] byteCode) protected SetAccessibleFunctiongetAccessibleSetter(Map<Object, Object> initializationContext) protected abstract Class<? extends AllocateInstanceFunction>protected AllocateInstanceFunctiongetAllocateInstanceInvoker(Map<Object, Object> initializationContext) Class<?>protected BuiltinClassLoaderClassSuppliergetBuiltinClassLoaderClassSupplier(Map<Object, Object> initializationContext) protected abstract Class<? extends BuiltinClassLoaderClassSupplier>Class<?>getClassByName(String className, Boolean initialize, ClassLoader classLoader, Class<?> caller) protected GetClassByNameFunctiongetClassByNameRetriever(Map<Object, Object> initializationContext) Class<?>protected ClassLoaderDelegateClassSuppliergetClassLoaderDelegateClassSupplier(Map<Object, Object> initializationContext) protected abstract Class<? extends ClassLoaderDelegateClassSupplier>protected ConvertToBuiltinClassLoaderFunctiongetClassLoaderToBuiltinClassLoaderConverter(Map<Object, Object> initializationContext) protected abstract Class<? extends ConstructorInvokeFunction>protected ConstructorInvokeFunctiongetConstructorInvoker(Map<Object, Object> initializationContext) getConsulter(Class<?> cls) protected ConsulterSupplyFunctiongetConsulterRetriever(Map<Object, Object> initializationContext) protected abstract Class<? extends ConsulterSupplyFunction>protected abstract Class<? extends ConvertToBuiltinClassLoaderFunction><T> Constructor<T>[]getDeclaredConstructors(Class<T> cls) protected GetDeclaredConstructorsFunctiongetDeclaredConstructorsRetriever(Map<Object, Object> initializationContext) Field[]getDeclaredFields(Class<?> cls) protected GetDeclaredFieldsFunctiongetDeclaredFieldsRetriever(Map<Object, Object> initializationContext) Method[]getDeclaredMethods(Class<?> cls) protected GetDeclaredMethodsFunctiongetDeclaredMethodsRetriever(Map<Object, Object> initializationContext) protected DeepConsulterSupplyFunctiongetDeepConsulterRetriever(Map<Object, Object> initializationContext) protected abstract Class<? extends DeepConsulterSupplyFunction>protected abstract Class<? extends DefineHookClassFunction>protected ThrowExceptionFunctiongetExceptionThrower(Map<Object, Object> initializationContext) <T> TgetFieldValue(Object target, Field field) protected GetFieldValueFunctiongetFieldValueRetriever(Map<Object, Object> initializationContext) protected SetFieldValueFunctiongetFieldValueSetter(Map<Object, Object> initializationContext) protected abstract Class<? extends GetClassByNameFunction>protected abstract Class<? extends GetDeclaredConstructorsFunction>protected abstract Class<? extends GetDeclaredFieldsFunction>protected abstract Class<? extends GetDeclaredMethodsFunction>protected abstract Class<? extends GetFieldValueFunction>protected abstract Class<? extends GetLoadedClassesRetrieverFunction>protected abstract Class<? extends GetLoadedPackagesFunction>protected abstract Class<? extends GetPackageFunction>protected abstract Class<? extends GetResourcesFunction>protected DefineHookClassFunctiongetHookClassDefiner(Map<Object, Object> initializationContext) getLoadedClassesRetriever(ClassLoader classLoader) protected GetLoadedClassesRetrieverFunctiongetLoadedClassesRetrieverFunction(Map<Object, Object> initializationContext) protected GetLoadedPackagesFunctiongetLoadedPackagesRetriever(Map<Object, Object> initializationContext) protected abstract Class<? extends MethodInvokeFunction>protected MethodInvokeFunctiongetMethodInvoker(Map<Object, Object> initializationContext) protected SetAccessibleFunctiongetOrBuildAccessibleSetter(Map<Object, Object> initializationContext) protected AllocateInstanceFunctiongetOrBuildAllocateInstanceInvoker(Map<Object, Object> initializationContext) protected BuiltinClassLoaderClassSuppliergetOrBuildBuiltinClassLoaderClassSupplier(Map<Object, Object> initializationContext) protected GetClassByNameFunctiongetOrBuildClassByNameRetriever(Map<Object, Object> initializationContext) protected ClassLoaderDelegateClassSuppliergetOrBuildClassLoaderDelegateClassSupplier(Map<Object, Object> initializationContext) protected ConvertToBuiltinClassLoaderFunctiongetOrBuildClassLoaderToBuiltinClassLoaderConverter(Map<Object, Object> initializationContext) protected ConstructorInvokeFunctiongetOrBuildConstructorInvoker(Map<Object, Object> initializationContext) protected ConsulterSupplyFunctiongetOrBuildConsulterRetriever(Map<Object, Object> initializationContext) protected GetDeclaredConstructorsFunctiongetOrBuildDeclaredConstructorsRetriever(Map<Object, Object> initializationContext) protected GetDeclaredFieldsFunctiongetOrBuildDeclaredFieldsRetriever(Map<Object, Object> initializationContext) protected GetDeclaredMethodsFunctiongetOrBuildDeclaredMethodsRetriever(Map<Object, Object> initializationContext) protected DeepConsulterSupplyFunctiongetOrBuildDeepConsulterRetriever(Map<Object, Object> initializationContext) protected ThrowExceptionFunctiongetOrBuildExceptionThrower(Map<Object, Object> initializationContext) protected GetFieldValueFunctiongetOrBuildFieldValueRetriever(Map<Object, Object> initializationContext) protected SetFieldValueFunctiongetOrBuildFieldValueSetter(Map<Object, Object> initializationContext) protected DefineHookClassFunctiongetOrBuildHookClassDefiner(Map<Object, Object> initializationContext) protected GetLoadedClassesRetrieverFunctiongetOrBuildLoadedClassesRetrieverFunction(Map<Object, Object> initializationContext) protected GetLoadedPackagesFunctiongetOrBuildLoadedPackagesRetriever(Map<Object, Object> initializationContext) protected MethodInvokeFunctiongetOrBuildMethodInvoker(Map<Object, Object> initializationContext) protected GetPackageFunctiongetOrBuildPackageRetriever(Map<Object, Object> initializationContext) protected GetResourcesFunctiongetOrBuildResourcesRetriever(Map<Object, Object> initializationContext) protected StopThreadFunctiongetOrBuildThreadStopper(Map<Object, Object> initializationContext) getPackage(ClassLoader classLoader, String packageName) protected GetPackageFunctiongetPackageRetriever(Map<Object, Object> initializationContext) getResources(String resourceRelativePath, boolean findFirst, ClassLoader... classLoaders) getResources(String resourceRelativePath, boolean findFirst, Collection<ClassLoader> classLoaders) protected GetResourcesFunctiongetResourcesRetriever(Map<Object, Object> initializationContext) protected abstract Class<? extends SetAccessibleFunction>protected abstract Class<? extends SetFieldValueFunction>protected abstract Class<? extends StopThreadFunction>protected StopThreadFunctiongetThreadStopper(Map<Object, Object> initializationContext) protected abstract Class<? extends ThrowExceptionFunction><D extends Driver>
Dinit()<T> TbooleanisBuiltinClassLoader(ClassLoader classLoader) booleanisClassLoaderDelegate(ClassLoader classLoader) <T> TnewInstance(Constructor<T> ctor, Object[] params) protected voidprotected ObjectProviderputNewObjectProviderIfAbsent(Map<Object, Object> context) protected <D extends Driver>
DretrieveLoadedPackages(ClassLoader classLoader) voidsetAccessible(AccessibleObject object, boolean flag) voidsetFieldValue(Object target, Field field, Object value) voidDeprecated.<T> TthrowException(String message, Object... placeHolderReplacements) <T> TthrowException(Throwable exception)
-
Field Details
-
exceptionThrower
-
allocateInstanceInvoker
-
fieldValueRetriever
-
fieldValueSetter
-
hookClassDefiner
-
consulterRetriever
-
declaredFieldsRetriever
-
declaredMethodsRetriever
-
declaredConstructorsRetriever
-
accessibleSetter
-
constructorInvoker
-
packageRetriever
-
methodInvoker
-
classByNameRetriever
protected ThrowingQuadFunction<String,Boolean, classByNameRetrieverClassLoader, Class<?>, Class<?>, Throwable> -
resourcesRetriver
-
builtinClassLoaderClassSupplier
-
classLoaderDelegateClassSupplier
-
loadedClassesRetrieverSupplier
protected Function<ClassLoader,CleanableSupplier<Collection<Class<?>>>> loadedClassesRetrieverSupplier -
loadedPackagesRetriever
-
classLoaderToBuiltinClassLoaderConverter
protected ThrowingFunction<ClassLoader,ClassLoader, classLoaderToBuiltinClassLoaderConverterThrowable> -
threadStopper
-
-
Constructor Details
-
DriverAbst
public DriverAbst()
-
-
Method Details
-
init
-
refresh
-
functionsToMap
-
putNewObjectProviderIfAbsent
-
getThrowExceptionFunctionClass
-
getAllocateInstanceFunctionClass
-
getGetFieldValueFunctionClass
-
getSetFieldValueFunctionClass
-
getDefineHookClassFunctionClass
-
getConsulterSupplyFunctionClass
-
getGetDeclaredFieldsFunctionClass
-
getGetDeclaredMethodsFunctionClass
-
getGetDeclaredConstructorsFunctionClass
protected abstract Class<? extends GetDeclaredConstructorsFunction> getGetDeclaredConstructorsFunctionClass() -
getSetAccessibleFunctionClass
-
getConstructorInvokeFunctionClass
-
getMethodInvokeFunctionClass
-
getGetPackageFunctionClass
-
getGetClassByNameFunctionClass
-
getGetResourcesFunctionClass
-
getBuiltinClassLoaderClassSupplierClass
protected abstract Class<? extends BuiltinClassLoaderClassSupplier> getBuiltinClassLoaderClassSupplierClass() -
getClassLoaderDelegateClassSupplierClass
protected abstract Class<? extends ClassLoaderDelegateClassSupplier> getClassLoaderDelegateClassSupplierClass() -
getDeepConsulterSupplyFunctionClass
protected abstract Class<? extends DeepConsulterSupplyFunction> getDeepConsulterSupplyFunctionClass() -
getGetLoadedClassesRetrieverFunctionClass
protected abstract Class<? extends GetLoadedClassesRetrieverFunction> getGetLoadedClassesRetrieverFunctionClass() -
getGetLoadedPackagesFunctionClass
-
getConvertToBuiltinClassLoaderFunctionClass
protected abstract Class<? extends ConvertToBuiltinClassLoaderFunction> getConvertToBuiltinClassLoaderFunctionClass() -
getStopThreadFunctionClass
-
getOrBuildExceptionThrower
protected ThrowExceptionFunction getOrBuildExceptionThrower(Map<Object, Object> initializationContext) -
getOrBuildAllocateInstanceInvoker
protected AllocateInstanceFunction getOrBuildAllocateInstanceInvoker(Map<Object, Object> initializationContext) -
getOrBuildFieldValueRetriever
protected GetFieldValueFunction getOrBuildFieldValueRetriever(Map<Object, Object> initializationContext) -
getOrBuildFieldValueSetter
protected SetFieldValueFunction getOrBuildFieldValueSetter(Map<Object, Object> initializationContext) -
getOrBuildHookClassDefiner
protected DefineHookClassFunction getOrBuildHookClassDefiner(Map<Object, Object> initializationContext) -
getOrBuildConsulterRetriever
protected ConsulterSupplyFunction getOrBuildConsulterRetriever(Map<Object, Object> initializationContext) -
getOrBuildDeclaredFieldsRetriever
protected GetDeclaredFieldsFunction getOrBuildDeclaredFieldsRetriever(Map<Object, Object> initializationContext) -
getOrBuildDeclaredMethodsRetriever
protected GetDeclaredMethodsFunction getOrBuildDeclaredMethodsRetriever(Map<Object, Object> initializationContext) -
getOrBuildDeclaredConstructorsRetriever
protected GetDeclaredConstructorsFunction getOrBuildDeclaredConstructorsRetriever(Map<Object, Object> initializationContext) -
getOrBuildAccessibleSetter
protected SetAccessibleFunction getOrBuildAccessibleSetter(Map<Object, Object> initializationContext) -
getOrBuildConstructorInvoker
protected ConstructorInvokeFunction getOrBuildConstructorInvoker(Map<Object, Object> initializationContext) -
getOrBuildMethodInvoker
-
getOrBuildPackageRetriever
-
getOrBuildClassByNameRetriever
protected GetClassByNameFunction getOrBuildClassByNameRetriever(Map<Object, Object> initializationContext) -
getOrBuildResourcesRetriever
protected GetResourcesFunction getOrBuildResourcesRetriever(Map<Object, Object> initializationContext) -
getOrBuildBuiltinClassLoaderClassSupplier
protected BuiltinClassLoaderClassSupplier getOrBuildBuiltinClassLoaderClassSupplier(Map<Object, Object> initializationContext) -
getOrBuildClassLoaderDelegateClassSupplier
protected ClassLoaderDelegateClassSupplier getOrBuildClassLoaderDelegateClassSupplier(Map<Object, Object> initializationContext) -
getOrBuildDeepConsulterRetriever
protected DeepConsulterSupplyFunction getOrBuildDeepConsulterRetriever(Map<Object, Object> initializationContext) -
getOrBuildLoadedClassesRetrieverFunction
protected GetLoadedClassesRetrieverFunction getOrBuildLoadedClassesRetrieverFunction(Map<Object, Object> initializationContext) -
getOrBuildLoadedPackagesRetriever
protected GetLoadedPackagesFunction getOrBuildLoadedPackagesRetriever(Map<Object, Object> initializationContext) -
getOrBuildClassLoaderToBuiltinClassLoaderConverter
protected ConvertToBuiltinClassLoaderFunction getOrBuildClassLoaderToBuiltinClassLoaderConverter(Map<Object, Object> initializationContext) -
getOrBuildThreadStopper
-
getExceptionThrower
-
getAllocateInstanceInvoker
protected AllocateInstanceFunction getAllocateInstanceInvoker(Map<Object, Object> initializationContext) -
getFieldValueRetriever
-
getFieldValueSetter
-
getHookClassDefiner
-
getConsulterRetriever
-
getDeclaredFieldsRetriever
protected GetDeclaredFieldsFunction getDeclaredFieldsRetriever(Map<Object, Object> initializationContext) -
getDeclaredMethodsRetriever
protected GetDeclaredMethodsFunction getDeclaredMethodsRetriever(Map<Object, Object> initializationContext) -
getDeclaredConstructorsRetriever
protected GetDeclaredConstructorsFunction getDeclaredConstructorsRetriever(Map<Object, Object> initializationContext) -
getAccessibleSetter
-
getConstructorInvoker
-
getMethodInvoker
-
getPackageRetriever
-
getClassByNameRetriever
-
getResourcesRetriever
-
getBuiltinClassLoaderClassSupplier
protected BuiltinClassLoaderClassSupplier getBuiltinClassLoaderClassSupplier(Map<Object, Object> initializationContext) -
getClassLoaderDelegateClassSupplier
protected ClassLoaderDelegateClassSupplier getClassLoaderDelegateClassSupplier(Map<Object, Object> initializationContext) -
getDeepConsulterRetriever
protected DeepConsulterSupplyFunction getDeepConsulterRetriever(Map<Object, Object> initializationContext) -
getLoadedClassesRetrieverFunction
protected GetLoadedClassesRetrieverFunction getLoadedClassesRetrieverFunction(Map<Object, Object> initializationContext) -
getLoadedPackagesRetriever
protected GetLoadedPackagesFunction getLoadedPackagesRetriever(Map<Object, Object> initializationContext) -
getClassLoaderToBuiltinClassLoaderConverter
protected ConvertToBuiltinClassLoaderFunction getClassLoaderToBuiltinClassLoaderConverter(Map<Object, Object> initializationContext) -
getThreadStopper
-
putIfNotNull
-
throwException
- Specified by:
throwExceptionin interfaceDriver
-
throwException
- Specified by:
throwExceptionin interfaceDriver
-
setAccessible
- Specified by:
setAccessiblein interfaceDriver
-
defineHookClass
- Specified by:
defineHookClassin interfaceDriver
-
getPackage
- Specified by:
getPackagein interfaceDriver
-
getLoadedClassesRetriever
- Specified by:
getLoadedClassesRetrieverin interfaceDriver
-
retrieveLoadedPackages
- Specified by:
retrieveLoadedPackagesin interfaceDriver
-
getFieldValue
- Specified by:
getFieldValuein interfaceDriver
-
setFieldValue
- Specified by:
setFieldValuein interfaceDriver
-
allocateInstance
- Specified by:
allocateInstancein interfaceDriver
-
getClassByName
public Class<?> getClassByName(String className, Boolean initialize, ClassLoader classLoader, Class<?> caller) - Specified by:
getClassByNamein interfaceDriver
-
getResources
public Collection<URL> getResources(String resourceRelativePath, boolean findFirst, ClassLoader... classLoaders) - Specified by:
getResourcesin interfaceDriver
-
getResources
public Collection<URL> getResources(String resourceRelativePath, boolean findFirst, Collection<ClassLoader> classLoaders) - Specified by:
getResourcesin interfaceDriver
-
isBuiltinClassLoader
- Specified by:
isBuiltinClassLoaderin interfaceDriver
-
isClassLoaderDelegate
- Specified by:
isClassLoaderDelegatein interfaceDriver
-
getBuiltinClassLoaderClass
- Specified by:
getBuiltinClassLoaderClassin interfaceDriver
-
getClassLoaderDelegateClass
- Specified by:
getClassLoaderDelegateClassin interfaceDriver
-
getConsulter
- Specified by:
getConsulterin interfaceDriver
-
invoke
-
newInstance
- Specified by:
newInstancein interfaceDriver
-
getDeclaredFields
- Specified by:
getDeclaredFieldsin interfaceDriver
-
getDeclaredConstructors
- Specified by:
getDeclaredConstructorsin interfaceDriver
-
getDeclaredMethods
- Specified by:
getDeclaredMethodsin interfaceDriver
-
stop
Deprecated. -
convertToBuiltinClassLoader
- Specified by:
convertToBuiltinClassLoaderin interfaceDriver
-
close
public void close()
-