You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Howard W. Smith, Jr." <sm...@gmail.com> on 2012/11/20 13:56:30 UTC

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

The 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" <rm...@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. <sm...@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" <rm...@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. <sm...@gmail.com>
> > >
> > > > Faces context? Please explain.
> > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau" <
> rmannibucau@gmail.com>
> > > > wrote:
> > > >
> > > > > You cant use faces context?
> > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr." <
> > smithh032772@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
> > > > > > <rm...@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." <
> > > > smithh032772@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
> > > > > > > > <rm...@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." <
> > > > > > smithh032772@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. <
> > > > > > > > > > smithh032772@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 <
> > > > > > > > > > rmannibucau@gmail.com
> > > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > >> Maybe use BeanProvider of deltaspike
> > > > > > > > > > >> Le 19 nov. 2012 20:50, "Howard W. Smith, Jr." <
> > > > > > > > smithh032772@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
> > > > > > > > > > >> > <rm...@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." <
> > > > > > > > > > smithh032772@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());
> > > > > > > > > > >> > > >             }
> > > > > > > > > > >> > > >         }
> > > > > > > > > > >> > > >     }
> > > > > > > > > > >> > > > }
> > > > > > > > > > >> > > >
> > > > > > > > > > >> > >
> > > > > > > > > > >> >
> > > > > > > > > > >>
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
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 <st...@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." <sm...@gmail.com>
> >To: MyFaces Discussion <us...@myfaces.apache.org>; Mark Struberg <
> struberg@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 <st...@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." <sm...@gmail.com>
> >>
> >>> To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
> rmpestano@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
> >>> <rm...@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." <sm...@gmail.com>
> >>>>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
> >>>>  users@myfaces.apache.org>
> >>>>  Cc: "users@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"
> >>> <st...@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."
> >>> <sm...@gmail.com>
> >>>>  > > To: users@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"
> >>>>  > > <rm...@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.
> >>> <sm...@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"
> >>>>  > > <rm...@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.
> >>> <sm...@gmail.com>
> >>>>  > >>  > >
> >>>>  > >>  > > > Faces context? Please explain.
> >>>>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
> >>> Manni-Bucau"
> >>>>  > > <
> >>>>  > >>  rmannibucau@gmail.com>
> >>>>  > >>  > > > wrote:
> >>>>  > >>  > > >
> >>>>  > >>  > > > > You cant use faces context?
> >>>>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
> >>> Smith, Jr."
> >>>>  > > <
> >>>>  > >>  > smithh032772@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
> >>>>  > >>  > > > > > <rm...@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." <
> >>>>  > >>  > > > smithh032772@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
> >>>>  > >>  > > > > > > >
> >>> <rm...@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." <
> >>>>  > >>  > > > > > smithh032772@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. <
> >>>>  > >>  > > > > > > > > >
> >>> smithh032772@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 <
> >>>>  > >>  > > > > > > > > >
> >>> rmannibucau@gmail.com
> >>>>  > >>  > > > > > > > > > > >
> >>> wrote:
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >> Maybe
> >>> use
> >>>>  > > BeanProvider of deltaspike
> >>>>  > >>  > > > > > > > > > >> Le 19
> >>> nov. 2012
> >>>>  > > 20:50, "Howard W. Smith, Jr." <
> >>>>  > >>  > > > > > > > smithh032772@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
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > <rm...@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." <
> >>>>  > >>  > > > > > > > > >
> >>> smithh032772@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());
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >     }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >>
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> >>
> >
> >
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Mark,

Please read/see below.

Per your recommendation,

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*

I tried this, and this breaks PrimeFaces p:pickList p:ajax
event="transfer". See/click URL below for my numerous tests, test results,
and conclusion. :)

Issue 4908 <http://code.google.com/p/primefaces/issues/detail?id=4908> in
PrimeFaces Issue Tracker

Is this considered as an Apache CODI defect/issue or a lesson learned?
Please confirm.

Thanks,
Howard


On Tue, Nov 20, 2012 at 10:24 AM, Mark Struberg <st...@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." <sm...@gmail.com>
> >To: MyFaces Discussion <us...@myfaces.apache.org>; Mark Struberg <
> struberg@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 <st...@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." <sm...@gmail.com>
> >>
> >>> To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
> rmpestano@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
> >>> <rm...@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." <sm...@gmail.com>
> >>>>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
> >>>>  users@myfaces.apache.org>
> >>>>  Cc: "users@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"
> >>> <st...@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."
> >>> <sm...@gmail.com>
> >>>>  > > To: users@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"
> >>>>  > > <rm...@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.
> >>> <sm...@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"
> >>>>  > > <rm...@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.
> >>> <sm...@gmail.com>
> >>>>  > >>  > >
> >>>>  > >>  > > > Faces context? Please explain.
> >>>>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
> >>> Manni-Bucau"
> >>>>  > > <
> >>>>  > >>  rmannibucau@gmail.com>
> >>>>  > >>  > > > wrote:
> >>>>  > >>  > > >
> >>>>  > >>  > > > > You cant use faces context?
> >>>>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
> >>> Smith, Jr."
> >>>>  > > <
> >>>>  > >>  > smithh032772@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
> >>>>  > >>  > > > > > <rm...@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." <
> >>>>  > >>  > > > smithh032772@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
> >>>>  > >>  > > > > > > >
> >>> <rm...@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." <
> >>>>  > >>  > > > > > smithh032772@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. <
> >>>>  > >>  > > > > > > > > >
> >>> smithh032772@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 <
> >>>>  > >>  > > > > > > > > >
> >>> rmannibucau@gmail.com
> >>>>  > >>  > > > > > > > > > > >
> >>> wrote:
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >> Maybe
> >>> use
> >>>>  > > BeanProvider of deltaspike
> >>>>  > >>  > > > > > > > > > >> Le 19
> >>> nov. 2012
> >>>>  > > 20:50, "Howard W. Smith, Jr." <
> >>>>  > >>  > > > > > > > smithh032772@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
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > > <rm...@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." <
> >>>>  > >>  > > > > > > > > >
> >>> smithh032772@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());
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >      }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >     }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > }
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  >
> >>>>  > >>  > > > > > > > > > >> >
> >>>>
> >>>>  > >>  > > > > > > > > > >> >
> >>>>  > >>  > > > > > > > > > >>
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > > >
> >>>>  > >>  > > > > > > > > >
> >>>>  > >>  > > > > > > > >
> >>>>  > >>  > > > > > > >
> >>>>  > >>  > > > > > >
> >>>>  > >>  > > > > >
> >>>>  > >>  > > > >
> >>>>  > >>  > > >
> >>>>  > >>  > >
> >>>>  > >>  >
> >>>>  > >>
> >>>>  > >
> >>>>  >
> >>>>
> >>>
> >>
> >
> >
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Mark Struberg <st...@yahoo.de>.
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." <sm...@gmail.com>
>To: MyFaces Discussion <us...@myfaces.apache.org>; Mark Struberg <st...@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 <st...@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." <sm...@gmail.com>
>>
>>> To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <rm...@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
>>> <rm...@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." <sm...@gmail.com>
>>>>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>>>  users@myfaces.apache.org>
>>>>  Cc: "users@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"
>>> <st...@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."
>>> <sm...@gmail.com>
>>>>  > > To: users@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"
>>>>  > > <rm...@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.
>>> <sm...@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"
>>>>  > > <rm...@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.
>>> <sm...@gmail.com>
>>>>  > >>  > >
>>>>  > >>  > > > Faces context? Please explain.
>>>>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>> Manni-Bucau"
>>>>  > > <
>>>>  > >>  rmannibucau@gmail.com>
>>>>  > >>  > > > wrote:
>>>>  > >>  > > >
>>>>  > >>  > > > > You cant use faces context?
>>>>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>> Smith, Jr."
>>>>  > > <
>>>>  > >>  > smithh032772@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
>>>>  > >>  > > > > > <rm...@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." <
>>>>  > >>  > > > smithh032772@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
>>>>  > >>  > > > > > > >
>>> <rm...@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." <
>>>>  > >>  > > > > > smithh032772@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. <
>>>>  > >>  > > > > > > > > >
>>> smithh032772@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 <
>>>>  > >>  > > > > > > > > >
>>> rmannibucau@gmail.com
>>>>  > >>  > > > > > > > > > > >
>>> wrote:
>>>>  > >>  > > > > > > > > > >
>>>>  > >>  > > > > > > > > > >> Maybe
>>> use
>>>>  > > BeanProvider of deltaspike
>>>>  > >>  > > > > > > > > > >> Le 19
>>> nov. 2012
>>>>  > > 20:50, "Howard W. Smith, Jr." <
>>>>  > >>  > > > > > > > smithh032772@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
>>>>  > >>  > > > > > > > > > >> >
>>>>  > > <rm...@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." <
>>>>  > >>  > > > > > > > > >
>>> smithh032772@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());
>>>>  > >>  > > > > > > > > > >> >
>>>>  >
>>>>  > >      }
>>>>  > >>  > > > > > > > > > >> >
>>>>  >
>>>>  > > }
>>>>  > >>  > > > > > > > > > >> >
>>>>  >     }
>>>>  > >>  > > > > > > > > > >> >
>>>>  > }
>>>>  > >>  > > > > > > > > > >> >
>>>>  >
>>>>  > >>  > > > > > > > > > >> >
>>>>
>>>>  > >>  > > > > > > > > > >> >
>>>>  > >>  > > > > > > > > > >>
>>>>  > >>  > > > > > > > > > >
>>>>  > >>  > > > > > > > > > >
>>>>  > >>  > > > > > > > > >
>>>>  > >>  > > > > > > > >
>>>>  > >>  > > > > > > >
>>>>  > >>  > > > > > >
>>>>  > >>  > > > > >
>>>>  > >>  > > > >
>>>>  > >>  > > >
>>>>  > >>  > >
>>>>  > >>  >
>>>>  > >>
>>>>  > >
>>>>  >
>>>>
>>>
>>
>
>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
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 <st...@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." <sm...@gmail.com>
> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
> rmpestano@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
> > <rm...@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." <sm...@gmail.com>
> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
> >>  users@myfaces.apache.org>
> >>  Cc: "users@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"
> > <st...@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."
> > <sm...@gmail.com>
> >>  > > To: users@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"
> >>  > > <rm...@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.
> > <sm...@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"
> >>  > > <rm...@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.
> > <sm...@gmail.com>
> >>  > >>  > >
> >>  > >>  > > > Faces context? Please explain.
> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
> > Manni-Bucau"
> >>  > > <
> >>  > >>  rmannibucau@gmail.com>
> >>  > >>  > > > wrote:
> >>  > >>  > > >
> >>  > >>  > > > > You cant use faces context?
> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
> > Smith, Jr."
> >>  > > <
> >>  > >>  > smithh032772@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
> >>  > >>  > > > > > <rm...@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." <
> >>  > >>  > > > smithh032772@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
> >>  > >>  > > > > > > >
> > <rm...@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." <
> >>  > >>  > > > > > smithh032772@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. <
> >>  > >>  > > > > > > > > >
> > smithh032772@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 <
> >>  > >>  > > > > > > > > >
> > rmannibucau@gmail.com
> >>  > >>  > > > > > > > > > > >
> > wrote:
> >>  > >>  > > > > > > > > > >
> >>  > >>  > > > > > > > > > >> Maybe
> > use
> >>  > > BeanProvider of deltaspike
> >>  > >>  > > > > > > > > > >> Le 19
> > nov. 2012
> >>  > > 20:50, "Howard W. Smith, Jr." <
> >>  > >>  > > > > > > > smithh032772@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
> >>  > >>  > > > > > > > > > >> >
> >>  > > <rm...@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." <
> >>  > >>  > > > > > > > > >
> > smithh032772@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());
> >>  > >>  > > > > > > > > > >> >
> >>  >
> >>  > >      }
> >>  > >>  > > > > > > > > > >> >
> >>  >
> >>  > > }
> >>  > >>  > > > > > > > > > >> >
> >>  >     }
> >>  > >>  > > > > > > > > > >> >
> >>  > }
> >>  > >>  > > > > > > > > > >> >
> >>  >
> >>  > >>  > > > > > > > > > >> >
> >>
> >>  > >>  > > > > > > > > > >> >
> >>  > >>  > > > > > > > > > >>
> >>  > >>  > > > > > > > > > >
> >>  > >>  > > > > > > > > > >
> >>  > >>  > > > > > > > > >
> >>  > >>  > > > > > > > >
> >>  > >>  > > > > > > >
> >>  > >>  > > > > > >
> >>  > >>  > > > > >
> >>  > >>  > > > >
> >>  > >>  > > >
> >>  > >>  > >
> >>  > >>  >
> >>  > >>
> >>  > >
> >>  >
> >>
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Test:

