IMHO the spec is very clear about this and the stuff in
the appendix is a spec bug. From the spec (10.1.2):
A decision was made early in this process to strive for backwards compatibility
between the latest popular version of Facelets and Facelets in JSF 2.0. The
sole determinant to backwards compatibility lies in the answer to the question,
“is there any Java code in the application, or in libraries used by the
application, that extends from or depends on any class in package
com.sun.facelets and/or its sub-packages?”
■ If the answer to this question is “yes”, Facelets in JSF 2.0 is not backwards
compatibile with Facelets and such an application must continue to bundle the
Facelets jar file along with the application, continue to set the Facelets
configuration parameters, and also set the
javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER
<context-param> to true. Please see Section 11.1.3 “Application Configuration
Parameters” for details on this
option. Any code that extends or depends on any class in package
com.sun.facelets and/or its sub-packages
must be modified to depend on the appropriate classes in package
javax.faces.webapp.vdl and/or its subpackages.
■ If the answer to this question is “no”, Facelets in JSF 2.0 is backwards
compatible with pre-JSF 2.0 Facelets and such an application must not continue
to bundle the Facelets jar file along with the application, and must not
continue to set the Facelets configuration parameters.
Thankfully, most applications that use Facelets fall into the latter category,
or, if they fall in the former, their dependence will easily be migrated to the
new public classes.
Best regards,
Ganesh
Matthias Wessendorf schrieb:
On Wed, Feb 10, 2010 at 6:26 AM, Ganesh <[email protected]> wrote:
Many Facelets taglibs don't use Facelets tag handlers,
but simply wrap some xhtml templates. Nothing will stop these libraries to
work with MyFaces if we allow old version taglibs.
If we insist on refusing them people will simply switch to Mojarra to get
their application to run.
I know; that's what I meant with my comment before
The argument of a xsd:restriction in the spec will
help little. Just
taking old Facelets is *not* a solution, because the
rest of the application may want to use the new features.
Please try filing this as a bug to Mojarra as Matthias
proposed - if they fix it, MyFaces may insist on version=2.0, but if they
don't I think we shouldn't
either.
I agree
I've carried the question whether a JSF 2.0 compatible implementation is
required to refuse old version facelets taglibs into the EG - let's see,
what they have to say
technically, I think now we are correct.
@Jakob: Did you create such a bug against the RI ?
(that they allow "old" Facelets) maybe another on
not being (too) clear in the spec about it...
-Matthias
on this ...
Best regards,
Ganesh
I see both ways; I think I don't like the fact that the RI has this "bug"
:)
So, end of the story is, almost everybody will blame this to us ;-)
"Oh, crappy MyFaces doesn't work" etc :) All the FUD! :)