On 8/22/23 15:21, Matt Pavlovich 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.
This is incorrect, the ActiveMQ 5.x code and others in C++ and .NET were
generated using the module 'activemq-openwire-generator' in the 5.x
source tree either directly (java) or by extension (CMS and NMS).
The CMS and NMS openwire bits had their own projects that extended the
in-built generator module to create their native openwire marshallers
and did not use the native language bits in the broker codebase (those
were contributed by other users for also abandoned client impls). Any
native language client would likely do this as their marshaller code and
the openwire commands would generally be very specific to the library
and its implementation details.
The CMS generator project is here for context:
https://github.com/apache/activemq-cpp/blob/master/activemq-cpp-openwire-generator/pom.xml
I believe there is a separate git repo for the NMS openwire client as
that is also a Java based tool.
I'd doubt that any of these would work today as they relied on hacks
that if I recall correctly no longer work with modern JDKs at least not
as they stand now. You will likely need to do some work to get them
running (I can't even recall now the commands needed to do it in the past).
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