Urgh. There's no perfect way. Overriding the ValueHolderRule
and EditableValueHolder rule in Trinidad might be the simplest
solution.
-- Adam
On 8/7/07, Stephen Friedrich <[EMAIL PROTECTED]> wrote:
> Right, it's really facelets to blame - in com.sun.facelets.util.FacesAPI:
> public final static int getComponentVersion(UIComponent c) {
> return (version >= 12 && c instanceof UIComponentBase) ? 12 : 11;
> }
>
> Does anybody with more JSF/Trinidad experience know a more reliable way to
> determine the version?
>
> Stephen Friedrich wrote:
> > Thanks Adam,
> > sorry for the helpless comments. Please understand that I am just
> > a JSF user who tried to use Trinidad, Seam and Facelets in
> > combination.
> > Up to today I have never read about how unified EL is implemented,
> > so I just did not get that ValueBindingValueExpression was only
> > needed to support legacy JSF 1.1 functions.
> >
> > I tried to debug where the ValueBindingValueExpression gets created
> > and unfortunately that's were facelets seem to get involved.
> >
> > My hunch is that TrinidadComponentHandler.createMetaRuleset()
> > should add its own rules in front of the default rules created in
> > the facelets superclass ComponentHandler.createMetaRuleset().
> > Currently facelets adds a ValueHolderRule that ultimately creates
> > the value binding.
> >
> > Does that make sense?
> >
> > Adam Winer wrote:
> >> On 8/7/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> >>> Thanks Matthias,
> >>>
> >>> any comment on the actual bug?
> >>> Also was the ValueBindingValueExpression introduced for 1.2 (and
> >>> immediately marked deprecated) or was it already removed/refactored
> >>> on trunk?
> >>
> >> Trunk is JSF 1.1. Ergo, it doesn't exist. We're using a branch
> >> for 1.2 support.
> >>
> >> ValueBindingValueExpression is an adapter class that wraps
> >> a ValueBinding, and turns it into a ValueExpression. It's
> >> deprecated because ValueBindings are deprecated - ergo,
> >> avoid using it.
> >>
> >> We can't pass the ELContext into ValueBinding, because
> >> ValueBinding doesn't take ELContext, it takes FacesContext.
> >> (We could be retrieving the FacesContext off of the ELContext,
> >> but it'd be the same FacesContext instance.)
> >>
> >> I've no idea what change you're recommending in the code.
> >> My hunch is the major issue is that something is creating
> >> a ValueBinding instead of a ValueExpression. Could you find
> >> out what bit of code is creating a ValueBinding, and why?
> >>
> >> -- Adam
>
>