In what sense is JavaCC a "dependency of the activemq-client package"? It's
not a Maven dependency, and it's not shipped with the broker. It's simply
part of the build process and represents a near-zero maintenance burden.

I'm against checking in the generated source and removing the integration
with JavaCC for the following reasons:

  - You never know what changes will be required in the future. Generally
speaking, you'd want to modify the JavaCC input rather than the JavaCC
output in that case.
  - If there is ever any improvement to JavaCC we won't benefit from it.
  - There is no real downside to keeping the existing structure in place.

Artemis uses the same basic process to generate the selector parser, and it
uses JavaCC 7.0.13 without issue.

What is the benefit of removing the integration and checking in the
generated code?


Justin

On Fri, Jan 17, 2025 at 3:49 AM Ken Liao <kenlia...@gmail.com> wrote:

> Hi folks,
>
> Recently, I am diving into the SelectorParser.java generated by javacc. I
> am wondering, do we want to keep maintaining javacc as a dependency of the
> activemq-client package?
>
> In another word, the grammar of the JMS selector hasn't changed (last time
> the change made to the grammar definition file SelectorParser.jj is
> changing the namespace to jakarta in the main branch). Would it be easier
> to just commit the generated java file as source and remove the javacc
> dependency?
>
> If we do want to keep it as a dependency, the latest stable release of
> javacc is version 7. I can upgrade javacc to version 7 to check if it
> breaks the build and tests. I will create a PR on it soon if there's no
> objection.
>
> Thanks,
> Ken
>

Reply via email to