I had quite a hard time getting this idea to work back when I tried doing this. Now that I've ripped some code from Spring < https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/util/TypeUtils.java>, and now that I know a bit more about reflection over generics (it is indeed as terrible as you think), I've been making quite a bit of progress towards this. In fact, while typing this email, I forgot about it and finished the feature!
On 4 June 2014 00:37, Gary Gregory <[email protected]> wrote: > On Wed, Jun 4, 2014 at 1:00 AM, Matt Sicker <[email protected]> wrote: > >> Yeah pretty much. The type converters will be @Plugins (in the >> TypeConverters category; I've got a string constant), and they'll also have >> a @ConvertType annotation that lists the class(es) it supports converting >> to. >> > > Sounds promising, looking forward to seeing your work :-) > > Gary > > >> >> On 3 June 2014 23:52, Ralph Goers <[email protected]> wrote: >> >>> If I understand what Matt is doing the new converters will be annotated >>> with the data type that they support, similar to how the pattern converters >>> are annotated with the pattern tokens used to identify them. >>> >>> Ralph >>> >>> On Jun 3, 2014, at 9:42 PM, Gary Gregory <[email protected]> wrote: >>> >>> At runtime just for the core or the whole CP? Performance? >>> >>> Gary >>> >>> >>> -------- Original message -------- >>> From: Matt Sicker >>> Date:06/03/2014 23:31 (GMT-05:00) >>> To: Log4J Developers List >>> Subject: Re: svn commit: r1599839 - >>> /logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java >>> >>> >>> Indeed. >>> >>> >>> On 3 June 2014 19:18, Ralph Goers <[email protected]> wrote: >>> >>>> Similar to why I created @ConverterKeys for pattern converters I guess? >>>> That sounds correct. >>>> >>>> Ralph >>>> >>>> On Jun 3, 2014, at 5:07 PM, Matt Sicker <[email protected]> wrote: >>>> >>>> I changed my mind on that and am adding a @ConvertType annotation that >>>> will be scanned at runtime. No changes to @Plugin or the annotation >>>> processor this way, too. >>>> >>>> >>>> On 3 June 2014 19:05, Ralph Goers <[email protected]> wrote: >>>> >>>>> Why would you add a class attribute when the annotation is annotating >>>>> the class and you can get it from that? >>>>> >>>>> Ralph >>>>> >>>>> On Jun 3, 2014, at 4:50 PM, [email protected] wrote: >>>>> >>>>> > Author: mattsicker >>>>> > Date: Tue Jun 3 23:50:29 2014 >>>>> > New Revision: 1599839 >>>>> > >>>>> > URL: http://svn.apache.org/r1599839 >>>>> > Log: >>>>> > Revert that idea about the default name. >>>>> > >>>>> > - Going to add an optional Class attribute instead. >>>>> > >>>>> > Modified: >>>>> > >>>>> >>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java >>>>> > >>>>> > Modified: >>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java >>>>> > URL: >>>>> http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java?rev=1599839&r1=1599838&r2=1599839&view=diff >>>>> > >>>>> ============================================================================== >>>>> > --- >>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java >>>>> (original) >>>>> > +++ >>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/Plugin.java >>>>> Tue Jun 3 23:50:29 2014 >>>>> > @@ -38,10 +38,9 @@ public @interface Plugin { >>>>> > String EMPTY = Strings.EMPTY; >>>>> > >>>>> > /** >>>>> > - * Name of the plugin. If no name is specified, defaults to the >>>>> simple class name of the annotated element. >>>>> > - * Note that this name is case-insensitive. >>>>> > + * Name of the plugin. Note that this name is case-insensitive. >>>>> > */ >>>>> > - String name() default EMPTY; >>>>> > + String name(); >>>>> > >>>>> > /** >>>>> > * Category to place the plugin under. Category names are >>>>> case-sensitive. >>>>> > >>>>> > >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>> >>>> >>>> -- >>>> 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 > -- Matt Sicker <[email protected]>
