<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Ed Burns wrote On 3/4/2009 10:44 PM ET:<br>
<span style="white-space: pre;">> Ok, can you prepare a
change-bundle for this approach, the "four very<br>
> small contracts approach", and attach it to issue jsf-spec-public<br>
> 274?</span><br>
<br>
Awesome, thanks for letting me get this in Ed!<br>
<br>
I have uploaded the change-bundle to 274 with the following comments:<br>
<br>
<blockquote type="cite">
<pre>The jsf-andy.patch addresses additional requirements raised by Oracle/ADF Faces.
ADF Faces needs a way to find child handlers by type. In particular, ADF Faces
needs to be able to locate the following types of handlers by type:
- TextHandlers
- AttributeHandlers
- FacetHandlers
Previously this was possible using the Facelets 1.1.x
TagHandler.findNextByType() API and referencing the above handler types.
However, both findNextByType() and the above handlers have been moved out of the
public API in JSF 2.0.
One option would be to move findNextByType() and the above handler
implementations into the public API, but in order to keep the amount of
implementation in jsf-api small, we instead decided to add the following four
interfaces:
1. javax.faces.webapp.pdl.facelets.tag.TextHandler
This interface is identical to Facelets 1.1.x version. It defines two methods:
- public String getText();
- public String getText(FaceletContext ctx);
2. javax.faces.webapp.pdl.facelets.tag.AttributeHandler:
This is a new interface that defines a single method:
- public String getAttributeName(FaceletContext ctx);
3. javax.faces.webapp.pdl.facelets.tag.FacetHandler
This is a new interface that defines a single method:
- public String getFacetName(FaceletContext ctx);
4. javax.faces.webapp.pdl.facelets.tag.CompositeFacletHandler
This is a new interface that defines a single method:
- public FaceletHandler[] getHandlers();
Note that we decided to introduce #4 as an alternative to introducing a public
findNextByType(), as CompositeFaceletHandler is sufficient to allow users to
scan child FaceletHandlers.
The attached patch introduces these new contracts, and also updates the jsf-ri
accordingly.
Running "ant test.with.container.refresh" passes successfully.
</pre>
</blockquote>
<br>
<span style="white-space: pre;"></span>Andy<br>
</body>
</html>