I've opened a spec issue on this:
https://javaserverfaces-spec-public.devjava.net/issues/show_bug.cgi?id=744
Can we schedule a clarification for 2.0 rev a to allow MyFaces and Mojarra to accept the
same range of taglib declarations? This would help a lot for taglib development. E.g.
DojoFaces uses
http://java.sun.com/dtd/facelet-taglib_1_0.dtd and expected this to work
with JSF 2.0, but with MyFaces 2.0 beta it doesn't.
Best regards,
Ganesh
Ganesh schrieb:
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=2.0. 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
>