Okay. I've already completed 'hours' of work having a java package filled
with JSF (requestscoped) managed beans that 'only' contain
@FacesConverter(forClass=someClass.class) for each of my database entity
classes; did that last night.

I may try to test what you recommended below for injecting beans in
@Facesconverter.

Question, in the foreseeable future (JSF 2.2+), what kind of performance
issues will I have if 99% of my app is CDI and only @FacesConverter is
defined/implemented in JSF requestscoped managed beans?

Your answer may motivate me to use your suggestion below and add the
@Facesconverters back to the CDI @SessionScoped beans (where the
@FacesConverter's originally were defined).

Thanks!


On Tue, Nov 20, 2012 at 10:24 AM, Mark Struberg <strub...@yahoo.de> wrote:

> Nope, I'm mostly using it with @JsfPhaseListeners.
>
>
> We also don't have unit tests in CODI for converters.
>
>
> Please try
>
> BeanManagerProvider.getInstance().getContextualReference(Yourclass.class);
>
> inside the converter if you need it.
> If it's a NormalScoped bean (Request-, Application-, SessionScoped, CODI
> scopes) then you only need to do this once as you only get a proxy anyway.
>
> LieGrue,
> strub
>
>
> >________________________________
> > From: "Howard W. Smith, Jr." <smithh032...@gmail.com>
> >To: MyFaces Discussion <users@myfaces.apache.org>; Mark Struberg <
> strub...@yahoo.de>
> >Sent: Tuesday, November 20, 2012 4:03 PM
> >Subject: Re: Migrating to CDI: injecting stateless/facade in Converter
> via facescontext
> >
> >
> >I want to know why it didn't work either. I am using latest version of
> TomEE (1.5 SNAPSHOT), Myfaces 2.1.9, and CODI. Didn't work almost 12 hours
> ago, when I was attempting to use it.
> >
> >
> >Did you all test @Advanced with @FacesConverter(forClass=someClass.class)?
> >
> >
> >That's how I was using it, and bean was not injected inside of the
> converter. I read in at least 2 places that stated that @FacesConverter is
> not an elligble injection point, and I think you already told me (within
> last few hours) that this will be available in JSF 2.2. :)
> >
> >
> >
> >
> >
> >On Tue, Nov 20, 2012 at 9:22 AM, Mark Struberg <strub...@yahoo.de> wrote:
> >
> >CDI injection using @Advanced should work perfectly fine. We tested this
> excessively and use it on several containers in production.
> >>
> >>I'm curious why it doesn't work for you.
> >>
> >>
> >>LieGrue,
> >>strub
> >>
> >>
> >>----- Original Message -----
> >>> From: "Howard W. Smith, Jr." <smithh032...@gmail.com>
> >>
> >>> To: MyFaces Discussion <users@myfaces.apache.org>; Rafael Pestano <
> rmpest...@yahoo.com.br>
> >>> Cc:
> >>
> >>> Sent: Tuesday, November 20, 2012 3:13 PM
> >>> Subject: Re: Migrating to CDI: injecting stateless/facade in Converter
> via facescontext
> >>>
> >>> Rafael,
> >>>
> >>> I saw that page about CODI @Advanced. :)
> >>>
> >>> I tried CODI @Advanced, but CDI managed bean was not injected voa
> @Inject,
> >>> and then I tried to inject Stateless EJB via @Inject, and that
> stateless
> >>> EJB was not injected either.
> >>>
> >>> Thanks,
> >>> Howard
> >>>
> >>> On Tue, Nov 20, 2012 at 9:02 AM, Rafael Pestano
> >>> <rmpest...@yahoo.com.br>wrote:
> >>>
> >>>>  you can also use CODI @Advanced and then inject "anything" in the
> >>>>  converter, see [1].
> >>>>
> >>>>  i hope it helps.
> >>>>
> >>>>  [1]:
> >>>>
> https://cwiki.apache.org/EXTCDI/jsf-usage.html#JSFUsage-DependencyInjection
> >>>>
> >>>>
> >>>>  Att,
> >>>>
> >>>>  Rafael M. Pestano
> >>>>
> >>>>  Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do
> Sul
> >>>>  Graduando em Ciência da Computação UFRGS
> >>>>  http://conventionsframework.org
> >>>>
> >>>>  http://rpestano.wordpress.com/
> >>>>  @realpestano
> >>>>
> >>>>
> >>>>  ________________________________
> >>>>   De: "Howard W. Smith, Jr." <smithh032...@gmail.com>
> >>>>  Para: Mark Struberg <strub...@yahoo.de>; MyFaces Discussion <
> >>>>  users@myfaces.apache.org>
> >>>>  Cc: "us...@openejb.apache.org" <us...@openejb.apache.org>
> >>>>  Enviadas: Terça-feira, 20 de Novembro de 2012 11:37
> >>>>  Assunto: Re: Migrating to CDI: injecting stateless/facade in
> Converter via
> >>>>  facescontext
> >>>>
> >>>>  Interesting and noted, thanks. Yes, I did hear JSF 2.2 will allow
> CDI in
> >>>>  facesconverter. Thanks.
> >>>>  On Nov 20, 2012 8:34 AM, "Mark Struberg"
> >>> <strub...@yahoo.de> wrote:
> >>>>
> >>>>  > you could also have used CODI BeanManagerProvider#getReference to
> get
> >>>>  > access to the bean.
> >>>>  >
> >>>>  > The support you need out of the box will come in JSF-2.2.
> >>>>  >
> >>>>  >
> >>>>  > LieGrue,
> >>>>  > strub
> >>>>  >
> >>>>  >
> >>>>  >
> >>>>  > ----- Original Message -----
> >>>>  > > From: "Howard W. Smith, Jr."
> >>> <smithh032...@gmail.com>
> >>>>  > > To: us...@openejb.apache.org; MyFaces Discussion <
> >>>>  > users@myfaces.apache.org>
> >>>>  > > Cc:
> >>>>  > > Sent: Tuesday, November 20, 2012 1:56 PM
> >>>>  > > Subject: Re: Migrating to CDI: injecting stateless/facade in
> >>> Converter
> >>>>  > via facescontext
> >>>>  > >
> >>>>  > >T he goal was to inject bean in facesconverter via CDI, but I
> >>> don't have
> >>>>  > > this need anymore, since faces converter is not an eligible
> >>> injection
> >>>>  > > point, so I opted to use request scoped JSF managed beans that
> >>> have
> >>>>  > > facesconverter defined within the bean. That's working fine.
> >>> Thanks.
> >>>>  > >
> >>>>  > > Okay, I can cc myfaces user group as well, going forward. :-)
> >>>>  > > On Nov 20, 2012 7:37 AM, "Romain Manni-Bucau"
> >>>>  > > <rmannibu...@gmail.com>
> >>>>  > > wrote:
> >>>>  > >
> >>>>  > >>  i'm still not clear about your goal and where you need
> >>> injection
> >>>>  > >>
> >>>>  > >>  maybe share a (runnable) sample to show us what you are
> >>> talking about
> >>>>  > >>
> >>>>  > >>  side note: myfaces list can help you a lot about it too
> >>>>  > >>
> >>>>  > >>  *Romain Manni-Bucau*
> >>>>  > >>  *Twitter: @rmannibucau
> >>> <https://twitter.com/rmannibucau>*
> >>>>  > >>  *Blog: **http://rmannibucau.wordpress.com/*<
> >>>>  > >>  http://rmannibucau.wordpress.com/>
> >>>>  > >>  *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> >>>>  > >>  *Github: https://github.com/rmannibucau*
> >>>>  > >>
> >>>>  > >>
> >>>>  > >>
> >>>>  > >>
> >>>>  > >>  2012/11/20 Howard W. Smith, Jr.
> >>> <smithh032...@gmail.com>
> >>>>  > >>
> >>>>  > >>  > Interesting, that will allow you to get instance of
> >>> beans, if
> >>>>  already
> >>>>  > >>  > instantiated, and that could have helped in converter,
> >>> only if
> >>>>  beans
> >>>>  > >>  > already injected earlier?
> >>>>  > >>  > On Nov 20, 2012 7:11 AM, "Romain Manni-Bucau"
> >>>>  > > <rmannibu...@gmail.com>
> >>>>  > >>  > wrote:
> >>>>  > >>  >
> >>>>  > >>  > > was thinking to
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  >
> >>>>
> http://docs.oracle.com/javaee/6/api/javax/faces/context/FacesContext.html
> >>>>  > >>  > > getAttributes()
> >>>>  > >>  > > method (depend a bit on your real need)
> >>>>  > >>  > >
> >>>>  > >>  > > *Romain Manni-Bucau*
> >>>>  > >>  > > *Twitter: @rmannibucau
> >>> <https://twitter.com/rmannibucau>*
> >>>>  > >>  > > *Blog: **http://rmannibucau.wordpress.com/*<
> >>>>  > >>  > > http://rmannibucau.wordpress.com/>
> >>>>  > >>  > > *LinkedIn:
> >>> **http://fr.linkedin.com/in/rmannibucau*
> >>>>  > >>  > > *Github: https://github.com/rmannibucau*
> >>>>  > >>  > >
> >>>>  > >>  > >
> >>>>  > >>  > >
> >>>>  > >>  > >
> >>>>  > >>  > > 2012/11/20 Howard W. Smith, Jr.
> >>> <smithh032...@gmail.com>
> >>>>  > >>  > >
> >>>>  > >>  > > > Faces context? Please explain.
> >>>>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
> >>> Manni-Bucau"
> >>>>  > > <
> >>>>  > >>  rmannibu...@gmail.com>
> >>>>  > >>  > > > wrote:
> >>>>  > >>  > > >
> >>>>  > >>  > > > > You cant use faces context?
> >>>>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
> >>> Smith, Jr."
> >>>>  > > <
> >>>>  > >>  > smithh032...@gmail.com>
> >>>>  > >>  > > a
> >>>>  > >>  > > > > écrit :
> >>>>  > >>  > > > >
> >>>>  > >>  > > > > > For minimal changes, I'm adding
> >>> FacesConverter
> >>>>  > > to JSF
> >>>>  > >>  requestscoped
> >>>>  > >>  > > > > > managedBean's as per the
> >>> Stackoverflow answer
> >>>>  > > below:
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > > How can I inject in
> >>> @FacesConverter?<
> >>>>  > >>  > > > > >
> >>> http://stackoverflow.com/a/13156834/933054>
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > > Yes, this means more classes in the
> >>> project, but
> >>>>  > > honestly, I have
> >>>>  > >>  > not
> >>>>  > >>  > > > had
> >>>>  > >>  > > > > > to spend much time
> >>> 'maintaining' my
> >>>>  > > Converter classes at all. I
> >>>>  > >>  > just
> >>>>  > >>  > > > > tested
> >>>>  > >>  > > > > > this concept, and I'm not
> >>> experiencing this
> >>>>  > > exceptioin any more.
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > > While testing the above, I see more
> >>> exceptions to
> >>>>  > > resolve related
> >>>>  > >>  > to
> >>>>  > >>  > > > > > migrating to CDI. Will let you all
> >>> know, if I have
> >>>>  > > any more
> >>>>  > >>  > > questions.
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > > Thanks for all the responses/help,
> >>> so far. :)
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > > On Mon, Nov 19, 2012 at 7:20 PM,
> >>> Romain
> >>>>  > > Manni-Bucau
> >>>>  > >>  > > > > > <rmannibu...@gmail.com>wrote:
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > > > > If it is a nested class you
> >>> need it otherwise
> >>>>  > > (class foo in
> >>>>  > >>  > > foo.java
> >>>>  > >>  > > > > > file)
> >>>>  > >>  > > > > > > you dont need it
> >>>>  > >>  > > > > > > Le 20 nov. 2012 01:16,
> >>> "Howard W. Smith,
> >>>>  > > Jr." <
> >>>>  > >>  > > > smithh032...@gmail.com>
> >>>>  > >>  > > > > a
> >>>>  > >>  > > > > > > écrit :
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > > > > Good question. I removed
> >>>>  > > 'static', because I didn't see it in
> >>>>  > >>  > the
> >>>>  > >>  > > > > code
> >>>>  > >>  > > > > > at
> >>>>  > >>  > > > > > > > following URLs:
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> https://cwiki.apache.org/confluence/display/EXTCDI/JSF+Usage#JSFUsage-DependencyInjection
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> http://stackoverflow.com/questions/7531449/cdi-injection-into-a-facesconverter
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > > https://issues.apache.org/jira/browse/EXTCDI-127
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > > On Mon, Nov 19, 2012 at
> >>> 4:30 PM, Romain
> >>>>  > > Manni-Bucau
> >>>>  > >>  > > > > > > >
> >>> <rmannibu...@gmail.com>wrote:
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > > > > Why removing static?
> >>> It means it is
> >>>>  > > no more manageable by
> >>>>  > >>  cdi
> >>>>  > >>  > > > (cdi
> >>>>  > >>  > > > > > cant
> >>>>  > >>  > > > > > > > do
> >>>>  > >>  > > > > > > > > a new on it)
> >>>>  > >>  > > > > > > > > Le 19 nov. 2012
> >>> 22:13, "Howard
> >>>>  > > W. Smith, Jr." <
> >>>>  > >>  > > > > > smithh032...@gmail.com>
> >>>>  > >>  > > > > > > a
> >>>>  > >>  > > > > > > > > écrit :
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > > > > @Advanced was
> >>> found in the
> >>>>  > > following:
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > import
> >>>>  > >>  org.apache.myfaces.extensions.cdi.core.api.Advanced;
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > After some
> >>> tinkering, I
> >>>>  > > removed 'static' from the
> >>>>  > >>  following
> >>>>  > >>  > > > > > > definition,
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > public static
> >>> class
> >>>>  > > AddressTypeControllerConverter
> >>>>  > >>  > implements
> >>>>  > >>  > > > > > > > Converter {
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > I also added
> >>> @Advanced to the
> >>>>  > > FacesConverter/Converter,
> >>>>  > >>  and
> >>>>  > >>  > > > > latest
> >>>>  > >>  > > > > > > > error
> >>>>  > >>  > > > > > > > > is
> >>>>  > >>  > > > > > > > > > the following:
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > Nov 19, 2012
> >>> 4:08:21 PM
> >>>>  > >>  > > > > >
> >>> javax.faces.component._ExternalSpecifications
> >>>>  > >>  > > > > > > > > >
> >>> isBeanValidationAvailable
> >>>>  > >>  > > > > > > > > > INFO: MyFaces
> >>> Bean Validation
> >>>>  > > support enabled
> >>>>  > >>  > > > > > > > > > Nov 19, 2012
> >>> 4:08:21 PM
> >>>>  > >>  > > > > > >
> >>>>  > > org.apache.myfaces.application.ApplicationImpl
> >>>>  > >>  > > > > > > > > >
> >>> internalCreateConverter
> >>>>  > >>  > > > > > > > > > SEVERE: Could
> >>> not instantiate
> >>>>  > > converter class
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > >
> >>>>  > >
> >>> jsf.address.pf_AddressTypeController$AddressTypeControllerConverter
> >>>>  > >>  > > > > > > > > >
> >>>>  > > java.lang.InstantiationException:
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > >
> >>>>  > >
> >>> jsf.address.pf_AddressTypeController$AddressTypeControllerConverter
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > On Mon, Nov 19,
> >>> 2012 at 3:07
> >>>>  > > PM, Howard W. Smith, Jr. <
> >>>>  > >>  > > > > > > > > >
> >>> smithh032...@gmail.com>
> >>>>  > > wrote:
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > I searched
> >>> google, found
> >>>>  > > the following:
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > CDI
> >>> Injection into a
> >>>>  > > FacesConverter<
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> http://stackoverflow.com/questions/7531449/cdi-injection-into-a-facesconverter
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > which lead
> >>> me to:
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > MyFaces
> >>> Extensions CDI
> >>>>  > >>  JSF Usage > Dependency
> >>>>  > >>  > Injection<
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> https://cwiki.apache.org/confluence/display/EXTCDI/JSF+Usage#JSFUsage-DependencyInjection
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > but I
> >>> don't which
> >>>>  > > library to import for @Advanced.
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > If
> >>> @Advanced can be used
> >>>>  > > (since I am using CODI), then
> >>>>  > >>  > this
> >>>>  > >>  > > > > would
> >>>>  > >>  > > > > > > be
> >>>>  > >>  > > > > > > > > > great.
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > > On Mon,
> >>> Nov 19, 2012 at
> >>>>  > > 2:56 PM, Romain Manni-Bucau <
> >>>>  > >>  > > > > > > > > >
> >>> rmannibu...@gmail.com
> >>>>  > >>  > > > > > > > > > > >
> >>> wrote:
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >> Maybe
> >>> use
> >>>>  > > BeanProvider of deltaspike
> >>>>  > >>  > > > > > > > > > >> Le 19
> >>> nov. 2012
> >>>>  > > 20:50, "Howard W. Smith, Jr." <
> >>>>  > >>  > > > > > > > smithh032...@gmail.com
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > > > a
> >>>>  > >>  > > > > > > > > > >> écrit
> >>> :
> >>>>  > >>  > > > > > > > > > >>
> >>>>  > >>  > > > > > > > > > >> >
> >>> Hmmm... after
> >>>>  > > thinking about it, I remembered to use
> >>>>  > >>  > > > @Inject
> >>>>  > >>  > > > > > on
> >>>>  > >>  > > > > > > > the
> >>>>  > >>  > > > > > > > > > bean
> >>>>  > >>  > > > > > > > > > >> >
> >>> which I want to
> >>>>  > > inject. So, I did the following:
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > @FacesConverter(forClass = AddressType.class)
> >>>>  > >>  > > > > > > > > > >> >
> >>>    public
> >>>>  > > static class
> >>>>  > >>  AddressTypeControllerConverter
> >>>>  > >>  > > > > > > implements
> >>>>  > >>  > > > > > > > > > >>
> >>> Converter
> >>>>  > >>  > > > > > > > > > >> > {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>        @Inject
> >>>>  > >>  > > > > > > > > > >> >
> >>>        private
> >>>>  > > pf_AddressTypeController controller;
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>        public
> >>>>  > > Object getAsObject(FacesContext
> >>>>  > >>  > > > facesContext,
> >>>>  > >>  > > > > > > > > > UIComponent
> >>>>  > >>  > > > > > > > > > >> >
> >>> component,
> >>>>  > > String value) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>            if
> >>>>  > > (value == null || value.length() ==
> >>>>  > >>  0)
> >>>>  > >>  > {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > return null;
> >>>>  > >>  > > > > > > > > > >> >
> >>>            }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > return
> >>>>  > >>  > > > controller.ejbFacade.find(getKey(value));
> >>>>  > >>  > > > > > > > > > >> >
> >>>        }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>> but
> >>>>  > > 'controller' is still not being injected. I even
> >>>>  > >>  > > tried
> >>>>  > >>  > > > > the
> >>>>  > >>  > > > > > > > same
> >>>>  > >>  > > > > > > > > > for
> >>>>  > >>  > > > > > > > > > >> the
> >>>>  > >>  > > > > > > > > > >> >
> >>> actual
> >>>>  > > 'ejbFacade' (which is a stateless bean), but
> >>>>  > >>  > > that,
> >>>>  > >>  > > > > too,
> >>>>  > >>  > > > > > > > > > resulted
> >>>>  > >>  > > > > > > > > > >> in
> >>>>  > >>  > > > > > > > > > >> > a
> >>>>  > > NullPointerException, which tells me that @Inject
> >>>>  > >>  is
> >>>>  > >>  > > not
> >>>>  > >>  > > > > > > > injecting
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > pf_AddressTypeController (@sessionscoped bean) OR
> >>>>  > >>  > > > ejbFacade
> >>>>  > >>  > > > > > > > > > (@Stateless
> >>>>  > >>  > > > > > > > > > >> >
> >>> bean instance of
> >>>>  > > AddressTypeFacade).
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>> Is there a
> >>>>  > > general practice used for injecting beans
> >>>>  > >>  > in
> >>>>  > >>  > > > > > > > Converters..
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>> On Mon, Nov 19,
> >>>>  > > 2012 at 2:38 PM, Romain Manni-Bucau
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > <rmannibu...@gmail.com>wrote:
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  Can you
> >>>>  > > reproduce it in a sample? What is on the
> >>>>  > >>  npe
> >>>>  > >>  > > > line?
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  Le 19 nov.
> >>>>  > > 2012 20:25, "Howard W. Smith, Jr." <
> >>>>  > >>  > > > > > > > > >
> >>> smithh032...@gmail.com>
> >>>>  > >>  > > > > > > > > > >> a
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  écrit :
> >>>>  > >>  > > > > > > > > > >> >
> >>>>
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > I am
> >>>>  > > still migrating my app from JSF Managed
> >>>>  > >>  beans
> >>>>  > >>  > > to
> >>>>  > >>  > > > > CDI
> >>>>  > >>  > > > > > > > > managed
> >>>>  > >>  > > > > > > > > > >> >
> >>> beans,
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  so
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > I am
> >>>>  > > (regression) testing, and I came across the
> >>>>  > >>  > > > > exception
> >>>>  > >>  > > > > > > > below
> >>>>  > >>  > > > > > > > > > >> when
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > attempting to add a record into the database on
> >>>>  > >>  > one
> >>>>  > >>  > > of
> >>>>  > >>  > > > > the
> >>>>  > >>  > > > > > > > xhtml
> >>>>  > >>  > > > > > > > > > >> pages.
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > Caused
> >>>>  > > by: java.lang.NullPointerException
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > at
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >>
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> jsf.address.pf_AddressTypeController$AddressTypeControllerConverter.getAsObject(pf_AddressTypeController.java:283)
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > The
> >>>>  > > exception is caused by this line below.
> >>>>  > >>  > > > *ejbFacade*
> >>>>  > >>  > > > > > is a
> >>>>  > >>  > > > > > > > > > >>
> >>> stateless
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  bean
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > injected by @Inject.
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      return
> >>>>  > >>  > > > > > >
> >>> controller.*ejbFacade*.find(getKey(value));
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > The
> >>>>  > > code below is as-is using JSF Managed Beans.
> >>>>  > >>  > > > Please
> >>>>  > >>  > > > > > > advise
> >>>>  > >>  > > > > > > > > on
> >>>>  > >>  > > > > > > > > > >> how I
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > should
> >>>>  > > update the following code, so it will
> >>>>  > >>  work
> >>>>  > >>  > > well
> >>>>  > >>  > > > > > with
> >>>>  > >>  > > > > > > > CDI.
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > @FacesConverter(forClass =
> >>>>  > >>  AddressType.class)
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > public static class
> >>>>  > >>  > > AddressTypeControllerConverter
> >>>>  > >>  > > > > > > > > implements
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  Converter
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > public Object getAsObject(FacesContext
> >>>>  > >>  > > > > > facesContext,
> >>>>  > >>  > > > > > > > > > >> >
> >>> UIComponent
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > component, String value) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      if (value == null || value.length()
> >>>>  > >>  ==
> >>>>  > >>  > > 0)
> >>>>  > >>  > > > {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >          return null;
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      pf_AddressTypeController controller
> >>>>  > >>  =
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > (pf_AddressTypeController)
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > facesContext.getApplication().getELResolver().
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > getValue(facesContext.getELContext(),
> >>>>  > >>  > > > > > > > null,
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > "pf_addressTypeController");
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      return
> >>>>  > >>  > > > > >
> >>> controller.ejbFacade.find(getKey(value));
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > java.lang.Integer getKey(String value) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      java.lang.Integer key;
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      key = Integer.valueOf(value);
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      return key;
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > String getStringKey(java.lang.Integer
> >>>>  > >>  > > value) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      StringBuffer sb = new
> >>>>  > >>  StringBuffer();
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      sb.append(value);
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      return sb.toString();
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > public String getAsString(FacesContext
> >>>>  > >>  > > > > > facesContext,
> >>>>  > >>  > > > > > > > > > >> >
> >>> UIComponent
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > component, Object object) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      if (object == null) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >          return null;
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      if (object instanceof AddressType) {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >          AddressType o = (AddressType)
> >>>>  > >>  > > object;
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >          return
> >>>>  > >>  > > > > getStringKey(o.getAddressTypeId());
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      } else {
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >          throw new
> >>>>  > >>  > > > > IllegalArgumentException("object
> >>>>  > >>  > > > > > > " +
> >>>>  > >>  > > > > > > > > > >> object
> >>>>  > >>  > > > > > > > > > >> > +
> >>> "
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > is of
> >>>>  > > type " + object.getClass().getName() + ";
> >>>>  > >>  > > > expected
> >>>>  > >>  > > > > > > type:
> >>>>  > >>  > > > > > > > > " +
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > pf_AddressTypeController.class.getName());
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >     }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >>
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> >>
> >
> >
> >
>

Reply via email to