<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
  <title>Irian</title>
  <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/rss" />
  <subtitle>Irian</subtitle>
  <entry>
    <title>"CDI für Rich Clients" in Eclipse Magazin</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/cdi-fur-rich-clients-in-eclipse-magazin" />
    <author>
      <name>Jakob Korherr</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/cdi-fur-rich-clients-in-eclipse-magazin</id>
    <updated>2012-05-17T17:56:33Z</updated>
    <published>2012-05-17T17:47:56Z</published>
    <summary type="html">&lt;p&gt;
	The current issue (&lt;a href="http://it-republik.de/jaxenter/eclipse-magazin-ausgaben/-000503.html" target="_blank"&gt;4.2012&lt;/a&gt;) of the german Eclipse Magazin (&lt;a href="http://eclipse-magazin.de" target="_blank"&gt;http://eclipse-magazin.de&lt;/a&gt;) includes the article &amp;ldquo;CDI f&amp;uuml;r Richt Clients&amp;rdquo; from Jakob Korherr (Software Engineer at IRIAN).&lt;/p&gt;
&lt;p&gt;
	This article explains how it was possible to integrate Apache OpenWebBeans (CDI implementation from Apache) and Apache MyFaces CODI in an existing Eclipse RCP project and how the project benefited from it.&lt;/p&gt;
&lt;p&gt;
	Here is the original blog post from Jakob: &lt;a href="http://www.jakobk.com/2012/05/cdi-fuer-rich-clients-in-eclipse-magazin/"&gt;http://www.jakobk.com/2012/05/cdi-fuer-rich-clients-in-eclipse-magazin/&lt;/a&gt;&lt;/p&gt;</summary>
    <dc:creator>Jakob Korherr</dc:creator>
    <dc:date>2012-05-17T17:47:56Z</dc:date>
  </entry>
  <entry>
    <title>Irian@JAX 2012</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/irian-jax-2012" />
    <author>
      <name>Michael Kurz</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/irian-jax-2012</id>
    <updated>2012-04-19T10:06:50Z</updated>
    <published>2012-04-19T09:57:54Z</published>
    <summary type="html">&lt;p&gt;
	Irian will be at the &lt;a href="http://jax.de/2012/" target="_blank" title="JAX 2012"&gt;JAX 2012&lt;/a&gt; in Mainz. Michael Kurz will do the session &lt;a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=jax2012&amp;amp;id=20753" target="_blank" title="JSF 2 Kompositkomponenten im Einsatz (JAX 2012)"&gt;JSF 2 Kompositkomponenten im Einsatz&lt;/a&gt; on 19th April 2012.&lt;/p&gt;
&lt;p&gt;
	The &lt;a href="http://www.slideshare.net/michael_kurz/jsf2-compositecomponentsjax2012" target="_blank" title="Slides for JSF 2 Kompositkomponenten (JAX 2012)"&gt;slides&lt;/a&gt;&amp;nbsp;and &lt;a href="http://github.com/jsflive" name="JSFlive@GitHub" target="_blank"&gt;examples&lt;/a&gt; are available for download.&lt;/p&gt;</summary>
    <dc:creator>Michael Kurz</dc:creator>
    <dc:date>2012-04-19T09:57:54Z</dc:date>
  </entry>
  <entry>
    <title>Marrying JSF and Scala Part 3 - Custom Components in Scala</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/marrying-jsf-and-scala-part-3-custom-components-in-scala" />
    <author>
      <name>Werner Punz</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/marrying-jsf-and-scala-part-3-custom-components-in-scala</id>
    <updated>2012-02-29T09:57:30Z</updated>
    <published>2012-02-29T07:34:17Z</published>
    <summary type="html">&lt;p&gt;
	&lt;span style="font-size: x-large;"&gt;&amp;nbsp;Marrying JSF and Scala part 3: Custom Components in Scala&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style="font-size: large;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	While JSF2.0 has simplified the component building a lot thanks to the&lt;br /&gt;
	composite components, there are still usecases when the classical component&lt;br /&gt;
	building tasks have to be performed.&lt;br /&gt;
	&lt;br /&gt;
	We showed in &lt;a href="http://www.irian.at/de/blog/-/blogs/marrying-scala-with-apache-myfaces" target="_new"&gt;part 1&lt;/a&gt; and &lt;a href="http://www.irian.at/de/blog/-/blogs/marrying-scala-with-apache-myfaces-part-2" target="_new"&gt;part 2 &lt;/a&gt;how to build the basic JSF artifacts in Scala we now are going to dive deeper into JSF by showing how to leverage Scala to build your own jsf custom component.&lt;br /&gt;
	&lt;br /&gt;
	In this article we combine various techniques of Scala for programming custom components.&lt;br /&gt;
	The case we are going to investigate is a simple hello world component.&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style="font-size: large;"&gt;A custom component in Scala&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	First we have a look at the component itself:&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px"&gt;
&lt;script src="https://gist.github.com/1938944.js?file=component.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&lt;span style="font-size: x-small;"&gt;Code a) Custom component&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	We have a simple component which exposes one additional attribute sayHello2. The component itself is a composite component with an xml template for rendering an performs some listener tasks.&lt;br /&gt;
	&lt;br /&gt;
	So far so good, however we use several things here which are of interest:&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1938969.js?file=gistfile1.txt"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&lt;span style="font-size: x-small;"&gt;Code b) Singleton &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		A singleton object for static replacements and struct replacements&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="width:600px; overflow-x:auto"&gt;
&lt;script src="https://gist.github.com/1938983.js?file=listenersfor.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&lt;span style="font-size: x-small;"&gt;Code c) Listeners Array &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		A listeners array for combining multiple listeners&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="width:600px; overflow-x:auto"&gt;
&lt;script src="https://gist.github.com/1939014.js?file=trait.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&lt;span style="font-size: x-small;"&gt;Code d) trait&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		a &lt;strong&gt;trait&lt;/strong&gt; instead of a &lt;strong&gt;utils&lt;/strong&gt; &lt;strong&gt;class&lt;/strong&gt; to combine common functionality of components&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;div style="width: 600px; overflow-x:auto"&gt;
&lt;script src="https://gist.github.com/1939006.js?file=match.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&lt;span style="font-size: x-small;"&gt;Code e) Type matches&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		matches for types to avoid instanceof cascades&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	Lets dissect the code parts one by one:&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;b&gt;1) Object HelloWorld&lt;/b&gt;&lt;br /&gt;
	&lt;br /&gt;
	Scala does have neither static variables nor structs, instead of that it provides singletons as language construct.&lt;br /&gt;
	Static variables simply can be simulated by a singleton and a simple in class import:&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1938969.js?file=gistfile1.txt"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&lt;span style="font-size: x-small;"&gt;Code b) Singleton&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;and then&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939021.js?file=import.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code f) import&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	Allows you to import the instance variables and methods as semi native members.&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939041.js?file=logger.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code g) import usage&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;b&gt;2) Annotation Arrays&lt;/b&gt;&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939066.js?file=listeners.java"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code h) annotation array Scala&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	is simply what would be in Java&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939066.js?file=listeners.java"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code i) annotation array Java&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	Since this code transition is not quite obvious even within the Scala documentation, it is worth to be noted in this blog.&lt;br /&gt;
	&lt;br /&gt;
	&lt;b&gt;3) Traits&lt;/b&gt;&lt;br /&gt;
	&lt;br /&gt;
	The most interesting part is the traits part.&lt;br /&gt;
	First of all, what is a trait? To sum it up, a trait is an abstract class which can be multiply inherited sort of an interface with code. Now this opens quite a few possibilities:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		Common constraints can be isolated and shared among object instances without having to revert to singletons.&lt;/li&gt;
	&lt;li&gt;
		Traits can access &amp;quot;&lt;strong&gt;this&lt;/strong&gt;&amp;quot; and can call methods provided by the class as abstract members.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	&lt;br /&gt;
	We reuse traits in this case to isolate common component behavior without having to introduce yet another helper class or an abstract base class.&lt;/p&gt;
