<div dir="ltr">forgot to cc seam-dev :-)<br><br><div class="gmail_quote">On Thu, Oct 2, 2008 at 9:51 AM, Jay Balunas <span dir="ltr">&lt;<a href="mailto:tech4j@gmail.com">tech4j@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><br><br><div class="gmail_quote"><div class="Ih2E3d">On Wed, Oct 1, 2008 at 8:12 PM, Dan Allen <span dir="ltr">&lt;<a href="mailto:dan.j.allen@gmail.com" target="_blank">dan.j.allen@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Jay,<br>
<br>
This is great work and very interesting to follow.</blockquote></div><div>thanks <br></div><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
I would like to make a suggestion regarding the tests. Putting the<br>
wiki under test is extremely valuable because it is a complex<br>
application and therefore reflective of our users&#39; applications.<br>
However, it is tricky for others to follow along, because as you<br>
mentioned, it is not trivial to setup. To supplement those tests,<br>
perhaps you can generate a seam-gen application with a test schema<br>
(perhaps stealing from one of the example application) so that we can<br>
compare numbers with yours. What makes a seam-gen application valuable<br>
to test is that it uses the Seam Application Framework, which is a<br>
well known performance bottleneck in Seam because of its excessive use<br>
of getInstance() and joinTransaction().</blockquote></div><div><br>I think you are correct for the reasons you state and others.&nbsp; The wiki example also does not use&nbsp; EJBs which I suspect a large number of seam apps do.&nbsp; I was planning on&nbsp; looking at the dvdstore next and that uses several technologies (EJB, JBPM, etc...). <br>

