[ 
https://issues.apache.org/jira/browse/MYFACES-2629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851424#action_12851424
 ] 

Jakob Korherr commented on MYFACES-2629:
----------------------------------------

I think we should get rid of AbstractFaceletContext and define the additional 
methods somewhere else, because since FaceletContext is specified in the api we 
should also accept different FaceletContext implementations.

Furthermore it won't be hard to relocate the methods, because:
- all isXXX() methods like isRefreshingTransientBuild(), isMarkInitialState(), 
isBuildingCompositeComponentMetadata(),.. are just storing the values of the 
related static methods from FaceletViewDeclarationLanguage
- all the push, pop, get method combinations are just accessing attributes on 
the FacesContext

The only methods which are accessing instance variables here are pushClient(), 
extendClient(), includeDefinition() and I am sure we will be able to relocate 
those too!

What do you think, Leonardo?

> Accept abstract FaceletContext, do not force AbstractFaceletContext
> -------------------------------------------------------------------
>
>                 Key: MYFACES-2629
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2629
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: General, JSR-314
>    Affects Versions: 2.0.0-beta-3
>         Environment: Tomcat 6.0+, MyFaces 2.0.0-beta3 API/Impl.
>            Reporter: Lewis Gass
>
> I am the main coder on the Gracelets project 
> (http://gracelets.sourceforge.net/) and have recently began integration of 
> Groovy with JSF 2.0. In order for Gracelets to harness the already existing 
> Facelets libraries it needs access to the TagLibrary class and the actual 
> libraries loaded by the JSF 2.0 implementation. Since that library is not 
> part of the JSF 2.0 public API, I have to write an extension for each 
> different JSF 2.0 implementation in order to load them. I have been able to 
> successfully integrate with the SUN RI with minimal code. However, in MyFaces 
> Core implementation this code appears on line 135 of the 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate:
> AbstractFaceletContext actx = (AbstractFaceletContext) ctx;
> Gracelets has its own FaceletContext (which is part of the public API) in 
> order to mimimize integration between different JSF 2.0 implementations. 
> Since in MyFaces this is forced to be a particular sub class here, it breaks 
> portability. Is there anyway this can be avoided?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to