&lt;p&gt;
	In fact we finally can share this referencing code among components with different base classes without&amp;nbsp;having to introduce our own inheritance hierarchy.&lt;br /&gt;
	&lt;br /&gt;
	The trait looks like following:&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939084.js?file=trait.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code j) Trait&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style="font-size: small;"&gt;We use only a subset of this functionality namely &lt;b&gt;getAttr&lt;/b&gt; and &lt;b&gt;setAttr&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939093.js?file=getAttr.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code k) getAttr&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	Here we can see clearly the this reference to the underlying component getAttributes&amp;nbsp;with&lt;/p&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;
&lt;span style="color: green; font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="line-height: 125%; margin: 0pt;"&gt;
&lt;span style="color: green; font-weight: bold;"&gt;def&lt;/span&gt; getAttributes&lt;span style="color: #303030;"&gt;()&lt;/span&gt;&lt;span style="color: green; font-weight: bold;"&gt;:&lt;/span&gt; &lt;span style="color: #303090; font-weight: bold;"&gt;java.util.Map&lt;/span&gt;&lt;span style="color: #303030;"&gt;[&lt;/span&gt;&lt;span style="color: #303090; font-weight: bold;"&gt;String&lt;/span&gt;, &lt;span style="color: #303090; font-weight: bold;"&gt;AnyRef&lt;/span&gt;&lt;span style="color: #303030;"&gt;]&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="line-height: 125%; margin: 0pt;"&gt;
&lt;span style="color: #303030;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
	being defined only as interface, which has to be implemented by the component or one of its parents.&lt;br /&gt;
	&lt;br /&gt;
	&lt;b&gt;4) Match patterns&lt;/b&gt;&lt;br /&gt;
	&lt;br /&gt;
	Now an interesting language part in Scala is the extended matches. Not only you can match in Scala for values, also matches for types and patterns are allowed.&lt;br /&gt;
	We use the type matches to avoid instanceof if cascades:&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939097.js?file=match.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code l) match patterns&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style="font-size: small;"&gt;The cases basically replace &lt;b&gt;if instanceof&lt;/b&gt; constructs here&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style="font-size: large;"&gt;&amp;nbsp;A renderer in Scala&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style="font-size: small;"&gt;Now what if we want to write the renderer in Scala.&lt;br /&gt;
	Scala there can support us as well, it has XML support in the language baked in.&lt;br /&gt;
	Now lets have a look at the renderer (if not done in an xhtml template like it should be)&lt;/span&gt;&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto"&gt;
&lt;script src="https://gist.github.com/1939106.js?file=renderer.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code m) renderer&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	Now the interesting part of this renderer is following code:&lt;/p&gt;
&lt;div style="width: 600px; overflow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1939132.js?file=response.scala"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;span style="font-size: x-small;"&gt;Code m) render part&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	As we can see, we simply write the html directly constructs like &amp;nbsp;&amp;nbsp;&amp;nbsp; id={id} and {text} allow for inline templating.&lt;br /&gt;
	&lt;br /&gt;
	There are constraints to this approach&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		We cannot write out partial xml. The xml written always must be complete, hence we cannot simply write an open tag first, call a subclass and then close the tag&lt;/li&gt;
	&lt;li&gt;
		We do not use the startElement, endElement. The plus side is readability.&amp;nbsp;&lt;/li&gt;
	&lt;li&gt;
		In the end a composite component and its direct xhtml rendering should always be the first choice. Xhtml simply is the target platform in most cases why not use xhtml also for the component renderer part.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	&lt;br /&gt;
	&lt;span style="font-size: large;"&gt;References&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
		&lt;a href="http://www.irian.at/de/blog/-/blogs/marrying-scala-with-apache-myfaces" target="_new"&gt;Marrying JSF and Scala Part1&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;a href="http://www.irian.at/de/blog/-/blogs/marrying-scala-with-apache-myfaces-part-2" target="_new"&gt;Marrying JSF and Scala Part2&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;a href="http://jsfatwork.irian.at/book_de/introduction.html#%21idx:/custom_component.html:5" target="_new"&gt;Custom Components in JSF (German) &lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;a href="http://www.scala-lang.org/node/197" target="_new"&gt;Scala Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
    <dc:creator>Werner Punz</dc:creator>
    <dc:date>2012-02-29T07:34:17Z</dc:date>
  </entry>
  <entry>
    <title>JSF Ajax and Multiple Forms</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/jsf-ajax-and-multiple-forms" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/jsf-ajax-and-multiple-forms</id>
    <updated>2011-11-26T16:26:23Z</updated>
    <published>2011-11-25T13:12:47Z</published>
    <summary type="html">&lt;p&gt;
	This blog post is about a problem which about 80% of all user problems regarding JSF Ajax in the MyFaces mailinglist revolve around. Namely how do I handle the JSF Ajax in a multiple form scenario.&lt;/p&gt;
&lt;p&gt;
	JSF Ajax and multiple forms, a standard case, which should be easy right?&lt;/p&gt;
&lt;p&gt;
	Let&amp;#39;s have a small look at an example:&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1393406.js?file=multiform.xhtml"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	As we see here, two forms each updating a component in itself via Ajax.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Now what happens if we submit the forms alternating. After a while we run into a &lt;strong&gt;ViewRoot cannot be found Exception&lt;/strong&gt; on the server side.&lt;/p&gt;
&lt;p&gt;
	We did everything right, why do we face this issue?&lt;/p&gt;