1.0.6 SNAPSHOT, CODI BeanManagerProvider (*without* @Advanced) to inject
bean in @FacesConverter

Test result:

1. CDI bean is injected successfully in @FacesConverter, as expected, and
converter provides data to JSF component on xhtml (same for previous test)

2. This breaks PrimeFaces p:pickList p:ajax event="transfer" (PrimeFaces Issue
4908 <http://code.google.com/p/primefaces/issues/detail?id=4908>).

Stacktrace below:

java.lang.NullPointerException
	at jsf.role.pf_RoleController$RoleControllerConverter.getAsObject(pf_RoleController.java:678)
	at org.primefaces.component.picklist.PickList.populateModel(PickList.java:425)
	at org.primefaces.component.picklist.PickList.queueEvent(PickList.java:401)
	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:42)
	at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:64)
	at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:377)
	at org.primefaces.component.picklist.PickListRenderer.decode(PickListRenderer.java:50)
	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:467)
	at javax.faces.component.UIInput.decode(UIInput.java:352)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1377)
	at javax.faces.component.UIInput.processDecodes(UIInput.java:188)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:731)
	at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:214)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:932)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at org.primefaces.component.tabview.TabView.visitTree(TabView.java:409)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIForm.visitTree(UIForm.java:354)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:420)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:401)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
	at javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1488)
	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1372)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:38)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148)
	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at pf.LoginFilter.doFilter(LoginFilter.java:175)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)



On Wed, Nov 21, 2012 at 6:05 AM, Howard W. Smith, Jr. <
smithh032772@gmail.com> wrote:

> Test:
>
> 1.0.6 SNAPSHOT, CODI @Advanced *and* BeanManagerProvider to inject bean
> in @FacesConverter
>
> Test result:
>
> 1. CDI bean is injected successfully in @FacesConverter, as expected, and
> converter provides data to JSF component on xhtml (same for previous test)
>
> 2. This breaks PrimeFaces p:pickList p:ajax event="transfer" (PrimeFaces Issue
> 4908 <http://code.google.com/p/primefaces/issues/detail?id=4908>).
>
> Stacktrace below:
>
> java.lang.NullPointerException
> 	at jsf.role.pf_RoleController$RoleControllerConverter.getAsObject(pf_RoleController.java:678)
> 	at org.primefaces.component.picklist.PickList.populateModel(PickList.java:425)
> 	at org.primefaces.component.picklist.PickList.queueEvent(PickList.java:401)
> 	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:42)
> 	at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:64)
> 	at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:377)
> 	at org.primefaces.component.picklist.PickListRenderer.decode(PickListRenderer.java:50)
> 	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:467)
> 	at javax.faces.component.UIInput.decode(UIInput.java:352)
> 	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1377)
> 	at javax.faces.component.UIInput.processDecodes(UIInput.java:188)
> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:731)
> 	at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:214)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:932)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at org.primefaces.component.tabview.TabView.visitTree(TabView.java:409)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIForm.visitTree(UIForm.java:354)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:420)
> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:401)
> 	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
> 	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
> 	at javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1488)
> 	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1372)
> 	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
> 	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:38)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148)
> 	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at pf.LoginFilter.doFilter(LoginFilter.java:175)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> 	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
> 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:722)
>
>
>
> On Wed, Nov 21, 2012 at 5:42 AM, Howard W. Smith, Jr. <
> smithh032772@gmail.com> wrote:
>
>> Gerhard/Mark,
>>
>> I just tested 1.0.6 SNAPSHOT of MyFaces CODI and injected bean in
>> @FacesConverter via CODI @Advanced and @Inject as demonstrated in [2]
>> below. It is evident that CODI @Advanced and @Inject is successfully
>> injecting bean in the @FacesConverter, but this breaks PrimeFaces
>> p:pickList p:ajax event="transfer" as I noted earlier, Issue 4908<http://code.google.com/p/primefaces/issues/detail?id=4908>in PrimeFaces Issue Tracker.
>>
>> Next, I will attempt to test the fix for [1] EXTCDI-302 and use Mark's
>> earlier suggestion, CODI  BeanManagerProvider.getInstance().
>> getContextualReference(YourClass.class). Next reply will contain test
>> results.
>>
>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>
>> Below is stacktrace from the CODI @Advanced test that I mentioned above.
>> This is related to PrimeFaces Issue 4908 above.
>>
>> java.lang.NullPointerException
>> 	at jsf.role.pf_RoleController.access$000(pf_RoleController.java:45)
>> 	at jsf.role.pf_RoleController$RoleControllerConverter.getAsObject(pf_RoleController.java:678)
>> 	at org.primefaces.component.picklist.PickList.populateModel(PickList.java:425)
>> 	at org.primefaces.component.picklist.PickList.queueEvent(PickList.java:401)
>> 	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:42)
>> 	at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:64)
>> 	at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:377)
>> 	at org.primefaces.component.picklist.PickListRenderer.decode(PickListRenderer.java:50)
>> 	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:467)
>> 	at javax.faces.component.UIInput.decode(UIInput.java:352)
>> 	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1377)
>> 	at javax.faces.component.UIInput.processDecodes(UIInput.java:188)
>> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:731)
>> 	at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:214)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:932)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at org.primefaces.component.tabview.TabView.visitTree(TabView.java:409)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIForm.visitTree(UIForm.java:354)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
>> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
>> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:420)
>> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:401)
>> 	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
>> 	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
>> 	at javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1488)
>> 	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1372)
>> 	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
>> 	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:38)
>> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> 	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> 	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148)
>> 	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75)
>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> 	at pf.LoginFilter.doFilter(LoginFilter.java:175)
>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>> 	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
>> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
>> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
>> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
>> 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>> 	at java.lang.Thread.run(Thread.java:722)
>>
>>
>> On Wed, Nov 21, 2012 at 5:11 AM, Gerhard Petracek <
>> gerhard.petracek@gmail.com> wrote:
>>
>>> the jsf2 module of codi is tested with jsf 2.0.x and 2.1.x
>>>
>>> regards,
>>> gerhard
>>>
>>> http://www.irian.at
>>>
>>> Your JSF/JavaEE powerhouse -
>>> JavaEE Consulting, Development and
>>> Courses in English and German
>>>
>>> Professional Support for Apache MyFaces
>>>
>>>
>>>
>>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>>
>>> > Gerhard,
>>> >
>>> > I definitely prefer [1] (JAR download), thanks.
>>> >
>>> > Interesting...I must have been multitasking big time while migrating to
>>> > TomEE/CDI, because I downloaded jsf1.2 1.0.5 version of CODI; that's
>>> the
>>> > filename of the JAR I downloaded.
>>> >
>>> > This 1.0.6 SNAPSHOT that is now available, is this jsf1.2 or jsf2.0? I
>>> > hope jsf2.0, since my app has been jsf2.1 ever since the start (a
>>> little
>>> > over 1 year ago).
>>> >
>>> > Thanks,
>>> >  Howard
>>> >
>>> >
>>> > On Wed, Nov 21, 2012 at 4:40 AM, Gerhard Petracek <
>>> > gerhard.petracek@gmail.com> wrote:
>>> >
>>> >> hi howard,
>>> >>
>>> >> #1:
>>> >> i've updated the ticket - thx!
>>> >>
>>> >> #2:
>>> >> via maven (to update a local snapshot build your application with
>>> >> the maven-parameter -U)
>>> >> or
>>> >> download it from [1]
>>> >> or
>>> >> checkout codi and build it locally (see the description in the wiki)
>>> >>
>>> >> regards,
>>> >> gerhard
>>> >>
>>> >> [1]
>>> >>
>>> https://repository.apache.org/content/groups/snapshots/org/apache/myfaces/extensions/cdi/
>>> >>
>>> >> http://www.irian.at
>>> >>
>>> >> Your JSF/JavaEE powerhouse -
>>> >> JavaEE Consulting, Development and
>>> >> Courses in English and German
>>> >>
>>> >> Professional Support for Apache MyFaces
>>> >>
>>> >>
>>> >>
>>> >> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>> >>
>>> >>> Gerhard,
>>> >>>
>>> >>> I just registered with username that matches username of my email
>>> >>> address (above).
>>> >>>
>>> >>> Hmmm, now I need to find out how I can get the latest snapshot. Can I
>>> >>> locate on Maven Central repository?
>>> >>>
>>> >>> Thanks,
>>> >>> Howard
>>> >>>
>>> >>>
>>> >>> On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
>>> >>> gerhard.petracek@gmail.com> wrote:
>>> >>>
>>> >>>> hi howard,
>>> >>>>
>>> >>>> yes - i've fixed EXTCDI-302 already -> if you like, you can test it
>>> >>>> with the current snapshot (just ensure that you have the latest
>>> snapshot).
>>> >>>> if you have an apache-jira account, i'll update the ticket so that
>>> you
>>> >>>> are listed as the reporter of it.
>>> >>>>
>>> >>>> regards,
>>> >>>> gerhard
>>> >>>>
>>> >>>> http://www.irian.at
>>> >>>>
>>> >>>> Your JSF/JavaEE powerhouse -
>>> >>>> JavaEE Consulting, Development and
>>> >>>> Courses in English and German
>>> >>>>
>>> >>>> Professional Support for Apache MyFaces
>>> >>>>
>>> >>>>
>>> >>>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>> >>>>
>>> >>>> Gerhard,
>>> >>>>>
>>> >>>>> Interesting.
>>> >>>>>
>>> >>>>>
>>> >>>>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>>> >>>>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>>> >>>>>
>>> >>>>>
>>> >>>>> is a new issue that you just created and resolved per this email I
>>> >>>>> just sent? :)
>>> >>>>>
>>> >>>>> Thanks,
>>> >>>>> Howard
>>> >>>>>
>>> >>>>>
>>> >>>>>
>>> >>>>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
>>> >>>>> gerhard.petracek@gmail.com> wrote:
>>> >>>>>
>>> >>>>>> please have a look at [1] and [2].
>>> >>>>>>
>>> >>>>>> regards,
>>> >>>>>> gerhard
>>> >>>>>>
>>> >>>>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>>> >>>>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>> >>>>>>
>>> >>>>>> http://www.irian.at
>>> >>>>>>
>>> >>>>>> Your JSF/JavaEE powerhouse -
>>> >>>>>> JavaEE Consulting, Development and
>>> >>>>>> Courses in English and German
>>> >>>>>>
>>> >>>>>> Professional Support for Apache MyFaces
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>>> >>>>>>
>>> >>>>>>> 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." <sm...@gmail.com>
>>> >>>>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael
>>> Pestano
>>> >>>>>>> <rm...@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
>>> >>>>>>> > <rm...@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." <sm...@gmail.com>
>>> >>>>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion
>>> <
>>> >>>>>>> >>  users@myfaces.apache.org>
>>> >>>>>>> >>  Cc: "users@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"
>>> >>>>>>> > <st...@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."
>>> >>>>>>> > <sm...@gmail.com>
>>> >>>>>>> >>  > > To: users@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"
>>> >>>>>>> >>  > > <rm...@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.
>>> >>>>>>> > <sm...@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"
>>> >>>>>>> >>  > > <rm...@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.
>>> >>>>>>> > <sm...@gmail.com>
>>> >>>>>>> >>  > >>  > >
>>> >>>>>>> >>  > >>  > > > Faces context? Please explain.
>>> >>>>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>> >>>>>>> > Manni-Bucau"
>>> >>>>>>> >>  > > <
>>> >>>>>>> >>  > >>  rmannibucau@gmail.com>
>>> >>>>>>> >>  > >>  > > > wrote:
>>> >>>>>>> >>  > >>  > > >
>>> >>>>>>> >>  > >>  > > > > You cant use faces context?
>>> >>>>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>> >>>>>>> > Smith, Jr."
>>> >>>>>>> >>  > > <
>>> >>>>>>> >>  > >>  > smithh032772@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
>>> >>>>>>> >>  > >>  > > > > > <rm...@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." <
>>> >>>>>>> >>  > >>  > > > smithh032772@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
>>> >>>>>>> >>  > >>  > > > > > > >
>>> >>>>>>> > <rm...@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." <
>>> >>>>>>> >>  > >>  > > > > > smithh032772@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. <
>>> >>>>>>> >>  > >>  > > > > > > > > >
>>> >>>>>>> > smithh032772@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 <
>>> >>>>>>> >>  > >>  > > > > > > > > >
>>> >>>>>>> > rmannibucau@gmail.com
>>> >>>>>>> >>  > >>  > > > > > > > > > > >
>>> >>>>>>> > wrote:
>>> >>>>>>> >>  > >>  > > > > > > > > > >
>>> >>>>>>> >>  > >>  > > > > > > > > > >> Maybe
>>> >>>>>>> > use
>>> >>>>>>> >>  > > BeanProvider of deltaspike
>>> >>>>>>> >>  > >>  > > > > > > > > > >> Le 19
>>> >>>>>>> > nov. 2012
>>> >>>>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>>> >>>>>>> >>  > >>  > > > > > > > smithh032772@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
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  > > <rm...@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." <
>>> >>>>>>> >>  > >>  > > > > > > > > >
>>> >>>>>>> > smithh032772@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());
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  >
>>> >>>>>>> >>  > >      }
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  >
>>> >>>>>>> >>  > > }
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  >     }
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  > }
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  >
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>
>>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>>> >>>>>>> >>  > >>  > > > > > > > > > >>
>>> >>>>>>> >>  > >>  > > > > > > > > > >
>>> >>>>>>> >>  > >>  > > > > > > > > > >
>>> >>>>>>> >>  > >>  > > > > > > > > >
>>> >>>>>>> >>  > >>  > > > > > > > >
>>> >>>>>>> >>  > >>  > > > > > > >
>>> >>>>>>> >>  > >>  > > > > > >
>>> >>>>>>> >>  > >>  > > > > >
>>> >>>>>>> >>  > >>  > > > >
>>> >>>>>>> >>  > >>  > > >
>>> >>>>>>> >>  > >>  > >
>>> >>>>>>> >>  > >>  >
>>> >>>>>>> >>  > >>
>>> >>>>>>> >>  > >
>>> >>>>>>> >>  >
>>> >>>>>>> >>
>>> >>>>>>> >
>>> >>>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>
>>> >>>>
>>> >>>
>>> >>
>>> >
>>>
>>
>>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Test:

