BTW, since we have our own annotation processor it should be able to inspect 
plugins and when it sees

@PluginAttribute("foo") @intDefault(5) String foo

It should be able to generate an error, which would essentially happen at 
compile time.

Sent from my iPad

> On Jun 2, 2014, at 4:08 PM, Gary Gregory <[email protected]> wrote:
> 
> My alarm bells went off when I saw we had a custom XML processing framework 
> instead of using JAXB. Then we piled on JSON and YAML but we still have all 
> of this in custom code instead of having Jackson define all configs in one 
> common model. I understand this was all started a long time ago and that the 
> value of redoing it is not obvious to all. But taking issue with one aspect 
> of this stack now seems silly since it is the natural progression of such a 
> framework. 
> 
> My first question would be to ask if it is really necessary to provide JSON 
> and YAML configurations... It's a bit late for that it seems since "it's all 
> working".
> 
> So now what? 
> 
> I really like having domain types in my factory method signatures. I 
> certainly would not want to go back to having calls to conversion methods as 
> boiler plate code in all these methods.
> 
> I'm not sure about the builder system but I do like the simplicity of the 
> factory methods because everything is defined in one place. The tweak needed 
> now is a clean defaulting system. 
> 
> Gary
> 
> Gary
> 
> 
> 
> -------- Original message --------
> From: Remko Popma
> Date:06/02/2014 18:13 (GMT-05:00)
> To: Log4J Developers List
> Subject: Re: Registering converters
> 
> Does anyone else also have little alarm bells going off when seeing 
> conversations like this?
> 
> Before you'd accomplish this by simply coding the conversion in the factory 
> method. Duplicate code would be factored out to utility classes like Strings 
> etc and it was all pretty straightforward. 
> 
> Now we have a framework to do the same, with TypeConverters and Registries 
> and Builders and Visitors. 
> The gain is that we get the conversion from String to int "for free". (Except 
> that it is not free, the complexity just moved somewhere else, and arguably 
> became bigger.)
> Also, the builders allow us to name parameters when construction plugin 
> objects in tests. 
> 
> The trade-off is that we have a whole lot more infrastructure. Not only is 
> this more code and more complex than what we had before, but as with any 
> framework, it makes assumptions on how things are done and in what order, and 
> if you need to do something differently then the framework just gets in your 
> way...
> So now we need to keep modifying the framework to handle these cases. 
> 
> I need to spend more time looking at the code, I'm basing a lot of this on 
> the impression I have after reviewing the commit emails, but I'm really 
> starting to think that the gains don't justify the drawbacks. 
> 
> Sent from my iPhone
> 
>> On 2014/06/03, at 6:06, Matt Sicker <[email protected]> wrote:
>> 
>> We need to change the type converter registry to use the existing plugin 
>> registry/manager. That would make this a lot easier! I'll work on that 
>> sometime this week. I've been meaning to get to that (I have a TODO about it 
>> somewhere).
>> 
>> 
>>> On 2 June 2014 11:15, Gary Gregory <[email protected]> wrote:
>>> If I want to register my own type converters with
>>> 
>>> org.apache.logging.log4j.core.config.plugins.util.TypeConverters.registerTypeConverter(Class<?>,
>>>  TypeConverter<?>)
>>> 
>>> when do I call it to make sure the configuration parsing picks up my 
>>> additions before it is to late?
>>> 
>>> Gary
>>> 
>>> -- 
>>> E-Mail: [email protected] | [email protected] 
>>> Java Persistence with Hibernate, Second Edition
>>> JUnit in Action, Second Edition
>>> Spring Batch in Action
>>> Blog: http://garygregory.wordpress.com 
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>> 
>> 
>> 
>> -- 
>> Matt Sicker <[email protected]>

Reply via email to