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());
>> > > > > > > > > > >> > > >
> }
>> > > > > > > > > > >> > > >
> }
>> > > > > > > > > > >> > > > }
>> > > > > > > > > > >> > > > }
>> > > > > > > > > > >> > > >
>> > > > > > > > > > >> > >
>> > > > > > > > > > >> >
>> > > > > > > > > > >>
>> > > > > > > > > > >
>> > > > > > > > > > >
>> > > > > > > > > >
>> > > > > > > > >
>> > > > > > > >
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>