1.0.6 SNAPSHOT, CODI @Advanced *and* BeanManagerProvider to inject bean in
@FacesConverter

Test result:

1. CDI bean is injected successfully in @FacesConverter, as expected, and
converter provides data to JSF component on xhtml (same for previous test)

2. This breaks PrimeFaces p:pickList p:ajax event="transfer" (PrimeFaces Issue
4908 <http://code.google.com/p/primefaces/issues/detail?id=4908>).

Stacktrace below:

java.lang.NullPointerException
	at jsf.role.pf_RoleController$RoleControllerConverter.getAsObject(pf_RoleController.java:678)
	at org.primefaces.component.picklist.PickList.populateModel(PickList.java:425)
	at org.primefaces.component.picklist.PickList.queueEvent(PickList.java:401)
	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:42)
	at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:64)
	at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:377)
	at org.primefaces.component.picklist.PickListRenderer.decode(PickListRenderer.java:50)
	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:467)
	at javax.faces.component.UIInput.decode(UIInput.java:352)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1377)
	at javax.faces.component.UIInput.processDecodes(UIInput.java:188)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:731)
	at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:214)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:932)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at org.primefaces.component.tabview.TabView.visitTree(TabView.java:409)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIForm.visitTree(UIForm.java:354)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:420)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:401)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
	at javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1488)
	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1372)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:38)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148)
	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at pf.LoginFilter.doFilter(LoginFilter.java:175)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)



On Wed, Nov 21, 2012 at 5:42 AM, Howard W. Smith, Jr. <
smithh032772@gmail.com> wrote:

> Gerhard/Mark,
>
> I just tested 1.0.6 SNAPSHOT of MyFaces CODI and injected bean in
> @FacesConverter via CODI @Advanced and @Inject as demonstrated in [2]
> below. It is evident that CODI @Advanced and @Inject is successfully
> injecting bean in the @FacesConverter, but this breaks PrimeFaces
> p:pickList p:ajax event="transfer" as I noted earlier, Issue 4908<http://code.google.com/p/primefaces/issues/detail?id=4908>in PrimeFaces Issue Tracker.
>
> Next, I will attempt to test the fix for [1] EXTCDI-302 and use Mark's
> earlier suggestion, CODI  BeanManagerProvider.getInstance().
> getContextualReference(YourClass.class). Next reply will contain test
> results.
>
> [1] https://issues.apache.org/jira/browse/EXTCDI-302
> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>
> Below is stacktrace from the CODI @Advanced test that I mentioned above.
> This is related to PrimeFaces Issue 4908 above.
>
> java.lang.NullPointerException
> 	at jsf.role.pf_RoleController.access$000(pf_RoleController.java:45)
> 	at jsf.role.pf_RoleController$RoleControllerConverter.getAsObject(pf_RoleController.java:678)
> 	at org.primefaces.component.picklist.PickList.populateModel(PickList.java:425)
> 	at org.primefaces.component.picklist.PickList.queueEvent(PickList.java:401)
> 	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:42)
> 	at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:64)
> 	at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:377)
> 	at org.primefaces.component.picklist.PickListRenderer.decode(PickListRenderer.java:50)
> 	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:467)
> 	at javax.faces.component.UIInput.decode(UIInput.java:352)
> 	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1377)
> 	at javax.faces.component.UIInput.processDecodes(UIInput.java:188)
> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:731)
> 	at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:214)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:932)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at org.primefaces.component.tabview.TabView.visitTree(TabView.java:409)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIForm.visitTree(UIForm.java:354)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:420)
> 	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:401)
> 	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
> 	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
> 	at javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1488)
> 	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1372)
> 	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
> 	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:38)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148)
> 	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at pf.LoginFilter.doFilter(LoginFilter.java:175)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> 	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
> 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:722)
>
>
> On Wed, Nov 21, 2012 at 5:11 AM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
>> the jsf2 module of codi is tested with jsf 2.0.x and 2.1.x
>>
>> regards,
>> gerhard
>>
>> http://www.irian.at
>>
>> Your JSF/JavaEE powerhouse -
>> JavaEE Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache MyFaces
>>
>>
>>
>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>
>> > Gerhard,
>> >
>> > I definitely prefer [1] (JAR download), thanks.
>> >
>> > Interesting...I must have been multitasking big time while migrating to
>> > TomEE/CDI, because I downloaded jsf1.2 1.0.5 version of CODI; that's the
>> > filename of the JAR I downloaded.
>> >
>> > This 1.0.6 SNAPSHOT that is now available, is this jsf1.2 or jsf2.0? I
>> > hope jsf2.0, since my app has been jsf2.1 ever since the start (a little
>> > over 1 year ago).
>> >
>> > Thanks,
>> >  Howard
>> >
>> >
>> > On Wed, Nov 21, 2012 at 4:40 AM, Gerhard Petracek <
>> > gerhard.petracek@gmail.com> wrote:
>> >
>> >> hi howard,
>> >>
>> >> #1:
>> >> i've updated the ticket - thx!
>> >>
>> >> #2:
>> >> via maven (to update a local snapshot build your application with
>> >> the maven-parameter -U)
>> >> or
>> >> download it from [1]
>> >> or
>> >> checkout codi and build it locally (see the description in the wiki)
>> >>
>> >> regards,
>> >> gerhard
>> >>
>> >> [1]
>> >>
>> https://repository.apache.org/content/groups/snapshots/org/apache/myfaces/extensions/cdi/
>> >>
>> >> http://www.irian.at
>> >>
>> >> Your JSF/JavaEE powerhouse -
>> >> JavaEE Consulting, Development and
>> >> Courses in English and German
>> >>
>> >> Professional Support for Apache MyFaces
>> >>
>> >>
>> >>
>> >> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>> >>
>> >>> Gerhard,
>> >>>
>> >>> I just registered with username that matches username of my email
>> >>> address (above).
>> >>>
>> >>> Hmmm, now I need to find out how I can get the latest snapshot. Can I
>> >>> locate on Maven Central repository?
>> >>>
>> >>> Thanks,
>> >>> Howard
>> >>>
>> >>>
>> >>> On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
>> >>> gerhard.petracek@gmail.com> wrote:
>> >>>
>> >>>> hi howard,
>> >>>>
>> >>>> yes - i've fixed EXTCDI-302 already -> if you like, you can test it
>> >>>> with the current snapshot (just ensure that you have the latest
>> snapshot).
>> >>>> if you have an apache-jira account, i'll update the ticket so that
>> you
>> >>>> are listed as the reporter of it.
>> >>>>
>> >>>> regards,
>> >>>> gerhard
>> >>>>
>> >>>> http://www.irian.at
>> >>>>
>> >>>> Your JSF/JavaEE powerhouse -
>> >>>> JavaEE Consulting, Development and
>> >>>> Courses in English and German
>> >>>>
>> >>>> Professional Support for Apache MyFaces
>> >>>>
>> >>>>
>> >>>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>> >>>>
>> >>>> Gerhard,
>> >>>>>
>> >>>>> Interesting.
>> >>>>>
>> >>>>>
>> >>>>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>> >>>>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>> >>>>>
>> >>>>>
>> >>>>> is a new issue that you just created and resolved per this email I
>> >>>>> just sent? :)
>> >>>>>
>> >>>>> Thanks,
>> >>>>> Howard
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
>> >>>>> gerhard.petracek@gmail.com> wrote:
>> >>>>>
>> >>>>>> please have a look at [1] and [2].
>> >>>>>>
>> >>>>>> regards,
>> >>>>>> gerhard
>> >>>>>>
>> >>>>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>> >>>>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>> >>>>>>
>> >>>>>> http://www.irian.at
>> >>>>>>
>> >>>>>> Your JSF/JavaEE powerhouse -
>> >>>>>> JavaEE Consulting, Development and
>> >>>>>> Courses in English and German
>> >>>>>>
>> >>>>>> Professional Support for Apache MyFaces
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>> >>>>>>
>> >>>>>>> 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." <sm...@gmail.com>
>> >>>>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael
>> Pestano
>> >>>>>>> <rm...@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
>> >>>>>>> > <rm...@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." <sm...@gmail.com>
>> >>>>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>> >>>>>>> >>  users@myfaces.apache.org>
>> >>>>>>> >>  Cc: "users@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"
>> >>>>>>> > <st...@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."
>> >>>>>>> > <sm...@gmail.com>
>> >>>>>>> >>  > > To: users@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"
>> >>>>>>> >>  > > <rm...@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.
>> >>>>>>> > <sm...@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"
>> >>>>>>> >>  > > <rm...@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.
>> >>>>>>> > <sm...@gmail.com>
>> >>>>>>> >>  > >>  > >
>> >>>>>>> >>  > >>  > > > Faces context? Please explain.
>> >>>>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>> >>>>>>> > Manni-Bucau"
>> >>>>>>> >>  > > <
>> >>>>>>> >>  > >>  rmannibucau@gmail.com>
>> >>>>>>> >>  > >>  > > > wrote:
>> >>>>>>> >>  > >>  > > >
>> >>>>>>> >>  > >>  > > > > You cant use faces context?
>> >>>>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>> >>>>>>> > Smith, Jr."
>> >>>>>>> >>  > > <
>> >>>>>>> >>  > >>  > smithh032772@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
>> >>>>>>> >>  > >>  > > > > > <rm...@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." <
>> >>>>>>> >>  > >>  > > > smithh032772@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
>> >>>>>>> >>  > >>  > > > > > > >
>> >>>>>>> > <rm...@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." <
>> >>>>>>> >>  > >>  > > > > > smithh032772@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. <
>> >>>>>>> >>  > >>  > > > > > > > > >
>> >>>>>>> > smithh032772@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 <
>> >>>>>>> >>  > >>  > > > > > > > > >
>> >>>>>>> > rmannibucau@gmail.com
>> >>>>>>> >>  > >>  > > > > > > > > > > >
>> >>>>>>> > wrote:
>> >>>>>>> >>  > >>  > > > > > > > > > >
>> >>>>>>> >>  > >>  > > > > > > > > > >> Maybe
>> >>>>>>> > use
>> >>>>>>> >>  > > BeanProvider of deltaspike
>> >>>>>>> >>  > >>  > > > > > > > > > >> Le 19
>> >>>>>>> > nov. 2012
>> >>>>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>> >>>>>>> >>  > >>  > > > > > > > smithh032772@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
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  > > <rm...@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." <
>> >>>>>>> >>  > >>  > > > > > > > > >
>> >>>>>>> > smithh032772@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());
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  >
>> >>>>>>> >>  > >      }
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  >
>> >>>>>>> >>  > > }
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  >     }
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  > }
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  >
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>
>> >>>>>>> >>  > >>  > > > > > > > > > >> >
>> >>>>>>> >>  > >>  > > > > > > > > > >>
>> >>>>>>> >>  > >>  > > > > > > > > > >
>> >>>>>>> >>  > >>  > > > > > > > > > >
>> >>>>>>> >>  > >>  > > > > > > > > >
>> >>>>>>> >>  > >>  > > > > > > > >
>> >>>>>>> >>  > >>  > > > > > > >
>> >>>>>>> >>  > >>  > > > > > >
>> >>>>>>> >>  > >>  > > > > >
>> >>>>>>> >>  > >>  > > > >
>> >>>>>>> >>  > >>  > > >
>> >>>>>>> >>  > >>  > >
>> >>>>>>> >>  > >>  >
>> >>>>>>> >>  > >>
>> >>>>>>> >>  > >
>> >>>>>>> >>  >
>> >>>>>>> >>
>> >>>>>>> >
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Gerhard/Mark,

