Romain Manni-Bucau created BEAM-7556:
----------------------------------------

             Summary: Enable to upgrade proxy generation independently of beam 
for java support
                 Key: BEAM-7556
                 URL: https://issues.apache.org/jira/browse/BEAM-7556
             Project: Beam
          Issue Type: Task
          Components: sdk-java-core
    Affects Versions: 2.13.0
            Reporter: Romain Manni-Bucau


Beam is now using a custom shaded version of bytebudy which makes impossible - 
until you reshade - to upgrade bytebuddy without requiring a new beam release.

However with the fast release rate of the JVM it is important to be able to 
upgrade bytebuddy - at least while beam is using it which is technically not a 
strong requirement - to enable to run on the new JVM.

For example, last beam release does not support recent java:

{code}
Caused by: java.lang.UnsupportedOperationException: Cannot define class using 
reflection: Cannot define nest member class 
java.lang.reflect.AccessibleObject$Cache + within different package then class 
org.apache.beam.repackaged.beam_sdks_java_core.net.bytebuddy.mirror.AccessibleObject
{code}

My preference to fix this issue would be to relax the proxying definition to 
just use a "proxy classloader" where the proxy would be defined but it requires 
to be able to attach it to an execution - where beam is not yet super clean.
Alternative is to have a SPI for the asm usage and enable to user to replace 
the bytebuddy impl with either a not shaded version or even a pure asm one to 
let him control the dependencies.

Romain



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to