<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Hatim's Blog</title>
	<atom:link href="http://hatim.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://hatim.wordpress.com</link>
	<description>Right now, it is JBoss Seam</description>
	<lastBuildDate>Tue, 19 Feb 2008 15:23:52 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='hatim.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/e6f2f0d19d748dcc78ffc74ba36a4643?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Hatim's Blog</title>
		<link>http://hatim.wordpress.com</link>
	</image>
			<item>
		<title>Q: How does Seam hookup with JSF at server startup?</title>
		<link>http://hatim.wordpress.com/2008/02/04/q-how-does-seam-hookup-with-jsf-at-server-startup/</link>
		<comments>http://hatim.wordpress.com/2008/02/04/q-how-does-seam-hookup-with-jsf-at-server-startup/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 14:49:40 +0000</pubDate>
		<dc:creator>hatim</dc:creator>
				<category><![CDATA[JBoss]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Q&A]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://hatim.wordpress.com/?p=6</guid>
		<description><![CDATA[A: JBoss 4.2.1.GA comes with JSF 1.2 RI (Reference Implementation) and by default registers JBossJSFConfigureListener class as a context listener for any web app you deploy. To see how this is done, look at the web.xml file under  &#60;jboss dir&#62;\ server\ default\ deploy\ jboss-web.deployer\ conf\ directory. The above web.xml is common to all web [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hatim.wordpress.com&blog=2650977&post=6&subd=hatim&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="font-size:1.5em;font-weight:bold;margin-right:10px;">A:</span> JBoss 4.2.1.GA comes with JSF 1.2 RI (Reference Implementation) and by default registers <a href="http://anonsvn.jboss.org/repos/jbossas/tags/JBoss_4_2_1_GA/tomcat/src/main/org/jboss/web/jsf/integration/config/JBossJSFConfigureListener.java">JBossJSFConfigureListener</a> class as a context listener for any web app you deploy. To see how this is done, look at the <i>web.xml</i> file under  &lt;jboss dir&gt;\ server\ default\ deploy\ jboss-web.deployer\ conf\ directory. The above <i>web.xml</i> is common to all web applications you deploy which means that JBossJSFConfigureListener gets a chance to participate in your web application lifecycle events, such as when the context is initialized and when the context is destroyed.</p>
<p>When the servlet container starts your web application and calls contextInitialized() method on JBossJSFConfigureListener, the listener starts its initialization process. However, it delegates most of the initialization process to the JSF RI default context listener <a href="http://fisheye5.cenqua.com/browse/~raw,r=1.98/javaserverfaces-sources/jsf-ri/src/com/sun/faces/config/ConfigureListener.java">ConfigureListener</a>. The JSF RI ConfigureListener scans for all available faces configuration files (<i>faces-config.xml</i>) and uses the collected information to configure your JSF application. </p>
<p>For a typical Seam 2.0.0.CR3 deployment, I compiled a list of common <i>faces-config.xml</i> files which the JSF RI ConfigureListener uses to configure your JSF application.</p>
<table cellspacing="2" cellpadding="4" style="width:100%;background-color:#ccc;">
<tr>
<td style="background-color:white;">File</td>
<td style="background-color:white;">Jar</td>
<td style="background-color:white;">Comment</td>
</tr>
<tr>
<td style="background-color:white;">Bootstrapper.java</td>
<td style="background-color:white;">jsf-impl.jar</td>
<td style="background-color:white;">Provides the default configuration values for the JSF RI, such as the default implementation of the <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/javax/faces/application/ApplicationFactory.html">ApplicationFactory</a>. You can find jsf-impl.jar under &lt;jboss dir&gt;\ server\ default\ deploy\ jboss-web.deployer\ jsf-libs\ directory.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/debug/META-INF/faces-config.xml?view=markup">faces-config.xml</a></td>
<td style="background-color:white;">jboss-seam-debug.jar</td>
<td style="background-color:white;">Registers <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/debug/org/jboss/seam/debug/jsf/SeamDebugPhaseListener.java?view=markup">SeamDebugPhaseListener</a> as a JSF phase listener. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/mail/META-INF/faces-config.xml?view=markup">faces-config.xml</a></td>
<td style="background-color:white;">jboss-seam-mail.jar</td>
<td style="background-color:white;">Registers a few UI components to be used for templating and sending email using Seam. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/pdf/META-INF/faces-config.xml?view=markup">faces-config.xml</a></td>
<td style="background-color:white;">jboss-seam-pdf.jar</td>
<td style="background-color:white;">Registers a <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/pdf/org/jboss/seam/pdf/DocumentStorePhaseListener.java?view=markup">DocumentStorePhaseListener</a> and a few UI components for generating PDF using Seam. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;">faces-config.xml</td>
<td style="background-color:white;">jboss-seam-ui.jar</td>
<td style="background-color:white;">Registers the bulk of <a href="http://docs.jboss.com/seam/2.0.0.GA/reference/en/html/controls.html">Seam JSF controls</a> together with a few validators and converters. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;">faces-config.xml</td>
<td style="background-color:white;">jsf-facelets.jar</td>
<td style="background-color:white;">Registers a few Facelets UI components, such as the UI Repeat component.  You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;">faces-config.xml</td>
<td style="background-color:white;">richfaces-impl.jar</td>
<td style="background-color:white;">Registers a few factories (<a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/renderkit/ChameleonRenderKitFactory.java?view=markup">ChameleonRenderKitFactory</a>,  <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/application/DebugLifecycleFactory.java?view=markup">DebugLifecycleFactory</a>),  a view handler <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/application/AjaxViewHandler.java?view=markup">AjaxViewHandler</a>, a state manager <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/application/AjaxStateManager.java?revision=3417&amp;view=markup">AjaxStateManager</a>, a few phase listeners (<a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/event/AjaxPhaseListener.java?view=markup">AjaxPhaseListener</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/event/InitPhaseListener.java?view=markup">InitPhaseListener</a>), a few managed beans (<a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/richfaces/VersionBean.java?view=markup">a4j</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/richfaces/skin/SkinBean.java?revision=3417&amp;view=markup">a4jSkin<a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/richfaces/skin/SkinBean.java?revision=3417&amp;view=markup">richSkin<a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java?view=markup">ajaxContext</a>), and a UIViewRoot component <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/richfaces/tags/3.1.2.GA/framework/impl/src/main/java/org/ajax4jsf/component/AjaxViewRoot.java?view=markup">AjaxViewRoot</a>. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;">faces-config.xml</td>
<td style="background-color:white;">richfaces-ui.jar</td>
<td style="background-color:white;">Registers most of ajax4jsf and richfaces UI components. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ lib\ directory.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/META-INF/faces-config.xml?revision=6595&amp;view=markup">faces-config.xml</a></td>
<td style="background-color:white;">jboss-seam.jar</td>
<td style="background-color:white;">Registers the following: <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamApplicationFactory.java?view=markup">SeamApplicationFactory</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamNavigationHandler.java?view=markup">SeamNavigationHandler</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamViewHandler.java?view=markup">SeamViewHandler</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamStateManager.java?view=markup">SeamStateManager</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/el/SeamELResolver.java?view=markup">SeamELResolver</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/core/SeamResourceBundle.java?view=markup">SeamResourceBundle</a>, <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamPhaseListener.java?view=markup">SeamPhaseListener</a>. You can find this jar file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ directory.</td>
</tr>
<tr>
<td style="background-color:white;">faces-config.xml</td>
<td style="background-color:white;">&lt;mywar.war&gt;</td>
<td style="background-color:white;">This is the file that you include in your web app. It registers FaceletViewHandler. You can find this file under &lt;jboss dir&gt;\ server\ default\ deploy\ &lt;myear.ear&gt;\ &lt;mywar.war&gt;\ WEB-INF\ directory.</td>
</tr>
</table>
<p>&nbsp;</p>
<p>As ConfigureListener works its way through all of the above configuration files and configures the necessary classes, it follows an interesting strategy when there are two or more classes registered for the same configuration. For example, FaceletViewHandler, SeamViewHandler, AjaxViewHandler and ViewHandlerImpl are all registered as a view handler from three different faces-config.xml files. In this case, ConfigureListener instantiates each of these classes and passes an instance of the previous class to the next one. Therefore,  when ConfigureListener creates an instance of AjaxViewHandler it passes an instance of ViewHandlerImpl to the constructor of AjaxViewHandler and when it creates an instance of SeamViewHandler it passes the already created instance of AjaxViewHandler to the constructor of SeamViewHandler. Finally, when it creates an instance of FaceletViewHandler, it passes the already created instance of SeamViewHandler to the constructor of FaceletViewHandler.</p>
<p>When ConfigureListener is done with its initialization process, you should expect the following classes to have been instantiated:</p>
<table cellspacing="2" cellpadding="4" style="width:100%;background-color:#ccc;">
<tr>
<td style="background-color:white;">Class</td>
<td style="background-color:white;">Comment</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamApplicationFactory.java?view=markup">SeamApplicationFactory</a></td>
<td style="background-color:white;">The sole purpose of this class is to create an instance of the <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamApplication.java?view=markup">SeamApplication</a> as the <a href="http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/api/javax/faces/application/Application.html">JSF Application</a> singleton object.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamApplication.java?view=markup">SeamApplication</a></td>
<td style="background-color:white;">This class allows Seam to provide JSF runtime environment with converters/validators that are written as Seam components using annotations. Remember your Seam component can easily become a converter by using the <i><a href="http://docs.jboss.com/seam/2.0.0.GA/api/org/jboss/seam/annotations/faces/Converter.html">@Converter</a></i> annotation and implementing <a href="http://java.sun.com/javaee/javaserverfaces/1.2_MR1/docs/api/javax/faces/convert/Converter.html">javax.faces.convert.Converter</a>, same goes for validators. However, do not forget to register them in your faces-config.xml file. An example of a Seam component that acts as a converter is: <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/ui/src/main/java/org/jboss/seam/ui/converter/EntityConverter.java?view=markup">EntityConverter</a>.<br />
Another important task for this class is to expose JBoss EL to JSF 1.2 runtime environment. Seam uses <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/el/SeamExpressionFactory.java?view=markup">SeamExpressionFactory</a> to accomplish this task. In addition, SeamExpressionFactory adds the ability to have JSF action listeners declared without the ActionEvent parameter.  It is also via SeamExpressionFactory, that Seam is able to use <a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/el/SeamFunctionMapper.java?view=markup">SeamFunctionMapper</a> which resolves the #{s:hasRole()} and #{s:hasPermission()} functions in your EL expression. For a description of enhancements provided by JBoss EL, check out <a href="http://docs.jboss.com/seam/2.0.1.GA/reference/en/html/elenhancements.html">Seam documentation</a>.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamViewHandler.java?view=markup">SeamViewHandler</a></td>
<td style="background-color:white;">Gavin King&#8217;s JavaDoc <a href="http://docs.jboss.com/seam/2.0.0.GA/api/org/jboss/seam/jsf/SeamViewHandler.html">comment</a> say it all.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamPhaseListener.java?view=markup">SeamPhaseListener</a></td>
<td style="background-color:white;">It listens to all Faces phases and demarcates transactions accordingly.  It is also the integration point between many features of pages.xml and JSF runtime environment. I highly recommend that you go through the source code to understand the purpose of this class.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/jsf/SeamNavigationHandler.java?view=markup">SeamNavigationHandler</a></td>
<td style="background-color:white;">This is where Seam is able to integrated your pages.xml JSF navigation rules with JSF navigation handling system. In addition, this class can recognize String outcomes from actions that represent view ids or page flows transition names.</td>
</tr>
<tr>
<td style="background-color:white;"><a href="http://viewvc.jboss.org/cgi-bin/viewvc.cgi/seam/tags/JBoss_Seam_2_0_0_CR3/src/main/org/jboss/seam/el/SeamELResolver.java?view=markup">SeamELResolver</a></td>
<td style="background-color:white;">This is where Seam is able to resolve EL expressions that reference your Seam components.  In addition, it allows the use of certain methods as properties, for example #{map.size}. See Gavin King&#8217;s JavaDoc <a href="http://docs.jboss.com/seam/2.0.0.GA/api/org/jboss/seam/el/SeamELResolver.html">comment</a>.</td>
</tr>
</table>
<p>&nbsp;</p>
<p>As you can see, Seam was able to hookup with JSF by providing the necessary factories and other classes in the faces-config.xml files.  I hope that you found the above information useful!</p>
<p>I wrote this blog with the following versions in mind:<br />
<b>JBoss version</b>: 4.2.1.GA<br />
<b>JSF version</b>: JSF 1.2 (Implementation-Version: 1.2_04-b16-p02)<br />
<b>Seam version</b>: 2.0.0.CR3</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hatim.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hatim.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hatim.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hatim.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hatim.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hatim.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hatim.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hatim.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hatim.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hatim.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hatim.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hatim.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hatim.wordpress.com&blog=2650977&post=6&subd=hatim&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://hatim.wordpress.com/2008/02/04/q-how-does-seam-hookup-with-jsf-at-server-startup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/36831d767a413baf08d8f123ab457070?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hatim</media:title>
		</media:content>
	</item>
		<item>
		<title>Problem 1 &#8211; Design a single page wizard</title>
		<link>http://hatim.wordpress.com/2008/01/28/problem-1-design-a-single-page-wizard/</link>
		<comments>http://hatim.wordpress.com/2008/01/28/problem-1-design-a-single-page-wizard/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 01:24:13 +0000</pubDate>
		<dc:creator>hatim</dc:creator>
				<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Problems]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://hatim.wordpress.com/2008/01/28/problem-1-design-a-single-page-wizard/</guid>
		<description><![CDATA[Design a single page wizard using JBoss Seam 2.0.x. This wizard should handle its operations using one xhtml page. The wizard starts by retrieving information from the database, the information retrieved depends on a URL query parameter that was used to access the page. The wizard should then solicit for a user input and perform an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hatim.wordpress.com&blog=2650977&post=4&subd=hatim&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Design a single page wizard using JBoss Seam 2.0.x. This wizard should handle its operations using one xhtml page. The wizard starts by retrieving information from the database, the information retrieved depends on a URL query parameter that was used to access the page. The wizard should then solicit for a user input and perform an action once the input is submitted. This action might require database interaction. The wizard displays the result on the same page after redirecting. If there is an error detected, the user is redirected to the same page with an error message. The wizard page shall be accessible only if the user is logged in.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hatim.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hatim.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hatim.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hatim.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hatim.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hatim.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hatim.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hatim.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hatim.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hatim.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hatim.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hatim.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hatim.wordpress.com&blog=2650977&post=4&subd=hatim&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://hatim.wordpress.com/2008/01/28/problem-1-design-a-single-page-wizard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/36831d767a413baf08d8f123ab457070?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hatim</media:title>
		</media:content>
	</item>
		<item>
		<title>Practical Seam &#8211; The Beginning</title>
		<link>http://hatim.wordpress.com/2008/01/28/practical-seam-the-beginning/</link>
		<comments>http://hatim.wordpress.com/2008/01/28/practical-seam-the-beginning/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 01:17:18 +0000</pubDate>
		<dc:creator>hatim</dc:creator>
				<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://hatim.wordpress.com/?p=3</guid>
		<description><![CDATA[I am starting a series of blog entries centered around JBoss Seam. These entries reflect my own experience working with Seam which I would like to share with the rest of the world! Please stay tuned!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hatim.wordpress.com&blog=2650977&post=3&subd=hatim&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I am starting a series of blog entries centered around <a href="http://labs.jboss.com/jbossseam/">JBoss Seam</a>. These entries reflect my own experience working with Seam which I would like to share with the rest of the world! Please stay tuned!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hatim.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hatim.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hatim.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hatim.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hatim.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hatim.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hatim.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hatim.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hatim.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hatim.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hatim.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hatim.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hatim.wordpress.com&blog=2650977&post=3&subd=hatim&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://hatim.wordpress.com/2008/01/28/practical-seam-the-beginning/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/36831d767a413baf08d8f123ab457070?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hatim</media:title>
		</media:content>
	</item>
	</channel>
</rss>