I just tested 1.0.6 SNAPSHOT of MyFaces CODI and injected bean in
@FacesConverter via CODI @Advanced and @Inject as demonstrated in [2]
below. It is evident that CODI @Advanced and @Inject is successfully
injecting bean in the @FacesConverter, but this breaks PrimeFaces
p:pickList p:ajax event="transfer" as I noted earlier, Issue
4908<http://code.google.com/p/primefaces/issues/detail?id=4908>in
PrimeFaces Issue Tracker.

Next, I will attempt to test the fix for [1] EXTCDI-302 and use Mark's
earlier suggestion, CODI  BeanManagerProvider.getInstance().
getContextualReference(YourClass.class). Next reply will contain test
results.

[1] https://issues.apache.org/jira/browse/EXTCDI-302
[2] http://people.apache.org/~gpetracek/myfaces/codi/demos/

Below is stacktrace from the CODI @Advanced test that I mentioned above.
This is related to PrimeFaces Issue 4908 above.

java.lang.NullPointerException
	at jsf.role.pf_RoleController.access$000(pf_RoleController.java:45)
	at jsf.role.pf_RoleController$RoleControllerConverter.getAsObject(pf_RoleController.java:678)
	at org.primefaces.component.picklist.PickList.populateModel(PickList.java:425)
	at org.primefaces.component.picklist.PickList.queueEvent(PickList.java:401)
	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:42)
	at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:64)
	at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:377)
	at org.primefaces.component.picklist.PickListRenderer.decode(PickListRenderer.java:50)
	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:467)
	at javax.faces.component.UIInput.decode(UIInput.java:352)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1377)
	at javax.faces.component.UIInput.processDecodes(UIInput.java:188)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:731)
	at org.apache.myfaces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:214)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:932)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at org.primefaces.component.tabview.TabView.visitTree(TabView.java:409)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIForm.visitTree(UIForm.java:354)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:960)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1165)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartialExecute(PartialViewContextImpl.java:420)
	at org.apache.myfaces.context.servlet.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:401)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
	at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:88)
	at javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1488)
	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1372)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:759)
	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:38)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148)
	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at pf.LoginFilter.doFilter(LoginFilter.java:175)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)


On Wed, Nov 21, 2012 at 5:11 AM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> the jsf2 module of codi is tested with jsf 2.0.x and 2.1.x
>
> regards,
> gerhard
>
> http://www.irian.at
>
> Your JSF/JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
>
> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>
> > Gerhard,
> >
> > I definitely prefer [1] (JAR download), thanks.
> >
> > Interesting...I must have been multitasking big time while migrating to
> > TomEE/CDI, because I downloaded jsf1.2 1.0.5 version of CODI; that's the
> > filename of the JAR I downloaded.
> >
> > This 1.0.6 SNAPSHOT that is now available, is this jsf1.2 or jsf2.0? I
> > hope jsf2.0, since my app has been jsf2.1 ever since the start (a little
> > over 1 year ago).
> >
> > Thanks,
> >  Howard
> >
> >
> > On Wed, Nov 21, 2012 at 4:40 AM, Gerhard Petracek <
> > gerhard.petracek@gmail.com> wrote:
> >
> >> hi howard,
> >>
> >> #1:
> >> i've updated the ticket - thx!
> >>
> >> #2:
> >> via maven (to update a local snapshot build your application with
> >> the maven-parameter -U)
> >> or
> >> download it from [1]
> >> or
> >> checkout codi and build it locally (see the description in the wiki)
> >>
> >> regards,
> >> gerhard
> >>
> >> [1]
> >>
> https://repository.apache.org/content/groups/snapshots/org/apache/myfaces/extensions/cdi/
> >>
> >> http://www.irian.at
> >>
> >> Your JSF/JavaEE powerhouse -
> >> JavaEE Consulting, Development and
> >> Courses in English and German
> >>
> >> Professional Support for Apache MyFaces
> >>
> >>
> >>
> >> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
> >>
> >>> Gerhard,
> >>>
> >>> I just registered with username that matches username of my email
> >>> address (above).
> >>>
> >>> Hmmm, now I need to find out how I can get the latest snapshot. Can I
> >>> locate on Maven Central repository?
> >>>
> >>> Thanks,
> >>> Howard
> >>>
> >>>
> >>> On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
> >>> gerhard.petracek@gmail.com> wrote:
> >>>
> >>>> hi howard,
> >>>>
> >>>> yes - i've fixed EXTCDI-302 already -> if you like, you can test it
> >>>> with the current snapshot (just ensure that you have the latest
> snapshot).
> >>>> if you have an apache-jira account, i'll update the ticket so that you
> >>>> are listed as the reporter of it.
> >>>>
> >>>> regards,
> >>>> gerhard
> >>>>
> >>>> http://www.irian.at
> >>>>
> >>>> Your JSF/JavaEE powerhouse -
> >>>> JavaEE Consulting, Development and
> >>>> Courses in English and German
> >>>>
> >>>> Professional Support for Apache MyFaces
> >>>>
> >>>>
> >>>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
> >>>>
> >>>> Gerhard,
> >>>>>
> >>>>> Interesting.
> >>>>>
> >>>>>
> >>>>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
> >>>>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
> >>>>>
> >>>>>
> >>>>> is a new issue that you just created and resolved per this email I
> >>>>> just sent? :)
> >>>>>
> >>>>> Thanks,
> >>>>> Howard
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
> >>>>> gerhard.petracek@gmail.com> wrote:
> >>>>>
> >>>>>> please have a look at [1] and [2].
> >>>>>>
> >>>>>> regards,
> >>>>>> gerhard
> >>>>>>
> >>>>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
> >>>>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
> >>>>>>
> >>>>>> http://www.irian.at
> >>>>>>
> >>>>>> Your JSF/JavaEE powerhouse -
> >>>>>> JavaEE Consulting, Development and
> >>>>>> Courses in English and German
> >>>>>>
> >>>>>> Professional Support for Apache MyFaces
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
> >>>>>>
> >>>>>>> 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." <sm...@gmail.com>
> >>>>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael
> Pestano
> >>>>>>> <rm...@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
> >>>>>>> > <rm...@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." <sm...@gmail.com>
> >>>>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
> >>>>>>> >>  users@myfaces.apache.org>
> >>>>>>> >>  Cc: "users@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"
> >>>>>>> > <st...@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."
> >>>>>>> > <sm...@gmail.com>
> >>>>>>> >>  > > To: users@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"
> >>>>>>> >>  > > <rm...@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.
> >>>>>>> > <sm...@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"
> >>>>>>> >>  > > <rm...@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.
> >>>>>>> > <sm...@gmail.com>
> >>>>>>> >>  > >>  > >
> >>>>>>> >>  > >>  > > > Faces context? Please explain.
> >>>>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
> >>>>>>> > Manni-Bucau"
> >>>>>>> >>  > > <
> >>>>>>> >>  > >>  rmannibucau@gmail.com>
> >>>>>>> >>  > >>  > > > wrote:
> >>>>>>> >>  > >>  > > >
> >>>>>>> >>  > >>  > > > > You cant use faces context?
> >>>>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
> >>>>>>> > Smith, Jr."
> >>>>>>> >>  > > <
> >>>>>>> >>  > >>  > smithh032772@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
> >>>>>>> >>  > >>  > > > > > <rm...@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." <
> >>>>>>> >>  > >>  > > > smithh032772@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
> >>>>>>> >>  > >>  > > > > > > >
> >>>>>>> > <rm...@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." <
> >>>>>>> >>  > >>  > > > > > smithh032772@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. <
> >>>>>>> >>  > >>  > > > > > > > > >
> >>>>>>> > smithh032772@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 <
> >>>>>>> >>  > >>  > > > > > > > > >
> >>>>>>> > rmannibucau@gmail.com
> >>>>>>> >>  > >>  > > > > > > > > > > >
> >>>>>>> > wrote:
> >>>>>>> >>  > >>  > > > > > > > > > >
> >>>>>>> >>  > >>  > > > > > > > > > >> Maybe
> >>>>>>> > use
> >>>>>>> >>  > > BeanProvider of deltaspike
> >>>>>>> >>  > >>  > > > > > > > > > >> Le 19
> >>>>>>> > nov. 2012
> >>>>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
> >>>>>>> >>  > >>  > > > > > > > smithh032772@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
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  > > <rm...@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." <
> >>>>>>> >>  > >>  > > > > > > > > >
> >>>>>>> > smithh032772@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());
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  >
> >>>>>>> >>  > >      }
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  >
> >>>>>>> >>  > > }
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  >     }
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  > }
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  >
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>
> >>>>>>> >>  > >>  > > > > > > > > > >> >
> >>>>>>> >>  > >>  > > > > > > > > > >>
> >>>>>>> >>  > >>  > > > > > > > > > >
> >>>>>>> >>  > >>  > > > > > > > > > >
> >>>>>>> >>  > >>  > > > > > > > > >
> >>>>>>> >>  > >>  > > > > > > > >
> >>>>>>> >>  > >>  > > > > > > >
> >>>>>>> >>  > >>  > > > > > >
> >>>>>>> >>  > >>  > > > > >
> >>>>>>> >>  > >>  > > > >
> >>>>>>> >>  > >>  > > >
> >>>>>>> >>  > >>  > >
> >>>>>>> >>  > >>  >
> >>>>>>> >>  > >>
> >>>>>>> >>  > >
> >>>>>>> >>  >
> >>>>>>> >>
> >>>>>>> >
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Gerhard Petracek <ge...@gmail.com>.
the jsf2 module of codi is tested with jsf 2.0.x and 2.1.x

regards,
gerhard

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>

