diff --git a/core/deployment/src/main/java/io/quarkus/deployment/configuration/RunTimeConfigurationGenerator.java b/core/deployment/src/main/java/io/quarkus/deployment/configuration/RunTimeConfigurationGenerator.java index bbc4440da6821..9afb121558e8a 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/configuration/RunTimeConfigurationGenerator.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/configuration/RunTimeConfigurationGenerator.java @@ -648,7 +648,7 @@ public void run() { FieldDescriptor fd = convertersByType.get(type); if (fd == null) { // it's an unknown - final ResultHandle clazzHandle = converterSetup.loadClass(additionalType); + final ResultHandle clazzHandle = converterSetup.loadClassFromTCCL(additionalType); fd = FieldDescriptor.of(cc.getClassName(), "conv$" + converterIndex++, Converter.class); ResultHandle converter = converterSetup.invokeVirtualMethod(SRC_GET_CONVERTER, clinitConfig, clazzHandle); cc.getFieldCreator(fd).setModifiers(Opcodes.ACC_STATIC | Opcodes.ACC_FINAL); @@ -664,10 +664,10 @@ public void run() { final Class type = entry.getValue(); if (bootstrapConfigSetupNeeded()) { readBootstrapConfig.invokeVirtualMethod(SRCB_WITH_CONVERTER, bootstrapBuilder, - readBootstrapConfig.loadClass(type), + readBootstrapConfig.loadClassFromTCCL(type), readBootstrapConfig.load(100), readBootstrapConfig.readStaticField(descriptor)); } - readConfig.invokeVirtualMethod(SRCB_WITH_CONVERTER, runTimeBuilder, readConfig.loadClass(type), + readConfig.invokeVirtualMethod(SRCB_WITH_CONVERTER, runTimeBuilder, readConfig.loadClassFromTCCL(type), readConfig.load(100), readConfig.readStaticField(descriptor)); } } @@ -1596,12 +1596,12 @@ private FieldDescriptor getOrCreateConverterInstance(Field field, ConverterType // TODO: temporary until type param inference is in if (convertWith == HyphenateEnumConverter.class.asSubclass(Converter.class)) { converter = converterSetup.newInstance(MethodDescriptor.ofConstructor(convertWith, Class.class), - converterSetup.loadClass(type.getLeafType())); + converterSetup.loadClassFromTCCL(type.getLeafType())); } else { converter = converterSetup.newInstance(MethodDescriptor.ofConstructor(convertWith)); } } else { - final ResultHandle clazzHandle = converterSetup.loadClass(leaf.getLeafType()); + final ResultHandle clazzHandle = converterSetup.loadClassFromTCCL(leaf.getLeafType()); converter = converterSetup.invokeVirtualMethod(SRC_GET_CONVERTER, clinitConfig, clazzHandle); storeConverter = true; } @@ -1610,7 +1610,7 @@ private FieldDescriptor getOrCreateConverterInstance(Field field, ConverterType final ResultHandle nestedConv = instanceCache .get(getOrCreateConverterInstance(field, arrayOf.getElementType())); converter = converterSetup.invokeStaticMethod(CONVS_NEW_ARRAY_CONVERTER, nestedConv, - converterSetup.loadClass(arrayOf.getArrayType())); + converterSetup.loadClassFromTCCL(arrayOf.getArrayType())); } else if (type instanceof CollectionOf) { final CollectionOf collectionOf = (CollectionOf) type; final ResultHandle nestedConv = instanceCache diff --git a/core/deployment/src/main/java/io/quarkus/deployment/dev/RuntimeUpdatesProcessor.java b/core/deployment/src/main/java/io/quarkus/deployment/dev/RuntimeUpdatesProcessor.java index aad0018167243..6576169a626ae 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/dev/RuntimeUpdatesProcessor.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/dev/RuntimeUpdatesProcessor.java @@ -472,7 +472,8 @@ public boolean doScan(boolean userInitiated, boolean forceRestart) { for (Path i : changedClassResults.changedClasses) { byte[] bytes = Files.readAllBytes(i); String name = indexer.index(new ByteArrayInputStream(bytes)).name().toString(); - defs[index++] = new ClassDefinition(Thread.currentThread().getContextClassLoader().loadClass(name), + defs[index++] = new ClassDefinition( + Thread.currentThread().getContextClassLoader().loadClass(name), classTransformers.apply(name, bytes)); } Index current = indexer.complete(); diff --git a/core/deployment/src/main/java/io/quarkus/deployment/proxy/ProxyFactory.java b/core/deployment/src/main/java/io/quarkus/deployment/proxy/ProxyFactory.java index 54a5125d95132..db67bdaed9e22 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/proxy/ProxyFactory.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/proxy/ProxyFactory.java @@ -220,14 +220,14 @@ private void doDefineClass() { if (methodInfo.getParameterCount() > 0) { Parameter[] methodInfoParameters = methodInfo.getParameters(); for (int i = 0; i < methodInfo.getParameterCount(); i++) { - ResultHandle paramClass = mc.loadClass(methodInfoParameters[i].getType()); + ResultHandle paramClass = mc.loadClassFromTCCL(methodInfoParameters[i].getType()); mc.writeArrayValue(getDeclaredMethodParamsArray, i, paramClass); } } ResultHandle method = mc.invokeVirtualMethod( MethodDescriptor.ofMethod(Class.class, "getDeclaredMethod", Method.class, String.class, Class[].class), - mc.loadClass(methodInfo.getDeclaringClass()), mc.load(methodInfo.getName()), + mc.loadClassFromTCCL(methodInfo.getDeclaringClass()), mc.load(methodInfo.getName()), getDeclaredMethodParamsArray); // result = invocationHandler.invoke(...) diff --git a/core/deployment/src/main/java/io/quarkus/deployment/recording/BytecodeRecorderImpl.java b/core/deployment/src/main/java/io/quarkus/deployment/recording/BytecodeRecorderImpl.java index 02b65f5e4ffbd..0cfef746ae16e 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/recording/BytecodeRecorderImpl.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/recording/BytecodeRecorderImpl.java @@ -789,7 +789,7 @@ ResultHandle doLoad(MethodContext context, MethodCreator method, ResultHandle ar return new DeferredParameter() { @Override ResultHandle doLoad(MethodContext context, MethodCreator method, ResultHandle array) { - return method.loadClass((Class) param); + return method.loadClassFromTCCL((Class) param); } }; } @@ -1766,7 +1766,7 @@ ResultHandle doLoad(MethodContext context, MethodCreator valueMethod, ResultHand retValue = valueMethod.load(value.asChar()); break; case CLASS: - retValue = valueMethod.loadClass(value.asClass().toString()); + retValue = valueMethod.loadClassFromTCCL(value.asClass().toString()); break; case ARRAY: retValue = arrayValue(value, valueMethod, method, annotationClass); @@ -1793,7 +1793,7 @@ static ResultHandle arrayValue(AnnotationValue value, BytecodeCreator valueMetho Type[] classArray = value.asClassArray(); retValue = valueMethod.newArray(componentType(method), valueMethod.load(classArray.length)); for (int i = 0; i < classArray.length; i++) { - valueMethod.writeArrayValue(retValue, i, valueMethod.loadClass(classArray[i].name().toString())); + valueMethod.writeArrayValue(retValue, i, valueMethod.loadClassFromTCCL(classArray[i].name().toString())); } break; case STRING: diff --git a/core/deployment/src/main/java/io/quarkus/deployment/steps/MainClassBuildStep.java b/core/deployment/src/main/java/io/quarkus/deployment/steps/MainClassBuildStep.java index 8483cf713e1f0..162ff3880dca8 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/steps/MainClassBuildStep.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/steps/MainClassBuildStep.java @@ -414,7 +414,7 @@ private void generateMainForQuarkusApplication(String quarkusApplicationClassNam MethodCreator mv = file.getMethodCreator("main", void.class, String[].class); mv.setModifiers(Modifier.PUBLIC | Modifier.STATIC); mv.invokeStaticMethod(MethodDescriptor.ofMethod(Quarkus.class, "run", void.class, Class.class, String[].class), - mv.loadClass(quarkusApplicationClassName), + mv.loadClassFromTCCL(quarkusApplicationClassName), mv.getMethodParam(0)); mv.returnValue(null); file.close(); diff --git a/core/deployment/src/main/java/io/quarkus/deployment/steps/NativeImageAutoFeatureStep.java b/core/deployment/src/main/java/io/quarkus/deployment/steps/NativeImageAutoFeatureStep.java index 40263647a89b7..9e7a72807f66e 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/steps/NativeImageAutoFeatureStep.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/steps/NativeImageAutoFeatureStep.java @@ -56,7 +56,7 @@ public class NativeImageAutoFeatureStep { - private static final String GRAAL_AUTOFEATURE = "io/quarkus/runner/AutoFeature"; + private static final String GRAAL_AUTOFEATURE = "io.quarkus.runner.AutoFeature"; private static final MethodDescriptor VERSION_CURRENT = ofMethod(Version.class, "getCurrent", Version.class); private static final MethodDescriptor VERSION_COMPARE_TO = ofMethod(Version.class, "compareTo", int.class, int[].class); @@ -152,14 +152,14 @@ public void write(String s, byte[] bytes) { } ResultHandle imageSingleton = overallCatch.invokeStaticMethod(IMAGE_SINGLETONS_LOOKUP, - overallCatch.loadClass("org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport")); + overallCatch.loadClassFromTCCL("org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport")); overallCatch.invokeInterfaceMethod(BUILD_TIME_INITIALIZATION, imageSingleton, overallCatch.load(""), // empty string means everything overallCatch.load("Quarkus build time init default")); if (!runtimeInitializedClassBuildItems.isEmpty()) { - ResultHandle thisClass = overallCatch.loadClass(GRAAL_AUTOFEATURE); + ResultHandle thisClass = overallCatch.loadClassFromTCCL(GRAAL_AUTOFEATURE); ResultHandle cl = overallCatch.invokeVirtualMethod(ofMethod(Class.class, "getClassLoader", ClassLoader.class), thisClass); ResultHandle classes = overallCatch.newArray(Class.class, @@ -191,7 +191,7 @@ public void write(String s, byte[] bytes) { // hack in reinitialization of process info classes if (!runtimeReinitializedClassBuildItems.isEmpty()) { - ResultHandle thisClass = overallCatch.loadClass(GRAAL_AUTOFEATURE); + ResultHandle thisClass = overallCatch.loadClassFromTCCL(GRAAL_AUTOFEATURE); ResultHandle cl = overallCatch.invokeVirtualMethod(ofMethod(Class.class, "getClassLoader", ClassLoader.class), thisClass); ResultHandle quarkus = overallCatch.load("Quarkus"); @@ -208,7 +208,7 @@ public void write(String s, byte[] bytes) { } if (!proxies.isEmpty()) { - ResultHandle proxySupportClass = overallCatch.loadClass(DYNAMIC_PROXY_REGISTRY); + ResultHandle proxySupportClass = overallCatch.loadClassFromTCCL(DYNAMIC_PROXY_REGISTRY); ResultHandle proxySupport = overallCatch.invokeStaticMethod( IMAGE_SINGLETONS_LOOKUP, proxySupportClass); @@ -229,7 +229,7 @@ public void write(String s, byte[] bytes) { /* Resource includes and excludes */ if (!resourcePatterns.isEmpty()) { ResultHandle resourcesRegistrySingleton = overallCatch.invokeStaticMethod(IMAGE_SINGLETONS_LOOKUP, - overallCatch.loadClass("com.oracle.svm.core.configure.ResourcesRegistry")); + overallCatch.loadClassFromTCCL("com.oracle.svm.core.configure.ResourcesRegistry")); TryBlock tc = overallCatch.tryBlock(); ResultHandle currentThread = tc.invokeStaticMethod(ofMethod(Thread.class, "currentThread", Thread.class)); @@ -250,7 +250,7 @@ public void write(String s, byte[] bytes) { greaterThan21_2.load("org.graalvm.nativeimage.impl.ConfigurationCondition"), greaterThan21_2.load(false), tccl); greaterThan21_2.writeArrayValue(argTypes, 0, configurationConditionClass); - greaterThan21_2.writeArrayValue(argTypes, 1, greaterThan21_2.loadClass(String.class)); + greaterThan21_2.writeArrayValue(argTypes, 1, greaterThan21_2.loadClassFromTCCL(String.class)); greaterThan21_2.assign(resourcesArgTypes, argTypes); ResultHandle args = greaterThan21_2.newArray(Object.class, greaterThan21_2.load(2)); ResultHandle alwaysTrueMethod = greaterThan21_2.invokeStaticMethod(LOOKUP_METHOD, @@ -267,17 +267,17 @@ public void write(String s, byte[] bytes) { /* GraalVM < 21.3 */ BytecodeCreator smallerThan21_3 = graalVm21_3Test.falseBranch(); argTypes = smallerThan21_3.newArray(Class.class, smallerThan21_3.load(1)); - smallerThan21_3.writeArrayValue(argTypes, 0, smallerThan21_3.loadClass(String.class)); + smallerThan21_3.writeArrayValue(argTypes, 0, smallerThan21_3.loadClassFromTCCL(String.class)); smallerThan21_3.assign(resourcesArgTypes, argTypes); args = smallerThan21_3.newArray(Object.class, smallerThan21_3.load(1)); smallerThan21_3.assign(resourcesArgs, args); smallerThan21_3.assign(argsIndex, smallerThan21_3.load(0)); ResultHandle ignoreResourcesMethod = tc.invokeStaticMethod(LOOKUP_METHOD, - tc.loadClass("com.oracle.svm.core.configure.ResourcesRegistry"), + tc.loadClassFromTCCL("com.oracle.svm.core.configure.ResourcesRegistry"), tc.load("ignoreResources"), resourcesArgTypes); ResultHandle addResourcesMethod = tc.invokeStaticMethod(LOOKUP_METHOD, - tc.loadClass("com.oracle.svm.core.configure.ResourcesRegistry"), + tc.loadClassFromTCCL("com.oracle.svm.core.configure.ResourcesRegistry"), tc.load("addResources"), resourcesArgTypes); for (NativeImageResourcePatternsBuildItem resourcePatternsItem : resourcePatterns) { @@ -303,20 +303,20 @@ public void write(String s, byte[] bytes) { AssignableResultHandle registerMethod = overallCatch.createVariable(Method.class); AssignableResultHandle locClass = overallCatch.createVariable(Class.class); TryBlock locTryBlock = overallCatch.tryBlock(); - ResultHandle legacyLocClass = locTryBlock.loadClass(LEGACY_LOCALIZATION_FEATURE); + ResultHandle legacyLocClass = locTryBlock.loadClassFromTCCL(LEGACY_LOCALIZATION_FEATURE); locTryBlock.assign(locClass, legacyLocClass); - ResultHandle legacyParams = locTryBlock.marshalAsArray(Class.class, locTryBlock.loadClass(String.class)); + ResultHandle legacyParams = locTryBlock.marshalAsArray(Class.class, locTryBlock.loadClassFromTCCL(String.class)); ResultHandle legacyRegisterMethod = locTryBlock.invokeVirtualMethod( ofMethod(Class.class, "getDeclaredMethod", Method.class, String.class, Class[].class), legacyLocClass, locTryBlock.load("addBundleToCache"), legacyParams); locTryBlock.assign(registerMethod, legacyRegisterMethod); - CatchBlockCreator locCatchBlock = locTryBlock.addCatch(NoClassDefFoundError.class); - ResultHandle newLocClass = locCatchBlock.loadClass(LOCALIZATION_FEATURE); + CatchBlockCreator locCatchBlock = locTryBlock.addCatch(ClassNotFoundException.class); + ResultHandle newLocClass = locCatchBlock.loadClassFromTCCL(LOCALIZATION_FEATURE); locCatchBlock.assign(locClass, newLocClass); - ResultHandle newParams = locCatchBlock.marshalAsArray(Class.class, locCatchBlock.loadClass(String.class)); + ResultHandle newParams = locCatchBlock.marshalAsArray(Class.class, locCatchBlock.loadClassFromTCCL(String.class)); ResultHandle newRegisterMethod = locCatchBlock.invokeVirtualMethod( ofMethod(Class.class, "getDeclaredMethod", Method.class, String.class, Class[].class), newLocClass, locCatchBlock.load("prepareBundle"), newParams); @@ -402,7 +402,7 @@ public void write(String s, byte[] bytes) { ResultHandle paramArray = tc.newArray(Class.class, tc.load(ctor.getParams().length)); for (int i = 0; i < ctor.getParams().length; ++i) { String type = ctor.getParams()[i]; - tc.writeArrayValue(paramArray, i, tc.loadClass(type)); + tc.writeArrayValue(paramArray, i, tc.loadClassFromTCCL(type)); } ResultHandle fhandle = tc.invokeVirtualMethod( ofMethod(Class.class, "getDeclaredConstructor", Constructor.class, Class[].class), clazz, @@ -423,7 +423,7 @@ public void write(String s, byte[] bytes) { ResultHandle paramArray = tc.newArray(Class.class, tc.load(method.getParams().length)); for (int i = 0; i < method.getParams().length; ++i) { String type = method.getParams()[i]; - tc.writeArrayValue(paramArray, i, tc.loadClass(type)); + tc.writeArrayValue(paramArray, i, tc.loadClassFromTCCL(type)); } ResultHandle fhandle = tc.invokeVirtualMethod( ofMethod(Class.class, "getDeclaredMethod", Method.class, String.class, Class[].class), clazz, @@ -527,7 +527,7 @@ public void write(String s, byte[] bytes) { CatchBlockCreator print = overallCatch.addCatch(Throwable.class); print.invokeVirtualMethod(ofMethod(Throwable.class, "printStackTrace", void.class), print.getCaughtException()); - beforeAn.loadClass("io.quarkus.runner.ApplicationImpl"); + beforeAn.loadClassFromTCCL("io.quarkus.runner.ApplicationImpl"); beforeAn.returnValue(null); file.close(); @@ -540,7 +540,7 @@ private MethodDescriptor createRegisterSerializationForClassMethod(ClassCreator TryBlock requiredCatch = requiredFeatures.tryBlock(); ResultHandle serializationFeatureClass = requiredCatch - .loadClass("com.oracle.svm.reflect.serialize.hosted.SerializationFeature"); + .loadClassFromTCCL("com.oracle.svm.reflect.serialize.hosted.SerializationFeature"); ResultHandle requiredFeaturesList = requiredCatch.invokeStaticMethod( ofMethod("java.util.Collections", "singletonList", List.class, Object.class), serializationFeatureClass); @@ -569,7 +569,7 @@ private MethodDescriptor createRegisterSerializationForClassMethod(ClassCreator greaterThan21_3.load("org.graalvm.nativeimage.hosted.RuntimeSerialization"), greaterThan21_3.load(false), tccl); ResultHandle registerArgTypes = greaterThan21_3.newArray(Class.class, greaterThan21_3.load(1)); - greaterThan21_3.writeArrayValue(registerArgTypes, 0, greaterThan21_3.loadClass(Class[].class)); + greaterThan21_3.writeArrayValue(registerArgTypes, 0, greaterThan21_3.loadClassFromTCCL(Class[].class)); ResultHandle registerLookupMethod = greaterThan21_3.invokeStaticMethod(LOOKUP_METHOD, runtimeSerializationClass, greaterThan21_3.load("register"), registerArgTypes); ResultHandle registerArgs = greaterThan21_3.newArray(Object.class, greaterThan21_3.load(1)); @@ -592,8 +592,8 @@ private MethodDescriptor createRegisterSerializationForClassMethod(ClassCreator serializationRegistryClass); ResultHandle addReflectionsLookupArgs = tc.newArray(Class.class, tc.load(2)); - tc.writeArrayValue(addReflectionsLookupArgs, 0, tc.loadClass(Class.class)); - tc.writeArrayValue(addReflectionsLookupArgs, 1, tc.loadClass(Class.class)); + tc.writeArrayValue(addReflectionsLookupArgs, 0, tc.loadClassFromTCCL(Class.class)); + tc.writeArrayValue(addReflectionsLookupArgs, 1, tc.loadClassFromTCCL(Class.class)); ResultHandle addReflectionsLookupMethod = tc.invokeStaticMethod(LOOKUP_METHOD, addReflectionsClass, tc.load("addReflections"), addReflectionsLookupArgs); @@ -616,7 +616,8 @@ private MethodDescriptor createRegisterSerializationForClassMethod(ClassCreator ifIsExternalizable.writeArrayValue(array1, 0, classClass); ResultHandle externalizableLookupMethod = ifIsExternalizable.invokeStaticMethod(LOOKUP_METHOD, - ifIsExternalizable.loadClass(ObjectStreamClass.class), ifIsExternalizable.load("getExternalizableConstructor"), + ifIsExternalizable.loadClassFromTCCL(ObjectStreamClass.class), + ifIsExternalizable.load("getExternalizableConstructor"), array1); ResultHandle array2 = ifIsExternalizable.newArray(Object.class, tc.load(1)); @@ -665,7 +666,7 @@ private MethodDescriptor createRegisterSerializationForClassMethod(ClassCreator newSerializationConstructor); ResultHandle getConstructorAccessor = tc.invokeStaticMethod( - LOOKUP_METHOD, tc.loadClass(Constructor.class), tc.load("getConstructorAccessor"), + LOOKUP_METHOD, tc.loadClassFromTCCL(Constructor.class), tc.load("getConstructorAccessor"), tc.newArray(Class.class, tc.load(0))); ResultHandle accessor = tc.invokeVirtualMethod( diff --git a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ClassConfigPropertiesUtil.java b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ClassConfigPropertiesUtil.java index 1263eb50bf364..45d844d68999c 100644 --- a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ClassConfigPropertiesUtil.java +++ b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ClassConfigPropertiesUtil.java @@ -352,7 +352,7 @@ private ResultHandle populateConfigObject(ClassLoader classLoader, ClassInfo con MethodDescriptor.ofMethod(Config.class, "getOptionalValue", Optional.class, String.class, Class.class), mpConfig, methodCreator.load(fullConfigName), - methodCreator.loadClass(genericType.name().toString())); + methodCreator.loadClassFromTCCL(genericType.name().toString())); createWriteValue(methodCreator, configObject, field, setter, useFieldAccess, setterValue); } else { // convert the String value and populate an Optional with it diff --git a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ConfigPropertiesUtil.java b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ConfigPropertiesUtil.java index a6c78c961a25f..2490c0c372933 100644 --- a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ConfigPropertiesUtil.java +++ b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/ConfigPropertiesUtil.java @@ -60,13 +60,13 @@ static ResultHandle createReadMandatoryValueAndConvertIfNeeded(String propertyNa Class.class, IntFunction.class), smallryeConfig, bytecodeCreator.load(propertyName), - bytecodeCreator.loadClass(determineSingleGenericType(resultType, declaringClass).name().toString()), + bytecodeCreator.loadClassFromTCCL(determineSingleGenericType(resultType, declaringClass).name().toString()), collectionFactory); } else { return bytecodeCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(Config.class, "getValue", Object.class, String.class, Class.class), config, bytecodeCreator.load(propertyName), - bytecodeCreator.loadClass(resultType.name().toString())); + bytecodeCreator.loadClassFromTCCL(resultType.name().toString())); } } @@ -101,14 +101,14 @@ static ReadOptionalResponse createReadOptionalValueAndConvertIfNeeded(String pro Class.class, IntFunction.class), smallryeConfig, bytecodeCreator.load(propertyName), - bytecodeCreator.loadClass(determineSingleGenericType(resultType, declaringClass).name().toString()), + bytecodeCreator.loadClassFromTCCL(determineSingleGenericType(resultType, declaringClass).name().toString()), collectionFactory); } else { optionalValue = bytecodeCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(Config.class, "getOptionalValue", Optional.class, String.class, Class.class), config, bytecodeCreator.load(propertyName), - bytecodeCreator.loadClass(resultType.name().toString())); + bytecodeCreator.loadClassFromTCCL(resultType.name().toString())); } ResultHandle isPresent = bytecodeCreator diff --git a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/InterfaceConfigPropertiesUtil.java b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/InterfaceConfigPropertiesUtil.java index b609af73d8949..63110d34b641b 100644 --- a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/InterfaceConfigPropertiesUtil.java +++ b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/InterfaceConfigPropertiesUtil.java @@ -188,7 +188,7 @@ private String generateImplementationForInterfaceConfigPropertiesRec(ClassInfo o ResultHandle configInstanceHandle = methodCreator.invokeInterfaceMethod( ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, methodCreator.loadClass(Config.class), + arcContainer, methodCreator.loadClassFromTCCL(Config.class), methodCreator.newArray(Annotation.class, 0)); ResultHandle config = methodCreator.invokeInterfaceMethod( ofMethod(InstanceHandle.class, "get", Object.class), configInstanceHandle); @@ -227,7 +227,7 @@ private String generateImplementationForInterfaceConfigPropertiesRec(ClassInfo o String.class, Class.class), config, methodCreator.load(fullConfigName), - methodCreator.loadClass(genericType.name().toString())); + methodCreator.loadClassFromTCCL(genericType.name().toString())); methodCreator.returnValue(result); } else { // convert the String value and populate an Optional with it diff --git a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/YamlListObjectHandler.java b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/YamlListObjectHandler.java index 87b0c87b8cc3c..48cf6a06075ad 100644 --- a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/YamlListObjectHandler.java +++ b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/configproperties/YamlListObjectHandler.java @@ -105,7 +105,7 @@ public ResultHandle handle(Member member, MethodCreator configPopulator, ResultH wrapperClassName.replace('.', '/'))) .build()) { MethodCreator getClazz = cc.getMethodCreator("getClazz", Class.class).setModifiers(Modifier.PROTECTED); - getClazz.returnValue(getClazz.loadClass(wrapperClassName)); + getClazz.returnValue(getClazz.loadClassFromTCCL(wrapperClassName)); // generate the getFieldNameMap method by searching for fields annotated with @ConfigProperty List configPropertyInstances = classInfo.annotations().get(DotNames.CONFIG_PROPERTY); diff --git a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/staticmethods/InterceptedStaticMethodsProcessor.java b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/staticmethods/InterceptedStaticMethodsProcessor.java index 89e6c51ff2222..d4473748aa2f0 100644 --- a/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/staticmethods/InterceptedStaticMethodsProcessor.java +++ b/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/staticmethods/InterceptedStaticMethodsProcessor.java @@ -293,13 +293,13 @@ private String implementInit(IndexView index, ClassOutput classOutput, ClassCrea // 2. Method method = Reflections.findMethod(...) ResultHandle[] paramsHandles = new ResultHandle[3]; - paramsHandles[0] = init.loadClass(method.declaringClass().name().toString()); + paramsHandles[0] = init.loadClassFromTCCL(method.declaringClass().name().toString()); paramsHandles[1] = init.load(method.name()); if (!method.parameters().isEmpty()) { ResultHandle paramsArray = init.newArray(Class.class, init.load(method.parameters().size())); for (ListIterator iterator = method.parameters().listIterator(); iterator.hasNext();) { init.writeArrayValue(paramsArray, iterator.nextIndex(), - init.loadClass(iterator.next().name().toString())); + init.loadClassFromTCCL(iterator.next().name().toString())); } paramsHandles[2] = paramsArray; } else { diff --git a/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java b/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java index 151b329722e60..8c8f677d92561 100755 --- a/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java +++ b/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java @@ -276,7 +276,7 @@ void generateCustomizer(BuildProducer generatedBeans, customize.load(jacksonModule.getName())); for (JacksonModuleBuildItem.Item item : jacksonModule.getItems()) { - ResultHandle targetClass = customize.loadClass(item.getTargetClassName()); + ResultHandle targetClass = customize.loadClassFromTCCL(item.getTargetClassName()); String serializerClassName = item.getSerializerClassName(); if (serializerClassName != null && !serializerClassName.isEmpty()) { diff --git a/extensions/panache/hibernate-orm-rest-data-panache/deployment/src/main/java/io/quarkus/hibernate/orm/rest/data/panache/deployment/RepositoryDataAccessImplementor.java b/extensions/panache/hibernate-orm-rest-data-panache/deployment/src/main/java/io/quarkus/hibernate/orm/rest/data/panache/deployment/RepositoryDataAccessImplementor.java index ae3cd68ed94e3..88ef1cbe9480e 100644 --- a/extensions/panache/hibernate-orm-rest-data-panache/deployment/src/main/java/io/quarkus/hibernate/orm/rest/data/panache/deployment/RepositoryDataAccessImplementor.java +++ b/extensions/panache/hibernate-orm-rest-data-panache/deployment/src/main/java/io/quarkus/hibernate/orm/rest/data/panache/deployment/RepositoryDataAccessImplementor.java @@ -111,7 +111,7 @@ private ResultHandle getRepositoryInstance(BytecodeCreator creator) { ResultHandle arcContainer = creator.invokeStaticMethod(ofMethod(Arc.class, "container", ArcContainer.class)); ResultHandle instanceHandle = creator.invokeInterfaceMethod( ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, creator.loadClass(repositoryClassName), creator.newArray(Annotation.class, 0)); + arcContainer, creator.loadClassFromTCCL(repositoryClassName), creator.newArray(Annotation.class, 0)); ResultHandle instance = creator.invokeInterfaceMethod( ofMethod(InstanceHandle.class, "get", Object.class), instanceHandle); diff --git a/extensions/panache/mongodb-rest-data-panache/deployment/src/main/java/io/quarkus/mongodb/rest/data/panache/deployment/RepositoryDataAccessImplementor.java b/extensions/panache/mongodb-rest-data-panache/deployment/src/main/java/io/quarkus/mongodb/rest/data/panache/deployment/RepositoryDataAccessImplementor.java index b8e072ffff3a5..b65b30cf2b0e2 100644 --- a/extensions/panache/mongodb-rest-data-panache/deployment/src/main/java/io/quarkus/mongodb/rest/data/panache/deployment/RepositoryDataAccessImplementor.java +++ b/extensions/panache/mongodb-rest-data-panache/deployment/src/main/java/io/quarkus/mongodb/rest/data/panache/deployment/RepositoryDataAccessImplementor.java @@ -86,7 +86,7 @@ private ResultHandle getRepositoryInstance(BytecodeCreator creator) { ResultHandle arcContainer = creator.invokeStaticMethod(ofMethod(Arc.class, "container", ArcContainer.class)); ResultHandle instanceHandle = creator.invokeInterfaceMethod( ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, creator.loadClass(repositoryClassName), creator.newArray(Annotation.class, 0)); + arcContainer, creator.loadClassFromTCCL(repositoryClassName), creator.newArray(Annotation.class, 0)); ResultHandle instance = creator.invokeInterfaceMethod( ofMethod(InstanceHandle.class, "get", Object.class), instanceHandle); diff --git a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/UpdateMethodImplementor.java b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/UpdateMethodImplementor.java index bd9bdab09ac90..d221b32e3ffd1 100644 --- a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/UpdateMethodImplementor.java +++ b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/UpdateMethodImplementor.java @@ -178,7 +178,7 @@ private ResultHandle getUpdateExecutor(BytecodeCreator creator) { ResultHandle arcContainer = creator.invokeStaticMethod(ofMethod(Arc.class, "container", ArcContainer.class)); ResultHandle instanceHandle = creator.invokeInterfaceMethod( ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, creator.loadClass(UpdateExecutor.class), creator.newArray(Annotation.class, 0)); + arcContainer, creator.loadClassFromTCCL(UpdateExecutor.class), creator.newArray(Annotation.class, 0)); ResultHandle instance = creator.invokeInterfaceMethod( ofMethod(InstanceHandle.class, "get", Object.class), instanceHandle); diff --git a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/HalMethodImplementor.java b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/HalMethodImplementor.java index 02fec9a314b35..5ffeec55fa2ee 100644 --- a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/HalMethodImplementor.java +++ b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/HalMethodImplementor.java @@ -41,7 +41,7 @@ protected ResultHandle wrapHalEntities(BytecodeCreator creator, ResultHandle ent String collectionName) { return creator.newInstance( MethodDescriptor.ofConstructor(HalCollectionWrapper.class, Collection.class, Class.class, String.class), - entities, creator.loadClass(entityType), + entities, creator.loadClassFromTCCL(entityType), creator.load(collectionName)); } } diff --git a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/UpdateHalMethodImplementor.java b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/UpdateHalMethodImplementor.java index b9a2be71da764..ec44629f8e9bb 100644 --- a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/UpdateHalMethodImplementor.java +++ b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/methods/hal/UpdateHalMethodImplementor.java @@ -173,7 +173,7 @@ private ResultHandle getUpdateExecutor(BytecodeCreator creator) { ResultHandle arcContainer = creator.invokeStaticMethod(ofMethod(Arc.class, "container", ArcContainer.class)); ResultHandle instanceHandle = creator.invokeInterfaceMethod( ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, creator.loadClass(UpdateExecutor.class), creator.newArray(Annotation.class, 0)); + arcContainer, creator.loadClassFromTCCL(UpdateExecutor.class), creator.newArray(Annotation.class, 0)); ResultHandle instance = creator.invokeInterfaceMethod( ofMethod(InstanceHandle.class, "get", Object.class), instanceHandle); diff --git a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/utils/ResponseImplementor.java b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/utils/ResponseImplementor.java index 399e39af46019..71543ab82934d 100644 --- a/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/utils/ResponseImplementor.java +++ b/extensions/panache/rest-data-panache/deployment/src/main/java/io/quarkus/rest/data/panache/deployment/utils/ResponseImplementor.java @@ -53,7 +53,7 @@ public static ResultHandle getEntityUrl(BytecodeCreator creator, ResultHandle en ResultHandle instance = creator.invokeInterfaceMethod( MethodDescriptor.ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, creator.loadClass(ResourceLinksProvider.class), creator.loadNull()); + arcContainer, creator.loadClassFromTCCL(ResourceLinksProvider.class), creator.loadNull()); ResultHandle linksProvider = creator.invokeInterfaceMethod( MethodDescriptor.ofMethod(InstanceHandle.class, "get", Object.class), instance); diff --git a/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteDevConsoleRecorder.java b/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteDevConsoleRecorder.java index 6953cf9fc8415..820c34bdffb81 100644 --- a/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteDevConsoleRecorder.java +++ b/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteDevConsoleRecorder.java @@ -15,11 +15,18 @@ public class QuteDevConsoleRecorder { public void setupRenderer() { //setup the render handler that is used to handle the template //this is invoked from the deployment side + ClassLoader tccl = Thread.currentThread().getContextClassLoader(); DevConsoleManager.setGlobal(RENDER_HANDLER, new BiFunction() { @Override public String apply(String template, Object data) { - Engine engine = Arc.container().instance(Engine.class).get(); - return engine.getTemplate(template).render(data); + var old = Thread.currentThread().getContextClassLoader(); + try { + Thread.currentThread().setContextClassLoader(tccl); + Engine engine = Arc.container().instance(Engine.class).get(); + return engine.getTemplate(template).render(data); + } finally { + Thread.currentThread().setContextClassLoader(old); + } } }); } diff --git a/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteErrorPageSetup.java b/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteErrorPageSetup.java index 6ae56338da2a3..c6408c5a5605d 100644 --- a/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteErrorPageSetup.java +++ b/extensions/qute/runtime/src/main/java/io/quarkus/qute/runtime/devmode/QuteErrorPageSetup.java @@ -229,7 +229,8 @@ private int getLine(Object origin) { private int getLineCharacterStart(Object origin) { int lineCharacter = 0; try { - Method getLineCharacter = origin.getClass().getClassLoader().loadClass(ORIGIN).getMethod("getLineCharacterStart"); + Method getLineCharacter = origin.getClass().getClassLoader().loadClass(ORIGIN) + .getMethod("getLineCharacterStart"); lineCharacter = (int) getLineCharacter.invoke(origin); } catch (NoSuchMethodException | SecurityException | ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { diff --git a/extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java b/extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java index bc8aa1b8cec09..2498aca53363f 100644 --- a/extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java +++ b/extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java @@ -725,7 +725,7 @@ void implementInvoke(HandlerDescriptor descriptor, BeanInfo bean, MethodInfo met ResultHandle failureClass = invoke.invokeVirtualMethod(Methods.GET_CLASS, failure); BytecodeCreator failureTypeIsNotAssignable = invoke .ifFalse(invoke.invokeVirtualMethod(Methods.IS_ASSIGNABLE_FROM, - invoke.loadClass(failureType.name().toString()), failureClass)) + invoke.loadClassFromTCCL(failureType.name().toString()), failureClass)) .trueBranch(); failureTypeIsNotAssignable.invokeInterfaceMethod(Methods.NEXT, routingContext); failureTypeIsNotAssignable.returnValue(null); @@ -1424,7 +1424,7 @@ public ResultHandle get(MethodInfo method, Type paramType, BytecodeCreator bodyNotNull = bodyIfNotNull.trueBranch(); bodyNotNull.assign(ret, bodyNotNull.invokeVirtualMethod(Methods.JSON_OBJECT_MAP_TO, bodyAsJson, - invoke.loadClass(paramType.name().toString()))); + bodyNotNull.loadClassFromTCCL(paramType.name().toString()))); BytecodeCreator bodyNull = bodyIfNotNull.falseBranch(); bodyNull.assign(ret, bodyNull.loadNull()); return ret; diff --git a/extensions/resteasy-classic/rest-client/deployment/src/main/java/io/quarkus/restclient/deployment/RestClientProcessor.java b/extensions/resteasy-classic/rest-client/deployment/src/main/java/io/quarkus/restclient/deployment/RestClientProcessor.java index 9bb233bad8e26..a8e322340206d 100644 --- a/extensions/resteasy-classic/rest-client/deployment/src/main/java/io/quarkus/restclient/deployment/RestClientProcessor.java +++ b/extensions/resteasy-classic/rest-client/deployment/src/main/java/io/quarkus/restclient/deployment/RestClientProcessor.java @@ -249,14 +249,14 @@ void processInterfaces( configurator.scope(scope); configurator.creator(m -> { // return new RestClientBase(proxyType, baseUri).create(); - ResultHandle interfaceHandle = m.loadClass(restClientName.toString()); + ResultHandle interfaceHandle = m.loadClassFromTCCL(restClientName.toString()); ResultHandle baseUriHandle = m.load(getAnnotationParameter(entry.getValue(), "baseUri")); ResultHandle configKeyHandle = configKey.isPresent() ? m.load(configKey.get()) : m.loadNull(); ResultHandle annotationProvidersHandle; if (!annotationProviders.isEmpty()) { annotationProvidersHandle = m.newArray(Class.class, annotationProviders.size()); for (int i = 0; i < annotationProviders.size(); i++) { - m.writeArrayValue(annotationProvidersHandle, i, m.loadClass(annotationProviders.get(i))); + m.writeArrayValue(annotationProvidersHandle, i, m.loadClassFromTCCL(annotationProviders.get(i))); } } else { annotationProvidersHandle = m.loadNull(); diff --git a/extensions/resteasy-classic/rest-client/runtime/src/main/java/io/quarkus/restclient/runtime/RestClientRecorder.java b/extensions/resteasy-classic/rest-client/runtime/src/main/java/io/quarkus/restclient/runtime/RestClientRecorder.java index 93f61f897b3ba..8cf6d8be030b4 100644 --- a/extensions/resteasy-classic/rest-client/runtime/src/main/java/io/quarkus/restclient/runtime/RestClientRecorder.java +++ b/extensions/resteasy-classic/rest-client/runtime/src/main/java/io/quarkus/restclient/runtime/RestClientRecorder.java @@ -63,7 +63,8 @@ private static void registerProviders(ResteasyProviderFactory providerFactory, S for (String providerToRegister : providersToRegister) { try { providerFactory - .registerProvider(Thread.currentThread().getContextClassLoader().loadClass(providerToRegister.trim()), + .registerProvider( + Thread.currentThread().getContextClassLoader().loadClass(providerToRegister.trim()), isBuiltIn); } catch (ClassNotFoundException e) { throw new RuntimeException("Unable to find class for provider " + providerToRegister, e); diff --git a/extensions/resteasy-reactive/jaxrs-client-reactive/deployment/src/main/java/io/quarkus/jaxrs/client/reactive/deployment/JaxrsClientReactiveProcessor.java b/extensions/resteasy-reactive/jaxrs-client-reactive/deployment/src/main/java/io/quarkus/jaxrs/client/reactive/deployment/JaxrsClientReactiveProcessor.java index 83191b0cf23ea..372f2f24ced1c 100644 --- a/extensions/resteasy-reactive/jaxrs-client-reactive/deployment/src/main/java/io/quarkus/jaxrs/client/reactive/deployment/JaxrsClientReactiveProcessor.java +++ b/extensions/resteasy-reactive/jaxrs-client-reactive/deployment/src/main/java/io/quarkus/jaxrs/client/reactive/deployment/JaxrsClientReactiveProcessor.java @@ -529,11 +529,11 @@ private void createFieldFillerConstructor(AnnotationInstance partType, Type type } else if (type.kind() == CLASS) { genericType = ctor.newInstance( MethodDescriptor.ofConstructor(GenericType.class, java.lang.reflect.Type.class), - ctor.loadClass(type.asClassType().name().toString())); + ctor.loadClassFromTCCL(type.asClassType().name().toString())); } else if (type.kind() == ARRAY) { genericType = ctor.newInstance( MethodDescriptor.ofConstructor(GenericType.class, java.lang.reflect.Type.class), - ctor.loadClass(type.asArrayType().name().toString())); + ctor.loadClassFromTCCL(type.asArrayType().name().toString())); } else if (type.kind() == PRIMITIVE) { throw new IllegalArgumentException("Primitive types are not supported for multipart response mapping. " + "Please use a wrapper class instead"); @@ -1520,7 +1520,7 @@ private void addPojo(BytecodeCreator methodCreator, AssignableResultHandle multi methodCreator.invokeVirtualMethod(MethodDescriptor.ofMethod(QuarkusMultipartForm.class, "entity", QuarkusMultipartForm.class, String.class, Object.class, String.class, Class.class), multipartForm, methodCreator.load(field.name()), fieldValue, methodCreator.load(partType), - methodCreator.loadClass(field.type().name().toString()))); + methodCreator.loadClassFromTCCL(field.type().name().toString()))); } /** @@ -1892,12 +1892,12 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType String.class, Entity.class, Class.class), async, tryBlock.load(httpMethod), entity, - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } } else if (returnCategory == ReturnCategory.UNI || returnCategory == ReturnCategory.COROUTINE) { ResultHandle rx = tryBlock.invokeInterfaceMethod( MethodDescriptor.ofMethod(Invocation.Builder.class, "rx", RxInvoker.class, Class.class), - builder, tryBlock.loadClass(UniInvoker.class)); + builder, tryBlock.loadClassFromTCCL(UniInvoker.class)); ResultHandle uniInvoker = tryBlock.checkCast(rx, UniInvoker.class); // with entity if (genericReturnType != null) { @@ -1913,7 +1913,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType Uni.class, String.class, Entity.class, Class.class), uniInvoker, tryBlock.load(httpMethod), entity, - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } if (returnCategory == ReturnCategory.COROUTINE) { result = tryBlock.invokeStaticMethod( @@ -1924,7 +1924,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType } else if (returnCategory == ReturnCategory.MULTI) { ResultHandle rx = tryBlock.invokeInterfaceMethod( MethodDescriptor.ofMethod(Invocation.Builder.class, "rx", RxInvoker.class, Class.class), - builder, tryBlock.loadClass(MultiInvoker.class)); + builder, tryBlock.loadClassFromTCCL(MultiInvoker.class)); ResultHandle multiInvoker = tryBlock.checkCast(rx, MultiInvoker.class); // with entity if (genericReturnType != null) { @@ -1940,7 +1940,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType Object.class, String.class, Entity.class, Class.class), multiInvoker, tryBlock.load(httpMethod), entity, - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } } else { if (genericReturnType != null) { @@ -1954,7 +1954,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType MethodDescriptor.ofMethod(Invocation.Builder.class, "method", Object.class, String.class, Entity.class, Class.class), builder, tryBlock.load(httpMethod), entity, - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } } } else { @@ -1975,12 +1975,12 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType String.class, Class.class), async, tryBlock.load(httpMethod), - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } } else if (returnCategory == ReturnCategory.UNI || returnCategory == ReturnCategory.COROUTINE) { ResultHandle rx = tryBlock.invokeInterfaceMethod( MethodDescriptor.ofMethod(Invocation.Builder.class, "rx", RxInvoker.class, Class.class), - builder, tryBlock.loadClass(UniInvoker.class)); + builder, tryBlock.loadClassFromTCCL(UniInvoker.class)); ResultHandle uniInvoker = tryBlock.checkCast(rx, UniInvoker.class); if (genericReturnType != null) { result = tryBlock.invokeVirtualMethod( @@ -1994,7 +1994,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType Uni.class, String.class, Class.class), uniInvoker, tryBlock.load(httpMethod), - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } if (returnCategory == ReturnCategory.COROUTINE) { result = tryBlock.invokeStaticMethod( @@ -2005,7 +2005,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType } else if (returnCategory == ReturnCategory.MULTI) { ResultHandle rx = tryBlock.invokeInterfaceMethod( MethodDescriptor.ofMethod(Invocation.Builder.class, "rx", RxInvoker.class, Class.class), - builder, tryBlock.loadClass(MultiInvoker.class)); + builder, tryBlock.loadClassFromTCCL(MultiInvoker.class)); ResultHandle multiInvoker = tryBlock.checkCast(rx, MultiInvoker.class); if (genericReturnType != null) { result = tryBlock.invokeVirtualMethod( @@ -2019,7 +2019,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType Object.class, String.class, Class.class), multiInvoker, tryBlock.load(httpMethod), - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } } else { if (genericReturnType != null) { @@ -2032,7 +2032,7 @@ private void handleReturn(ClassInfo restClientInterface, String defaultMediaType MethodDescriptor.ofMethod(Invocation.Builder.class, "method", Object.class, String.class, Class.class), builder, tryBlock.load(httpMethod), - tryBlock.loadClass(simpleReturnType)); + tryBlock.loadClassFromTCCL(simpleReturnType)); } } } @@ -2204,7 +2204,7 @@ private ResultHandle addQueryParam(BytecodeCreator methodCreator, paramArray = methodCreator.invokeVirtualMethod( MethodDescriptor.ofMethod(RestClientBase.class, "convertParamArray", Object[].class, Object[].class, Class.class), - client, paramArray, methodCreator.loadClass(componentType)); + client, paramArray, methodCreator.loadClassFromTCCL(componentType)); return methodCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(WebTarget.class, "queryParam", WebTarget.class, @@ -2229,7 +2229,7 @@ private void addHeaderParam(BytecodeCreator invoBuilderEnricher, AssignableResul headerParamHandle = invoBuilderEnricher.invokeVirtualMethod( MethodDescriptor.ofMethod(RestClientBase.class, "convertParam", Object.class, Object.class, Class.class), client, headerParamHandle, - invoBuilderEnricher.loadClass(paramType)); + invoBuilderEnricher.loadClassFromTCCL(paramType)); invoBuilderEnricher.assign(invocationBuilder, invoBuilderEnricher.invokeInterfaceMethod( @@ -2243,7 +2243,7 @@ private void addPathParam(BytecodeCreator methodCreator, AssignableResultHandle ResultHandle handle = methodCreator.invokeVirtualMethod( MethodDescriptor.ofMethod(RestClientBase.class, "convertParam", Object.class, Object.class, Class.class), client, pathParamHandle, - methodCreator.loadClass(parameterType)); + methodCreator.loadClassFromTCCL(parameterType)); methodCreator.assign(methodTarget, methodCreator.invokeInterfaceMethod(WEB_TARGET_RESOLVE_TEMPLATE_METHOD, methodTarget, @@ -2255,7 +2255,7 @@ private void addCookieParam(BytecodeCreator invoBuilderEnricher, AssignableResul cookieParamHandle = invoBuilderEnricher.invokeVirtualMethod( MethodDescriptor.ofMethod(RestClientBase.class, "convertParam", Object.class, Object.class, Class.class), client, cookieParamHandle, - invoBuilderEnricher.loadClass(paramType)); + invoBuilderEnricher.loadClassFromTCCL(paramType)); invoBuilderEnricher.assign(invocationBuilder, invoBuilderEnricher.invokeInterfaceMethod( MethodDescriptor.ofMethod(Invocation.Builder.class, "cookie", Invocation.Builder.class, String.class, diff --git a/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/MicroProfileRestClientEnricher.java b/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/MicroProfileRestClientEnricher.java index 88ef8823de5b0..a0cac54126fab 100644 --- a/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/MicroProfileRestClientEnricher.java +++ b/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/MicroProfileRestClientEnricher.java @@ -104,7 +104,7 @@ public void forClass(MethodCreator constructor, AssignableResultHandle webTarget ResultHandle instanceHandle = constructor.invokeInterfaceMethod( MethodDescriptor.ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - containerHandle, constructor.loadClass(headersFactoryClass), + containerHandle, constructor.loadClassFromTCCL(headersFactoryClass), constructor.newArray(Annotation.class, 0)); clientHeadersFactory = constructor .invokeInterfaceMethod(MethodDescriptor.ofMethod(InstanceHandle.class, "get", Object.class), @@ -264,12 +264,12 @@ private void addJavaMethodToContext(ClassCreator classCreator, MethodCreator cli private FieldDescriptor createJavaMethodField(ClassCreator classCreator, MethodCreator clinit, ClassInfo interfaceClass, MethodInfo method, int methodIndex) { - ResultHandle interfaceClassHandle = clinit.loadClass(interfaceClass.toString()); + ResultHandle interfaceClassHandle = clinit.loadClassFromTCCL(interfaceClass.toString()); ResultHandle parameterArray = clinit.newArray(Class.class, method.parameters().size()); for (int i = 0; i < method.parameters().size(); i++) { String parameterClass = method.parameters().get(i).name().toString(); - clinit.writeArrayValue(parameterArray, i, clinit.loadClass(parameterClass)); + clinit.writeArrayValue(parameterArray, i, clinit.loadClassFromTCCL(parameterClass)); } ResultHandle javaMethodHandle = clinit.invokeVirtualMethod( diff --git a/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/RestClientReactiveProcessor.java b/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/RestClientReactiveProcessor.java index 463f447d69fee..e5c23d8755e71 100644 --- a/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/RestClientReactiveProcessor.java +++ b/extensions/resteasy-reactive/rest-client-reactive/deployment/src/main/java/io/quarkus/rest/client/reactive/deployment/RestClientReactiveProcessor.java @@ -276,7 +276,7 @@ void registerProvidersFromAnnotations(CombinedIndexBuildItem indexBuildItem, MethodDescriptor.ofMethod(AnnotationRegisteredProviders.class, "addGlobalProvider", void.class, Class.class, int.class), - constructor.getThis(), constructor.loadClass(providerClass.name().toString()), + constructor.getThis(), constructor.loadClassFromTCCL(providerClass.name().toString()), constructor.load(priority)); } } @@ -306,7 +306,7 @@ void registerProvidersFromAnnotations(CombinedIndexBuildItem indexBuildItem, priority = priorityAnnotationValue.asInt(); } - constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClass(className), + constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClassFromTCCL(className), constructor.load(priority)); } String ifaceName = annotationsForClass.getKey(); @@ -461,7 +461,7 @@ void addRestClientBeans(Capabilities capabilities, MethodDescriptor.ofConstructor(RestClientReactiveCDIWrapperBase.class, Class.class, String.class, String.class), constructor.getThis(), - constructor.loadClass(jaxrsInterface.toString()), + constructor.loadClassFromTCCL(jaxrsInterface.toString()), baseUriHandle, configKey.isPresent() ? constructor.load(configKey.get()) : constructor.loadNull()); constructor.returnValue(null); diff --git a/extensions/security-jpa/deployment/src/main/java/io/quarkus/security/jpa/deployment/QuarkusSecurityJpaProcessor.java b/extensions/security-jpa/deployment/src/main/java/io/quarkus/security/jpa/deployment/QuarkusSecurityJpaProcessor.java index 3ce853b88b01e..706bce494bbc6 100644 --- a/extensions/security-jpa/deployment/src/main/java/io/quarkus/security/jpa/deployment/QuarkusSecurityJpaProcessor.java +++ b/extensions/security-jpa/deployment/src/main/java/io/quarkus/security/jpa/deployment/QuarkusSecurityJpaProcessor.java @@ -375,13 +375,13 @@ private ResultHandle lookupUserById(JpaSecurityDefinition jpaSecurityDefinition, ResultHandle session = methodCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(EntityManager.class, "unwrap", Object.class, Class.class), methodCreator.getMethodParam(0), - methodCreator.loadClass(Session.class)); + methodCreator.loadClassFromTCCL(Session.class)); // SimpleNaturalIdLoadAccess naturalIdLoadAccess = session.bySimpleNaturalId(PlainUserEntity.class); ResultHandle naturalIdLoadAccess = methodCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(Session.class, "bySimpleNaturalId", SimpleNaturalIdLoadAccess.class, Class.class), methodCreator.checkCast(session, Session.class), - methodCreator.loadClass(jpaSecurityDefinition.annotatedClass.name().toString())); + methodCreator.loadClassFromTCCL(jpaSecurityDefinition.annotatedClass.name().toString())); // PlainUserEntity user = naturalIdLoadAccess.load(request.getUsername()); user = methodCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(SimpleNaturalIdLoadAccess.class, "load", diff --git a/extensions/smallrye-reactive-messaging-kafka/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/kafka/deployment/JacksonSerdeGenerator.java b/extensions/smallrye-reactive-messaging-kafka/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/kafka/deployment/JacksonSerdeGenerator.java index 42c45eecb6d7b..1e7fb12f6fea4 100644 --- a/extensions/smallrye-reactive-messaging-kafka/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/kafka/deployment/JacksonSerdeGenerator.java +++ b/extensions/smallrye-reactive-messaging-kafka/deployment/src/main/java/io/quarkus/smallrye/reactivemessaging/kafka/deployment/JacksonSerdeGenerator.java @@ -45,7 +45,8 @@ public static String generateDeserializer(BuildProducer .superClass(ObjectMapperDeserializer.class).build(); MethodCreator constructor = creator.getMethodCreator("", void.class); MethodDescriptor superConstructor = MethodDescriptor.ofConstructor(ObjectMapperDeserializer.class, Class.class); - constructor.invokeSpecialMethod(superConstructor, constructor.getThis(), constructor.loadClass(type.name().toString())); + constructor.invokeSpecialMethod(superConstructor, constructor.getThis(), + constructor.loadClassFromTCCL(type.name().toString())); constructor.returnValue(null); constructor.close(); creator.close(); diff --git a/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/generate/SpringDataRepositoryCreator.java b/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/generate/SpringDataRepositoryCreator.java index 27646834d6eba..763bb2a64e8a2 100644 --- a/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/generate/SpringDataRepositoryCreator.java +++ b/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/generate/SpringDataRepositoryCreator.java @@ -100,7 +100,7 @@ public void implementCrudRepository(ClassInfo repositoryToImplement, IndexView i ctor.invokeSpecialMethod(MethodDescriptor.ofMethod(Object.class, "", void.class), ctor.getThis()); // initialize the entityClass field ctor.writeInstanceField(entityClassFieldCreator.getFieldDescriptor(), ctor.getThis(), - ctor.loadClass(entityTypeStr)); + ctor.loadClassFromTCCL(entityTypeStr)); ctor.returnValue(null); } diff --git a/extensions/spring-data-rest/deployment/src/main/java/io/quarkus/spring/data/rest/deployment/crud/CrudMethodsImplementor.java b/extensions/spring-data-rest/deployment/src/main/java/io/quarkus/spring/data/rest/deployment/crud/CrudMethodsImplementor.java index d24ce324cb1d4..cc782fe5289d3 100644 --- a/extensions/spring-data-rest/deployment/src/main/java/io/quarkus/spring/data/rest/deployment/crud/CrudMethodsImplementor.java +++ b/extensions/spring-data-rest/deployment/src/main/java/io/quarkus/spring/data/rest/deployment/crud/CrudMethodsImplementor.java @@ -128,7 +128,7 @@ protected ResultHandle getRepositoryInstance(BytecodeCreator creator, String rep ResultHandle arcContainer = creator.invokeStaticMethod(ofMethod(Arc.class, "container", ArcContainer.class)); ResultHandle instanceHandle = creator.invokeInterfaceMethod( ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - arcContainer, creator.loadClass(repositoryInterface), creator.newArray(Annotation.class, 0)); + arcContainer, creator.loadClassFromTCCL(repositoryInterface), creator.newArray(Annotation.class, 0)); ResultHandle instance = creator.invokeInterfaceMethod( ofMethod(InstanceHandle.class, "get", Object.class), instanceHandle); creator.ifNull(instance) diff --git a/extensions/spring-web/core/deployment/src/main/java/io/quarkus/spring/web/deployment/ControllerAdviceExceptionMapperGenerator.java b/extensions/spring-web/core/deployment/src/main/java/io/quarkus/spring/web/deployment/ControllerAdviceExceptionMapperGenerator.java index 57c525e7f8ebb..68d6ce31ecd39 100644 --- a/extensions/spring-web/core/deployment/src/main/java/io/quarkus/spring/web/deployment/ControllerAdviceExceptionMapperGenerator.java +++ b/extensions/spring-web/core/deployment/src/main/java/io/quarkus/spring/web/deployment/ControllerAdviceExceptionMapperGenerator.java @@ -268,7 +268,7 @@ private ResultHandle invokeExceptionHandlerMethod(MethodCreator toResponse) { private ResultHandle controllerAdviceInstance(MethodCreator toResponse) { if (isResteasyClassic) { - ResultHandle controllerAdviceClass = toResponse.loadClass(declaringClassName); + ResultHandle controllerAdviceClass = toResponse.loadClassFromTCCL(declaringClassName); ResultHandle container = toResponse .invokeStaticMethod(MethodDescriptor.ofMethod(Arc.class, "container", ArcContainer.class)); @@ -292,7 +292,7 @@ private ResultHandle getBeanFromArc(MethodCreator methodCreator, String beanClas ResultHandle instance = methodCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(ArcContainer.class, "instance", InstanceHandle.class, Class.class, Annotation[].class), - container, methodCreator.loadClass(beanClassName), methodCreator.loadNull()); + container, methodCreator.loadClassFromTCCL(beanClassName), methodCreator.loadNull()); return methodCreator.invokeInterfaceMethod( MethodDescriptor.ofMethod(InstanceHandle.class, "get", Object.class), instance); diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationLiteralGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationLiteralGenerator.java index 94e5e2d0e5327..5045888ff0b6f 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationLiteralGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/AnnotationLiteralGenerator.java @@ -184,12 +184,12 @@ private static void generateStaticFieldsWithDefaultValues(ClassCreator annotatio ResultHandle array = staticConstructor.newArray(returnTypeName, clazzArray.length); for (int i = 0; i < clazzArray.length; ++i) { staticConstructor.writeArrayValue(array, staticConstructor.load(i), - staticConstructor.loadClass(clazzArray[i].name().toString())); + staticConstructor.loadClassFromTCCL(clazzArray[i].name().toString())); } staticConstructor.writeStaticField(fieldCreator.getFieldDescriptor(), array); } else { staticConstructor.writeStaticField(fieldCreator.getFieldDescriptor(), - staticConstructor.loadClass(defaultValue.asClass().name().toString())); + staticConstructor.loadClassFromTCCL(defaultValue.asClass().name().toString())); } } @@ -239,7 +239,7 @@ static ResultHandle loadValue(String literalClassName, FieldDescriptor.of(literalClassName, defaultValueStaticFieldName(method), method.returnType().name().toString())); } else { - retValue = valueMethod.loadClass(value.asClass().toString()); + retValue = valueMethod.loadClassFromTCCL(value.asClass().toString()); } break; case ARRAY: @@ -271,7 +271,7 @@ static ResultHandle arrayValue(String literalClassName, Type[] classArray = value.asClassArray(); retValue = valueMethod.newArray(componentType(method), valueMethod.load(classArray.length)); for (int i = 0; i < classArray.length; i++) { - valueMethod.writeArrayValue(retValue, i, valueMethod.loadClass(classArray[i].name() + valueMethod.writeArrayValue(retValue, i, valueMethod.loadClassFromTCCL(classArray[i].name() .toString())); } } diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanGenerator.java index 678eb0f701820..3ba72ebbe1608 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanGenerator.java @@ -205,7 +205,7 @@ Collection generateSyntheticBean(BeanInfo bean) { valHandle = constructor.newInstance(MethodDescriptor.ofConstructor(Double.class, double.class), constructor.load(((Double) entry.getValue()).doubleValue())); } else if (entry.getValue() instanceof Class) { - valHandle = constructor.loadClass((Class) entry.getValue()); + valHandle = constructor.loadClassFromTCCL((Class) entry.getValue()); } else if (entry.getValue() instanceof Boolean) { valHandle = constructor.load((Boolean) entry.getValue()); } @@ -756,7 +756,7 @@ protected MethodCreator initConstructor(ClassOutput classOutput, ClassCreator be int stereotypesIndex = 0; for (StereotypeInfo stereotype : bean.getStereotypes()) { constructor.writeArrayValue(stereotypesArray, constructor.load(stereotypesIndex++), - constructor.loadClass(stereotype.getTarget().name().toString())); + constructor.loadClassFromTCCL(stereotype.getTarget().name().toString())); } constructor.writeInstanceField( FieldDescriptor.of(beanCreator.getClassName(), FIELD_NAME_STEREOTYPES, Set.class.getName()), @@ -795,7 +795,7 @@ protected void implementDestroy(BeanInfo bean, ClassCreator beanCreator, Provide callback.declaringClass().name(), callback.name())); reflectionRegistration.registerMethod(callback); destroy.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - destroy.loadClass(callback.declaringClass().name().toString()), + destroy.loadClassFromTCCL(callback.declaringClass().name().toString()), destroy.load(callback.name()), destroy.newArray(Class.class, destroy.load(0)), destroy.getMethodParam(0), destroy.newArray(Object.class, destroy.load(0))); @@ -862,12 +862,12 @@ protected void implementDestroy(BeanInfo bean, ClassCreator beanCreator, Provide ResultHandle argsArray = destroy.newArray(Object.class, destroy.load(referenceHandles.length)); for (int i = 0; i < referenceHandles.length; i++) { destroy.writeArrayValue(paramTypesArray, i, - destroy.loadClass(disposerMethod.parameters().get(i).name().toString())); + destroy.loadClassFromTCCL(disposerMethod.parameters().get(i).name().toString())); destroy.writeArrayValue(argsArray, i, referenceHandles[i]); } reflectionRegistration.registerMethod(disposerMethod); destroy.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - destroy.loadClass(disposerMethod.declaringClass().name().toString()), + destroy.loadClassFromTCCL(disposerMethod.declaringClass().name().toString()), destroy.load(disposerMethod.name()), paramTypesArray, declaringProviderInstanceHandle, argsArray); } else { destroy.invokeVirtualMethod(MethodDescriptor.of(disposerMethod), declaringProviderInstanceHandle, @@ -1039,12 +1039,12 @@ private ResultHandle newInstanceHandle(BeanInfo bean, ClassCreator beanCreator, ResultHandle argsArray = creator.newArray(Object.class, creator.load(providerHandles.size())); for (int i = 0; i < injectionPoints.size(); i++) { creator.writeArrayValue(paramTypesArray, i, - creator.loadClass(injectionPoints.get(i).getType().name().toString())); + creator.loadClassFromTCCL(injectionPoints.get(i).getType().name().toString())); creator.writeArrayValue(argsArray, i, providerHandles.get(i)); } registration.registerMethod(constructor); return creator.invokeStaticMethod(MethodDescriptors.REFLECTIONS_NEW_INSTANCE, - creator.loadClass(constructor.declaringClass().name().toString()), + creator.loadClassFromTCCL(constructor.declaringClass().name().toString()), paramTypesArray, argsArray); } else { // new SimpleBean(foo) @@ -1067,7 +1067,8 @@ private ResultHandle newInstanceHandle(BeanInfo bean, ClassCreator beanCreator, registration.registerMethod(noArgsConstructor); return creator.invokeStaticMethod(MethodDescriptors.REFLECTIONS_NEW_INSTANCE, - creator.loadClass(noArgsConstructor.declaringClass().name().toString()), paramTypesArray, argsArray); + creator.loadClassFromTCCL(noArgsConstructor.declaringClass().name().toString()), paramTypesArray, + argsArray); } else { // new SimpleBean() return creator.newInstance(MethodDescriptor.ofConstructor(providerTypeName)); @@ -1114,7 +1115,8 @@ void implementCreateForProducerField(ClassOutput classOutput, ClassCreator beanC String.format("Producer field %s#%s", producerField.declaringClass().name(), producerField.name())); reflectionRegistration.registerField(producerField); create.assign(instanceHandle, create.invokeStaticMethod(MethodDescriptors.REFLECTIONS_READ_FIELD, - create.loadClass(producerField.declaringClass().name().toString()), create.load(producerField.name()), + create.loadClassFromTCCL(producerField.declaringClass().name().toString()), + create.load(producerField.name()), declaringProviderInstanceHandle)); } else { ResultHandle readFieldHandle; @@ -1203,12 +1205,13 @@ void implementCreateForProducerMethod(ClassOutput classOutput, ClassCreator bean ResultHandle argsArray = create.newArray(Object.class, create.load(referenceHandles.length)); for (int i = 0; i < referenceHandles.length; i++) { create.writeArrayValue(paramTypesArray, i, - create.loadClass(producerMethod.parameters().get(i).name().toString())); + create.loadClassFromTCCL(producerMethod.parameters().get(i).name().toString())); create.writeArrayValue(argsArray, i, referenceHandles[i]); } reflectionRegistration.registerMethod(producerMethod); create.assign(instanceHandle, create.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - create.loadClass(producerMethod.declaringClass().name().toString()), create.load(producerMethod.name()), + create.loadClassFromTCCL(producerMethod.declaringClass().name().toString()), + create.load(producerMethod.name()), paramTypesArray, declaringProviderInstanceHandle, argsArray)); @@ -1354,10 +1357,10 @@ void implementCreateForClassBean(ClassOutput classOutput, ClassCreator beanCreat paramTypes.add(injectionPoint.getType().name().toString()); } ResultHandle[] paramsHandles = new ResultHandle[2]; - paramsHandles[0] = create.loadClass(providerType.className()); + paramsHandles[0] = create.loadClassFromTCCL(providerType.className()); ResultHandle paramsArray = create.newArray(Class.class, create.load(paramTypes.size())); for (ListIterator iterator = paramTypes.listIterator(); iterator.hasNext();) { - create.writeArrayValue(paramsArray, iterator.nextIndex(), create.loadClass(iterator.next())); + create.writeArrayValue(paramsArray, iterator.nextIndex(), create.loadClassFromTCCL(iterator.next())); } paramsHandles[1] = paramsArray; constructorHandle = create.invokeStaticMethod(MethodDescriptors.REFLECTIONS_FIND_CONSTRUCTOR, @@ -1366,7 +1369,7 @@ void implementCreateForClassBean(ClassOutput classOutput, ClassCreator beanCreat } else { // constructor = Reflections.findConstructor(Foo.class) ResultHandle[] paramsHandles = new ResultHandle[2]; - paramsHandles[0] = create.loadClass(providerType.className()); + paramsHandles[0] = create.loadClassFromTCCL(providerType.className()); paramsHandles[1] = create.newArray(Class.class, create.load(0)); constructorHandle = create.invokeStaticMethod(MethodDescriptors.REFLECTIONS_FIND_CONSTRUCTOR, paramsHandles); @@ -1453,7 +1456,7 @@ void implementCreateForClassBean(ClassOutput classOutput, ClassCreator beanCreat } reflectionRegistration.registerField(injectedField); tryBlock.invokeStaticMethod(MethodDescriptors.REFLECTIONS_WRITE_FIELD, - tryBlock.loadClass(injectedField.declaringClass().name().toString()), + tryBlock.loadClassFromTCCL(injectedField.declaringClass().name().toString()), tryBlock.load(injectedField.name()), instanceHandle, referenceHandle); } else { @@ -1500,12 +1503,12 @@ void implementCreateForClassBean(ClassOutput classOutput, ClassCreator beanCreat ResultHandle argsArray = create.newArray(Object.class, create.load(referenceHandles.length)); for (int i = 0; i < referenceHandles.length; i++) { create.writeArrayValue(paramTypesArray, i, - create.loadClass(initializerMethod.parameters().get(i).name().toString())); + create.loadClassFromTCCL(initializerMethod.parameters().get(i).name().toString())); create.writeArrayValue(argsArray, i, referenceHandles[i]); } reflectionRegistration.registerMethod(initializerMethod); create.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - create.loadClass(initializerMethod.declaringClass().name().toString()), + create.loadClassFromTCCL(initializerMethod.declaringClass().name().toString()), create.load(methodInjection.target.asMethod().name()), paramTypesArray, instanceHandle, argsArray); @@ -1562,7 +1565,7 @@ void implementCreateForClassBean(ClassOutput classOutput, ClassCreator beanCreat } reflectionRegistration.registerMethod(callback); create.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - create.loadClass(callback.declaringClass().name().toString()), + create.loadClassFromTCCL(callback.declaringClass().name().toString()), create.load(callback.name()), create.newArray(Class.class, create.load(0)), instanceHandle, create.newArray(Object.class, create.load(0))); } else { @@ -1658,7 +1661,7 @@ protected void implementGetTypes(ClassCreator beanCreator, FieldDescriptor types */ protected void implementGetScope(BeanInfo bean, ClassCreator beanCreator) { MethodCreator getScope = beanCreator.getMethodCreator("getScope", Class.class).setModifiers(ACC_PUBLIC); - getScope.returnValue(getScope.loadClass(bean.getScope().getDotName().toString())); + getScope.returnValue(getScope.loadClassFromTCCL(bean.getScope().getDotName().toString())); } /** @@ -1758,7 +1761,7 @@ protected void implementGetStereotypes(BeanInfo bean, ClassCreator beanCreator, protected void implementGetBeanClass(BeanInfo bean, ClassCreator beanCreator) { MethodCreator getBeanClass = beanCreator.getMethodCreator("getBeanClass", Class.class).setModifiers(ACC_PUBLIC); - getBeanClass.returnValue(getBeanClass.loadClass(bean.getBeanClass().toString())); + getBeanClass.returnValue(getBeanClass.loadClassFromTCCL(bean.getBeanClass().toString())); } protected void implementGetName(BeanInfo bean, ClassCreator beanCreator) { @@ -1848,7 +1851,7 @@ public static ResultHandle getJavaMemberHandle(MethodCreator constructor, if (Kind.FIELD.equals(injectionPoint.getTarget().kind())) { FieldInfo field = injectionPoint.getTarget().asField(); javaMemberHandle = constructor.invokeStaticMethod(MethodDescriptors.REFLECTIONS_FIND_FIELD, - constructor.loadClass(field.declaringClass().name().toString()), + constructor.loadClassFromTCCL(field.declaringClass().name().toString()), constructor.load(field.name())); reflectionRegistration.registerField(field); } else { @@ -1857,11 +1860,11 @@ public static ResultHandle getJavaMemberHandle(MethodCreator constructor, if (method.name().equals(Methods.INIT)) { // Reflections.findConstructor(org.foo.SimpleBean.class,java.lang.String.class) ResultHandle[] paramsHandles = new ResultHandle[2]; - paramsHandles[0] = constructor.loadClass(method.declaringClass().name().toString()); + paramsHandles[0] = constructor.loadClassFromTCCL(method.declaringClass().name().toString()); ResultHandle paramsArray = constructor.newArray(Class.class, constructor.load(method.parameters().size())); for (ListIterator iterator = method.parameters().listIterator(); iterator.hasNext();) { constructor.writeArrayValue(paramsArray, iterator.nextIndex(), - constructor.loadClass(iterator.next().name().toString())); + constructor.loadClassFromTCCL(iterator.next().name().toString())); } paramsHandles[1] = paramsArray; javaMemberHandle = constructor.invokeStaticMethod(MethodDescriptors.REFLECTIONS_FIND_CONSTRUCTOR, @@ -1869,12 +1872,12 @@ public static ResultHandle getJavaMemberHandle(MethodCreator constructor, } else { // Reflections.findMethod(org.foo.SimpleBean.class,"foo",java.lang.String.class) ResultHandle[] paramsHandles = new ResultHandle[3]; - paramsHandles[0] = constructor.loadClass(method.declaringClass().name().toString()); + paramsHandles[0] = constructor.loadClassFromTCCL(method.declaringClass().name().toString()); paramsHandles[1] = constructor.load(method.name()); ResultHandle paramsArray = constructor.newArray(Class.class, constructor.load(method.parameters().size())); for (ListIterator iterator = method.parameters().listIterator(); iterator.hasNext();) { constructor.writeArrayValue(paramsArray, iterator.nextIndex(), - constructor.loadClass(iterator.next().name().toString())); + constructor.loadClassFromTCCL(iterator.next().name().toString())); } paramsHandles[2] = paramsArray; javaMemberHandle = constructor.invokeStaticMethod(MethodDescriptors.REFLECTIONS_FIND_METHOD, paramsHandles); diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java index 62a7320b42ba6..5500c9c499165 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java @@ -210,7 +210,7 @@ Collection generate(BeanInfo bean, String beanClassName, ResultHandle paramTypesArray = forward.newArray(Class.class, forward.load(method.parameters().size())); int idx = 0; for (Type param : method.parameters()) { - forward.writeArrayValue(paramTypesArray, idx++, forward.loadClass(param.name().toString())); + forward.writeArrayValue(paramTypesArray, idx++, forward.loadClassFromTCCL(param.name().toString())); } ResultHandle argsArray = forward.newArray(Object.class, forward.load(params.length)); idx = 0; @@ -219,7 +219,7 @@ Collection generate(BeanInfo bean, String beanClassName, } reflectionRegistration.registerMethod(method); ret = forward.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - forward.loadClass(method.declaringClass().name().toString()), + forward.loadClassFromTCCL(method.declaringClass().name().toString()), forward.load(method.name()), paramTypesArray, delegate, argsArray); } else { // make sure we do not use the original method descriptor as it could point to diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java index 0abe720689db0..a05e9df755519 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ComponentsProviderGenerator.java @@ -111,7 +111,7 @@ Collection generate(String name, BeanDeployment beanDeployment, Map creatorClazz) valHandle = mc.newInstance(MethodDescriptor.ofConstructor(Double.class, double.class), mc.load(((Double) entry.getValue()).doubleValue())); } else if (entry.getValue() instanceof Class) { - valHandle = mc.loadClass((Class) entry.getValue()); + valHandle = mc.loadClassFromTCCL((Class) entry.getValue()); } else if (entry.getValue() instanceof Boolean) { valHandle = mc.load((Boolean) entry.getValue()); } diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/InterceptorGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/InterceptorGenerator.java index ea624b9a01d01..3fda9c0f9c046 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/InterceptorGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/InterceptorGenerator.java @@ -240,12 +240,12 @@ private void addIntercept(MethodCreator intercept, MethodInfo interceptorMethod, interceptorMethod.name())); // Use reflection fallback ResultHandle paramTypesArray = trueBranch.newArray(Class.class, trueBranch.load(1)); - trueBranch.writeArrayValue(paramTypesArray, 0, trueBranch.loadClass(invocationContextClass)); + trueBranch.writeArrayValue(paramTypesArray, 0, trueBranch.loadClassFromTCCL(invocationContextClass)); ResultHandle argsArray = trueBranch.newArray(Object.class, trueBranch.load(1)); trueBranch.writeArrayValue(argsArray, 0, intercept.getMethodParam(2)); reflectionRegistration.registerMethod(interceptorMethod); ret = trueBranch.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - trueBranch.loadClass(interceptorMethod.declaringClass() + trueBranch.loadClassFromTCCL(interceptorMethod.declaringClass() .name() .toString()), trueBranch.load(interceptorMethod.name()), paramTypesArray, intercept.getMethodParam(1), argsArray); diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ObserverGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ObserverGenerator.java index 076ce3a404142..1c8b160f0040a 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ObserverGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ObserverGenerator.java @@ -256,7 +256,7 @@ protected void implementGetTransactionPhase(ClassCreator observerCreator, Observ protected void implementGetBeanClass(ClassCreator observerCreator, DotName beanClass) { MethodCreator getBeanClass = observerCreator.getMethodCreator("getBeanClass", Class.class).setModifiers(ACC_PUBLIC); - getBeanClass.returnValue(getBeanClass.loadClass(beanClass.toString())); + getBeanClass.returnValue(getBeanClass.loadClassFromTCCL(beanClass.toString())); } protected void implementGetPriority(ClassCreator observerCreator, ObserverInfo observer) { @@ -405,12 +405,12 @@ protected void implementNotify(ObserverInfo observer, ClassCreator observerCreat ResultHandle argsArray = notify.newArray(Object.class, notify.load(referenceHandles.length)); for (int i = 0; i < referenceHandles.length; i++) { notify.writeArrayValue(paramTypesArray, i, - notify.loadClass(observer.getObserverMethod().parameters().get(i).name().toString())); + notify.loadClassFromTCCL(observer.getObserverMethod().parameters().get(i).name().toString())); notify.writeArrayValue(argsArray, i, referenceHandles[i]); } reflectionRegistration.registerMethod(observer.getObserverMethod()); notify.invokeStaticMethod(MethodDescriptors.REFLECTIONS_INVOKE_METHOD, - notify.loadClass(observer.getObserverMethod().declaringClass().name().toString()), + notify.loadClassFromTCCL(observer.getObserverMethod().declaringClass().name().toString()), notify.load(observer.getObserverMethod().name()), paramTypesArray, declaringProviderInstanceHandle, argsArray); } else { diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/SubclassGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/SubclassGenerator.java index 0bc52304ca854..009e5436b0c8a 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/SubclassGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/SubclassGenerator.java @@ -312,13 +312,13 @@ public ResultHandle apply(List interceptors) { // 2. Method method = Reflections.findMethod(org.jboss.weld.arc.test.interceptors.SimpleBean.class,"foo",java.lang.String.class) ResultHandle[] paramsHandles = new ResultHandle[3]; - paramsHandles[0] = constructor.loadClass(providerTypeName); + paramsHandles[0] = constructor.loadClassFromTCCL(providerTypeName); paramsHandles[1] = constructor.load(method.name()); if (!parameters.isEmpty()) { ResultHandle paramsArray = constructor.newArray(Class.class, constructor.load(parameters.size())); for (ListIterator iterator = parameters.listIterator(); iterator.hasNext();) { constructor.writeArrayValue(paramsArray, iterator.nextIndex(), - constructor.loadClass(iterator.next().name().toString())); + constructor.loadClassFromTCCL(iterator.next().name().toString())); } paramsHandles[2] = paramsArray; } else { diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Types.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Types.java index f00797f32579f..28284991d4edc 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Types.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Types.java @@ -152,21 +152,21 @@ static ResultHandle getTypeHandle(BytecodeCreator creator, Type type, ResultHand } else if (Kind.PRIMITIVE.equals(type.kind())) { switch (type.asPrimitiveType().primitive()) { case INT: - return creator.loadClass(int.class); + return creator.loadClassFromTCCL(int.class); case LONG: - return creator.loadClass(long.class); + return creator.loadClassFromTCCL(long.class); case BOOLEAN: - return creator.loadClass(boolean.class); + return creator.loadClassFromTCCL(boolean.class); case BYTE: - return creator.loadClass(byte.class); + return creator.loadClassFromTCCL(byte.class); case CHAR: - return creator.loadClass(char.class); + return creator.loadClassFromTCCL(char.class); case DOUBLE: - return creator.loadClass(double.class); + return creator.loadClassFromTCCL(double.class); case FLOAT: - return creator.loadClass(float.class); + return creator.loadClassFromTCCL(float.class); case SHORT: - return creator.loadClass(short.class); + return creator.loadClassFromTCCL(short.class); default: throw new IllegalArgumentException("Unsupported primitive type: " + type); } diff --git a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/CuratedApplication.java b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/CuratedApplication.java index bc0c4c35c7bd6..7c817c702d309 100644 --- a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/CuratedApplication.java +++ b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/CuratedApplication.java @@ -129,7 +129,8 @@ public AugmentAction createAugmentor() { public AugmentAction createAugmentor(String functionName, Map props) { try { Class augmentor = getAugmentClassLoader().loadClass(AUGMENTOR); - Function> function = (Function>) getAugmentClassLoader().loadClass(functionName) + Function> function = (Function>) getAugmentClassLoader() + .loadClass(functionName) .getDeclaredConstructor() .newInstance(); List res = function.apply(props); diff --git a/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/options/BootstrapMavenOptions.java b/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/options/BootstrapMavenOptions.java index e01caefe31010..b580963bb6c41 100644 --- a/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/options/BootstrapMavenOptions.java +++ b/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/options/BootstrapMavenOptions.java @@ -238,7 +238,8 @@ private void parseProfileArgs() { @SuppressWarnings("unchecked") private static Map invokeParser(ClassLoader cl, String[] args) throws ClassNotFoundException { try { - final Class parserCls = cl.loadClass("io.quarkus.bootstrap.resolver.maven.options.BootstrapMavenOptionsParser"); + final Class parserCls = cl + .loadClass("io.quarkus.bootstrap.resolver.maven.options.BootstrapMavenOptionsParser"); final Method parseMethod = parserCls.getMethod("parse", String[].class); return (Map) parseMethod.invoke(null, (Object) args); } catch (ClassNotFoundException e) { diff --git a/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ExtensionMethodGenerator.java b/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ExtensionMethodGenerator.java index 4faedb0025429..576a92e305bfe 100644 --- a/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ExtensionMethodGenerator.java +++ b/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ExtensionMethodGenerator.java @@ -312,7 +312,7 @@ private void implementResolve(ClassCreator valueResolver, ClassInfo declaringCla // Last param is varargs Type varargsParam = params.get(lastIdx).type; ResultHandle componentType = tryCatch - .loadClass(varargsParam.asArrayType().component().name().toString()); + .loadClassFromTCCL(varargsParam.asArrayType().component().name().toString()); ResultHandle varargsResults = tryCatch.invokeVirtualMethod( Descriptors.EVALUATED_PARAMS_GET_VARARGS_RESULTS, evaluatedParamsHandle, tryCatch.load(evaluated.size()), componentType); @@ -357,7 +357,7 @@ private void implementAppliesTo(ClassCreator valueResolver, MethodInfo method, S // Test base object class ResultHandle baseClass = appliesTo.invokeVirtualMethod(Descriptors.GET_CLASS, base); // Perform autoboxing for primitives - ResultHandle testClass = appliesTo.loadClass(box(params.getFirst(ParamKind.BASE).type).name().toString()); + ResultHandle testClass = appliesTo.loadClassFromTCCL(box(params.getFirst(ParamKind.BASE).type).name().toString()); ResultHandle baseClassTest = appliesTo.invokeVirtualMethod(Descriptors.IS_ASSIGNABLE_FROM, testClass, baseClass); BytecodeCreator baseNotAssignable = appliesTo.ifTrue(baseClassTest).falseBranch(); @@ -557,7 +557,7 @@ public void addMethod(MethodInfo method, String matchName, String matchRegex) { // Last param is varargs Type varargsParam = params.get(lastIdx).type; ResultHandle componentType = tryCatch - .loadClass(varargsParam.asArrayType().component().name().toString()); + .loadClassFromTCCL(varargsParam.asArrayType().component().name().toString()); ResultHandle varargsResults = tryCatch.invokeVirtualMethod( Descriptors.EVALUATED_PARAMS_GET_VARARGS_RESULTS, whenEvaluatedParams, tryCatch.load(evaluated.size()), componentType); diff --git a/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java b/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java index fd82ed2807bff..275f196f9d10c 100644 --- a/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java +++ b/independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java @@ -784,7 +784,8 @@ private void matchMethods(String matchName, int matchParamsCount, Collection String, String[] @@ -853,27 +854,27 @@ static ResultHandle loadParamType(BytecodeCreator creator, Type paramType) { if (org.jboss.jandex.Type.Kind.PRIMITIVE.equals(paramType.kind())) { switch (paramType.asPrimitiveType().primitive()) { case INT: - return creator.loadClass(Integer.class); + return creator.loadClassFromTCCL(Integer.class); case LONG: - return creator.loadClass(Long.class); + return creator.loadClassFromTCCL(Long.class); case BOOLEAN: - return creator.loadClass(Boolean.class); + return creator.loadClassFromTCCL(Boolean.class); case BYTE: - return creator.loadClass(Byte.class); + return creator.loadClassFromTCCL(Byte.class); case CHAR: - return creator.loadClass(Character.class); + return creator.loadClassFromTCCL(Character.class); case DOUBLE: - return creator.loadClass(Double.class); + return creator.loadClassFromTCCL(Double.class); case FLOAT: - return creator.loadClass(Float.class); + return creator.loadClassFromTCCL(Float.class); case SHORT: - return creator.loadClass(Short.class); + return creator.loadClassFromTCCL(Short.class); default: throw new IllegalArgumentException("Unsupported primitive type: " + paramType); } } // TODO: we should probably use the TCCL to load the param type - return creator.loadClass(paramType.name().toString()); + return creator.loadClassFromTCCL(paramType.name().toString()); } private BytecodeCreator createMatchScope(BytecodeCreator bytecodeCreator, String methodName, int methodParams, @@ -911,7 +912,7 @@ private void implementAppliesTo(ClassCreator valueResolver, ClassInfo clazz) { // Test base object class ResultHandle baseClass = baseNotNullBranch.invokeVirtualMethod(Descriptors.GET_CLASS, base); - ResultHandle testClass = baseNotNullBranch.loadClass(clazz.name().toString()); + ResultHandle testClass = baseNotNullBranch.loadClassFromTCCL(clazz.name().toString()); ResultHandle test = baseNotNullBranch.invokeVirtualMethod(Descriptors.IS_ASSIGNABLE_FROM, testClass, baseClass); BytecodeCreator baseAssignableBranch = baseNotNullBranch.ifNonZero(test).trueBranch(); baseAssignableBranch.returnValue(baseAssignableBranch.load(true)); diff --git a/independent-projects/resteasy-reactive/client/processor/src/main/java/org/jboss/resteasy/reactive/client/processor/beanparam/FieldExtractor.java b/independent-projects/resteasy-reactive/client/processor/src/main/java/org/jboss/resteasy/reactive/client/processor/beanparam/FieldExtractor.java index 7217063d67518..2f1d0ee55934a 100644 --- a/independent-projects/resteasy-reactive/client/processor/src/main/java/org/jboss/resteasy/reactive/client/processor/beanparam/FieldExtractor.java +++ b/independent-projects/resteasy-reactive/client/processor/src/main/java/org/jboss/resteasy/reactive/client/processor/beanparam/FieldExtractor.java @@ -21,7 +21,7 @@ public FieldExtractor(String companionClass, String fieldName, String className) ResultHandle extract(BytecodeCreator bytecodeCreator, ResultHandle containingObject) { MethodDescriptor readField = MethodDescriptor.ofMethod(ReflectionUtil.class, "readField", Object.class, Object.class, Class.class, String.class); - return bytecodeCreator.invokeStaticMethod(readField, containingObject, bytecodeCreator.loadClass(className), + return bytecodeCreator.invokeStaticMethod(readField, containingObject, bytecodeCreator.loadClassFromTCCL(className), bytecodeCreator.load(fieldName)); } } diff --git a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/GeneratorUtils.java b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/GeneratorUtils.java index 57b6b2a882113..714c75bb7bbe0 100644 --- a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/GeneratorUtils.java +++ b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/GeneratorUtils.java @@ -31,7 +31,7 @@ private static void paramHandleFromReqContextMethod(MethodCreator m, ResultHandl public static ResultHandle unwrapObject(MethodCreator m, ResultHandle qrReqCtxHandle, DotName classType) { return m.invokeVirtualMethod(ofMethod(ResteasyReactiveRequestContext.class, "unwrap", Object.class, Class.class), - qrReqCtxHandle, m.loadClass(classType.toString())); + qrReqCtxHandle, m.loadClassFromTCCL(classType.toString())); } public static ResultHandle runtimeResourceHandle(MethodCreator filterMethod, ResultHandle qrReqCtxHandle) { diff --git a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartPopulatorGenerator.java b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartPopulatorGenerator.java index 28591f2ab650c..69a8dc37be42c 100644 --- a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartPopulatorGenerator.java +++ b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartPopulatorGenerator.java @@ -124,14 +124,14 @@ private MultipartPopulatorGenerator() { * private static MediaType status_mediaType; * * static { - * map_type = DeploymentUtils.loadClass("java.util.Map"); + * map_type = DeploymentUtils.loadClassFromTCCL("java.util.Map"); * map_genericType = TypeSignatureParser.parse("Ljava/util/Map;"); * map_mediaType = MediaType.valueOf("application/json"); - * Class var0 = DeploymentUtils.loadClass("org.acme.getting.started.Person"); + * Class var0 = DeploymentUtils.loadClassFromTCCL("org.acme.getting.started.Person"); * person_type = var0; * person_genericType = var0; * person_mediaType = MediaType.valueOf("application/json"); - * Class var1 = DeploymentUtils.loadClass("org.acme.getting.started.Status"); + * Class var1 = DeploymentUtils.loadClassFromTCCL("org.acme.getting.started.Status"); * status_type = var1; * status_genericType = var1; * status_mediaType = MediaType.valueOf("text/plain");