<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>JSFlive: Michael Kurz&#039;s JSF Weblog</title>
	<atom:link href="http://jsflive.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jsflive.wordpress.com</link>
	<description>Random thoughts about JavaServer Faces and related stuff</description>
	<lastBuildDate>Tue, 17 Jan 2012 07:16:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jsflive.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/43f0176fd65dc85644789bfba38a391b?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>JSFlive: Michael Kurz&#039;s JSF Weblog</title>
		<link>http://jsflive.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jsflive.wordpress.com/osd.xml" title="JSFlive: Michael Kurz&#039;s JSF Weblog" />
	<atom:link rel='hub' href='http://jsflive.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Slides for sessions at W-JAX 2011</title>
		<link>http://jsflive.wordpress.com/2011/11/10/slides-wjax2011/</link>
		<comments>http://jsflive.wordpress.com/2011/11/10/slides-wjax2011/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 09:15:23 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=226</guid>
		<description><![CDATA[I&#8217;m back from the W-JAX 2011 and uploaded my presentation slides to Slideshare: Go Fullstack: Webanwendungen mit Java EE 6 bauen JSF und JPA effizient kombinieren<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=226&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back from the <a href="http://jax.de/wjax2011" target="_blank">W-JAX 2011</a> and uploaded my presentation slides to Slideshare:</p>
<ul>
<li><a href="http://www.slideshare.net/michael_kurz/fullstack-codiwjax2011" target="_blank">Go Fullstack: Webanwendungen mit Java EE 6 bauen</a></li>
<li><a href="http://www.slideshare.net/michael_kurz/jsf-und-jpa-effizient-kombinieren-wjax-2011" target="_blank">JSF und JPA effizient kombinieren</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=226&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/11/10/slides-wjax2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Examples for sessions at W-JAX 2011</title>
		<link>http://jsflive.wordpress.com/2011/11/07/examples-w-jax-2011/</link>
		<comments>http://jsflive.wordpress.com/2011/11/07/examples-w-jax-2011/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 10:14:55 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=217</guid>
		<description><![CDATA[This week I will do the sessions Go Fullstack: Webanwendungen mit Java EE 6 bauen and JSF und JPA effizient kombinieren at the W-JAX 2011 in Munich. The examples for the sessions can be found on the JSFlive github. For &#8230; <a href="http://jsflive.wordpress.com/2011/11/07/examples-w-jax-2011/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=217&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This week I will do the sessions <em>Go Fullstack: Webanwendungen mit Java EE 6 bauen</em> and <em>JSF und JPA effizient kombinieren</em> at the <a href="http://jax.de/wjax2011" target="_blank">W-JAX 2011</a> in Munich.</p>
<p>The examples for the sessions can be found on the JSFlive github. For <em>JSF und JPA effizient kombinieren</em> the location is: <a title="MyMail OWB" href="https://github.com/jsflive/mymail-owb" target="_blank">MyMail OWB</a> and for <em>Go Fullstack: Webanwendungen mit Java EE 6 bauen</em> it is: <a title="MyGourmet EE" href="https://github.com/jsflive/mygourmet-ee" target="_blank">MyGourmet EE</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=217&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/11/07/examples-w-jax-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Best speaker of the day@Herbstcampus 2011</title>
		<link>http://jsflive.wordpress.com/2011/09/24/best-speaker-of-the-day-herbstcampus-2011/</link>
		<comments>http://jsflive.wordpress.com/2011/09/24/best-speaker-of-the-day-herbstcampus-2011/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 09:58:56 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=212</guid>
		<description><![CDATA[I am proud to announce that my session Go Fullstack with JavaEE 6 was voted best session of the day @ Herbstcampus 2011. Thanks to everyone!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=212&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce that my session <em>Go Fullstack with JavaEE 6</em> was voted best session of the day @ <a href="http://herbstcampus.de" title="Herbstcampus 2011" target="_blank">Herbstcampus 2011</a>. Thanks to everyone!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=212&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/09/24/best-speaker-of-the-day-herbstcampus-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Ajaxify composite component collapsiblePanel</title>
		<link>http://jsflive.wordpress.com/2011/09/07/collapsiblepanel-ajax/</link>
		<comments>http://jsflive.wordpress.com/2011/09/07/collapsiblepanel-ajax/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 20:40:39 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Composite components]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=190</guid>
		<description><![CDATA[In my last posts about the composite component collapsiblePanel I showed you how to make it self-contained and reusable and how to put it into a custom component library. The only thing that remains to do is to add some &#8230; <a href="http://jsflive.wordpress.com/2011/09/07/collapsiblepanel-ajax/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=190&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my last posts about the composite component <code>collapsiblePanel</code> I showed you how to <a href="http://jsflive.wordpress.com/2010/09/19/collapsiblepanel-revisited/">make it self-contained and reusable</a> and how to put it into a <a href="http://jsflive.wordpress.com/2011/03/24/custom-component-library/">custom component library</a>. The only thing that remains to do is to add some ajax behavior. As we are using JSF 2.0 this is actually easy to accomplish.</p>
<p><span id="more-190"></span></p>
<p>Currently, every click on the button results in a complete page refresh. The goal is to collapse and expand the panel with ajax. The intended behavior is that a click on the the button just updates the button itself (we need to change from plus to minus and vice versa) and the content panel.</p>
<p>The first step is to prepare the content panel. So far this panel was a simple <code>h:panelGroup</code> component with a <code>rendered</code> attribute. This approach won&#8217;t work with ajax. Components that should be updated with ajax must always be rendered. Otherwise the component has no representation in the DOM tree and cannot be updated.</p>
<p>The simplest solution for this is to place a second <code>h:panelGroup</code> component around the existing one. The following listing shows the updated content panel section.</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;h:panelGroup id=&quot;panel-content&quot; layout=&quot;block&quot;&gt;
  &lt;h:panelGroup rendered=&quot;#{!cc.collapsed}&quot;&gt;
    &lt;cc:insertChildren/&gt;
  &lt;/h:panelGroup&gt;
&lt;/h:panelGroup&gt;
</pre></p>
<p>The second step is to add ajax behavior to the <code>h:commandButton</code> component. This is done by adding <code>f:ajax</code> as child element to the button. The attribute <code>render</code> takes a list of component IDs that should be rendered and updated as a result of the ajax request. In our case the attribute contains two IDs: <code>@this</code> stands for the component triggering the request (the button) and <code>panel-content</code> for the content panel. The following listing shows the code (without images and style):</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;h:commandButton id=&quot;toggle&quot; actionListener=&quot;#{cc.toggle}&quot;&gt;
  &lt;f:ajax render=&quot;@this panel-content&quot;/&gt;
&lt;/h:commandButton&gt;
</pre></p>
<p>The next listing shows the <code>f:ajax</code> tag with additional attributes. <code>event</code> specifies the event triggering the ajax request (<code>action</code> mapps to onclick for command components). <code>execute</code> takes a list of IDs for which the lifecycle is executed on the server (<code>@this</code> stands for the component triggering the request again). As the values you see for those attributes in the listing are the default values we don&#8217;t have to set them explicitly.</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;h:commandButton id=&quot;toggle&quot; actionListener=&quot;#{cc.toggle}&quot;&gt;
  &lt;f:ajax event=&quot;action&quot; execute=&quot;@this&quot;
      render=&quot;@this panel-content&quot;/&gt;
&lt;/h:commandButton&gt;
</pre></p>
<p>The following listing shows the complete composite component <code>collapsiblePanel</code> with ajax behavior.</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;cc:interface componentType=&quot;at.jsflive.CollapsiblePanel&quot;&gt;
  &lt;cc:attribute name=&quot;collapsed&quot;/&gt;
  &lt;cc:actionSource name=&quot;toggle&quot;/&gt;
  &lt;cc:facet name=&quot;header&quot;/&gt;
&lt;/cc:interface&gt;
&lt;cc:implementation&gt;
  &lt;h:panelGroup layout=&quot;block&quot; styleClass=&quot;collapsiblePanel-header&quot;&gt;
    &lt;h:commandButton id=&quot;toggle&quot; actionListener=&quot;#{cc.toggle}&quot;
        styleClass=&quot;collapsiblePanel-img&quot;
        image=&quot;#{resource[cc.collapsed 
            ? 'jsflive:plus.png' : 'jsflive:minus.png']}&quot;&gt;
      &lt;f:ajax render=&quot;@this panel-content&quot;/&gt;
    &lt;/h:commandButton&gt;
    &lt;cc:renderFacet name=&quot;header&quot;/&gt;
  &lt;/h:panelGroup&gt;
  &lt;h:panelGroup id=&quot;panel-content&quot; layout=&quot;block&quot;&gt;
    &lt;h:panelGroup rendered=&quot;#{!cc.collapsed}&quot;&gt;
      &lt;cc:insertChildren/&gt;
    &lt;/h:panelGroup&gt;
  &lt;/h:panelGroup&gt;
  &lt;h:outputStylesheet library=&quot;jsflive&quot; name=&quot;components.css&quot;/&gt;
&lt;/cc:implementation&gt;
</pre></p>
<p>That&#8217;s it! The rest of the example was not changed for the ajax integration.</p>
<p>Tools like Firebug or the Chrome Developer Tools allow to check the type and contents of requests and responses. This way it is easy to determine that JSF now really sends ajax requests. You could further check what happens if the <code>f:ajax</code> tag is removed again (a classic JSF request will be sent).</p>
<p>For simplicity&#8217;s sake the source code for the presented example is based on <code>collapsiblePanel02</code> and not <code>collapsiblePanel03</code>. It can be found in the Github repository <a href="https://github.com/jsflive/collapsible04">collapsible04</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=190&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/09/07/collapsiblepanel-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Examples for Ajax in JSF 2@Herbstcampus 2011</title>
		<link>http://jsflive.wordpress.com/2011/09/02/examples-ajaxjsf2-herbstcampus2011/</link>
		<comments>http://jsflive.wordpress.com/2011/09/02/examples-ajaxjsf2-herbstcampus2011/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 15:37:18 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=186</guid>
		<description><![CDATA[On September 7, 2011 I will do the session Ajax in JSF 2.0 at the Herbstcampus 2011 in Nürnberg. For this session I prepared a set of examples to show the integration of ajax in JSF 2.0. The example can &#8230; <a href="http://jsflive.wordpress.com/2011/09/02/examples-ajaxjsf2-herbstcampus2011/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=186&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On September 7, 2011 I will do the session <em>Ajax in JSF 2.0</em> at the <a title="Herbstcampus 2011" href="http://herbstcampus.de" target="_blank">Herbstcampus 2011</a> in Nürnberg. For this session I prepared a set of examples to show the integration of ajax in JSF 2.0.</p>
<p>The example can be found on the JSFlive github: <a title="Ajax in JSF 2 Herbstcampus 2011" href="https://github.com/jsflive/jsf2-ajax-herbstcampus2011" target="_blank">JSF 2 Ajax Herbstcampus 2011@Github</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/186/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=186&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/09/02/examples-ajaxjsf2-herbstcampus2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Best workshop@CONFESS 2011</title>
		<link>http://jsflive.wordpress.com/2011/06/07/best-workshop/</link>
		<comments>http://jsflive.wordpress.com/2011/06/07/best-workshop/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 10:52:16 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=178</guid>
		<description><![CDATA[I am proud to announce that my workshop JSF 2 composite components in action was voted best workshop @ CONFESS 2011. Thanks to everyone!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=178&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce that my workshop <em>JSF 2 composite components in action</em> was voted best workshop @ <a href="http://con-fess.com" title="CONFESS 2011" target="_blank">CONFESS 2011</a>. Thanks to everyone!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=178&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/06/07/best-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Example for Go Fullstack@CONFESS 2011</title>
		<link>http://jsflive.wordpress.com/2011/05/05/example-for-go-fullstackconfess-2011/</link>
		<comments>http://jsflive.wordpress.com/2011/05/05/example-for-go-fullstackconfess-2011/#comments</comments>
		<pubDate>Thu, 05 May 2011 07:08:55 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=172</guid>
		<description><![CDATA[Together with Martin Marinschek I did the session Go Fullstack &#8211; The Java EE way of building a web-application at the CONFESS 2011. For this session I ported the example MyGourmet from JSF@Work to a Java EE 6 stack. The &#8230; <a href="http://jsflive.wordpress.com/2011/05/05/example-for-go-fullstackconfess-2011/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=172&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Together with Martin Marinschek I did the session <em>Go Fullstack &#8211; The Java EE way of building a web-application</em> at the <a href="http://www.con-fess.com" title="CONFESS" target="_blank">CONFESS 2011</a>. For this session I ported the example <em>MyGourmet</em> from <a href="http://jsfatwork.irian.at" title="Irian JSF@Work" target="_blank">JSF@Work</a> to a Java EE 6 stack.</p>
<p>The example can be found on the JSFlive github: <a href="https://github.com/jsflive/mygourmet-confess2011" title="MyGourmet CONFESS 2011" target="_blank">MyGourmet CONFESS 2011@Github</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/172/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=172&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/05/05/example-for-go-fullstackconfess-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Example for Go Fullstack@JAX 2011</title>
		<link>http://jsflive.wordpress.com/2011/05/03/example-fullstack-jax-2011/</link>
		<comments>http://jsflive.wordpress.com/2011/05/03/example-fullstack-jax-2011/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:10:04 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=161</guid>
		<description><![CDATA[Today I will do the session Go Fullstack &#8211; JPA und JSF effizient kombinieren at the JAX 2011. For this session I developed a simple example to show the integration of JSF 2 and JPA 2 with dynamic search parameters, &#8230; <a href="http://jsflive.wordpress.com/2011/05/03/example-fullstack-jax-2011/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=161&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I will do the session <em>Go Fullstack &#8211; JPA und JSF effizient kombinieren</em> at the JAX 2011. For this session I developed a simple example to show the integration of JSF 2 and JPA 2 with dynamic search parameters, real paging and selection within the search result.</p>
<p>The example can be found on the JSFlive github: <a href="https://github.com/jsflive/mymail-jax2011" title="MyMail JAX 2011" target="_blank">MyMail JAX 2011@Github</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=161&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/05/03/example-fullstack-jax-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Examples on Github</title>
		<link>http://jsflive.wordpress.com/2011/03/28/examples-on-github/</link>
		<comments>http://jsflive.wordpress.com/2011/03/28/examples-on-github/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 18:05:11 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=156</guid>
		<description><![CDATA[Examples for JSFlive blog posts are now available for download via the JSFLive Github profile. I updated all previous posts with the related link.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=156&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Examples for JSFlive blog posts are now available for download via the <a href="https://github.com/jsflive" target="_blank">JSFLive Github profile</a>.</p>
<p>I updated all previous posts with the related link.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=156&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/03/28/examples-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a custom component library</title>
		<link>http://jsflive.wordpress.com/2011/03/24/custom-component-library/</link>
		<comments>http://jsflive.wordpress.com/2011/03/24/custom-component-library/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 13:37:18 +0000</pubDate>
		<dc:creator>michaelkurz</dc:creator>
				<category><![CDATA[Composite components]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jsflive.wordpress.com/?p=114</guid>
		<description><![CDATA[In my last post I showed you how to combine the composite component collapsiblePanel with a classic component to make it really self-contained and reusable. As a next step, it would be nice to have this component in a jar &#8230; <a href="http://jsflive.wordpress.com/2011/03/24/custom-component-library/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=114&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://jsflive.wordpress.com/2010/09/19/collapsiblepanel-revisited/">last post</a> I showed you how to combine the composite component <code>collapsiblePanel</code> with a classic component to make it really self-contained and reusable. As a next step, it would be nice to have this component in a jar file. In this post I will take reusability to the next level and show you how to build a custom component library with JSF 2.</p>
<p><span id="more-114"></span></p>
<p>Basically, all we have to do is put the artefacts of our component in a jar file. In our case this would be the folder of the resource library <code>jsflive</code> and the component class <code>CollapsiblePanel</code>.</p>
<p>First, we put class <code>CollapsiblePanel</code> into the jar file. As the component is registered with <code>@FacesComponent</code> no xml configuration is necessary. However, we still need an empty <code>faces-config.xml</code> in the jar. JSF only scans for annotations in jar files having a <code>faces-config.xml</code>. This file must be placed in the <code>META-INF</code> folder with the name <code>faces-config.xml</code> or a name ending with <code>.faces-config.xml</code>. The following listing shows the empty config file.</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;faces-config xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd&quot;
    version=&quot;2.0&quot;&gt;
&lt;/faces-config&gt;
</pre></p>
<p>Second, we move the resource library <code>jsflive</code> into the folder <code>/META-INF/resources</code> in the jar file. With this step finished, the composite component can already be used. Put the jar in the classpath of your application and declare a prefix for namespace <code>http://java.sun.com/jsf/composite/jsflive</code>. The following listing shows an example view.</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;
    xmlns:h=&quot;http://java.sun.com/jsf/html&quot;
    xmlns:jl=&quot;http://java.sun.com/jsf/composite/jsflive&quot;&gt;
&lt;h:head&gt;
  &lt;title&gt;JSFlive test page&lt;/title&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
  &lt;h:form id=&quot;form&quot;&gt;
    &lt;jl:collapsiblePanel id=&quot;panel&quot;&gt;
      &lt;f:facet name=&quot;header&quot;&gt;Header&lt;/f:facet&gt;
      &lt;h:outputText value=&quot;Just some text.&quot;/&gt;
    &lt;/jl:collapsiblePanel&gt;
  &lt;/h:form&gt;
&lt;/h:body&gt;
&lt;/html&gt;
</pre></p>
<p>As I talked about a custom component library in the beginning, our jar might one day be extended with classic components, converters or validators. For this case we need a taglib config file to define tags for those artefacts. With JSF 2 it is possible to import a composite component resource library into a taglib. All composite components in the library are then available under the namespace of the taglib.</p>
<p>For our example we simply  create a taglib config with a namespace and the element <code>composite-library-name</code> with the name of our resource library folder. The following listing shows the complete taglib configuration file.</p>
<p><pre class="brush: xml; auto-links: false;">
&lt;facelet-taglib version=&quot;2.0&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd&quot;&gt;
  &lt;namespace&gt;http://jsflive.at/taglib&lt;/namespace&gt;
  &lt;composite-library-name&gt;jsflive&lt;/composite-library-name&gt;
&lt;/facelet-taglib&gt;
</pre></p>
<p>JSF automatically loads taglib config files from jar files in the classpath on startup. All we have to do is give the file a name ending with <code>.taglib.xml</code> and place it in the <code>META-INF</code> folder.</p>
<p>With the above taglib config file we can change the namespace in the above example view to <code>http://jsflive.at/taglib</code>.</p>
<p>The following figure shows the structure of the jar file for our component library.</p>
<p><img class="alignnone size-full wp-image-120" title="component library: jar structure" src="http://jsflive.files.wordpress.com/2011/03/cc-taglib-jar-files.png?w=500"   /></p>
<p>Now that the jar file is finished you probably want to use the component library in your applications. All you have to do is put the jar file in the classpath and declare a prefix for the namespace.</p>
<p>The source code for the presented example can be found in the Github repository <a href="https://github.com/jsflive/collapsible03">collapsible03</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jsflive.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jsflive.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jsflive.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jsflive.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jsflive.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jsflive.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jsflive.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jsflive.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jsflive.wordpress.com&amp;blog=14802276&amp;post=114&amp;subd=jsflive&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jsflive.wordpress.com/2011/03/24/custom-component-library/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/11a9fd0666878ec6920e6274ba5ca213?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">michaelkurz</media:title>
		</media:content>

		<media:content url="http://jsflive.files.wordpress.com/2011/03/cc-taglib-jar-files.png" medium="image">
			<media:title type="html">component library: jar structure</media:title>
		</media:content>
	</item>
	</channel>
</rss>