> Gerhard,
>
> I definitely prefer [1] (JAR download), thanks.
>
> Interesting...I must have been multitasking big time while migrating to
> TomEE/CDI, because I downloaded jsf1.2 1.0.5 version of CODI; that's the
> filename of the JAR I downloaded.
>
> This 1.0.6 SNAPSHOT that is now available, is this jsf1.2 or jsf2.0? I
> hope jsf2.0, since my app has been jsf2.1 ever since the start (a little
> over 1 year ago).
>
> Thanks,
>  Howard
>
>
> On Wed, Nov 21, 2012 at 4:40 AM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
>> hi howard,
>>
>> #1:
>> i've updated the ticket - thx!
>>
>> #2:
>> via maven (to update a local snapshot build your application with
>> the maven-parameter -U)
>> or
>> download it from [1]
>> or
>> checkout codi and build it locally (see the description in the wiki)
>>
>> regards,
>> gerhard
>>
>> [1]
>> https://repository.apache.org/content/groups/snapshots/org/apache/myfaces/extensions/cdi/
>>
>> http://www.irian.at
>>
>> Your JSF/JavaEE powerhouse -
>> JavaEE Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache MyFaces
>>
>>
>>
>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>
>>> Gerhard,
>>>
>>> I just registered with username that matches username of my email
>>> address (above).
>>>
>>> Hmmm, now I need to find out how I can get the latest snapshot. Can I
>>> locate on Maven Central repository?
>>>
>>> Thanks,
>>> Howard
>>>
>>>
>>> On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
>>> gerhard.petracek@gmail.com> wrote:
>>>
>>>> hi howard,
>>>>
>>>> yes - i've fixed EXTCDI-302 already -> if you like, you can test it
>>>> with the current snapshot (just ensure that you have the latest snapshot).
>>>> if you have an apache-jira account, i'll update the ticket so that you
>>>> are listed as the reporter of it.
>>>>
>>>> regards,
>>>> gerhard
>>>>
>>>> http://www.irian.at
>>>>
>>>> Your JSF/JavaEE powerhouse -
>>>> JavaEE Consulting, Development and
>>>> Courses in English and German
>>>>
>>>> Professional Support for Apache MyFaces
>>>>
>>>>
>>>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>>>
>>>> Gerhard,
>>>>>
>>>>> Interesting.
>>>>>
>>>>>
>>>>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>>>>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>>>>>
>>>>>
>>>>> is a new issue that you just created and resolved per this email I
>>>>> just sent? :)
>>>>>
>>>>> Thanks,
>>>>> Howard
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
>>>>> gerhard.petracek@gmail.com> wrote:
>>>>>
>>>>>> please have a look at [1] and [2].
>>>>>>
>>>>>> regards,
>>>>>> gerhard
>>>>>>
>>>>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>>>>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>>>>>
>>>>>> http://www.irian.at
>>>>>>
>>>>>> Your JSF/JavaEE powerhouse -
>>>>>> JavaEE Consulting, Development and
>>>>>> Courses in English and German
>>>>>>
>>>>>> Professional Support for Apache MyFaces
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>>>>>>
>>>>>>> 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." <sm...@gmail.com>
>>>>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano
>>>>>>> <rm...@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
>>>>>>> > <rm...@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." <sm...@gmail.com>
>>>>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>>>>>> >>  users@myfaces.apache.org>
>>>>>>> >>  Cc: "users@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"
>>>>>>> > <st...@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."
>>>>>>> > <sm...@gmail.com>
>>>>>>> >>  > > To: users@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"
>>>>>>> >>  > > <rm...@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.
>>>>>>> > <sm...@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"
>>>>>>> >>  > > <rm...@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.
>>>>>>> > <sm...@gmail.com>
>>>>>>> >>  > >>  > >
>>>>>>> >>  > >>  > > > Faces context? Please explain.
>>>>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>>>>>> > Manni-Bucau"
>>>>>>> >>  > > <
>>>>>>> >>  > >>  rmannibucau@gmail.com>
>>>>>>> >>  > >>  > > > wrote:
>>>>>>> >>  > >>  > > >
>>>>>>> >>  > >>  > > > > You cant use faces context?
>>>>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>>>>>> > Smith, Jr."
>>>>>>> >>  > > <
>>>>>>> >>  > >>  > smithh032772@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
>>>>>>> >>  > >>  > > > > > <rm...@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." <
>>>>>>> >>  > >>  > > > smithh032772@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
>>>>>>> >>  > >>  > > > > > > >
>>>>>>> > <rm...@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." <
>>>>>>> >>  > >>  > > > > > smithh032772@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. <
>>>>>>> >>  > >>  > > > > > > > > >
>>>>>>> > smithh032772@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 <
>>>>>>> >>  > >>  > > > > > > > > >
>>>>>>> > rmannibucau@gmail.com
>>>>>>> >>  > >>  > > > > > > > > > > >
>>>>>>> > wrote:
>>>>>>> >>  > >>  > > > > > > > > > >
>>>>>>> >>  > >>  > > > > > > > > > >> Maybe
>>>>>>> > use
>>>>>>> >>  > > BeanProvider of deltaspike
>>>>>>> >>  > >>  > > > > > > > > > >> Le 19
>>>>>>> > nov. 2012
>>>>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>>>>>>> >>  > >>  > > > > > > > smithh032772@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
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  > > <rm...@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." <
>>>>>>> >>  > >>  > > > > > > > > >
>>>>>>> > smithh032772@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());
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  >
>>>>>>> >>  > >      }
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  >
>>>>>>> >>  > > }
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  >     }
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  > }
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  >
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>
>>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>>> >>  > >>  > > > > > > > > > >>
>>>>>>> >>  > >>  > > > > > > > > > >
>>>>>>> >>  > >>  > > > > > > > > > >
>>>>>>> >>  > >>  > > > > > > > > >
>>>>>>> >>  > >>  > > > > > > > >
>>>>>>> >>  > >>  > > > > > > >
>>>>>>> >>  > >>  > > > > > >
>>>>>>> >>  > >>  > > > > >
>>>>>>> >>  > >>  > > > >
>>>>>>> >>  > >>  > > >
>>>>>>> >>  > >>  > >
>>>>>>> >>  > >>  >
>>>>>>> >>  > >>
>>>>>>> >>  > >
>>>>>>> >>  >
>>>>>>> >>
>>>>>>> >
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Gerhard,

I definitely prefer [1] (JAR download), thanks.

Interesting...I must have been multitasking big time while migrating to
TomEE/CDI, because I downloaded jsf1.2 1.0.5 version of CODI; that's the
filename of the JAR I downloaded.

This 1.0.6 SNAPSHOT that is now available, is this jsf1.2 or jsf2.0? I hope
jsf2.0, since my app has been jsf2.1 ever since the start (a little over 1
year ago).

Thanks,
Howard


On Wed, Nov 21, 2012 at 4:40 AM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi howard,
>
> #1:
> i've updated the ticket - thx!
>
> #2:
> via maven (to update a local snapshot build your application with
> the maven-parameter -U)
> or
> download it from [1]
> or
> checkout codi and build it locally (see the description in the wiki)
>
> regards,
> gerhard
>
> [1]
> https://repository.apache.org/content/groups/snapshots/org/apache/myfaces/extensions/cdi/
>
> http://www.irian.at
>
> Your JSF/JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
>
> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>
>> Gerhard,
>>
>> I just registered with username that matches username of my email address
>> (above).
>>
>> Hmmm, now I need to find out how I can get the latest snapshot. Can I
>> locate on Maven Central repository?
>>
>> Thanks,
>> Howard
>>
>>
>> On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
>> gerhard.petracek@gmail.com> wrote:
>>
>>> hi howard,
>>>
>>> yes - i've fixed EXTCDI-302 already -> if you like, you can test it with
>>> the current snapshot (just ensure that you have the latest snapshot).
>>> if you have an apache-jira account, i'll update the ticket so that you
>>> are listed as the reporter of it.
>>>
>>> regards,
>>> gerhard
>>>
>>> http://www.irian.at
>>>
>>> Your JSF/JavaEE powerhouse -
>>> JavaEE Consulting, Development and
>>> Courses in English and German
>>>
>>> Professional Support for Apache MyFaces
>>>
>>>
>>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>>
>>> Gerhard,
>>>>
>>>> Interesting.
>>>>
>>>>
>>>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>>>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>>>>
>>>>
>>>> is a new issue that you just created and resolved per this email I just
>>>> sent? :)
>>>>
>>>> Thanks,
>>>> Howard
>>>>
>>>>
>>>>
>>>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
>>>> gerhard.petracek@gmail.com> wrote:
>>>>
>>>>> please have a look at [1] and [2].
>>>>>
>>>>> regards,
>>>>> gerhard
>>>>>
>>>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>>>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>>>>
>>>>> http://www.irian.at
>>>>>
>>>>> Your JSF/JavaEE powerhouse -
>>>>> JavaEE Consulting, Development and
>>>>> Courses in English and German
>>>>>
>>>>> Professional Support for Apache MyFaces
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>>>>>
>>>>>> 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." <sm...@gmail.com>
>>>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
>>>>>> rmpestano@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
>>>>>> > <rm...@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." <sm...@gmail.com>
>>>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>>>>> >>  users@myfaces.apache.org>
>>>>>> >>  Cc: "users@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"
>>>>>> > <st...@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."
>>>>>> > <sm...@gmail.com>
>>>>>> >>  > > To: users@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"
>>>>>> >>  > > <rm...@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.
>>>>>> > <sm...@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"
>>>>>> >>  > > <rm...@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.
>>>>>> > <sm...@gmail.com>
>>>>>> >>  > >>  > >
>>>>>> >>  > >>  > > > Faces context? Please explain.
>>>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>>>>> > Manni-Bucau"
>>>>>> >>  > > <
>>>>>> >>  > >>  rmannibucau@gmail.com>
>>>>>> >>  > >>  > > > wrote:
>>>>>> >>  > >>  > > >
>>>>>> >>  > >>  > > > > You cant use faces context?
>>>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>>>>> > Smith, Jr."
>>>>>> >>  > > <
>>>>>> >>  > >>  > smithh032772@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
>>>>>> >>  > >>  > > > > > <rm...@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." <
>>>>>> >>  > >>  > > > smithh032772@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
>>>>>> >>  > >>  > > > > > > >
>>>>>> > <rm...@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." <
>>>>>> >>  > >>  > > > > > smithh032772@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. <
>>>>>> >>  > >>  > > > > > > > > >
>>>>>> > smithh032772@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 <
>>>>>> >>  > >>  > > > > > > > > >
>>>>>> > rmannibucau@gmail.com
>>>>>> >>  > >>  > > > > > > > > > > >
>>>>>> > wrote:
>>>>>> >>  > >>  > > > > > > > > > >
>>>>>> >>  > >>  > > > > > > > > > >> Maybe
>>>>>> > use
>>>>>> >>  > > BeanProvider of deltaspike
>>>>>> >>  > >>  > > > > > > > > > >> Le 19
>>>>>> > nov. 2012
>>>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>>>>>> >>  > >>  > > > > > > > smithh032772@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
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  > > <rm...@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." <
>>>>>> >>  > >>  > > > > > > > > >
>>>>>> > smithh032772@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());
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  >
>>>>>> >>  > >      }
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  >
>>>>>> >>  > > }
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  >     }
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  > }
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  >
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>
>>>>>> >>  > >>  > > > > > > > > > >> >
>>>>>> >>  > >>  > > > > > > > > > >>
>>>>>> >>  > >>  > > > > > > > > > >
>>>>>> >>  > >>  > > > > > > > > > >
>>>>>> >>  > >>  > > > > > > > > >
>>>>>> >>  > >>  > > > > > > > >
>>>>>> >>  > >>  > > > > > > >
>>>>>> >>  > >>  > > > > > >
>>>>>> >>  > >>  > > > > >
>>>>>> >>  > >>  > > > >
>>>>>> >>  > >>  > > >
>>>>>> >>  > >>  > >
>>>>>> >>  > >>  >
>>>>>> >>  > >>
>>>>>> >>  > >
>>>>>> >>  >
>>>>>> >>
>>>>>> >
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Gerhard Petracek <ge...@gmail.com>.
hi howard,

#1:
i've updated the ticket - thx!