<br>However I could look at a seam-gen EAR project as well, but I would like to get some other opinions on this.&nbsp; I do not think that I will have enough time to do both.<br><br></div><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
<br>
It shouldn&#39;t take too long to generate the seam-gen application and<br>
reverse engineer the schema. The tedious part is generating a whole<br>
bunch of fake data, but emacs or vi should make quick work of that.</blockquote></div><div><br>Yeah - the fake data is tricky, but there are some tools that can do this for us.<br>&nbsp;</div><div><div></div><div class="Wj3C7c">
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
-Dan<br>
<div><div></div><div><br>
On Wed, Oct 1, 2008 at 6:02 PM, Jay Balunas &lt;<a href="mailto:tech4j@gmail.com" target="_blank">tech4j@gmail.com</a>&gt; wrote:<br>
&gt; The example I was using was the seam wiki example, but that is not a trivial<br>
&gt; thing to set up. &nbsp;I have not tried the same profiling on the other seam<br>
&gt; examples so I am not 100% sure that they will show the same behavior,<br>
&gt; although I would think that they would.<br>
&gt;<br>
&gt; As for the profiler report - what are you looking for exactly? &nbsp;Basically<br>
&gt; under load (25 users) I noticed threads blocking on the<br>
&gt; ViewHandlerWrapper.fillChain method. &nbsp;The details are below.<br>
&gt;<br>
&gt; Regards,<br>
&gt; Jay<br>
&gt;<br>
&gt; On Wed, Oct 1, 2008 at 5:56 PM, Alexandr Smirnov &lt;<a href="mailto:asmirnov@exadel.com" target="_blank">asmirnov@exadel.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Jay, can you send me profiler report or a reference application ?<br>
&gt;&gt;<br>
&gt;&gt; Jay Balunas wrote:<br>
&gt;&gt; &gt; I was able to update and build with RichFaces 3.3.0-SNAPSHOT and saw<br>
&gt;&gt; &gt; your changes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The good news is that I no longer see any blocking threads in the<br>
&gt;&gt; &gt; &quot;org.ajax4jsf.application.<br>
&gt;&gt; &gt; AjaxViewHandler&quot; - none at all which is great.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The bad news is that the performance has not increased in any<br>
&gt;&gt; &gt; meaningful or repeatable way.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; During my profiling I noticed a definite increase in the blocked<br>
&gt;&gt; &gt; threads performing JNDI lookups. &nbsp;My theory is that the<br>
&gt;&gt; &gt; AjaxViewHandler was acting as a gate and effectively slowing down<br>
&gt;&gt; &gt; concurrent requests into Seam proper. &nbsp;These threads now fly straight<br>
&gt;&gt; &gt; through and into Seam processing. &nbsp;They the end up blocked with the<br>
&gt;&gt; &gt; other threads performing the lookups.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I will continue to look at the lookup issues, and let you all know<br>
&gt;&gt; &gt; what I find.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; -Jay<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Sep 30, 2008 at 2:05 PM, Jay Balunas &lt;<a href="mailto:jbalunas@redhat.com" target="_blank">jbalunas@redhat.com</a><br>
&gt;&gt; &gt; &lt;mailto:<a href="mailto:jbalunas@redhat.com" target="_blank">jbalunas@redhat.com</a>&gt;&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; Excellent &nbsp;- I will build from sources and test the changes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; I&#39;ll post the findings up on seam-dev.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; -Jay<br>
&gt;&gt; &gt; &nbsp; &nbsp; ----- &quot;Nick Belaevski&quot; &lt;<a href="mailto:nbelaevski@exadel.com" target="_blank">nbelaevski@exadel.com</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:nbelaevski@exadel.com" target="_blank">nbelaevski@exadel.com</a>&gt;&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; All,<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; I&#39;ve created JIRA issue for this optimization:<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; <a href="https://jira.jboss.org/jira/browse/RF-4554" target="_blank">https://jira.jboss.org/jira/browse/RF-4554</a> and have just fixed it.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; As from now ViewHandlerWrapper#fillChain method is not<br>
&gt;&gt; &gt; synchronized<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; anymore.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; Best regards,<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &nbsp; Nick Belaevski<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; -----Original Message-----<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; From: <a href="mailto:richfaces-exadel-bounces@redhat.com" target="_blank">richfaces-exadel-bounces@redhat.com</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:richfaces-exadel-bounces@redhat.com" target="_blank">richfaces-exadel-bounces@redhat.com</a>&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; [mailto:<a href="mailto:richfaces-exadel-" target="_blank">richfaces-exadel-</a> &lt;mailto:<a href="mailto:richfaces-exadel-" target="_blank">richfaces-exadel-</a>&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; <a href="mailto:bounces@redhat.com" target="_blank">bounces@redhat.com</a> &lt;mailto:<a href="mailto:bounces@redhat.com" target="_blank">bounces@redhat.com</a>&gt;] On Behalf Of<br>
&gt;&gt; &gt; &nbsp; &nbsp; Max Rydahl Andersen<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; Sent: Tuesday, September 30, 2008 10:32 AM<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; To: Jay Balunas; <a href="mailto:richfaces-exadel@redhat.com" target="_blank">richfaces-exadel@redhat.com</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:richfaces-exadel@redhat.com" target="_blank">richfaces-exadel@redhat.com</a>&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; Subject: Re: [Richfaces-exadel] Fwd: [seam-dev] Some profiling<br>
&gt;&gt; &gt; of<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; blockingthreads<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; Sergey/Nik ? Any news on this one ?<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; /max<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Hi Guys,<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; I have been doing some performance testing on seam<br>
&gt;&gt; &gt; applications<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; and have<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; been able to post some of the results. &nbsp;One of the areas that<br>
&gt;&gt; &gt; I<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; have<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; investigated so far was blocking/waiting threads.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; In my example I am running 25 concurrent users and hitting the<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; seam wiki<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; example. &nbsp;I am seeing blocked threads waiting on<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; &quot;org.ajax4jsf.application.AjaxViewHandler&quot;.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; I have investigated it a bit (see below), and have included<br>
&gt;&gt; &gt; some<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; of the<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; discussions on the seam-dev list.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; I would like to get an opinion of the synchronized fillChain<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; method, and<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; see<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; if there is another way to handle this.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Thoughts?<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Thanks,<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Jay<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; ---------- Forwarded message ----------<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; From: Emmanuel Bernard &lt;<a href="mailto:emmanuel@hibernate.org" target="_blank">emmanuel@hibernate.org</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:emmanuel@hibernate.org" target="_blank">emmanuel@hibernate.org</a>&gt;&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Date: Thu, Sep 25, 2008 at 10:01 AM<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Subject: Re: [seam-dev] Some profiling of blocking threads<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; To: Jay Balunas &lt;<a href="mailto:tech4j@gmail.com" target="_blank">tech4j@gmail.com</a> &lt;mailto:<a href="mailto:tech4j@gmail.com" target="_blank">tech4j@gmail.com</a>&gt;&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Cc: Pete Muir &lt;<a href="mailto:pmuir@redhat.com" target="_blank">pmuir@redhat.com</a> &lt;mailto:<a href="mailto:pmuir@redhat.com" target="_blank">pmuir@redhat.com</a>&gt;&gt;,<br>
&gt;&gt; &gt; &nbsp; &nbsp; &quot;<a href="mailto:seam-dev@lists.jboss.org" target="_blank">seam-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:seam-dev@lists.jboss.org" target="_blank">seam-dev@lists.jboss.org</a>&gt;&quot; &lt;<br>

&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; <a href="mailto:seam-dev@lists.jboss.org" target="_blank">seam-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:seam-dev@lists.jboss.org" target="_blank">seam-dev@lists.jboss.org</a>&gt;&gt;<br>

