For those of you who didn't see on slack: I did update Chainsaw last
night so you can load/save receivers.  That brings Chainsaw back into
a usable state(in my mind at least).  I need to check to ensure that
everything gets saved properly, but that shouldn't be too hard.

Scott, would you mind making some issues on github for features that
are needed/were removed?  I think one of the biggest problems that I
have seen with Chainsaw before is that there isn't a manual(at least
now somewhat mitigated) and/or a list of features and how to use them,
so I've just been going with what I feel makes the most sense to me.

The one thing that Scott pointed out was the ability to route messages
to tabs; all the plumbing for that should exist for the most part(each
ChainsawReceiver can have 0...N ChainsawEventBatchListener objects).
I'm not sure how best to let the user hook things up - some sort of
visual programming/flow-based view would be very cool but also very
complicated.

-Robert Middleton

On Mon, Oct 9, 2023 at 3:24 PM Christian Grobmeier <grobme...@apache.org> wrote:
>
> On Sun, Oct 8, 2023, at 23:19, Scott Deboy wrote:
> > I started but haven't had much time this week. The UI updates driven by
> > settings changes are most of what I have left.
>
> OK great to hear, in that case I hold myself back a little longer :)
>
> Thanks!
>
> >
> > On Sun, Oct 8, 2023, 2:17 PM Christian Grobmeier <grobme...@apache.org>
> > wrote:
> >
> >> geson seems to do a good job, like Jackson (same JSR).
> >> I'd like to move forward with JSON format for storing properties.
> >>
> >> I am not sure what the status currently is, if Scott is still working on
> >> it :) I could also make some kind of proposal or so for storing properties
> >>
> >> On Tue, Oct 3, 2023, at 01:20, Scott Deboy wrote:
> >> > I think persisting to json format makes sense/would be easy to consume
> >> > with tools if needed.
> >> >
> >> > On 10/2/23, Robert Middleton <rmiddle...@apache.org> wrote:
> >> >>> OK. Do you think something based on Jackson would be good? It's JSON
> >> >>> though.
> >> >>
> >> >> We already have a dependency on genson for JSON parsing, so if we
> >> >> really want to use JSON that would make the most sense.  Commons
> >> >> config can read/write XML; currently I just have it configured to do
> >> >> properties files.  I think we can write our own reader/writer as well,
> >> >> but ultimately I don't think that there is anything special that we
> >> >> need that commons config doesn't provide us out of the box.
> >> >>
> >> >> -Robert Middleton
> >> >>
> >> >> On Mon, Oct 2, 2023 at 5:14 PM Matt Sicker <m...@musigma.org> wrote:
> >> >>>
> >> >>> Jackson makes for a good library here because it also supports several
> >> >>> data formats (YAML, XML, HOCON, and all sorts of others, both textual
> >> and
> >> >>> binary) and is fairly extensible for hooking any custom serialization
> >> or
> >> >>> deserialization logic you need. Given the desire to avoid Java
> >> >>> serialization, it is perfectly reasonable to avoid XStream as that’s
> >> >>> basically Java serialization using XML with all the pitfalls that
> >> entails
> >> >>> (I dealt with this fairly extensively back in the Jenkins project which
> >> >>> used an old fork of XStream for managing config files and state).
> >> >>>
> >> >>> I haven’t used Commons Configuration before, but it seems fairly
> >> >>> appropriate for this sort of thing as well.
> >> >>>
> >> >>> > On Oct 2, 2023, at 1:43 PM, Christian Grobmeier <
> >> grobme...@apache.org>
> >> >>> > wrote:
> >> >>> >
> >> >>> > On Mon, Oct 2, 2023, at 16:15, Robert Middleton wrote:
> >> >>> >> At least two reasons I can think of:
> >> >>> >> 1. Xstream doesn’t work on all java versions as you saw
> >> >>> >> 2. Simplify by using the commons config instead of rolling our own.
> >> >>> >>
> >> >>> >> Each tab should now have just one config file, the idea being that
> >> you
> >> >>> >> can
> >> >>> >> now share config files between people.  Before each tab had at least
> >> >>> >> two(maybe three) files.  One was the xml config, one was a java
> >> >>> >> serialized
> >> >>> >> map.  Removing the java serialization is important.
> >> >>> >
> >> >>> > OK. Do you think something based on Jackson would be good? It's JSON
> >> >>> > though.
> >> >>> >
> >> >>> > From an example:
> >> >>> >
> >> >>> > ObjectMapper objectMapper = new ObjectMapper();
> >> >>> > Car car = new Car("yellow", "renault");
> >> >>> > objectMapper.writeValue(new File("target/car.json"), car);
> >> >>> >
> >> >>> > We could wrap this in some kind of class and make it accessible per
> >> >>> > "tab" (or whatever).
> >> >>> >
> >> >>> >
> >> >>> >>
> >> >>> >> -Robert Middleton
> >> >>> >>
> >> >>> >> On Mon, Oct 2, 2023 at 6:12 AM Christian Grobmeier
> >> >>> >> <grobme...@apache.org>
> >> >>> >> wrote:
> >> >>> >>
> >> >>> >>>
> >> >>> >>> On Mon, Oct 2, 2023, at 02:55, Robert Middleton wrote:
> >> >>> >>>> Some(most?) of the settings should be saved:
> >> >>> >>>>
> >> >>> >>>
> >> https://github.com/apache/logging-chainsaw/blob/5ccb3c8e55dffd4361c549c3bcdac3f3675f79e5/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java#L191
> >> >>> >>>>
> >> >>> >>>> The stuff that is commented out should just be the old saving code
> >> >>> >>>> that
> >> >>> >>>> used XStream to save the data out.
> >> >>> >>>
> >> >>> >>> You made it using this commit (thank you, its easy to track):
> >> >>> >>>
> >> >>> >>>
> >> https://github.com/apache/logging-chainsaw/commit/75bedf98665188eef4d13e4bfbb4b0dae456f65e
> >> >>> >>>
> >> >>> >>> One question: why did we remove Xstream? it seem there was an
> >> update
> >> >>> >>> late
> >> >>> >>> 2022 to address some security.
> >> >>> >>> Should we just re-enable it or was there other reasons too?
> >> >>> >>>
> >> >>> >>>
> >> >>> >>>
> >> >>> >>>
> >> >>> >>>>
> >> >>> >>>> -Robert Middleton
> >> >>> >>>>
> >> >>> >>>> On Sun, Oct 1, 2023 at 3:39 PM Christian Grobmeier
> >> >>> >>>> <grobme...@apache.org
> >> >>> >>>>
> >> >>> >>>> wrote:
> >> >>> >>>>
> >> >>> >>>>>
> >> >>> >>>>> On Sun, Oct 1, 2023, at 21:28, Scott Deboy wrote:
> >> >>> >>>>>> The ability to route events to tabs is a core feature in the
> >> code
> >> >>> >>>>>> -
> >> >>> >>>>>> that's how Chainsaw log messages end up in a Chainsaw-specific
> >> tab
> >> >>> >>>>>> -
> >> >>> >>>>>> but the ability to control that routing via a 'routing
> >> expression'
> >> >>> >>>>>> was
> >> >>> >>>>>> nuked from app-wide preferences - another thing we should bring
> >> >>> >>>>>> back.
> >> >>> >>>>>>
> >> >>> >>>>>> It looks like we lost a lot of prefs, both panel-level and
> >> >>> >>>>>> app-wide
> >> >>> >>>>> prefs.
> >> >>> >>>>>
> >> >>> >>>>> Yes, I think all prefs are somehow gone. At least everything that
> >> >>> >>>>> is
> >> >>> >>>>> writes to a file seems to be commented.
> >> >>> >>>>> I didn't remove those things yet, as they seemed to big and I
> >> >>> >>>>> didn't
> >> >>> >>>>> understand well how they'd work or how I would test (I lack the
> >> >>> >>> knowledge
> >> >>> >>>>> of how the UI should operate but only see what is there now)
> >> >>> >>>>>
> >> >>> >>>>>
> >> >>> >>>>>>
> >> >>> >>>>>> Scott
> >> >>> >>>>>>
> >> >>> >>>>>> On 10/1/23, Robert Middleton <rmiddle...@apache.org> wrote:
> >> >>> >>>>>>> I would say the saving/loading of settings is probably the main
> >> >>> >>> thing to
> >> >>> >>>>>>> fix - if I remember correctly, it kinda works at the moment.
> >> Part
> >> >>> >>>>>>> of
> >> >>> >>>>> the
> >> >>> >>>>>>> issue with what it did before was that the settings were
> >> >>> >>>>>>> scattered
> >> >>> >>> among
> >> >>> >>>>>>> several different files with no apparent rhyme or reason, and
> >> >>> >>> converting
> >> >>> >>>>>>> them to one file I'm not sure if everything works.
> >> >>> >>>>>>>
> >> >>> >>>>>>> The one feature that I'm pretty sure doesn't exist is the
> >> ability
> >> >>> >>>>>>> to
> >> >>> >>>>> have
> >> >>> >>>>>>> multiple log messages go to one tab, but I don't think that is
> >> >>> >>> critical
> >> >>> >>>>> for
> >> >>> >>>>>>> release.  In order to properly support that I think requires a
> >> >>> >>>>>>> bit
> >> >>> >>> more
> >> >>> >>>>>>> planning on both the UI side(so you can know how things are
> >> >>> >>>>>>> routed)
> >> >>> >>> and
> >> >>> >>>>> on
> >> >>> >>>>>>> the back-end side(to do the actual routing).
> >> >>> >>>>>>>
> >> >>> >>>>>>> -Robert Middleton
> >> >>> >>>>>>>
> >> >>> >>>>>>> On Sun, Oct 1, 2023 at 3:14 PM Christian Grobmeier <
> >> >>> >>>>> grobme...@apache.org>
> >> >>> >>>>>>> wrote:
> >> >>> >>>>>>>
> >> >>> >>>>>>>> On Sun, Oct 1, 2023, at 20:59, Scott Deboy wrote:
> >> >>> >>>>>>>>> It's great to see the contribution, thanks Christian!
> >> >>> >>>>>>>>>
> >> >>> >>>>>>>>> I pulled down latest master and it looks like there are some
> >> UI
> >> >>> >>>>>>>>> glitches we should fix - for example, resizing the logger
> >> tree
> >> >>> >>> pane
> >> >>> >>>>>>>>> doesn't render correctly.
> >> >>> >>>>>>>>>
> >> >>> >>>>>>>>> As I mentioned before, I assume there are a bunch of features
> >> >>> >>>>>>>>> we
> >> >>> >>> lost
> >> >>> >>>>>>>>> when we moved from log4j1 - some may not be critical, but I
> >> >>> >>>>>>>>> think
> >> >>> >>>>>>>>> persisting 'default' tab settings is pretty important if it's
> >> >>> >>>>>>>>> not
> >> >>> >>>>>>>>>
> >> >>> >>>>>>>>> I'd like us to at least support the log4j2 zeroconf
> >> >>> >>>>>>>>> functionality
> >> >>> >>> as
> >> >>> >>>>>>>>> well as VFSLogFilePatternReceiver.
> >> >>> >>>>>>>>>
> >> >>> >>>>>>>>> I'm happy to dig in - will look at latest master and
> >> >>> >>>>>>>>> contribute.
> >> >>> >>>>>>>>
> >> >>> >>>>>>>> I would be more than glad if you could take some kind of a
> >> lead
> >> >>> >>> here.
> >> >>> >>>>> My
> >> >>> >>>>>>>> Swing-foo is long time gone and so far I just tried to clean a
> >> >>> >>>>>>>> few
> >> >>> >>>>> things
> >> >>> >>>>>>>> or make the code more comprehensible.
> >> >>> >>>>>>>>
> >> >>> >>>>>>>> I will keep trying to extracting things, making classes a bit
> >> >>> >>> smaller
> >> >>> >>>>> if
> >> >>> >>>>>>>> possible. I will closely follow what you are doing and try to
> >> >>> >>>>>>>> learn
> >> >>> >>>>> from
> >> >>> >>>>>>>> it.
> >> >>> >>>>>>>>
> >> >>> >>>>>>>> Maybe, once we can persist tab settings and then release it,
> >> no
> >> >>> >>> matter
> >> >>> >>>>>>>> how
> >> >>> >>>>>>>> the rest of the cleanup is.
> >> >>> >>>>>>>>
> >> >>> >>>>>>>>
> >> >>> >>>>>>>>>
> >> >>> >>>>>>>>> Scott
> >> >>> >>>>>>>>>
> >> >>> >>>>>>>>> On 10/1/23, Christian Grobmeier <grobme...@apache.org>
> >> wrote:
> >> >>> >>>>>>>>>> Hello,
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> I am moving things around a lot. There is much refactoring
> >> >>> >>>>>>>>>> that
> >> >>> >>> is
> >> >>> >>>>>>>> necessary
> >> >>> >>>>>>>>>> alone LogPanel had ~4500 lines of code. I believe this lot
> >> of
> >> >>> >>> LOCs
> >> >>> >>>>> is
> >> >>> >>>>>>>>>> so
> >> >>> >>>>>>>>>> complicated to understand that it prevents people from
> >> >>> >>> contributing
> >> >>> >>>>> -
> >> >>> >>>>>>>> let
> >> >>> >>>>>>>>>> alone Swing, but we can't change that.
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> Apart from usual refactorings, I wonder what should be the
> >> >>> >>>>>>>>>> goal
> >> >>> >>> of
> >> >>> >>>>>>>>>> 2.2?
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> I have already upgraded some dependencies that have security
> >> >>> >>> flaws.
> >> >>> >>>>> 2
> >> >>> >>>>>>>> more
> >> >>> >>>>>>>>>> are in the pom, but they have no patched versions so far.
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> Should we add at least one feature? Is there maybe one
> >> already
> >> >>> >>>>>>>>>> in
> >> >>> >>>>> that
> >> >>> >>>>>>>>>> I
> >> >>> >>>>>>>>>> missed?
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> I would appreciate it if one of the more experienced
> >> >>> >>>>>>>>>> Swing-devs
> >> >>> >>> here
> >> >>> >>>>>>>> could
> >> >>> >>>>>>>>>> advise or maybe contribute some code so we can justify a
> >> >>> >>>>>>>>>> release.
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> The next question would be:
> >> >>> >>>>>>>>>> How is chainsaw released at all?
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>>> Kind regards,
> >> >>> >>>>>>>>>> Christian
> >> >>> >>>>>>>>>>
> >> >>> >>>>>>>>
> >> >>> >>>>>>>
> >> >>> >>>>>
> >> >>> >>>
> >> >>>
> >> >>
> >>

Reply via email to