#2:
via maven (to update a local snapshot build your application with
the maven-parameter -U)
or
download it from [1]
or
checkout codi and build it locally (see the description in the wiki)

regards,
gerhard

[1]
https://repository.apache.org/content/groups/snapshots/org/apache/myfaces/extensions/cdi/

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>

> Gerhard,
>
> I just registered with username that matches username of my email address
> (above).
>
> Hmmm, now I need to find out how I can get the latest snapshot. Can I
> locate on Maven Central repository?
>
> Thanks,
> Howard
>
>
> On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
>> hi howard,
>>
>> yes - i've fixed EXTCDI-302 already -> if you like, you can test it with
>> the current snapshot (just ensure that you have the latest snapshot).
>> if you have an apache-jira account, i'll update the ticket so that you
>> are listed as the reporter of it.
>>
>> regards,
>> gerhard
>>
>> http://www.irian.at
>>
>> Your JSF/JavaEE powerhouse -
>> JavaEE Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache MyFaces
>>
>>
>> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>>
>> Gerhard,
>>>
>>> Interesting.
>>>
>>>
>>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>>>
>>>
>>> is a new issue that you just created and resolved per this email I just
>>> sent? :)
>>>
>>> Thanks,
>>> Howard
>>>
>>>
>>>
>>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
>>> gerhard.petracek@gmail.com> wrote:
>>>
>>>> please have a look at [1] and [2].
>>>>
>>>> regards,
>>>> gerhard
>>>>
>>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>>>
>>>> http://www.irian.at
>>>>
>>>> Your JSF/JavaEE powerhouse -
>>>> JavaEE Consulting, Development and
>>>> Courses in English and German
>>>>
>>>> Professional Support for Apache MyFaces
>>>>
>>>>
>>>>
>>>>
>>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>>>>
>>>>> 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." <sm...@gmail.com>
>>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
>>>>> rmpestano@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
>>>>> > <rm...@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." <sm...@gmail.com>
>>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>>>> >>  users@myfaces.apache.org>
>>>>> >>  Cc: "users@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"
>>>>> > <st...@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."
>>>>> > <sm...@gmail.com>
>>>>> >>  > > To: users@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"
>>>>> >>  > > <rm...@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.
>>>>> > <sm...@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"
>>>>> >>  > > <rm...@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.
>>>>> > <sm...@gmail.com>
>>>>> >>  > >>  > >
>>>>> >>  > >>  > > > Faces context? Please explain.
>>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>>>> > Manni-Bucau"
>>>>> >>  > > <
>>>>> >>  > >>  rmannibucau@gmail.com>
>>>>> >>  > >>  > > > wrote:
>>>>> >>  > >>  > > >
>>>>> >>  > >>  > > > > You cant use faces context?
>>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>>>> > Smith, Jr."
>>>>> >>  > > <
>>>>> >>  > >>  > smithh032772@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
>>>>> >>  > >>  > > > > > <rm...@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." <
>>>>> >>  > >>  > > > smithh032772@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
>>>>> >>  > >>  > > > > > > >
>>>>> > <rm...@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." <
>>>>> >>  > >>  > > > > > smithh032772@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. <
>>>>> >>  > >>  > > > > > > > > >
>>>>> > smithh032772@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 <
>>>>> >>  > >>  > > > > > > > > >
>>>>> > rmannibucau@gmail.com
>>>>> >>  > >>  > > > > > > > > > > >
>>>>> > wrote:
>>>>> >>  > >>  > > > > > > > > > >
>>>>> >>  > >>  > > > > > > > > > >> Maybe
>>>>> > use
>>>>> >>  > > BeanProvider of deltaspike
>>>>> >>  > >>  > > > > > > > > > >> Le 19
>>>>> > nov. 2012
>>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>>>>> >>  > >>  > > > > > > > smithh032772@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
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  > > <rm...@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." <
>>>>> >>  > >>  > > > > > > > > >
>>>>> > smithh032772@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());
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  >
>>>>> >>  > >      }
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  >
>>>>> >>  > > }
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  >     }
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  > }
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  >
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>
>>>>> >>  > >>  > > > > > > > > > >> >
>>>>> >>  > >>  > > > > > > > > > >>
>>>>> >>  > >>  > > > > > > > > > >
>>>>> >>  > >>  > > > > > > > > > >
>>>>> >>  > >>  > > > > > > > > >
>>>>> >>  > >>  > > > > > > > >
>>>>> >>  > >>  > > > > > > >
>>>>> >>  > >>  > > > > > >
>>>>> >>  > >>  > > > > >
>>>>> >>  > >>  > > > >
>>>>> >>  > >>  > > >
>>>>> >>  > >>  > >
>>>>> >>  > >>  >
>>>>> >>  > >>
>>>>> >>  > >
>>>>> >>  >
>>>>> >>
>>>>> >
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Gerhard,

I just registered with username that matches username of my email address
(above).

Hmmm, now I need to find out how I can get the latest snapshot. Can I
locate on Maven Central repository?

Thanks,
Howard


On Wed, Nov 21, 2012 at 4:13 AM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi howard,
>
> yes - i've fixed EXTCDI-302 already -> if you like, you can test it with
> the current snapshot (just ensure that you have the latest snapshot).
> if you have an apache-jira account, i'll update the ticket so that you are
> listed as the reporter of it.
>
> regards,
> gerhard
>
> http://www.irian.at
>
> Your JSF/JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
> 2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>
>
> Gerhard,
>>
>> Interesting.
>>
>>
>>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>>
>>
>> is a new issue that you just created and resolved per this email I just
>> sent? :)
>>
>> Thanks,
>> Howard
>>
>>
>>
>> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
>> gerhard.petracek@gmail.com> wrote:
>>
>>> please have a look at [1] and [2].
>>>
>>> regards,
>>> gerhard
>>>
>>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>>
>>> http://www.irian.at
>>>
>>> Your JSF/JavaEE powerhouse -
>>> JavaEE Consulting, Development and
>>> Courses in English and German
>>>
>>> Professional Support for Apache MyFaces
>>>
>>>
>>>
>>>
>>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>>>
>>>> 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." <sm...@gmail.com>
>>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
>>>> rmpestano@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
>>>> > <rm...@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." <sm...@gmail.com>
>>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>>> >>  users@myfaces.apache.org>
>>>> >>  Cc: "users@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"
>>>> > <st...@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."
>>>> > <sm...@gmail.com>
>>>> >>  > > To: users@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"
>>>> >>  > > <rm...@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.
>>>> > <sm...@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"
>>>> >>  > > <rm...@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.
>>>> > <sm...@gmail.com>
>>>> >>  > >>  > >
>>>> >>  > >>  > > > Faces context? Please explain.
>>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>>> > Manni-Bucau"
>>>> >>  > > <
>>>> >>  > >>  rmannibucau@gmail.com>
>>>> >>  > >>  > > > wrote:
>>>> >>  > >>  > > >
>>>> >>  > >>  > > > > You cant use faces context?
>>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>>> > Smith, Jr."
>>>> >>  > > <
>>>> >>  > >>  > smithh032772@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
>>>> >>  > >>  > > > > > <rm...@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." <
>>>> >>  > >>  > > > smithh032772@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
>>>> >>  > >>  > > > > > > >
>>>> > <rm...@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." <
>>>> >>  > >>  > > > > > smithh032772@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. <
>>>> >>  > >>  > > > > > > > > >
>>>> > smithh032772@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 <
>>>> >>  > >>  > > > > > > > > >
>>>> > rmannibucau@gmail.com
>>>> >>  > >>  > > > > > > > > > > >
>>>> > wrote:
>>>> >>  > >>  > > > > > > > > > >
>>>> >>  > >>  > > > > > > > > > >> Maybe
>>>> > use
>>>> >>  > > BeanProvider of deltaspike
>>>> >>  > >>  > > > > > > > > > >> Le 19
>>>> > nov. 2012
>>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>>>> >>  > >>  > > > > > > > smithh032772@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
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  > > <rm...@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." <
>>>> >>  > >>  > > > > > > > > >
>>>> > smithh032772@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());
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  >
>>>> >>  > >      }
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  >
>>>> >>  > > }
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  >     }
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  > }
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  >
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>
>>>> >>  > >>  > > > > > > > > > >> >
>>>> >>  > >>  > > > > > > > > > >>
>>>> >>  > >>  > > > > > > > > > >
>>>> >>  > >>  > > > > > > > > > >
>>>> >>  > >>  > > > > > > > > >
>>>> >>  > >>  > > > > > > > >
>>>> >>  > >>  > > > > > > >
>>>> >>  > >>  > > > > > >
>>>> >>  > >>  > > > > >
>>>> >>  > >>  > > > >
>>>> >>  > >>  > > >
>>>> >>  > >>  > >
>>>> >>  > >>  >
>>>> >>  > >>
>>>> >>  > >
>>>> >>  >
>>>> >>
>>>> >
>>>>
>>>
>>>
>>>
>>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Gerhard Petracek <ge...@gmail.com>.
hi howard,

yes - i've fixed EXTCDI-302 already -> if you like, you can test it with
the current snapshot (just ensure that you have the latest snapshot).
if you have an apache-jira account, i'll update the ticket so that you are
listed as the reporter of it.

regards,
gerhard

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2012/11/21 Howard W. Smith, Jr. <sm...@gmail.com>

> Gerhard,
>
> Interesting.
>
>
>    - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
>    - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>
>
>
> is a new issue that you just created and resolved per this email I just
> sent? :)
>
> Thanks,
> Howard
>
>
>
> On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
>> please have a look at [1] and [2].
>>
>> regards,
>> gerhard
>>
>> [1] https://issues.apache.org/jira/browse/EXTCDI-302
>> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>>
>> http://www.irian.at
>>
>> Your JSF/JavaEE powerhouse -
>> JavaEE Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache MyFaces
>>
>>
>>
>>
>> 2012/11/20 Mark Struberg <st...@yahoo.de>
>>
>>> 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." <sm...@gmail.com>
>>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
>>> rmpestano@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
>>> > <rm...@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." <sm...@gmail.com>
>>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>> >>  users@myfaces.apache.org>
>>> >>  Cc: "users@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"
>>> > <st...@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."
>>> > <sm...@gmail.com>
>>> >>  > > To: users@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"
>>> >>  > > <rm...@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.
>>> > <sm...@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"
>>> >>  > > <rm...@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.
>>> > <sm...@gmail.com>
>>> >>  > >>  > >
>>> >>  > >>  > > > Faces context? Please explain.
>>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>>> > Manni-Bucau"
>>> >>  > > <
>>> >>  > >>  rmannibucau@gmail.com>
>>> >>  > >>  > > > wrote:
>>> >>  > >>  > > >
>>> >>  > >>  > > > > You cant use faces context?
>>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>>> > Smith, Jr."
>>> >>  > > <
>>> >>  > >>  > smithh032772@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
>>> >>  > >>  > > > > > <rm...@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." <
>>> >>  > >>  > > > smithh032772@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
>>> >>  > >>  > > > > > > >
>>> > <rm...@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." <
>>> >>  > >>  > > > > > smithh032772@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. <
>>> >>  > >>  > > > > > > > > >
>>> > smithh032772@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 <
>>> >>  > >>  > > > > > > > > >
>>> > rmannibucau@gmail.com
>>> >>  > >>  > > > > > > > > > > >
>>> > wrote:
>>> >>  > >>  > > > > > > > > > >
>>> >>  > >>  > > > > > > > > > >> Maybe
>>> > use
>>> >>  > > BeanProvider of deltaspike
>>> >>  > >>  > > > > > > > > > >> Le 19
>>> > nov. 2012
>>> >>  > > 20:50, "Howard W. Smith, Jr." <
>>> >>  > >>  > > > > > > > smithh032772@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
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  > > <rm...@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." <
>>> >>  > >>  > > > > > > > > >
>>> > smithh032772@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());
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  >
>>> >>  > >      }
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  >
>>> >>  > > }
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  >     }
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  > }
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  >
>>> >>  > >>  > > > > > > > > > >> >
>>> >>
>>> >>  > >>  > > > > > > > > > >> >
>>> >>  > >>  > > > > > > > > > >>
>>> >>  > >>  > > > > > > > > > >
>>> >>  > >>  > > > > > > > > > >
>>> >>  > >>  > > > > > > > > >
>>> >>  > >>  > > > > > > > >
>>> >>  > >>  > > > > > > >
>>> >>  > >>  > > > > > >
>>> >>  > >>  > > > > >
>>> >>  > >>  > > > >
>>> >>  > >>  > > >
>>> >>  > >>  > >
>>> >>  > >>  >
>>> >>  > >>
>>> >>  > >
>>> >>  >
>>> >>
>>> >
>>>
>>
>>
>>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Gerhard,

