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

Reply via email to