The xsd part cited below IMHO contradicts 10.1.2, because is breaks
old Facelets taglibs that start with:
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib
1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
Here'S the relevant phrase 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.
Is this a spec bug?
Best regards,
Ganesh
Ganesh schrieb:
On the MyFaces dev list there are some discussions about
which versions of facelets taglibs should be allowed
with MyFaces 2.0. Mojarra runs fine with old facelets
taglibs, but MyFaces 2.0 beta currently insists on a taglib version=20.
So, what does the EG say: Is
a JSF 2.0 compatible implementation required to
refuse old version facelets taglibs? Here's the relevant
part of the spec:
<xsd:simpleType name="facelet-taglib-versionType">
<xsd:annotation>
A-100 JavaServer Faces Specification • March 2009
<xsd:documentation>
This type contains the recognized versions of
facelet-taglib supported.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:enumeration value="2.0"/>
</xsd:restriction>
</xsd:simpleType>
Best regards,
Ganesh