<div><div>Now is the perfect time for me to finally pass on this message from the Gracelets author (perhaps Leonardo has a parallel thread going with him).</div><div><br>I asked Lewis:</div><div><br>&quot;Let us know what you need in JSF 2 to make this work better for you and we will treat Gracelets as a case study in our discussions about the Facelets API.&quot;<br>
Here is his reply from October:<br><br><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
I think up front after analyzing again the JSF 2.0 API, what would help integration alot is having the TagLibrary as part of the public API. Allowing at least discovery, use and manipulation of the Tag Libraries that are currently loaded. Without this it is a pain, and integration will require a per-JSF 2.0 implementation specific library to accompany and/or be distributed with Gracelets and any other third party library that wants to participate in the library process without having to sacrifice what the user currently has at his disposal.</blockquote>
<div><br></div><div>I then received an e-mail from him last week:</div><div><br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
Well, I have an alpha 1 release, am about to do an alpha 2 release and will soon be posting information about Gracelets + JSF 2.0, but just wanted to give you a heads up. Since I have not heard back from you about the TagLibrary issue, for the moment an integration library will have to be downloaded/shipped with Gracelets in order to be used with each different JSF implementation, at the moment SUN RI and MyFaces.</blockquote>
<div><br></div><div>The fact that he needs different integrations library is definitely a sign we need to reevaluate where the classes fall.</div><div><br></div><div>-Dan</div><div> </div><div class="gmail_quote">On Wed, Mar 31, 2010 at 1:04 PM, Ken Paulsen <span dir="ltr">&lt;<a href="mailto:ken.paulsen@oracle.com">ken.paulsen@oracle.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


  
  

<div text="#000000" bgcolor="#ffffff">
<br>
I believe the intent was to provide a View meta-data API (VAST - View
Abstract State Tree) which abstracted this level of detail w/o tying it
to Facelets.  That way frameworks such as Gracelets could write to that
API and work w/ any View technology (not just Facelets).  Therefor,
making the Facelets-specific API&#39;s part of the implementation makes
sense.<br>
<br>
Not sure where things stand right now, though...<br><font color="#888888">
<br>
Ken</font><div><div></div><div class="h5"><br>
<br>
On 03/31/2010 09:34 AM, Leonardo Uribe wrote:
<blockquote type="cite">Hi<br>
  <br>
This message is on behalf of Lewis Gass.<br>
  <br>
I am writing in relation to a particular use case which reveals that
the <br>
current JSF 2.0 public API is defficient. This is in relation the open <br>
source project Gracelets (<a href="http://gracelets.sourceforge.net/" target="_blank">http://gracelets.sourceforge.net/</a>)

and the new <br>
effort to integrate JSF 2.0 with Groovy. In order for people to use
Groovy <br>
as an alternative View Langauge they need
  <br>
to have access to the all the Facelets tag libraries and participate in
the <br>
Templating framework that Facelets provides. Much of this is tied to
the <br>
TagLibrary and
  <br>
TemplateClient API&#39;s. Before, with JSF 1.2, there was a single Facelets
  <br>
&quot;API&quot; and/or implementation. So integrating with it was much simpler,
as is <br>
shown by previous Gracelets
  <br>
versions. With JSF 2.0, part of the Facelets library was divided into
public <br>
API and another as JSF 2.0 specific implementation.
  <br>
  <br>
However, basic concepts such as Templating (TemplateClient and <br>
TemplateManager) are not considered public API, which means that a <br>
technology such as Gracelets
  <br>
must rely on a per JSF implementation integration library which is
volatile <br>
in nature. The FaceletContext class is public API, but implementations
are <br>
not required to support
  <br>
third party implementations of such, and there is no standard way to
access <br>
the TagLibrary used by facelets so that third part View Languages can <br>
harness them.
  <br>
  <br>
Thus this message has the purpose of requesting such parts of the old <br>
Facelets library, namely, the TagLibrary, TemplateClient and the
related <br>
FaceletContext methods (popClient(),
  <br>
pushClient(), extendClient() and applyDefinition()) to be part of the
public <br>
JSF 2.0 API, while at the same time requiring JSF 2.0 implementors to <br>
support third party implementations
  <br>
of the same classes/API&#39;s.
  <br>
  <br>
Respectfully,
  <br>
Lewis Gass
  <br>
Gracelets Coder
  <br>
  <a href="mailto:sestechllc@gmail.com" target="_blank">sestechllc@gmail.com</a>
  <br>
</blockquote>
</div></div></div>

</blockquote></div><br><br clear="all"><br>-- <br>Dan Allen<br>Senior Software Engineer, Red Hat | Author of Seam in Action<br>Registered Linux User #231597<br><br><a href="http://mojavelinux.com">http://mojavelinux.com</a><br>
<a href="http://mojavelinux.com/seaminaction">http://mojavelinux.com/seaminaction</a><br><a href="http://www.google.com/profiles/dan.j.allen">http://www.google.com/profiles/dan.j.allen</a><br>
</div></div>