Thanks everyone for their feedback! I have created this Jira ticket to
track
https://issues.apache.org/jira/projects/AMQ/issues/AMQ-9648?filter=allissues

Thanks,
Ken

On Mon, Jan 20, 2025 at 4:15 AM Christopher Shannon <
christopher.l.shan...@gmail.com> wrote:

> I already responded once with a short response saying I don't think it's a
> good idea to remove the parser but I will elaborate more. Reading over this
> thread again I think there are really two independent things being
> discussed here and should be considered separately.
>
> 1) Removing javacc as a build time dependency
>
> I'm a -1 on this because I still do not understand the motivation. I 100%
> agree with Justin's response. It's just a build time dependency and we've
> had it forever and it's causing zero problems. What if we need to change
> the generated parser? Just because we haven't for a long time doesn't mean
> we won't need to. Removing it means you'd have to manually change the
> output or switch to something else. If the dependency is old then we handle
> it like every other dependency, we upgrade.
>
> I see mention of a maintenance burden but I don't see how there really is
> one. Keeping the dependency up to date shouldn't be any different than
> updating any of the other tons of dependencies ActiveMQ has. I'd argue it's
> a lot less of a burden considering we've not updated in a very long time
> and it's not shipped with the broker. We should just update to the latest
> version just like Artemis did.
>
> 2) Commiting the generated source code to the repo
>
> I'm -0 on this as I don't think it is necessary because the generated
> source is fast and only a few files but I guess it could be discussed more
> if there was some benefit. In this case we would just set up the parser to
> generate only if there's a change (so maybe move it into an optional
> profile). Many projects do this where you only run the generator when
> there's a change and then commit the output to avoid having to run it each
> time. This is pretty common when generating serializers for frameworks like
> protobuf or Thrift. This is also how we handle OpenWire, we have (well had,
> the current openwire generator is broken with new JDKs which is why we are
> working on the new one) the ability to generate a new version when we need
> to with a maven profile and just commit the generated source.
>
>
>
> On Sat, Jan 18, 2025 at 10:39 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> wrote:
>
> > Hi
> >
> > You are right Art: there’s no issue for now.
> > We are not in the rush to update. I would just create a Jira to track it
> > for later purpose.
> >
> > Regards
> > JB
> >
> >
> > Le sam. 18 janv. 2025 à 14:24, Arthur Naseef <artnas...@apache.org> a
> > écrit :
> >
> > > Is the generated code problematic, or are we talking hypotheticals
> here?
> > >
> > > Not trying to discourage updating - but instead trying to understand
> need
> > > here:
> > > why does javacc need to be updated?
> > >
> > > Ther javacc grammar file is the original code, and the generated java
> is
> > an
> > > output of that.  If we want to hand-maintain a parser, we probably want
> > > something more readable/maintainable than javacc output.
> > >
> > > Art
> > >
> > > On Sat, Jan 18, 2025, 12:38 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> > > wrote:
> > >
> > > > Do we really need to generate this code ?
> > > >
> > > > It's a dependency of the build (not the packages dependency), but it
> > > > could be problematic regarding the code generated for updated JDK
> > > > versions (JDK11 and beyond, especially JDK23 at some point).
> > > >
> > > > As we don't generate the code often, I don't see the benefit compared
> > > > to just having the source. I don't think it's an urgent matter, but
> > > > it's worth keeping this in mind and I think it would be a good idea
> to
> > > > remove this build dep.
> > > >
> > > > Regards
> > > > JB
> > > >
> > > > On Sat, Jan 18, 2025 at 12:15 AM Christopher Shannon
> > > > <christopher.l.shan...@gmail.com> wrote:
> > > > >
> > > > > I don't think there is a good reason to get rid of dependency
> either,
> > > we
> > > > > absolutely need to be able to build a new version going forward.
> Just
> > > > > because it hasn't changed doesn't mean it won't.
> > > > >
> > > > > On Fri, Jan 17, 2025 at 3:20 PM Arthur Naseef <
> artnas...@apache.org>
> > > > wrote:
> > > > >
> > > > > > I agree with Justin here.  What is the need to remove the
> > dependency
> > > on
> > > > > > javacc - especially since it is build-time only?
> > > > > >
> > > > > > Art
> > > > > >
> > > > > >
> > > > > > On Fri, Jan 17, 2025 at 1:11 PM Justin Bertram <
> > jbert...@apache.org>
> > > > > > wrote:
> > > > > >
> > > > > > > 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
> > > > > > > >
> > > > > > >
> > > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> > > > For additional commands, e-mail: dev-h...@activemq.apache.org
> > > > For further information, visit: https://activemq.apache.org/contact
> > > >
> > > >
> > > >
> > >
> >
>

Reply via email to