diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/AutoValueUtils.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/AutoValueUtils.java index 769b22879418..dcbbf70888d3 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/AutoValueUtils.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/AutoValueUtils.java @@ -17,6 +17,7 @@ */ package org.apache.beam.sdk.schemas.utils; +import static org.apache.beam.sdk.util.ByteBuddyUtils.getClassLoadingStrategy; import static org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.base.Preconditions.checkNotNull; import java.lang.reflect.Constructor; @@ -32,11 +33,10 @@ import java.util.function.Function; import java.util.stream.Collectors; import net.bytebuddy.ByteBuddy; -import net.bytebuddy.asm.AsmVisitorWrapper; +import net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods; import net.bytebuddy.description.method.MethodDescription.ForLoadedMethod; import net.bytebuddy.description.type.TypeDescription.ForLoadedType; import net.bytebuddy.dynamic.DynamicType; -import net.bytebuddy.dynamic.loading.ClassLoadingStrategy; import net.bytebuddy.dynamic.scaffold.InstrumentedType; import net.bytebuddy.implementation.Implementation; import net.bytebuddy.implementation.bytecode.ByteCodeAppender; @@ -227,7 +227,7 @@ private static boolean matchConstructor( private static final ByteBuddy BYTE_BUDDY = new ByteBuddy(); - static SchemaUserTypeCreator createBuilderCreator( + private static SchemaUserTypeCreator createBuilderCreator( Class builderClass, List setterMethods, Method buildMethod, @@ -242,9 +242,9 @@ static SchemaUserTypeCreator createBuilderCreator( .intercept( new BuilderCreateInstruction(types, setterMethods, builderClass, buildMethod)); return builder - .visit(new AsmVisitorWrapper.ForDeclaredMethods().writerFlags(ClassWriter.COMPUTE_FRAMES)) + .visit(new ForDeclaredMethods().writerFlags(ClassWriter.COMPUTE_FRAMES)) .make() - .load(ReflectHelpers.findClassLoader(), ClassLoadingStrategy.Default.INJECTION) + .load(ReflectHelpers.findClassLoader(), getClassLoadingStrategy(builderClass)) .getLoaded() .getDeclaredConstructor() .newInstance(); diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/POJOUtils.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/POJOUtils.java index 66b0a5910570..93875a20707f 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/POJOUtils.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/POJOUtils.java @@ -32,7 +32,6 @@ import net.bytebuddy.description.field.FieldDescription.ForLoadedField; import net.bytebuddy.description.type.TypeDescription.ForLoadedType; import net.bytebuddy.dynamic.DynamicType; -import net.bytebuddy.dynamic.loading.ClassLoadingStrategy; import net.bytebuddy.dynamic.scaffold.InstrumentedType; import net.bytebuddy.implementation.FixedValue; import net.bytebuddy.implementation.Implementation; @@ -253,7 +252,7 @@ public static SchemaUserTypeCreator createStaticCreator( return builder .visit(new AsmVisitorWrapper.ForDeclaredMethods().writerFlags(ClassWriter.COMPUTE_FRAMES)) .make() - .load(ReflectHelpers.findClassLoader(), ClassLoadingStrategy.Default.INJECTION) + .load(ReflectHelpers.findClassLoader(), getClassLoadingStrategy(clazz)) .getLoaded() .getDeclaredConstructor() .newInstance(); diff --git a/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroByteBuddyUtils.java b/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroByteBuddyUtils.java index e07f6ffb4681..0a82663c1771 100644 --- a/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroByteBuddyUtils.java +++ b/sdks/java/extensions/avro/src/main/java/org/apache/beam/sdk/extensions/avro/schemas/utils/AvroByteBuddyUtils.java @@ -17,6 +17,8 @@ */ package org.apache.beam.sdk.extensions.avro.schemas.utils; +import static org.apache.beam.sdk.util.ByteBuddyUtils.getClassLoadingStrategy; + import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Type; @@ -25,7 +27,6 @@ import net.bytebuddy.asm.AsmVisitorWrapper; import net.bytebuddy.description.type.TypeDescription.ForLoadedType; import net.bytebuddy.dynamic.DynamicType; -import net.bytebuddy.dynamic.loading.ClassLoadingStrategy; import net.bytebuddy.implementation.MethodCall; import net.bytebuddy.implementation.bytecode.StackManipulation; import net.bytebuddy.implementation.bytecode.assign.TypeCasting; @@ -95,7 +96,7 @@ private static SchemaUserTypeCreator createCreator(Class clazz, Schema sc .make() .load( ReflectHelpers.findClassLoader(clazz.getClassLoader()), - ClassLoadingStrategy.Default.INJECTION) + getClassLoadingStrategy(clazz)) .getLoaded() .getDeclaredConstructor() .newInstance(); diff --git a/sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaUtils.java b/sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaUtils.java index 7aa23335b583..d36c197d80a4 100644 --- a/sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaUtils.java +++ b/sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/schemas/AwsSchemaUtils.java @@ -19,6 +19,7 @@ import static net.bytebuddy.matcher.ElementMatchers.isStatic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static org.apache.beam.sdk.util.ByteBuddyUtils.getClassLoadingStrategy; import java.util.function.BiConsumer; import net.bytebuddy.ByteBuddy; @@ -26,7 +27,6 @@ import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.description.type.TypeDescription.ForLoadedType; import net.bytebuddy.description.type.TypeDescription.Generic; -import net.bytebuddy.dynamic.loading.ClassLoadingStrategy; import net.bytebuddy.implementation.MethodCall; import org.apache.beam.sdk.schemas.FieldValueGetter; import org.apache.beam.sdk.schemas.FieldValueSetter; @@ -65,7 +65,7 @@ AwsBuilderFactory builderFactory(Class clazz) { .method(named("get")) .intercept(MethodCall.invoke(builderMethod)) .make() - .load(ReflectHelpers.findClassLoader(), ClassLoadingStrategy.Default.INJECTION) + .load(ReflectHelpers.findClassLoader(), getClassLoadingStrategy(clazz)) .getLoaded() .getDeclaredConstructor() .newInstance();