@Gary Tully <gary.tu...@gmail.com> - thank you for the clarification.
@Christopher Shannon <christopher.l.shan...@gmail.com> - for my personal learning -- do you have a link to a good read on what it takes to support JDK 11? Or can you give a brief list of issues? I'm curious of the technical parts involved. Art On Thu, Nov 29, 2018 at 8:14 AM Jamie G. <jamie.goody...@gmail.com> wrote: > JDK 11 support sounds great :) > On Thu, Nov 29, 2018 at 11:34 AM Jean-Baptiste Onofré <j...@nanthrax.net> > wrote: > > > > It sounds good for JDK 11. It's something I planned to start for a while > > (now that JDK 11 support is complete in Karaf). Don't hesitate to ping > > me if I can help. > > > > Thanks > > Regards > > JB > > > > On 29/11/2018 16:02, Christopher Shannon wrote: > > > I'm actually working on getting JDK 11 support right now. The idea is > > > ActiveMQ will still have a compile/runtime target of JDK 8 but will run > > > without issue on JDK 11 and be able to be built with JDK 11 etc. We > need > > > to have that done before going to 5.16.0 as long as a bunch of > dependency > > > updates. Otherwise there isn't anything else stopping us from doing a > > > 5.16.0 > > > > > > On Thu, Nov 29, 2018 at 9:03 AM Clebert Suconic < > clebert.suco...@gmail.com> > > > wrote: > > > > > >> iMHO since you are now a commuter you have the power to call it > 5,16.0. And > > >> even make a release when you are ready. > > >> > > >> On Thu, Nov 29, 2018 at 7:53 AM Jamie G. <jamie.goody...@gmail.com> > wrote: > > >> > > >>> Hi Gary, > > >>> > > >>> Just want to clarify, you're asking to wait for 5.16.0 to be > released, > > >>> than bring in the refactoring effort? > > >>> > > >>> If you feel 5.16.0 is imminent than I'm happy to hold off. I'd prefer > > >>> to get this in sooner rather than later so as to reduce the amount of > > >>> rebasing/cherry picking i need to do in the meantime. > > >>> > > >>> By the way, thank you for the support and looking at the code. I > > >>> really appreciate it :) > > >>> > > >>> Cheers, > > >>> Jamie > > >>> On Thu, Nov 29, 2018 at 8:56 AM Gary Tully <gary.tu...@gmail.com> > wrote: > > >>>> > > >>>> Hey Arthur, > > >>>> I am not asserting that they need to be small. > > >>>> I am pointing out that they currently are small changes; there has > > >>>> been no significant refactor to date; it is all very conservative. > > >>>> Release 5.16.0 as a line in the sand, then move code around to make > it > > >>>> better etc.. go for it. > > >>>> > > >>>> I know too well it is not perfect and I think it is great that there > > >>>> is interest in making it better. > > >>>> > > >>>> On Wed, 28 Nov 2018 at 16:22, Arthur Naseef <a...@amlinv.com> wrote: > > >>>>> > > >>>>> Hey Gary - I agree that these changes belong on a minor version > > >>> increase. > > >>>>> > > >>>>> What I don't understand is the assertion that the changes between > > >>> 5.15.x > > >>>>> and 5.16.0 need to be small. Given that the minor version bump can > > >>> mean > > >>>>> significant changes, as long as they are backward compatible, I see > > >> no > > >>>>> reason to adhere to a small set of changes between 5.15.x and > 5.16.0. > > >>> Add > > >>>>> to that fact that ActiveMQ's minor releases are sometimes really > > >> major > > >>>>> changes (i.e. include breaking changes), and that makes even less > > >>> sense. > > >>>>> > > >>>>> Is there something more to this that perhaps I'm missing? > > >>>>> > > >>>>> Making the code more maintainable by the community, as ActiveMQ is > an > > >>>>> Apache *community* project, is the goal. As for it being > maintained > > >>> for 7 > > >>>>> years, that's great. However, I'm sure you'll agree it's not > > >> perfect, > > >>> and > > >>>>> community improvements are welcome. > > >>>>> > > >>>>> Art > > >>>>> > > >>>>> > > >>>>> On Wed, Nov 28, 2018 at 3:30 AM Gary Tully <gary.tu...@gmail.com> > > >>> wrote: > > >>>>> > > >>>>>> Jamie, > > >>>>>> you are missing my point. it is a tradeoff plain and simple. > easier > > >>> to > > >>>>>> maintain for who? It has been carefully maintained for more than 7 > > >>>>>> years. > > >>>>>> Do refactoring at the beginning of a release cycle, not at the > end. > > >>>>>> diffs between 5.15.x and 5.16 will be meaningless otherwise. > > >>>>>> push out 5.16.0, which has loads of incremental (non refactored) > > >>> small > > >>>>>> changes. Then refactor away on master for 5.17.0 and make it > better > > >>> in > > >>>>>> any way that works for the future and for you. > > >>>>>> On Tue, 27 Nov 2018 at 15:34, Jamie G. <jamie.goody...@gmail.com> > > >>> wrote: > > >>>>>>> > > >>>>>>> Hi Gary, > > >>>>>>> > > >>>>>>> To address your concerns: > > >>>>>>> > > >>>>>>> 1. The code is being cleaned up, not completely rewritten. This > > >> is > > >>>>>>> making it easier to maintain over the monolithic classes. It's > > >>> also > > >>>>>>> why it was brought to the community… to review it and be sure the > > >>>>>>> changes are just cleaning it up. There was no intent to change > > >> the > > >>>>>>> logic for the reason that you suggested. > > >>>>>>> > > >>>>>>> 2. I answered above, its easy on the back port as we can just > > >> make > > >>> it > > >>>>>>> a part of 5.15.9 (too my understanding the community supports > > >>> master > > >>>>>>> and the last release branch). There are little differences > > >>> between 16 > > >>>>>>> and 15.9 in the KahaDB realm. So placing it in 15.9 does not > > >>> change > > >>>>>>> any way it operates or works. It only cleans up the readability > > >> of > > >>>>>>> the code. > > >>>>>>> > > >>>>>>> > > >>>>>>> "A dream you dream alone is only a dream. A dream you dream > > >>> together > > >>>>>>> is reality." > > >>>>>>> > > >>>>>>> ― John Lennon > > >>>>>>> > > >>>>>>> > > >>>>>>> Cheers, > > >>>>>>> Jamie > > >>>>>>> On Tue, Nov 27, 2018 at 8:29 AM Gary Tully <gary.tu...@gmail.com > > >>> > > >>> wrote: > > >>>>>>>> > > >>>>>>>> Hi Jamie G, > > >>>>>>>> There are a few trade offs to consider: > > >>>>>>>> 1) those familiar with the code will have to reacquaint > > >>> themselves > > >>>>>>>> with anything that is refactored > > >>>>>>>> 2) backporting fixes will be more difficult when the code > > >>> structure > > >>>>>> changes > > >>>>>>>> > > >>>>>>>> Of the two, I think #2 is more critical. > > >>>>>>>> > > >>>>>>>> On #1: > > >>>>>>>> context builds up over time and code structure is an integral > > >>> part of > > >>>>>>>> that, for better or for worse. > > >>>>>>>> Switching context is not something us humans like doing, most > > >>>>>>>> especially when stability is a key concern. > > >>>>>>>> > > >>>>>>>> Refactoring with purpose (for a new feature) can be great, > > >> doing > > >>> it at > > >>>>>>>> this stage for readability may be less great. > > >>>>>>>> > > >>>>>>>> Mr. W. B. Yeats put it nicely: "tread softly because you tread > > >>> on my > > >>>>>> dreams" > > >>>>>>>> > > >>>>>>>> s/dreams/mental model/ > > >>>>>>>> On Mon, 26 Nov 2018 at 19:44, Christopher Shannon > > >>>>>>>> <christopher.l.shan...@gmail.com> wrote: > > >>>>>>>>> > > >>>>>>>>> I didn't say I definitely wouldn't support it but I just want > > >>> to > > >>>>>> make sure > > >>>>>>>>> we are careful and the benefits of the refactor (in this case > > >>>>>> improved > > >>>>>>>>> maintainability) are really going to be worth the risk > > >>> specifically > > >>>>>> because > > >>>>>>>>> of the component being touched. Too often things get > > >>> committed and > > >>>>>> then > > >>>>>>>>> issues are uncovered with the patch later that were missed. > > >>>>>>>>> > > >>>>>>>>> Some parts of the broker are critical and this is one of them > > >>>>>> because a bug > > >>>>>>>>> that corrupts a store could lead to losing lots of production > > >>> data > > >>>>>> which is > > >>>>>>>>> a very different type of bug than a random web console bug or > > >>>>>> transport > > >>>>>>>>> error that just causes an error with a single client or with > > >> a > > >>> single > > >>>>>>>>> message. Granted the risk of a critical bug being introduced > > >>> with a > > >>>>>>>>> refactor like this is not very high but if there is one it > > >>> could have > > >>>>>>>>> pretty bad consequences. > > >>>>>>>>> > > >>>>>>>>> Now all that being said ... as long as we are careful to make > > >>> sure > > >>>>>> all > > >>>>>>>>> tests pass and have a few people thoroughly review it (such > > >> as > > >>> Gary > > >>>>>> who has > > >>>>>>>>> the most experience out of anyone in KahaDB) then I would +1 > > >>> the > > >>>>>> change for > > >>>>>>>>> a 5.16.0 release. > > >>>>>>>>> > > >>>>>>>>> On Mon, Nov 26, 2018 at 2:07 PM Arthur Naseef < > > >> a...@amlinv.com> > > >>>>>> wrote: > > >>>>>>>>> > > >>>>>>>>>> Improving the existing code is a great goal. > > >>>>>>>>>> > > >>>>>>>>>> While cleaning up code is nice KahaDB has gotten pretty > > >>> stable > > >>>>>> over the > > >>>>>>>>>>> years and doing a bunch of refactoring just opens it up > > >> to > > >>> new > > >>>>>> bugs that > > >>>>>>>>>>> have to be fixed. Fixing bugs is not a problem however I > > >>> tend > > >>>>>> to be more > > >>>>>>>>>>> sensitive to store related changes because of the > > >> possible > > >>> data > > >>>>>> loss or > > >>>>>>>>>>> corruption issues to production data that can occur from > > >>> store > > >>>>>> bugs vs > > >>>>>>>>>> some > > >>>>>>>>>>> other random bug in the broker. > > >>>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> I understand the desire to avoid the risk of introducing > > >>> bugs. > > >>>>>> However, as > > >>>>>>>>>> long as the project is active and maintained, that really > > >>> isn't a > > >>>>>> valid > > >>>>>>>>>> approach to its maintenance overall. > > >>>>>>>>>> > > >>>>>>>>>> So that leads us to the question of risk mitigation. > > >>> Build-time > > >>>>>> tests are > > >>>>>>>>>> an industry standard, and ActiveMQ certainly has a large > > >>> number of > > >>>>>> such > > >>>>>>>>>> tests. Code reviews are another best-practice, and there > > >> are > > >>>>>> multiple > > >>>>>>>>>> individuals looking at these code changes now. More are > > >>> always > > >>>>>> welcome, > > >>>>>>>>>> and access is certainly not a problem! > > >>>>>>>>>> > > >>>>>>>>>> If there are specific concerns within the code changes, > > >> let's > > >>>>>> discuss > > >>>>>>>>>> them. It'll be great to have actual technical discussions! > > >>>>>>>>>> > > >>>>>>>>>> As for the concern that this is the broker's storage, > > >> similar > > >>>>>> arguments > > >>>>>>>>>> could be made for just about any part of the code. > > >> Reliable > > >>>>>> handling of > > >>>>>>>>>> messages is ActiveMQ's core benefit to its users. > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>>> FWIW, the current community goal is for ActiveMQ Artemis > > >> to > > >>>>>> become > > >>>>>>>>>> ActiveMQ > > >>>>>>>>>> > > >>>>>>>>>> 6.x when acceptable feature parity is reached (which is > > >>> actively > > >>>>>> being > > >>>>>>>>>>> worked on). > > >>>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> Whether Artemis will eventually become ActiveMQ 6.x is not > > >>>>>> pertitent to > > >>>>>>>>>> this discussion. Let's not open that discussion as part of > > >>> this > > >>>>>> technical > > >>>>>>>>>> code conversation. > > >>>>>>>>>> > > >>>>>>>>>> Making the existing code base, which has heavy usage in the > > >>>>>> industry, more > > >>>>>>>>>> maintainable is always a good goal to achieve. And having > > >>> more > > >>>>>> folks in > > >>>>>>>>>> the community engaging in working on the project can only > > >>> benefit > > >>>>>> the > > >>>>>>>>>> entire community regardless of the long-term destination. > > >>>>>>>>>> > > >>>>>>>>>> Art > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> On Mon, Nov 26, 2018 at 10:22 AM Justin Bertram < > > >>>>>> jbert...@apache.org> > > >>>>>>>>>> wrote: > > >>>>>>>>>> > > >>>>>>>>>>> FWIW, the current community goal is for ActiveMQ Artemis > > >> to > > >>>>>> become > > >>>>>>>>>> ActiveMQ > > >>>>>>>>>>> 6.x when acceptable feature parity is reached (which is > > >>> actively > > >>>>>> being > > >>>>>>>>>>> worked on). > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> Justin > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> On Mon, Nov 26, 2018 at 11:01 AM Jamie G. < > > >>>>>> jamie.goody...@gmail.com> > > >>>>>>>>>>> wrote: > > >>>>>>>>>>> > > >>>>>>>>>>>> The idea here is to ensure that it’s development and > > >>>>>> maintenance > > >>>>>>>>>>>> moving forward is easier as we work to make it better > > >> in > > >>> the > > >>>>>> future. > > >>>>>>>>>>>> > > >>>>>>>>>>>> KahaDB currently has massive classes (KahaDBStore, > > >>>>>> MessageDatabase) > > >>>>>>>>>>>> and code base and is extremely hard to follow. My > > >>> desire to > > >>>>>> do this > > >>>>>>>>>>>> was to make this so we could make the continued > > >>> maintenance > > >>>>>> easier and > > >>>>>>>>>>>> also make it more inviting to improvements. The unit > > >>> tests > > >>>>>> all pass, > > >>>>>>>>>>>> so as long as we have a good solid testing coverage, > > >> the > > >>> risks > > >>>>>> are not > > >>>>>>>>>>>> huge. If a bug appears to be introduced, than we may > > >>> have > > >>>>>> uncovered a > > >>>>>>>>>>>> testing hole - finding these is a good thing. > > >>>>>>>>>>>> > > >>>>>>>>>>>> Since we are going to continue to support ActiveMQ > > >> moving > > >>>>>> forward, > > >>>>>>>>>>>> it’s a good idea to make it more maintainable. My > > >>> motivation > > >>>>>> to doing > > >>>>>>>>>>>> this was spurred by the recent JIRAs surrounding > > >> KahaDB I > > >>>>>> helped out > > >>>>>>>>>>>> upon. I really believe this is a good improvement to > > >>> help > > >>>>>> moving > > >>>>>>>>>>>> ActiveMQ forward. > > >>>>>>>>>>>> On Mon, Nov 26, 2018 at 12:33 PM Christopher Shannon > > >>>>>>>>>>>> <christopher.l.shan...@gmail.com> wrote: > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> I'm not really sure this is worthwhile or something > > >> we > > >>> want > > >>>>>> to do...I > > >>>>>>>>>>>> would > > >>>>>>>>>>>>> have to think about it more before I gave it a +1. > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> While cleaning up code is nice KahaDB has gotten > > >> pretty > > >>>>>> stable over > > >>>>>>>>>> the > > >>>>>>>>>>>>> years and doing a bunch of refactoring just opens it > > >>> up to > > >>>>>> new bugs > > >>>>>>>>>>> that > > >>>>>>>>>>>>> have to be fixed. Fixing bugs is not a problem > > >>> however I > > >>>>>> tend to be > > >>>>>>>>>>> more > > >>>>>>>>>>>>> sensitive to store related changes because of the > > >>> possible > > >>>>>> data loss > > >>>>>>>>>> or > > >>>>>>>>>>>>> corruption issues to production data that can occur > > >>> from > > >>>>>> store bugs > > >>>>>>>>>> vs > > >>>>>>>>>>>> some > > >>>>>>>>>>>>> other random bug in the broker. > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> On Sun, Nov 25, 2018 at 11:59 PM Jean-Baptiste > > >> Onofré < > > >>>>>>>>>> j...@nanthrax.net > > >>>>>>>>>>>> > > >>>>>>>>>>>>> wrote: > > >>>>>>>>>>>>> > > >>>>>>>>>>>>>> OK, got it. It's more a syntax/codebase > > >> organization > > >>>>>> refactoring. > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> If there's no impact on the behavior and features, > > >>> +1 from > > >>>>>> my side. > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> Regards > > >>>>>>>>>>>>>> JB > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> On 25/11/2018 21:21, Jamie G. wrote: > > >>>>>>>>>>>>>>> Initially its to make KahaDB classes easier to > > >>> read & > > >>>>>> maintain. > > >>>>>>>>>>>>>>> Eventually it will help in features/performance; > > >>> smaller > > >>>>>> classes > > >>>>>>>>>>> are > > >>>>>>>>>>>>>>> easier to grok, easier to see improvements. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Instead of trying to refactor all of it in one > > >> go, > > >>> I'm > > >>>>>> taking the > > >>>>>>>>>>>>>>> approach of one area at a time. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> One pass for breaking out objects. > > >>>>>>>>>>>>>>> Another pass for small functional improvements. > > >>>>>>>>>>>>>>> Perhaps future passes for new Java features > > >> (bring > > >>> all > > >>>>>> code up to > > >>>>>>>>>>>> Java > > >>>>>>>>>>>>>>> 8 perhaps?). > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> On Sun, Nov 25, 2018 at 4:32 PM Jean-Baptiste > > >>> Onofré < > > >>>>>>>>>>>> j...@nanthrax.net> > > >>>>>>>>>>>>>> wrote: > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Hi Jamie, > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> That's interesting. > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> What's the rationale behind the refactoring ? > > >> New > > >>>>>> features or > > >>>>>>>>>> perf > > >>>>>>>>>>>>>>>> improvements ? > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Regards > > >>>>>>>>>>>>>>>> JB > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> On 25/11/2018 20:16, Jamie G. wrote: > > >>>>>>>>>>>>>>>>> Hi All, > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> I've taken some time to prototype a refactored > > >>>>>> KahaDBStore > > >>>>>>>>>> class: > > >>>>>>>>>>>>>>>>> > > >>>>>> https://github.com/jgoodyear/activemq/tree/KahaDBRefactor > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> As KahaDBStore exists in Master, it contains 7 > > >>> internal > > >>>>>>>>>> classes, > > >>>>>>>>>>>> over > > >>>>>>>>>>>>>>>>> some 1677 lines of code. > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> In my refactor branch I've separated out those > > >>> classes > > >>>>>> into > > >>>>>>>>>> their > > >>>>>>>>>>>> own > > >>>>>>>>>>>>>>>>> files, and applied some gentle clean code > > >>> practices to > > >>>>>> help > > >>>>>>>>>> make > > >>>>>>>>>>>> these > > >>>>>>>>>>>>>>>>> files easier to read and maintain. > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> I'd like to gather feed back from the > > >> community; > > >>> I've > > >>>>>> taken > > >>>>>>>>>> care > > >>>>>>>>>>> to > > >>>>>>>>>>>>>>>>> change functionality as little as possible - > > >> the > > >>> aim > > >>>>>> here is to > > >>>>>>>>>>>> reduce > > >>>>>>>>>>>>>>>>> complexity and improve maintainability. If the > > >>>>>> community feels > > >>>>>>>>>>>> this is > > >>>>>>>>>>>>>>>>> a worth while goal than I'll open a card on > > >> Jira > > >>> & > > >>>>>> prepare a > > >>>>>>>>>> PR. > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Notes: > > >>>>>>>>>>>>>>>>> ActiveMQ KahaDB Store and ActiveMQ-Unit-Tests > > >>> suites > > >>>>>> remain > > >>>>>>>>>>>> passing > > >>>>>>>>>>>>>>>>> after refactor. > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Cheers, > > >>>>>>>>>>>>>>>>> Jamie > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> -- > > >>>>>>>>>>>>>>>> Jean-Baptiste Onofré > > >>>>>>>>>>>>>>>> jbono...@apache.org > > >>>>>>>>>>>>>>>> http://blog.nanthrax.net > > >>>>>>>>>>>>>>>> Talend - http://www.talend.com > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> -- > > >>>>>>>>>>>>>> Jean-Baptiste Onofré > > >>>>>>>>>>>>>> jbono...@apache.org > > >>>>>>>>>>>>>> http://blog.nanthrax.net > > >>>>>>>>>>>>>> Talend - http://www.talend.com > > >>>>>>>>>>>>>> > > >>>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>> > > >>>>>> > > >>> > > >> -- > > >> Clebert Suconic > > >> > > > > > > > -- > > Jean-Baptiste Onofré > > jbono...@apache.org > > http://blog.nanthrax.net > > Talend - http://www.talend.com >