On Thu, Aug 28, 2014 at 1:00 AM, Ralph Goers <[email protected]>
wrote:

> You would have to support both the old and new format.
>

I do not think we have to be that cute, do we?

Gary


>
> Ralph
>
> On Aug 27, 2014, at 8:23 PM, Matt Sicker <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]>
>>>
>>>
>>>
>>
>>
>> --
>> Matt Sicker <[email protected]>
>>
>
>
>
> --
> Matt Sicker <[email protected]>
>
>
>


-- 
E-Mail: [email protected] | [email protected]
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

Reply via email to