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

Reply via email to