Return-Path: X-Original-To: apmail-incubator-deltaspike-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-deltaspike-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 621109CA9 for ; Thu, 8 Mar 2012 13:27:47 +0000 (UTC) Received: (qmail 97422 invoked by uid 500); 8 Mar 2012 13:27:47 -0000 Delivered-To: apmail-incubator-deltaspike-dev-archive@incubator.apache.org Received: (qmail 97260 invoked by uid 500); 8 Mar 2012 13:27:43 -0000 Mailing-List: contact deltaspike-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: deltaspike-dev@incubator.apache.org Delivered-To: mailing list deltaspike-dev@incubator.apache.org Received: (qmail 97175 invoked by uid 99); 8 Mar 2012 13:27:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Mar 2012 13:27:41 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gerhard.petracek@gmail.com designates 209.85.213.175 as permitted sender) Received: from [209.85.213.175] (HELO mail-yx0-f175.google.com) (209.85.213.175) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Mar 2012 13:27:37 +0000 Received: by yenm3 with SMTP id m3so152200yen.6 for ; Thu, 08 Mar 2012 05:27:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=pqSqFqSrBBDIXbP14l8Y/CyPZuqAi7z67o60yGzMyn4=; b=mdeDKHdB3nZYpXBmJc+QBFRxR8/mvHDXwJj0oAjvTPsXnewPdOIt2RKTTWt4LOSQKk mJoCVWYIc248U2Bz34JbwnPlBUqxEW81TLSsUSjIEvPHc51xRwtQYc0mypmNXtUOYPYo ryXE3MZmWFHXwNunBKiQJvZ2bTXLXRXRd8/sxvoGD7XVR1gcPhqDHcdQiUqt1NbnhkCV oaMp9A6X1JSXuaeKOohezU/GsQ6/PxNtgbZmCsNGJgmVUuhrkkkQCHz2zIwhm9K9u8Rs Yvsim9inwjelqnwTeJJBQONVx9UksH+BFz9TmFSThDDcCRNK9ujpIxZCfm5+beoCJcl5 PmCg== Received: by 10.236.184.202 with SMTP id s50mr10529694yhm.84.1331213237135; Thu, 08 Mar 2012 05:27:17 -0800 (PST) MIME-Version: 1.0 Received: by 10.146.246.19 with HTTP; Thu, 8 Mar 2012 05:26:57 -0800 (PST) In-Reply-To: <1331158586.86833.YahooMailNeo@web171405.mail.ir2.yahoo.com> References: <1330946380.89788.YahooMailNeo@web171406.mail.ir2.yahoo.com> <1330962295.22350.YahooMailNeo@web171405.mail.ir2.yahoo.com> <1330964239.51958.YahooMailNeo@web171403.mail.ir2.yahoo.com> <0B9697D7-0E2A-45DC-95B0-660EFD83EC56@redhat.com> <1331158586.86833.YahooMailNeo@web171405.mail.ir2.yahoo.com> From: Gerhard Petracek Date: Thu, 8 Mar 2012 14:26:57 +0100 Message-ID: Subject: Re: Re : ConfigResolver : adding @ConfigProperty injection ? To: deltaspike-dev@incubator.apache.org Cc: Pete Muir Content-Type: multipart/alternative; boundary=20cf303f65221ea87a04babb3c15 X-Virus-Checked: Checked by ClamAV on apache.org --20cf303f65221ea87a04babb3c15 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable hi adrian, @ #2: since it's the easiest approach and i would have suggested the same (independent of other libs): +1 for the interface right now we just have an use-case for specifying the converter manually -> we can add e.g. a ConverterFactory later on (as soon as we need it for an use-case). @ #4: if i remember correctly, someone in an open-source community mentioned such a plan (for the "near" future). regards, gerhard 2012/3/7 Adrian Gonzalez > Noticed the JIRA issues for this issue, thanks Gerhard ! > Sorry for the delay (quite struggling in my day to day work for now ;( ) > > > About conversion API (for converter =3D StringToIntegerConverter.class), > just googled a bit : > 1. there's the javabean specification (soso...) > 2. Spring has a really nice conversion API : > http://static.springsource.org/spring/docs/3.1.x/spring-framework-referen= ce/html/validation.html#core-convert > built on top of : > public interface Converter { > T convert(S source); > } > the upper layers are ConversionService, GenericConverter - not sure i= f > it's too early to introduce similar functionnality > 3. of course JSF converters but really tied to JSF (soso...) > 4. didn't found any info about the official Conversion JSR > > > > ________________________________ > De : Jason Porter > =C0 : deltaspike-dev@incubator.apache.org > Cc : Adrian Gonzalez > Envoy=E9 le : Mardi 6 mars 2012 22h25 > Objet : Re: ConfigResolver : adding @ConfigProperty injection ? > > +1 to the idea. I also think some more discussion about this is in order. > > On Tue, Mar 6, 2012 at 04:09, Pete Muir wrote: > > > +1 > > > > On 5 Mar 2012, at 16:17, Adrian Gonzalez wrote: > > > > > What about having both options ? > > > > > > 1. be able to use directly @ConfigProperty > > > @Produces > > > public LoginContext > > > produceLoginContext(@ConfigProperty("loginConfigFile") String > > loginConfigFileName, @ConfigProperty("loginModuleName") String > > loginModuleName) > > > } > > > } > > > Handy when all config values are only used in a centralized class (e.= g. > > MyAppConfig). > > > > > > 2. type safe config annotations > > > @ConfigProperty( > > > name =3D "pool_size", > > > eager =3D true, //true is also the default value -> the value gets > > converted during the bootstrapping process > > > converter =3D StringToIntegerConverter.class > > > ) > > > public @interface PoolSize { > > > } > > > > > > ----- Mail original ----- > > > De : Gerhard Petracek > > > =C0 : deltaspike-dev@incubator.apache.org > > > Cc : > > > Envoy=E9 le : Lundi 5 mars 2012 17h08 > > > Objet : Re: Re : ConfigResolver : adding @ConfigProperty injection ? > > > > > > hi adrian, > > > > > > @#1: > > > it isn't the default value of the property. > > > eager should be true by default -> the configured value gets converte= d > > > during bootstrapping (if the value has an invalid format the > > bootstrapping > > > process fails). > > > if eager is false, the configured value will be converted directly > before > > > the injection (e.g. for values stored in dynamic config-sources). > > > > > > @#2: > > > afaik there is an upcoming jsr about it. > > > > > > regards, > > > gerhard > > > > > > > > > > > > 2012/3/5 Adrian Gonzalez > > > > > >> Hi Gerhard, > > >> > > >> 1. didn't understood the meaning of eager attribute > > >> If eager =3D default value, it should have been some integer value i= n > your > > >> sample > > >> > > >> > > >> 2. StringToIntegerConverter converter > > >> Is there an existing conversion API (standard, in deltaspike, ...) ? > > >> (otherwise we're gonna need one here - and end up with another > > conversion > > >> API ;) ) > > >> > > >> Thanks ! > > >> > > >> ----- Mail original ----- > > >> De : Gerhard Petracek > > >> =C0 : deltaspike-dev@incubator.apache.org > > >> Cc : > > >> Envoy=E9 le : Lundi 5 mars 2012 12h57 > > >> Objet : Re: ConfigResolver : adding @ConfigProperty injection ? > > >> > > >> hi adrian, > > >> > > >> if we agree also on adding a bit more to allow e.g.: > > >> > > >> //... > > >> @ConfigProperty( > > >> name =3D "pool_size", > > >> eager =3D true, //true is also the default value -> the value get= s > > >> converted during the bootstrapping process > > >> converter =3D StringToIntegerConverter.class > > >> ) > > >> public @interface PoolSize > > >> { > > >> } > > >> > > >> @Inject > > >> @PoolSize > > >> private int configuredPoolSize; > > >> > > >> then i would vote +1 > > >> (for sure the details need further discussions.) > > >> > > >> regards, > > >> gerhard > > >> > > >> > > >> > > >> 2012/3/5 Adrian Gonzalez > > >> > > >>> Hello, > > >>> > > >>> Deltaspike config module is based on ConfigResolver usage : > > >>> ConfigResolver.getPropertyValue("test") > > >>> > > >>> > > >>> Wouldn't it be interesting to add on top of it some injection > > >>> capacity ? (i.e. providing @ConfigProperty annotation) > > >>> > > >>> Sample usage [1] : > > >>> @Produces > > >>> public LoginContext > > >> produceLoginContext(@ConfigProperty("loginConfigFile") > > >>> String loginConfigFileName, > > >>> > > >> @ConfigProperty("loginModuleName") > > >>> String loginModuleName) > > >>> blabla > > >>> } > > >>> > > >>> This approach is based on Antonio's petstore application - config > code > > is > > >>> available in [2] > > >>> > > >>> [1] > > >>> > > >> > > > https://github.com/agoncal/agoncal-application-petstore-ee6/blob/master/s= rc/main/java/org/agoncal/application/petstore/security/LoginContextProducer= .java > > >>> > > >>> [2] > > >>> > > >> > > > https://github.com/agoncal/agoncal-application-petstore-ee6/blob/master/s= rc/main/java/org/agoncal/application/petstore/util/ConfigProperty.java > > >>> > > >>> > > >> > > > https://github.com/agoncal/agoncal-application-petstore-ee6/blob/master/s= rc/main/java/org/agoncal/application/petstore/util/ConfigPropertyProducer.j= ava > > >>> > > >>> > > >> > > >> > > > > > > > > > > -- > Jason Porter > http://lightguard-jp.blogspot.com > http://twitter.com/lightguardjp > > Software Engineer > Open Source Advocate > Author of Seam Catch - Next Generation Java Exception Handling > > PGP key id: 926CCFF5 > PGP key available at: keyserver.net, pgp.mit.edu > --20cf303f65221ea87a04babb3c15--