Thanks Tim! I added these notes and created a new ticket to modernize the tooling.
https://issues.apache.org/jira/browse/AMQ-9302 Thanks, Matt Pavlovich > On Aug 23, 2023, at 1:59 PM, Timothy Bish <tabish...@gmail.com> wrote: > > 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 >