Hello Paul,

what is wrong with Bernhards patch?

Instead of handling all of the annotation processing in

LifecycleProvider.newInstance(String className)

he suggest to add a method

LifecycleProvider.postConstruct(Object obj)

this method is called after the properties are injected by the
annotation provider and the managed bean properties from the jsf impl.

Why we should delegate the injection of the none annotation based
managed bean properties to the LifecycleProvider? This must be
implemented by Geronimo and the MyFaces Default LifecycleProvider.
I would prefer only one place for the old style managed bean properties
injection.

Regards

Bernd

Paul McMahan schrieb:
> The LifecycleProvider interface was introduced in MyFaces core 1.2.0 as
> an integration point that allows Java EE containers to handle annotation
> processing for JSF managed beans.  In order to help containers invoke
> @PostConstruct methods more consistently with the Java EE RI (glassfish)
> we are discussing changing this API in:
>     https://issues.apache.org/jira/browse/MYFACES-1761
> 
> I attached a patch (MYFACES-1761-01.diff) to that JIRA that would change
> a method signature from :
>    LifecycleProvider.newInstance(String className)
>  to
>    LifecycleProvider.newInstance(ManagedBean beanConfig)
> 
> The only known implementer of the LifecycleProvider interface (outside
> of MyFaces itself) is the Geronimo project, which is in favor of this
> change.   Are there any concerns with changing this external api in the
> upcoming 1.2.1 maintenance release?
> 
> BTW, this patch also refactors ManagedBeanBuilder into
> ManageBeanInitializer so that the existing code in that class can still
> be used to initialize managed properties.   Unless I am mistaken
> ManagedBeanBuilder was not intended to be externally overridden or
> extended, so refactoring it should not affect our users.
> 
> 
> Best wishes,
> Paul
> 

Reply via email to