&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; On &nbsp;Sep 25, 2008, at 09:17, Jay Balunas wrote:<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; org.ajax4jsf.application.AjaxViewHandler<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; --------------------------------------------<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; &nbsp;- This was not a large % of the blocked threads but caught<br>
&gt;&gt; &gt; my<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; eye as a<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; potential trouble spot because it seemed directly related to<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; ajax<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; calls.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; &nbsp;- This was easier to track down and the root cause is in the<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; org.ajax4jsf.application.ViewHandlerWrapper class.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; &nbsp;- see<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; <a href="http://anonsvn.jboss.org/repos/richfaces/trunk/framework/api/src/main/java" target="_blank">http://anonsvn.jboss.org/repos/richfaces/trunk/framework/api/src/main/java</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; /org/ajax4jsf/application/ViewHandlerWrapper.java<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; &nbsp;- The problem is all the calls to &quot;fillChain&quot; which is a<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; synchronized<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; method in the class.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; &nbsp;- We need to find out how often the &quot;_initialized&quot; field is<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; false - is<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; this once a request, once for each component, etc...<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt; &nbsp;- it appears to be called many times - I will look further<br>
&gt;&gt; &gt; &nbsp; &nbsp; into<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; this.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;&gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; I will raise this the richfaces dev guys, and see what can be<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; done.<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; Using the double check lock pattern with a volatile should<br>
&gt;&gt; &gt; make<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; things<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt; better. It has to be done right though :)<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; --<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; /max<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; Richfaces-exadel mailing list<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; <a href="mailto:Richfaces-exadel@redhat.com" target="_blank">Richfaces-exadel@redhat.com</a> &lt;mailto:<a href="mailto:Richfaces-exadel@redhat.com" target="_blank">Richfaces-exadel@redhat.com</a>&gt;<br>

&gt;&gt; &gt; &nbsp; &nbsp; &gt; &gt; <a href="https://www.redhat.com/mailman/listinfo/richfaces-exadel" target="_blank">https://www.redhat.com/mailman/listinfo/richfaces-exadel</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt;<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; _______________________________________________<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; Richfaces-exadel mailing list<br>
&gt;&gt; &gt; &nbsp; &nbsp; &gt; <a href="mailto:Richfaces-exadel@redhat.com" target="_blank">Richfaces-exadel@redhat.com</a> &lt;mailto:<a href="mailto:Richfaces-exadel@redhat.com" target="_blank">Richfaces-exadel@redhat.com</a>&gt;<br>

&gt;&gt; &gt; &nbsp; &nbsp; &gt; <a href="https://www.redhat.com/mailman/listinfo/richfaces-exadel" target="_blank">https://www.redhat.com/mailman/listinfo/richfaces-exadel</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; blog: <a href="http://in.relation.to/Bloggers/Jay" target="_blank">http://in.relation.to/Bloggers/Jay</a><br>
&gt;&gt; &gt; ------------------------------------------------------------------------<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Richfaces-exadel mailing list<br>
&gt;&gt; &gt; <a href="mailto:Richfaces-exadel@redhat.com" target="_blank">Richfaces-exadel@redhat.com</a><br>
&gt;&gt; &gt; <a href="https://www.redhat.com/mailman/listinfo/richfaces-exadel" target="_blank">https://www.redhat.com/mailman/listinfo/richfaces-exadel</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; blog: <a href="http://in.relation.to/Bloggers/Jay" target="_blank">http://in.relation.to/Bloggers/Jay</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Richfaces-exadel mailing list<br>
&gt; <a href="mailto:Richfaces-exadel@redhat.com" target="_blank">Richfaces-exadel@redhat.com</a><br>
&gt; <a href="https://www.redhat.com/mailman/listinfo/richfaces-exadel" target="_blank">https://www.redhat.com/mailman/listinfo/richfaces-exadel</a><br>
&gt;<br>
<br>
<br>
<br>
--<br>
</div></div>Dan Allen<br>
Software consultant | Author of Seam in Action<br>
<br>
<a href="http://mojavelinux.com" target="_blank">http://mojavelinux.com</a><br>
<a href="http://mojavelinux.com/seaminaction" target="_blank">http://mojavelinux.com/seaminaction</a><br>
<br>
NOTE: While I make a strong effort to keep up with my email on a daily<br>
basis, personal or other work matters can sometimes keep me away<br>
from my email. If you contact me, but don&#39;t hear back for more than a week,<br>
it is very likely that I am excessively backlogged or the message was<br>
caught in the spam filters. &nbsp;Please don&#39;t hesitate to resend a message if<br>
you feel that it did not reach my attention.<br>
</blockquote></div></div></div><br><br clear="all"><br>-- <br><div class="Ih2E3d">blog: <a href="http://in.relation.to/Bloggers/Jay" target="_blank">http://in.relation.to/Bloggers/Jay</a><br>
</div></div>
</blockquote></div><br><br clear="all"><br>-- <br>blog: <a href="http://in.relation.to/Bloggers/Jay">http://in.relation.to/Bloggers/Jay</a><br>
</div>