Return-Path: X-Original-To: apmail-commons-dev-archive@www.apache.org Delivered-To: apmail-commons-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6B2BC7A5A for ; Sat, 5 Nov 2011 15:28:21 +0000 (UTC) Received: (qmail 45510 invoked by uid 500); 5 Nov 2011 15:28:21 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 45427 invoked by uid 500); 5 Nov 2011 15:28:20 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 45419 invoked by uid 99); 5 Nov 2011 15:28:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 05 Nov 2011 15:28:20 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.160.171] (HELO mail-gy0-f171.google.com) (209.85.160.171) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 05 Nov 2011 15:28:17 +0000 Received: by gyg8 with SMTP id 8so5478410gyg.30 for ; Sat, 05 Nov 2011 08:27:56 -0700 (PDT) Received: by 10.147.66.41 with SMTP id t41mr4628754yak.17.1320506876147; Sat, 05 Nov 2011 08:27:56 -0700 (PDT) MIME-Version: 1.0 Sender: jcarman@carmanconsulting.com Received: by 10.147.19.9 with HTTP; Sat, 5 Nov 2011 08:27:35 -0700 (PDT) In-Reply-To: References: <4EB3C4AA.4050009@sandglass-software.com> <4EB3CA75.6060801@sandglass-software.com> <4EB3CC7F.9000609@sandglass-software.com> <4EB3D75E.1030107@sandglass-software.com> From: James Carman Date: Sat, 5 Nov 2011 11:27:35 -0400 X-Google-Sender-Auth: xd_4D0KcXS8JpjCVcWMiJxH8mOA Message-ID: Subject: Re: [convert] API Discussion... To: Commons Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Well, with that idea, it got me interested in Meiyo. So, now I'm playing around in a DSL branch trying to improve the API. It seems too verbose to me at the moment. :) On Sat, Nov 5, 2011 at 11:21 AM, Simone Tripodi wrote: > Hi James! > I like the idea, the concept reminds me how TestNG's DataProvider and > GoogleGuice Providers. > Looking forward to see it in action! > Simo > > http://people.apache.org/~simonetripodi/ > http://simonetripodi.livejournal.com/ > http://twitter.com/simonetripodi > http://www.99soft.org/ > > > > On Sat, Nov 5, 2011 at 3:48 PM, James Carman = wrote: >> What if we introduce a @Converter annotation and any method that is >> annotated with this annotation is automatically registered as a >> converter? =A0It's similar to what I've done in Metastopheles >> (http://metastopheles.sourceforge.net/). >> >> On Fri, Nov 4, 2011 at 8:15 AM, Adrian Crum >> wrote: >>> Agreed. Please don't mis-interpret my replies - I'm not trying to "own"= the >>> sandbox, I just want everyone to have a chance to play in it. >>> >>> The recent interest in Convert is great - I hope its popularity and >>> usefulness grows. I'm truly looking forward to more people getting invo= lved. >>> >>> The current code base started out as a work I authored for the Apache O= pen >>> For Business Project (OFBiz). The converter framework was used for OFBi= z's >>> scripting language. My initial work was built out and improved upon by = an >>> excellent team of developers. When the converter framework was fairly >>> complete, someone suggested that OFBiz "spin off" the converter framewo= rk to >>> a separate library - so I brought it here to Commons. >>> >>> The code you see today is currently being used in an enterprise-class o= pen >>> source ERP application. It is scalable and thread-safe. >>> >>> Commons Convert has not been "fed back" to the OFBiz project yet becaus= e it >>> is still in the sandbox. Until a decent sized community grows around it= , the >>> OFBiz community will not be willing to switch over to it. I hope to see= that >>> switch happen someday. >>> >>> -Adrian >>> >>> On 11/4/2011 11:33 AM, James Carman wrote: >>>> >>>> A branch would work just fine for that situation. Also, let's keep in = mind >>>> that this component is in the sandbox >>>> On Nov 4, 2011 7:28 AM, "Adrian Crum" >>>> wrote: >>>> >>>>> Not so that someone else can commit them, so that others can review t= hem >>>>> and comment on them. >>>>> >>>>> -Adrian >>>>> >>>>> On 11/4/2011 11:25 AM, James Carman wrote: >>>>> >>>>>> If need be, I would just create a branch for my work. =A0It would be= silly >>>>>> for me to submit patches so that someone else would commit them >>>>>> On Nov 4, 2011 7:20 AM, "Adrian Crum">>>>> software.com> >>>>>> wrote: >>>>>> >>>>>> =A0 From my perspective, it would be preferable to keep the communit= y >>>>>>> >>>>>>> involved >>>>>>> in the design decisions. >>>>>>> >>>>>>> -Adrian >>>>>>> >>>>>>> On 11/4/2011 11:15 AM, James Carman wrote: >>>>>>> >>>>>>> =A0I don't have to submit a patch. I am a commons committer >>>>>>>> >>>>>>>> On Nov 4, 2011 5:55 AM, "Adrian Crum">>>>>>> >>>>>>>> software.com >>>>>>>> wrote: >>>>>>>> >>>>>>>> =A0The source and target classes are used by the Converter.canConv= ert >>>>>>>> >>>>>>>>> method. >>>>>>>>> The Converter.canConvert method is used by the Converter factory = to >>>>>>>>> find >>>>>>>>> the correct converter. The reason parameterized types are not use= d in >>>>>>>>> this >>>>>>>>> scenario is so you can create converters that handle entire class >>>>>>>>> hierarchies. If you can think of a way to replace the Class >>>>>>>>> references >>>>>>>>> with >>>>>>>>> parameters, that would be great. Submit a patch and I will look i= t >>>>>>>>> over. >>>>>>>>> >>>>>>>>> You could submit a patch for your partially-completed ConverterCh= ain >>>>>>>>> class >>>>>>>>> and maybe someone else will complete it. >>>>>>>>> >>>>>>>>> -Adrian >>>>>>>>> >>>>>>>>> >>>>>>>>> On 11/4/2011 2:19 AM, James Carman wrote: >>>>>>>>> >>>>>>>>> =A0I was taking a look at the [convert] component because I have = done >>>>>>>>> >>>>>>>>>> some work lately on some handy conversion classes. =A0I'm strugg= ling >>>>>>>>>> to >>>>>>>>>> understand why you'd need the getSourceClass() and getTargetClas= s() >>>>>>>>>> methods if you're using generics. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Also, I've got a class that looks like this: >>>>>>>>>> >>>>>>>>>> public class ConverterChain =A0 =A0 implements Converter >>>>>>>>>> { >>>>>>>>>> =A0 public static =A0 =A0 ConverterChain =A0 =A0 from(Cl= ass >>>>>>>>>> =A0sourceType); >>>>>>>>>> =A0 public =A0 =A0 ConverterChain =A0 =A0 append(Convert= er >>>>>>>>>> =A0converter); >>>>>>>>>> =A0 ... >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> I'd like to contribute it, but in my library, I don't have all o= f >>>>>>>>>> those references to the class objects (source/target). =A0I migh= t >>>>>>>>>> check >>>>>>>>>> it in without the source/target stuff implemented. >>>>>>>>>> >>>>>>>>>> ------------------------------******--------------------------**= --** >>>>>>>>>> --**--------- >>>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@commons.****apac**he.org= < >>>>>>>>>> http://apache.org**> >>>>>>>>>> < >>>>>>>>>> >>>>>>>>>> dev-unsubscribe@**commons.apache.org >>>>>>>>>> For additional commands, e-mail: dev-help@commons.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> =A0------------------------------******-------------------------= -**--** >>>>>>>>>> >>>>>>>>> --**--------- >>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@commons.****apac**he.org< >>>>>>>>> http://apache.org**> >>>>>>>>> < >>>>>>>>> >>>>>>>>> dev-unsubscribe@**commons.apache.org >>>>>>>>> For additional commands, e-mail: dev-help@commons.apache.org >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> =A0------------------------------****----------------------------= ** >>>>>>> >>>>>>> --**--------- >>>>>>> To unsubscribe, e-mail: >>>>>>> dev-unsubscribe@commons.**apac**he.org >>>>>>> >>>>>>> >>>>>>> For additional commands, e-mail: dev-help@commons.apache.org >>>>>>> >>>>>>> >>>>>>> >>>>> ------------------------------**------------------------------**-----= ---- >>>>> To unsubscribe, e-mail: >>>>> dev-unsubscribe@commons.**apache.org >>>>> For additional commands, e-mail: dev-help@commons.apache.org >>>>> >>>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org >>> For additional commands, e-mail: dev-help@commons.apache.org >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org >> For additional commands, e-mail: dev-help@commons.apache.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org > For additional commands, e-mail: dev-help@commons.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org