&lt;p&gt;
	The answer lies in a bug in the JSF Ajax protocol, more precisely the way the ViewState is processed. Lets have a look at an Ajax response:&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1393419.js?file=response.xml"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	Here we see the root cause of the problem. There is a parameter defining the ViewState with the identifier javax.faces.ViewState, however it is not clear where it belongs to.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Practically a ViewState must be attached to a form. So the issuing form definitely must receive it. However what about the other forms? And here is the root cause of the error. Only the issuing form is updated and the ViewState which is dependend on the viewroot not the form in the second form is not updated. This image shows exactly what happens:&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
	&lt;a href="http://2.bp.blogspot.com/-OIx_jgoPa-s/Ts-Ogtq6vhI/AAAAAAAABaU/8kd6GggjOAo/s1600/ViewStateSingleRequest.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-OIx_jgoPa-s/Ts-Ogtq6vhI/AAAAAAAABaU/8kd6GggjOAo/s1600/ViewStateSingleRequest.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
	As you can see only one form is update the second form now has a ViewState which is not the current one and at one point is dropped from the ViewState history, a classical concurrency issue.&lt;/p&gt;
&lt;p&gt;
	&lt;b&gt;So the solution would be to update all forms in the html document, right?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
	Theoretically yes, but there is one API which prevents this simple solution: &lt;strong&gt;Portlets&lt;/strong&gt;, in a portlet environment you have multiple ViewRoots all belonging to different JSF session instances on the server&lt;b&gt;.&lt;/b&gt; &lt;b&gt; &lt;/b&gt; &lt;b&gt;The next logic solution would be to update all JSF elements under ViewRoot.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
	Again, a good idea, but the protocol prevents it. On the pure client side we do not have any marker or indicator, which tells the Ajax code where the current ViewRoot begins. To ease this protocol problem an extension to the JSF spec was added under 2.1 which eases this problem. According to the spec you have to add the second form manually as render target. Something which both implementations follow.&lt;/p&gt;
&lt;p&gt;
	Here is a snippet which shows the solution:&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1393466.js?file=multiform2.xhtml"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Here we can see, we have added the second form as render target. Now both forms will be updated and the ViewState always will be up to date. This solution while being spec compliant is not satisfactory.&lt;/p&gt;
&lt;p&gt;
	Sometimes, you dont know if a certain form is still present after the Ajax case. Is there still a way to update all forms in the page or at least to take the form id out of the equation? Unfortunately not within the bounds of the specification.&lt;/p&gt;
&lt;p&gt;
	However, being aware of this issue, I have added in Apache MyFaces additionally to the spec behavior two other ways to resolve the issue. First, you don&amp;#39;t have to define the form as render target, but you can define any element within a form as render target and the form will be updated.&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1393481.js?file=rendertargets.xhtml"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	Secondly, the probably best solution.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	A configuration parameter which forces MyFaces to update all forms in a page. With following code snippet you can enable this mechanism:&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1393476.js?file=noportlet.js"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Once you have added this snippet of Javascript, MyFaces will be in &lt;strong&gt;no portlet mode&lt;/strong&gt; and will enforce an update all forms with the ViewStates policy.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Note: While this method wont break the code if you switch to Mojarra, you will not get the benefits, because Mojarra does not yet have a similar solution to the issue.&lt;/strong&gt;&lt;/p&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-25T13:12:47Z</dc:date>
  </entry>
  <entry>
    <title>JSF Ajax and Encoding</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/jsf-ajax-and-encoding" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/jsf-ajax-and-encoding</id>
    <updated>2011-11-26T16:28:04Z</updated>
    <published>2011-11-24T11:15:06Z</published>
    <summary type="html">&lt;p&gt;
	The entire story started when we got the request to encode everything in ISO-8859-1, including the Ajax cycle. Well first I thought it was easy just change the encoding on the Javascript side, let the server handle the rest.&lt;/p&gt;
&lt;p&gt;
	The encoding was easily detectable on the Javascript side simply by checking the xhtmls encoding (the meta tag head encoding itself would have been another option, but since we are nailed down to xhtml anyway due to facelets we have an easier way)&lt;/p&gt;
&lt;p&gt;
	Easy, I thought, but then I ran into browser hell. The problem normally would be easily resolvable.&lt;/p&gt;
&lt;p&gt;
	The XHR object has the option of adding&lt;/p&gt;
&lt;p&gt;
	xhr header content type:&lt;/p&gt;
&lt;p&gt;
	&lt;i&gt;xhr.setRequestHeader(&amp;quot;ContentType&amp;quot;, &amp;quot;application/x-www-form-urlencoded; charset=ISO-8859-15&amp;quot;);&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;
	The problem now are the browsers themselves. By testing the dynamic encoding on various browsers following came out:&lt;/p&gt;
&lt;table&gt;
	&lt;thead style="background-color: #e6e6e6;"&gt;
		&lt;tr&gt;
			&lt;td&gt;
				&lt;b&gt;&lt;i&gt;Browser&lt;/i&gt;&lt;/b&gt;&lt;/td&gt;
			&lt;td&gt;
				&lt;b&gt;&lt;i&gt;Actual Encoding&lt;/i&gt;&lt;/b&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;
				&lt;i&gt;Mozilla 7&lt;/i&gt;&lt;/td&gt;
			&lt;td&gt;
				&lt;i&gt;UTF-8&lt;/i&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;
				&lt;i&gt;Chrome &lt;/i&gt;&lt;/td&gt;
			&lt;td&gt;
				&lt;i&gt;UTF-8&lt;/i&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;
				&lt;i&gt;IE &lt;/i&gt;&lt;/td&gt;
			&lt;td&gt;
				&lt;i&gt;ISO-8859-15&lt;/i&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;
				&lt;i&gt;Opera &lt;/i&gt;&lt;/td&gt;
			&lt;td&gt;
				&lt;i&gt;ISO-8859-15&lt;/i&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
	So what does this mean, only Opera and IE got it right.&lt;/p&gt;
&lt;p&gt;
	Which means the path of allowing non UTF-8 submits is blocked for now. However JSF automatically deals with the problem properly. While I implemented the most of the Ajax part of MyFaces, I have to admit the actual encoding part was provided by another project, namely j4fry and its implementors worked on that part, so I never gave a second thought.&lt;/p&gt;
&lt;p&gt;
	However both implementations deal the same way with the issue. First Ajax submits are UTF-8 encoded, this at the first look could pose problems with non UTF pages.&lt;/p&gt;
&lt;p&gt;
	It turns out there are none. The solution both implementations follow is to encode the actual key value pair parameters into a utf url encoded representation. Both implementations seem to apply the encodeURIComponent function of Javascript, no matter what content type the page has, always a proper utf-8 representation of the original content will be passed down.&lt;/p&gt;
&lt;p&gt;
	Given the response type also then is UTF-8 what happens with the response. After all the page needs to handle the response properly in its own encoding.&lt;/p&gt;
&lt;p&gt;
	Well there MyFaces and Mojarra differ slightly. Both in compliance with the specification, encode the response in a XML CDATA block. However MyFaces does additional escaping of non ascii chars with their unicode representation, while Mojarra simply pushes the content byte per byte into the CDATA block.&lt;/p&gt;
&lt;p&gt;
	Here is an example:&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
	Mojarra: &lt;script src="https://gist.github.com/1390972.js?file=Mojarra_response.xml"&gt;