Interesting.


   - MyFaces CODI <https://issues.apache.org/jira/browse/EXTCDI>
   - EXTCDI-302 <https://issues.apache.org/jira/browse/EXTCDI-302>


is a new issue that you just created and resolved per this email I just
sent? :)

Thanks,
Howard


On Wed, Nov 21, 2012 at 2:55 AM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> please have a look at [1] and [2].
>
> regards,
> gerhard
>
> [1] https://issues.apache.org/jira/browse/EXTCDI-302
> [2] http://people.apache.org/~gpetracek/myfaces/codi/demos/
>
> http://www.irian.at
>
> Your JSF/JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
>
>
> 2012/11/20 Mark Struberg <st...@yahoo.de>
>
>> 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." <sm...@gmail.com>
>> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
>> rmpestano@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
>> > <rm...@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." <sm...@gmail.com>
>> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>> >>  users@myfaces.apache.org>
>> >>  Cc: "users@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"
>> > <st...@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."
>> > <sm...@gmail.com>
>> >>  > > To: users@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"
>> >>  > > <rm...@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.
>> > <sm...@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"
>> >>  > > <rm...@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.
>> > <sm...@gmail.com>
>> >>  > >>  > >
>> >>  > >>  > > > Faces context? Please explain.
>> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
>> > Manni-Bucau"
>> >>  > > <
>> >>  > >>  rmannibucau@gmail.com>
>> >>  > >>  > > > wrote:
>> >>  > >>  > > >
>> >>  > >>  > > > > You cant use faces context?
>> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
>> > Smith, Jr."
>> >>  > > <
>> >>  > >>  > smithh032772@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
>> >>  > >>  > > > > > <rm...@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." <
>> >>  > >>  > > > smithh032772@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
>> >>  > >>  > > > > > > >
>> > <rm...@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." <
>> >>  > >>  > > > > > smithh032772@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. <
>> >>  > >>  > > > > > > > > >
>> > smithh032772@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 <
>> >>  > >>  > > > > > > > > >
>> > rmannibucau@gmail.com
>> >>  > >>  > > > > > > > > > > >
>> > wrote:
>> >>  > >>  > > > > > > > > > >
>> >>  > >>  > > > > > > > > > >> Maybe
>> > use
>> >>  > > BeanProvider of deltaspike
>> >>  > >>  > > > > > > > > > >> Le 19
>> > nov. 2012
>> >>  > > 20:50, "Howard W. Smith, Jr." <
>> >>  > >>  > > > > > > > smithh032772@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
>> >>  > >>  > > > > > > > > > >> >
>> >>  > > <rm...@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." <
>> >>  > >>  > > > > > > > > >
>> > smithh032772@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());
>> >>  > >>  > > > > > > > > > >> >
>> >>  >
>> >>  > >      }
>> >>  > >>  > > > > > > > > > >> >
>> >>  >
>> >>  > > }
>> >>  > >>  > > > > > > > > > >> >
>> >>  >     }
>> >>  > >>  > > > > > > > > > >> >
>> >>  > }
>> >>  > >>  > > > > > > > > > >> >
>> >>  >
>> >>  > >>  > > > > > > > > > >> >
>> >>
>> >>  > >>  > > > > > > > > > >> >
>> >>  > >>  > > > > > > > > > >>
>> >>  > >>  > > > > > > > > > >
>> >>  > >>  > > > > > > > > > >
>> >>  > >>  > > > > > > > > >
>> >>  > >>  > > > > > > > >
>> >>  > >>  > > > > > > >
>> >>  > >>  > > > > > >
>> >>  > >>  > > > > >
>> >>  > >>  > > > >
>> >>  > >>  > > >
>> >>  > >>  > >
>> >>  > >>  >
>> >>  > >>
>> >>  > >
>> >>  >
>> >>
>> >
>>
>
>
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Gerhard Petracek <ge...@gmail.com>.
please have a look at [1] and [2].

regards,
gerhard

[1] https://issues.apache.org/jira/browse/EXTCDI-302
[2] http://people.apache.org/~gpetracek/myfaces/codi/demos/

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2012/11/20 Mark Struberg <st...@yahoo.de>

