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

Simon Kitching commented on MYFACES-434:
----------------------------------------

Sorry, Scott, I don't understand your comment.

Orchestra provides a FacesContextFactory that returns an anonymous class that 
subclasses a base class FacesContextWrapper. This is all standard decorator 
behaviour.

But the orchestra FacesContextWrapper was declared package-scoped, as it isn't 
a class that we want other people using; it's just a base for the FacesContext 
instance that we return.  Orchestra doesn't add any new methods to the 
FacesContext class.

It is the new *tomahawk* code that is using reflection to try to handle methods 
added by JSF1.2 while still building with JSF1.1. This is necessary due to a 
major design flaw in JSF, where adding methods in new spec releases breaks old 
code. When running in a JSF1.2 environment, Tomahawk's code checks whether the 
JSF1.2 method getELContext is present on the FacesContext instance (which was 
the Orchestra one). It was found (a Method object was located), so Tomahawk 
invoked it. But that Method was attached to a package-scoped class and 
therefore not invokable.

As far as I can see, Tomahawk's approach is ok (although it does scare me that 
tomahawk is wrapping each FacesContext instance, just by being in the 
classpath). I hadn't considered things wrapping orchestra's FacesContextWrapper 
and then using reflection to invoke *standard* api methods on it.

Note that Tomahawk does not have separate JSF1.1 and JSF1.2 flavours; it 
implements just JSF1.1 except for the odd workaround in situations like this 
where the JSF spec is not backwards-compatible.

Do you think there is something wrong with either Tomahawk or Orchestra here 
(except the logging issue I noted, and possible delegation problems as 
described in MYFACES-1820)?

> MyFaces's Portlet enhancement
> -----------------------------
>
>                 Key: MYFACES-434
>                 URL: https://issues.apache.org/jira/browse/MYFACES-434
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: Portlet_Support
>    Affects Versions: 1.1.0
>         Environment: LInux, J2SE 1.4.2
>            Reporter: Shinsuke SUGAYA
>            Assignee: Martin Marinschek
>             Fix For:  1.1.6-SNAPSHOT
>
>         Attachments: PortletEnableTomahawk.patch, tomahawk-patch-portlet.zip, 
> Tomahawk_FileUpload_IBMPortal.zip
>
>
> MyFacesGenericPortlet does not fully support the feature of tomahawk 
> component, such as inputHtml and fileUpload. So, I request the following 
> feature to run it on portlet:
> - support tags in <head> (ex. inputHtml component)
> - support upload (fileUpload component)

-- 
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