Jason Lee wrote:
> I haven't had the chance to convert the example to Facelets, but in
> the app alluded to in my blog posting, we're using form, masthead,
> hyperlink, table, markup, tableRowGroup, tableColumn, staticText,
> checkbox, button, dropDown, image, and editableList (I think that's
> all ;) in a Facelets app, and they're all working really well. Given
> that success, I feel pretty comfortable in saying that the patch on
> issue 3 seems to be correct, which means, I guess, a decision needs to
> be made as to whether or not to integrate the changes, which I hope is
> done, as maintaining that outside the tree will not be fun. :)
Jason,
I will take a look at the issue that you filed as soon as I have a
chance. Supporting Facelets was not a goal originally, but given the
growth in popularity of the technology, it seems like a desirable
enhancement.
>
> I also have a question about the annotations and related processing
> used to generate the various files and classes for the components.
> I'd really like to use those in the JSF RI Sandbox, but the
> annotations code base is pretty well geared specifically to Woodstock
> (hard coded file names, paths, etc). What are the chances of making
> that reusable and downloadable for arbitrary component libraries (like
> the sandbox)? I think that could take a lot of the "pain" out of
> component authoring. Just in the last few days, I've added properties
> to a component in the Sandbox and had to edit the UIComponent, the
> tag, and the tld. It's tedious and error prone, and I'd like to avoid
> it if I can. :)
There is nothing in the annotations library or the processor that is
specific to Woodstock. It does presuppose a certain model of JSF
component development, one that is focused on the component class. The
idea is that you author component and renderer classes, and that all
other artifacts are generated based on annotations that you add to the
component and the renderer.
The processor does assume that it is processing an entire component
library. It cannot, for example, generate metadata for one component,
and then add an entry for that component in an existing faces-config
file. The biggest obstacle to working with existing component libraries,
is that you may not have the freedom to annotate the source.
// Gregory