The current format is basically a map of maps. It's kind of hierarchical.
On 27 August 2014 23:24, Gary Gregory <garydgreg...@gmail.com> wrote: > If the data is not hierarchical in nature, we could eschew XML, which > would also make it better for "cat"-ing. > > Gary > > > On Wed, Aug 27, 2014 at 11:23 PM, Matt Sicker <boa...@gmail.com> wrote: > >> This idea came up in a recent bug report: >> https://issues.apache.org/jira/browse/LOG4J2-798 >> >> I'm thinking that we could do something that either works well when you >> cat together various plugin cache files, or if it were an XML file dump, >> then we could have a tool to combine them together to address this other >> issue: >> https://issues.apache.org/jira/browse/LOG4J2-673 >> >> >> On 28 July 2014 15:34, Matt Sicker <boa...@gmail.com> wrote: >> >>> Good points. I guess I can just wait to see if anyone wants such a >>> feature. It would certainly make shading easier, but I don't like to >>> encourage that anyhow. >>> >>> >>> On 28 July 2014 15:22, Ralph Goers <ralph.go...@dslextreme.com> wrote: >>> >>>> I equate “human editable” with “error prone”. >>>> >>>> I’d wait until someone actually requests this with a real live use case >>>> before I’d want it implemented. I’m not sure what the benefit is of >>>> “disabling” a plugin. It is automatically “disabled” if it isn’t >>>> referenced in the configuration. >>>> >>>> Ralph >>>> >>>> On Jul 28, 2014, at 11:39 AM, Matt Sicker <boa...@gmail.com> wrote: >>>> >>>> So our current format works quite well for automated tool usage. If you >>>> don't already know, it's basically a serialized HashMap containing class >>>> names and the attributes from the @Plugin annotation associated with each >>>> class. Normally, this file is generated through the Java compiler via an >>>> annotation processor. However, languages like Scala, Clojure, Groovy, and >>>> whatever others that exist that don't create intermediate Java code don't >>>> support annotation processing. Thus, the resurrection of the runtime >>>> package scan functionality. >>>> >>>> What I'd like to propose would be some sort of human-editable plugin >>>> file format for those who may prefer to create their own. It would be nice >>>> for being able to customize your Log4j distribution by enabling and >>>> disabling plugins selectively. >>>> >>>> As a Java guy, I'd propose an XML format because that's what everyone >>>> else does. Plus, there's the XML APIs already, so no custom file format >>>> processors or anything are necessary. >>>> >>>> Note that the serialized file would still be preferred as the way to go >>>> since it's already there and supported. However, offering an alternative >>>> would be neat. Plus, the annotation processor could be extended to generate >>>> the XML (or whatever) file. >>>> >>>> ============ >>>> >>>> Alternatively, a neat idea could be to use the ServiceLoader class from >>>> JDK 1.6+. The various plugin types (Appender, Filter, Layout, >>>> PatternConverter, etc.) could all be services, and we can load all the >>>> provided implementations. We could also simply extend this idea by filling >>>> the service provider file with a list of packages to scan instead of >>>> forcing the configuration file to specify where they are. This could be a >>>> simpler approach for internal plugins. >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>>> >>>> >>> >>> >>> -- >>> Matt Sicker <boa...@gmail.com> >>> >> >> >> >> -- >> Matt Sicker <boa...@gmail.com> >> > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > <http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > -- Matt Sicker <boa...@gmail.com>