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

Reply via email to