&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Here it is clearly visible that the cdata block has a different encoding than the outer UTF-8 encoded xml. In the final page representation all the special chars are visible again as they should be. However MyFaces goes one step further and escapes the content additionally to get rid of the non utf-8 representation of the characters.&lt;/p&gt;
&lt;div style="width: 600px; overvlow-x: auto;"&gt;
&lt;script src="https://gist.github.com/1390987.js?file=MyFaces_response.xml"&gt;
	&lt;/div&gt;
&lt;/script&gt;	However this comes from the fact that MyFaces basically also does an escape of special chars at a full page refresh, so the core behavior regarding the partial response is the same. So what happens for instance if you just tamper with the UTF header.
	&lt;p&gt;
		&amp;nbsp;&lt;/p&gt;
	&lt;p&gt;
		You automatically will run into problems due to the uri encoded UTF-8 representation of the parameters. In the worst case you will trigger a server error because of non decodable parameters, in the best case if you pass down ascii only chars you will get it through, in the normal case you will get junk in which is wrongly decoded.&lt;/p&gt;
	&lt;p&gt;
		See here an example on IE9 and Mojarra:&lt;/p&gt;
	&lt;p&gt;
		&lt;a href="http://1.bp.blogspot.com/-_G6Iia1KQGw/Ts4cyvfWN_I/AAAAAAAABaI/SSyGFLq1Sms/s1600/Before_After.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-_G6Iia1KQGw/Ts4cyvfWN_I/AAAAAAAABaI/SSyGFLq1Sms/s1600/Before_After.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
		The question remains, are both save from a client point of view?&lt;/p&gt;
	&lt;p&gt;
		Theoretically it should be since everything is embedded in a CDATA block. However I cannot say if the browsers swallow really everything within their browser engines which is embedded in a CDATA block (aka every byte combination outside of their encoding).&lt;/p&gt;
	&lt;p&gt;
		&lt;b&gt;It comes down again to the golden rule #1 in web programming, use UFT-8 and never bother with other encodings, if you can.&lt;/b&gt;&lt;/p&gt;
