On 8/23/23 13:11, Arthur Naseef wrote:
That sounds right.  My 2cents - it would be nice to figure out the closest
thing to a working flow that we can get, and then worry about cleanup.

Art

I spent a little time just to resurrect some knowledge on this, here's the basics

To run the generator in the ActiveMQ source tree you need to enable the profile in the activemq-client module for the openwire generator and use the generate sources goal:

   mvn -P openwire-generate generate-sources

This will at least try and generate the sources, the profile configuration tells it what the highest version is to generate in an ant task which needs to be moved to an ant target now as task is deprecated and will fall on its face until you do so.  Then it will actually try and do something, so if you added openwire v13 you'd change it or leave it at v12 and see if you can generate matching output and run the above command at which point it will fall on its face if you are on JDK 17 as the underlying javadoc types used by the generator are relocated to 'jdk.javadoc.doclet' and renamed or refactored into something close but not quite the same.  So then you run it on JDK 11 and it will fall on its face with an NPE that I didn't bother to look deeper into but at least you have a starting point.

Likely the ancient annogen and gram stuff just won't work on a newer JDK, you could try running it on lower versions but the maven configuration will likely be unhappy as the compiler configuration is set to target 11 currently.

Hopefully that at least gets you pointed in the right direction, frustrating as it may be.



On Wed, Aug 23, 2023 at 4:30 AM Christopher Shannon <
christopher.l.shan...@gmail.com> wrote:

So maybe the activemq-openwire project should just be deprecated and go
away since it is not used or maintained.

It has been several years now but I'm pretty sure I just used the
activemq-openwire-generator 5.x module (as Tim mentioned) to generate the
latest v12 Openwire version that is in use today.

https://github.com/apache/activemq/commit/3953b9aaefaee914bdd0702f27aef47c021ceb27

On Tue, Aug 22, 2023 at 5:49 PM Arthur Naseef <a...@amlinv.com> wrote:

Thank you Tim.  That helps.

Art


On Tue, Aug 22, 2023 at 2:23 PM Timothy Bish <tabish...@gmail.com>
wrote:
On 8/22/23 15:28, Arthur Naseef wrote:
I'd like to ask first to get some clarification.

Using the activemq-openwire project, I was able to get it to generate
openwire Java code, but that code did not exactly match the code in
the
activemq codebase.  It appeared to be mostly non-functional
differences,
such as packages being renamed, and import statements vs.
full-qualified
class names in the code.

Here are my questions:

     - What is the process for building and releasing a new version of
the
     openwire protocol?
There is no process other than running the generator in the ActiveMQ
tree if you can get it to run, I don't recall if there's anything
written down now that explains it as it has been years since I touched
it and my memory is foggy.  I vaguely recall there being an antrun
target in the pom file to run the generator so something like 'mvn
antrun:run'.

possibly some insights here:


https://github.com/apache/activemq-nms-openwire-generator/blob/d16ff371fecade87f97942cdf0174ab790bc999c/pom.xml#L172

     - Where are the NMS and C++ parts generated?  Are there others
generated
     as well?
I already answered this, please read my previous response.


     - How much manual intervention is needed in that process (e.g.
are
the
     java files generated, then copied and editted before being
committed
in the
     main project)?
I don't recall anymore if there is much intervention needed other than
generating the new marshallers but I do recall that KahaDB has some
settings that indicate which version it uses as a baseline.  I'd look
at
git commits in the 5.x code around the marshaller version code and see
what was touched in the commit.


Art


On Tue, Aug 22, 2023 at 12:22 PM Matt Pavlovich <mattr...@gmail.com>
wrote:
Hi-

The activmeq-openwire project is currently hosted in a separate git
repository. The project is used to generate marshaller classes for
multiple
languages and would be suitable for supporting multi-broker openwire
support as well (5.x and Artemis). However, it does not appear to be
active
in any build lifecycle or toolchain for any of the ActiveMQ
projects.
I propose that we host the activemq-openwire project in the main 5.x
tree
for a couple reasons:

1. JDK changes and overall maintenance is easier from a single repo.
We
can add notes able compatibility or a README-VERSIONS.md to note
what
product releases go to which protocol versions, and when those
protocol
versions changed.

2. ActiveMQ 5.x uses openwire as its internal native protocol. It
makes
sense to host it there, especially of things like enhancements to
network
connector commands, which other client libraries and brokers usually
do
not
adopt fully.

3. There are planned enhancements coming that most likely require
openwire
version bumps:
      - JMS 2.0 support features
      - Replication support (using Network Connectors)

Discuss.

Thank you,
Matt Pavlovich


--
Tim Bish



--
Tim Bish

Reply via email to