I inspected the java core artifact and confirm that Beam's usage of antlr
is vendored, in principle it should not leak antlr runtime class
dependencies.

Specifically, I checked that only java-core used antlr, and the classes are
relocated:
https://github.com/apache/beam/blob/1e279788027ffa031f634a538908d508fb1d15be/sdks/java/core/build.gradle#L37

This is reflected in the released Beam java-core as
org/apache/beam/repackaged/org/antlr/v4/runtime

I also checked the packaged generated class
(e.g. FieldSpecifierNotationBaseListener) indeed imports vendored antlr:

```
import
org.apache.beam.repackaged.core.org.antlr.v4.runtime.ParserRuleContext;
```

On Wed, Oct 16, 2024 at 6:00 PM Ahmet Altay <al...@google.com> wrote:

> HI @Yi Hu <ya...@google.com> - Do you know the answer to this question?
> And if it is not vendored, should it be?
>
> On Wed, Oct 9, 2024 at 5:17 PM XQ Hu <x...@google.com> wrote:
>
>> I do not think ANLTR is vendored. +Yi here.
>>
>> On Wed, Oct 9, 2024 at 4:35 PM Reuven Lax <re...@google.com> wrote:
>>
>>> Is our usage of ANLTR not vendored?
>>>
>>> On Wed, Oct 9, 2024 at 1:12 PM Ahmet Altay via dev <dev@beam.apache.org>
>>> wrote:
>>>
>>>> Adding some relevant folks, in case they have an ideas: @XQ Hu
>>>> <x...@google.com> @Danny McCormick <dannymccorm...@google.com>
>>>>
>>>> On Thu, Oct 3, 2024 at 9:16 AM Frédéric Pin <frederic....@behavox.com>
>>>> wrote:
>>>>
>>>>> Hi Dev team,
>>>>>
>>>>> I am using Apache Beam with Google Dataflow in Java and I am trying to
>>>>> migrate the java lib from v2.51.0 to v2.59.0
>>>>>
>>>>> We are using ANTLR v4.11.1 as a dependency of our Beam Pipeline.
>>>>>
>>>>> With the v2.59.0 the pipeline fails to start with the error
>>>>>
>>>>>> ANTLR Tool version 4.7 used for code generation does not match the
>>>>>> current runtime version 4.11.1
>>>>>>
>>>>>
>>>>> I can see both Apache Beam v2.51.0 and v2.59.0 are compiled with ANTLR
>>>>> v4.7 as a dependency HERE
>>>>> <https://github.com/apache/beam/blob/v2.51.0/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L652C66-L652C71>
>>>>> and HERE
>>>>> <https://github.com/apache/beam/blob/v2.59.0/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy#L667>
>>>>>
>>>>> My questions are the following:
>>>>>
>>>>>    - Why do I suddenly get an exception at runtime with v2.59.0 when
>>>>>    the v2.51.0 was working correctly?
>>>>>    - I am not very confident to downgrade our version of ANTLR
>>>>>    just because Apache Beam uses the v4.7. What if you upgrade it to 
>>>>> v4.13? I
>>>>>    would need to adapt again... this problem can be met by a lot of users 
>>>>> of
>>>>>    Apache Beam, is it possible to get rid of this dependency on your side?
>>>>>
>>>>>
>>>>> Thanks a lot for your support!
>>>>>
>>>>> --
>>>>>
>>>>> Regards,
>>>>>
>>>>> Frédéric Pin
>>>>>
>>>>> Java Developer
>>>>>
>>>>> +1 (438) 270 6010 <(438)%20270-6010>
>>>>>
>>>>>
>>>>>
>>>>> The information contained in this email, including any attachments, is
>>>>> intended solely for use by the individual or entity named above and may be
>>>>> confidential. If you have received this email in error please delete it 
>>>>> and
>>>>> notify the sender immediately; you should not retain the message or
>>>>> disclose its contents to anyone. Behavox is a trademark of Behavox 
>>>>> Limited,
>>>>> a company registered in England under number 09066452 whose registered
>>>>> office is at Alto Tower, 30 Stamford Street, London, SE1 9LQ ©2024
>>>>> Behavox Ltd. All rights reserved.
>>>>>
>>>>

Reply via email to