&lt;/div&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-24T11:15:06Z</dc:date>
  </entry>
  <entry>
    <title>Slides and examples for W-JAX 2011</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/slides-and-examples-for-w-jax-2011" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/slides-and-examples-for-w-jax-2011</id>
    <updated>2011-11-24T11:18:53Z</updated>
    <published>2011-11-22T07:54:06Z</published>
    <summary type="html">&lt;p&gt;
	The slides (in german) and examples for both Irian W-JAX 2011 sessions are available.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		Go Fullstack: Webanwendungen mit Java EE 6 bauen (&lt;a href="http://www.slideshare.net/michael_kurz/fullstack-codiwjax2011" target="_blank" title="Slides for Go Fullstack session"&gt;Slides&lt;/a&gt;|&lt;a href="https://github.com/jsflive/mygourmet-ee" target="_blank" title="Example MyGourmet EE"&gt;Examples&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;
		JSF and JPA effizient kombinieren (&lt;a href="http://www.slideshare.net/michael_kurz/jsf-und-jpa-effizient-kombinieren-wjax-2011" target="_blank" title="Slides for JSF und JPA session"&gt;Slides&lt;/a&gt;|&lt;a href="https://github.com/jsflive/mymail-owb" target="_blank" title="MyMail OWB"&gt;Examples&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-22T07:54:06Z</dc:date>
  </entry>
  <entry>
    <title>Irian@W-JAX 2011</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/irian-w-jax-2011" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/irian-w-jax-2011</id>
    <updated>2011-11-09T10:30:31Z</updated>
    <published>2011-11-07T08:32:36Z</published>
    <summary type="html">&lt;p&gt;
	Irian will be at the &lt;a href="http://jax.de" target="_blank" title="W-JAX 2011"&gt;W-JAX 2011&lt;/a&gt; in Munich. Michael Kurz will do two sessions: &lt;a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=wjax2011&amp;amp;id=19822" target="_blank" title="Go Fullstack: Webanwendungen mit Java EE 6 bauen"&gt;Go Fullstack: Webanwendungen mit Java EE 6 bauen&lt;/a&gt;&amp;nbsp;on 8th November 2011 and &lt;a href="http://entwickler.com/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=wjax2011&amp;amp;id=19555" target="_blank" title="JSF und JPA effizient kombinieren"&gt;JSF and JPA effizient kombinieren&lt;/a&gt; on 9th November 2011.&lt;/p&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-07T08:32:36Z</dc:date>
  </entry>
  <entry>
    <title>Introducing Apache MyFaces Modular Includes</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/introducing-apache-myfaces-modular-includes" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/introducing-apache-myfaces-modular-includes</id>
    <updated>2011-11-08T17:57:53Z</updated>
    <published>2011-11-08T16:48:49Z</published>
    <summary type="html">&lt;p&gt;
	&lt;span style="font-size: large;"&gt;Introduction:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	Why modular jsf.js includes, there is one &lt;i&gt;jsf.js&lt;/i&gt; file, right?&lt;/p&gt;
&lt;p&gt;
	Since the beginning of the introduction of &lt;i&gt;jsf.js&lt;/i&gt; in JSF there has been only one &lt;i&gt;jsf.js&lt;/i&gt; file which serves all &lt;i&gt;Ajax&lt;/i&gt; needs. However, at least for &lt;i&gt;Apache MyFaces&lt;/i&gt; there have been a lot of extensions added such as:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;b&gt;iframe ajax fileupload&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;html5 form detection&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;client side i18n message support for various languages (including chinese)&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;legacy browser support down to blackberry 4.7 and winmobile 6.5 and ie6&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;browser optimisations for browsers supporting dom level3&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;queue control for the ajax request queue&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;timeout handling&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;better error handling&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;delay handling&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;modular structure which can be changed at runtime to replace it with your own&amp;nbsp; implementation of subparts&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;clear distinction between api and impl on codelevel&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	(More info on many of those extended features see following &lt;a href="http://werpublogs.blogspot.com/2011/07/apache-myfaces-jsfjs-queue-control.html"&gt;Link&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;
	Most of those extensions will make it one way or the other into the official &lt;i&gt;jsf&lt;/i&gt; spec. However different scenarii have different needs.&lt;/p&gt;
&lt;p&gt;
	While most legacy mobile browsers are now slowly phased out (and is seen as deprecated) ie6 for the time being is still supported with a burden of legacy code. However in a pure modern mobile environment for instance you need smaller files and no legacy code at all.&lt;/p&gt;
&lt;p&gt;
	Many users are also perfectly happy with a pure implementation of &lt;i&gt;jsf.js&lt;/i&gt; according to the spec without any extra features. Other users only need a subset of those features and want to leave out the other (i18n support for instance)&lt;/p&gt;
&lt;p&gt;
	The advantage of dropping code is smaller filesizes, faster code due to less lines which have to be processed, and less fallbacks which have to be prechecked.&lt;/p&gt;
&lt;p&gt;
	Reducing code according to the usecase scenario is something worthwhile to explore, given modern mobile browser environments and situations, where you simply want to be as lean as possible.&lt;/p&gt;
&lt;p&gt;
	So what is the solution for all this?&lt;/p&gt;
&lt;p&gt;
	&lt;span style="font-size: large;"&gt;The MyFaces jsf.js Modular Includes&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	As of &lt;i&gt;MyFaces&lt;/i&gt; &lt;i&gt;2.1.4&lt;/i&gt; a modular include system will be added. Simply by adding following parameter to your web.xml you will be able to determine what will be included &lt;script src="https://gist.github.com/1347917.js?file=include_param.xml"&gt;
&lt;/script&gt;With the parameter &lt;b&gt;org.apache.myfaces.JSF_JS_MODE&lt;/b&gt; and the allowed values of&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;b&gt;normal&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;modern&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;b&gt;minimal-modern&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	you will be able to adjust which version of jsf.js is included. If you need extra functionality, you can include the subparts excluded from your version as separate Javascript resources via normal jsf mechanisms. Following image shows the version of each file and the extra functionality:&lt;/p&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td style="text-align: center;"&gt;
				&lt;a href="http://1.bp.blogspot.com/-zB_qMgvL7Ks/TrlInFmpnNI/AAAAAAAABZ0/jzDgNoJUnhw/s1600/modular-builds.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-zB_qMgvL7Ks/TrlInFmpnNI/AAAAAAAABZ0/jzDgNoJUnhw/s400/modular-builds.jpg" width="335" /&gt;&lt;/a&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td class="tr-caption" style="text-align: center;"&gt;
				Modular include parts&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
	As you you can see you can stack and mix all the modules you need by simply choosing a base jsf.js and then you are able to stack the extra functionality needed by adding a separate include. That way you have the choice between filesize, number of includes and features according to your needs.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&lt;span style="font-size: large;"&gt;Example on how to Enable the Modular Includes with Additional Features&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	The following example will include the minimal-modern jsf.js and will stack all the extra functionality on top of it. &lt;b&gt;web.xml&lt;/b&gt; &lt;script src="https://gist.github.com/1348030.js?file=web.xml"&gt;
&lt;/script&gt;&lt;b&gt;in your page template&lt;/b&gt; &lt;script src="https://gist.github.com/1348038.js?file=includes.xhtml"&gt;
&lt;/script&gt;As you can see all you need to to is to reference the correct js file additionally which is hosted under the resource module myfaces and you are ready to go.&lt;/p&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-08T16:48:49Z</dc:date>
  </entry>
  <entry>
    <title>Apache MyFaces Queue Control</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/apache-myfaces-queue-control" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/apache-myfaces-queue-control</id>
    <updated>2011-11-08T16:44:19Z</updated>
    <published>2011-11-08T16:44:02Z</published>
    <summary type="html">&lt;h2&gt;
Introduction&lt;/h2&gt;
As some people might have noticed the Apache MyFaces javascripts are bigger than Mojarras. There is a reason for it, besides our internal structures completely different we have a set of extensions which yet have to make it into the official spec (all of it has been donated to the EG)

I already wrote about the fileupload via ajax, and again, I have to warn, if you use that stuff you are bound to MyFaces.

But nevertheless, partial page submit and queue control are two important features which have been enabled since 2.0.1: 

&lt;h2&gt;
Queue Control, what is it?&lt;/h2&gt;
The official spec enforces following behavior: if you submit an Ajax post it is either sent directly if no other submit is running or enqueued until the running ajax submit has terminated and then the submit is issued. 

&lt;h3&gt;
Now this causes following problems&lt;/h3&gt;


&lt;li&gt;The typical fast typing Ajax input.&lt;/li&gt;



Here typing happens on the fly and a load of submits are issued, they are either queued or simply sent to the server causing constant loads. 


&lt;li&gt;The long running Request&lt;/li&gt;



Here a request hangs for a longer period of time, filling the client queue.

For those two szenarios we introduced (thanks to the j4fryguys Ganesh and Alax who donated the code), advanced queue control.

Here is the deal on how to use it (and again the obligatory you bind yourself to myfaces warning)

First a short introduction to our configuration system: We are very modular all layers are bound late via configuration and also vital parts of the system can be replaced without digging into the code internals that way, this configuration system also can be used to override certain default behavior.
Now there are to ways to override the configuration, you can do it globally under the myfaces.config namespace or locally by pushing another additional set of parameters in the options map under myfaces (example below)

An example for a global configuration for instance is:
&lt;script src="https://gist.github.com/1069101.js?file=gistfile1.js"&gt;
&lt;/script&gt;

an example for a local configuration override for a single request is: 
&lt;script src="https://gist.github.com/1069104.js?file=gistfile1.js"&gt;
&lt;/script&gt;

Now we have following possibilities in our codebase:


&lt;li&gt;&lt;b&gt;timeout&lt;/b&gt;: describes a value of miliseconds upon the current request should be terminated for good and the next one be issued&lt;/li&gt;




&lt;li&gt;&lt;b&gt;delay&lt;/b&gt;: describes a delay period where the system waits for the next input before issuing the submitted. If an input is sent before the delay period is over the old request is canceled upfront and the new one is enqueued delayed.&lt;/li&gt;




&lt;li&gt;&lt;b&gt;queuesize&lt;/b&gt;: This limits the queue size of the request queue to the specified number of elements, if the queue is bigger than what is provided older elements are dropped until the queue size is fulfilled. If issued locally the reduction is only done temporarily.&lt;/li&gt;




For a typical ajax scenario following might be a viable approach: 
&lt;script src="https://gist.github.com/1069106.js?file=gistfile1.html"&gt;
&lt;/script&gt;

&lt;h2&gt;
Second Part, PPS&lt;/h2&gt;

This solves following scenario, per spec definition the entire form passed down must be submitted at each Ajax scenario. Often this is unnecessary, especially if you only execute parts of the subtree. Unnecessary data is passed down and if you have something like a textfield in the form then it is even heavy on the server.

There pps helps. With pps you will just pass what is needed to be executed, you also can put the execute on a parent node and it determines which childs have to be passed down the execution chain and it only submits the parameters it really needs to pass down.

&lt;i&gt;(note this does not work in the ajax fileupload case)&lt;/i&gt;

Here is an example on how to use it:
&lt;script src="https://gist.github.com/1069114.js?file=gistfile1.html"&gt;
&lt;/script&gt; 

again this also can be set globally via
&lt;b&gt;myfaces.config.pps = true &lt;/b&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-08T16:44:02Z</dc:date>
  </entry>
  <entry>
    <title>Marrying Scala with Apache MyFaces Part 2</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/marrying-scala-with-apache-myfaces-part-2" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/marrying-scala-with-apache-myfaces-part-2</id>
    <updated>2011-11-08T16:42:07Z</updated>
    <published>2011-11-08T16:41:44Z</published>
    <summary type="html">&lt;h2&gt;
View Controllers and Navigation &lt;/h2&gt;
While &lt;a href="http://werpublogs.blogspot.com/2011/07/marrying-jsf-with-scala-part1.html"&gt;part1&lt;/a&gt; showed us how we can do managed beans in &lt;i&gt;Javascript&lt;/i&gt;, we now will go a little bit deeper. In this part we will talk about view controllers and navigation implemented in &lt;i&gt;Scala&lt;/i&gt;.

&lt;h3&gt;
Short Introduction to ViewControllers&lt;/h3&gt;
While &lt;i&gt;JSF&lt;/i&gt; does not know the ViewController pattern, for JSF is everything a managed bean, it makes sense to name a certain set of managed beans ViewControllers.
Per definition in &lt;i&gt;JSF&lt;/i&gt; a &lt;i&gt;ViewController&lt;/i&gt; is a managed bean, which deals directly with the user interface interaction from the backend.

Such interactions are
&lt;ul&gt;
&lt;li&gt;Actions&lt;/li&gt;
&lt;li&gt;Events&lt;/li&gt;
&lt;li&gt;Listeners
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
A typical plain Java Viewcontroller&lt;/h3&gt;
So a typical Java ViewController in a plain &lt;i&gt;JSF&lt;/i&gt; environment looks like following.
&lt;script src="https://gist.github.com/1082171.js?file=TestViewController.java"&gt;
&lt;/script&gt;  Everyone who has programmed &lt;i&gt;JSF&lt;/i&gt; is familiar with those patterns.

&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Sidenote: there are frameworks which add  dedicated view controllers with dedicated callbacks for postCreate, preRender&lt;/i&gt;&lt;/span&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;      
&lt;h3&gt;
ViewController in &lt;i&gt;Scala&lt;/i&gt;&lt;/h3&gt;
The question now is, how does this look in &lt;i&gt;Scala&lt;/i&gt;. &lt;script src="https://gist.github.com/1082181.js?file=TestViewController.scala"&gt;
&lt;/script&gt;  Again, this code is somewhat smaller thanks to the absence of setters and getters. However the structure of this class is not 1:1 translatable to Java due to following new construct: &lt;script src="https://gist.github.com/1082186.js?file=ViewControllerSingleton.scala"&gt;
&lt;/script&gt;  &lt;b&gt;&amp;nbsp;&lt;/b&gt;
&lt;b&gt;So what is this &lt;i&gt;object&lt;/i&gt; all about?&lt;/b&gt;
Scala does neither know static classes nor variables, instead it has singletons in its language core as companion pattern to classes.  If a construct is defined via &lt;i&gt;object&lt;/i&gt; instead of &lt;i&gt;class&lt;/i&gt;, then the resulting object is a singleton.  To make the code tighter, &lt;i&gt;Scala&lt;/i&gt; also allows imports everywhere. Members of singletons can be imported simply by import &lt;b&gt;&amp;lt;Singleton&amp;gt;._&lt;/b&gt; so that we can call them directly in our code.
If you notice in our action callbacks we return the members of the singleton directly, like we would do it with static variables in &lt;i&gt;Java&lt;/i&gt;.


&lt;h3&gt;
&lt;i&gt;&lt;a href="http://myfaces.apache.org/extensions/cdi/index.html"&gt;MyFaces Codi&lt;/a&gt; &lt;/i&gt;Typesave Navigation&lt;/h3&gt;
&lt;i&gt;&lt;a href="http://myfaces.apache.org/extensions/cdi/index.html"&gt;MyFaces Codi&lt;/a&gt;&lt;/i&gt; has an interesting feature, the so called typesave implicit navigation.

While &lt;i&gt;JSF2&lt;/i&gt; already eased the lives of developers by introducing an implicit navigation (aka return value of an action == page name if no navigation rule is given), &lt;i&gt;MyFaces Codi&lt;/i&gt; goes one step further.
It maps pages to classes (page name must be the class name) and it allows the grouping of navigation elements in wrapper classes (follow this &lt;a href="https://cwiki.apache.org/confluence/display/EXTCDI/Documentation"&gt;link&lt;/a&gt; for further reference).

While in my personal opinion, the class based navigation alone, it really shines once you add advanced codi features to it like the security handling or the View Controller extensions.
&lt;i&gt;(For more Information please consult the &lt;a href="http://myfaces.apache.org/extensions/cdi/index.html"&gt;MyFaces Codi documentation&lt;/a&gt;)&amp;nbsp;&lt;/i&gt;

Here is a small example:   &lt;script src="https://gist.github.com/1082215.js?file=gistfile1.txt"&gt;
&lt;/script&gt;   This is a very basic example of two navigation cases     
&lt;ul&gt;
&lt;li&gt; the first one points to /Wizard/Page1 &lt;/li&gt;
&lt;li&gt; the second one points to /Wizard/Page2 &lt;/li&gt;
&lt;/ul&gt;
However to map this to scala we face a set of problems   
&lt;ol&gt;
&lt;li&gt;We don't have interfaces, we have mixins, but they do not map straight to the structures we need &lt;/li&gt;
&lt;li&gt;the interface classes are the same problem as the interfaces &lt;/li&gt;
&lt;/ol&gt;
So we have to find structures which Codi can follow but are buildable in Scala.  Here we have the same example in Scala: &lt;script src="https://gist.github.com/1082219.js?file=Wizard.scala"&gt;
&lt;/script&gt;  Again we are able to map everything into singletons so we work with a set of objects instead of interfaces and interface classes.</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-08T16:41:44Z</dc:date>
  </entry>
  <entry>
    <title>Marrying Scala with Apache MyFaces</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/marrying-scala-with-apache-myfaces" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/marrying-scala-with-apache-myfaces</id>
    <updated>2011-11-08T16:39:30Z</updated>
    <published>2011-11-08T16:38:07Z</published>
    <summary type="html">&lt;p&gt;
	&amp;nbsp;This is the first part of a mulitpart blogpost on how to marry JSF with Scala.&lt;/p&gt;
&lt;h2&gt;
	Why Scala? Java is fine&lt;/h2&gt;
&lt;p&gt;
	My personal opinion is, having done programs in many languages, that Scala is a huge step up from Java complexity-wise and many things are corner case fillers which probably could have been left out with a more lenient approach. Nevertheless Scala has lots of merits as well. The code reduction compared to Java on the average is 30-50% less thanks to better property handling and other things like closures. The speed if touched right is about the same as Java (one of the complaints about groovy). However, if you want to apply Scala you seriously have to touch it the way you would touch C++, make up your mind on what part of the language you really use and only touch others in rare cases. But lets stop the criticism here. Scala has lots of merits especially for JSF:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		Absence of setters and getters&lt;/li&gt;
	&lt;li&gt;
		Tight integration with Java&lt;/li&gt;
	&lt;li&gt;
		Isolation of common constraints via Mixins instead of base classes&lt;/li&gt;
	&lt;li&gt;
		Same or almost the same performance as java&lt;/li&gt;
	&lt;li&gt;
		Closures for things like iteration&lt;/li&gt;
	&lt;li&gt;
		etc...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	So lets dig into JSF and Scala&lt;/p&gt;
&lt;h2&gt;
	Part 1, Managed Beans&lt;/h2&gt;
&lt;p&gt;
	The possible easiest entry into combining Scala and JSF is to create a managed bean. Every managed bean in JSF is a pojo with a handful of setters and getters. (and more depending on your functionality) It probably is the easiest artifact within the JSF stack you can get. Let us have a look at a simple Java managed bean: &lt;script src="https://gist.github.com/1071307.js?file=gistfile1.java"&gt;
&lt;/script&gt;The same now would be coded in Scala &lt;script src="https://gist.github.com/1071316.js?file=TestBean.scala"&gt;
&lt;/script&gt;&lt;i&gt;Note for the people who are familiar with Scala, we took two assumptions here, first we are using for familiarity reasons the Java mutable LinkedList and secondly we use BeanProperties (we could resolve that with our own el resolver as well) &lt;/i&gt; This is tightlier written, but what about data encapsulation what about setters and getters? Scala follows a different route for data encapsulation. You can set properties but usually the data is public until you have overrides which cause the data encapsulation without any further code interference. Also one thing noticeable is, that the &lt;i&gt;implements Serializable&lt;/i&gt; has been replaced by a &lt;i&gt;@serializable&lt;/i&gt; annotation. The rest of the annotations is applied as is.&lt;/p&gt;
&lt;h3&gt;
	So what about this @BeanProperty?&lt;/h3&gt;
&lt;p&gt;
	This is a special Scala annotation which tells the compiler to &lt;i&gt;encapsulate&lt;/i&gt; the property and generate &lt;i&gt;setters&lt;/i&gt; and &lt;i&gt;getters&lt;/i&gt; for it.&lt;/p&gt;
&lt;h2&gt;
	I want to use CDI instead of ManagedBeans&lt;/h2&gt;
&lt;p&gt;
	CDI has been the new kid on the block and given that bigger projects nowadays either use Spring or CDI it makes sense to cover the CDI integration here as well. To sum the CDI and Scala situation regarding managed beans, it is as seamless as it is with pure managed beans. Here is an example: &lt;script src="https://gist.github.com/1071331.js?file=TestBean.scala"&gt;
&lt;/script&gt;Of course you still can use &lt;i&gt;@Inject&lt;/i&gt; and other CDI constructs as well.&lt;/p&gt;
&lt;h3&gt;
	@BeanProperties is this really needed?&lt;/h3&gt;
&lt;p&gt;
	As you have seen @BeanProperties produces the connection between our properties and the EL by encapsulating the property and providing Java like setters and getters. This is very inelegant, first of all, because to access those properties, you have to use the setters and getters on the Scala side as well, and the code is convoluted with annotations. Wouldn&amp;#39;t it be nice to simply have something like: &lt;script src="https://gist.github.com/1071338.js?file=TestBean.scala"&gt;
&lt;/script&gt;This works as expected, even the EL will pick up all properties, thanks to Scalas public per default convention. However we now face a problem, once we want to encapsulate for instance &lt;i&gt;val1&lt;/i&gt;. If we now would make it private or protected the code definitely would be broken and the EL would not pick it up anymore. As long as you stay in Scala, you can use Scala properties, however the EL is implemented in Java and expects Java setters and getters. So to make the EL scala aware we have to roll out a binding solution, but first, lets talk about Scala properties. Scala properties are a different convention. From outside they are invisible by default but they still implement full isolation. So, code like&lt;i&gt; myobj.myprop = 1 &lt;/i&gt;still would be&lt;i&gt; myobj.myprop = 1 &lt;/i&gt;after the isolation has been added&lt;i&gt;.&lt;/i&gt; So how do we do it? &lt;script src="https://gist.github.com/1071342.js?file=TestBean.scala"&gt;
&lt;/script&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		the &lt;i&gt;def val1: Int = _val1&lt;/i&gt; is basically our new getter replacing our old val1 for read access&lt;/li&gt;
	&lt;li&gt;
		def &lt;i&gt;val1_$eq (val1: Int)&lt;/i&gt; is basically a convention to open val1 for write access via the = operator.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	This works within Scala seamlessly and for &lt;i&gt;orm&lt;/i&gt; frameworks as well as long as they know the Scala convention (most do by now via plugins). But on the Java side you have to call those methods directly via &amp;lt;methodName&amp;gt; and &amp;lt;methodName&amp;gt;_eq. The last remaining open problem is the Expression Language. The EL relies on setters and getters for accessing the properties. Thankfully there is a way to override the ELs handling via a custom resolver tailored for Scala. Now this code would override the scope of this blog, but you can download the sources for this EL resolver &lt;a href="http://people.apache.org/%7Ewerpu/scala/scalaelresolver.zip"&gt;here&lt;/a&gt;: (note a link to an el resolver drop in project will be added later this month so check regularly) You just have to integrate it into your project by adding following entry into your faces-config: &lt;script src="https://gist.github.com/1071346.js?file=elresolverentry.xml"&gt;
&lt;/script&gt;&lt;/p&gt;
&lt;h2&gt;
	End of Part1&lt;/h2&gt;
&lt;p&gt;
	We now have reached the end of part1. The next part will be about the ViewController patterns. Page navigation Codi style in Scala, and what we can do with Scala traits in a JSF context. So stay tuned.&lt;/p&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-08T16:38:07Z</dc:date>
  </entry>
  <entry>
    <title>JSF@Work 1.0.4</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-4-1" />
    <author>
      <name>Irian Blog</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-4-1</id>
    <updated>2011-11-07T08:50:47Z</updated>
    <published>2011-11-07T08:47:28Z</published>
    <summary type="html">&lt;p&gt;
	IRIAN released version 1.0.4 of the JavaServer Faces (JSF) online documentation &amp;quot;JSF@Work&amp;quot;. This version features new content about composite components and converters and contains lots of enhancements and improvements. The tutorial contains a complete list of changes.&lt;/p&gt;
&lt;p&gt;
	JSF@Work is available (currently only in german language) at: &lt;a href="http://jsfatwork.irian.at" target="_blank"&gt;http://jsfatwork.irian.at&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Irian Blog</dc:creator>
    <dc:date>2011-11-07T08:47:28Z</dc:date>
  </entry>
  <entry>
    <title>www.irian.at relaunched</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/www-irian-at-relaunched" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/www-irian-at-relaunched</id>
    <updated>2011-10-17T10:53:08Z</updated>
    <published>2011-09-08T09:03:04Z</published>
    <summary type="html">&lt;p&gt;
	As you can see www.irian.at has been completly redesigned. The most obvious change is the new look. But the more interesting changes from our point of view are under the hood.&lt;/p&gt;
&lt;p&gt;
	The new site is build on Liferay 6.0 Community Edition. It does bring quite some overhead compared to the old site which was using JSF (the MyFaces implementation of course ;)). However we do believe that the overhead is worth it and pays of once you learn how to use Liferay properly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	The main reason why we chose Liferay was that we wanted a CMS in order to be able to change the content more easily. The content on the old website has not been updated very often. We plan to change that and keep the new site always up to date.&lt;/p&gt;
&lt;p&gt;
	Other nice features that come for free (if you don't count the time spent learning how to configure them correctly) are security and user management, search, advanced styling and templating, the blog engine and internationalization.&lt;/p&gt;
&lt;p&gt;
	Of course we have not given up on JSF. On the contrary! Some portlets on this site - for example the contact form or the training registration - are built using JSF 2.0. We have used this combination of portal server and JSF in the past on&amp;nbsp;&lt;a href="http://www.confess.eu" target="_blank"&gt;http://www.confess.eu&lt;/a&gt;&amp;nbsp;and it worked out nicely.&lt;/p&gt;
&lt;p&gt;
	We hope that you like the fresh new look and if you have any comments regarding the new design and functionality please &lt;a href="http://www.irian.at/get-in-touch"&gt;let us know&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-09-08T09:03:04Z</dc:date>
  </entry>
  <entry>
    <title>SimpleMeet.me</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/simplemeet-me" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/simplemeet-me</id>
    <updated>2011-11-04T10:08:21Z</updated>
    <published>2011-11-04T10:07:32Z</published>
    <summary type="html">The easiest way to communicate&lt;br/&gt;&lt;br/&gt;

&lt;div style="text-align: center"&gt;
	&lt;img alt="SimpleMeet.me" src="http://www.irian.at/image/image_gallery?uuid=5f3227ef-18e8-4733-9523-6588778d764f&amp;amp;groupId=10157&amp;amp;t=1320401162940" style="width: 403px; height: 80px; " /&gt;&lt;/div&gt;

&lt;br/&gt;
&lt;a href="http://www.simplemeet.me" target="_blank"&gt;SimpleMeet.me&lt;/a&gt; allows you to easily get in touch with one or more people - no signup or setup required. Just go to &lt;a href="http://www.simplemeet.me" target="_blank"&gt;http://simplemeet.me&lt;/a&gt;, pass your code to your contact and immediately start a chat. Communication made unprecedentedly easy.</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:07:32Z</dc:date>
  </entry>
  <entry>
    <title>Release of MyFaces CODI v1</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/release-of-myfaces-codi-v1" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/release-of-myfaces-codi-v1</id>
    <updated>2011-11-04T10:10:07Z</updated>
    <published>2011-11-04T10:09:55Z</published>
    <summary type="html">&lt;p&gt;Apache MyFaces Extensions CDI (aka CODI) provides portable CDI extensions for the Java-Platform (SE and EE). CODI is a modularized and extensible toolbox for CDI based applications.
&lt;p/&gt;
&lt;p&gt;MyFaces CODI is compatible with JSF&amp;#160;1.2.x and JSF&amp;#160;2.x.
&lt;p/&gt;
&lt;p&gt;More details are available &lt;a href="http://www.irian.at/codi-cdi"&gt;here&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:09:55Z</dc:date>
  </entry>
  <entry>
    <title>JSF@Work 1.0.4</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-4" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-4</id>
    <updated>2011-11-04T10:11:02Z</updated>
    <published>2011-11-04T10:10:55Z</published>
    <summary type="html">IRIAN released version 1.0.4 of the JavaServer Faces (JSF) online documentation "JSF@Work". This version features new content about composite components and converters and contains lots of enhancements and improvements.The tutorial features a complete list of changes.&lt;br/&gt;
&lt;br/&gt;
JSF@Work is available (currently only in german language) at: &lt;a href="http://jsfatwork.irian.at" target="_blank"&gt;JSF@Work&lt;/a&gt;&lt;br/&gt;</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:10:55Z</dc:date>
  </entry>
  <entry>
    <title>Release of MyFaces Extensions Validator</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/release-of-myfaces-extensions-validator" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/release-of-myfaces-extensions-validator</id>
    <updated>2011-11-04T10:12:29Z</updated>
    <published>2011-11-04T10:11:47Z</published>
    <summary type="html">&lt;p&gt;The release contains several improvements, new features and an improved support of JSF 2.0 as well as Bean-Validation (JSR 303). &lt;p/&gt;
&lt;p&gt;Compared to the standard integration of BV in JSF 2.0 MyFaces ExtVal 2.0.3 offers more advanced and typesafe features.&lt;p/&gt;
&lt;p&gt;Further details are available &lt;a href="http://www.slideshare.net/os890/myfaces-extensions-validator-r4-news" target="_blank"&gt;here&lt;/a&gt;.</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:11:47Z</dc:date>
  </entry>
  <entry>
    <title>JSF@Work 1.0.2</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-2" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-2</id>
    <updated>2011-11-04T10:24:28Z</updated>
    <published>2011-11-04T10:24:28Z</published>
    <summary type="html">IRIAN released version 1.0.2 of the JavaServer Faces (JSF) online documentation "JSF@Work". This version integrates Spring 3.0 and JSR-330 and contains lots of enhancements and improvements. The tutorial features a complete list of changes.&lt;br/&gt;
&lt;br/&gt;
JSF@Work is available (currently only in german language) at: &lt;a href="http://jsfatwork.irian.at" target="_blank"&gt;JSF@Work&lt;/a&gt;</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:24:28Z</dc:date>
  </entry>
  <entry>
    <title>Release of MyFaces Extensions Validator</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/release-of-myfaces-extensions-validator-1" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/release-of-myfaces-extensions-validator-1</id>
    <updated>2011-11-04T10:25:32Z</updated>
    <published>2011-11-04T10:25:06Z</published>
    <summary type="html">&lt;p&gt;he 3rd release of MyFaces ExtVal contains several improvements and new features as well as a new validation module for using Bean-Validation (JSR 303) with JSF 1.x and 2.0.&lt;p/&gt;
&lt;p&gt;Compared to the standard integration of BV in JSF 2.0 MyFaces ExtVal 2.0.3 offers more advanced and typesafe features.&lt;p/&gt;
&lt;p&gt;Further details are available &lt;a href="http://www.slideshare.net/os890/myfaces-extensions-validator-r3-news" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:25:06Z</dc:date>
  </entry>
  <entry>
    <title>JSF@Work 1.0.1</title>
    <link rel="alternate" href="http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-1" />
    <author>
      <name>Web Admin</name>
    </author>
    <id>http://www.irian.at/en/blog/-/blogs/jsf-work-1-0-1</id>
    <updated>2011-11-04T10:27:04Z</updated>
    <published>2011-11-04T10:27:04Z</published>
    <summary type="html">IRIAN released version 1.0.1 of the online version of the JavaServerFaces (JSF) documentation "JSF@Work". This version integrates MyFaces 2.0 into the examples and contains lots of minor improvements. The tutorial features a complete list of changes.&lt;br /&gt;
&lt;br /&gt;
JSF@Work is available (currently only in german language) at: &lt;a href="http://jsfatwork.irian.at" target="_blank"&gt;JSF@Work&lt;/a&gt;</summary>
    <dc:creator>Web Admin</dc:creator>
    <dc:date>2011-11-04T10:27:04Z</dc:date>
  </entry>
</feed>