> 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." <sm...@gmail.com>
> > To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <
> rmpestano@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
> > <rm...@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." <sm...@gmail.com>
> >>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
> >>  users@myfaces.apache.org>
> >>  Cc: "users@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"
> > <st...@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."
> > <sm...@gmail.com>
> >>  > > To: users@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"
> >>  > > <rm...@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.
> > <sm...@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"
> >>  > > <rm...@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.
> > <sm...@gmail.com>
> >>  > >>  > >
> >>  > >>  > > > Faces context? Please explain.
> >>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain
> > Manni-Bucau"
> >>  > > <
> >>  > >>  rmannibucau@gmail.com>
> >>  > >>  > > > wrote:
> >>  > >>  > > >
> >>  > >>  > > > > You cant use faces context?
> >>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W.
> > Smith, Jr."
> >>  > > <
> >>  > >>  > smithh032772@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
> >>  > >>  > > > > > <rm...@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." <
> >>  > >>  > > > smithh032772@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
> >>  > >>  > > > > > > >
> > <rm...@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." <
> >>  > >>  > > > > > smithh032772@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. <
> >>  > >>  > > > > > > > > >
> > smithh032772@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 <
> >>  > >>  > > > > > > > > >
> > rmannibucau@gmail.com
> >>  > >>  > > > > > > > > > > >
> > wrote:
> >>  > >>  > > > > > > > > > >
> >>  > >>  > > > > > > > > > >> Maybe
> > use
> >>  > > BeanProvider of deltaspike
> >>  > >>  > > > > > > > > > >> Le 19
> > nov. 2012
> >>  > > 20:50, "Howard W. Smith, Jr." <
> >>  > >>  > > > > > > > smithh032772@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
> >>  > >>  > > > > > > > > > >> >
> >>  > > <rm...@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." <
> >>  > >>  > > > > > > > > >
> > smithh032772@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());
> >>  > >>  > > > > > > > > > >> >
> >>  >
> >>  > >      }
> >>  > >>  > > > > > > > > > >> >
> >>  >
> >>  > > }
> >>  > >>  > > > > > > > > > >> >
> >>  >     }
> >>  > >>  > > > > > > > > > >> >
> >>  > }
> >>  > >>  > > > > > > > > > >> >
> >>  >
> >>  > >>  > > > > > > > > > >> >
> >>
> >>  > >>  > > > > > > > > > >> >
> >>  > >>  > > > > > > > > > >>
> >>  > >>  > > > > > > > > > >
> >>  > >>  > > > > > > > > > >
> >>  > >>  > > > > > > > > >
> >>  > >>  > > > > > > > >
> >>  > >>  > > > > > > >
> >>  > >>  > > > > > >
> >>  > >>  > > > > >
> >>  > >>  > > > >
> >>  > >>  > > >
> >>  > >>  > >
> >>  > >>  >
> >>  > >>
> >>  > >
> >>  >
> >>
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Mark Struberg <st...@yahoo.de>.
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." <sm...@gmail.com>
> To: MyFaces Discussion <us...@myfaces.apache.org>; Rafael Pestano <rm...@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 
> <rm...@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." <sm...@gmail.com>
>>  Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
>>  users@myfaces.apache.org>
>>  Cc: "users@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" 
> <st...@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." 
> <sm...@gmail.com>
>>  > > To: users@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"
>>  > > <rm...@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. 
> <sm...@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"
>>  > > <rm...@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. 
> <sm...@gmail.com>
>>  > >>  > >
>>  > >>  > > > Faces context? Please explain.
>>  > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain 
> Manni-Bucau"
>>  > > <
>>  > >>  rmannibucau@gmail.com>
>>  > >>  > > > wrote:
>>  > >>  > > >
>>  > >>  > > > > You cant use faces context?
>>  > >>  > > > > Le 20 nov. 2012 03:01, "Howard W. 
> Smith, Jr."
>>  > > <
>>  > >>  > smithh032772@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
>>  > >>  > > > > > <rm...@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." <
>>  > >>  > > > smithh032772@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
>>  > >>  > > > > > > > 
> <rm...@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." <
>>  > >>  > > > > > smithh032772@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. <
>>  > >>  > > > > > > > > > 
> smithh032772@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 <
>>  > >>  > > > > > > > > > 
> rmannibucau@gmail.com
>>  > >>  > > > > > > > > > > > 
> wrote:
>>  > >>  > > > > > > > > > >
>>  > >>  > > > > > > > > > >> Maybe 
> use
>>  > > BeanProvider of deltaspike
>>  > >>  > > > > > > > > > >> Le 19 
> nov. 2012
>>  > > 20:50, "Howard W. Smith, Jr." <
>>  > >>  > > > > > > > smithh032772@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
>>  > >>  > > > > > > > > > >> >
>>  > > <rm...@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." <
>>  > >>  > > > > > > > > > 
> smithh032772@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());
>>  > >>  > > > > > > > > > >> > 
>>  >
>>  > >      }
>>  > >>  > > > > > > > > > >> > 
>>  >
>>  > > }
>>  > >>  > > > > > > > > > >> > 
>>  >     }
>>  > >>  > > > > > > > > > >> > 
>>  > }
>>  > >>  > > > > > > > > > >> > 
>>  >
>>  > >>  > > > > > > > > > >> > 
>> 
>>  > >>  > > > > > > > > > >> >
>>  > >>  > > > > > > > > > >>
>>  > >>  > > > > > > > > > >
>>  > >>  > > > > > > > > > >
>>  > >>  > > > > > > > > >
>>  > >>  > > > > > > > >
>>  > >>  > > > > > > >
>>  > >>  > > > > > >
>>  > >>  > > > > >
>>  > >>  > > > >
>>  > >>  > > >
>>  > >>  > >
>>  > >>  >
>>  > >>
>>  > >
>>  >
>> 
> 

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
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 <rm...@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." <sm...@gmail.com>
> Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <
> users@myfaces.apache.org>
> Cc: "users@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" <st...@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." <sm...@gmail.com>
> > > To: users@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"
> > > <rm...@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. <sm...@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"
> > > <rm...@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. <sm...@gmail.com>
> > >>  > >
> > >>  > > > Faces context? Please explain.
> > >>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau"
> > > <
> > >>  rmannibucau@gmail.com>
> > >>  > > > wrote:
> > >>  > > >
> > >>  > > > > You cant use faces context?
> > >>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr."
> > > <
> > >>  > smithh032772@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
> > >>  > > > > > <rm...@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." <
> > >>  > > > smithh032772@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
> > >>  > > > > > > > <rm...@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." <
> > >>  > > > > > smithh032772@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. <
> > >>  > > > > > > > > > smithh032772@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 <
> > >>  > > > > > > > > > rmannibucau@gmail.com
> > >>  > > > > > > > > > > > wrote:
> > >>  > > > > > > > > > >
> > >>  > > > > > > > > > >> Maybe use
> > > BeanProvider of deltaspike
> > >>  > > > > > > > > > >> Le 19 nov. 2012
> > > 20:50, "Howard W. Smith, Jr." <
> > >>  > > > > > > > smithh032772@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
> > >>  > > > > > > > > > >> >
> > > <rm...@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." <
> > >>  > > > > > > > > > smithh032772@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());
> > >>  > > > > > > > > > >> > > >
> > >      }
> > >>  > > > > > > > > > >> > > >
> > > }
> > >>  > > > > > > > > > >> > > >     }
> > >>  > > > > > > > > > >> > > > }
> > >>  > > > > > > > > > >> > > >
> > >>  > > > > > > > > > >> > >
> > >>  > > > > > > > > > >> >
> > >>  > > > > > > > > > >>
> > >>  > > > > > > > > > >
> > >>  > > > > > > > > > >
> > >>  > > > > > > > > >
> > >>  > > > > > > > >
> > >>  > > > > > > >
> > >>  > > > > > >
> > >>  > > > > >
> > >>  > > > >
> > >>  > > >
> > >>  > >
> > >>  >
> > >>
> > >
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Rafael Pestano <rm...@yahoo.com.br>.
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." <sm...@gmail.com>
Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <us...@myfaces.apache.org> 
Cc: "users@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" <st...@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." <sm...@gmail.com>
> > To: users@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"
> > <rm...@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. <sm...@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"
> > <rm...@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. <sm...@gmail.com>
> >>  > >
> >>  > > > Faces context? Please explain.
> >>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau"
> > <
> >>  rmannibucau@gmail.com>
> >>  > > > wrote:
> >>  > > >
> >>  > > > > You cant use faces context?
> >>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr."
> > <
> >>  > smithh032772@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
> >>  > > > > > <rm...@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." <
> >>  > > > smithh032772@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
> >>  > > > > > > > <rm...@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." <
> >>  > > > > > smithh032772@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. <
> >>  > > > > > > > > > smithh032772@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 <
> >>  > > > > > > > > > rmannibucau@gmail.com
> >>  > > > > > > > > > > > wrote:
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >> Maybe use
> > BeanProvider of deltaspike
> >>  > > > > > > > > > >> Le 19 nov. 2012
> > 20:50, "Howard W. Smith, Jr." <
> >>  > > > > > > > smithh032772@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
> >>  > > > > > > > > > >> >
> > <rm...@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." <
> >>  > > > > > > > > > smithh032772@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());
> >>  > > > > > > > > > >> > > >
> >      }
> >>  > > > > > > > > > >> > > >
> > }
> >>  > > > > > > > > > >> > > >     }
> >>  > > > > > > > > > >> > > > }
> >>  > > > > > > > > > >> > > >
> >>  > > > > > > > > > >> > >
> >>  > > > > > > > > > >> >
> >>  > > > > > > > > > >>
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >
> >>  > > > > > > > > >
> >>  > > > > > > > >
> >>  > > > > > > >
> >>  > > > > > >
> >>  > > > > >
> >>  > > > >
> >>  > > >
> >>  > >
> >>  >
> >>
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Rafael Pestano <rm...@yahoo.com.br>.
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." <sm...@gmail.com>
Para: Mark Struberg <st...@yahoo.de>; MyFaces Discussion <us...@myfaces.apache.org> 
Cc: "users@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" <st...@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." <sm...@gmail.com>
> > To: users@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"
> > <rm...@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. <sm...@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"
> > <rm...@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. <sm...@gmail.com>
> >>  > >
> >>  > > > Faces context? Please explain.
> >>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau"
> > <
> >>  rmannibucau@gmail.com>
> >>  > > > wrote:
> >>  > > >
> >>  > > > > You cant use faces context?
> >>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr."
> > <
> >>  > smithh032772@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
> >>  > > > > > <rm...@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." <
> >>  > > > smithh032772@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
> >>  > > > > > > > <rm...@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." <
> >>  > > > > > smithh032772@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. <
> >>  > > > > > > > > > smithh032772@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 <
> >>  > > > > > > > > > rmannibucau@gmail.com
> >>  > > > > > > > > > > > wrote:
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >> Maybe use
> > BeanProvider of deltaspike
> >>  > > > > > > > > > >> Le 19 nov. 2012
> > 20:50, "Howard W. Smith, Jr." <
> >>  > > > > > > > smithh032772@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
> >>  > > > > > > > > > >> >
> > <rm...@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." <
> >>  > > > > > > > > > smithh032772@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());
> >>  > > > > > > > > > >> > > >
> >      }
> >>  > > > > > > > > > >> > > >
> > }
> >>  > > > > > > > > > >> > > >     }
> >>  > > > > > > > > > >> > > > }
> >>  > > > > > > > > > >> > > >
> >>  > > > > > > > > > >> > >
> >>  > > > > > > > > > >> >
> >>  > > > > > > > > > >>
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >
> >>  > > > > > > > > >
> >>  > > > > > > > >
> >>  > > > > > > >
> >>  > > > > > >
> >>  > > > > >
> >>  > > > >
> >>  > > >
> >>  > >
> >>  >
> >>
> >
> 

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
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" <st...@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." <sm...@gmail.com>
> > To: users@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"
> > <rm...@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. <sm...@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"
> > <rm...@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. <sm...@gmail.com>
> >>  > >
> >>  > > > Faces context? Please explain.
> >>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau"
> > <
> >>  rmannibucau@gmail.com>
> >>  > > > wrote:
> >>  > > >
> >>  > > > > You cant use faces context?
> >>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr."
> > <
> >>  > smithh032772@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
> >>  > > > > > <rm...@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." <
> >>  > > > smithh032772@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
> >>  > > > > > > > <rm...@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." <
> >>  > > > > > smithh032772@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. <
> >>  > > > > > > > > > smithh032772@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 <
> >>  > > > > > > > > > rmannibucau@gmail.com
> >>  > > > > > > > > > > > wrote:
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >> Maybe use
> > BeanProvider of deltaspike
> >>  > > > > > > > > > >> Le 19 nov. 2012
> > 20:50, "Howard W. Smith, Jr." <
> >>  > > > > > > > smithh032772@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
> >>  > > > > > > > > > >> >
> > <rm...@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." <
> >>  > > > > > > > > > smithh032772@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());
> >>  > > > > > > > > > >> > > >
> >      }
> >>  > > > > > > > > > >> > > >
> > }
> >>  > > > > > > > > > >> > > >     }
> >>  > > > > > > > > > >> > > > }
> >>  > > > > > > > > > >> > > >
> >>  > > > > > > > > > >> > >
> >>  > > > > > > > > > >> >
> >>  > > > > > > > > > >>
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >
> >>  > > > > > > > > >
> >>  > > > > > > > >
> >>  > > > > > > >
> >>  > > > > > >
> >>  > > > > >
> >>  > > > >
> >>  > > >
> >>  > >
> >>  >
> >>
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
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" <st...@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." <sm...@gmail.com>
> > To: users@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"
> > <rm...@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. <sm...@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"
> > <rm...@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. <sm...@gmail.com>
> >>  > >
> >>  > > > Faces context? Please explain.
> >>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau"
> > <
> >>  rmannibucau@gmail.com>
> >>  > > > wrote:
> >>  > > >
> >>  > > > > You cant use faces context?
> >>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr."
> > <
> >>  > smithh032772@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
> >>  > > > > > <rm...@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." <
> >>  > > > smithh032772@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
> >>  > > > > > > > <rm...@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." <
> >>  > > > > > smithh032772@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. <
> >>  > > > > > > > > > smithh032772@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 <
> >>  > > > > > > > > > rmannibucau@gmail.com
> >>  > > > > > > > > > > > wrote:
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >> Maybe use
> > BeanProvider of deltaspike
> >>  > > > > > > > > > >> Le 19 nov. 2012
> > 20:50, "Howard W. Smith, Jr." <
> >>  > > > > > > > smithh032772@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
> >>  > > > > > > > > > >> >
> > <rm...@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." <
> >>  > > > > > > > > > smithh032772@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());
> >>  > > > > > > > > > >> > > >
> >      }
> >>  > > > > > > > > > >> > > >
> > }
> >>  > > > > > > > > > >> > > >     }
> >>  > > > > > > > > > >> > > > }
> >>  > > > > > > > > > >> > > >
> >>  > > > > > > > > > >> > >
> >>  > > > > > > > > > >> >
> >>  > > > > > > > > > >>
> >>  > > > > > > > > > >
> >>  > > > > > > > > > >
> >>  > > > > > > > > >
> >>  > > > > > > > >
> >>  > > > > > > >
> >>  > > > > > >
> >>  > > > > >
> >>  > > > >
> >>  > > >
> >>  > >
> >>  >
> >>
> >
>

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Mark Struberg <st...@yahoo.de>.
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." <sm...@gmail.com>
> To: users@openejb.apache.org; MyFaces Discussion <us...@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" 
> <rm...@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. <sm...@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" 
> <rm...@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. <sm...@gmail.com>
>>  > >
>>  > > > Faces context? Please explain.
>>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau" 
> <
>>  rmannibucau@gmail.com>
>>  > > > wrote:
>>  > > >
>>  > > > > You cant use faces context?
>>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr." 
> <
>>  > smithh032772@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
>>  > > > > > <rm...@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." <
>>  > > > smithh032772@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
>>  > > > > > > > <rm...@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." <
>>  > > > > > smithh032772@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. <
>>  > > > > > > > > > smithh032772@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 <
>>  > > > > > > > > > rmannibucau@gmail.com
>>  > > > > > > > > > > > wrote:
>>  > > > > > > > > > >
>>  > > > > > > > > > >> Maybe use 
> BeanProvider of deltaspike
>>  > > > > > > > > > >> Le 19 nov. 2012 
> 20:50, "Howard W. Smith, Jr." <
>>  > > > > > > > smithh032772@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
>>  > > > > > > > > > >> > 
> <rm...@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." <
>>  > > > > > > > > > smithh032772@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());
>>  > > > > > > > > > >> > > >        
>      }
>>  > > > > > > > > > >> > > >        
> }
>>  > > > > > > > > > >> > > >     }
>>  > > > > > > > > > >> > > > }
>>  > > > > > > > > > >> > > >
>>  > > > > > > > > > >> > >
>>  > > > > > > > > > >> >
>>  > > > > > > > > > >>
>>  > > > > > > > > > >
>>  > > > > > > > > > >
>>  > > > > > > > > >
>>  > > > > > > > >
>>  > > > > > > >
>>  > > > > > >
>>  > > > > >
>>  > > > >
>>  > > >
>>  > >
>>  >
>> 
> 

Re: Migrating to CDI: injecting stateless/facade in Converter via facescontext

Posted by Mark Struberg <st...@yahoo.de>.
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." <sm...@gmail.com>
> To: users@openejb.apache.org; MyFaces Discussion <us...@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" 
> <rm...@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. <sm...@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" 
> <rm...@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. <sm...@gmail.com>
>>  > >
>>  > > > Faces context? Please explain.
>>  > > >  On Nov 20, 2012 1:56 AM, "Romain Manni-Bucau" 
> <
>>  rmannibucau@gmail.com>
>>  > > > wrote:
>>  > > >
>>  > > > > You cant use faces context?
>>  > > > > Le 20 nov. 2012 03:01, "Howard W. Smith, Jr." 
> <
>>  > smithh032772@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
>>  > > > > > <rm...@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." <
>>  > > > smithh032772@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
>>  > > > > > > > <rm...@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." <
>>  > > > > > smithh032772@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. <
>>  > > > > > > > > > smithh032772@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 <
>>  > > > > > > > > > rmannibucau@gmail.com
>>  > > > > > > > > > > > wrote:
>>  > > > > > > > > > >
>>  > > > > > > > > > >> Maybe use 
> BeanProvider of deltaspike
>>  > > > > > > > > > >> Le 19 nov. 2012 
> 20:50, "Howard W. Smith, Jr." <
>>  > > > > > > > smithh032772@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
>>  > > > > > > > > > >> > 
> <rm...@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." <
>>  > > > > > > > > > smithh032772@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());
>>  > > > > > > > > > >> > > >        
>      }
>>  > > > > > > > > > >> > > >        
> }
>>  > > > > > > > > > >> > > >     }
>>  > > > > > > > > > >> > > > }
>>  > > > > > > > > > >> > > >
>>  > > > > > > > > > >> > >
>>  > > > > > > > > > >> >
>>  > > > > > > > > > >>
>>  > > > > > > > > > >
>>  > > > > > > > > > >
>>  > > > > > > > > >
>>  > > > > > > > >
>>  > > > > > > >
>>  > > > > > >
>>  > > > > >
>>  > > > >
>>  > > >
>>  > >
>>  >
>> 
>