Yes, it works! I have tried it.
2010/1/19 Joseph Bergmark <[email protected]>
> Lets ignore the @Inject @Named for a minute, as I think it is distracting
> from the main issue of the producer methods default name.
>
> If I have a bean with a producer field:
>
> @Produces @Named Products getProducts()
>
> You would agree its el-name should be "products" and I should be able to
> reference it in a EL-expression as "products". For example
>
> <h:outputText value="#{products"/>?
>
> I'll give this a try later today to be sure it works.
>
> Sincerely,
>
> Joe
>
> On Tue, Jan 19, 2010 at 2:33 AM, Gurkan Erdogdu <[email protected]
> >wrote:
>
> > As specified in specification, this is solely used for integration with
> > legacy code that uses @Named annotation as differentiating beans with
> > strings. For example,if you use JSR-330 impl and @Named(value), to
> > differentiate beans, you could resolve those beans with JSR-299 using
> > @Named(value). So using value annotation member is required for injection
> > points that use @Named annotation as qualifiers
> >
> > I have also tried this via Weld, it does not work with too. But if you
> add
> > @Named("products") into producer method, it works like in OWB!
> >
> > Thanks;
> >
> > --Gurkan
> >
> >
> > 2010/1/19 Gurkan Erdogdu <[email protected]>
> >
> > > Joe, you are right that producer method name is getting from method
> name
> > > if there is no Named(value).
> > >
> > > In the example, default name of the producer bean is "products." There
> is
> > > no problem in this. The problem is how to resolve this producer method.
> > In
> > > the example, tried with qualifiers, public @Inject @Named("products")
> > String
> > > N3;. This does not work because there is no bean with qualifier
> > > @Named("products"). In other words, this producer method has a
> Qualifier
> > > "@Named(value=)" and name is "products".
> > >
> > > If you get producer method bean with name, as such,
> > > BeanManager.getBeans("products"), it works!
> > >
> > > Thanks;
> > >
> > > 2010/1/18 Joseph Bergmark <[email protected]>
> > >
> > > While I agree that injecting using the @Name with the String value
> isn't
> > >> recommended, it works right now.
> > >>
> > >> That said, section 3.3.8 seems to clearly indicate that the @Named
> > >> qualifier
> > >> for a producer method should provide a default value that follows
> > JavaBean
> > >> property getter names. IE a method named getProducts() should get the
> > >> default name (if annotated with @Named) of "products" and not
> > >> "getProducts"
> > >> which appears to be what is happening now.
> > >>
> > >> I do not believe this Issue is invalid, but perhaps I am misreading
> > 3.3.8?
> > >>
> > >> Sincerely,
> > >>
> > >> Joe
> > >>
> > >> On Mon, Jan 18, 2010 at 4:10 PM, Gurkan Erdogdu (JIRA) <
> [email protected]
> > >> >wrote:
> > >>
> > >> >
> > >> > [
> > >> >
> > >>
> >
> https://issues.apache.org/jira/browse/OWB-239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> > >> ]
> > >> >
> > >> > Gurkan Erdogdu closed OWB-239.
> > >> > ------------------------------
> > >> >
> > >> > Resolution: Invalid
> > >> >
> > >> > This is true action. @Named is a qualifier. You have to give it a
> > >> > @Named(value) in producer method. So you have to define producer
> > method
> > >> as
> > >> >
> > >> > @Produces
> > >> > @Named("products")
> > >> > public String getProducts()
> > >> > {
> > >> > return "Sucess from getProducts";
> > >> > }
> > >> >
> > >> > @Named value does not get producer method name automatically.
> > >> >
> > >> > Also using @Named with string members are not recommended usage. See
> > >> > specification 3.11. The qualifier @Named at injection points
> > >> >
> > >> >
> > >> > > JavaBeans property getter naming convention with Producer Methods
> > >> gives
> > >> > UnsatisfiedResolutionException
> > >> > >
> > >> >
> > >>
> >
> ------------------------------------------------------------------------------------------------------
> > >> > >
> > >> > > Key: OWB-239
> > >> > > URL:
> https://issues.apache.org/jira/browse/OWB-239
> > >> > > Project: OpenWebBeans
> > >> > > Issue Type: Bug
> > >> > > Components: Injection and Lookup
> > >> > > Affects Versions: M3
> > >> > > Environment: Windows, Eclipse running Jetty
> > >> > > Reporter: Bill Wigger
> > >> > > Assignee: Gurkan Erdogdu
> > >> > > Fix For: M3
> > >> > >
> > >> > >
> > >> > > Problem:
> > >> > > JavaBeans property getter naming convention with Producer Methods
> > >> gives
> > >> > UnsatisfiedResolutionException
> > >> > > Injection in class X:
> > >> > > @Produces @Named public String getProducts() {
> > >> > > return "Sucess from getProducts";
> > >> > > }
> > >> > > Injection Point in Y:
> > >> > > public @Inject @Named("products") String N3;
> > >> > > public String getTestNamed3() {
> > >> > > String y = N3;
> > >> > > return y;
> > >> > > }
> > >> > > Actual Results when getTestNamed3 is called from a JSP:
> > >> > > javax.enterprise.inject.UnsatisfiedResolutionException: Api type
> > >> > [java.lang.String] is not found with the qualifiers
> > >> > [[email protected](value=products)]
> > >> > > at
> > >> >
> > >>
> >
> org.apache.webbeans.container.ResolutionUtil.checkResolvedBeans(ResolutionUtil.java:93)
> > >> > > at
> > >> >
> > >>
> >
> org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:232)
> > >> > > at
> > >> >
> > >>
> >
> org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:90)
> > >> > > etc....
> > >> > >
> > >> > > Desired Results:
> > >> > > "Sucess from getProducts"
> > >> >
> > >> > --
> > >> > This message is automatically generated by JIRA.
> > >> > -
> > >> > You can reply to this email to add a comment to the issue online.
> > >> >
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Gurkan Erdogdu
> > > http://gurkanerdogdu.blogspot.com
> > >
> >
> >
> >
> > --
> > Gurkan Erdogdu
> > http://gurkanerdogdu.blogspot.com
> >
>
--
Gurkan Erdogdu
http://gurkanerdogdu.blogspot.com