[jboss-cvs] JBossAS SVN: r103617 - in projects/docs/enterprise/5.0/Seam_Reference_Guide: pot and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 7 03:48:25 EDT 2010


Author: misty at redhat.com
Date: 2010-04-07 03:48:22 -0400 (Wed, 07 Apr 2010)
New Revision: 103617

Modified:
   projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Itext.xml
   projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Seam_Reference_Guide.xml
   projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Security.xml
   projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Tutorial.xml
   projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Weblogic.xml
   projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Websphere.xml
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Annotations.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Author_Group.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Book_Info.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Cache.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Clustering_EJBPassivation.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Components.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Concepts.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Configuration.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Controls.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Conversations.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Dependencies.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Drools.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Elenhancements.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Events.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Excel.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Feedback.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Framework.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gettingstarted.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Glassfish.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Groovy.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gwt.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Hsearch.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/I18n.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Itext.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jbpm.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jms.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Mail.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Migration.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Performance.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Persistence.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Preface.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Remoting.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Revision_History.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Rss.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Seam_Reference_Guide.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Security.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Spring.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Testing.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Text.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tools.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tutorial.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Validation.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Weblogic.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Webservices.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Websphere.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Wicket.pot
   projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Xml.pot
Log:
Fixed publican update_pot issues and updated the POT files. Did NOT update the PO files yet.


Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Itext.xml
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Itext.xml	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Itext.xml	2010-04-07 07:48:22 UTC (rev 103617)
@@ -132,12 +132,12 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							      </entry>								 
 <programlisting role="XHTML"><![CDATA[<p:document xmlns:p="http://jboss.com/products/seam/pdf"> 
   The document goes here. 
 </p:document>]]>
 </programlisting>
-							</entry>
+
 						</row>
 					</tbody>
 				</tgroup>
@@ -220,12 +220,12 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>								 
 <programlisting role="XHTML"><![CDATA[<p:paragraph alignment="justify">
   This is a simple document. It isn't very fancy. 
 </p:paragraph>]]>
 </programlisting>
-							</entry>
+
 						</row>
 						 <row>
 							<entry valign="top">
@@ -253,7 +253,7 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:paragraph> 
   The item costs <p:text value="#{product.price}"> 
     <f:convertNumber type="currency" 
@@ -261,7 +261,7 @@
   </p:text> 
 </p:paragraph>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -289,7 +289,7 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:html value="This is HTML with <b>some markup</b>" />
 <p:html>
   <h1>This is more complex HTML</h1>
@@ -306,7 +306,7 @@
         It's very^cool^." />
 </p:html>                                    
 ]]></programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -349,12 +349,12 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:font name="courier" style="bold" size="24"> 
   <p:paragraph>My Title</p:paragraph> 
 </p:font>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -372,10 +372,10 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:newPage />]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -481,13 +481,13 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:image value="/jboss.jpg" />]]>
 </programlisting>
 								 
 <programlisting role="XHTML"><![CDATA[<p:image value="#{images.chart}" />]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -520,7 +520,7 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:listItem>
   <p:anchor reference="#reason1">Reason 1</p:anchor>
 </p:listItem> 
@@ -532,7 +532,7 @@
   ... 
 </p:paragraph>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 					</tbody>
 				</tgroup>
@@ -590,7 +590,7 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:facet name="header"> 
   <p:font size="12"> 
     <p:footer borderWidthTop="1" borderColorTop="blue" 
@@ -600,7 +600,7 @@
   </p:font> 
 </f:facet>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -618,13 +618,13 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:footer borderWidthTop="1" borderColorTop="blue" 
    borderWidthBottom="0" alignment="center"> 
   Why Seam? [<p:pageNumber />] 
 </p:footer>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 					</tbody>
 				</tgroup>
@@ -677,7 +677,7 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:document xmlns:p="http://jboss.com/products/seam/pdf" title="Hello">
   <p:chapter number="1">
     <p:title><p:paragraph>Hello</p:paragraph></p:title>
@@ -695,7 +695,7 @@
 
 </p:document> ]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -784,14 +784,14 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:list style="numbered"> 
   <ui:repeat value="#{documents}" var="doc">
     <p:listItem>#{doc.name}</p:listItem> 
   </ui:repeat> 
 </p:list>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -839,10 +839,10 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML">...
 </programlisting>
-							</entry>
+	
 						</row>
 					</tbody>
 				</tgroup>
@@ -960,7 +960,7 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:table columns="3" headerRows="1">
   <p:cell>name</p:cell>
   <p:cell>owner</p:cell>
@@ -972,7 +972,7 @@
   </ui:repeat>
 </p:table>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 						 <row>
 							<entry valign="top">
@@ -1100,10 +1100,10 @@
 								 <para>
 									<emphasis>Usage</emphasis>
 								</para>
-								 
+							 </entry>							 
 <programlisting role="XHTML"><![CDATA[<p:cell>...</p:cell>]]>
 </programlisting>
-							</entry>
+	
 						</row>
 					</tbody>
 				</tgroup>
@@ -1324,7 +1324,7 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						      </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:barchart title="Bar Chart" legend="true" width="500" height="500">
   <p:series key="Last Year">
     <p:data columnKey="Joe" value="100" />
@@ -1336,7 +1336,7 @@
   </p:series>
 </p:barchart>]]>
 </programlisting>
-						</entry>
+	
 					</row>
 					 <row>
 						<entry valign="top">
@@ -1519,7 +1519,7 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						      </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:linechart title="Line Chart" width="500" height="500">
   <p:series key="Prices">
     <p:data columnKey="2003" value="7.36" />
@@ -1530,7 +1530,7 @@
   </p:series>
 </p:linechart>]]>
 </programlisting>
-						</entry>
+	
 					</row>
 					 <row>
 						<entry valign="top">
@@ -1668,7 +1668,7 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						      </entry>						 
 <programlisting role="XHTML"><![CDATA[
 <p:piechart title="Pie Chart" circular="false" 
             direction="anticlockwise" startAngle="30" 
@@ -1682,7 +1682,7 @@
   </p:series> 
 </p:piechart>]]>
 </programlisting>
-						</entry>
+	
 					</row>
 					 <row>
 						<entry valign="top">
@@ -1735,7 +1735,7 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						 </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:series key="data1"> 
   <ui:repeat value="#{data.pieData1}" var="item"> 
     <p:data columnKey="#{item.name}" 
@@ -1743,7 +1743,7 @@
   </ui:repeat> 
 </p:series>]]>
 </programlisting>
-						</entry>
+	
 					</row>
 					 <row>
 						<entry valign="top">
@@ -1801,13 +1801,13 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						 </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:data key="foo" value="20" sectionPaint="#111111" explodedPercent=".2" /> 
 <p:data key="bar" value="30" sectionPaint="#333333" /> 
 <p:data key="baz" value="40" sectionPaint="#555555" 
    sectionOutlineStroke="my-dot-style" />]]>
 </programlisting>
-						</entry>
+	
 					</row>
 					 <row>
 						<entry valign="top">
@@ -1850,12 +1850,12 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						 </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:color id="foo" color="#0ff00f"/> 
 <p:color id="bar" color="#ff00ff" color2="#00ff00" 
    point="50 50" point2="300 300"/>]]>
 </programlisting>
-						</entry>
+	
 					</row>
 					 <row>
 						<entry valign="top">
@@ -1908,10 +1908,10 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						 </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:stroke id="dot2" width="2" cap="round" join="bevel" dash="2 3" />]]>
 </programlisting>
-						</entry>
+	
 					</row>
 				</tbody>
 			</tgroup>
@@ -2009,12 +2009,12 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						 </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:barCode type="code128" barHeight="80" textSize="20" 
    code="(10)45566(17)040301" codeType="code128_ucc" 
    altText="My BarCode" />]]>
 </programlisting>
-						</entry>
+	
 					</row>
 				</tbody>
 			</tgroup>
@@ -2168,10 +2168,10 @@
 							 <para>
 								<emphasis>Usage</emphasis>
 							</para>
-							 
+						 </entry>						 
 <programlisting role="XHTML"><![CDATA[<p:swing width="310" height="120" component="#{aButton}" />]]>
 </programlisting>
-						</entry>
+	
 					</row>
 				</tbody>
 			</tgroup>

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Seam_Reference_Guide.xml
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Seam_Reference_Guide.xml	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Seam_Reference_Guide.xml	2010-04-07 07:48:22 UTC (rev 103617)
@@ -15,8 +15,8 @@
    <xi:include href="Jbpm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
    <xi:include href="Persistence.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
    <xi:include href="Validation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
-   <xi:include href="Groovy.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
-   <!-- <xi:include href="Wicket.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+   <xi:include href="Groovy.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <!-- <xi:include href="Wicket.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
    <xi:include href="Framework.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
    <xi:include href="Drools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
    <xi:include href="Security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -42,6 +42,7 @@
    <xi:include href="Performance.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
    <xi:include href="Testing.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
    <xi:include href="Tools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+   
   <!--    <xi:include href="Weblogic.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
   <!--  <xi:include href="Websphere.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
  <!--   <xi:include href="Glassfish.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Security.xml
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Security.xml	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Security.xml	2010-04-07 07:48:22 UTC (rev 103617)
@@ -3,960 +3,960 @@
 ]>
 
 <chapter id="security" >
-	<title>Security</title>
-	 <section>
-		<title>Overview</title>
-		 <para>
-			The Seam Security API provides a multitude of security-related features for your Seam-based application, including:
-		</para>
-		 <itemizedlist>
-			<listitem>
-				<para>
-					Authentication — an extensible, Java Authentication and Authorization Service (JAAS) based authentication layer that allows users to authenticate against any security provider.
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Identity Management — an API for managing the users and roles of a Seam application at runtime.
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Authorization — an extremely comprehensive authorization framework, supporting user roles, persistent and rule-based permissions, and a pluggable permission-resolver that makes it easy to implement customized security logic.
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Permission Management — a set of built-in Seam components that make it easy to manage an application's security policy.
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					CAPTCHA support — to assist in the prevention of automated software/scripts abusing your Seam-based site.
-				</para>
-			</listitem>
-		</itemizedlist>
-		 <para>
-			This chapter covers each of these features in detail.
-		</para>
-	</section>
-	
-	 <section>
-		<title>Disabling Security</title>
-		 <para>
-			In some situations, you may need to disable Seam Security (during unit tests, for instance, or to use a different security approach, like native JAAS). To disable the security infrastructure, call the static method <literal>Identity.setSecurityEnabled(false)</literal>. However, when you want to configure the application, a more convenient alternative is to control the following settings in <filename>components.xml</filename>:
-		</para>
-		 <itemizedlist>
-			<listitem>
-				<para>
-					Entity Security
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Hibernate Security Interceptor
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Seam Security Interceptor
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Page restrictions
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					Servlet API security integration
-				</para>
-			</listitem>
-		</itemizedlist>
-		 <para>
-			This chapter documents the vast number of options available when establishing the user's identity (authentication) and establishing access constraints (authorization). We will begin with the foundation of the security model: authentication.
-		</para>
-	</section>
-	
-	 <section>
-		<title>Authentication</title>
-		 <para>
-			Seam Security provides Java Authentication and Authorization Service (JAAS) based authorization features, providing a robust and highly configurable API for handling user authentication. If your authentication needs are not this complex, Seam also offers a simplified authentication method.
-		</para>
-		 <section>
-			<title>Configuring an Authenticator component</title>
-			 <note>
-				<para>
-					If you use Seam's Identity Management features, you can skip this section — it is not necessary to create an authenticator component.
-				</para>
-			</note>
-			 <para>
-				Seam's simplified authentication method uses a built-in JAAS login module (<literal>SeamLoginModule</literal>) to delegate authentication to one of your own Seam components. (This module requires no additional configuration files, and comes pre-configured within Seam.) With this, you can write an authentication method with the entity classes provided by your own application, or authenticate through another third-party provider. Configuring this simplified authentication requires the <literal>identity</literal> component to be configured in <filename>components.xml</filename>
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components" 
-            xmlns:core="http://jboss.com/products/seam/core" 
-            xmlns:security="http://jboss.com/products/seam/security" 
-            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-            xsi:schemaLocation= 
-              "http://jboss.com/products/seam/components 
-               http://jboss.com/products/seam/components-2.1.xsd 
-               http://jboss.com/products/seam/security 
-               http://jboss.com/products/seam/security-2.1.xsd">
+  <title>Security</title>
+  <section>
+    <title>Overview</title>
+    <para>
+      The Seam Security API provides a multitude of security-related features for your Seam-based application, including:
+    </para>
+    <itemizedlist>
+      <listitem>
+	<para>
+	  Authentication — an extensible, Java Authentication and Authorization Service (JAAS) based authentication layer that allows users to authenticate against any security provider.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Identity Management — an API for managing the users and roles of a Seam application at runtime.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Authorization — an extremely comprehensive authorization framework, supporting user roles, persistent and rule-based permissions, and a pluggable permission-resolver that makes it easy to implement customized security logic.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Permission Management — a set of built-in Seam components that make it easy to manage an application's security policy.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  CAPTCHA support — to assist in the prevention of automated software/scripts abusing your Seam-based site.
+	</para>
+      </listitem>
+    </itemizedlist>
+    <para>
+      This chapter covers each of these features in detail.
+    </para>
+  </section>
 
-<security:identity authenticate-method="#{authenticator.authenticate}"/>
+  <section>
+    <title>Disabling Security</title>
+    <para>
+      In some situations, you may need to disable Seam Security (during unit tests, for instance, or to use a different security approach, like native JAAS). To disable the security infrastructure, call the static method <literal>Identity.setSecurityEnabled(false)</literal>. However, when you want to configure the application, a more convenient alternative is to control the following settings in <filename>components.xml</filename>:
+    </para>
+    <itemizedlist>
+      <listitem>
+	<para>
+	  Entity Security
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Hibernate Security Interceptor
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Seam Security Interceptor
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Page restrictions
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  Servlet API security integration
+	</para>
+      </listitem>
+    </itemizedlist>
+    <para>
+      This chapter documents the vast number of options available when establishing the user's identity (authentication) and establishing access constraints (authorization). We will begin with the foundation of the security model: authentication.
+    </para>
+  </section>
 
-</components>]]>
-</programlisting>
-			 <para>
-				<literal>#{authenticator.authenticate}</literal> is a method binding that indicates the <literal>authenticate</literal> method of the <literal>authenticator</literal> component will be used to authenticate the user.
-			</para>
-		</section>
-		
-		 <section>
-			<title>Writing an authentication method</title>
-			 <para>
-				The <literal>authenticate-method</literal> property specified for <literal>identity</literal> in <filename>components.xml</filename> specifies the method used by <literal>SeamLoginModule</literal> to authenticate users. This method takes no parameters, and is expected to return a Boolean indicating authentication success or failure. Username and password are obtained from <literal>Credentials.getUsername()</literal> and <literal>Credentials.getPassword()</literal> respectively. (A reference to the <literal>credentials</literal> component can be obtained via <literal>Identity.instance().getCredentials()</literal>.) Any role that the user is a member of should be assigned with <literal>Identity.addRole()</literal>. The following is a complete example of an authentication method inside a POJO component:
-			</para>
-			 
-<programlisting role="JAVA"> <![CDATA[@Name("authenticator")
-public class Authenticator {
-  @In EntityManager entityManager;
-  @In Credentials credentials;
-  @In Identity identity;
+  <section>
+    <title>Authentication</title>
+    <para>
+      Seam Security provides Java Authentication and Authorization Service (JAAS) based authorization features, providing a robust and highly configurable API for handling user authentication. If your authentication needs are not this complex, Seam also offers a simplified authentication method.
+    </para>
+    <section>
+      <title>Configuring an Authenticator component</title>
+      <note>
+	<para>
+	  If you use Seam's Identity Management features, you can skip this section — it is not necessary to create an authenticator component.
+	</para>
+      </note>
+      <para>
+	Seam's simplified authentication method uses a built-in JAAS login module (<literal>SeamLoginModule</literal>) to delegate authentication to one of your own Seam components. (This module requires no additional configuration files, and comes pre-configured within Seam.) With this, you can write an authentication method with the entity classes provided by your own application, or authenticate through another third-party provider. Configuring this simplified authentication requires the <literal>identity</literal> component to be configured in <filename>components.xml</filename>
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components" 
+      xmlns:core="http://jboss.com/products/seam/core" 
+      xmlns:security="http://jboss.com/products/seam/security" 
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+      xsi:schemaLocation= 
+      "http://jboss.com/products/seam/components 
+      http://jboss.com/products/seam/components-2.1.xsd 
+      http://jboss.com/products/seam/security 
+      http://jboss.com/products/seam/security-2.1.xsd">
 
-  public boolean authenticate() {
-    try {
+      <security:identity authenticate-method="#{authenticator.authenticate}"/>
+
+      </components>]]>
+      </programlisting>
+      <para>
+	<literal>#{authenticator.authenticate}</literal> is a method binding that indicates the <literal>authenticate</literal> method of the <literal>authenticator</literal> component will be used to authenticate the user.
+      </para>
+    </section>
+
+    <section>
+      <title>Writing an authentication method</title>
+      <para>
+	The <literal>authenticate-method</literal> property specified for <literal>identity</literal> in <filename>components.xml</filename> specifies the method used by <literal>SeamLoginModule</literal> to authenticate users. This method takes no parameters, and is expected to return a Boolean indicating authentication success or failure. Username and password are obtained from <literal>Credentials.getUsername()</literal> and <literal>Credentials.getPassword()</literal> respectively. (A reference to the <literal>credentials</literal> component can be obtained via <literal>Identity.instance().getCredentials()</literal>.) Any role that the user is a member of should be assigned with <literal>Identity.addRole()</literal>. The following is a complete example of an authentication method inside a POJO component:
+      </para>
+      
+      <programlisting role="JAVA"> <![CDATA[@Name("authenticator")
+      public class Authenticator {
+      @In EntityManager entityManager;
+      @In Credentials credentials;
+      @In Identity identity;
+
+      public boolean authenticate() {
+      try {
       User user = (User) entityManager.createQuery(
-          "from User where username = :username and password = :password")
-          .setParameter("username", credentials.getUsername())
-          .setParameter("password", credentials.getPassword())
-          .getSingleResult();
+      "from User where username = :username and password = :password")
+      .setParameter("username", credentials.getUsername())
+      .setParameter("password", credentials.getPassword())
+      .getSingleResult();
 
       if (user.getRoles() != null) {
-        for (UserRole mr : user.getRoles())
-          identity.addRole(mr.getName());
-        }
+      for (UserRole mr : user.getRoles())
+      identity.addRole(mr.getName());
+      }
 
-        return true;
+      return true;
       } catch (NoResultException ex) {
-        return false;
+      return false;
       }
 
-   }
+      }
 
-}]]>
-</programlisting>
-			 <para>
-				In the example, both <literal>User</literal> and <literal>UserRole</literal> are application-specific entity beans. The <literal>roles</literal> parameter is populated with roles that the user is a member of. This is added to the <literal>Set</literal> as literal string values — for example, "admin", "user", etc. If the user record is not found, and a <literal>NoResultException</literal> is thrown, the authentication method returns <literal>false</literal> to indicate authentication failure.
-			</para>
-			 <note>
-				<para>
-					It is important to keep authenticator methods minimal and free from any side-effects — they can be invoked multiple times during a single request, so any special code that should execute when authentication succeeds or fails should implement an event observer. See <xref linkend="security-security_events" /> later in this chapter for more information about events raised by Seam Security.
-				</para>
-			</note>
-			 <section>
-				<title>Identity.addRole()</title>
-				 <para>
-					The <literal>Identity.addRole()</literal> method's behavior depends upon current session authentication. If the session is not authenticated, <literal>addRole()</literal> should only be called during the authentication process. When called here, the role name is placed in a temporary list of pre-authenticated roles. Once authentication succeeds, the pre-authenticated roles then become "real" roles, and calling <literal>Identity.hasRole()</literal> for those roles returns <literal>true</literal>. The following sequence diagram represents the list of pre-authenticated roles as a first class object to clarify its position in the authentication process.
-				</para>
-				 <mediaobject>
-					<imageobject role="fo">
-						<imagedata align="center" fileref="images/security-addrole.png" format="PNG" scalefit="1" />
-					</imageobject>
-					 <imageobject role="html">
-						<imagedata align="center" fileref="images/security-addrole.png" format="PNG" scalefit="1" />
-					</imageobject>
-				</mediaobject>
-				 <para>
-					If the current session is already authenticated, then calling <literal>Identity.addRole()</literal> grants the specified role to the current user immediately.
-				</para>
-			</section>
-			
-			 <section>
-				<title>Writing an event observer for security-related events</title>
-				 <para>
-					If, upon successful login, some user statistics require updates, you can write an event observer for the <literal>org.jboss.seam.security.loginSuccessful</literal> event, like this:
-				</para>
-				 
-<programlisting role="JAVA"><![CDATA[   
- at In UserStats userStats;
+      }]]>
+      </programlisting>
+      <para>
+	In the example, both <literal>User</literal> and <literal>UserRole</literal> are application-specific entity beans. The <literal>roles</literal> parameter is populated with roles that the user is a member of. This is added to the <literal>Set</literal> as literal string values — for example, "admin", "user", etc. If the user record is not found, and a <literal>NoResultException</literal> is thrown, the authentication method returns <literal>false</literal> to indicate authentication failure.
+      </para>
+      <note>
+	<para>
+	  It is important to keep authenticator methods minimal and free from any side-effects — they can be invoked multiple times during a single request, so any special code that should execute when authentication succeeds or fails should implement an event observer. See <xref linkend="security-security_events" /> later in this chapter for more information about events raised by Seam Security.
+	</para>
+      </note>
+      <section>
+	<title>Identity.addRole()</title>
+	<para>
+	  The <literal>Identity.addRole()</literal> method's behavior depends upon current session authentication. If the session is not authenticated, <literal>addRole()</literal> should only be called during the authentication process. When called here, the role name is placed in a temporary list of pre-authenticated roles. Once authentication succeeds, the pre-authenticated roles then become "real" roles, and calling <literal>Identity.hasRole()</literal> for those roles returns <literal>true</literal>. The following sequence diagram represents the list of pre-authenticated roles as a first class object to clarify its position in the authentication process.
+	</para>
+	<mediaobject>
+	  <imageobject role="fo">
+	    <imagedata align="center" fileref="images/security-addrole.png" format="PNG" scalefit="1" />
+	  </imageobject>
+	  <imageobject role="html">
+	    <imagedata align="center" fileref="images/security-addrole.png" format="PNG" scalefit="1" />
+	  </imageobject>
+	</mediaobject>
+	<para>
+	  If the current session is already authenticated, then calling <literal>Identity.addRole()</literal> grants the specified role to the current user immediately.
+	</para>
+      </section>
+      
+      <section>
+	<title>Writing an event observer for security-related events</title>
+	<para>
+	  If, upon successful login, some user statistics require updates, you can write an event observer for the <literal>org.jboss.seam.security.loginSuccessful</literal> event, like this:
+	</para>
+	
+	<programlisting role="JAVA"><![CDATA[   
+	@In UserStats userStats;
 
- at Observer("org.jboss.seam.security.loginSuccessful")
-public void updateUserStats() {
-  userStats.setLastLoginDate(new Date());
-  userStats.incrementLoginCount();
-}]]>
-</programlisting>
-				 <para>
-					This observer method can be placed anywhere, even in the Authenticator component itself. More information about other security-related events appears later in the chapter.
-				</para>
-			</section>
-			
-		</section>
-		
-		 <section>
-			<title>Writing a login form</title>
-			 <para>
-				The <literal>credentials</literal> component provides both <literal>username</literal> and <literal>password</literal> properties, catering for the most common authentication scenario. These properties can be bound directly to the username and password fields on a login form. Once these properties are set, calling <literal>identity.login()</literal> authenticates the user with the credentials provided. An example of a simple login form is as follows:
-			</para>
-			 
-<programlisting role="XHTML"><![CDATA[<div>
-  <h:outputLabel for="name" value="Username"/>
-  <h:inputText id="name" value="#{credentials.username}"/>
-</div>
+	@Observer("org.jboss.seam.security.loginSuccessful")
+	public void updateUserStats() {
+	userStats.setLastLoginDate(new Date());
+	userStats.incrementLoginCount();
+	}]]>
+	</programlisting>
+	<para>
+	  This observer method can be placed anywhere, even in the Authenticator component itself. More information about other security-related events appears later in the chapter.
+	</para>
+      </section>
+      
+    </section>
 
-<div>
-  <h:outputLabel for="password" value="Password"/>
-  <h:inputSecret id="password" value="#{credentials.password}"/>
-</div>
+    <section>
+      <title>Writing a login form</title>
+      <para>
+	The <literal>credentials</literal> component provides both <literal>username</literal> and <literal>password</literal> properties, catering for the most common authentication scenario. These properties can be bound directly to the username and password fields on a login form. Once these properties are set, calling <literal>identity.login()</literal> authenticates the user with the credentials provided. An example of a simple login form is as follows:
+      </para>
+      
+      <programlisting role="XHTML"><![CDATA[<div>
+      <h:outputLabel for="name" value="Username"/>
+      <h:inputText id="name" value="#{credentials.username}"/>
+      </div>
 
-<div>
-  <h:commandButton value="Login" action="#{identity.login}"/>
-</div>]]>
-</programlisting>
-			 <para>
-				Similarly, the user is logged out by calling <literal>#{identity.logout}</literal>. This action clears the security state of the currently authenticated user and invalidate the user's session.
-			</para>
-		</section>
-		
-		 <section>
-			<title>Configuration Summary</title>
-			 <para>
-				There are three easy steps to configure authentication:
-			</para>
-			 <itemizedlist>
-				<listitem>
-					<para>
-						Configure an authentication method in <filename>components.xml</filename>.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						Write an authentication method.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						Write a login form so that the user can authenticate.
-					</para>
-				</listitem>
-			</itemizedlist>
-		</section>
-		
-		 <section>
-			<title>Remember Me</title>
-			 <para>
-				Seam Security supports two different modes of the <emphasis>Remember Me</emphasis> functionality common to many web-based applications. The first mode allows the username to be stored in the user's browser as a cookie, and leaves the browser to remember the password. The second mode stores a unique token in a cookie, and lets a user authenticate automatically when they return to the site, without having to provide a password.
-			</para>
-			 <warning>
-				<para>
-					Although it is convenient for users, automatic client authentication through a persistent cookie on the client machine is dangerous because the effects of any cross-site scripting (XSS) security hole are magnified. Without the authentication cookie, the only cookie an attacker can steal with XSS is the user's <emphasis>current session cookie</emphasis> — so an attack can only occur while a user has a session open. If a persistent <emphasis>Remember Me</emphasis> cookie is stolen, an attacker can log in without authentication at any time. If you wish to use automatic client authentication, it is vital to protect your website against XSS attacks.
-				</para>
-				 <para>
-					Browser vendors introduced the <emphasis>Remember Passwords</emphasis> feature to combat this issue. Here, the browser remembers the username and password used to log in to a particular website and domain, and automatically fills in the login form when there is no session active. A login keyboard shortcut on your website can make the login process almost as convenient as the "Remember Me" cookie, and much safer. Some browsers (for example, Safari on OS X) store the login form data in the encrypted global operation system keychain. In a networked environment, the keychain can be transported with the user between laptop and desktop — cookies are not usually synchronised.
-				</para>
-				 <para>
-					Although persistent <emphasis>Remember Me</emphasis> cookies with automatic authentication are widely used, they are bad security practice. Cookies that recall only the user's login name, and fill out the login form with that username as a convenience, are much more secure.
-				</para>
-			</warning>
-			 <para>
-				No special configuration is required to enable the <emphasis>Remember Me</emphasis> feature for the default (safe, username-only) mode. In your login form, simply bind the <emphasis>Remember Me</emphasis> checkbox to <literal>rememberMe.enabled</literal>, as seen in the following example:
-			</para>
-			 
-<programlisting role="XHTML"><![CDATA[<div>
-  <h:outputLabel for="name" value="User name"/>
-  <h:inputText id="name" value="#{credentials.username}"/>
-</div>
-  
-<div>
-  <h:outputLabel for="password" value="Password"/>
-  <h:inputSecret id="password" value="#{credentials.password}" redisplay="true"/>
-</div>      
-  
-<div class="loginRow">
-  <h:outputLabel for="rememberMe" value="Remember me"/>
-  <h:selectBooleanCheckbox id="rememberMe" value="#{rememberMe.enabled}"/>
-</div>]]>
-</programlisting>
-			 <section>
-				<title>Token-based <emphasis>Remember Me</emphasis> Authentication</title>
-				 <para>
-					To use the automatic, token-based mode of the <emphasis>Remember Me</emphasis> feature, you must first configure a token store. These authentication tokens are commonly stored within a database. Seam supports this method, but you can also implement your own token store by using the <literal>org.jboss.seam.security.TokenStore</literal> interface. This section assumes that you will be using the provided <literal>JpaTokenStore</literal> implementation to store authentication tokens inside a database table.
-				</para>
-				 <para>
-					First, create a new Entity to hold the tokens. The following is one possible structure:
-				</para>
-				 
-<programlisting role="JAVA"><![CDATA[@Entity
-public class AuthenticationToken implements Serializable {  
-  private Integer tokenId;
-  private String username;
-  private String value;
-   
-  @Id @GeneratedValue
-  public Integer getTokenId() {
-    return tokenId;
-  }
-   
-  public void setTokenId(Integer tokenId) {
-     this.tokenId = tokenId;
-  }
-   
-  @TokenUsername
-  public String getUsername() {
-     return username;
-  }
-   
-  public void setUsername(String username) {
-    this.username = username;
-  }
-   
-  @TokenValue
-  public String getValue() {
-    return value;
-  }
-   
-  public void setValue(String value) {
-    this.value = value;
-  }
-}]]>
-</programlisting>
-				 <para>
-					Several special annotations, <literal>@TokenUsername</literal> and <literal>@TokenValue</literal>, are used to configure the username and token properties of the entity. These annotations are required for the entity that holds the authentication tokens.
-				</para>
-				 <para>
-					The next step is to configure <literal>JpaTokenStore</literal> to store and retrieve authentication tokens with this entity bean. Do this by specifying the <literal>token-class</literal> attribute in <filename>components.xml</filename>:
-				</para>
-				 
-<programlisting role="XML"><![CDATA[ 
-<security:jpa-token-store 
-     token-class="org.jboss.seam.example.seamspace.AuthenticationToken"/>]]>
-</programlisting>
-				 <para>
-					The final step is to configure the <literal>RememberMe</literal> component in <filename>components.xml</filename>. Its <literal>mode</literal> should be set to <literal>autoLogin</literal>:
-				</para>
-				 
-<programlisting role="XML"><![CDATA[  
-<security:remember-me mode="autoLogin"/>]]>
-</programlisting>
-				 <para>
-					Users who check the <emphasis>Remember Me</emphasis> checkbox will now be authenticated automatically.
-				</para>
-				 <para>
-					To ensure that users are automatically authenticated when returning to the site, the following section should be placed in <filename>components.xml</filename>:
-				</para>
-				 
-<programlisting role="XML"><![CDATA[<event type="org.jboss.seam.security.notLoggedIn">
-  <action execute="#{redirect.captureCurrentView}"/>
-  <action execute="#{identity.tryLogin()}"/>
-</event>
-<event type="org.jboss.seam.security.loginSuccessful">
-  <action execute="#{redirect.returnToCapturedView}"/>
-</event>]]>
-</programlisting>
-			</section>
-			
-		</section>
-		
-		 <section>
-			<title>Handling Security Exceptions</title>
-			 <para>
-				So that users do not receive a basic default error page when a security error occurs, you should edit <filename>pages.xml</filename> to redirect users to a more attractive page. The two main exceptions thrown by the security API are:
-			</para>
-			 <itemizedlist>
-				<listitem>
-					<para>
-						<exceptionname>NotLoggedInException</exceptionname> — This exception is thrown when the user attempts to access a restricted action or page when they are not logged in.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						<exceptionname>AuthorizationException</exceptionname> — This exception is only thrown if the user is already logged in, and they have attempted to access a restricted action or page for which they do not have the necessary privileges.
-					</para>
-				</listitem>
-			</itemizedlist>
-			 <para>
-				In the case of a <exceptionname>NotLoggedInException</exceptionname>, we recommend the user be redirected to a login or registration page so that they can log in. For an <exceptionname>AuthorizationException</exceptionname>, it may be useful to redirect the user to an error page. Here's an example of a <filename>pages.xml</filename> file that redirects both of these security exceptions:
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<pages>
+      <div>
+      <h:outputLabel for="password" value="Password"/>
+      <h:inputSecret id="password" value="#{credentials.password}"/>
+      </div>
 
-  ...
+      <div>
+      <h:commandButton value="Login" action="#{identity.login}"/>
+      </div>]]>
+      </programlisting>
+      <para>
+	Similarly, the user is logged out by calling <literal>#{identity.logout}</literal>. This action clears the security state of the currently authenticated user and invalidate the user's session.
+      </para>
+    </section>
+    
+    <section>
+      <title>Configuration Summary</title>
+      <para>
+	There are three easy steps to configure authentication:
+      </para>
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    Configure an authentication method in <filename>components.xml</filename>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Write an authentication method.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Write a login form so that the user can authenticate.
+	  </para>
+	</listitem>
+      </itemizedlist>
+    </section>
+    
+    <section>
+      <title>Remember Me</title>
+      <para>
+	Seam Security supports two different modes of the <emphasis>Remember Me</emphasis> functionality common to many web-based applications. The first mode allows the username to be stored in the user's browser as a cookie, and leaves the browser to remember the password. The second mode stores a unique token in a cookie, and lets a user authenticate automatically when they return to the site, without having to provide a password.
+      </para>
+      <warning>
+	<para>
+	  Although it is convenient for users, automatic client authentication through a persistent cookie on the client machine is dangerous because the effects of any cross-site scripting (XSS) security hole are magnified. Without the authentication cookie, the only cookie an attacker can steal with XSS is the user's <emphasis>current session cookie</emphasis> — so an attack can only occur while a user has a session open. If a persistent <emphasis>Remember Me</emphasis> cookie is stolen, an attacker can log in without authentication at any time. If you wish to use automatic client authentication, it is vital to protect your website against XSS attacks.
+	</para>
+	<para>
+	  Browser vendors introduced the <emphasis>Remember Passwords</emphasis> feature to combat this issue. Here, the browser remembers the username and password used to log in to a particular website and domain, and automatically fills in the login form when there is no session active. A login keyboard shortcut on your website can make the login process almost as convenient as the "Remember Me" cookie, and much safer. Some browsers (for example, Safari on OS X) store the login form data in the encrypted global operation system keychain. In a networked environment, the keychain can be transported with the user between laptop and desktop — cookies are not usually synchronised.
+	</para>
+	<para>
+	  Although persistent <emphasis>Remember Me</emphasis> cookies with automatic authentication are widely used, they are bad security practice. Cookies that recall only the user's login name, and fill out the login form with that username as a convenience, are much more secure.
+	</para>
+      </warning>
+      <para>
+	No special configuration is required to enable the <emphasis>Remember Me</emphasis> feature for the default (safe, username-only) mode. In your login form, simply bind the <emphasis>Remember Me</emphasis> checkbox to <literal>rememberMe.enabled</literal>, as seen in the following example:
+      </para>
+      
+      <programlisting role="XHTML"><![CDATA[<div>
+      <h:outputLabel for="name" value="User name"/>
+      <h:inputText id="name" value="#{credentials.username}"/>
+      </div>
+      
+      <div>
+      <h:outputLabel for="password" value="Password"/>
+      <h:inputSecret id="password" value="#{credentials.password}" redisplay="true"/>
+      </div>      
+      
+      <div class="loginRow">
+      <h:outputLabel for="rememberMe" value="Remember me"/>
+      <h:selectBooleanCheckbox id="rememberMe" value="#{rememberMe.enabled}"/>
+      </div>]]>
+      </programlisting>
+      <section>
+	<title>Token-based <emphasis>Remember Me</emphasis> Authentication</title>
+	<para>
+	  To use the automatic, token-based mode of the <emphasis>Remember Me</emphasis> feature, you must first configure a token store. These authentication tokens are commonly stored within a database. Seam supports this method, but you can also implement your own token store by using the <literal>org.jboss.seam.security.TokenStore</literal> interface. This section assumes that you will be using the provided <literal>JpaTokenStore</literal> implementation to store authentication tokens inside a database table.
+	</para>
+	<para>
+	  First, create a new Entity to hold the tokens. The following is one possible structure:
+	</para>
+	
+	<programlisting role="JAVA"><![CDATA[@Entity
+	public class AuthenticationToken implements Serializable {  
+	private Integer tokenId;
+	private String username;
+	private String value;
+	
+	@Id @GeneratedValue
+	public Integer getTokenId() {
+	return tokenId;
+	}
+	
+	public void setTokenId(Integer tokenId) {
+	this.tokenId = tokenId;
+	}
+	
+	@TokenUsername
+	public String getUsername() {
+	return username;
+	}
+	
+	public void setUsername(String username) {
+	this.username = username;
+	}
+	
+	@TokenValue
+	public String getValue() {
+	return value;
+	}
+	
+	public void setValue(String value) {
+	this.value = value;
+	}
+	}]]>
+	</programlisting>
+	<para>
+	  Several special annotations, <literal>@TokenUsername</literal> and <literal>@TokenValue</literal>, are used to configure the username and token properties of the entity. These annotations are required for the entity that holds the authentication tokens.
+	</para>
+	<para>
+	  The next step is to configure <literal>JpaTokenStore</literal> to store and retrieve authentication tokens with this entity bean. Do this by specifying the <literal>token-class</literal> attribute in <filename>components.xml</filename>:
+	</para>
+	
+	<programlisting role="XML"><![CDATA[ 
+	<security:jpa-token-store 
+	token-class="org.jboss.seam.example.seamspace.AuthenticationToken"/>]]>
+	</programlisting>
+	<para>
+	  The final step is to configure the <literal>RememberMe</literal> component in <filename>components.xml</filename>. Its <literal>mode</literal> should be set to <literal>autoLogin</literal>:
+	</para>
+	
+	<programlisting role="XML"><![CDATA[  
+	<security:remember-me mode="autoLogin"/>]]>
+	</programlisting>
+	<para>
+	  Users who check the <emphasis>Remember Me</emphasis> checkbox will now be authenticated automatically.
+	</para>
+	<para>
+	  To ensure that users are automatically authenticated when returning to the site, the following section should be placed in <filename>components.xml</filename>:
+	</para>
+	
+	<programlisting role="XML"><![CDATA[<event type="org.jboss.seam.security.notLoggedIn">
+	<action execute="#{redirect.captureCurrentView}"/>
+	<action execute="#{identity.tryLogin()}"/>
+	</event>
+	<event type="org.jboss.seam.security.loginSuccessful">
+	<action execute="#{redirect.returnToCapturedView}"/>
+	</event>]]>
+	</programlisting>
+      </section>
+      
+    </section>
+    
+    <section>
+      <title>Handling Security Exceptions</title>
+      <para>
+	So that users do not receive a basic default error page when a security error occurs, you should edit <filename>pages.xml</filename> to redirect users to a more attractive page. The two main exceptions thrown by the security API are:
+      </para>
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    <exceptionname>NotLoggedInException</exceptionname> — This exception is thrown when the user attempts to access a restricted action or page when they are not logged in.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    <exceptionname>AuthorizationException</exceptionname> — This exception is only thrown if the user is already logged in, and they have attempted to access a restricted action or page for which they do not have the necessary privileges.
+	  </para>
+	</listitem>
+      </itemizedlist>
+      <para>
+	In the case of a <exceptionname>NotLoggedInException</exceptionname>, we recommend the user be redirected to a login or registration page so that they can log in. For an <exceptionname>AuthorizationException</exceptionname>, it may be useful to redirect the user to an error page. Here's an example of a <filename>pages.xml</filename> file that redirects both of these security exceptions:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<pages>
 
-  <exception class="org.jboss.seam.security.NotLoggedInException">
-    <redirect view-id="/login.xhtml">
+      ...
+
+      <exception class="org.jboss.seam.security.NotLoggedInException">
+      <redirect view-id="/login.xhtml">
       <message>You must be logged in to perform this action</message>
-    </redirect>
-  </exception>
+      </redirect>
+      </exception>
 
-  <exception class="org.jboss.seam.security.AuthorizationException">
-    <end-conversation/>
+      <exception class="org.jboss.seam.security.AuthorizationException">
+      <end-conversation/>
       <redirect view-id="/security_error.xhtml">
-        <message>
-          You do not have the necessary security privileges to perform this action.
-        </message>
+      <message>
+      You do not have the necessary security privileges to perform this action.
+      </message>
       </redirect>
-  </exception>
+      </exception>
 
-</pages>]]>
-</programlisting>
-			 <para>
-				Most web applications require more sophisticated handling of login redirection. Seam includes some special functionality, outlined in the following section.
-			</para>
-		</section>
-		
-		 <section>
-			<title>Login Redirection</title>
-			 <para>
-				When an unauthenticated user tries to access a particular view or wildcarded view ID, you can have Seam redirect the user to a login screen as follows:
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<pages login-view-id="/login.xhtml">
+      </pages>]]>
+      </programlisting>
+      <para>
+	Most web applications require more sophisticated handling of login redirection. Seam includes some special functionality, outlined in the following section.
+      </para>
+    </section>
+    
+    <section>
+      <title>Login Redirection</title>
+      <para>
+	When an unauthenticated user tries to access a particular view or wildcarded view ID, you can have Seam redirect the user to a login screen as follows:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<pages login-view-id="/login.xhtml">
 
-  <page view-id="/members/*" login-required="true"/> 
-... 
-</pages>]]>
-</programlisting>
-			 <note>
-				<para>
-					This is more refined than the exception handler shown above, but should probably be used in conjunction with it.
-				</para>
-			</note>
-			 <para>
-				After the user logs in, we want to automatically redirect them to the action that required login. If you add the following event listeners to <filename>components.xml</filename>, attempts to access a restricted view while not logged in are remembered. Upon a successful login, the user is redirected to the originally requested view, with any page parameters that existed in the original request.
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<event type="org.jboss.seam.security.notLoggedIn">
-  <action execute="#{redirect.captureCurrentView}"/>
-</event>
+      <page view-id="/members/*" login-required="true"/> 
+      ... 
+      </pages>]]>
+      </programlisting>
+      <note>
+	<para>
+	  This is more refined than the exception handler shown above, but should probably be used in conjunction with it.
+	</para>
+      </note>
+      <para>
+	After the user logs in, we want to automatically redirect them to the action that required login. If you add the following event listeners to <filename>components.xml</filename>, attempts to access a restricted view while not logged in are remembered. Upon a successful login, the user is redirected to the originally requested view, with any page parameters that existed in the original request.
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<event type="org.jboss.seam.security.notLoggedIn">
+      <action execute="#{redirect.captureCurrentView}"/>
+      </event>
 
-<event type="org.jboss.seam.security.postAuthenticate">
-  <action execute="#{redirect.returnToCapturedView}"/>
-</event>]]>
-</programlisting>
-			 <note>
-				<para>
-					Login redirection is implemented as a conversation-scoped mechanism, so do not end the conversation in your <literal>authenticate()</literal> method.
-				</para>
-			</note>
-		</section>
-		
-		 <section>
-			<title>HTTP Authentication</title>
-			 <para>
-				Although we do not recommend it unless absolutely necessary, Seam provides the means to authenticate with either HTTP Basic or HTTP Digest (RFC 2617) methods. For either form, you must first enable the <literal>authentication-filter</literal> component in <filename>components.xml</filename>:
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<web:authentication-filter url-pattern="*.seam" auth-type="basic"/> ]]>
-</programlisting>
-			 <para>
-				To enable basic authentication, set <literal>auth-type</literal> to <literal>basic</literal>. For digest authentication, set it to <literal>digest</literal>. If you want to use digest authentication, you must also set the <literal>key</literal> and <literal>realm</literal>:
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<web:authentication-filter url-pattern="*.seam" auth-type="digest" 
-     key="AA3JK34aSDlkj" realm="My App"/> ]]>
-</programlisting>
-			 <para>
-				The <literal>key</literal> can be any String value. The <literal>realm</literal> is the name of the authentication realm that is presented to the user when they authenticate.
-			</para>
-			 <section>
-				<title>Writing a Digest Authenticator</title>
-				 <para>
-					If using digest authentication, your authenticator class should extend the abstract class <literal>org.jboss.seam.security.digest.DigestAuthenticator</literal>, and use the <literal>validatePassword()</literal> method to validate the user's plain text password against the digest request. Here is an example:
-				</para>
-				 
-<programlisting role="JAVA"><![CDATA[public boolean authenticate() {
-  try {
-    User user = (User) entityManager.createQuery(
-         "from User where username = "username")
-         .setParameter("username", identity.getUsername())
-         .getSingleResult();
+      <event type="org.jboss.seam.security.postAuthenticate">
+      <action execute="#{redirect.returnToCapturedView}"/>
+      </event>]]>
+      </programlisting>
+      <note>
+	<para>
+	  Login redirection is implemented as a conversation-scoped mechanism, so do not end the conversation in your <literal>authenticate()</literal> method.
+	</para>
+      </note>
+    </section>
+    
+    <section>
+      <title>HTTP Authentication</title>
+      <para>
+	Although we do not recommend it unless absolutely necessary, Seam provides the means to authenticate with either HTTP Basic or HTTP Digest (RFC 2617) methods. For either form, you must first enable the <literal>authentication-filter</literal> component in <filename>components.xml</filename>:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<web:authentication-filter url-pattern="*.seam" auth-type="basic"/> ]]>
+      </programlisting>
+      <para>
+	To enable basic authentication, set <literal>auth-type</literal> to <literal>basic</literal>. For digest authentication, set it to <literal>digest</literal>. If you want to use digest authentication, you must also set the <literal>key</literal> and <literal>realm</literal>:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<web:authentication-filter url-pattern="*.seam" auth-type="digest" 
+      key="AA3JK34aSDlkj" realm="My App"/> ]]>
+      </programlisting>
+      <para>
+	The <literal>key</literal> can be any String value. The <literal>realm</literal> is the name of the authentication realm that is presented to the user when they authenticate.
+      </para>
+      <section>
+	<title>Writing a Digest Authenticator</title>
+	<para>
+	  If using digest authentication, your authenticator class should extend the abstract class <literal>org.jboss.seam.security.digest.DigestAuthenticator</literal>, and use the <literal>validatePassword()</literal> method to validate the user's plain text password against the digest request. Here is an example:
+	</para>
+	
+	<programlisting role="JAVA"><![CDATA[public boolean authenticate() {
+	try {
+	User user = (User) entityManager.createQuery(
+	"from User where username = "username")
+	.setParameter("username", identity.getUsername())
+	.getSingleResult();
 
-    return validatePassword(user.getPassword());
-  } catch (NoResultException ex) {
-    return false;
-  }
-}]]>
-</programlisting>
-			</section>
-			
-		</section>
-		
-		 <section>
-			<title>Advanced Authentication Features</title>
-			 <para>
-				This section explores some of the advanced features provided by the security API for addressing more complex security requirements.
-			</para>
-			 <section>
-				<title>Using your container's JAAS configuration</title>
-				 <para>
-					If you prefer not to use the simplified JAAS configuration provided by the Seam Security API, you can use the default system JAAS configuration by adding a <literal>jaas-config-name</literal> property to <literal>components.xml</literal>. For example, if you use JBoss AS and want to use the <literal>other</literal> policy (which uses the <literal>UsersRolesLoginModule</literal> login module provided by JBoss AS), then the entry in <filename>components.xml</filename> would look like this:
-				</para>
-				 
-<programlisting role="XML"><![CDATA[<security:identity jaas-config-name="other"/>]]>
-</programlisting>
-				 <para>
-					Keep in mind that doing this does not mean that your user will be authenticated in your Seam application container — it instructs Seam Security to authenticate itself with the configured JAAS security policy.
-				</para>
-			</section>
-			
-		</section>
-		
+	return validatePassword(user.getPassword());
+	} catch (NoResultException ex) {
+	return false;
+	}
+	}]]>
+	</programlisting>
+      </section>
+      
+    </section>
+    
+    <section>
+      <title>Advanced Authentication Features</title>
+      <para>
+	This section explores some of the advanced features provided by the security API for addressing more complex security requirements.
+      </para>
+      <section>
+	<title>Using your container's JAAS configuration</title>
+	<para>
+	  If you prefer not to use the simplified JAAS configuration provided by the Seam Security API, you can use the default system JAAS configuration by adding a <literal>jaas-config-name</literal> property to <literal>components.xml</literal>. For example, if you use JBoss AS and want to use the <literal>other</literal> policy (which uses the <literal>UsersRolesLoginModule</literal> login module provided by JBoss AS), then the entry in <filename>components.xml</filename> would look like this:
+	</para>
+	
+	<programlisting role="XML"><![CDATA[<security:identity jaas-config-name="other"/>]]>
+	</programlisting>
+	<para>
+	  Keep in mind that doing this does not mean that your user will be authenticated in your Seam application container — it instructs Seam Security to authenticate itself with the configured JAAS security policy.
+	</para>
+      </section>
+      
+    </section>
+    
+  </section>
+ 
+  <section>
+    <title>Identity Management</title>
+    <para>
+      Identity Management provides a standard API for managing a Seam application's users and roles, regardless of the identity store (database, LDAP, etc.) used in back-end operations. The <literal>identityManager</literal> component is at the core of the Identity Management API, and provides all methods for creating, modifying, and deleting users, granting and revoking roles, changing passwords, enabling and disabling user accounts, authenticating users, and listing users and roles.
+    </para>
+    <para>
+      Before use, the <literal>identityManager</literal> must be configured with at least one <literal>IdentityStore</literal>. These components interact with the back-end security provider.
+    </para>
+    <mediaobject>
+      <imageobject role="fo">
+	<imagedata align="center" fileref="images/security-identitymanager.png" format="PNG" scalefit="1" />
+      </imageobject>
+      <imageobject role="html">
+	<imagedata align="center" fileref="images/security-identitymanager.png" format="PNG" scalefit="1" />
+      </imageobject>
+    </mediaobject>
+    <section>
+      <title>Configuring IdentityManager</title>
+      <para>
+	The <literal>identityManager</literal> component allows you to configure separate identity stores for authentication and authorization. This means that users can be authenticated against one identity store (for example, an LDAP directory), but have their roles loaded from another identity store (such as a relational database).
+      </para>
+      <para>
+	Seam provides two <literal>IdentityStore</literal> implementations out of the box. The default, <literal>JpaIdentityStore</literal>, uses a relational database to store user and role information. The other implementation is <literal>LdapIdentityStore</literal>, which uses an LDAP directory to store users and roles.
+      </para>
+      <para>
+	The <literal>identityManager</literal> component has two configurable properties: <literal>identityStore</literal> and <literal>roleIndentityStore</literal>. The value for these properties must be an EL expression that refers to a Seam component with the <literal>IdentityStore</literal> interface. If left unconfigured, the default (<literal>JpaIdentityStore</literal>) will be used. If only the <literal>identityStore</literal> property is configured, the same value will be used for <literal>roleIdentityStore</literal>. For example, the following entry in <filename>components.xml</filename> will configure <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for both user-related and role-related operations:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<security:identity-manager identity-store="#{ldapIdentityStore}"/>
+      ]]>
+      </programlisting>
+      <para>
+	The following example configures <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for user-related operations, and <literal>JpaIdentityStore</literal> for role-related operations:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<security:identity-manager identity-store="#{ldapIdentityStore}" 
+      role-identity-store="#{jpaIdentityStore}"/>
+      ]]>
+      </programlisting>
+      <para>
+	The following sections explain each identity storage method in greater detail.
+      </para>
+    </section>
+    
+    <section>
+      <title>JpaIdentityStore</title>
+      <para>
+	This method stores users and roles in a relational database. It is designed to allow flexible database design and table structure. A set of special annotations lets entity beans store user and role records.
+      </para>
+      <section>
+	<title>Configuring JpaIdentityStore</title>
+	<para>
+	  Both <literal>user-class</literal> and <literal>role-class</literal> must be configured before <literal>JpaIdentityStore</literal> can be used. These properties refer to the entity classes used to store user and role records, respectively. The following example shows the <filename>components.xml</filename> file from the SeamSpace example:
+	</para>
+	
+	<programlisting role="XML"><![CDATA[ 
+	<security:jpa-identity-store 
+	user-class="org.jboss.seam.example.seamspace.MemberAccount" 
+	role-class="org.jboss.seam.example.seamspace.MemberRole"/> 
+	]]>
+	</programlisting>
+      </section>
+      
+      <section>
+	<title>Configuring the Entities</title>
+	<para>
+	  The following table describes the special annotations used to configure entity beans for user and role storage.
+	</para>
+	<table>
+	  <title>User Entity Annotations</title>
+	  <tgroup cols="3">
+	    <colspec colnum="1" colwidth="2*"></colspec>
+	    <colspec colnum="2" colwidth="1*"></colspec>
+	    <colspec colnum="3" colwidth="3*"></colspec>
+	    <thead>
+	      <row>
+		<entry align="center">
+		  <para>
+		    Annotation
+		  </para>
+		</entry>
+		<entry align="center">
+		  <para>
+		    Status
+		  </para>
+		</entry>
+		<entry align="center">
+		  <para>
+		    Description
+		  </para>
+		</entry>
+	      </row>
+	    </thead>
+	    <tbody>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@UserPrincipal</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Required
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the user's username.
+		  </para>
+		</entry>
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@UserPassword</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Required
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the user's password. It allows a <literal>hash</literal> algorithm to be specified for password hashing. Possible values for <literal>hash</literal> are <literal>md5</literal>, <literal>sha</literal> and <literal>none</literal>. For example:
+		  </para>
+		  <para>
+		    It is possible to extend the <literal>PasswordHash</literal> component to implement other hashing algorithms, if required.
+		  </para>
+		</entry>
+		<programlisting role="JAVA"><![CDATA[@UserPassword(hash = "md5") 
+		public String getPasswordHash() { 
+		return passwordHash; 
+		}]]>
+		</programlisting>
+
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@UserFirstName</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Optional
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the user's first name.
+		  </para>
+		</entry>
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@UserLastName</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Optional
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the user's last name.
+		  </para>
+		</entry>
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@UserEnabled</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Optional
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the enabled user status. This should be a Boolean property. If not present, all user accounts are assumed to be enabled.
+		  </para>
+		</entry>
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@UserRoles</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Required
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the roles of the user. This property will be described in more detail in a later section. <!-- #modify: xref if possible -->
+		  </para>
+		</entry>
+	      </row>
+	    </tbody>
+	  </tgroup>
+	</table>
+	<table>
+	  <title>Role Entity Annotations</title>
+	  <tgroup cols="3">
+	    <colspec colnum="1" colwidth="2*"></colspec>
+	    <colspec colnum="2" colwidth="1*"></colspec>
+	    <colspec colnum="3" colwidth="3*"></colspec>
+	    <thead>
+	      <row>
+		<entry align="center">
+		  <para>
+		    Annotation
+		  </para>
+		</entry>
+		<entry align="center">
+		  <para>
+		    Status
+		  </para>
+		</entry>
+		<entry align="center">
+		  <para>
+		    Description
+		  </para>
+		</entry>
+	      </row>
+	    </thead>
+	    <tbody>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@RoleName</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Required
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the name of the role.
+		  </para>
+		</entry>
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@RoleGroups</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Optional
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method containing the group memberships of the role.
+		  </para>
+		</entry>
+	      </row>
+	      <row>
+		<entry>
+		  <para>
+		    <literal>@RoleConditional</literal>
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    Optional
+		  </para>
+		</entry>
+		<entry>
+		  <para>
+		    This annotation marks the field or method that indicates whether a role is conditional. Conditional roles are explained later in this chapter.
+		  </para>
+		</entry>
+	      </row>
+	    </tbody>
+	  </tgroup>
+	</table>
+      </section>
+      
+      <section>
+	<title>Entity Bean Examples</title>
+	<para>
+	  As mentioned previously, <literal>JpaIdentityStore</literal> is designed to be as flexible as possible when it comes to the database schema design of your user and role tables. This section looks at a number of possible database schemas that can be used to store user and role records.
+	</para>
+	<section>
+	  <title>Minimal schema example</title>
+	  <para>
+	    Here, a simple user and role table are linked via a many-to-many relationship using a cross-reference table named <literal>UserRoles</literal>.
+	  </para>
+	  <mediaobject>
+	    <imageobject role="fo">
+	      <imagedata align="center" fileref="images/security-entities-1.png" format="PNG" scalefit="1" />
+	    </imageobject>
+	    <imageobject role="html">
+	      <imagedata align="center" fileref="images/security-entities-1.png" format="PNG" />
+	    </imageobject>
+	  </mediaobject>
+	  
+	  <programlisting role="JAVA"><![CDATA[@Entity
+	  public class User {
+	  private Integer userId;
+	  private String username;
+	  private String passwordHash;
+	  private Set<Role> roles;
+	  
+	  @Id @GeneratedValue
+	  public Integer getUserId() { return userId; }
+	  public void setUserId(Integer userId) { this.userId = userId; }
+	  
+	  @UserPrincipal
+	  public String getUsername() { return username; }
+	  public void setUsername(String username) { this.username = username; }
+	  
+	  @UserPassword(hash = "md5")
+	  public String getPasswordHash() { return passwordHash; }
+	  public void setPasswordHash(String passwordHash) { 
+	  this.passwordHash = passwordHash; 
+	  }
+	  
+	  @UserRoles
+	  @ManyToMany(targetEntity = Role.class)
+	  @JoinTable(name = "UserRoles", 
+	  joinColumns = @JoinColumn(name = "UserId"),
+	  inverseJoinColumns = @JoinColumn(name = "RoleId"))
+	  public Set<Role> getRoles() { return roles; }
+	  public void setRoles(Set<Role> roles) { this.roles = roles; }
+	  }]]>
+	  </programlisting>
+	  
+	  <programlisting><![CDATA[@Entity
+	  public class Role {
+	  private Integer roleId;
+	  private String rolename;
+	  
+	  @Id @Generated
+	  public Integer getRoleId() { return roleId; }
+	  public void setRoleId(Integer roleId) { this.roleId = roleId; }
+	  
+	  @RoleName
+	  public String getRolename() { return rolename; }
+	  public void setRolename(String rolename) { this.rolename = rolename; }
+	  }]]>
+	  </programlisting>
 	</section>
 	
-	 <section>
-		<title>Identity Management</title>
-		 <para>
-			Identity Management provides a standard API for managing a Seam application's users and roles, regardless of the identity store (database, LDAP, etc.) used in back-end operations. The <literal>identityManager</literal> component is at the core of the Identity Management API, and provides all methods for creating, modifying, and deleting users, granting and revoking roles, changing passwords, enabling and disabling user accounts, authenticating users, and listing users and roles.
-		</para>
-		 <para>
-			Before use, the <literal>identityManager</literal> must be configured with at least one <literal>IdentityStore</literal>. These components interact with the back-end security provider.
-		</para>
-		 <mediaobject>
-			<imageobject role="fo">
-				<imagedata align="center" fileref="images/security-identitymanager.png" format="PNG" scalefit="1" />
-			</imageobject>
-			 <imageobject role="html">
-				<imagedata align="center" fileref="images/security-identitymanager.png" format="PNG" scalefit="1" />
-			</imageobject>
-		</mediaobject>
-		 <section>
-			<title>Configuring IdentityManager</title>
-			 <para>
-				The <literal>identityManager</literal> component allows you to configure separate identity stores for authentication and authorization. This means that users can be authenticated against one identity store (for example, an LDAP directory), but have their roles loaded from another identity store (such as a relational database).
-			</para>
-			 <para>
-				Seam provides two <literal>IdentityStore</literal> implementations out of the box. The default, <literal>JpaIdentityStore</literal>, uses a relational database to store user and role information. The other implementation is <literal>LdapIdentityStore</literal>, which uses an LDAP directory to store users and roles.
-			</para>
-			 <para>
-				The <literal>identityManager</literal> component has two configurable properties: <literal>identityStore</literal> and <literal>roleIndentityStore</literal>. The value for these properties must be an EL expression that refers to a Seam component with the <literal>IdentityStore</literal> interface. If left unconfigured, the default (<literal>JpaIdentityStore</literal>) will be used. If only the <literal>identityStore</literal> property is configured, the same value will be used for <literal>roleIdentityStore</literal>. For example, the following entry in <filename>components.xml</filename> will configure <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for both user-related and role-related operations:
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<security:identity-manager identity-store="#{ldapIdentityStore}"/>
-]]>
-</programlisting>
-			 <para>
-				The following example configures <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for user-related operations, and <literal>JpaIdentityStore</literal> for role-related operations:
-			</para>
-			 
-<programlisting role="XML"><![CDATA[<security:identity-manager identity-store="#{ldapIdentityStore}" 
-          role-identity-store="#{jpaIdentityStore}"/>
-]]>
-</programlisting>
-			 <para>
-				The following sections explain each identity storage method in greater detail.
-			</para>
-		</section>
-		
-		 <section>
-			<title>JpaIdentityStore</title>
-			 <para>
-				This method stores users and roles in a relational database. It is designed to allow flexible database design and table structure. A set of special annotations lets entity beans store user and role records.
-			</para>
-			 <section>
-				<title>Configuring JpaIdentityStore</title>
-				 <para>
-					Both <literal>user-class</literal> and <literal>role-class</literal> must be configured before <literal>JpaIdentityStore</literal> can be used. These properties refer to the entity classes used to store user and role records, respectively. The following example shows the <filename>components.xml</filename> file from the SeamSpace example:
-				</para>
-				 
-<programlisting role="XML"><![CDATA[ 
-<security:jpa-identity-store 
-          user-class="org.jboss.seam.example.seamspace.MemberAccount" 
-          role-class="org.jboss.seam.example.seamspace.MemberRole"/> 
-]]>
-</programlisting>
+	<section>
+	  <title>Complex Schema Example</title>
+	  <para>
+	    This example builds on the previous minimal example by including all optional fields, and allowing group memberships for roles.
+	  </para>
+	  <mediaobject>
+	    <imageobject role="fo">
+	      <imagedata align="center" fileref="images/security-entities-2.png" format="PNG" scalefit="1" />
+	    </imageobject>
+	    <imageobject role="html">
+	      <imagedata align="center" fileref="images/security-entities-2.png" format="PNG" scalefit="1" />
+	    </imageobject>
+	  </mediaobject>
+	  
+	  <programlisting role="JAVA"><![CDATA[@Entity
+	  public class User {
+	  private Integer userId;
+	  private String username;
+	  private String passwordHash;
+	  private Set<Role> roles;
+	  private String firstname;
+	  private String lastname;
+	  private boolean enabled;
+	  
+	  @Id @GeneratedValue
+	  public Integer getUserId() { return userId; }
+	  public void setUserId(Integer userId) { this.userId = userId; }
+	  
+	  @UserPrincipal
+	  public String getUsername() { return username; }
+	  public void setUsername(String username) { this.username = username; }
+	  
+	  @UserPassword(hash = "md5")
+	  public String getPasswordHash() { return passwordHash; }
+	  public void setPasswordHash(String passwordHash) { 
+	  this.passwordHash = passwordHash; 
+	  }
+	  
+	  @UserFirstName
+	  public String getFirstname() { return firstname; }
+	  public void setFirstname(String firstname) { 
+	  this.firstname = firstname; 
+	  }
+	  
+	  @UserLastName
+	  public String getLastname() { return lastname; }
+	  public void setLastname(String lastname) { this.lastname = lastname; }
+	  
+	  @UserEnabled
+	  public boolean isEnabled() { return enabled; }
+	  public void setEnabled(boolean enabled) { this.enabled = enabled; }
+	  
+	  @UserRoles
+	  @ManyToMany(targetEntity = Role.class)
+	  @JoinTable(name = "UserRoles", 
+	  joinColumns = @JoinColumn(name = "UserId"),
+	  inverseJoinColumns = @JoinColumn(name = "RoleId"))
+	  public Set<Role> getRoles() { return roles; }
+	  public void setRoles(Set<Role> roles) { this.roles = roles; }
+	  }]]>
+	  </programlisting>
+	  
+	  <programlisting><![CDATA[@Entity
+	  public class Role {
+	  private Integer roleId;
+	  private String rolename;
+	  private boolean conditional;
+	  
+	  @Id @Generated
+	  public Integer getRoleId() { return roleId; }
+	  public void setRoleId(Integer roleId) { this.roleId = roleId; }
+	  
+	  @RoleName
+	  public String getRolename() { return rolename; }
+	  public void setRolename(String rolename) { this.rolename = rolename; }
+	  
+	  @RoleConditional
+	  public boolean isConditional() { return conditional; }
+	  public void setConditional(boolean conditional) { 
+	  this.conditional = conditional; 
+	  }
+	  
+	  @RoleGroups
+	  @ManyToMany(targetEntity = Role.class)
+	  @JoinTable(name = "RoleGroups", 
+	  joinColumns = @JoinColumn(name = "RoleId"),
+	  inverseJoinColumns = @JoinColumn(name = "GroupId"))
+	  public Set<Role> getGroups() { return groups; }
+	  public void setGroups(Set<Role> groups) { this.groups = groups; }  
+	  
+	  }]]>
+	  </programlisting>
+	</section>
+	
 			</section>
 			
-			 <section>
-				<title>Configuring the Entities</title>
-				 <para>
-					The following table describes the special annotations used to configure entity beans for user and role storage.
-				</para>
-				 <table>
-					<title>User Entity Annotations</title>
-					 <tgroup cols="3">
-						<colspec colnum="1" colwidth="2*"></colspec>
-						 <colspec colnum="2" colwidth="1*"></colspec>
-						 <colspec colnum="3" colwidth="3*"></colspec>
-						 <thead>
-							<row>
-								<entry align="center">
-									<para>
-										Annotation
-									</para>
-								</entry>
-								 <entry align="center">
-									<para>
-										Status
-									</para>
-								</entry>
-								 <entry align="center">
-									<para>
-										Description
-									</para>
-								</entry>
-							</row>
-						</thead>
-						 <tbody>
-							<row>
-								<entry>
-									<para>
-										<literal>@UserPrincipal</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Required
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the user's username.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@UserPassword</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Required
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the user's password. It allows a <literal>hash</literal> algorithm to be specified for password hashing. Possible values for <literal>hash</literal> are <literal>md5</literal>, <literal>sha</literal> and <literal>none</literal>. For example:
-									</para>
-									 
-<programlisting role="JAVA"><![CDATA[@UserPassword(hash = "md5") 
-public String getPasswordHash() { 
-  return passwordHash; 
-}]]>
-</programlisting>
-									 <para>
-										It is possible to extend the <literal>PasswordHash</literal> component to implement other hashing algorithms, if required.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@UserFirstName</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Optional
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the user's first name.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@UserLastName</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Optional
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the user's last name.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@UserEnabled</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Optional
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the enabled user status. This should be a Boolean property. If not present, all user accounts are assumed to be enabled.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@UserRoles</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Required
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the roles of the user. This property will be described in more detail in a later section. <!-- #modify: xref if possible -->
-									</para>
-								</entry>
-							</row>
-						</tbody>
-					</tgroup>
-				</table>
-				 <table>
-					<title>Role Entity Annotations</title>
-					 <tgroup cols="3">
-						<colspec colnum="1" colwidth="2*"></colspec>
-						 <colspec colnum="2" colwidth="1*"></colspec>
-						 <colspec colnum="3" colwidth="3*"></colspec>
-						 <thead>
-							<row>
-								<entry align="center">
-									<para>
-										Annotation
-									</para>
-								</entry>
-								 <entry align="center">
-									<para>
-										Status
-									</para>
-								</entry>
-								 <entry align="center">
-									<para>
-										Description
-									</para>
-								</entry>
-							</row>
-						</thead>
-						 <tbody>
-							<row>
-								<entry>
-									<para>
-										<literal>@RoleName</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Required
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the name of the role.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@RoleGroups</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Optional
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method containing the group memberships of the role.
-									</para>
-								</entry>
-							</row>
-							 <row>
-								<entry>
-									<para>
-										<literal>@RoleConditional</literal>
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										Optional
-									</para>
-								</entry>
-								 <entry>
-									<para>
-										This annotation marks the field or method that indicates whether a role is conditional. Conditional roles are explained later in this chapter.
-									</para>
-								</entry>
-							</row>
-						</tbody>
-					</tgroup>
-				</table>
-			</section>
-			
-			 <section>
-				<title>Entity Bean Examples</title>
-				 <para>
-					As mentioned previously, <literal>JpaIdentityStore</literal> is designed to be as flexible as possible when it comes to the database schema design of your user and role tables. This section looks at a number of possible database schemas that can be used to store user and role records.
-				</para>
-				 <section>
-					<title>Minimal schema example</title>
-					 <para>
-						Here, a simple user and role table are linked via a many-to-many relationship using a cross-reference table named <literal>UserRoles</literal>.
-					</para>
-					 <mediaobject>
-						<imageobject role="fo">
-							<imagedata align="center" fileref="images/security-entities-1.png" format="PNG" scalefit="1" />
-						</imageobject>
-						 <imageobject role="html">
-							<imagedata align="center" fileref="images/security-entities-1.png" format="PNG" />
-						</imageobject>
-					</mediaobject>
-					 
-<programlisting role="JAVA"><![CDATA[@Entity
-public class User {
-  private Integer userId;
-  private String username;
-  private String passwordHash;
-  private Set<Role> roles;
-  
-  @Id @GeneratedValue
-  public Integer getUserId() { return userId; }
-  public void setUserId(Integer userId) { this.userId = userId; }
-  
-  @UserPrincipal
-  public String getUsername() { return username; }
-  public void setUsername(String username) { this.username = username; }
-  
-  @UserPassword(hash = "md5")
-  public String getPasswordHash() { return passwordHash; }
-  public void setPasswordHash(String passwordHash) { 
-    this.passwordHash = passwordHash; 
-  }
-  
-  @UserRoles
-  @ManyToMany(targetEntity = Role.class)
-  @JoinTable(name = "UserRoles", 
-       joinColumns = @JoinColumn(name = "UserId"),
-       inverseJoinColumns = @JoinColumn(name = "RoleId"))
-  public Set<Role> getRoles() { return roles; }
-  public void setRoles(Set<Role> roles) { this.roles = roles; }
-}]]>
-</programlisting>
-					 
-<programlisting><![CDATA[@Entity
-public class Role {
-  private Integer roleId;
-  private String rolename;
-  
-  @Id @Generated
-  public Integer getRoleId() { return roleId; }
-  public void setRoleId(Integer roleId) { this.roleId = roleId; }
-  
-  @RoleName
-  public String getRolename() { return rolename; }
-  public void setRolename(String rolename) { this.rolename = rolename; }
-}]]>
-</programlisting>
-				</section>
-				
-				 <section>
-					<title>Complex Schema Example</title>
-					 <para>
-						This example builds on the previous minimal example by including all optional fields, and allowing group memberships for roles.
-					</para>
-					 <mediaobject>
-						<imageobject role="fo">
-							<imagedata align="center" fileref="images/security-entities-2.png" format="PNG" scalefit="1" />
-						</imageobject>
-						 <imageobject role="html">
-							<imagedata align="center" fileref="images/security-entities-2.png" format="PNG" scalefit="1" />
-						</imageobject>
-					</mediaobject>
-					 
-<programlisting role="JAVA"><![CDATA[@Entity
-public class User {
-  private Integer userId;
-  private String username;
-  private String passwordHash;
-  private Set<Role> roles;
-  private String firstname;
-  private String lastname;
-  private boolean enabled;
-  
-  @Id @GeneratedValue
-  public Integer getUserId() { return userId; }
-  public void setUserId(Integer userId) { this.userId = userId; }
-  
-  @UserPrincipal
-  public String getUsername() { return username; }
-  public void setUsername(String username) { this.username = username; }
-  
-  @UserPassword(hash = "md5")
-  public String getPasswordHash() { return passwordHash; }
-  public void setPasswordHash(String passwordHash) { 
-    this.passwordHash = passwordHash; 
-  }
-  
-  @UserFirstName
-  public String getFirstname() { return firstname; }
-  public void setFirstname(String firstname) { 
-    this.firstname = firstname; 
-  }
-  
-  @UserLastName
-  public String getLastname() { return lastname; }
-  public void setLastname(String lastname) { this.lastname = lastname; }
-  
-  @UserEnabled
-  public boolean isEnabled() { return enabled; }
-  public void setEnabled(boolean enabled) { this.enabled = enabled; }
-  
-  @UserRoles
-  @ManyToMany(targetEntity = Role.class)
-  @JoinTable(name = "UserRoles", 
-    joinColumns = @JoinColumn(name = "UserId"),
-    inverseJoinColumns = @JoinColumn(name = "RoleId"))
-  public Set<Role> getRoles() { return roles; }
-  public void setRoles(Set<Role> roles) { this.roles = roles; }
-}]]>
-</programlisting>
-					 
-<programlisting><![CDATA[@Entity
-public class Role {
-  private Integer roleId;
-  private String rolename;
-  private boolean conditional;
-  
-  @Id @Generated
-  public Integer getRoleId() { return roleId; }
-  public void setRoleId(Integer roleId) { this.roleId = roleId; }
-  
-  @RoleName
-  public String getRolename() { return rolename; }
-  public void setRolename(String rolename) { this.rolename = rolename; }
-  
-  @RoleConditional
-  public boolean isConditional() { return conditional; }
-  public void setConditional(boolean conditional) { 
-    this.conditional = conditional; 
-  }
-  
-  @RoleGroups
-  @ManyToMany(targetEntity = Role.class)
-  @JoinTable(name = "RoleGroups", 
-             joinColumns = @JoinColumn(name = "RoleId"),
-             inverseJoinColumns = @JoinColumn(name = "GroupId"))
-  public Set<Role> getGroups() { return groups; }
-  public void setGroups(Set<Role> groups) { this.groups = groups; }  
-  
-}]]>
-</programlisting>
-				</section>
-				
-			</section>
-			
 			 <section id="security-id_management-jpaidstore">
 				<title>JpaIdentityStore Events</title>
 				 <para>
@@ -990,7 +990,7 @@
 			
 		</section>
 		
-		 <section>
+    <section>
 			<title>LdapIdentityStore</title>
 			 <para>
 				This identity storage method is designed to work with user records stored in an LDAP directory. It is highly configurable, and allows very flexible directory storage of both users and roles. The following sections describe the configuration options for this identity store, and provide some configuration examples.
@@ -1777,7 +1777,7 @@
 			
 		</section>
 		
-		 <section>
+    <section>
 			<title>Writing your own IdentityStore</title>
 			 <para>
 				Writing your own identity store implementation allows you to authenticate and perform identity management operations against security providers that are not supported out of the box by Seam. You only need a single class that implements the <literal>org.jboss.seam.security.management.IdentityStore</literal> interface to achieve this.
@@ -1786,15 +1786,15 @@
 				Refer to the JavaDoc about <literal>IdentityStore</literal> for a description of the methods that must be implemented.
 			</para>
 		</section>
-		
-		 <section>
+
+    <section>
 			<title>Authentication with Identity Management</title>
 			 <para>
 				If you use Identity Management features in your Seam application, then you do not need to provide an authenticator component (see previous Authentication section<!-- #modify: xref -->) to enable authentication. Simply omit the <literal>authenticator-method</literal> from the <literal>identity</literal> configuration in <literal>components.xml</literal>, and the <literal>SeamLoginModule</literal> will use <literal>IdentityManager</literal> to authenticate your application's users without any special configuration.
 			</para>
 		</section>
 		
-		 <section>
+    <section>
 			<title>Using IdentityManager</title>
 			 <para>
 				Access the <literal>IdentityManager</literal> either by injecting it into your Seam component, like so:
@@ -2496,9 +2496,9 @@
 </programlisting>
 		</section>
 		
-	</section>
+  </section>
 	
-	 <section>
+  <section>
 		<title>Error Messages</title>
 		 <para>
 			The security API produces a number of default Faces messages for various security-related events. The following table lists the message keys to specify in a <filename>message.properties</filename> resource file if you want to override the messages. To suppress a message, add the key (with an empty value) to the resource file.
@@ -2576,7 +2576,7 @@
 		</table>
 	</section>
 	
-	 <section>
+  <section>
 		<title>Authorization</title>
 		 <para>
 			This section describes the range of authorization mechanisms provided by the Seam Security API for securing access to components, component methods, and pages. If you wish to use any of the advanced features (for example, rule-based permissions), you may need to configure your <filename>components.xml</filename> file — see the Configuration section previous.
@@ -3685,15 +3685,14 @@
 									 <entry>
 										<para>
 											This annotation should be used when the same entity/table stores both user and role permissions. It identifies the property of the entity being used to discriminate between user and role permissions. By default, if the column value contains the string literal <literal>user</literal>, then the record will be treated as a user permission. If it contains the string literal <literal>role</literal>, it will be treated as a role permission. You can also override these defaults by specifying the <literal>userValue</literal> and <literal>roleValue</literal> properties within the annotation. For example, to use <literal>u</literal> and <literal>r</literal> instead of <literal>user</literal> and <literal>role</literal>, write the annotation like so:
-										
+										</para></entry>
+									
 										 
 <programlisting role="JAVA"><![CDATA[ 
 @PermissionDiscriminator(
   userValue = "u", 
   roleValue = "r")]]>
 </programlisting>
-                                      </para>
-									</entry>
 								</row>
 							</tbody>
 						</tgroup>
@@ -3976,7 +3975,7 @@
 		
 	</section>
 	
-	 <section>
+  <section>
 		<title>Permission Management</title>
 		 <para>
 			Just as Seam Security provides an Identity Management API to let you manage users and roles, it also provides a Permissions Management API to let you manage persistent user permissions — the <literal>PermissionManager</literal> component.
@@ -4283,7 +4282,7 @@
 		
 	</section>
 	
-	 <section>
+  <section>
 		<title>SSL Security</title>
 		 <para>
 			Seam includes basic support for serving sensitive pages via the HTTPS protocol. To configure this, specify a <literal>scheme</literal> for the page in <filename>pages.xml</filename>. The following example shows how the view <filename>/login.xhtml</filename> can be configured to use HTTPS:
@@ -4336,7 +4335,7 @@
 		
 	</section>
 	
-	 <section>
+  <section>
 		<title>CAPTCHA</title>
 		 <para>
 			Though not strictly part of the security API, Seam provides a built-in CAPTCHA (<emphasis>C</emphasis>ompletely <emphasis>A</emphasis>utomated <emphasis>P</emphasis>ublic <emphasis>T</emphasis>uring test to tell <emphasis>C</emphasis>omputers and <emphasis>H</emphasis>umans <emphasis>A</emphasis>part) algorithm to prevent automated processes from interacting with your application.
@@ -4405,7 +4404,7 @@
 		
 	</section>
 	
-	 <section id="security-security_events">
+  <section id="security-security_events">
 		<title>Security Events</title>
 		 <para>
 			The following table describes a number of events (see <xref linkend="events" />) raised by Seam Security in response to certain security-related events.
@@ -4555,7 +4554,7 @@
 		</table>
 	</section>
 	
-	 <section>
+  <section>
 		<title>Run As</title>
 		 <para>
 			Users sometimes need to perform certain operations with elevated privileges — for example, an unauthenticated user may need to create a new user account. Seam Security provides support in this situation with the <literal>RunAsOperation</literal> class. This class allows either the <literal>Principal</literal> or <literal>Subject</literal>, or the user's roles, to be overridden for a single set of operations.
@@ -4577,7 +4576,7 @@
 		</para>
 	</section>
 	
-	 <section>
+  <section>
 		<title>Extending the Identity component</title>
 		 <para>
 			If your application has special security requirements, you may need to extend your Identity component. The following example shows an Identity component extended with an additional <literal>companyCode</literal> field to handle credentials. (Usually this would be handled by a <literal>Credentials</literal> component.) The install precendence of <literal>APPLICATION</literal> ensures that this extended Identity is installed instead of the built-in Identity.
@@ -4616,7 +4615,7 @@
 		</warning>
 	</section>
 	
-	 <section>
+  <section>
 		<title>OpenID</title>
 		 <para>
 			OpenID is a community standard for external web-based authentication. Any web application can supplement (or replace) its local authentication handling by delegating responsibility to an external OpenID server selected by the user. This benefits both user and developer — the user (who no longer needs to remember login details for multiple web applications), and the developer (who need not maintain an entire complex authentication system).

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Tutorial.xml
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Tutorial.xml	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Tutorial.xml	2010-04-07 07:48:22 UTC (rev 103617)
@@ -3,719 +3,703 @@
 ]>
 
 <chapter id="tutorial" >
-	<title>Seam Tutorial</title>
-	 <section id="try-examples">
-		<title>Using the Seam examples</title>
-		 <para>
-			Seam provides a number of example applications which demonstrate how to use a variety of Seam&#39;s features. This tutorial will guide you through a few of those examples to help you get started learning Seam. The Seam examples are located in the <filename>examples</filename> subdirectory of the Seam distribution. The first example, on registration, is in the <filename>examples/registration</filename> directory.
-		</para>
-		 <para>
-			Each example has the same directory structure:
-		</para>
-		 <itemizedlist>
-			<listitem>
-				<para>
-					The <filename>view</filename> directory contains view-related files such as web page templates, images and stylesheets.
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					The <filename>resources</filename> directory contains deployment descriptors and other configuration files.
-				</para>
-			</listitem>
-			 <listitem>
-				<para>
-					The <filename>src</filename> directory contains the application source code.
-				</para>
-			</listitem>
-		</itemizedlist>
-		 <para>
-			The example applications run both on JBoss AS and Tomcat with no additional configuration. The following sections will explain the procedure in both cases. Note that all examples are built and run from the Ant <filename>build.xml</filename>, so you will need a recent version of Ant installed before you get started.
-		</para>
-		 <section>
-			<title>Running the examples on JBoss AS</title>
-			 <para>
-				The examples are configured for use on JBoss AS 4.2 or 5.0. You will need to set <literal>jboss.home</literal>, in the shared <filename>build.properties</filename> file (in the root folder of your Seam installation) to the location of your JBoss AS installation.
-			</para>
-			 <para>
-				Once you have set the location of JBoss AS and started the application server, you can build and deploy any example by typing <literal>ant explode</literal> in that example&#39;s directory. Any example that is packaged as an EAR (Enterprise Archive) deploys to a URL like <literal>/seam-<replaceable>example</replaceable></literal>, where <replaceable>example</replaceable> is the name of the example folder, with one exception: if the example folder begins with "seam", the prefix "seam" is ommitted. For instance, if JBoss AS is running on port 8080, the URL for the Registration example is <ulink url="http://localhost:8080/seam-registration/"> <literal>http://localhost:8080/seam-registration/</literal></ulink>, whereas the URL for the SeamSpace example is <ulink url="http://localhost:8080/seam-space/"> <literal>http://localhost:8080/seam-space/</literal></ulink>.
-			</para>
-			 <para>
-				If, on the other hand, the example is packaged as a WAR, then it deploys to a URL like <literal>/jboss-seam-<replaceable>example</replaceable></literal>. Most of the examples can be deployed as a WAR to Tomcat with Embedded JBoss by typing <literal>ant tomcat.deploy</literal>.
-			</para>
-			 <note>
-				<para>
-					Several of the examples — groovybooking, hibernate, jpa, and spring — can only be deployed as a WAR.
-				</para>
-			</note>
-		</section>
-		
-		 <!--<section>
-			<title>Running the examples on Tomcat</title>
-			 <para>
-				The examples are also configured for use on Tomcat 6.0. You will need to follow the instructions for installing JBoss Embedded on Tomcat 6.0 in <xref linkend="config.install.embedded" />. JBoss Embedded is only required to run the Seam demonstrations that use Enterprise JavaBeans 3.0 (EJB3) components on Tomcat. There are also examples of non-EJB3 applications that can be run on Tomcat without the use of JBoss Embedded.
-			</para>
-			 <para>
-				You will need to set <literal>tomcat.home</literal> (in the shared <literal>build.properties</literal> file in the root folder of your Seam installation) to the location of your Tomcat installation. Make sure to set the location of your Tomcat.
-			</para>
-			 <para>
-				You will also need to use a different Ant target when using Tomcat. Use <literal>ant tomcat.deploy</literal> in the example subdirectory to build and deploy any example for Tomcat.
-			</para>
-			 <para>
-				On Tomcat, the examples deploy to URLs like <literal>/jboss-seam-<replaceable>example</replaceable>]]></literal>, so for the registration example, the URL would be <ulink url="http://localhost:8080/jboss-seam-registration/"> <literal>http://localhost:8080/jboss-seam-registration/</literal></ulink>. The same is true for examples that deploy as a WAR, as mentioned in the previous section.
-			</para>
-		</section>-->
-		
-		 <section>
-			<title>Running the example tests</title>
-			 <para>
-				Most of the examples come with a suite of TestNG integration tests. The easiest way to run the tests is to run <literal>ant test</literal>. It is also possible to run the tests inside your IDE using the TestNG plugin. Consult the readme.txt in the examples directory of the Seam distribution for more information.
-			</para>
-		</section>
-		
-	</section>
-	
-	 <section id="registration-example">
-		<title>Your first Seam application: the registration example</title>
-		 <para>
-			The registration example is a simple application that lets a new user store their username, real name, and password in the database. This example uses only basic functions to demonstrate the use of an EJB3 session bean as a JSF action listener, and the basic configuration of Seam.
-		</para>
-		 <para>
-			The start page displays a basic form with three input fields. Filling them in and submitting the form will save a user object in the database.
-		</para>
-		 <mediaobject>
-			<imageobject role="fo">
-				<imagedata align="center" fileref="images/registration.png" format="PNG" scalefit="1" />
-			</imageobject>
-			 <imageobject role="html">
-				<imagedata align="center" fileref="images/registration.png" format="PNG" scalefit="1" />
-			</imageobject>
-		</mediaobject>
-		 <section>
-			<title>Understanding the code</title>
-			 <para>
-				The example is implemented with two Facelets templates: one entity bean, and one stateless session bean. This section will take you through the code in detail, starting from the base level.
-			</para>
-			 <section>
-				<title>The entity bean: <literal>User.java</literal></title>
-				 <para>
-					We need an EJB entity bean for user data. This class defines <emphasis>persistence</emphasis> and <emphasis>validation</emphasis> declaratively, via annotations. It also requires some extra annotations to define the class as a Seam component.
-				</para>
-				 <!--  Can't use code hightlighting with callouts  --> <!-- #removed: Because it broke things. <example> <title>User.java</title> <programlistingco> <areaspec> <area id="registration-entity-annotation" coords="1"/> <area id="registration-name-annotation" coords="2"/> <area id="registration-scope-annotation" coords="3"/> <area id="registration-table-annotation" coords="4"/> <area id="registration-attributes" coords="9"/> <area id="registration-empty-constructor" coords="20"/> <area id="registration-notnull" coords="22"/> <area id="registration-id-annotation" coords="44"/> </areaspec> <programlisting role="JAVA">&lt;![CDATA[@Entity @Name("user") @Scope(SESSION) @Table(name="users") public class User implements Serializable { private static final long serialVersionUID = 1881413500711441951L; private String username; private String password; private String name; public User(String name, String password, String username) { this.name = name; this.password = password; this.use!
 rname = username; } public User() {} @NotNull @Length(min=5, max=15) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @NotNull public String getName() { return name; } public void setName(String name) { this.name = name; } @Id @NotNull @Length(min=5, max=15) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }]]></programlisting> <calloutlist> <callout arearefs="registration-entity-annotation"> <para> The EJB3 standard <literal>@Entity</literal> annotation indicates that the <literal>User</literal> class is an entity bean. </para> </callout> 
-				 <callout arearefs="registration-name-annotation"> <para> A Seam component must have a <emphasis>component name</emphasis> specified by the <xref linkend="name-annotation"> <literal>@Name</literal> </xref> annotation. This name must be unique within the Seam application. When JSF asks Seam to resolve a currently undefined (null) context variable whose name matches that of a Seam component, Seam will instantiate that component, and bind the new instance to the context variable. In this case, Seam will instantiate a <literal>User</literal> the first time JSF encounters a variable named <literal>user</literal>.</para> </callout> 
-				 <callout arearefs="registration-scope-annotation"> <para> Whenever Seam instantiates a component, it binds the new instance to a context variable in the component's <emphasis>default context</emphasis>. The default context is specified using the <xref linkend="scope-annotation"> <literal>@Scope</literal> </xref> annotation. The <literal>User</literal> bean is a session scoped component. </para> </callout> 
-				 <callout arearefs="registration-table-annotation"> <para> The EJB standard <literal>@Table</literal> annotation indicates that the <literal>User</literal> class is mapped to the <literal>users</literal> table. </para> </callout> 
-				 <callout arearefs="registration-attributes"> <para> <literal>name</literal>, <literal>password</literal>, and <literal>username</literal> are the persistent attributes of the entity bean. All of our persistent attributes define accessor methods. These are needed when this component is used by JSF in the render response and update model values phases. </para> </callout> 
-				 <callout arearefs="registration-empty-constructor"> <para> An empty constructor is required by both the EJB specification and by Seam. </para> </callout> 
-				 <callout arearefs="registration-notnull"> <para> The <literal>@NotNull</literal> and <literal>@Length</literal> annotations are part of the Hibernate Validator framework. Seam integrates Hibernate Validator and lets you use it for data validation (even if you are not using Hibernate for persistence). </para> </callout> 
-				 <callout arearefs="registration-id-annotation"> <para> The EJB standard <literal>@Id</literal> annotation indicates the primary key attribute of the entity bean. </para> </callout> 
-				 </calloutlist> </programlistingco> </example> --> 
-				 <!--  <example>
-					<title>User.java</title> -->
-
-               <!--   <example><title>User.java</title> -->
-               <formalpara><title>User.java Example</title>
-                 <para>               					 
-<programlisting role="JAVA"><![CDATA[@Entity
- at Name("user")
- at Scope(SESSION)
- at Table(name="users")
-public class User implements Serializable {
-  private static final long serialVersionUID = 1881413500711441951L;
+  <title>Seam Tutorial</title>
+  <section id="try-examples">
+    <title>Using the Seam examples</title>
+    <para>
+      Seam provides a number of example applications which demonstrate how to use a variety of Seam&#39;s features. This tutorial will guide you through a few of those examples to help you get started learning Seam. The Seam examples are located in the <filename>examples</filename> subdirectory of the Seam distribution. The first example, on registration, is in the <filename>examples/registration</filename> directory.
+    </para>
+    <para>
+      Each example has the same directory structure:
+    </para>
+    <itemizedlist>
+      <listitem>
+	<para>
+	  The <filename>view</filename> directory contains view-related files such as web page templates, images and stylesheets.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  The <filename>resources</filename> directory contains deployment descriptors and other configuration files.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  The <filename>src</filename> directory contains the application source code.
+	</para>
+      </listitem>
+    </itemizedlist>
+    <para>
+      The example applications run both on JBoss AS and Tomcat with no additional configuration. The following sections will explain the procedure in both cases. Note that all examples are built and run from the Ant <filename>build.xml</filename>, so you will need a recent version of Ant installed before you get started.
+    </para>
+    <section>
+      <title>Running the examples on JBoss AS</title>
+      <para>
+	The examples are configured for use on JBoss AS 4.2 or 5.0. You will need to set <literal>jboss.home</literal>, in the shared <filename>build.properties</filename> file (in the root folder of your Seam installation) to the location of your JBoss AS installation.
+      </para>
+      <para>
+	Once you have set the location of JBoss AS and started the application server, you can build and deploy any example by typing <literal>ant explode</literal> in that example&#39;s directory. Any example that is packaged as an EAR (Enterprise Archive) deploys to a URL like <literal>/seam-<replaceable>example</replaceable></literal>, where <replaceable>example</replaceable> is the name of the example folder, with one exception: if the example folder begins with "seam", the prefix "seam" is ommitted. For instance, if JBoss AS is running on port 8080, the URL for the Registration example is <ulink url="http://localhost:8080/seam-registration/"> <literal>http://localhost:8080/seam-registration/</literal></ulink>, whereas the URL for the SeamSpace example is <ulink url="http://localhost:8080/seam-space/"> <literal>http://localhost:8080/seam-space/</literal></ulink>.
+      </para>
+      <para>
+	If, on the other hand, the example is packaged as a WAR, then it deploys to a URL like <literal>/jboss-seam-<replaceable>example</replaceable></literal>. Most of the examples can be deployed as a WAR to Tomcat with Embedded JBoss by typing <literal>ant tomcat.deploy</literal>.
+      </para>
+      <note>
+	<para>
+	  Several of the examples — groovybooking, hibernate, jpa, and spring — can only be deployed as a WAR.
+	</para>
+      </note>
+    </section>
+    
+    <!--<section>
+	<title>Running the examples on Tomcat</title>
+	<para>
+	The examples are also configured for use on Tomcat 6.0. You will need to follow the instructions for installing JBoss Embedded on Tomcat 6.0 in <xref linkend="config.install.embedded" />. JBoss Embedded is only required to run the Seam demonstrations that use Enterprise JavaBeans 3.0 (EJB3) components on Tomcat. There are also examples of non-EJB3 applications that can be run on Tomcat without the use of JBoss Embedded.
+	</para>
+	<para>
+	You will need to set <literal>tomcat.home</literal> (in the shared <literal>build.properties</literal> file in the root folder of your Seam installation) to the location of your Tomcat installation. Make sure to set the location of your Tomcat.
+	</para>
+	<para>
+	You will also need to use a different Ant target when using Tomcat. Use <literal>ant tomcat.deploy</literal> in the example subdirectory to build and deploy any example for Tomcat.
+	</para>
+	<para>
+	On Tomcat, the examples deploy to URLs like <literal>/jboss-seam-<replaceable>example</replaceable>]]></literal>, so for the registration example, the URL would be <ulink url="http://localhost:8080/jboss-seam-registration/"> <literal>http://localhost:8080/jboss-seam-registration/</literal></ulink>. The same is true for examples that deploy as a WAR, as mentioned in the previous section.
+	</para>
+	</section>-->
+    
+    <section>
+      <title>Running the example tests</title>
+      <para>
+	Most of the examples come with a suite of TestNG integration tests. The easiest way to run the tests is to run <literal>ant test</literal>. It is also possible to run the tests inside your IDE using the TestNG plugin. Consult the readme.txt in the examples directory of the Seam distribution for more information.
+      </para>
+    </section>
+    
+  </section>
   
-  private String username;
-  private String password;
-  private String name;
-  
-  public User(String name, String password, String username) {
-    this.name = name;
-    this.password = password;
-    this.username = username;
-  }
-  
-  public User() {}
-  
-  @NotNull @Length(min=5, max=15)
-  public String getPassword() {
-    return password;
-  }
+  <section id="registration-example">
+    <title>Your first Seam application: the registration example</title>
+    <para>
+      The registration example is a simple application that lets a new user store their username, real name, and password in the database. This example uses only basic functions to demonstrate the use of an EJB3 session bean as a JSF action listener, and the basic configuration of Seam.
+    </para>
+    <para>
+      The start page displays a basic form with three input fields. Filling them in and submitting the form will save a user object in the database.
+    </para>
+    <mediaobject>
+      <imageobject role="fo">
+	<imagedata align="center" fileref="images/registration.png" format="PNG" scalefit="1" />
+      </imageobject>
+      <imageobject role="html">
+	<imagedata align="center" fileref="images/registration.png" format="PNG" scalefit="1" />
+      </imageobject>
+    </mediaobject>
+    <section>
+      <title>Understanding the code</title>
+      <para>
+	The example is implemented with two Facelets templates: one entity bean, and one stateless session bean. This section will take you through the code in detail, starting from the base level.
+      </para>
+      <section>
+	<title>The entity bean: <literal>User.java</literal></title>
+	<para>
+	  We need an EJB entity bean for user data. This class defines <emphasis>persistence</emphasis> and <emphasis>validation</emphasis> declaratively, via annotations. It also requires some extra annotations to define the class as a Seam component.
+	</para>
+	<!--  Can't use code hightlighting with callouts  --> <!-- #removed: Because it broke things. <example> <title>User.java</title> <programlistingco> <areaspec> <area id="registration-entity-annotation" coords="1"/> <area id="registration-name-annotation" coords="2"/> <area id="registration-scope-annotation" coords="3"/> <area id="registration-table-annotation" coords="4"/> <area id="registration-attributes" coords="9"/> <area id="registration-empty-constructor" coords="20"/> <area id="registration-notnull" coords="22"/> <area id="registration-id-annotation" coords="44"/> </areaspec> <programlisting role="JAVA">&lt;![CDATA[@Entity @Name("user") @Scope(SESSION) @Table(name="users") public class User implements Serializable { private static final long serialVersionUID = 1881413500711441951L; private String username; private String password; private String name; public User(String name, String password, String username) { this.name = name; this.password = password; this.usernam!
 e = username; } public User() {} @NotNull @Length(min=5, max=15) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @NotNull public String getName() { return name; } public void setName(String name) { this.name = name; } @Id @NotNull @Length(min=5, max=15) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }]]></programlistig> <calloutlist> <callout arearefs="registration-entity-annotation"> <para> The EJB3 standard <literal>@Entity</literal> annotation indicates that the <literal>User</literal> class is an entity bean. </para> </callout> 
+								   <callout arearefs="registration-name-annotation"> <para> A Seam component must have a <emphasis>component name</emphasis> specified by the <xref linkend="name-annotation"> <literal>@Name</literal> </xref> annotation. This name must be unique within the Seam application. When JSF asks Seam to resolve a currently undefined (null) context variable whose name matches that of a Seam component, Seam will instantiate that component, and bind the new instance to the context variable. In this case, Seam will instantiate a <literal>User</literal> the first time JSF encounters a variable named <literal>user</literal>.</para> </callout> 
+								   <callout arearefs="registration-scope-annotation"> <para> Whenever Seam instantiates a component, it binds the new instance to a context variable in the component's <emphasis>default context</emphasis>. The default context is specified using the <xref linkend="scope-annotation"> <literal>@Scope</literal> </xref> annotation. The <literal>User</literal> bean is a session scoped component. </para> </callout> 
+								   <callout arearefs="registration-table-annotation"> <para> The EJB standard <literal>@Table</literal> annotation indicates that the <literal>User</literal> class is mapped to the <literal>users</literal> table. </para> </callout> 
+								   <callout arearefs="registration-attributes"> <para> <literal>name</literal>, <literal>password</literal>, and <literal>username</literal> are the persistent attributes of the entity bean. All of our persistent attributes define accessor methods. These are needed when this component is used by JSF in the render response and update model values phases. </para> </callout> 
+								   <callout arearefs="registration-empty-constructor"> <para> An empty constructor is required by both the EJB specification and by Seam. </para> </callout> 
+								   <callout arearefs="registration-notnull"> <para> The <literal>@NotNull</literal> and <literal>@Length</literal> annotations are part of the Hibernate Validator framework. Seam integrates Hibernate Validator and lets you use it for data validation (even if you are not using Hibernate for persistence). </para> </callout> 
+								   <callout arearefs="registration-id-annotation"> <para> The EJB standard <literal>@Id</literal> annotation indicates the primary key attribute of the entity bean. </para> </callout> 
+								   </calloutlist> </programlistingco> </example> --> 
+	<!--  <example>
+	     <title>User.java</title> -->
 
-  public void setPassword(String password) {
-    this.password = password;
-  }
-  
-  @NotNull
-  public String getName() {
-    return name;
-  }
+	<!--   <example><title>User.java</title> -->
+	<example><title>User.java Example</title>
 
-  public void setName(String name) {
-    this.name = name;
-  }
-  
-  @Id @NotNull @Length(min=5, max=15)
-  public String getUsername() {
-    return username;
-  }
+	  <programlisting role="JAVA"><![CDATA[@Entity
+	  @Name("user")
+	  @Scope(SESSION)
+	  @Table(name="users")
+	  public class User implements Serializable {
+	  private static final long serialVersionUID = 1881413500711441951L;
+	  
+	  private String username;
+	  private String password;
+	  private String name;
+	  
+	  public User(String name, String password, String username) {
+	  this.name = name;
+	  this.password = password;
+	  this.username = username;
+	  }
+	  
+	  public User() {}
+	  
+	  @NotNull @Length(min=5, max=15)
+	  public String getPassword() {
+	  return password;
+	  }
 
-  public void setUsername(String username) {
-    this.username = username;
-  }
+	  public void setPassword(String password) {
+	  this.password = password;
+	  }
+	  
+	  @NotNull
+	  public String getName() {
+	  return name;
+	  }
 
-}]]>
-</programlisting>
-                 </para>
-               </formalpara>   
+	  public void setName(String name) {
+	  this.name = name;
+	  }
+	  
+	  @Id @NotNull @Length(min=5, max=15)
+	  public String getUsername() {
+	  return username;
+	  }
 
- 
-            <!--      </example> -->  
- 
-<formalpara><title>User.java Explanatory Notes</title>
-<para>
+	  public void setUsername(String username) {
+	  this.username = username;
+	  }
 
-					 <orderedlist>
-						<listitem>
-							<para>
-								The EJB3 standard <literal>@Entity</literal> annotation indicates that the <literal>User</literal> class is an entity bean.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								A Seam component must have a <emphasis>component name</emphasis> specified by the <xref linkend="name-annotation" /> <literal>@Name</literal>  annotation. This name must be unique within the Seam application. When JSF asks Seam to resolve a currently undefined (null) context variable whose name matches that of a Seam component, Seam will instantiate that component, and bind the new instance to the context variable. In this case, Seam will instantiate a <literal>User</literal> the first time JSF encounters a variable named <literal>user</literal>.
-							</para>
-						</listitem>
-						 <listitem> 
-							<para>
-								Whenever Seam instantiates a component, it binds the new instance to a context variable in the component&#39;s <emphasis>default context</emphasis>. The default context is specified using the <xref linkend="scope-annotation" /> <literal>@Scope</literal>  annotation. The <literal>User</literal> bean is a session scoped component.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The EJB standard <literal>@Table</literal> annotation indicates that the <literal>User</literal> class is mapped to the <literal>users</literal> table.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								<literal>name</literal>, <literal>password</literal>, and <literal>username</literal> are the persistent attributes of the entity bean. All of our persistent attributes define accessor methods. These are needed when this component is used by JSF in the render response and update model values phases.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								An empty constructor is required by both the EJB specification and by Seam.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The <literal>@NotNull</literal> and <literal>@Length</literal> annotations are part of the Hibernate Validator framework. Seam integrates Hibernate Validator and lets you use it for data validation (even if you are not using Hibernate for persistence).
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The EJB standard <literal>@Id</literal> annotation indicates the primary key attribute of the entity bean.
-							</para>
-						</listitem>
-					</orderedlist>
-		<!--  		</example> -->
-				</para>
-</formalpara>
-				 <para>
-					The most important things to notice in this example are the <literal>@Name</literal> and <literal>@Scope</literal> annotations. These annotations establish that this class is a Seam component.
-				</para>
-				 <para>
-					In the next section, you will see that the properties of the <literal>User</literal> class are bound directly to JSF components and populated by JSF during the update model values phase. There is no glue code to copy data back and forth between the JSP pages and the entity bean domain model.
-				</para>
-				 <para>
-					However, entity beans should not perform transaction management or database access, so this component should not be used as a JSF action listener. In this situation, a session bean is a better choice.
-				</para>
-			</section>
-			
-			 <section>
-				<title>The stateless session bean class: <literal>RegisterAction.java</literal></title>
-				 <para>
-					Most Seam applications use session beans as JSF action listeners, though you may also use JavaBeans.
-				</para>
-				 <para>
-					We have exactly one JSF action in this application, and one session bean method attached to it. In this case, we&#39;ll use a stateless session bean, since all the state associated with our action is held by the <literal>User</literal> bean.
-				</para>
-				 <para>
-					The relevant code is shown below:
-				</para>
-				 <!--  Can't use code hightlighting with callouts  --> <!-- #removed: so that it would not break things. <example> <title>RegisterAction.java</title> <programlistingco> <areaspec> <area id="registration-stateless-annotation" coords="1"/> <area id="registration-in-annotation" coords="6"/> <area id="registration-persistencecontext-annotation" coords="9"/> <area id="registration-logger-annotation" coords="12"/> <area id="registration-action-listener" coords="15"/> <area id="registration-query" coords="18"/> <area id="registration-log" coords="24"/> <area id="registration-outcome" coords="25"/> <area id="registration-builtin" coords="29"/> </areaspec> <programlisting><![CDATA[@Stateless @Name("register") public class RegisterAction implements Register { @In private User user; @PersistenceContext private EntityManager em; @Logger private Log log; public String register() { List existing = em.createQuery( "select username from User where username = #{user.username}") .getResu!
 ltList(); if (existing.size()==0) { em.persist(user); log.info("Registered new user #{user.username}"); return "/registered.xhtml"; } else { FacesMessages.instance().add("User #{user.username} already exists"); return null; } } }]]></programlisting> <calloutlist> <callout arearefs="registration-stateless-annotation"> <para> The EJB <literal>@Stateless</literal> annotation marks this class as a stateless session bean. </para> </callout> <callout arearefs="registration-in-annotation"> <para> The <xref linkend="in-annotation"> <literal>@In</literal> </xref> annotation marks an attribute of the bean as injected by Seam. In this case, the attribute is injected from a context variable named <literal>user</literal> (the instance variable name). </para> </callout> <callout arearefs="registration-persistencecontext-annotation"> <para> The EJB standard <literal>@PersistenceContext</literal> annotation is used to inject the EJB3 entity manager. </para> </callout> <callout arearefs="re!
 gistration-logger-annotation"> <para> The Seam <literal>@Logge!
 r</liter
al> annotation is used to inject the component's <literal>Log</literal> instance. </para> </callout> <callout arearefs="registration-action-listener"> <para> The action listener method uses the standard EJB3 <literal>EntityManager</literal> API to interact with the database, and returns the JSF outcome. Note that, since this is a session bean, a transaction begins automatically when the <literal>register()</literal> method is called, and is committed when it completes. </para> </callout> <callout arearefs="registration-query"> <para>Notice that Seam lets you use a JSF EL expression inside EJB-QL. This results in an ordinary JPA <literal>setParameter()</literal> call on the standard JPA <literal>Query</literal> object.</para> </callout> <callout arearefs="registration-log"> <para> The <literal>Log</literal> API allows easily display templated log messages that can include JSF EL expressions. </para> </callout> <callout arearefs="registration-outcome"> <para>JSF action listene!
 r methods return a string-valued outcome that determines the next page displayed. A null outcome (or a void action listener method) redisplays the previous page. In plain JSF, it is normal to always use a JSF <emphasis>navigation rule</emphasis> to determine the JSF view ID from the outcome. For complex applications, this redirection is good practice. However, for very simple examples like this one, Seam lets you use the JSF view ID as the outcome, eliminating the need for a navigation rule. </para> <note><para>When a view ID is used as an outcome, Seam always performs a browser redirect. </para></note> </callout> <callout arearefs="registration-builtin"> <para> Seam provides a number of <emphasis>built-in components</emphasis> to help solve common problems. The <literal>FacesMessages</literal> component makes it easy to display templated error or success messages. (As of Seam 2.1, you can use <literal>StatusMessages</literal> instead, to remove the semantic dependency on J!
 SF.) Built-in Seam components may be obtained by injection, or!
  by call
ing the <literal>instance()</literal> method on the class of the built-in component. </para> </callout> </calloutlist> </programlistingco> </example> --> 
-				<!-- <example>
-					<title>RegisterAction.java</title> -->
-				<formalpara><title>RegisterAction.java Example</title>
-                  <para> 
-					
-					 
-<programlisting><![CDATA[@Stateless
- at Name("register")
-public class RegisterAction implements Register {
-  @In
-  private User user;
-  
-  @PersistenceContext
-  private EntityManager em;
-  
-  @Logger
-  private Log log;
-  
-  public String register() {
-    List existing = em.createQuery(
-      "select username from User where username = #{user.username}")
-      .getResultList();
+	  }]]>
+	  </programlisting>
+	</example>
+	
+	<!--      </example> -->  
+	
+	<formalpara><title>User.java Explanatory Notes</title>
+	<para>
+
+	  <orderedlist>
+	    <listitem>
+	      <para>
+		The EJB3 standard <literal>@Entity</literal> annotation indicates that the <literal>User</literal> class is an entity bean.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		A Seam component must have a <emphasis>component name</emphasis> specified by the <xref linkend="name-annotation" /> <literal>@Name</literal>  annotation. This name must be unique within the Seam application. When JSF asks Seam to resolve a currently undefined (null) context variable whose name matches that of a Seam component, Seam will instantiate that component, and bind the new instance to the context variable. In this case, Seam will instantiate a <literal>User</literal> the first time JSF encounters a variable named <literal>user</literal>.
+	      </para>
+	    </listitem>
+	    <listitem> 
+	      <para>
+		Whenever Seam instantiates a component, it binds the new instance to a context variable in the component&#39;s <emphasis>default context</emphasis>. The default context is specified using the <xref linkend="scope-annotation" /> <literal>@Scope</literal>  annotation. The <literal>User</literal> bean is a session scoped component.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The EJB standard <literal>@Table</literal> annotation indicates that the <literal>User</literal> class is mapped to the <literal>users</literal> table.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		<literal>name</literal>, <literal>password</literal>, and <literal>username</literal> are the persistent attributes of the entity bean. All of our persistent attributes define accessor methods. These are needed when this component is used by JSF in the render response and update model values phases.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		An empty constructor is required by both the EJB specification and by Seam.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The <literal>@NotNull</literal> and <literal>@Length</literal> annotations are part of the Hibernate Validator framework. Seam integrates Hibernate Validator and lets you use it for data validation (even if you are not using Hibernate for persistence).
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The EJB standard <literal>@Id</literal> annotation indicates the primary key attribute of the entity bean.
+	      </para>
+	    </listitem>
+	  </orderedlist>
+	  <!--  		</example> -->
+	</para>
+	</formalpara>
+	<para>
+	  The most important things to notice in this example are the <literal>@Name</literal> and <literal>@Scope</literal> annotations. These annotations establish that this class is a Seam component.
+	</para>
+	<para>
+	  In the next section, you will see that the properties of the <literal>User</literal> class are bound directly to JSF components and populated by JSF during the update model values phase. There is no glue code to copy data back and forth between the JSP pages and the entity bean domain model.
+	</para>
+	<para>
+	  However, entity beans should not perform transaction management or database access, so this component should not be used as a JSF action listener. In this situation, a session bean is a better choice.
+	</para>
+      </section>
       
-    if (existing.size()==0) {
-      em.persist(user);
-      log.info("Registered new user #{user.username}");
-      return "/registered.xhtml";
-    } else {
-      FacesMessages.instance().add("User #{user.username} already exists");
-      return null;
-    }
-  }
+      <section>
+	<title>The stateless session bean class: <literal>RegisterAction.java</literal></title>
+	<para>
+	  Most Seam applications use session beans as JSF action listeners, though you may also use JavaBeans.
+	</para>
+	<para>
+	  We have exactly one JSF action in this application, and one session bean method attached to it. In this case, we&#39;ll use a stateless session bean, since all the state associated with our action is held by the <literal>User</literal> bean.
+	</para>
+	<para>
+	  The relevant code is shown below:
+	</para>
+	<!--  Can't use code hightlighting with callouts  --> <!-- #removed: so that it would not break things. <example> <title>RegisterAction.java</title> <programlistingco> <areaspec> <area id="registration-stateless-annotation" coords="1"/> <area id="registration-in-annotation" coords="6"/> <area id="registration-persistencecontext-annotation" coords="9"/> <area id="registration-logger-annotation" coords="12"/> <area id="registration-action-listener" coords="15"/> <area id="registration-query" coords="18"/> <area id="registration-log" coords="24"/> <area id="registration-outcome" coords="25"/> <area id="registration-builtin" coords="29"/> </areaspec> <programlisting><![CDATA[@Stateless @Name("register") public class RegisterAction implements Register { @In private User user; @PersistenceContext private EntityManager em; @Logger private Log log; public String register() { List existing = em.createQuery( "select username from User where username = #{user.username}") .getResultLi!
 st(); if (existing.size()==0) { em.persist(user); log.info("Registered new user #{user.username}"); return "/registered.xhtml"; } else { FacesMessages.instance().add("User #{user.username} already exists"); return null; } } }]]></programlisting> <calloutlist> <callout arearefs="registration-stateless-annotation"> <para> The EJB <literal>@Stateless</literal> annotation marks this class as a stateless session bean. </para> </callout> <callout arearefs="registration-in-annotation"> <para> The <xref linkend="in-annotation"> <literal>@In</literal> </xref> annotation marks an attribute of the bean as injected by Seam. In this case, the attribute is injected from a context variable named <literal>user</literal> (the instance variable name). </para> </callout> <callout arearefs="registration-persistencecontext-annotation"> <para> The EJB standard <literal>@PersistenceContext</literal> annotation is used to inject the EJB3 entity manager. </para> </callout> <callout arearefs="regist!
 ration-logger-annotation"> <para> The Seam <literal>@Logger</l!
 iteral> 
annotation is used to inject the component's <literal>Log</literal> instance. </para> </callout> <callout arearefs="registration-action-listener"> <para> The action listener method uses the standard EJB3 <literal>EntityManager</literal> API to interact with the database, and returns the JSF outcome. Note that, since this is a session bean, a transaction begins automatically when the <literal>register()</literal> method is called, and is committed when it completes. </para> </callout> <callout arearefs="registration-query"> <para>Notice that Seam lets you use a JSF EL expression inside EJB-QL. This results in an ordinary JPA <literal>setParameter()</literal> call on the standard JPA <literal>Query</literal> object.</para> </callout> <callout arearefs="registration-log"> <para> The <literal>Log</literal> API allows easily display templated log messages that can include JSF EL expressions. </para> </callout> <callout arearefs="registration-outcome"> <para>JSF action listener me!
 thods return a string-valued outcome that determines the next page displayed. A null outcome (or a void action listener method) redisplays the previous page. In plain JSF, it is normal to always use a JSF <emphasis>navigation rule</emphasis> to determine the JSF view ID from the outcome. For complex applications, this redirection is good practice. However, for very simple examples like this one, Seam lets you use the JSF view ID as the outcome, eliminating the need for a navigation rule. </para> <note><para>When a view ID is used as an outcome, Seam always performs a browser redirect. </para></note> </callout> <callout arearefs="registration-builtin"> <para> Seam provides a number of <emphasis>built-in components</emphasis> to help solve common problems. The <literal>FacesMessages</literal> component makes it easy to display templated error or success messages. (As of Seam 2.1, you can use <literal>StatusMessages</literal> instead, to remove the semantic dependency on JSF.)!
  Built-in Seam components may be obtained by injection, or by !
 calling 
the <literal>instance()</literal> method on the class of the built-in component. </para> </callout> </calloutlist> </programlistingco> </example> --> 
+	<!-- <example>
+	     <title>RegisterAction.java</title> -->
+	<example><title>RegisterAction.java Example</title>
+	  <programlisting><![CDATA[@Stateless
+	  @Name("register")
+	  public class RegisterAction implements Register {
+	  @In
+	  private User user;
+	  
+	  @PersistenceContext
+	  private EntityManager em;
+	  
+	  @Logger
+	  private Log log;
+	  
+	  public String register() {
+	  List existing = em.createQuery(
+	  "select username from User where username = #{user.username}")
+	  .getResultList();
+	  
+	  if (existing.size()==0) {
+	  em.persist(user);
+	  log.info("Registered new user #{user.username}");
+	  return "/registered.xhtml";
+	  } else {
+	  FacesMessages.instance().add("User #{user.username} already exists");
+	  return null;
+	  }
+	  }
 
-}]]>
-</programlisting>
-                  </para>
-                </formalpara>
-               <!-- </example> -->
-                <formalpara><title>RegisterAction.java Explanatory Notes</title>
-                  <para>
-					 <orderedlist>
-						<listitem>
-							<para>
-								The EJB <literal>@Stateless</literal> annotation marks this class as a stateless session bean.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The <xref linkend="in-annotation" /> <literal>@In</literal>  annotation marks an attribute of the bean as injected by Seam. In this case, the attribute is injected from a context variable named <literal>user</literal> (the instance variable name).
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The EJB standard <literal>@PersistenceContext</literal> annotation is used to inject the EJB3 entity manager.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The Seam <literal>@Logger</literal> annotation is used to inject the component&#39;s <literal>Log</literal> instance.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The action listener method uses the standard EJB3 <literal>EntityManager</literal> API to interact with the database, and returns the JSF outcome. Note that, since this is a session bean, a transaction begins automatically when the <literal>register()</literal> method is called, and is committed when it completes.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Notice that Seam lets you use a JSF EL expression inside EJB-QL. This results in an ordinary JPA <literal>setParameter()</literal> call on the standard JPA <literal>Query</literal> object.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								The <literal>Log</literal> API allows easily display templated log messages that can include JSF EL expressions.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								JSF action listener methods return a string-valued outcome that determines the next page displayed. A null outcome (or a void action listener method) redisplays the previous page. In plain JSF, it is normal to always use a JSF <emphasis>navigation rule</emphasis> to determine the JSF view ID from the outcome. For complex applications, this redirection is good practice. However, for very simple examples like this one, Seam lets you use the JSF view ID as the outcome, eliminating the need for a navigation rule.
-							</para>
-							 <note>
-								<para>
-									When a view ID is used as an outcome, Seam always performs a browser redirect.
-								</para>
-							</note>
-						</listitem>
-						 <listitem>
-							<para>
-								Seam provides a number of <emphasis>built-in components</emphasis> to help solve common problems. The <literal>FacesMessages</literal> component makes it easy to display templated error or success messages. (As of Seam 2.1, you can use <literal>StatusMessages</literal> instead, to remove the semantic dependency on JSF.) Built-in Seam components may be obtained by injection, or by calling the <literal>instance()</literal> method on the class of the built-in component.
-							</para>
-						</listitem>
-					</orderedlist>
-			      </para>
-				</formalpara>
-			<!--  	</example> -->
-				 <para>
-					Note that we did not explicitly specify a <literal>@Scope</literal> this time. Each Seam component type has a default scope, which will be used if scope is not explicitly specified. For stateless session beans, the default scope is the stateless context.
-				</para>
-				 <para>
-					The session bean action listener performs the business and persistence logic for our mini-application. In a more complex application, a separate service layer might be necessary, but Seam allows you to implement your own strategies for application layering. You can make any application as simple, or as complex, as you want.
-				</para>
-				 <note>
-					<para>
-						This application is more complex than necessary for the sake of clear example code. All of the application code could have been eliminated by using Seam&#39;s application framework controllers.
-					</para>
-				</note>
-			</section>
-			
-			 <section>
-				<title>The session bean local interface: <literal>Register.java</literal></title>
-				 <para>
-					The session bean requires a local interface.
-				</para>
-				<formalpara><title>Register.java Example</title>
-                  <para> 
-			<!--  	 <example>
-					<title>Register.java</title> -->
-					 
-<programlisting role="JAVA"><![CDATA[@Local
-public interface Register {
-  public String register();
-}]]></programlisting>
-			<!--  	</example> -->
-			      </para>
-			    </formalpara>
-				 <para>
-					That&#39;s the end of the Java code. The next level to examine is the view.
-				 </para>
-			</section>
-			
-			 <section>
-				<title>The view: <literal>register.xhtml</literal> and <literal>registered.xhtml</literal></title>
-				 <para>
-					The view pages for a Seam application can be implemented using any technology that supports JSF. This example was written with Facelets.
-				</para>
-				
-				<formalpara><title>Register.xhtml Example</title>
-                  <para> 
-			<!--  	<example>
-					<title>register.xhtml</title> -->
-					 
-<programlisting role="XHTML"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:s="http://jboss.com/products/seam/taglib"
-      xmlns:h="http://java.sun.com/jsf/html"
-      xmlns:f="http://java.sun.com/jsf/core">
+	  }]]>
+	  </programlisting>
+	</example>
 
-  <head>
-    <title>Register New User</title>
-  </head>
-  <body>
-    <f:view>
-      <h:form>
-        <s:validateAll>
+	<!-- </example> -->
+	<formalpara><title>RegisterAction.java Explanatory Notes</title>
+	<para>
+	  <orderedlist>
+	    <listitem>
+	      <para>
+		The EJB <literal>@Stateless</literal> annotation marks this class as a stateless session bean.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The <xref linkend="in-annotation" /> <literal>@In</literal>  annotation marks an attribute of the bean as injected by Seam. In this case, the attribute is injected from a context variable named <literal>user</literal> (the instance variable name).
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The EJB standard <literal>@PersistenceContext</literal> annotation is used to inject the EJB3 entity manager.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The Seam <literal>@Logger</literal> annotation is used to inject the component&#39;s <literal>Log</literal> instance.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The action listener method uses the standard EJB3 <literal>EntityManager</literal> API to interact with the database, and returns the JSF outcome. Note that, since this is a session bean, a transaction begins automatically when the <literal>register()</literal> method is called, and is committed when it completes.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Notice that Seam lets you use a JSF EL expression inside EJB-QL. This results in an ordinary JPA <literal>setParameter()</literal> call on the standard JPA <literal>Query</literal> object.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		The <literal>Log</literal> API allows easily display templated log messages that can include JSF EL expressions.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		JSF action listener methods return a string-valued outcome that determines the next page displayed. A null outcome (or a void action listener method) redisplays the previous page. In plain JSF, it is normal to always use a JSF <emphasis>navigation rule</emphasis> to determine the JSF view ID from the outcome. For complex applications, this redirection is good practice. However, for very simple examples like this one, Seam lets you use the JSF view ID as the outcome, eliminating the need for a navigation rule.
+	      </para>
+	      <note>
+		<para>
+		  When a view ID is used as an outcome, Seam always performs a browser redirect.
+		</para>
+	      </note>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Seam provides a number of <emphasis>built-in components</emphasis> to help solve common problems. The <literal>FacesMessages</literal> component makes it easy to display templated error or success messages. (As of Seam 2.1, you can use <literal>StatusMessages</literal> instead, to remove the semantic dependency on JSF.) Built-in Seam components may be obtained by injection, or by calling the <literal>instance()</literal> method on the class of the built-in component.
+	      </para>
+	    </listitem>
+	  </orderedlist>
+	</para>
+	</formalpara>
+	<!--  	</example> -->
+	<para>
+	  Note that we did not explicitly specify a <literal>@Scope</literal> this time. Each Seam component type has a default scope, which will be used if scope is not explicitly specified. For stateless session beans, the default scope is the stateless context.
+	</para>
+	<para>
+	  The session bean action listener performs the business and persistence logic for our mini-application. In a more complex application, a separate service layer might be necessary, but Seam allows you to implement your own strategies for application layering. You can make any application as simple, or as complex, as you want.
+	</para>
+	<note>
+	  <para>
+	    This application is more complex than necessary for the sake of clear example code. All of the application code could have been eliminated by using Seam&#39;s application framework controllers.
+	  </para>
+	</note>
+      </section>
+      
+      <section>
+	<title>The session bean local interface: <literal>Register.java</literal></title>
+	<para>
+	  The session bean requires a local interface.
+	</para>
+	<example><title>Register.java Example</title>
+	  <!--  	 <example>
+	       <title>Register.java</title> -->
+	  
+	  <programlisting role="JAVA"><![CDATA[@Local
+	  public interface Register {
+	  public String register();
+	  }]]></programlisting>
+	  <!--  	</example> -->
+	</example>
+	<para>
+	  That&#39;s the end of the Java code. The next level to examine is the view.
+	</para>
+      </section>
+      
+      <section>
+	<title>The view: <literal>register.xhtml</literal> and <literal>registered.xhtml</literal></title>
+	<para>
+	  The view pages for a Seam application can be implemented using any technology that supports JSF. This example was written with Facelets.
+	</para>
+	
+	<example><title>Register.xhtml Example</title>
+
+	  <!--  	<example>
+	       <title>register.xhtml</title> -->
+	  
+	  <programlisting role="XHTML"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
+	  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+	  <html xmlns="http://www.w3.org/1999/xhtml"
+	  xmlns:s="http://jboss.com/products/seam/taglib"
+	  xmlns:h="http://java.sun.com/jsf/html"
+	  xmlns:f="http://java.sun.com/jsf/core">
+
+	  <head>
+	  <title>Register New User</title>
+	  </head>
+	  <body>
+	  <f:view>
+	  <h:form>
+	  <s:validateAll>
           <h:panelGrid columns="2">
-            Username: <h:inputText value="#{user.username}" 
-                         required="true"/>
-            Real Name: <h:inputText value="#{user.name}" 
-                          required="true"/>
-            Password: <h:inputSecret value="#{user.password}" 
-                         required="true"/>
+	  Username: <h:inputText value="#{user.username}" 
+	  required="true"/>
+	  Real Name: <h:inputText value="#{user.name}" 
+	  required="true"/>
+	  Password: <h:inputSecret value="#{user.password}" 
+	  required="true"/>
           </h:panelGrid>
-        </s:validateAll>
-        <h:messages/>
-        <h:commandButton value="Register" action="#{register.register}"/>
-      </h:form>
-    </f:view>
-  </body>
+	  </s:validateAll>
+	  <h:messages/>
+	  <h:commandButton value="Register" action="#{register.register}"/>
+	  </h:form>
+	  </f:view>
+	  </body>
 
-</html>]]>
-</programlisting>
-                </para>
-                </formalpara>
-			<!--	</example> -->
-				 <para>
-					The only Seam-specific tag here is <literal><![CDATA[<s:validateAll>]]></literal>. This JSF component tells JSF to validate all the contained input fields against the Hibernate Validator annotations specified on the entity bean.
-				</para>
-				<formalpara><title>registered.xhtml Example</title>
-                  <para>
-			<!--  	 <example> 
-					<title>registered.xhtml</title>-->
-					 
-<programlisting role="XHTML"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:f="http://java.sun.com/jsf/core">
+	  </html>]]>
+	  </programlisting>
+	</example>
 
-  <head>
-    <title>Successfully Registered New User</title>
-  </head>
-  <body>
-    <f:view>
-      Welcome, #{user.name}, you are successfully 
-      registered as #{user.username}.
-    </f:view>
-  </body>
+	<!--	</example> -->
+	<para>
+	  The only Seam-specific tag here is <literal><![CDATA[<s:validateAll>]]></literal>. This JSF component tells JSF to validate all the contained input fields against the Hibernate Validator annotations specified on the entity bean.
+	</para>
+	<example><title>registered.xhtml Example</title>
 
-</html>
-]]>
-</programlisting>
-			<!--	</example> -->
-			</para>
-			</formalpara>
-				 <para>
-					The above is a simple Facelets page, created with inline EL — it contains nothing specific to Seam.
-				</para>
-			</section>
-			
-			 <section>
-				<title>The Seam component deployment descriptor: <literal>components.xml</literal></title>
-				 <para>
-					Before looking at deployment descriptors, it is worth noting that Seam strongly values minimal configuration. These configuration files will be created for you when you create a Seam application, and there will rarely be any need to alter them. They are presented here solely to assist you in understanding the purpose and function of all of the example code.
-				</para>
-				 <para>
-					If you have used Java frameworks previously, you will be used to declaring your component classes in an XML file. You have probably also noticed that as a project matures, these XML files tend to become unmanageable. Fortunately, Seam does not require application components to be accompanied by XML. Most Seam applications require only a small amount of XML, which does not tend to increase in size as projects expand.
-				</para>
-				 <para>
-					However, it is often useful to be able to provide for some external configuration of some components, particularly the components that are built into Seam. The most flexible option, here, is to provide this configuration in a file called <literal>components.xml</literal>, located in the <literal>WEB-INF</literal> directory. The <literal>components.xml</literal> file can be used to tell Seam how to find our EJB components in JNDI:
-				</para>
-				
-				<!--   <example>
-					<title>components.xml</title> -->
-			      <formalpara><title>components.xml Example</title>
-                    <para>
-					 
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<components xmlns="http://jboss.com/products/seam/components"
-            xmlns:core="http://jboss.com/products/seam/core"
-            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xsi:schemaLocation=
-              "http://jboss.com/products/seam/core
-               http://jboss.com/products/seam/core-2.2.xsd 
-               http://jboss.com/products/seam/components
-               http://jboss.com/products/seam/components-2.2.xsd">
-            
-  <core:init jndi-pattern="@jndiPattern@"/>
-     
-</components>]]>
-</programlisting>
-                    </para>
-                  </formalpara>  
-			<!--	</example> -->
-				 <para>
-					The above code configures a property named <literal>jndiPattern</literal>, which belongs to a built-in Seam component named <literal>org.jboss.seam.core.init</literal>. The <literal>@</literal> symbols are used to direct the Ant build script to insert the correct JNDI pattern from the components.properties file when the application is deployed. You will learn more about this process in <xref linkend="xml.descriptor" />.
-				</para>
-			</section>
-			
-			 <section>
-				<title>The web deployment description: <literal>web.xml</literal></title>
-				 <para>
-					The presentation layer for our mini-application will be deployed in a WAR, so a web deployment descriptor is required:
-				</para>
-				<!--  <example> 
-					<title>web.xml</title> -->
-			    <formalpara><title>web.xml Example</title>
-                  <para>
-					 
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation=
-         "http://java.sun.com/xml/ns/javaee
+	  <!--  	 <example> 
+	       <title>registered.xhtml</title>-->
+	  
+	  <programlisting role="XHTML"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
+	  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+	  <html xmlns="http://www.w3.org/1999/xhtml"
+	  xmlns:f="http://java.sun.com/jsf/core">
+
+	  <head>
+	  <title>Successfully Registered New User</title>
+	  </head>
+	  <body>
+	  <f:view>
+	  Welcome, #{user.name}, you are successfully 
+	  registered as #{user.username}.
+	  </f:view>
+	  </body>
+
+	  </html>
+	  ]]>
+	  </programlisting>
+	  <!--	</example> -->
+	</example>
+	<para>
+	  The above is a simple Facelets page, created with inline EL — it contains nothing specific to Seam.
+	</para>
+      </section>
+      
+      <section>
+	<title>The Seam component deployment descriptor: <literal>components.xml</literal></title>
+	<para>
+	  Before looking at deployment descriptors, it is worth noting that Seam strongly values minimal configuration. These configuration files will be created for you when you create a Seam application, and there will rarely be any need to alter them. They are presented here solely to assist you in understanding the purpose and function of all of the example code.
+	</para>
+	<para>
+	  If you have used Java frameworks previously, you will be used to declaring your component classes in an XML file. You have probably also noticed that as a project matures, these XML files tend to become unmanageable. Fortunately, Seam does not require application components to be accompanied by XML. Most Seam applications require only a small amount of XML, which does not tend to increase in size as projects expand.
+	</para>
+	<para>
+	  However, it is often useful to be able to provide for some external configuration of some components, particularly the components that are built into Seam. The most flexible option, here, is to provide this configuration in a file called <literal>components.xml</literal>, located in the <literal>WEB-INF</literal> directory. The <literal>components.xml</literal> file can be used to tell Seam how to find our EJB components in JNDI:
+	</para>
+	
+	<!--   <example>
+	     <title>components.xml</title> -->
+	<example><title>components.xml Example</title>
+	  
+	  <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+	  <components xmlns="http://jboss.com/products/seam/components"
+	  xmlns:core="http://jboss.com/products/seam/core"
+	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	  xsi:schemaLocation=
+	  "http://jboss.com/products/seam/core
+	  http://jboss.com/products/seam/core-2.2.xsd 
+	  http://jboss.com/products/seam/components
+	  http://jboss.com/products/seam/components-2.2.xsd">
+	  
+	  <core:init jndi-pattern="@jndiPattern@"/>
+	  
+	  </components>]]>
+	  </programlisting>
+	</example>
+	<!--	</example> -->
+	<para>
+	  The above code configures a property named <literal>jndiPattern</literal>, which belongs to a built-in Seam component named <literal>org.jboss.seam.core.init</literal>. The <literal>@</literal> symbols are used to direct the Ant build script to insert the correct JNDI pattern from the components.properties file when the application is deployed. You will learn more about this process in <xref linkend="xml.descriptor" />.
+	</para>
+      </section>
+      
+      <section>
+	<title>The web deployment description: <literal>web.xml</literal></title>
+	<para>
+	  The presentation layer for our mini-application will be deployed in a WAR, so a web deployment descriptor is required:
+	</para>
+	<!--  <example> 
+	     <title>web.xml</title> -->
+	<example><title>web.xml Example</title>
+	  
+	  <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+	  <web-app xmlns="http://java.sun.com/xml/ns/javaee"
+	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	  xsi:schemaLocation=
+	  "http://java.sun.com/xml/ns/javaee
           http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-         version="2.5">
+	  version="2.5">
 
-  <listener>
-    <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
-  </listener>
-    
-  <context-param>
-    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
-    <param-value>.xhtml</param-value>
-  </context-param>
-              
-  <servlet>
-    <servlet-name>Faces Servlet</servlet-name>
-    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
+	  <listener>
+	  <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+	  </listener>
+	  
+	  <context-param>
+	  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+	  <param-value>.xhtml</param-value>
+	  </context-param>
+	  
+	  <servlet>
+	  <servlet-name>Faces Servlet</servlet-name>
+	  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+	  <load-on-startup>1</load-on-startup>
+	  </servlet>
 
-  <servlet-mapping>
-    <servlet-name>Faces Servlet</servlet-name>
-    <url-pattern>*.seam</url-pattern>
-  </servlet-mapping>
-              
-  <session-config>
-    <session-timeout>10</session-timeout>
-  </session-config>
+	  <servlet-mapping>
+	  <servlet-name>Faces Servlet</servlet-name>
+	  <url-pattern>*.seam</url-pattern>
+	  </servlet-mapping>
+	  
+	  <session-config>
+	  <session-timeout>10</session-timeout>
+	  </session-config>
 
-</web-app>]]>
-</programlisting>
-                  </para>
-                </formalpara>  
-			<!--  </example> -->
-				 <para>
-					The above <literal>web.xml</literal> file configures both Seam and JSF. The configuration you see here changes very little between Seam applications.
-				</para>
-			</section>
-			
-			 <section>
-				<title>The JSF configration: <literal>faces-config.xml</literal></title>
-				 <para>
-					Most Seam applications use JSF views as the presentation layer, so <literal>faces-config.xml</literal> is usually a requirement. In this case, Facelets is used to define our views, so we need to tell JSF to use Facelets as its templating engine.
-				</para>
-			<!--  <example>
-					<title>faces-config.xml</title> -->
-				<formalpara><title>faces-config.xml Example</title>
-                  <para>
-					 
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
-              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-              xsi:schemaLocation=
-              "http://java.sun.com/xml/ns/javaee
-               http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
-              version="1.2">
+	  </web-app>]]>
+	  </programlisting>
+	</example>
+	<!--  </example> -->
+	<para>
+	  The above <literal>web.xml</literal> file configures both Seam and JSF. The configuration you see here changes very little between Seam applications.
+	</para>
+      </section>
+      
+      <section>
+	<title>The JSF configration: <literal>faces-config.xml</literal></title>
+	<para>
+	  Most Seam applications use JSF views as the presentation layer, so <literal>faces-config.xml</literal> is usually a requirement. In this case, Facelets is used to define our views, so we need to tell JSF to use Facelets as its templating engine.
+	</para>
+	<!--  <example>
+	     <title>faces-config.xml</title> -->
+	<example><title>faces-config.xml Example</title>
+	  
+	  <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+	  <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
+	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	  xsi:schemaLocation=
+	  "http://java.sun.com/xml/ns/javaee
+	  http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
+	  version="1.2">
 
-  <application>
-    <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
-  </application>
-    
-</faces-config>]]>
-</programlisting>
-                  </para>
-                </formalpara>
-			<!-- </example> -->
-				 <para>
-					Note that JSF managed bean declarations are unnecessary because the managed beans are annotated Seam components. In Seam applications, <literal>faces-config.xml</literal> is used much less often than in plain JSF. Here, we use it simply to enable Facelets (and not JSP) as the view handler.
-				</para>
-				 <para>
-					Once you have set up all the basic descriptors, the only XML you need write to add functionality to a Seam application will be for orchestration: navigation rules or jBPM process definitions. Seam operates on the principle that <emphasis>process flow</emphasis> and <emphasis>configuration data</emphasis> are all that truly belongs in XML.
-				</para>
-				 <para>
-					The above example does not require a navigation rule, since the view ID was embedded in our action code.
-				</para>
-			</section>
-			
-			 <section>
-				<title>The EJB deployment descriptor: <literal>ejb-jar.xml</literal></title>
-				 <para>
-					The <filename>ejb-jar.xml</filename> file integrates Seam with EJB3 by attaching the <literal>SeamInterceptor</literal> to all session beans in the archive.
-				</para>
-				 
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" 
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-         xsi:schemaLocation=
-         "http://java.sun.com/xml/ns/javaee
-          http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
-         version="3.0">
-         
-  <interceptors>
-    <interceptor>
-      <interceptor-class>
+	  <application>
+	  <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+	  </application>
+	  
+	  </faces-config>]]>
+	  </programlisting>
+	</example>
+	<!-- </example> -->
+	<para>
+	  Note that JSF managed bean declarations are unnecessary because the managed beans are annotated Seam components. In Seam applications, <literal>faces-config.xml</literal> is used much less often than in plain JSF. Here, we use it simply to enable Facelets (and not JSP) as the view handler.
+	</para>
+	<para>
+	  Once you have set up all the basic descriptors, the only XML you need write to add functionality to a Seam application will be for orchestration: navigation rules or jBPM process definitions. Seam operates on the principle that <emphasis>process flow</emphasis> and <emphasis>configuration data</emphasis> are all that truly belongs in XML.
+	</para>
+	<para>
+	  The above example does not require a navigation rule, since the view ID was embedded in our action code.
+	</para>
+      </section>
+      
+      <section>
+	<title>The EJB deployment descriptor: <literal>ejb-jar.xml</literal></title>
+	<para>
+	  The <filename>ejb-jar.xml</filename> file integrates Seam with EJB3 by attaching the <literal>SeamInterceptor</literal> to all session beans in the archive.
+	</para>
+	
+	<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+	<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xsi:schemaLocation=
+	"http://java.sun.com/xml/ns/javaee
+	http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+	version="3.0">
+	
+	<interceptors>
+	<interceptor>
+	<interceptor-class>
         org.jboss.seam.ejb.SeamInterceptor
-      </interceptor-class>
-    </interceptor>
-  </interceptors>
-   
-  <assembly-descriptor>
-    <interceptor-binding>
-      <ejb-name>*</ejb-name>
-      <interceptor-class>
+	</interceptor-class>
+	</interceptor>
+	</interceptors>
+	
+	<assembly-descriptor>
+	<interceptor-binding>
+	<ejb-name>*</ejb-name>
+	<interceptor-class>
         org.jboss.seam.ejb.SeamInterceptor
-      </interceptor-class>
-    </interceptor-binding>
-  </assembly-descriptor>
-   
-</ejb-jar>]]>
-</programlisting>
-			</section>
-			
-			 <section>
-				<title>The EJB persistence deployment descriptor: <literal>persistence.xml</literal></title>
-				 <para>
-					The <literal>persistence.xml</literal> file directs the EJB persistence provider to the appropriate datasource, and contains some vendor-specific settings. In this case, it enables automatic schema export at startup time.
-				</para>
-				 
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
-             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation=
-             "http://java.sun.com/xml/ns/persistence
-              http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
-             version="1.0">
+	</interceptor-class>
+	</interceptor-binding>
+	</assembly-descriptor>
+	
+	</ejb-jar>]]>
+	</programlisting>
+      </section>
+      
+      <section>
+	<title>The EJB persistence deployment descriptor: <literal>persistence.xml</literal></title>
+	<para>
+	  The <literal>persistence.xml</literal> file directs the EJB persistence provider to the appropriate datasource, and contains some vendor-specific settings. In this case, it enables automatic schema export at startup time.
+	</para>
+	
+	<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+	<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation=
+	"http://java.sun.com/xml/ns/persistence
+	http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
+	version="1.0">
 
-  <persistence-unit name="userDatabase">
-    <provider>org.hibernate.ejb.HibernatePersistence</provider>
-    <jta-data-source>java:/DefaultDS</jta-data-source>
-    <properties>
-      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
-    </properties>
-  </persistence-unit>
-    
-</persistence>]]>
-</programlisting>
-			</section>
-			
-			 <section>
-				<title>The EAR deployment descriptor: <literal>application.xml</literal></title>
-				 <para>
-					Finally, since our application is deployed as an EAR, we also require a deployment descriptor.
-				</para>
-				<!--
-				 <example id="registration-application-xml">
-					<title>registration application</title> -->
-				<formalpara><title>registration application Example</title>
-                    <para>
-					 
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://java.sun.com/xml/ns/javaee" 
-             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation=
-             "http://java.sun.com/xml/ns/javaee
-              http://java.sun.com/xml/ns/javaee/application_5.xsd"
-             version="5">
-             
-  <display-name>Seam Registration</display-name>
+	<persistence-unit name="userDatabase">
+	<provider>org.hibernate.ejb.HibernatePersistence</provider>
+	<jta-data-source>java:/DefaultDS</jta-data-source>
+	<properties>
+	<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+	</properties>
+	</persistence-unit>
+	
+	</persistence>]]>
+	</programlisting>
+      </section>
+      
+      <section>
+	<title>The EAR deployment descriptor: <literal>application.xml</literal></title>
+	<para>
+	  Finally, since our application is deployed as an EAR, we also require a deployment descriptor.
+	</para>
+	<!--
+	    <example id="registration-application-xml">
+	    <title>registration application</title> -->
+	<example><title>registration application Example</title>
+	  
+	  <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+	  <application xmlns="http://java.sun.com/xml/ns/javaee" 
+	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	  xsi:schemaLocation=
+	  "http://java.sun.com/xml/ns/javaee
+	  http://java.sun.com/xml/ns/javaee/application_5.xsd"
+	  version="5">
+	  
+	  <display-name>Seam Registration</display-name>
 
-  <module>
-    <web>
-      <web-uri>jboss-seam-registration.war</web-uri>
-        <context-root>/seam-registration</context-root>
-    </web>
-  </module>
-  <module>
-    <ejb>jboss-seam-registration.jar</ejb>
-  </module>
-  <module>
-    <ejb>jboss-seam.jar</ejb>
-  </module>
-  <module>
-    <java>jboss-el.jar</java>
-  </module>
+	  <module>
+	  <web>
+	  <web-uri>jboss-seam-registration.war</web-uri>
+	  <context-root>/seam-registration</context-root>
+	  </web>
+	  </module>
+	  <module>
+	  <ejb>jboss-seam-registration.jar</ejb>
+	  </module>
+	  <module>
+	  <ejb>jboss-seam.jar</ejb>
+	  </module>
+	  <module>
+	  <java>jboss-el.jar</java>
+	  </module>
 
-</application>]]>
-</programlisting>
-                  </para>
-                </formalpara>
-			<!--	</example> -->
-				 <para>
-					This deployment descriptor links modules in the enterprise archive and binds the web application to the context root <literal>/seam-registration</literal>.
-				</para>
-				 <para>
-					You have now seen all of the files in the application.
-				</para>
-			</section>
-			
-		</section>
-		
-		 <section>
-			<title>How it works</title>
-			 <para>
-				When the form is submitted, JSF asks Seam to resolve the variable named <literal>user</literal>. Since no value is yet bound to that name (in any Seam context), Seam instantiates the <literal>user</literal> component, and returns the resulting <literal>User</literal> entity bean instance to JSF after storing it in the Seam session context.
-			</para>
-			 <para>
-				The form input values are now validated against the Hibernate Validator constraints specified on the <literal>User</literal> entity. If the constraints are violated, JSF redisplays the page. Otherwise, JSF binds the form input values to properties of the <literal>User</literal> entity bean.
-			</para>
-			 <para>
-				Next, JSF asks Seam to resolve the variable named <literal>register</literal>. Seam uses the JNDI pattern mentioned earlier to locate the stateless session bean, wraps it as a Seam component, and returns it. Seam then presents this component to JSF and JSF invokes the <literal>register()</literal> action listener method.
-			</para>
-			 <para>
-				Seam then intercepts the method call and injects the <literal>User</literal> entity from the Seam session context, before allowing the invocation to continue.
-			</para>
-			 <para>
-				The <literal>register()</literal> method checks if a user with the entered username already exists. If so, an error message is queued with the <literal>FacesMessages</literal> component, and a null outcome is returned, causing a page redisplay. The <literal>FacesMessages</literal> component interpolates the JSF expression embedded in the message string and adds a JSF <literal>FacesMessage</literal> to the view.
-			</para>
-			 <para>
-				If no user with that username exists, the <literal>"/registered.xhtml"</literal> outcome triggers a browser redirect to the <literal>registered.xhtml</literal> page. When JSF comes to render the page, it asks Seam to resolve the variable named <literal>user</literal> and uses property values of the returned <literal>User</literal> entity from Seam&#39;s session scope.
-			</para>
-		</section>
-		
+	  </application>]]>
+	  </programlisting>
+	</example>
+	<!--	</example> -->
+	<para>
+	  This deployment descriptor links modules in the enterprise archive and binds the web application to the context root <literal>/seam-registration</literal>.
+	</para>
+	<para>
+	  You have now seen all of the files in the application.
+	</para>
+      </section>
+      
+    </section>
+    
+    <section>
+      <title>How it works</title>
+      <para>
+	When the form is submitted, JSF asks Seam to resolve the variable named <literal>user</literal>. Since no value is yet bound to that name (in any Seam context), Seam instantiates the <literal>user</literal> component, and returns the resulting <literal>User</literal> entity bean instance to JSF after storing it in the Seam session context.
+      </para>
+      <para>
+	The form input values are now validated against the Hibernate Validator constraints specified on the <literal>User</literal> entity. If the constraints are violated, JSF redisplays the page. Otherwise, JSF binds the form input values to properties of the <literal>User</literal> entity bean.
+      </para>
+      <para>
+	Next, JSF asks Seam to resolve the variable named <literal>register</literal>. Seam uses the JNDI pattern mentioned earlier to locate the stateless session bean, wraps it as a Seam component, and returns it. Seam then presents this component to JSF and JSF invokes the <literal>register()</literal> action listener method.
+      </para>
+      <para>
+	Seam then intercepts the method call and injects the <literal>User</literal> entity from the Seam session context, before allowing the invocation to continue.
+      </para>
+      <para>
+	The <literal>register()</literal> method checks if a user with the entered username already exists. If so, an error message is queued with the <literal>FacesMessages</literal> component, and a null outcome is returned, causing a page redisplay. The <literal>FacesMessages</literal> component interpolates the JSF expression embedded in the message string and adds a JSF <literal>FacesMessage</literal> to the view.
+      </para>
+      <para>
+	If no user with that username exists, the <literal>"/registered.xhtml"</literal> outcome triggers a browser redirect to the <literal>registered.xhtml</literal> page. When JSF comes to render the page, it asks Seam to resolve the variable named <literal>user</literal> and uses property values of the returned <literal>User</literal> entity from Seam&#39;s session scope.
+      </para>
+    </section>
+    
 	</section>
 	
 	 <section id="messages">
@@ -743,8 +727,7 @@
 				</para>
 		<!--  		 <example>
 					<title>Message.java</title> -->
-				<formalpara><title>Message.java Example</title>
-                  <para>
+				<example><title>Message.java Example</title>
 					 
 <programlisting role="JAVA"><![CDATA[@Entity
 @Name("message")
@@ -798,8 +781,7 @@
   }
 }]]>
 </programlisting>
-                  </para>
-                </formalpara>  
+				</example>
 			<!-- </example> -->
 			</section>
 			
@@ -816,8 +798,7 @@
 				</para>
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <example> <title>MessageManagerBean.java</title> <programlistingco> <areaspec> <area id="messages-datamodel" coords="7"/> <area id="messages-datamodelselection" coords="10"/> <area id="messages-out" coords="11"/> <area id="messages-persistencecontext" coords="14"/> <area id="messages-factory" coords="17"/> <area id="messages-select" coords="24"/> <area id="messages-delete" coords="29"/> <area id="messages-remove" coords="36"/> </areaspec> <programlisting><![CDATA[@Stateful @Scope(SESSION) @Name("messageManager") public class MessageManagerBean implements Serializable, MessageManager { @DataModel private List<Message> messageList; @DataModelSelection @Out(required=false) private Message message; @PersistenceContext(type=EXTENDED) private EntityManager em; @Factory("messageList") public void findMessages() { messageList = em.createQuery("select msg from Message msg order by msg.datetime desc") .getResultList(); }!
  public void select() { message.setRead(true); } public void delete() { messageList.remove(message); em.remove(message); message=null; } @Remove public void destroy() {} }]]></programlisting> <calloutlist> <callout arearefs="messages-datamodel"> <para> The <literal>@DataModel</literal> annotation exposes an attibute of type <literal>java.util.List</literal> to the JSF page as an instance of <literal>javax.faces.model.DataModel</literal>. This allows us to use the list in a JSF <literal><![CDATA[<h:dataTable>]]></literal> with clickable links for each row. In this case, the <literal>DataModel</literal> is made available in a session context variable named <literal>messageList</literal>. </para> </callout> <callout arearefs="messages-datamodelselection"> <para> The <literal>@DataModelSelection</literal> annotation tells Seam to inject the <literal>List</literal> element corresponding to the clicked link. </para> </callout> <callout arearefs="messages-out"> <para> The <literal!
 >@Out</literal> annotation then exposes the selected value dir!
 ectly to
 the page. Every time a row of the clickable list is selected, the <literal>Message</literal> is injected to the attribute of the stateful bean, and subsequently "outjected" to the event context variable named <literal>message</literal>. </para> </callout> <callout arearefs="messages-persistencecontext"> <para> This stateful bean has an EJB3 <emphasis>extended persistence context</emphasis>. This means that messages retrieved in the query remain in the managed state for as long as the bean exists. Any subsequent method calls to the stateful bean can therefore update the messages without needing to make an explicit call to the <literal>EntityManager</literal>. </para> </callout> <callout arearefs="messages-factory"> <para> The first time we navigate to the JSP page, the <literal>messageList</literal> context variable does not hold a value. The <literal>@Factory</literal> annotation tells Seam to create an instance of <literal>MessageManagerBean</literal> and invoke <literal>f!
 indMessages()</literal> &#8212; a factory method for messages &#8212; to initialize the value.</para> </callout> <callout arearefs="messages-select"> <para> The <literal>select()</literal> action listener method marks the selected <literal>Message</literal> as read, and updates it in the database. </para> </callout> <callout arearefs="messages-delete"> <para> The <literal>delete()</literal> action listener method removes the selected <literal>Message</literal> from the database. </para> </callout> <callout arearefs="messages-remove"> <para> All stateful session bean Seam components <emphasis>must</emphasis> have a method <literal>@Remove</literal> defined, with no parameters marked. Seam uses this to remove the stateful bean and clean up any server-side state when the Seam context ends. </para> </callout> </calloutlist> </programlistingco> </example> --> <!--  <example> 
 					<title>MessageManagerBean.java</title> -->
-			    <formalpara><title>MessageManagerBean.java Example</title>
-                  <para>
+			    <example><title>MessageManagerBean.java Example</title>
 					 
 <programlisting><![CDATA[@Stateful
 @Scope(SESSION)
@@ -855,8 +836,7 @@
 
 }]]>
 </programlisting>
-                  </para>
-                </formalpara>  
+			    </example>
                   <!--   </example> -->
                      <formalpara><title>MessageManagerBean.java Explanatory Notes</title>
                      <para>
@@ -919,8 +899,7 @@
 				</para>
 				<!--   <example>
 					<title>MessageManager.java</title> -->
-			    <formalpara><title>MessageManager.java Example</title>
-                  <para>
+			    <example><title>MessageManager.java Example</title>
 					 
 <programlisting role="JAVA"><![CDATA[@Local
 public interface MessageManager {
@@ -930,8 +909,7 @@
   public void destroy();
 }]]>
 </programlisting>
-                  </para>
-                </formalpara>   
+			    </example>
 		<!--		</example> -->
 				 <para>
 					From this point, local interfaces are no longer shown in these code examples. <filename>Components.xml</filename>, <filename>persistence.xml</filename>, <filename>web.xml</filename>, <filename>ejb-jar.xml</filename>, <filename>faces-config.xml</filename> and <filename>application.xml</filename> operate in a similar fashion to the previous example, and go directly to the JSP.
@@ -945,8 +923,7 @@
 				</para>
 				<!--   <example>
 					<title>messages.jsp</title> -->
-				<formalpara><title>messages.jsp Example</title>
-                  <para>
+				<example><title>messages.jsp Example</title>
 <programlisting role="XHTML"><![CDATA[<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
 <html>
@@ -995,8 +972,7 @@
   </body>
 </html>]]>
 </programlisting>
-                  </para>
-                </formalpara>  
+				</example>
 			<!--	</example> -->
 			</section>
 			
@@ -1038,8 +1014,7 @@
 			 <!--  Can't use code hightlighting with callouts  --> 
 			<!--   <example>
 				<title>todo.jpdl.xml</title> -->
-			<formalpara><title>todo.jpdl.xml Example</title>
-              <para>
+			<example><title>todo.jpdl.xml Example</title>
 				 <!-- <programlistingco> <areaspec> <area id="todo-startstate" coords="3"/> <area id="todo-tasknode" coords="7"/> <area id="todo-task" coords="8"/> <area id="todo-assignment" coords="9"/> <area id="todo-endstate" coords="14"/> </areaspec> --> 
 <programlisting><![CDATA[<process-definition name="todo">
   
@@ -1058,8 +1033,7 @@
    
 </process-definition>]]>
 </programlisting>
-                  </para>
-                </formalpara>
+			</example>
                 <formalpara><title>messages.jsp Explanatory Notes</title>
                   <para>
 				 <orderedlist>
@@ -1112,8 +1086,7 @@
 			</para>
 		<!--  	 <example>
 				<title>Login.java</title> -->
-				<formalpara><title>Login.java Example</title>
-                  <para>
+				<example><title>Login.java Example</title>
 				 
 <programlisting role="JAVA"><![CDATA[@Name("login")
 public class Login {
@@ -1136,8 +1109,7 @@
   }
 }]]>
 </programlisting>
-                  </para>
-                </formalpara>
+				</example>
 		<!--	</example> -->
 			 <para>
 				Here we see the use of <literal>@In</literal> to inject the built-in <literal>Actor</literal> component.
@@ -1148,8 +1120,7 @@
 			<!--
 			 <example>
 				<title>login.jsp</title> -->
-				<formalpara><title>login.jsp Example</title>
-                  <para>
+				<example><title>login.jsp Example</title>
 				 
 <programlisting role="XHTML"><![CDATA[<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
@@ -1170,8 +1141,7 @@
   </body>
 </html>]]>
 </programlisting>
-                  </para>
-                </formalpara>
+				</example>
 			<!--  </example> -->
 			 <para>
 				The second JavaBean is responsible for starting business process instances, and ending tasks.
@@ -1180,8 +1150,7 @@
 			<!--    <example>
 				<title>TodoList.java</title> -->
 				 <!-- <programlistingco> <areaspec> <area id="todo-description" coords="6"/> <area id="todo-createprocess-annotation" coords="15"/> <area id="todo-task-annotations" coords="18"/> </areaspec> --> 
-			<formalpara><title>TodoList.java Example</title>
-                  <para>	 
+			<example><title>TodoList.java Example</title>
 <programlisting><![CDATA[@Name("todoList")
 public class TodoList {
   private String description;
@@ -1202,8 +1171,7 @@
 
 }]]>
 </programlisting>
-                  </para>
-                </formalpara>
+			</example>
              <!--   </example> -->
                 <formalpara><title>TodoList.java Explanatory Notes</title>
                 <para>
@@ -1238,8 +1206,7 @@
 			</para>
 		<!--	 <example> 
 				<title>todo.jsp</title> -->
-				<formalpara><title>todo.jsp Example</title>
-                  <para>
+				<example><title>todo.jsp Example</title>
 				 
 <programlisting role="XHTML"><![CDATA[<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
@@ -1310,8 +1277,7 @@
   </body>
 </html>]]>
 </programlisting>
-              </para>
-            </formalpara>
+				</example>
 		<!--	</example> -->
 			 <para>
 				For simplicity&#39;s sake, we will look at this once section at a time.
@@ -1321,8 +1287,7 @@
 			</para>
 			<!-- <example>
 				<title>todo.jsp (taskInstanceList)</title> -->
-			<formalpara><title>todo.jsp - taskInstanceList</title>
-              <para>	 
+			<example><title>todo.jsp - taskInstanceList</title>
 <programlisting role="XHTML"><![CDATA[<h:form id="list">
   <div>
     <h:outputText value="There are no todo items." 
@@ -1334,8 +1299,7 @@
   </div>
 </h:form>]]>
 </programlisting>
-              </para>
-            </formalpara>
+			</example>
 		<!-- </example> -->
 			 <para>
 				Each element of the list is an instance of the jBPM class <literal>TaskInstance</literal>. The following code displays certain properties for every task in the list. Input controls are used for description, priority, and due date to allow users to update these values.
@@ -1449,8 +1413,7 @@
 			<!--   <example>
 			   <title>pageflow.jpdl.xml</title> -->
 				 <!-- <programlistingco> <areaspec> <area id="numberguess-page" coords="8"/> <area id="numberguess-transition" coords="10"/> <area id="numberguess-action" coords="11"/> <area id="numberguess-decision" coords="16"/> </areaspec> -->
-			<formalpara><title>pageflow.jpdl.xml Example</title>
-              <para>	  
+			<example><title>pageflow.jpdl.xml Example</title>
 <programlisting><![CDATA[<pageflow-definition 
         xmlns="http://jboss.com/products/seam/pageflow"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1502,8 +1465,7 @@
    
 </pageflow-definition>]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+			</example>
                <!--  </example> -->
                  <formalpara><title>pageflow.jpdl.xml Explanatory Notes.</title>
                  <para>
@@ -1552,8 +1514,7 @@
 			</para>
 <!--  			 <example> 
 				<title>numberGuess.jspx</title> -->
-				<formalpara><title>numberGuess.jspx Example</title>
-                  <para>
+				<example><title>numberGuess.jspx Example</title>
 				 
 <programlisting role="XHTML"><![CDATA[<?xml version="1.0"?>
 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
@@ -1643,8 +1604,7 @@
   </html>
 </jsp:root>]]>
 </programlisting>
-</para>
-</formalpara>
+				</example>
 		<!--  	</example> -->
 			 <para>
 				Note that the command button names the <literal>guess</literal> transition instead of calling an action directly.
@@ -1654,8 +1614,7 @@
 			</para>
 			<!--  <example>
 				<title>win.jspx</title> -->
-			<formalpara><title>win.jspx Example</title>
-              <para>
+			<example><title>win.jspx Example</title>
 				 
 <programlisting role="JSP"><![CDATA[<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
           xmlns:h="http://java.sun.com/jsf/html"
@@ -1687,8 +1646,7 @@
 </jsp:root>
 ]]>
 </programlisting>
-              </para>
-            </formalpara>
+			</example>
 		<!--	</example> -->
 			 <para>
 				The <literal>lose.jspx</literal> is very similar, so we have not included it here.
@@ -1700,8 +1658,7 @@
 			<!-- <example>
 				<title>NumberGuess.java</title> -->
 				 <!-- <programlistingco> <areaspec> <area id="numberguess-create" coords="13"/> </areaspec> -->
-				 <formalpara><title>NumberGuess.java Example</title>
-                  <para> 
+				 <example><title>NumberGuess.java Example</title>
 <programlisting><![CDATA[@Name("numberGuess")
 @Scope(ScopeType.CONVERSATION)
 public class NumberGuess implements Serializable {
@@ -1792,8 +1749,7 @@
   
 }]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+				 </example>
                  <!-- </example> -->
                  <formalpara><title>NumberGuess.java Explanatory Notes</title>
                  <para>
@@ -1813,8 +1769,7 @@
 			</para>
 			<!--  <example>
 				<title>pages.xml</title> -->
-				<formalpara><title>pages.xml Example</title>
-                  <para>
+				<example><title>pages.xml Example</title>
 				 
 <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
 <pages xmlns="http://jboss.com/products/seam/pages"
@@ -1828,8 +1783,7 @@
 </pages>      
 ]]>
 </programlisting>
-                </para>
-              </formalpara>   
+				</example>
 			<!-- </example> -->
 			 <para>
 				This component is pure business logic. Since it requires no information about the user interaction flow, it is potentially more reuseable.
@@ -2031,8 +1985,7 @@
 				<title>HotelSearchingAction.java</title> -->
 			
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <programlistingco> <areaspec> <area id="booking-stateful-annotation" coords="1"/> <area id="booking-restrict-annotation" coords="4"/> <area id="booking-datamodel-annotation" coords="15"/> <area id="booking-destroy-annotation" coords="70"/> </areaspec> -->
-				 <formalpara><title>HotelSearchingAction.java Example</title>
-                   <para>
+				 <example><title>HotelSearchingAction.java Example</title>
 <!--  <programlisting language="java"><xi:include href="extras/booking.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting> 
   </example> -->	
 <programlisting><![CDATA[@Stateful
@@ -2101,8 +2054,7 @@
   public void destroy() {}
 }]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+				 </example>
                  <formalpara><title>HotelSearchingAction.java Explanatory Notes</title>
                   <para>  
 				 <orderedlist>
@@ -2137,8 +2089,8 @@
 			<!--   <example>
 				<title>main.xhtml</title> -->
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <programlistingco> <areaspec> <area id="booking-support-element" coords="14"/> <area id="booking-status-element" coords="20"/> <area id="booking-outputpanel-element" coords="37"/> <area id="booking-link-element" coords="61"/> </areaspec> -->
-				 <formalpara><title>main.xhtml Example</title>
-                   <para> 
+				 <example><title>main.xhtml Example</title>
+
 <programlisting><![CDATA[<div class="section">
   
   <span class="errors">
@@ -2209,8 +2161,7 @@
   </div>
 </a:outputPanel>]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+				 </example>
                  <formalpara><title>main.xhtml Explanatory Notes</title>
                    <para>
 				 <orderedlist>
@@ -2251,8 +2202,7 @@
 			<!--   <example>
 				<title>HotelBookingAction.java</title> -->
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <programlistingco> <areaspec> <area id="booking-extendedpersistencecontext-annotation" coords="7"/> <area id="booking-out-annotation" coords="17"/> <area id="booking-begin-annotation" coords="31"/> <area id="booking-end-annotation" coords="72"/> <area id="booking-dest-annotation" coords="85"/> </areaspec> -->
-				 <formalpara><title>HotelBookingAction.java Example</title>
-                   <para> 
+				 <example><title>HotelBookingAction.java Example</title>
 <programlisting><![CDATA[@Stateful
 @Name("hotelBooking")
 @Restrict("#{identity.loggedIn}")
@@ -2335,8 +2285,7 @@
   @Remove
   public void destroy() {}]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+				 </example>
                  <formalpara><title>HotelBookingAction.java Explanatory Notes</title>
                    <para>
 				 <orderedlist>
@@ -2438,8 +2387,7 @@
 			<!-- <example>
 				<title>RoomPreferenceAction.java</title> -->
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <programlistingco> <areaspec> <area id="nested-booking-load-rooms" coords="25"/> <area id="nested-booking-nested-conversation" coords="38"/> <area id="nested-booking-select-preference" coords="43"/> <area id="nested-booking-end-annotation" coords="58"/> </areaspec> -->
-			<formalpara><title>RoomPreferenceAction.java Example</title>
-              <para>	  
+			<example><title>RoomPreferenceAction.java Example</title>
 <programlisting><![CDATA[@Stateful
 @Name("roomPreference")
 @Restrict("#{identity.loggedIn}")
@@ -2504,8 +2452,7 @@
 }]]>
 </programlisting>
 
-                   </para>
-                 </formalpara>
+			</example>
                  <formalpara><title>RoomPreferenceAction.java Explanatory Notes</title>
                   <para>  
 				  <orderedlist>
@@ -2540,8 +2487,7 @@
 			<!-- <example>
 				<title>rooms.xhtml</title> -->
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <programlistingco> <areaspec> <area id="nested-booking-available-rooms" coords="19"/> <area id="nested-booking-selection-action" coords="36"/> <area id="nested-booking-cancel-action" coords="45"/> </areaspec> -->
-			<formalpara><title>rooms.xhtml Example</title>
-              <para> 
+			<example><title>rooms.xhtml Example</title>
 <programlisting><![CDATA[<div class="section">
   <h1>Room Preference</h1>
 </div>
@@ -2597,8 +2543,7 @@
 </div>
 ]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+			</example>
                  <formalpara><title>rooms.xhtml Explanatory Notes</title>
                    <para>  
 				 <orderedlist>
@@ -2628,8 +2573,7 @@
 			<!-- <example>
 				<title>HotelBookingAction.java</title> -->
 				 <!--  Can't use code hightlighting with callouts  --> <!-- <programlistingco> <areaspec> <area id="nested-booking-end-root" coords="77"/> <area id="nested-booking-confirm" coords="82"/> <area id="nested-booking-cancel" coords="89" /> </areaspec> -->
-		    <formalpara><title>HotelBookingAction.java Example</title>
-              <para> 
+		    <example><title>HotelBookingAction.java Example</title>
 <programlisting><![CDATA[@Stateful
 @Name("hotelBooking")
 @Restrict("#{identity.loggedIn}")
@@ -2723,8 +2667,7 @@
   public void destroy() {}
 }]]>
 </programlisting>
-                   </para>
-                 </formalpara>
+		    </example>
                  <formalpara><title>HotelBookingAction.java Explanatory Notes</title>
                    <para> 
 				 <orderedlist>

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Weblogic.xml
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Weblogic.xml	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Weblogic.xml	2010-04-07 07:48:22 UTC (rev 103617)
@@ -675,11 +675,11 @@
 					Assuming that you choose the first option to handle <literal>jboss-seam-wls-compatible.jar</literal>, you can build the application by running <literal>ant archive</literal> at the base of the <literal>jee5/booking</literal> example directory.
 				</para>
 				 <para>
-					Because we created our WebLogic domain in development mode, we can deploy the application by adding the <filename>EAR</filename> archive to the domain&#39;s <literal>autodeploy</literal> directory. 
+					Because we created our WebLogic domain in development mode, we can deploy the application by adding the <filename>EAR</filename> archive to the domain&#39;s <literal>autodeploy</literal> directory.
+				 </para>
 <programlisting> 
 cp ./dist/jboss-seam-jee5.ear $BEA_HOME/user_projects/domains/seam_examples/autodeploy
 </programlisting>
-				</para>
 				 <para>
 					You can then view the application at: <literal>http://localhost:7001/seam-jee5/</literal>
 				</para>
@@ -730,10 +730,10 @@
 			 <section>
 				<title>Building the example</title>
 				 <para>
-					Building the example only requires the correct Ant command: 
+					Building the example only requires the correct Ant command:
+				 </para>
 <programlisting>ant weblogic10
 </programlisting>. This creates a container-specific distribution and exploded archive directories.
-				</para>
 			</section>
 			
 			 <section>

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Websphere.xml
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Websphere.xml	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/en-US/Websphere.xml	2010-04-07 07:48:22 UTC (rev 103617)
@@ -3,878 +3,878 @@
 ]>
 
 <chapter id="websphere" >
-	<title>Seam on IBM&#39;s Websphere AS</title>
-	 <para>
-		<trademark class="registered">WebSphere</trademark> Application Server V7 (hereafter WebSphere AS) is IBM&#39;s latest stable application server offering, and is fully Java EE 5 (JEE5) certified.
+  <title>Seam on IBM&#39;s Websphere AS</title>
+  <para>
+    <trademark class="registered">WebSphere</trademark> Application Server V7 (hereafter WebSphere AS) is IBM&#39;s latest stable application server offering, and is fully Java EE 5 (JEE5) certified.
+  </para>
+  <para>
+    This chapter contains basic information about using the WebSphere AS to deploy both the JEE5 Booking example, and the JPA example application.
+  </para>
+  <section>
+    <title>WebSphere AS environment and deployment information</title>
+    <para>
+      Since WebSphere AS is a commercial product, we recommend following the directions provided by IBM for your particular installation and license type. This section details several versions of the server, installation tips, and some property configurations required to deploy all example applications.
+    </para>
+    <section>
+      <title>Installation versions</title>
+      <para>
+	All examples and information in this chapter are based on WebSphere AS V7. Follow the WebSphere AS installation instructions to install the WebSphere AS. 
+	<itemizedlist>
+	  <listitem>
+	    <para>
+	      <ulink url="http://www.ibm.com/developerworks/downloads/ws/was">WebSphere Application Server V7</ulink>
+	    </para>
+	  </listitem>
+	</itemizedlist>
+      </para>
+      <para>
+	Create a server profile with the Profile Management Tool if you did not create a profile during installation.
+      </para>
+    </section>
+    
+  </section>
+  
+  <section id="jee5-websphere-section">
+    <title> The <literal>jee5/booking</literal> example </title>
+    <para>
+      The Hotel Booking example, which runs on JBoss AS, is designed to run on GlassFish out of the box. Follow the steps below to deploy it to the WebSphere AS. You can find this example in the <literal>$SEAM_DIST/examples/jee5/booking</literal> directory.
+    </para>
+    <section>
+      <title>Configuration file changes</title>
+      <para>
+	You will need to configure the following files as described to run the booking example correctly on WebSphere AS:
+      </para>
+      <variablelist>
+	<varlistentry>
+	  <term> <filename>resources/WEB-INF/components.xml</filename> </term>
+	  <listitem>
+	    <para>
+	      Remove the <literal>/local</literal> string from the <literal>jndi-pattern</literal>, like so:
+	    </para>
+	    
+	    <programlisting role="XML"><![CDATA[ 
+	    <core:init jndi-pattern="java:comp/env/jboss-seam-jee5/#{ejbName}" 
+	    debug="true"/> ]]>
+	    </programlisting>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term> <filename>resources/META-INF/ejb-jar.xml</filename> </term>
+	  <listitem>
+	    <para>
+	      Remove the <literal>/local</literal> string from <literal>ejb-ref-name</literal>, as follows:
+	    </para>
+	    
+	    <programlisting role="XML"><![CDATA[ 
+	    <enterprise-beans> 
+	    <!-- EJB reference required when one Seam EJB component references 
+	    another Seam EJB component using @In --> 
+	    <!-- Not required if you inject using @EJB, but then you lose state 
+	    management and client-side interceptors (e.g., security) -->
+	    
+	    <session> 
+	    <ejb-name>RegisterAction</ejb-name> 
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/AuthenticatorAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.Authenticator</local> 
+	    </ejb-local-ref> 
+	    </session>
+	    
+	    </enterprise-beans>]]>
+	    </programlisting>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term> <filename>resources/WEB-INF/web.xml</filename> </term>
+	  <listitem>
+	    <para>
+	      You will also need to alter the EJB reference in <filename>web.xml</filename> so that WebSphere AS can automatically bind EJB3 references in the web module to EJB3 beans in the EAR module. Replace all <literal>/local</literal> strings in <literal>ejb-local-refs</literal> with the values shown here: <!-- #modify: can we get a before/after shot of the code, here? I thought we were removing an appended "/local", but from this programlisting has <local> tags, which could be confusing. -->
+	    </para>
+	    
+	    <programlisting role="XML"><![CDATA[
+	    <!-- JEE5 EJB3 names --> 
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/AuthenticatorAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.Authenticator</local> 
+	    </ejb-local-ref>	
+	    
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/BookingListAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.BookingList</local> 
+	    </ejb-local-ref> 
+	    
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/RegisterAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.Register</local> 
+	    </ejb-local-ref> 
+
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/ChangePasswordAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.ChangePassword</local> 
+	    </ejb-local-ref> 
+
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/HotelBookingAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.HotelBooking</local> 
+	    </ejb-local-ref> 
+	    
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/HotelSearchingAction</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.example.booking.HotelSearching</local> 
+	    </ejb-local-ref> 
+
+	    <ejb-local-ref> 
+	    <ejb-ref-name>jboss-seam-jee5/EjbSynchronizations</ejb-ref-name> 
+	    <ejb-ref-type>Session</ejb-ref-type> 
+	    <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local> 
+	    </ejb-local-ref>]]>
+	    </programlisting>
+	    <note>
+	      <para>
+		<literal>EjbSynchronizations</literal> is a built-in Seam EJB, not part of the Hotel Booking example. If your application specifies <literal>transaction:ejb-transaction</literal> in <filename>components.xml</filename>, you must also include the following in your <filename>web.xml</filename>:
+	      </para>
+	      
+	      <programlisting role="XML"><![CDATA[
+	      <ejb-local-ref> 
+	      <ejb-ref-name>myapp/EjbSynchronizations</ejb-ref-name> 
+	      <ejb-ref-type>Session</ejb-ref-type> 
+	      <local-home></local-home> 
+	      <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local> 
+	      </ejb-local-ref>]]>
+	      </programlisting>
+	      <para>
+		If you do not include this, you will encounter the following error:
+	      </para>
+	      
+	      <programlisting>Name comp/env/myapp/EjbSynchronizations not found in context java:
+	      </programlisting>
+	    </note>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term> <filename>resources/META-INF/persistence.xml</filename> </term>
+	  <listitem>
+	    <para>
+	      This example requires the WebSphere AS&#39;s default data source. To use it, change the <literal>jta-data-source</literal> element like so:
+	    </para>
+	    
+	    <programlisting role="XML"><![CDATA[<jta-data-source>DefaultDatasource</jta-data-source> ]]>
+	    </programlisting>
+	    <para>
+	      We must also adjust some Hibernate properties. First, use comment tags to omit the GlassFish properties and include the following changes:
+	    </para>
+	    
+	    <programlisting role="XML"><![CDATA[
+	    <!--<property name="hibernate.transaction.flush_before_completion" 
+	    value="true"/>--> 
+	    <property name="hibernate.cache.provider_class" 
+	    value="org.hibernate.cache.HashtableCacheProvider"/> 
+	    <property name="hibernate.dialect" value="GlassfishDerbyDialect"/> 
+	    <property name="hibernate.transaction.manager_lookup_class" 
+	    value="org.hibernate.transaction
+	    .WebSphereExtendedJTATransactionLookup"/>]]>
+	    </programlisting>
+
+	      <itemizedlist>
+		<listitem>
+		  <para>
+		    <literal>hibernate.transaction.manager_lookup_class</literal> —A standard Hibernate transaction manager property for WebSphere AS V6.x and V7.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    <literal>hibernate.transaction.flush_before_completion</literal> —This has been commented out so that transactions are managed by the container. If this is set to <parameter>true</parameter>, an exception will occur when the WebSphere AS looks up the EJBContext.
+		  </para>
+		  
+		  <programlisting><![CDATA[
+		  com.ibm.wsspi.injectionengine.InjectionException: EJBContext may only be looked up by or injected into an EJB]]>
+		  </programlisting>
+		</listitem>
+		<listitem>
+		  <para>
+		    <literal>hibernate.dialect</literal> —the GlassFish V2 Derby database has replaced the embedded database from WebSphere AS 6.1.0.9 onward.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	    
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term> <filename>src/GlassfishDerbyDialect.java</filename> </term>
+	  <listitem>
+	    <para>
+	      Copy <filename>GlassfishDerbyDialect.java</filename> from the JPA example source directory into the <literal>/src</literal> directory with the following command (executed from within the <literal>jee5/booking</literal> directory):
+	    </para>
+	    
+	    <programlisting><![CDATA[ cp ../../jpa/src/GlassfishDerbyDialect.java ./src]]>
+	    </programlisting>
+	    <para>
+	      This class will be added to the <filename>jboss-seam-jee5.jar</filename> file.
+	    </para>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term> <filename>resources/import.sql</filename> </term>
+	  <listitem>
+	    <para>
+	      Copy this file from the JPA example so that changes to the <literal>ID</literal> column are supported. (Column support is the only difference between the files.) Use the following command:
+	    </para>
+	    <programlisting><![CDATA[ cp ../../jpa/resources-websphere7/import.sql ./resources]]>
+	    </programlisting>
+	  </listitem>
+	</varlistentry>
+      </variablelist>
+    </section>
+    
+    <section>
+      <title>Building the <literal>jee5/booking</literal> example</title>
+      <para>
+	To apply these changes to the application, we must edit the <filename>build.xml</filename> file, and add several <filename>JAR</filename>s to make the application compatible with WebSphere AS.
+      </para>
+      <section>
+	<title>Library dependency changes</title>
+	<para>
+	  Remove the <filename>log4j.jar</filename> so that all application log output will be added to the WebSphere AS log. Additional steps are required to fully configure <filename>log4j.jar</filename> —these steps are outside the scope of this document.
 	</para>
-	 <para>
-		This chapter contains basic information about using the WebSphere AS to deploy both the JEE5 Booking example, and the JPA example application.
+      </section>
+      
+      <section>
+	<title>Updating the <literal>build.xml</literal> file</title>
+	<para>
+	  Append the following to <filename>build.xml</filename> to override the default fileset that populates <filename>jboss-seam-jee5.jar</filename>:
 	</para>
-	 <section>
-		<title>WebSphere AS environment and deployment information</title>
-		 <para>
-			Since WebSphere AS is a commercial product, we recommend following the directions provided by IBM for your particular installation and license type. This section details several versions of the server, installation tips, and some property configurations required to deploy all example applications.
-		</para>
-		 <section>
-			<title>Installation versions</title>
-			 <para>
-				All examples and information in this chapter are based on WebSphere AS V7. Follow the WebSphere AS installation instructions to install the WebSphere AS. 
-				<itemizedlist>
-					<listitem>
-						<para>
-							<ulink url="http://www.ibm.com/developerworks/downloads/ws/was">WebSphere Application Server V7</ulink>
-						</para>
-					</listitem>
-				</itemizedlist>
-			</para>
-			 <para>
-				Create a server profile with the Profile Management Tool if you did not create a profile during installation.
-			</para>
-		</section>
-		
-	</section>
 	
-	 <section id="jee5-websphere-section">
-		<title> The <literal>jee5/booking</literal> example </title>
-		 <para>
-			The Hotel Booking example, which runs on JBoss AS, is designed to run on GlassFish out of the box. Follow the steps below to deploy it to the WebSphere AS. You can find this example in the <literal>$SEAM_DIST/examples/jee5/booking</literal> directory.
-		</para>
-		 <section>
-			<title>Configuration file changes</title>
-			 <para>
-				You will need to configure the following files as described to run the booking example correctly on WebSphere AS:
-			</para>
-			 <variablelist>
-				<varlistentry>
-					<term> <filename>resources/WEB-INF/components.xml</filename> </term>
-					 <listitem>
-						<para>
-							Remove the <literal>/local</literal> string from the <literal>jndi-pattern</literal>, like so:
-						</para>
-						 
-<programlisting role="XML"><![CDATA[ 
-<core:init jndi-pattern="java:comp/env/jboss-seam-jee5/#{ejbName}" 
-           debug="true"/> ]]>
-</programlisting>
-					</listitem>
-				</varlistentry>
-				 <varlistentry>
-					<term> <filename>resources/META-INF/ejb-jar.xml</filename> </term>
-					 <listitem>
-						<para>
-							Remove the <literal>/local</literal> string from <literal>ejb-ref-name</literal>, as follows:
-						</para>
-						 
-<programlisting role="XML"><![CDATA[ 
-<enterprise-beans> 
-  <!-- EJB reference required when one Seam EJB component references 
-       another Seam EJB component using @In --> 
-  <!-- Not required if you inject using @EJB, but then you lose state 
-       management and client-side interceptors (e.g., security) -->
-        
-  <session> 
-    <ejb-name>RegisterAction</ejb-name> 
-    <ejb-local-ref> 
-      <ejb-ref-name>jboss-seam-jee5/AuthenticatorAction</ejb-ref-name> 
-      <ejb-ref-type>Session</ejb-ref-type> 
-      <local>org.jboss.seam.example.booking.Authenticator</local> 
-    </ejb-local-ref> 
-  </session>
-   
-</enterprise-beans>]]>
-</programlisting>
-					</listitem>
-				</varlistentry>
-				 <varlistentry>
-					<term> <filename>resources/WEB-INF/web.xml</filename> </term>
-					 <listitem>
-						<para>
-							You will also need to alter the EJB reference in <filename>web.xml</filename> so that WebSphere AS can automatically bind EJB3 references in the web module to EJB3 beans in the EAR module. Replace all <literal>/local</literal> strings in <literal>ejb-local-refs</literal> with the values shown here: <!-- #modify: can we get a before/after shot of the code, here? I thought we were removing an appended "/local", but from this programlisting has <local> tags, which could be confusing. -->
-						</para>
-						 
-<programlisting role="XML"><![CDATA[
-<!-- JEE5 EJB3 names --> 
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/AuthenticatorAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.example.booking.Authenticator</local> 
-</ejb-local-ref>	
-  
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/BookingListAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.example.booking.BookingList</local> 
-</ejb-local-ref> 
-  
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/RegisterAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.example.booking.Register</local> 
-</ejb-local-ref> 
+	<programlisting role="XML"><![CDATA[ 
+	<fileset id="jar.resources" dir="${resources.dir}"> 
+	<include name="import.sql" /> 
+	<include name="seam.properties" /> 
+	<include name="META-INF/persistence.xml" /> 
+	<include name="META-INF/ejb-jar.xml" /> 
+	</fileset>]]>
+	</programlisting>
+	<para>
+	  Now execute the <command>ant archive</command> task to add the built application to the <literal>jee5/booking/dist</literal> directory.
+	</para>
+      </section>
+      
+    </section>
+    
+    <section id="jee5-websphere-deploy">
+      <title>Deploying the application to Websphere</title>
+      <para>
+	We will use WebSphere AS&#39;s administration console to deploy the application. The steps outlined here are for WebSphere AS V7. The ports are default values —if your ports have changed, substitute your own correct values.
+      </para>
+      <orderedlist>
+	<listitem>
+	  <para>
+	    Log in to the administration console through
+	  </para>
+	  <programlisting><![CDATA[https://localhost:9043/admin]]>
+	  </programlisting>
+	  <para>	 or </para>
+	  <programlisting><![CDATA[http://localhost:9060/admin]]>
+	  </programlisting>
 
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/ChangePasswordAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.example.booking.ChangePassword</local> 
-</ejb-local-ref> 
-
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/HotelBookingAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.example.booking.HotelBooking</local> 
-</ejb-local-ref> 
+	</listitem>
+	<listitem>
+	  <para>
+	    Access <guimenu>Websphere enterprise applications</guimenu> under the left hand side menu: <guimenu>Applications</guimenu>→<guimenu>Application Type</guimenu>→<guimenu>Websphere enterprise applications</guimenu>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Click <guilabel>Install</guilabel> at the top of the <literal>Enterprise Applications</literal> table. Perform the following steps on the listed pages of the installation wizard:
+	  </para>
+	  <itemizedlist>
+	    <listitem>
+	      <para>
+		<literal>Preparing for the application installation</literal> <itemizedlist>
+		<listitem>
+		  <para>
+		    Use the file upload widget to browse to the <filename>examples/jee5/booking/dist/jboss-seam-jee5.ear</filename> file.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    Click the <guibutton>Next</guibutton> button.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    Click the <guibutton>Fast Path</guibutton> button.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    Click the <guibutton>Next</guibutton> button.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		<literal>Select installation options</literal> <itemizedlist>
+		<listitem>
+		  <para>
+		    Check the <guilabel>Deploy enterprise beans</guilabel> and <guilabel>Allow EJB reference targets to resolve automatically</guilabel> checkboxes. (Required, unless you use a WebSphere AS tool to package the application.)
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    Click the <guibutton>Next</guibutton> button.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		<literal>Map modules to servers</literal> <itemizedlist>
+		<listitem>
+		  <para>
+		    Because we are only using one server, no changes are required. Click the <guibutton>Next</guibutton>.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		<literal>Summary</literal> <itemizedlist>
+		<listitem>
+		  <para>
+		    No changes are required. Click the <guibutton>Finish</guibutton> button.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		<literal>Installation</literal> <itemizedlist>
+		<listitem>
+		  <para>
+		    The wizard installs and deploy your application.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    When the wizard finishes, click <guilabel>Save</guilabel> to return to the <literal>Enterprise Applications</literal> table.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	      </para>
+	    </listitem>
+	  </itemizedlist>
+	</listitem>
+	<listitem id="websphere-app-adj-after-install">
+	  <para>
+	    Once the application is installed, make the following adjustments so that it can be run:
+	  </para>
+	  <itemizedlist>
+	    <listitem>
+	      <para>
+		Click <guilabel>Seam Booking</guilabel> from the <literal>Enterprise Applications</literal> table.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Click the <guilabel>Manage Modules</guilabel>.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Click the <guilabel>jboss-seam-jee5-booking.war</guilabel> link.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Change the <literal>Class loader order</literal> combo box to <literal>Classes loaded with application class loader first (parent last)</literal>.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Click <guilabel>Apply</guilabel>, and then <guilabel>Save</guilabel>.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Return to the <literal>Seam Booking</literal> page.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Click on the <guilabel>Class loading and update detection</guilabel> link.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Select the radio button for <guilabel>Classes loaded with application class loader first</guilabel>.
+	      </para>
+	    </listitem>
+	    <listitem>
+	      <para>
+		Click <guilabel>Apply</guilabel> and then <guilabel>Save</guilabel>.
+	      </para>
+	    </listitem>
+	  </itemizedlist>
+	</listitem>
+	<listitem>
+	  <para>
+	    Start the application by returning to the <literal>Enterprise Applications</literal> table and selecting your application from the list. Then click the <guibutton>Start</guibutton> at the top of the table.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    You can now access the application at <literal>http://localhost:9080/seam-jee5-booking/index.html</literal>.
+	  </para>
+	</listitem>
+      </orderedlist>
+      <!--  <note> <title>A note about Websphere Stateful bean timeouts</title> <para>The default timeout period for a Websphere 6.1 Stateful EJB is 10 minutes.  This means that you may see some EJB timeout exceptions after some idle time.  It is possible to adjust the timeout of the Stateful EJBs on an individual basis, but that is beyond the scope of this document.  See the Websphere documentation for details. </para> </note>  -->
+    </section>
+    
+  </section>
   
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/HotelSearchingAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.example.booking.HotelSearching</local> 
-</ejb-local-ref> 
-
-<ejb-local-ref> 
-  <ejb-ref-name>jboss-seam-jee5/EjbSynchronizations</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local> 
-</ejb-local-ref>]]>
-</programlisting>
-						 <note>
-							<para>
-								<literal>EjbSynchronizations</literal> is a built-in Seam EJB, not part of the Hotel Booking example. If your application specifies <literal>transaction:ejb-transaction</literal> in <filename>components.xml</filename>, you must also include the following in your <filename>web.xml</filename>:
-							</para>
-							 
-<programlisting role="XML"><![CDATA[
-<ejb-local-ref> 
-  <ejb-ref-name>myapp/EjbSynchronizations</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local-home></local-home> 
-  <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local> 
-</ejb-local-ref>]]>
-</programlisting>
-							 <para>
-								If you do not include this, you will encounter the following error:
-							</para>
-							 
-<programlisting>Name comp/env/myapp/EjbSynchronizations not found in context java:
-</programlisting>
-						</note>
-					</listitem>
-				</varlistentry>
-				 <varlistentry>
-					<term> <filename>resources/META-INF/persistence.xml</filename> </term>
-					 <listitem>
-						<para>
-							This example requires the WebSphere AS&#39;s default data source. To use it, change the <literal>jta-data-source</literal> element like so:
-						</para>
-						 
-<programlisting role="XML"><![CDATA[<jta-data-source>DefaultDatasource</jta-data-source> ]]>
-</programlisting>
-						 <para>
-							We must also adjust some Hibernate properties. First, use comment tags to omit the GlassFish properties and include the following changes:
-						</para>
-						 
-<programlisting role="XML"><![CDATA[
-<!--<property name="hibernate.transaction.flush_before_completion" 
-              value="true"/>--> 
-<property name="hibernate.cache.provider_class" 
-          value="org.hibernate.cache.HashtableCacheProvider"/> 
-<property name="hibernate.dialect" value="GlassfishDerbyDialect"/> 
-<property name="hibernate.transaction.manager_lookup_class" 
-          value="org.hibernate.transaction
-                 .WebSphereExtendedJTATransactionLookup"/>]]>
-</programlisting>
-						 <para>
-							<itemizedlist>
-								<listitem>
-									<para>
-										<literal>hibernate.transaction.manager_lookup_class</literal> —A standard Hibernate transaction manager property for WebSphere AS V6.x and V7.
-									</para>
-								</listitem>
-								 <listitem>
-									<para>
-										<literal>hibernate.transaction.flush_before_completion</literal> —This has been commented out so that transactions are managed by the container. If this is set to <parameter>true</parameter>, an exception will occur when the WebSphere AS looks up the EJBContext.
-									</para>
-									 
-<programlisting><![CDATA[
-com.ibm.wsspi.injectionengine.InjectionException: EJBContext may only be looked up by or injected into an EJB]]>
-</programlisting>
-								</listitem>
-								 <listitem>
-									<para>
-										<literal>hibernate.dialect</literal> —the GlassFish V2 Derby database has replaced the embedded database from WebSphere AS 6.1.0.9 onward.
-									</para>
-								</listitem>
-							</itemizedlist>
-						</para>
-					</listitem>
-				</varlistentry>
-				 <varlistentry>
-					<term> <filename>src/GlassfishDerbyDialect.java</filename> </term>
-					 <listitem>
-						<para>
-							Copy <filename>GlassfishDerbyDialect.java</filename> from the JPA example source directory into the <literal>/src</literal> directory with the following command (executed from within the <literal>jee5/booking</literal> directory):
-						</para>
-						 
-<programlisting><![CDATA[ cp ../../jpa/src/GlassfishDerbyDialect.java ./src]]>
-</programlisting>
-						 <para>
-							This class will be added to the <filename>jboss-seam-jee5.jar</filename> file.
-						</para>
-					</listitem>
-				</varlistentry>
-				 <varlistentry>
-					<term> <filename>resources/import.sql</filename> </term>
-					 <listitem>
-						<para>
-							Copy this file from the JPA example so that changes to the <literal>ID</literal> column are supported. (Column support is the only difference between the files.) Use the following command: 
-<programlisting><![CDATA[ cp ../../jpa/resources-websphere7/import.sql ./resources]]>
-</programlisting>
-						</para>
-					</listitem>
-				</varlistentry>
-			</variablelist>
-		</section>
-		
-		 <section>
-			<title>Building the <literal>jee5/booking</literal> example</title>
-			 <para>
-				To apply these changes to the application, we must edit the <filename>build.xml</filename> file, and add several <filename>JAR</filename>s to make the application compatible with WebSphere AS.
-			</para>
-			 <section>
-				<title>Library dependency changes</title>
-				 <para>
-					Remove the <filename>log4j.jar</filename> so that all application log output will be added to the WebSphere AS log. Additional steps are required to fully configure <filename>log4j.jar</filename> —these steps are outside the scope of this document.
-				</para>
-			</section>
-			
-			 <section>
-				<title>Updating the <literal>build.xml</literal> file</title>
-				 <para>
-					Append the following to <filename>build.xml</filename> to override the default fileset that populates <filename>jboss-seam-jee5.jar</filename>:
-				</para>
-				 
-<programlisting role="XML"><![CDATA[ 
-<fileset id="jar.resources" dir="${resources.dir}"> 
-  <include name="import.sql" /> 
-  <include name="seam.properties" /> 
-  <include name="META-INF/persistence.xml" /> 
-  <include name="META-INF/ejb-jar.xml" /> 
-</fileset>]]>
-</programlisting>
-				 <para>
-					Now execute the <command>ant archive</command> task to add the built application to the <literal>jee5/booking/dist</literal> directory.
-				</para>
-			</section>
-			
-		</section>
-		
-		 <section id="jee5-websphere-deploy">
-			<title>Deploying the application to Websphere</title>
-			 <para>
-				We will use WebSphere AS&#39;s administration console to deploy the application. The steps outlined here are for WebSphere AS V7. The ports are default values —if your ports have changed, substitute your own correct values.
-			</para>
-			 <orderedlist>
-				<listitem>
-					<para>
-						Log in to the administration console through 
-<programlisting><![CDATA[https://localhost:9043/admin]]>
-</programlisting>
-						 or 
-<programlisting><![CDATA[http://localhost:9060/admin]]>
-</programlisting>
-						.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						Access <guimenu>Websphere enterprise applications</guimenu> under the left hand side menu: <guimenu>Applications</guimenu>→<guimenu>Application Type</guimenu>→<guimenu>Websphere enterprise applications</guimenu>.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						Click <guilabel>Install</guilabel> at the top of the <literal>Enterprise Applications</literal> table. Perform the following steps on the listed pages of the installation wizard:
-					</para>
-					 <itemizedlist>
-						<listitem>
-							<para>
-								<literal>Preparing for the application installation</literal> <itemizedlist>
-									<listitem>
-										<para>
-											Use the file upload widget to browse to the <filename>examples/jee5/booking/dist/jboss-seam-jee5.ear</filename> file.
-										</para>
-									</listitem>
-									 <listitem>
-										<para>
-											Click the <guibutton>Next</guibutton> button.
-										</para>
-									</listitem>
-									 <listitem>
-										<para>
-											Click the <guibutton>Fast Path</guibutton> button.
-										</para>
-									</listitem>
-									 <listitem>
-										<para>
-											Click the <guibutton>Next</guibutton> button.
-										</para>
-									</listitem>
-								</itemizedlist>
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								<literal>Select installation options</literal> <itemizedlist>
-									<listitem>
-										<para>
-											Check the <guilabel>Deploy enterprise beans</guilabel> and <guilabel>Allow EJB reference targets to resolve automatically</guilabel> checkboxes. (Required, unless you use a WebSphere AS tool to package the application.)
-										</para>
-									</listitem>
-									 <listitem>
-										<para>
-											Click the <guibutton>Next</guibutton> button.
-										</para>
-									</listitem>
-								</itemizedlist>
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								<literal>Map modules to servers</literal> <itemizedlist>
-									<listitem>
-										<para>
-											Because we are only using one server, no changes are required. Click the <guibutton>Next</guibutton>.
-										</para>
-									</listitem>
-								</itemizedlist>
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								<literal>Summary</literal> <itemizedlist>
-									<listitem>
-										<para>
-											No changes are required. Click the <guibutton>Finish</guibutton> button.
-										</para>
-									</listitem>
-								</itemizedlist>
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								<literal>Installation</literal> <itemizedlist>
-									<listitem>
-										<para>
-											The wizard installs and deploy your application.
-										</para>
-									</listitem>
-									 <listitem>
-										<para>
-											When the wizard finishes, click <guilabel>Save</guilabel> to return to the <literal>Enterprise Applications</literal> table.
-										</para>
-									</listitem>
-								</itemizedlist>
-							</para>
-						</listitem>
-					</itemizedlist>
-				</listitem>
-				 <listitem id="websphere-app-adj-after-install">
-					<para>
-						Once the application is installed, make the following adjustments so that it can be run:
-					</para>
-					 <itemizedlist>
-						<listitem>
-							<para>
-								Click <guilabel>Seam Booking</guilabel> from the <literal>Enterprise Applications</literal> table.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Click the <guilabel>Manage Modules</guilabel>.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Click the <guilabel>jboss-seam-jee5-booking.war</guilabel> link.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Change the <literal>Class loader order</literal> combo box to <literal>Classes loaded with application class loader first (parent last)</literal>.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Click <guilabel>Apply</guilabel>, and then <guilabel>Save</guilabel>.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Return to the <literal>Seam Booking</literal> page.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Click on the <guilabel>Class loading and update detection</guilabel> link.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Select the radio button for <guilabel>Classes loaded with application class loader first</guilabel>.
-							</para>
-						</listitem>
-						 <listitem>
-							<para>
-								Click <guilabel>Apply</guilabel> and then <guilabel>Save</guilabel>.
-							</para>
-						</listitem>
-					</itemizedlist>
-				</listitem>
-				 <listitem>
-					<para>
-						Start the application by returning to the <literal>Enterprise Applications</literal> table and selecting your application from the list. Then click the <guibutton>Start</guibutton> at the top of the table.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						You can now access the application at <literal>http://localhost:9080/seam-jee5-booking/index.html</literal>.
-					</para>
-				</listitem>
-			</orderedlist>
-			 <!--  <note> <title>A note about Websphere Stateful bean timeouts</title> <para>The default timeout period for a Websphere 6.1 Stateful EJB is 10 minutes.  This means that you may see some EJB timeout exceptions after some idle time.  It is possible to adjust the timeout of the Stateful EJBs on an individual basis, but that is beyond the scope of this document.  See the Websphere documentation for details. </para> </note>  -->
-		</section>
-		
-	</section>
-	
-	 <section>
-		<title>The <literal>jpa</literal> booking example</title>
-		 <para>
-			This version of the Hotel Booking example is implemented in Seam POJOs rather than EJB3 beans, and uses Hibernate JPA for JPA transactions. The application already contains configuration and build script options for WebSphere AS. This section shows you how to build and deploy the example, and the changes required to run it.
+  <section>
+    <title>The <literal>jpa</literal> booking example</title>
+    <para>
+      This version of the Hotel Booking example is implemented in Seam POJOs rather than EJB3 beans, and uses Hibernate JPA for JPA transactions. The application already contains configuration and build script options for WebSphere AS. This section shows you how to build and deploy the example, and the changes required to run it.
+    </para>
+    <section>
+      <title>Building the <literal>jpa</literal> example</title>
+      <para>
+	Build the example by running <command>ant websphere7</command>. This creates a container-specific distribution, and exploded archive directories with the <literal>websphere7</literal> label.
+      </para>
+    </section>
+    
+    <section>
+      <title>Deploying the <literal>jpa</literal> example</title>
+      <para>
+	Deploying this example is very similar to deploying the <literal>jee5</literal> example at <xref linkend="jee5-websphere-deploy" />:
+      </para>
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    Click on <guibutton>Install</guibutton> in the <literal>Enterprise Applications</literal> table. 
+	    <itemizedlist>
+	      <listitem>
+		<para>
+		  <literal>Preparing to install the application</literal> <itemizedlist>
+		  <listitem>
+		    <para>
+		      Use the file upload widget to browse to <filename>examples/jpa/dist-websphere7/jboss-seam-jpa.war</filename>.
+		    </para>
+		  </listitem>
+		  <listitem>
+		    <para>
+		      Click the <guibutton>Fast Path</guibutton> button.
+		    </para>
+		  </listitem>
+		  <listitem>
+		    <para>
+		      Click the <guibutton>Next</guibutton> button.
+		    </para>
+		  </listitem>
+		</itemizedlist>
 		</para>
-		 <section>
-			<title>Building the <literal>jpa</literal> example</title>
-			 <para>
-				Build the example by running <command>ant websphere7</command>. This creates a container-specific distribution, and exploded archive directories with the <literal>websphere7</literal> label.
-			</para>
-		</section>
-		
-		 <section>
-			<title>Deploying the <literal>jpa</literal> example</title>
-			 <para>
-				Deploying this example is very similar to deploying the <literal>jee5</literal> example at <xref linkend="jee5-websphere-deploy" />:
-			</para>
-			 <itemizedlist>
-				<listitem>
-					<para>
-						Click on <guibutton>Install</guibutton> in the <literal>Enterprise Applications</literal> table. 
-						<itemizedlist>
-							<listitem>
-								<para>
-									<literal>Preparing to install the application</literal> <itemizedlist>
-										<listitem>
-											<para>
-												Use the file upload widget to browse to <filename>examples/jpa/dist-websphere7/jboss-seam-jpa.war</filename>.
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												Click the <guibutton>Fast Path</guibutton> button.
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												Click the <guibutton>Next</guibutton> button.
-											</para>
-										</listitem>
-									</itemizedlist>
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									The next three screens do not require any changes —click <guibutton>Next</guibutton> to pass them.
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									<literal>Map context roots for Web modules</literal> <itemizedlist>
-										<listitem>
-											<para>
-												Enter <literal>jboss-seam-jpa</literal> in the <guilabel>Context root</guilabel> text box.
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												Click the <guibutton>Next</guibutton> button.
-											</para>
-										</listitem>
-									</itemizedlist>
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									<literal>Summary</literal> page 
-									<itemizedlist>
-										<listitem>
-											<para>
-												Review your settings and click the <guibutton>Finish</guibutton> button to install the application. When installation completes, click <guilabel>Save</guilabel> to return to the <literal>Enterprise Applications</literal> table.
-											</para>
-										</listitem>
-									</itemizedlist>
-								</para>
-							</listitem>
-						</itemizedlist>
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						You will need to make some changes to the class loader before you start the application. Follow the instructions at <xref linkend="websphere-app-adj-after-install" /> for <filename>jboss-seam-jpa.war</filename> instead of <literal>Seam Booking</literal>.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						To start the application, select it in the <literal>Enterprise Applications</literal> table and click the <guibutton>Start</guibutton> button.
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						You can now access the application at <literal>http://localhost:9080/jboss-seam-jpa/index.html</literal>.
-					</para>
-				</listitem>
-			</itemizedlist>
-		</section>
-		
-		 <section>
-			<title>Changes in Websphere AS V7</title>
-			 <para>
-				JBoss AS 4.2 deployments and WebSphere AS V7 deployments differ in therms of their library and configuration files.
-			</para>
-			 <itemizedlist>
-				<listitem>
-					<para>
-						Configuration file changes 
-						<itemizedlist>
-							<listitem>
-								<para>
-									<literal>META-INF/persistence.xml</literal> —the data source JNDI path changes to the WebSphere transaction manager lookup class, and the Hibernate dialect is changed to <literal>GlassfishDerbyDialect</literal>.
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									<literal>WEB-INF/components.xml</literal> —the <literal>/local</literal> string is removed from <literal>jndi-pattern</literal>.
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									<literal>META-INF/ejb-jar.xml</literal> —in <literal>ejb-ref-name</literal>, the <literal>/local</literal> string has been removed from <literal>jboss-seam-jee5/AuthenticatorAction</literal>.<!-- #modify: Check this, please; the original was incoherent. -->
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									<literal>src/GlassfishDerbyDialect.java</literal> —this class has been added to change the Hibernate dialect to <literal>GlassfishDerbyDialect</literal>.
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									<literal>import.sql</literal> —this file cannot populate the <literal>ID</literal> column when the correct dialect and Derby database are used for this application. This file has been removed. <!-- #modify: Again, please check. -->
-								</para>
-							</listitem>
-						</itemizedlist>
-					</para>
-				</listitem>
-				 <listitem>
-					<para>
-						Changes for dependent libraries
-					</para>
-					 <para>
-						The WebSphere version of this application requires several library packages that are not included in the standard distribution, to fulfil Hibernate dependencies. The <filename>JAR</filename>s listed below are required for examples other than the JBoss <literal>JPA</literal> example. 
-						<itemizedlist>
-							<listitem>
-								<para>
-									You require the following <filename>JAR</filename>s to use Hibernate as your JPA provider: 
-									<itemizedlist>
-										<listitem>
-											<para>
-												<filename>hibernate.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>hibernate-annotations.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>hibernate-commons-annotations.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>hibernate-entitymanager.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>hibernate-validator.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>commons-collections.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>jboss-common-core.jar</filename>
-											</para>
-										</listitem>
-									</itemizedlist>
-								</para>
-							</listitem>
-							 <listitem>
-								<para>
-									WebSphere requires the following third-party <filename>JAR</filename>s: 
-									<itemizedlist>
-										<listitem>
-											<para>
-												<filename>antlr.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>cglib.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>asm.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>dom4j.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>javassist.jar</filename>
-											</para>
-										</listitem>
-										 <listitem>
-											<para>
-												<filename>concurrent.jar</filename>
-											</para>
-										</listitem>
-									</itemizedlist>
-								</para>
-							</listitem>
-						</itemizedlist>
-					</para>
-				</listitem>
-			</itemizedlist>
-		</section>
-		
-	</section>
-	
-	 <section>
-		<title>Deploying a <literal>seam-gen</literal>-created application on Websphere V7</title>
-		 <para>
-			<application>seam-gen</application> is useful for swift application development. Out of the box, it produces applications configured to run on JBoss AS. This section shows you how to configure <application>seam-gen</application> so that your applications will run on WebSphere AS. This involves updating or removing configuration files, and adding <filename>JAR</filename>s that are not shipped as part of WebSphere AS.
+	      </listitem>
+	      <listitem>
+		<para>
+		  The next three screens do not require any changes —click <guibutton>Next</guibutton> to pass them.
 		</para>
-		 <section>
-			<title>Running <literal>seam-gen</literal> Setup</title>
-			 <para>
-				First, run <literal>./seam setup</literal> in the base directory of your Seam distribution to tell <application>seam-gen</application> about your project. The paths in the following example can be altered to fit your own environment:
-			</para>
-			 
-<programlisting><![CDATA[
- /seam setup
-Buildfile: build.xml
-init:
-setup:
-   [echo] Welcome to seam-gen :-)
-   [input] Enter your Java project workspace (the directory that contains your
-Seam projects) [C:/Projects] [C:/Projects]
-/home/jbalunas/workspace
-   [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.3.GA]
-[C:/Program Files/jboss-4.2.3.GA]
-/home/jbalunas/jboss/jboss-4.2.3.GA
-   [input] Enter the project name [myproject] [myproject]
-websphere_example
-    [echo] Accepted project name as: websphere_example
-   [input] Do you want to use ICEFaces instead of RichFaces [n] (y, [n], )
-   [input] skipping input as property icefaces.home.new has already been set.
-   [input] Select a RichFaces skin [blueSky] ([blueSky], classic, ruby, 
-           wine, deepMarine, emeraldTown, sakura, DEFAULT)
-   [input] Is this project deployed as an EAR (with EJB components) or a WAR
-           (with no EJB support) [ear] ([ear], war, )
-   [input] Enter the Java package name for your session beans [org.jboss.seam.
-           tutorial.websphere.action] [org.jboss.seam.tutorial.websphere.action]
-           org.jboss.seam.tutorial.websphere.action
-   [input] Enter the Java package name for your entity beans [org.jboss.seam.
-           tutorial.websphere.model] [org.jboss.seam.tutorial.websphere.model]
-           org.jboss.seam.tutorial.websphere.model
-   [input] Enter the Java package name for your test cases [org.jboss.seam.
-           tutorial.websphere.action.test] [org.jboss.seam.tutorial.websphere.action.test]
-           org.jboss.seam.tutorial.websphere.test
-   [input] What kind of database are you using? [hsql] ([hsql], mysql, oracle,
-           postgres, mssql, db2, sybase, enterprisedb, h2)
-   [input] Enter the Hibernate dialect for your database 
-           [org.hibernate.dialect.HSQLDialect] 
-           [org.hibernate.dialect.HSQLDialect]
-   [input] Enter the filesystem path to the JDBC driver jar 
-           [/tmp/seam/lib/hsqldb.jar] [/tmp/seam/lib/hsqldb.jar]
-   [input] Enter JDBC driver class for your database 
-           [org.hsqldb.jdbcDriver] [org.hsqldb.jdbcDriver]
-   [input] Enter the JDBC URL for your database 
-           [jdbc:hsqldb:.] [jdbc:hsqldb:.]
-   [input] Enter database username [sa] [sa]
-   [input] Enter database password [] []
-   [input] Enter the database schema name (it is OK to leave this blank) 
-           [] []
-   [input] Enter the database catalog name (it is OK to leave this blank) 
-           [] []
-   [input] Are you working with tables that already exist in the database? [n]
-           (y, [n], )
-   [input] Do you want to drop and recreate the database tables and data in
-           import.sql each time you deploy? [n] (y, [n], )
-[propertyfile] Creating new property file:
-/rhdev/projects/jboss-seam/svn-seam_2_2/jboss-seam-2_2/seam-gen/build.properties
-   [echo] Installing JDBC driver jar to JBoss server
-   [copy] Copying 1 file to /home/jbalunas/jboss/jboss-4.2.3.GA/server/default/lib
-   [echo] Type 'seam create-project' to create the new project
-BUILD SUCCESSFUL
-Total time: 3 minutes 5 seconds]]>
-</programlisting>
-			 <para>
-				Type <command>./seam new-project</command> to create your project. In the above environment, you would type <literal>cd /home/jbalunas/workspace/websphere_example</literal> to view the newly created structure.
-			</para>
-		</section>
-		
-		 <section>
-			<title>Changes required for WebSphere AS deployment</title>
-			 <para>
-				Before deployment, we must update and remove some configuration files, and update the libraries deployed with the application.
-			</para>
-			 <section>
-				<title>Configuration file changes</title>
-				 <variablelist>
-					<varlistentry>
-						<term> <filename>resources/META-INF/persistence-dev.xml</filename> </term>
-						 <listitem>
-							<itemizedlist>
-								<listitem>
-									<para>
-										Change the <literal>jta-data-source</literal> to <literal>DefaultDatasource</literal>. We will use the integrated WebSphere database.
-									</para>
-								</listitem>
-								 <listitem>
-									<para>
-										Add the following properties, or edit existing properties to resemble the following: (Detailed descriptions are available at <xref linkend="jee5-websphere-section" />.)
-									</para>
-									 
-<programlisting role="XML"><![CDATA[ 
-<property name="hibernate.dialect" value="GlassfishDerbyDialect"/> 
-<property name="hibernate.hbm2ddl.auto" value="update"/> 
-<property name="hibernate.show_sql" value="true"/> 
-<property name="hibernate.format_sql" value="true"/> 
-<property name="hibernate.cache.provider_class" 
-value="org.hibernate.cache.HashtableCacheProvider"/> 
-<property name="hibernate.transaction.manager_lookup_class" 
-          value="org.hibernate.transaction
-                 .WebSphereExtendedJTATransactionLookup"/>]]>
-</programlisting>
-								</listitem>
-								 <listitem>
-									<para>
-										Remove the JBoss AS-specific method of exposing the <literal>EntityManagerFactory</literal>:
-									</para>
-									 
-<programlisting role="XML"><![CDATA[
-<property name="jboss.entity.manager.factory.jndi.name" 
-          value="java:/websphere_exampleEntityManagerFactory">]]>
-</programlisting>
-								</listitem>
-								 <listitem>
-									<para>
-										To deploy your application to WebSphere AS using the prod profile, you will also need to alter this setting in <filename>persistence-prod.xml</filename>.
-									</para>
-								</listitem>
-							</itemizedlist>
-						</listitem>
-					</varlistentry>
-					 <varlistentry>
-						<term> <filename>src/GlassfishDerbyDialect.java</filename> </term>
-						 <listitem>
-							<para>
-								Required for database support. This file can be copied from the <literal>JPA</literal> example into the <literal>websphere_example/src</literal> directory. 
-<programlisting><![CDATA[cp $SEAM/examples/jpa/src/GlassfishDerbyDialect.java ./src]]>
-</programlisting>
-							</para>
-						</listitem>
-					</varlistentry>
-					 <varlistentry>
-						<term> <filename>resources/META-INF/jboss-app.xml</filename> </term>
-						 <listitem>
-							<para>
-								Used to enable class loading isolation in JBoss AS deployments —you can delete this file.
-							</para>
-						</listitem>
-					</varlistentry>
-					 <varlistentry>
-						<term> <literal>resources/*-ds.xml</literal> </term>
-						 <listitem>
-							<para>
-								Used to define datasources in JBoss AS deployments —you can delete these files.
-							</para>
-						</listitem>
-					</varlistentry>
-					 <varlistentry>
-						<term> <filename>resources/WEB-INF/components.xml</filename> </term>
-						 <listitem>
-							<itemizedlist>
-								<listitem>
-									<para>
-										Enable container-managed transaction integration by adding the <literal><transaction:ejb-transaction /> </literal> component and its namespace declaration <literal>xmlns:transaction="http://jboss.com/products/seam/transaction"</literal>.
-									</para>
-								</listitem>
-								 <listitem>
-									<para>
-										Change the <literal>jndi-pattern</literal> to <literal>java:comp/env/websphere_example/#{ejbName}</literal>.
-									</para>
-								</listitem>
-								 <listitem>
-									<para>
-										This example does not require <literal>managed-persistence-context</literal>, so you can delete its entry.
-									</para>
-									 
-<programlisting role="XML"><![CDATA[
-<persistence:managed-persistence-context name="entityManager" auto-create="true" 
-             persistence-unit-jndi-name=
-               "java:/websphere_exampleEntityManagerFactory"/>]]>
-</programlisting>
-								</listitem>
-							</itemizedlist>
-						</listitem>
-					</varlistentry>
-					 <varlistentry>
-						<term> <filename>resources/WEB-INF/web.xml</filename> </term>
-						 <listitem>
-							<para>
-								Remove the <literal>/local</literal> string in <literal>ejb-ref-name</literal> to mark your EJBs for binding by WebSphere AS. <!-- #modify: Please check; previous version was incoherent. -->
-							</para>
-							 
-<programlisting role="XML"><![CDATA[
-<ejb-local-ref> 
-  <ejb-ref-name>websphere_example/AuthenticatorAction</ejb-ref-name> 
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.tutorial.websphere.action.Authenticator</local> 
-</ejb-local-ref>	
+	      </listitem>
+	      <listitem>
+		<para>
+		  <literal>Map context roots for Web modules</literal> <itemizedlist>
+		  <listitem>
+		    <para>
+		      Enter <literal>jboss-seam-jpa</literal> in the <guilabel>Context root</guilabel> text box.
+		    </para>
+		  </listitem>
+		  <listitem>
+		    <para>
+		      Click the <guibutton>Next</guibutton> button.
+		    </para>
+		  </listitem>
+		</itemizedlist>
+		</para>
+	      </listitem>
+	      <listitem>
+		<para>
+		  <literal>Summary</literal> page 
+		  <itemizedlist>
+		    <listitem>
+		      <para>
+			Review your settings and click the <guibutton>Finish</guibutton> button to install the application. When installation completes, click <guilabel>Save</guilabel> to return to the <literal>Enterprise Applications</literal> table.
+		      </para>
+		    </listitem>
+		  </itemizedlist>
+		</para>
+	      </listitem>
+	    </itemizedlist>
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    You will need to make some changes to the class loader before you start the application. Follow the instructions at <xref linkend="websphere-app-adj-after-install" /> for <filename>jboss-seam-jpa.war</filename> instead of <literal>Seam Booking</literal>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    To start the application, select it in the <literal>Enterprise Applications</literal> table and click the <guibutton>Start</guibutton> button.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    You can now access the application at <literal>http://localhost:9080/jboss-seam-jpa/index.html</literal>.
+	  </para>
+	</listitem>
+      </itemizedlist>
+    </section>
+    
+    <section>
+      <title>Changes in Websphere AS V7</title>
+      <para>
+	JBoss AS 4.2 deployments and WebSphere AS V7 deployments differ in therms of their library and configuration files.
+      </para>
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    Configuration file changes 
+	    <itemizedlist>
+	      <listitem>
+		<para>
+		  <literal>META-INF/persistence.xml</literal> —the data source JNDI path changes to the WebSphere transaction manager lookup class, and the Hibernate dialect is changed to <literal>GlassfishDerbyDialect</literal>.
+		</para>
+	      </listitem>
+	      <listitem>
+		<para>
+		  <literal>WEB-INF/components.xml</literal> —the <literal>/local</literal> string is removed from <literal>jndi-pattern</literal>.
+		</para>
+	      </listitem>
+	      <listitem>
+		<para>
+		  <literal>META-INF/ejb-jar.xml</literal> —in <literal>ejb-ref-name</literal>, the <literal>/local</literal> string has been removed from <literal>jboss-seam-jee5/AuthenticatorAction</literal>.<!-- #modify: Check this, please; the original was incoherent. -->
+		</para>
+	      </listitem>
+	      <listitem>
+		<para>
+		  <literal>src/GlassfishDerbyDialect.java</literal> —this class has been added to change the Hibernate dialect to <literal>GlassfishDerbyDialect</literal>.
+		</para>
+	      </listitem>
+	      <listitem>
+		<para>
+		  <literal>import.sql</literal> —this file cannot populate the <literal>ID</literal> column when the correct dialect and Derby database are used for this application. This file has been removed. <!-- #modify: Again, please check. -->
+		</para>
+	      </listitem>
+	    </itemizedlist>
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Changes for dependent libraries
+	  </para>
+	  <para>
+	    The WebSphere version of this application requires several library packages that are not included in the standard distribution, to fulfil Hibernate dependencies. The <filename>JAR</filename>s listed below are required for examples other than the JBoss <literal>JPA</literal> example. 
+	    <itemizedlist>
+	      <listitem>
+		<para>
+		  You require the following <filename>JAR</filename>s to use Hibernate as your JPA provider: 
+		  <itemizedlist>
+		    <listitem>
+		      <para>
+			<filename>hibernate.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>hibernate-annotations.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>hibernate-commons-annotations.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>hibernate-entitymanager.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>hibernate-validator.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>commons-collections.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>jboss-common-core.jar</filename>
+		      </para>
+		    </listitem>
+		  </itemizedlist>
+		</para>
+	      </listitem>
+	      <listitem>
+		<para>
+		  WebSphere requires the following third-party <filename>JAR</filename>s: 
+		  <itemizedlist>
+		    <listitem>
+		      <para>
+			<filename>antlr.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>cglib.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>asm.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>dom4j.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>javassist.jar</filename>
+		      </para>
+		    </listitem>
+		    <listitem>
+		      <para>
+			<filename>concurrent.jar</filename>
+		      </para>
+		    </listitem>
+		  </itemizedlist>
+		</para>
+	      </listitem>
+	    </itemizedlist>
+	  </para>
+	</listitem>
+      </itemizedlist>
+    </section>
+    
+  </section>
+  
+  <section>
+    <title>Deploying a <literal>seam-gen</literal>-created application on Websphere V7</title>
+    <para>
+      <application>seam-gen</application> is useful for swift application development. Out of the box, it produces applications configured to run on JBoss AS. This section shows you how to configure <application>seam-gen</application> so that your applications will run on WebSphere AS. This involves updating or removing configuration files, and adding <filename>JAR</filename>s that are not shipped as part of WebSphere AS.
+    </para>
+    <section>
+      <title>Running <literal>seam-gen</literal> Setup</title>
+      <para>
+	First, run <literal>./seam setup</literal> in the base directory of your Seam distribution to tell <application>seam-gen</application> about your project. The paths in the following example can be altered to fit your own environment:
+      </para>
+      
+      <programlisting><![CDATA[
+      /seam setup
+      Buildfile: build.xml
+      init:
+      setup:
+      [echo] Welcome to seam-gen :-)
+      [input] Enter your Java project workspace (the directory that contains your
+      Seam projects) [C:/Projects] [C:/Projects]
+      /home/jbalunas/workspace
+      [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.3.GA]
+      [C:/Program Files/jboss-4.2.3.GA]
+      /home/jbalunas/jboss/jboss-4.2.3.GA
+      [input] Enter the project name [myproject] [myproject]
+      websphere_example
+      [echo] Accepted project name as: websphere_example
+      [input] Do you want to use ICEFaces instead of RichFaces [n] (y, [n], )
+      [input] skipping input as property icefaces.home.new has already been set.
+      [input] Select a RichFaces skin [blueSky] ([blueSky], classic, ruby, 
+      wine, deepMarine, emeraldTown, sakura, DEFAULT)
+      [input] Is this project deployed as an EAR (with EJB components) or a WAR
+      (with no EJB support) [ear] ([ear], war, )
+      [input] Enter the Java package name for your session beans [org.jboss.seam.
+      tutorial.websphere.action] [org.jboss.seam.tutorial.websphere.action]
+      org.jboss.seam.tutorial.websphere.action
+      [input] Enter the Java package name for your entity beans [org.jboss.seam.
+      tutorial.websphere.model] [org.jboss.seam.tutorial.websphere.model]
+      org.jboss.seam.tutorial.websphere.model
+      [input] Enter the Java package name for your test cases [org.jboss.seam.
+      tutorial.websphere.action.test] [org.jboss.seam.tutorial.websphere.action.test]
+      org.jboss.seam.tutorial.websphere.test
+      [input] What kind of database are you using? [hsql] ([hsql], mysql, oracle,
+      postgres, mssql, db2, sybase, enterprisedb, h2)
+      [input] Enter the Hibernate dialect for your database 
+      [org.hibernate.dialect.HSQLDialect] 
+      [org.hibernate.dialect.HSQLDialect]
+      [input] Enter the filesystem path to the JDBC driver jar 
+      [/tmp/seam/lib/hsqldb.jar] [/tmp/seam/lib/hsqldb.jar]
+      [input] Enter JDBC driver class for your database 
+      [org.hsqldb.jdbcDriver] [org.hsqldb.jdbcDriver]
+      [input] Enter the JDBC URL for your database 
+      [jdbc:hsqldb:.] [jdbc:hsqldb:.]
+      [input] Enter database username [sa] [sa]
+      [input] Enter database password [] []
+      [input] Enter the database schema name (it is OK to leave this blank) 
+      [] []
+      [input] Enter the database catalog name (it is OK to leave this blank) 
+      [] []
+      [input] Are you working with tables that already exist in the database? [n]
+      (y, [n], )
+      [input] Do you want to drop and recreate the database tables and data in
+      import.sql each time you deploy? [n] (y, [n], )
+      [propertyfile] Creating new property file:
+      /rhdev/projects/jboss-seam/svn-seam_2_2/jboss-seam-2_2/seam-gen/build.properties
+      [echo] Installing JDBC driver jar to JBoss server
+      [copy] Copying 1 file to /home/jbalunas/jboss/jboss-4.2.3.GA/server/default/lib
+      [echo] Type 'seam create-project' to create the new project
+      BUILD SUCCESSFUL
+      Total time: 3 minutes 5 seconds]]>
+      </programlisting>
+      <para>
+	Type <command>./seam new-project</command> to create your project. In the above environment, you would type <literal>cd /home/jbalunas/workspace/websphere_example</literal> to view the newly created structure.
+      </para>
+    </section>
+    
+    <section>
+      <title>Changes required for WebSphere AS deployment</title>
+      <para>
+	Before deployment, we must update and remove some configuration files, and update the libraries deployed with the application.
+      </para>
+      <section>
+	<title>Configuration file changes</title>
+	<variablelist>
+	  <varlistentry>
+	    <term> <filename>resources/META-INF/persistence-dev.xml</filename> </term>
+	    <listitem>
+	      <itemizedlist>
+		<listitem>
+		  <para>
+		    Change the <literal>jta-data-source</literal> to <literal>DefaultDatasource</literal>. We will use the integrated WebSphere database.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    Add the following properties, or edit existing properties to resemble the following: (Detailed descriptions are available at <xref linkend="jee5-websphere-section" />.)
+		  </para>
+		  
+		  <programlisting role="XML"><![CDATA[ 
+		  <property name="hibernate.dialect" value="GlassfishDerbyDialect"/> 
+		  <property name="hibernate.hbm2ddl.auto" value="update"/> 
+		  <property name="hibernate.show_sql" value="true"/> 
+		  <property name="hibernate.format_sql" value="true"/> 
+		  <property name="hibernate.cache.provider_class" 
+		  value="org.hibernate.cache.HashtableCacheProvider"/> 
+		  <property name="hibernate.transaction.manager_lookup_class" 
+		  value="org.hibernate.transaction
+		  .WebSphereExtendedJTATransactionLookup"/>]]>
+		  </programlisting>
+		</listitem>
+		<listitem>
+		  <para>
+		    Remove the JBoss AS-specific method of exposing the <literal>EntityManagerFactory</literal>:
+		  </para>
+		  
+		  <programlisting role="XML"><![CDATA[
+		  <property name="jboss.entity.manager.factory.jndi.name" 
+		  value="java:/websphere_exampleEntityManagerFactory">]]>
+		  </programlisting>
+		</listitem>
+		<listitem>
+		  <para>
+		    To deploy your application to WebSphere AS using the prod profile, you will also need to alter this setting in <filename>persistence-prod.xml</filename>.
+		  </para>
+		</listitem>
+	      </itemizedlist>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <filename>src/GlassfishDerbyDialect.java</filename> </term>
+	    <listitem>
+	      <para>
+		Required for database support. This file can be copied from the <literal>JPA</literal> example into the <literal>websphere_example/src</literal> directory.
+	      </para>
+	      <programlisting><![CDATA[cp $SEAM/examples/jpa/src/GlassfishDerbyDialect.java ./src]]>
+	      </programlisting>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <filename>resources/META-INF/jboss-app.xml</filename> </term>
+	    <listitem>
+	      <para>
+		Used to enable class loading isolation in JBoss AS deployments —you can delete this file.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <literal>resources/*-ds.xml</literal> </term>
+	    <listitem>
+	      <para>
+		Used to define datasources in JBoss AS deployments —you can delete these files.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <filename>resources/WEB-INF/components.xml</filename> </term>
+	    <listitem>
+	      <itemizedlist>
+		<listitem>
+		  <para>
+		    Enable container-managed transaction integration by adding the <literal>&lt;transaction:ejb-transaction /&gt; </literal> component and its namespace declaration <literal>xmlns:transaction="http://jboss.com/products/seam/transaction"</literal>.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    Change the <literal>jndi-pattern</literal> to <literal>java:comp/env/websphere_example/#{ejbName}</literal>.
+		  </para>
+		</listitem>
+		<listitem>
+		  <para>
+		    This example does not require <literal>managed-persistence-context</literal>, so you can delete its entry.
+		  </para>
+		  
+		  <programlisting role="XML"><![CDATA[
+		  <persistence:managed-persistence-context name="entityManager" auto-create="true" 
+		  persistence-unit-jndi-name=
+		  "java:/websphere_exampleEntityManagerFactory"/>]]>
+		  </programlisting>
+		</listitem>
+	      </itemizedlist>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <filename>resources/WEB-INF/web.xml</filename> </term>
+	    <listitem>
+	      <para>
+		Remove the <literal>/local</literal> string in <literal>ejb-ref-name</literal> to mark your EJBs for binding by WebSphere AS. <!-- #modify: Please check; previous version was incoherent. -->
+	      </para>
+	      
+	      <programlisting role="XML"><![CDATA[
+	      <ejb-local-ref> 
+	      <ejb-ref-name>websphere_example/AuthenticatorAction</ejb-ref-name> 
+	      <ejb-ref-type>Session</ejb-ref-type> 
+	      <local>org.jboss.seam.tutorial.websphere.action.Authenticator</local> 
+	      </ejb-local-ref>	
 
-<ejb-local-ref> 
-  <ejb-ref-name>websphere_example/EjbSynchronizations</ejb-ref-name>  
-  <ejb-ref-type>Session</ejb-ref-type> 
-  <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local> 
-</ejb-local-ref>]]>
-</programlisting>
-						</listitem>
-					</varlistentry>
+	      <ejb-local-ref> 
+	      <ejb-ref-name>websphere_example/EjbSynchronizations</ejb-ref-name>  
+	      <ejb-ref-type>Session</ejb-ref-type> 
+	      <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local> 
+	      </ejb-local-ref>]]>
+	      </programlisting>
+	    </listitem>
+	  </varlistentry>
 				</variablelist>
 			</section>
 			

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Annotations.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Annotations.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Annotations.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:13\n"
+"PO-Revision-Date: 2010-04-07T07:45:13\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Author_Group.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Author_Group.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Author_Group.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:13\n"
+"PO-Revision-Date: 2010-04-07T07:45:13\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -17,128 +17,268 @@
 msgid "Gavin"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "King"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Pete"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Muir"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Norman"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Richards"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Shane"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Bryzak"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Michael"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Yuan"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Mike"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Youngstrom"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Christian"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Bauer"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Jay"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Balunas"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Dan"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Allen"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Max"
 msgstr ""
 
+#. Tag: othername
+#, no-c-format
+msgid "Rydahl"
+msgstr ""
+
+#. Tag: surname
+#, no-c-format
+msgid "Andersen"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Emmanuel"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Bernard"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Nicklas"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Karlsson"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Daniel"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Roth"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Matt"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Drees"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Jacob"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Orshalick"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Marek"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Novotny"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "James"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Cobb"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Cheyenne"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Weaver"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Mark"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Newton"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Steve"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Ebersole"
+msgstr ""
+
+#. Tag: surname
+#, no-c-format
+msgid "Courcy"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Nicola"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Benaglia"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Stefano"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Travelli"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Francesco"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Milesi"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Japan"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "JBoss User Group"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Samson"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Kittoli"
+msgstr ""
+
 #. Tag: firstname
 #, no-c-format
 msgid "Laura"
 msgstr ""
 
+#. Tag: surname
+#, no-c-format
+msgid "Bailey"
+msgstr ""
+

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Book_Info.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Book_Info.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Book_Info.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:13\n"
+"PO-Revision-Date: 2010-04-07T07:45:13\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Cache.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Cache.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Cache.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:13\n"
+"PO-Revision-Date: 2010-04-07T07:45:13\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Clustering_EJBPassivation.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Clustering_EJBPassivation.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Clustering_EJBPassivation.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:13\n"
+"PO-Revision-Date: 2010-04-07T07:45:13\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Components.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Components.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Components.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:13\n"
+"PO-Revision-Date: 2010-04-07T07:45:13\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Concepts.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Concepts.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Concepts.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:43\n"
-"PO-Revision-Date: 2010-04-07T04:16:43\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Configuration.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Configuration.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Configuration.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:44\n"
-"PO-Revision-Date: 2010-04-07T04:16:44\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Controls.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Controls.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Controls.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:44\n"
-"PO-Revision-Date: 2010-04-07T04:16:44\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Conversations.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Conversations.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Conversations.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:44\n"
-"PO-Revision-Date: 2010-04-07T04:16:44\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Dependencies.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Dependencies.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Dependencies.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:44\n"
-"PO-Revision-Date: 2010-04-07T04:16:44\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Drools.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Drools.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Drools.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:44\n"
-"PO-Revision-Date: 2010-04-07T04:16:44\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Elenhancements.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Elenhancements.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Elenhancements.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:44\n"
-"PO-Revision-Date: 2010-04-07T04:16:44\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Events.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Events.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Events.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:14\n"
+"PO-Revision-Date: 2010-04-07T07:45:14\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Excel.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Excel.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Excel.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Feedback.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Feedback.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Feedback.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Framework.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Framework.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Framework.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gettingstarted.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gettingstarted.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gettingstarted.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Glassfish.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Glassfish.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Glassfish.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Groovy.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Groovy.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Groovy.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:45\n"
-"PO-Revision-Date: 2010-04-07T04:16:45\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gwt.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gwt.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Gwt.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:46\n"
-"PO-Revision-Date: 2010-04-07T04:16:46\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Hsearch.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Hsearch.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Hsearch.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:46\n"
-"PO-Revision-Date: 2010-04-07T04:16:46\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/I18n.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/I18n.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/I18n.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-04-07T04:16:46\n"
-"PO-Revision-Date: 2010-04-07T04:16:46\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Itext.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Itext.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Itext.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -172,11 +172,6 @@
 msgid "<emphasis>Usage</emphasis>"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:document xmlns:p=\"http://jboss.com/products/seam/pdf\"&gt; The document goes here. &lt;/p:document&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Basic Text Elements"
@@ -244,11 +239,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:paragraph alignment=\"justify\"&gt; This is a simple document. It isn't very fancy. &lt;/p:paragraph&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:text&gt;</literal>"
 msgstr ""
 
@@ -264,11 +254,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:paragraph&gt; The item costs &lt;p:text value=\"#{product.price}\"&gt; &lt;f:convertNumber type=\"currency\" currencySymbol=\"$\"/&gt; &lt;/p:text&gt; &lt;/p:paragraph&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:html&gt;</literal>"
 msgstr ""
 
@@ -284,11 +269,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:html value=\"This is HTML with &lt;b&gt;some markup&lt;/b&gt;\" /&gt; &lt;p:html&gt; &lt;h1&gt;This is more complex HTML&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;one&lt;/li&gt; &lt;li&gt;two&lt;/li&gt; &lt;li&gt;three&lt;/li&gt; &lt;/ul&gt; &lt;/p:html&gt; &lt;p:html&gt; &lt;s:formattedText value=\"*This* is |Seam Text| as HTML. It's very^cool^.\" /&gt; &lt;/p:html&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:font&gt;</literal>"
 msgstr ""
 
@@ -319,11 +299,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:font name=\"courier\" style=\"bold\" size=\"24\"&gt; &lt;p:paragraph&gt;My Title&lt;/p:paragraph&gt; &lt;/p:font&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:newPage&gt;</literal>"
 msgstr ""
 
@@ -334,17 +309,12 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:newPage /&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:image&gt;</literal>"
 msgstr ""
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>p:image</literal> inserts an image into the document. Images can be loaded from the classpath or from the web application context using the <literal>value</literal> attribute. <!-- #clarify: from classpath w/ value AND webapp w/ value, or from classpath OR webapp w/ value? -->"
+msgid "<literal>p:image</literal> inserts an image into the document. Images can be loaded from the classpath or from the web application context using the <literal>value</literal> attribute."
 msgstr ""
 
 #. Tag: para
@@ -414,11 +384,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:image value=\"/jboss.jpg\" /&gt; </programlisting> <programlisting role=\"XHTML\">&lt;p:image value=\"#{images.chart}\" /&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:anchor&gt;</literal>"
 msgstr ""
 
@@ -437,11 +402,6 @@
 msgid "<literal>reference</literal> — The destination the link refers to. Links to other points in the document should begin with a \"#\". For example, \"#link1\" to refer to an anchor position with a <literal>name</literal> of <literal>link1</literal>. To point to a resource outside the document, links must be a complete URL."
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:listItem&gt; &lt;p:anchor reference=\"#reason1\"&gt;Reason 1&lt;/p:anchor&gt; &lt;/p:listItem&gt; ... &lt;p:paragraph&gt; &lt;p:anchor name=\"reason1\"&gt; It's the quickest way to get \"rich\" &lt;/p:anchor&gt; ... &lt;/p:paragraph&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Headers and Footers"
@@ -484,11 +444,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:facet name=\"header\"&gt; &lt;p:font size=\"12\"&gt; &lt;p:footer borderWidthTop=\"1\" borderColorTop=\"blue\" borderWidthBottom=\"0\" alignment=\"center\"&gt; Why Seam? [&lt;p:pageNumber /&gt;] &lt;/p:footer&gt; &lt;/p:font&gt; &lt;/f:facet&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:pageNumber&gt;</literal>"
 msgstr ""
 
@@ -497,11 +452,6 @@
 msgid "The current page number can be placed inside a header or footer with the <literal>p:pageNumber</literal> tag. The page number tag can only be used in the context of a header or footer and can only be used once."
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:footer borderWidthTop=\"1\" borderColorTop=\"blue\" borderWidthBottom=\"0\" alignment=\"center\"&gt; Why Seam? [&lt;p:pageNumber /&gt;] &lt;/p:footer&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Chapters and Sections"
@@ -534,11 +484,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:document xmlns:p=\"http://jboss.com/products/seam/pdf\" title=\"Hello\"&gt; &lt;p:chapter number=\"1\"&gt; &lt;p:title&gt;&lt;p:paragraph&gt;Hello&lt;/p:paragraph&gt;&lt;/p:title&gt; &lt;p:paragraph&gt;Hello #{user.name}!&lt;/p:paragraph&gt; &lt;/p:chapter&gt; &lt;p:chapter number=\"2\"&gt; &lt;p:title&gt; &lt;p:paragraph&gt; Goodbye &lt;/p:paragraph&gt; &lt;/p:title&gt; &lt;p:paragraph&gt;Goodbye #{user.name}.&lt;/p:paragraph&gt; &lt;/p:chapter&gt; &lt;/p:document&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Any chapter or section can contain a <literal>p:title</literal>. The title will be displayed next to the chapter or section number. The body of the title may contain raw text or may be a <literal>p:paragraph</literal>."
 msgstr ""
 
@@ -557,11 +502,6 @@
 msgid "<literal>&lt;p:list&gt;</literal>"
 msgstr ""
 
-#. Tag: entry
-#, no-c-format
-msgid "<!-- #modify: ??? description required? <para> <emphasis>Description</emphasis> </para> <para>...</para> -->"
-msgstr ""
-
 #. Tag: para
 #, no-c-format
 msgid "<literal>style</literal> — The ordering/bulleting style of the list. One of: <literal>NUMBERED</literal>, <literal>LETTERED</literal>, <literal>GREEK</literal>, <literal>ROMAN</literal>, <literal>ZAPFDINGBATS</literal>, <literal>ZAPFDINGBATS_NUMBER</literal>. If no style is given, the list items are bulleted by default."
@@ -594,11 +534,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:list style=\"numbered\"&gt; &lt;ui:repeat value=\"#{documents}\" var=\"doc\"&gt; &lt;p:listItem&gt;#{doc.name}&lt;/p:listItem&gt; &lt;/ui:repeat&gt; &lt;/p:list&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:listItem&gt;</literal>"
 msgstr ""
 
@@ -627,11 +562,6 @@
 msgid "<literal>listSymbol</literal> — Overrides the default list symbol for this list item."
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">... </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Tables"
@@ -719,11 +649,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:table columns=\"3\" headerRows=\"1\"&gt; &lt;p:cell&gt;name&lt;/p:cell&gt; &lt;p:cell&gt;owner&lt;/p:cell&gt; &lt;p:cell&gt;size&lt;/p:cell&gt; &lt;ui:repeat value=\"#{documents}\" var=\"doc\"&gt; &lt;p:cell&gt;#{doc.name}&lt;/p:cell&gt; &lt;p:cell&gt;#{doc.user.name}&lt;/p:cell&gt; &lt;p:cell&gt;#{doc.size}&lt;/p:cell&gt; &lt;/ui:repeat&gt; &lt;/p:table&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:cell&gt;</literal>"
 msgstr ""
 
@@ -817,11 +742,6 @@
 msgid "<literal>rotation</literal>"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:cell&gt;...&lt;/p:cell&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Document Constants"
@@ -1029,11 +949,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:barchart title=\"Bar Chart\" legend=\"true\" width=\"500\" height=\"500\"&gt; &lt;p:series key=\"Last Year\"&gt; &lt;p:data columnKey=\"Joe\" value=\"100\" /&gt; &lt;p:data columnKey=\"Bob\" value=\"120\" /&gt; &lt;/p:series&gt; &lt;p:series key=\"This Year\"&gt; &lt;p:data columnKey=\"Joe\" value=\"125\" /&gt; &lt;p:data columnKey=\"Bob\" value=\"115\" /&gt; &lt;/p:series&gt; &lt;/p:barchart&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:linechart&gt;</literal>"
 msgstr ""
 
@@ -1074,11 +989,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:linechart title=\"Line Chart\" width=\"500\" height=\"500\"&gt; &lt;p:series key=\"Prices\"&gt; &lt;p:data columnKey=\"2003\" value=\"7.36\" /&gt; &lt;p:data columnKey=\"2004\" value=\"11.50\" /&gt; &lt;p:data columnKey=\"2005\" value=\"34.625\" /&gt; &lt;p:data columnKey=\"2006\" value=\"76.30\" /&gt; &lt;p:data columnKey=\"2007\" value=\"85.05\" /&gt; &lt;/p:series&gt; &lt;/p:linechart&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:piechart&gt;</literal>"
 msgstr ""
 
@@ -1194,11 +1104,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\"> &lt;p:piechart title=\"Pie Chart\" circular=\"false\" direction=\"anticlockwise\" startAngle=\"30\" labelGap=\"0.1\" labelLinkPaint=\"red\"&gt; &lt;p:series key=\"Prices\"&gt; &lt;p:data key=\"2003\" columnKey=\"2003\" value=\"7.36\" /&gt; &lt;p:data key=\"2004\" columnKey=\"2004\" value=\"11.50\" /&gt; &lt;p:data key=\"2005\" columnKey=\"2005\" value=\"34.625\" /&gt; &lt;p:data key=\"2006\" columnKey=\"2006\" value=\"76.30\" /&gt; &lt;p:data key=\"2007\" columnKey=\"2007\" value=\"85.05\" /&gt; &lt;/p:series&gt; &lt;/p:piechart&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:series&gt;</literal>"
 msgstr ""
 
@@ -1239,11 +1144,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:series key=\"data1\"&gt; &lt;ui:repeat value=\"#{data.pieData1}\" var=\"item\"&gt; &lt;p:data columnKey=\"#{item.name}\" value=\"#{item.value}\" /&gt; &lt;/ui:repeat&gt; &lt;/p:series&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:data&gt;</literal>"
 msgstr ""
 
@@ -1289,11 +1189,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:data key=\"foo\" value=\"20\" sectionPaint=\"#111111\" explodedPercent=\".2\" /&gt; &lt;p:data key=\"bar\" value=\"30\" sectionPaint=\"#333333\" /&gt; &lt;p:data key=\"baz\" value=\"40\" sectionPaint=\"#555555\" sectionOutlineStroke=\"my-dot-style\" /&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:color&gt;</literal>"
 msgstr ""
 
@@ -1324,11 +1219,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:color id=\"foo\" color=\"#0ff00f\"/&gt; &lt;p:color id=\"bar\" color=\"#ff00ff\" color2=\"#00ff00\" point=\"50 50\" point2=\"300 300\"/&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "<literal>&lt;p:stroke&gt;</literal>"
 msgstr ""
 
@@ -1367,11 +1257,6 @@
 msgid "<literal>dashPhase</literal> — The dash phase indicates the point in the dash pattern that corresponds to the beginning of the stroke."
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:stroke id=\"dot2\" width=\"2\" cap=\"round\" join=\"bevel\" dash=\"2 3\" /&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Bar codes"
@@ -1452,11 +1337,6 @@
 msgid "<literal>altText</literal> — The <literal>alt</literal> text for HTML image links."
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:barCode type=\"code128\" barHeight=\"80\" textSize=\"20\" code=\"(10)45566(17)040301\" codeType=\"code128_ucc\" altText=\"My BarCode\" /&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Fill-in-forms"
@@ -1552,11 +1432,6 @@
 msgid "<literal>component</literal> — An expression whose value is a Swing or AWT component."
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;p:swing width=\"310\" height=\"120\" component=\"#{aButton}\" /&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "Configuring iText"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jbpm.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jbpm.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jbpm.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jms.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jms.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Jms.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -64,7 +64,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Since the Seam API for the default <literal>ScheduledThreadPoolExecutor</literal>, the EJB3 <literal>Timer</literal>, and the Quartz <literal>Scheduler</literal> are very similar, you can \"plug and play\" by adding a line to <filename>components.xml</filename>. <!-- #modify: What line can you add? -->"
+msgid "Since the Seam API for the default <literal>ScheduledThreadPoolExecutor</literal>, the EJB3 <literal>Timer</literal>, and the Quartz <literal>Scheduler</literal> are very similar, you can \"plug and play\" by adding a line to <filename>components.xml</filename>."
 msgstr ""
 
 #. Tag: title

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Mail.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Mail.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Mail.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Migration.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Migration.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Migration.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -349,7 +349,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "There are no longer any special configuration or packaging requirements for Tomcat deployment. To deploy with Tomcat, follow the instructions in the User Guide.<!-- #modify: The Tomcat UG, or the Seam UG? -->"
+msgid "There are no longer any special configuration or packaging requirements for Tomcat deployment. To deploy with Tomcat, follow the instructions in the User Guide."
 msgstr ""
 
 #. Tag: para

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Performance.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Performance.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Performance.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Persistence.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Persistence.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Persistence.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Preface.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Preface.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Preface.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:53\n"
-"PO-Revision-Date: 2010-02-01T03:07:53\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -174,7 +174,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Seam integrates the Java Persistence API and Hibernate 3 for persistence; the EJB Timer Service and Quartz for lightweight asychronicity; jBPM for workflow; JBoss Rules for business rules; <!-- Meldware Mail for email; --> Hibernate Search and Lucene for full text search; Java Message Service for messaging; and JBoss Cache for page fragment caching. Seam layers an innovative rule-based security framework over the Java Authentication and Authorization Service and JBoss Rules. It also includes JSF tag libraries for rendering PDF, outgoing email, charts and wikitext. Seam components can be called synchronously as a Web Service, asynchronously from client-side JavaScript or Google Web Toolkit, or directly from JSF."
+msgid "Seam integrates the Java Persistence API and Hibernate 3 for persistence; the EJB Timer Service and Quartz for lightweight asychronicity; jBPM for workflow; JBoss Rules for business rules; Hibernate Search and Lucene for full text search; Java Message Service for messaging; and JBoss Cache for page fragment caching. Seam layers an innovative rule-based security framework over the Java Authentication and Authorization Service and JBoss Rules. It also includes JSF tag libraries for rendering PDF, outgoing email, charts and wikitext. Seam components can be called synchronously as a Web Service, asynchronously from client-side JavaScript or Google Web Toolkit, or directly from JSF."
 msgstr ""
 
 #. Tag: term

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Remoting.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Remoting.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Remoting.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Revision_History.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Revision_History.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Revision_History.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,14 +4,24 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
 "Content-Type: application/x-publican; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#. Tag: firstname
+#, no-c-format
+msgid "Laura"
+msgstr ""
+
+#. Tag: surname
+#, no-c-format
+msgid "Bailey"
+msgstr ""
+
 #. Tag: member
 #, no-c-format
 msgid "Initial draft."

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Rss.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Rss.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Rss.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Seam_Reference_Guide.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Seam_Reference_Guide.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Seam_Reference_Guide.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:15\n"
+"PO-Revision-Date: 2010-04-07T07:45:15\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Security.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Security.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Security.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:16\n"
+"PO-Revision-Date: 2010-04-07T07:45:16\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -519,11 +519,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"JAVA\">@UserPassword(hash = \"md5\") public String getPasswordHash() { return passwordHash; } </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "It is possible to extend the <literal>PasswordHash</literal> component to implement other hashing algorithms, if required."
 msgstr ""
 
@@ -569,7 +564,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This annotation marks the field or method containing the roles of the user. This property will be described in more detail in a later section. <!-- #modify: xref if possible -->"
+msgid "This annotation marks the field or method containing the roles of the user. This property will be described in more detail in a later section."
 msgstr ""
 
 #. Tag: title
@@ -1094,7 +1089,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "If you use Identity Management features in your Seam application, then you do not need to provide an authenticator component (see previous Authentication section<!-- #modify: xref -->) to enable authentication. Simply omit the <literal>authenticator-method</literal> from the <literal>identity</literal> configuration in <literal>components.xml</literal>, and the <literal>SeamLoginModule</literal> will use <literal>IdentityManager</literal> to authenticate your application's users without any special configuration."
+msgid "If you use Identity Management features in your Seam application, then you do not need to provide an authenticator component (see previous Authentication section) to enable authentication. Simply omit the <literal>authenticator-method</literal> from the <literal>identity</literal> configuration in <literal>components.xml</literal>, and the <literal>SeamLoginModule</literal> will use <literal>IdentityManager</literal> to authenticate your application's users without any special configuration."
 msgstr ""
 
 #. Tag: title
@@ -1764,7 +1759,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This rule grants the permission <literal>memberBlog:insert</literal> if the name of the currently authenticated user (indicated by the <literal>Principal</literal> fact) matches that of the member for whom the blog entry is being created. The <literal>principal: Principal()</literal> structure is a variable binding. It binds the instance of the <literal>Principal</literal> object placed in the working memory during authentication, and assigns it to a variable called <literal>principal</literal>. Variable bindings let the variable be referenced in other places, such as the following line, which compares the member name to the <literal>Principal</literal> name. For further details, refer to the JBoss Rules documentation. <!-- #modify: linkme? -->"
+msgid "This rule grants the permission <literal>memberBlog:insert</literal> if the name of the currently authenticated user (indicated by the <literal>Principal</literal> fact) matches that of the member for whom the blog entry is being created. The <literal>principal: Principal()</literal> structure is a variable binding. It binds the instance of the <literal>Principal</literal> object placed in the working memory during authentication, and assigns it to a variable called <literal>principal</literal>. Variable bindings let the variable be referenced in other places, such as the following line, which compares the member name to the <literal>Principal</literal> name. For further details, refer to the JBoss Rules documentation."
 msgstr ""
 
 #. Tag: para
@@ -2379,7 +2374,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "This annotation should be used when the same entity/table stores both user and role permissions. It identifies the property of the entity being used to discriminate between user and role permissions. By default, if the column value contains the string literal <literal>user</literal>, then the record will be treated as a user permission. If it contains the string literal <literal>role</literal>, it will be treated as a role permission. You can also override these defaults by specifying the <literal>userValue</literal> and <literal>roleValue</literal> properties within the annotation. For example, to use <literal>u</literal> and <literal>r</literal> instead of <literal>user</literal> and <literal>role</literal>, write the annotation like so: <programlisting role=\"JAVA\"> @PermissionDiscriminator( userValue = \"u\", roleValue = \"r\") </programlisting>"
+msgid "This annotation should be used when the same entity/table stores both user and role permissions. It identifies the property of the entity being used to discriminate between user and role permissions. By default, if the column value contains the string literal <literal>user</literal>, then the record will be treated as a user permission. If it contains the string literal <literal>role</literal>, it will be treated as a role permission. You can also override these defaults by specifying the <literal>userValue</literal> and <literal>roleValue</literal> properties within the annotation. For example, to use <literal>u</literal> and <literal>r</literal> instead of <literal>user</literal> and <literal>role</literal>, write the annotation like so:"
 msgstr ""
 
 #. Tag: title

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Spring.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Spring.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Spring.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:16\n"
+"PO-Revision-Date: 2010-04-07T07:45:16\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -289,7 +289,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>JpaTemplate</literal> and <literal>JpaDaoSupport</literal> have an identical configuration in a Spring-based persistence context and in a normal Seam-managed persistence context.<!-- #modify: Please confirm; the original paragraph had two identical terms. -->"
+msgid "<literal>JpaTemplate</literal> and <literal>JpaDaoSupport</literal> have an identical configuration in a Spring-based persistence context and in a normal Seam-managed persistence context."
 msgstr ""
 
 #. Tag: title

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Testing.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Testing.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Testing.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:16\n"
+"PO-Revision-Date: 2010-04-07T07:45:16\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -119,7 +119,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Here, we extend <literal>SeamTest</literal> to provide a Seam environment for our components, and our test script is written as an anonymous class that extends <literal>SeamTest.FacesRequest</literal>, which provides an emulated JSF request lifecycle. (There is also a <literal>SeamTest.NonFacesRequest</literal> for testing GET requests.) Our code includes methods named for various JSF phases, to emulate the calls that JSF would make to our components. We have then included various assertions. <!-- #modify: descriptions of the assertions and JSF phases would help. -->"
+msgid "Here, we extend <literal>SeamTest</literal> to provide a Seam environment for our components, and our test script is written as an anonymous class that extends <literal>SeamTest.FacesRequest</literal>, which provides an emulated JSF request lifecycle. (There is also a <literal>SeamTest.NonFacesRequest</literal> for testing GET requests.) Our code includes methods named for various JSF phases, to emulate the calls that JSF would make to our components. We have then included various assertions."
 msgstr ""
 
 #. Tag: para

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Text.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Text.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Text.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:16\n"
+"PO-Revision-Date: 2010-04-07T07:45:16\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -54,7 +54,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Quoted sections should be surrounded in double quotes: <!-- #modify: This is lovely, of course, but can we have an example of more than three years' age? -->"
+msgid "Quoted sections should be surrounded in double quotes:"
 msgstr ""
 
 #. Tag: title

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tools.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tools.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tools.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:54\n"
-"PO-Revision-Date: 2010-02-01T03:07:54\n"
+"POT-Creation-Date: 2010-04-07T07:45:16\n"
+"PO-Revision-Date: 2010-04-07T07:45:16\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tutorial.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tutorial.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Tutorial.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:16\n"
+"PO-Revision-Date: 2010-04-07T07:45:16\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -127,11 +127,6 @@
 msgid "User.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"JAVA\">@Entity @Name(\"user\") @Scope(SESSION) @Table(name=\"users\") public class User implements Serializable { private static final long serialVersionUID = 1881413500711441951L; private String username; private String password; private String name; public User(String name, String password, String username) { this.name = name; this.password = password; this.username = username; } public User() {} @NotNull @Length(min=5, max=15) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @NotNull public String getName() { return name; } public void setName(String name) { this.name = name; } @Id @NotNull @Length(min=5, max=15) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "User.java Explanatory Notes"
@@ -177,11 +172,6 @@
 msgid "The EJB standard <literal>@Id</literal> annotation indicates the primary key attribute of the entity bean."
 msgstr ""
 
-#. Tag: orderedlist
-#, no-c-format
-msgid "<!-- </example> -->"
-msgstr ""
-
 #. Tag: para
 #, no-c-format
 msgid "The most important things to notice in this example are the <literal>@Name</literal> and <literal>@Scope</literal> annotations. These annotations establish that this class is a Seam component."
@@ -222,11 +212,6 @@
 msgid "RegisterAction.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>@Stateless @Name(\"register\") public class RegisterAction implements Register { @In private User user; @PersistenceContext private EntityManager em; @Logger private Log log; public String register() { List existing = em.createQuery( \"select username from User where username = #{user.username}\") .getResultList(); if (existing.size()==0) { em.persist(user); log.info(\"Registered new user #{user.username}\"); return \"/registered.xhtml\"; } else { FacesMessages.instance().add(\"User #{user.username} already exists\"); return null; } } } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "RegisterAction.java Explanatory Notes"
@@ -314,11 +299,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<!-- <example> <title>Register.java</title> --> <programlisting role=\"JAVA\">@Local public interface Register { public String register(); }</programlisting> <!-- </example> -->"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "That's the end of the Java code. The next level to examine is the view."
 msgstr ""
 
@@ -339,11 +319,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<!-- <example> <title>register.xhtml</title> --> <programlisting role=\"XHTML\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt; &lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"&gt; &lt;html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:s=\"http://jboss.com/products/seam/taglib\" xmlns:h=\"http://java.sun.com/jsf/html\" xmlns:f=\"http://java.sun.com/jsf/core\"&gt; &lt;head&gt; &lt;title&gt;Register New User&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;f:view&gt; &lt;h:form&gt; &lt;s:validateAll&gt; &lt;h:panelGrid columns=\"2\"&gt; Username: &lt;h:inputText value=\"#{user.username}\" required=\"true\"/&gt; Real Name: &lt;h:inputText value=\"#{user.name}\" required=\"true\"/&gt; Password: &lt;h:inputSecret value=\"#{user.password}\" required=\"true\"/&gt; &lt;/h:panelGrid&gt; &lt;/s:validateAll&gt; &lt;h:messages/&gt; &lt;h:commandButton value=\"Register\" action=\"#{register.register}\"/&gt!
 ; &lt;/h:form&gt; &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The only Seam-specific tag here is <literal>&lt;s:validateAll&gt;</literal>. This JSF component tells JSF to validate all the contained input fields against the Hibernate Validator annotations specified on the entity bean."
 msgstr ""
 
@@ -354,11 +329,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<!-- <example> <title>registered.xhtml</title> --> <programlisting role=\"XHTML\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt; &lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"&gt; &lt;html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:f=\"http://java.sun.com/jsf/core\"&gt; &lt;head&gt; &lt;title&gt;Successfully Registered New User&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;f:view&gt; Welcome, #{user.name}, you are successfully registered as #{user.username}. &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; </programlisting> <!-- </example> -->"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The above is a simple Facelets page, created with inline EL — it contains nothing specific to Seam."
 msgstr ""
 
@@ -389,11 +359,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XML\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;components xmlns=\"http://jboss.com/products/seam/components\" xmlns:core=\"http://jboss.com/products/seam/core\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd\"&gt; &lt;core:init jndi-pattern=\"@jndiPattern@\"/&gt; &lt;/components&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The above code configures a property named <literal>jndiPattern</literal>, which belongs to a built-in Seam component named <literal>org.jboss.seam.core.init</literal>. The <literal>@</literal> symbols are used to direct the Ant build script to insert the correct JNDI pattern from the components.properties file when the application is deployed. You will learn more about this process in <xref linkend=\"xml.descriptor\" />."
 msgstr ""
 
@@ -414,11 +379,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XML\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;web-app xmlns=\"http://java.sun.com/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\" version=\"2.5\"&gt; &lt;listener&gt; &lt;listener-class&gt;org.jboss.seam.servlet.SeamListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;context-param&gt; &lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt; &lt;param-value&gt;.xhtml&lt;/param-value&gt; &lt;/context-param&gt; &lt;servlet&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;url-pattern&gt;*.seam&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;session-config&gt; &lt;ses!
 sion-timeout&gt;10&lt;/session-timeout&gt; &lt;/session-config&gt; &lt;/web-app&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The above <literal>web.xml</literal> file configures both Seam and JSF. The configuration you see here changes very little between Seam applications."
 msgstr ""
 
@@ -439,11 +399,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XML\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;faces-config xmlns=\"http://java.sun.com/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\" version=\"1.2\"&gt; &lt;application&gt; &lt;view-handler&gt;com.sun.facelets.FaceletViewHandler&lt;/view-handler&gt; &lt;/application&gt; &lt;/faces-config&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Note that JSF managed bean declarations are unnecessary because the managed beans are annotated Seam components. In Seam applications, <literal>faces-config.xml</literal> is used much less often than in plain JSF. Here, we use it simply to enable Facelets (and not JSP) as the view handler."
 msgstr ""
 
@@ -494,11 +449,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XML\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;application xmlns=\"http://java.sun.com/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd\" version=\"5\"&gt; &lt;display-name&gt;Seam Registration&lt;/display-name&gt; &lt;module&gt; &lt;web&gt; &lt;web-uri&gt;jboss-seam-registration.war&lt;/web-uri&gt; &lt;context-root&gt;/seam-registration&lt;/context-root&gt; &lt;/web&gt; &lt;/module&gt; &lt;module&gt; &lt;ejb&gt;jboss-seam-registration.jar&lt;/ejb&gt; &lt;/module&gt; &lt;module&gt; &lt;ejb&gt;jboss-seam.jar&lt;/ejb&gt; &lt;/module&gt; &lt;module&gt; &lt;java&gt;jboss-el.jar&lt;/java&gt; &lt;/module&gt; &lt;/application&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "This deployment descriptor links modules in the enterprise archive and binds the web application to the context root <literal>/seam-registration</literal>."
 msgstr ""
 
@@ -572,11 +522,6 @@
 msgid "Message.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting role=\"JAVA\">@Entity @Name(\"message\") @Scope(EVENT) public class Message implements Serializable { private Long id; private String title; private String text; private boolean read; private Date datetime; @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } @NotNull @Length(max=100) public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @NotNull @Lob public String getText() { return text; } public void setText(String text) { this.text = text; } @NotNull public boolean isRead() { return read; } public void setRead(boolean read) { this.read = read; } @NotNull @Basic @Temporal(TemporalType.TIMESTAMP) public Date getDatetime() { return datetime; } public void setDatetime(Date datetime) { this.datetime = datetime; } } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "The stateful session bean: <literal>MessageManagerBean.java</literal>"
@@ -602,11 +547,6 @@
 msgid "MessageManagerBean.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>@Stateful @Scope(SESSION) @Name(\"messageManager\") public class MessageManagerBean implements Serializable, MessageManager { @DataModel private List&lt;Message&gt; messageList; @DataModelSelection @Out(required=false) private Message message; @PersistenceContext(type=EXTENDED) private EntityManager em; @Factory(\"messageList\") public void findMessages() { messageList = em.createQuery(\"select msg from Message msg \" + \"order by msg.datetime desc\") .getResultList(); } public void select() { message.setRead(true); } public void delete() { messageList.remove(message); em.remove(message); message=null; } @Remove public void destroy() {} } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "MessageManagerBean.java Explanatory Notes"
@@ -674,11 +614,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"JAVA\">@Local public interface MessageManager { public void findMessages(); public void select(); public void delete(); public void destroy(); } </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "From this point, local interfaces are no longer shown in these code examples. <filename>Components.xml</filename>, <filename>persistence.xml</filename>, <filename>web.xml</filename>, <filename>ejb-jar.xml</filename>, <filename>faces-config.xml</filename> and <filename>application.xml</filename> operate in a similar fashion to the previous example, and go directly to the JSP."
 msgstr ""
 
@@ -699,11 +634,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\" %&gt; &lt;%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\" %&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Messages&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;f:view&gt; &lt;h:form&gt; &lt;h2&gt;Message List&lt;/h2&gt; &lt;h:outputText value=\"No messages to display\" rendered=\"#{messageList.rowCount==0}\"/&gt; &lt;h:dataTable var=\"msg\" value=\"#{messageList}\" rendered=\"#{messageList.rowCount&gt;0}\"&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText value=\"Read\"/&gt; &lt;/f:facet&gt; &lt;h:selectBooleanCheckbox value=\"#{msg.read}\" disabled=\"true\"/&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText value=\"Title\"/&gt; &lt;/f:facet&gt; &lt;h:commandLink value=\"#{msg.title}\" action=\"#{messageManager.select}\"/&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText!
  value=\"Date/Time\"/&gt; &lt;/f:facet&gt; &lt;h:outputText value=\"#{msg.datetime}\"&gt; &lt;f:convertDateTime type=\"both\" dateStyle=\"medium\" timeStyle=\"short\"/&gt; &lt;/h:outputText&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;h:commandButton value=\"Delete\" action=\"#{messageManager.delete}\"/&gt; &lt;/h:column&gt; &lt;/h:dataTable&gt; &lt;h3&gt;&lt;h:outputText value=\"#{message.title}\"/&gt;&lt;/h3&gt; &lt;div&gt;&lt;h:outputText value=\"#{message.text}\"/&gt;&lt;/div&gt; &lt;/h:form&gt; &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The first time we navigate to <literal>messages.jsp</literal>, the page will try to resolve the <literal>messageList</literal> context variable. Since this variable is not yet initialized, Seam calls the factory method <literal>findMessages</literal>, which queries the database and retrieves a <literal>DataModel</literal>. This provides the row data required to render the <literal>&lt;h:dataTable&gt;</literal>."
 msgstr ""
 
@@ -737,11 +667,6 @@
 msgid "todo.jpdl.xml Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<!-- <programlistingco> <areaspec> <area id=\"todo-startstate\" coords=\"3\"/> <area id=\"todo-tasknode\" coords=\"7\"/> <area id=\"todo-task\" coords=\"8\"/> <area id=\"todo-assignment\" coords=\"9\"/> <area id=\"todo-endstate\" coords=\"14\"/> </areaspec> --> <programlisting>&lt;process-definition name=\"todo\"&gt; &lt;start-state name=\"start\"&gt; &lt;transition to=\"todo\"/&gt; &lt;/start-state&gt; &lt;task-node name=\"todo\"&gt; &lt;task name=\"todo\" description=\"#{todoList.description}\"&gt; &lt;assignment actor-id=\"#{actor.id}\"/&gt; &lt;/task&gt; &lt;transition to=\"done\"/&gt; &lt;/task-node&gt; &lt;end-state name=\"done\"/&gt; &lt;/process-definition&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "messages.jsp Explanatory Notes"
@@ -794,11 +719,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"JAVA\">@Name(\"login\") public class Login { @In private Actor actor; private String user; public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String login() { actor.setId(user); return \"/todo.jsp\"; } } </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Here we see the use of <literal>@In</literal> to inject the built-in <literal>Actor</literal> component."
 msgstr ""
 
@@ -814,11 +734,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\"%&gt; &lt;%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\"%&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Login&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Login&lt;/h1&gt; &lt;f:view&gt; &lt;h:form&gt; &lt;div&gt; &lt;h:inputText value=\"#{login.user}\"/&gt; &lt;h:commandButton value=\"Login\" action=\"#{login.login}\"/&gt; &lt;/div&gt; &lt;/h:form&gt; &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The second JavaBean is responsible for starting business process instances, and ending tasks."
 msgstr ""
 
@@ -827,11 +742,6 @@
 msgid "TodoList.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>@Name(\"todoList\") public class TodoList { private String description; public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @CreateProcess(definition=\"todo\") public void createTodo() {} @StartTask @EndTask public void done() {} } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "TodoList.java Explanatory Notes"
@@ -869,11 +779,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\" %&gt; &lt;%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\" %&gt; &lt;%@ taglib uri=\"http://jboss.com/products/seam/taglib\" prefix=\"s\" %&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Todo List&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Todo List&lt;/h1&gt; &lt;f:view&gt; &lt;h:form id=\"list\"&gt; &lt;div&gt; &lt;h:outputText value=\"There are no todo items.\" rendered=\"#{empty taskInstanceList}\"/&gt; &lt;h:dataTable value=\"#{taskInstanceList}\" var=\"task\" rendered=\"#{not empty taskInstanceList}\"&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText value=\"Description\"/&gt; &lt;/f:facet&gt; &lt;h:inputText value=\"#{task.description}\"/&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText value=\"Created\"/&gt; &lt;/f:facet&gt; &lt;h:outputText value= \"#{task.taskMgmtInstance.processInstance.sta!
 rt}\"&gt; &lt;f:convertDateTime type=\"date\"/&gt; &lt;/h:outputText&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText value=\"Priority\"/&gt; &lt;/f:facet&gt; &lt;h:inputText value=\"#{task.priority}\" style=\"width: 30\"/&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt; &lt;h:outputText value=\"Due Date\"/&gt; &lt;/f:facet&gt; &lt;h:inputText value=\"#{task.dueDate}\" style=\"width: 100\"&gt; &lt;f:convertDateTime type=\"date\" dateStyle=\"short\"/&gt; &lt;/h:inputText&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;s:button value=\"Done\" action=\"#{todoList.done}\" taskInstance=\"#{task}\"/&gt; &lt;/h:column&gt; &lt;/h:dataTable&gt; &lt;/div&gt; &lt;div&gt; &lt;h:messages/&gt; &lt;/div&gt; &lt;div&gt; &lt;h:commandButton value=\"Update Items\" action=\"update\"/&gt; &lt;/div&gt; &lt;/h:form&gt; &lt;h:form id=\"new\"&gt; &lt;div&gt; &lt;h:inputText value=\"#{todoList.description}\"/&gt; &lt;h:commandButton value=\"Cr!
 eate New Item\" action=\"#{todoList.createTodo}\"/&gt; &lt;/di!
 v&gt; &l
t;/h:form&gt; &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "For simplicity's sake, we will look at this once section at a time."
 msgstr ""
 
@@ -889,11 +794,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;h:form id=\"list\"&gt; &lt;div&gt; &lt;h:outputText value=\"There are no todo items.\" rendered=\"#{empty taskInstanceList}\"/&gt; &lt;h:dataTable value=\"#{taskInstanceList}\" var=\"task\" rendered=\"#{not empty taskInstanceList}\"&gt; ... &lt;/h:dataTable&gt; &lt;/div&gt; &lt;/h:form&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Each element of the list is an instance of the jBPM class <literal>TaskInstance</literal>. The following code displays certain properties for every task in the list. Input controls are used for description, priority, and due date to allow users to update these values."
 msgstr ""
 
@@ -967,11 +867,6 @@
 msgid "pageflow.jpdl.xml Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>&lt;pageflow-definition xmlns=\"http://jboss.com/products/seam/pageflow\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation= \"http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-2.2.xsd\" name=\"numberGuess\"&gt; &lt;start-page name=\"displayGuess\" view-id=\"/numberGuess.jspx\"&gt; &lt;redirect/&gt; &lt;transition name=\"guess\" to=\"evaluateGuess\"&gt; &lt;action expression=\"#{numberGuess.guess}\"/&gt; &lt;/transition&gt; &lt;transition name=\"giveup\" to=\"giveup\"/&gt; &lt;transition name=\"cheat\" to=\"cheat\"/&gt; &lt;/start-page&gt; &lt;decision name=\"evaluateGuess\" expression=\"#{numberGuess.correctGuess}\"&gt; &lt;transition name=\"true\" to=\"win\"/&gt; &lt;transition name=\"false\" to=\"evaluateRemainingGuesses\"/&gt; &lt;/decision&gt; &lt;decision name=\"evaluateRemainingGuesses\" expression=\"#{numberGuess.lastGuess}\"&gt; &lt;transition name=\"true\" to=\"lose\"/&gt; &lt;transition!
  name=\"false\" to=\"displayGuess\"/&gt; &lt;/decision&gt; &lt;page name=\"giveup\" view-id=\"/giveup.jspx\"&gt; &lt;redirect/&gt; &lt;transition name=\"yes\" to=\"lose\"/&gt; &lt;transition name=\"no\" to=\"displayGuess\"/&gt; &lt;/page&gt; &lt;process-state name=\"cheat\"&gt; &lt;sub-process name=\"cheat\"/&gt; &lt;transition to=\"displayGuess\"/&gt; &lt;/process-state&gt; &lt;page name=\"win\" view-id=\"/win.jspx\"&gt; &lt;redirect/&gt; &lt;end-conversation/&gt; &lt;/page&gt; &lt;page name=\"lose\" view-id=\"/lose.jspx\"&gt; &lt;redirect/&gt; &lt;end-conversation/&gt; &lt;/page&gt; &lt;/pageflow-definition&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "pageflow.jpdl.xml Explanatory Notes."
@@ -1019,11 +914,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XHTML\">&lt;?xml version=\"1.0\"?&gt; &lt;jsp:root xmlns:jsp=\"http://java.sun.com/JSP/Page\" xmlns:h=\"http://java.sun.com/jsf/html\" xmlns:f=\"http://java.sun.com/jsf/core\" xmlns:s=\"http://jboss.com/products/seam/taglib\" xmlns=\"http://www.w3.org/1999/xhtml\" version=\"2.0\"&gt; &lt;jsp:output doctype-root-element=\"html\" doctype-public=\"-//W3C//DTD XHTML 1.0 Transitional//EN\" doctype-system= \"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"/&gt; &lt;jsp:directive.page contentType=\"text/html\"/&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Guess a number...&lt;/title&gt; &lt;link href=\"niceforms.css\" rel=\"stylesheet\" type=\"text/css\" /&gt; &lt;script language=\"javascript\" type=\"text/javascript\" src=\"niceforms.js\" /&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Guess a number...&lt;/h1&gt; &lt;f:view&gt; &lt;h:form styleClass=\"niceform\"&gt; &lt;div&gt; &lt;h:messages globalOnly=\"true\"/&gt; &lt;h:outputText value=\"High!
 er!\" rendered=\"#{ numberGuess.randomNumber gt numberGuess.currentGuess}\"/&gt; &lt;h:outputText value=\"Lower!\" rendered=\"#{ numberGuess.randomNumber lt numberGuess.currentGuess}\"/&gt; &lt;/div&gt; &lt;div&gt; I'm thinking of a number between &lt;h:outputText value=\"#{numberGuess.smallest}\"/&gt; and &lt;h:outputText value=\"#{numberGuess.biggest}\"/&gt;. You have &lt;h:outputText value=\"#{numberGuess.remainingGuesses}\"/&gt; guesses. &lt;/div&gt; &lt;div&gt; Your guess: &lt;h:inputText value=\"#{numberGuess.currentGuess}\" id=\"inputGuess\" required=\"true\" size=\"3\" rendered=\"#{ (numberGuess.biggest-numberGuess.smallest) gt 20}\"&gt; &lt;f:validateLongRange maximum=\"#{numberGuess.biggest}\" minimum=\"#{numberGuess.smallest}\"/&gt; &lt;/h:inputText&gt; &lt;h:selectOneMenu value=\"#{numberGuess.currentGuess}\" id=\"selectGuessMenu\" required=\"true\" rendered=\"#{ (numberGuess.biggest-numberGuess.smallest) le 20 and (numberGuess.biggest-numberGuess.smallest) gt 4!
 }\"&gt; &lt;s:selectItems value=\"#{numberGuess.possibilities}!
 \" var=\
"i\" label=\"#{i}\"/&gt; &lt;/h:selectOneMenu&gt; &lt;h:selectOneRadio value=\"#{numberGuess.currentGuess}\" id=\"selectGuessRadio\" required=\"true\" rendered=\"#{ (numberGuess.biggest-numberGuess.smallest) le 4}\"&gt; &lt;s:selectItems value=\"#{numberGuess.possibilities}\" var=\"i\" label=\"#{i}\"/&gt; &lt;/h:selectOneRadio&gt; &lt;h:commandButton value=\"Guess\" action=\"guess\"/&gt; &lt;s:button value=\"Cheat\" view=\"/confirm.jspx\"/&gt; &lt;s:button value=\"Give up\" action=\"giveup\"/&gt; &lt;/div&gt; &lt;div&gt; &lt;h:message for=\"inputGuess\" style=\"color: red\"/&gt; &lt;/div&gt; &lt;/h:form&gt; &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; &lt;/jsp:root&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Note that the command button names the <literal>guess</literal> transition instead of calling an action directly."
 msgstr ""
 
@@ -1039,11 +929,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"JSP\">&lt;jsp:root xmlns:jsp=\"http://java.sun.com/JSP/Page\" xmlns:h=\"http://java.sun.com/jsf/html\" xmlns:f=\"http://java.sun.com/jsf/core\" xmlns=\"http://www.w3.org/1999/xhtml\" version=\"2.0\"&gt; &lt;jsp:output doctype-root-element=\"html\" doctype-public=\"-//W3C//DTD XHTML 1.0 Transitional//EN\" doctype-system=\"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"/&gt; &lt;jsp:directive.page contentType=\"text/html\"/&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;You won!&lt;/title&gt; &lt;link href=\"niceforms.css\" rel=\"stylesheet\" type=\"text/css\" /&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;You won!&lt;/h1&gt; &lt;f:view&gt; Yes, the answer was &lt;h:outputText value=\"#{numberGuess.currentGuess}\" /&gt;. It took you &lt;h:outputText value=\"#{numberGuess.guessCount}\" /&gt; guesses. &lt;h:outputText value=\"But you cheated, so it doesn't count!\" rendered=\"#{numberGuess.cheat}\"/&gt; Would you like to &lt;a href=\"numberGuess!
 .seam\"&gt;play again&lt;/a&gt;? &lt;/f:view&gt; &lt;/body&gt; &lt;/html&gt; &lt;/jsp:root&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "The <literal>lose.jspx</literal> is very similar, so we have not included it here."
 msgstr ""
 
@@ -1057,11 +942,6 @@
 msgid "NumberGuess.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>@Name(\"numberGuess\") @Scope(ScopeType.CONVERSATION) public class NumberGuess implements Serializable { private int randomNumber; private Integer currentGuess; private int biggest; private int smallest; private int guessCount; private int maxGuesses; private boolean cheated; @Create public void begin() { randomNumber = new Random().nextInt(100); guessCount = 0; biggest = 100; smallest = 1; } public void setCurrentGuess(Integer guess) { this.currentGuess = guess; } public Integer getCurrentGuess() { return currentGuess; } public void guess() { if (currentGuess&gt;randomNumber) { biggest = currentGuess - 1; } if (currentGuess&lt;randomNumber) { smallest = currentGuess + 1; } guessCount ++; } public boolean isCorrectGuess() { return currentGuess==randomNumber; } public int getBiggest() { return biggest; } public int getSmallest() { return smallest; } public int getGuessCount() { return guessCount; } public boolean isLastGuess() { return guessCount==maxG!
 uesses; } public int getRemainingGuesses() { return maxGuesses-guessCount; } public void setMaxGuesses(int maxGuesses) { this.maxGuesses = maxGuesses; } public int getMaxGuesses() { return maxGuesses; } public int getRandomNumber() { return randomNumber; } public void cheated() { cheated = true; } public boolean isCheat() { return cheated; } public List&lt;Integer&gt; getPossibilities() { List&lt;Integer&gt; result = new ArrayList&lt;Integer&gt;(); for(int i=smallest; i&lt;=biggest; i++) result.add(i); return result; } } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "NumberGuess.java Explanatory Notes"
@@ -1072,14 +952,9 @@
 msgid "The first time a JSP page asks for a <literal>numberGuess</literal> component, Seam creates a new component, and the <literal>@Create</literal> method will be invoked, allowing the component to initialize itself."
 msgstr ""
 
-#. Tag: orderedlist
-#, no-c-format
-msgid "<!-- </programlistingco> --> <!-- </example> -->"
-msgstr ""
-
 #. Tag: para
 #, no-c-format
-msgid "The <literal>pages.xml</literal> file starts a Seam <emphasis>conversation</emphasis>, and specifies the pageflow definition to use for the conversation's page flow. <!-- #retag: (More information on conversations is available in &section;, but for the moment a thorough understanding is not necessary.) -->"
+msgid "The <literal>pages.xml</literal> file starts a Seam <emphasis>conversation</emphasis>, and specifies the pageflow definition to use for the conversation's page flow."
 msgstr ""
 
 #. Tag: title
@@ -1089,11 +964,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting role=\"XML\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;pages xmlns=\"http://jboss.com/products/seam/pages\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd\"&gt; &lt;page view-id=\"/numberGuess.jspx\"&gt; &lt;begin-conversation join=\"true\" pageflow=\"numberGuess\"/&gt; &lt;/page&gt; &lt;/pages&gt; </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "This component is pure business logic. Since it requires no information about the user interaction flow, it is potentially more reuseable."
 msgstr ""
 
@@ -1322,11 +1192,6 @@
 msgid "HotelSearchingAction.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<!-- <programlisting language=\"java\"><xi:include href=\"extras/booking.java\" parse=\"text\" xmlns:xi=\"http://www.w3.org/2001/XInclude\"></xi:include></programlisting> </example> --> <programlisting>@Stateful @Name(\"hotelSearch\") @Scope(ScopeType.SESSION) @Restrict(\"#{identity.loggedIn}\") public class HotelSearchingAction implements HotelSearching { @PersistenceContext private EntityManager em; private String searchString; private int pageSize = 10; private int page; @DataModel private List&lt;Hotel&gt; hotels; public void find() { page = 0; queryHotels(); } public void nextPage() { page++; queryHotels(); } private void queryHotels() { hotels = em.createQuery( \"select h from Hotel h where lower(h.name) like #{pattern}\" + \"or lower(h.city) like #{pattern} \" + \"or lower(h.zip) like #{pattern} \" + \"or lower(h.address) like #{pattern}\") .setMaxResults(pageSize) .setFirstResult( page * pageSize ) .getResultList(); } public boolean isNextPageAvailable() { re!
 turn hotels!=null &amp;&amp; hotels.size()==pageSize; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } @Factory(value=\"pattern\", scope=ScopeType.EVENT) public String getSearchPattern() { return searchString==null ? \"%\" : '%' + searchString.toLowerCase().replace('*', '%') + '%'; } public String getSearchString() { return searchString; } public void setSearchString(String searchString) { this.searchString = searchString; } @Remove public void destroy() {} } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "HotelSearchingAction.java Explanatory Notes"
@@ -1339,7 +1204,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "The <literal>@Restrict</literal> annotation applies a security restriction to the component. It restricts access to the component, allowing only logged-in users. The <!-- #retag: xref plz -->security chapter explains more about security in Seam."
+msgid "The <literal>@Restrict</literal> annotation applies a security restriction to the component. It restricts access to the component, allowing only logged-in users. The security chapter explains more about security in Seam."
 msgstr ""
 
 #. Tag: para
@@ -1362,11 +1227,6 @@
 msgid "main.xhtml Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>&lt;div class=\"section\"&gt; &lt;span class=\"errors\"&gt; &lt;h:messages globalOnly=\"true\"/&gt; &lt;/span&gt; &lt;h1&gt;Search Hotels&lt;/h1&gt; &lt;h:form id=\"searchCriteria\"&gt; &lt;fieldset&gt; &lt;h:inputText id=\"searchString\" value=\"#{hotelSearch.searchString}\" style=\"width: 165px;\"&gt; &lt;a:support event=\"onkeyup\" actionListener=\"#{hotelSearch.find}\" reRender=\"searchResults\" /&gt; &lt;/h:inputText&gt; &#160; &lt;a:commandButton id=\"findHotels\" value=\"Find Hotels\" action=\"#{hotelSearch.find}\" reRender=\"searchResults\"/&gt; &#160; &lt;a:status&gt; &lt;f:facet name=\"start\"&gt; &lt;h:graphicImage value=\"/img/spinner.gif\"/&gt; &lt;/f:facet&gt; &lt;/a:status&gt; &lt;br/&gt; &lt;h:outputLabel for=\"pageSize\"&gt;Maximum results:&lt;/h:outputLabel&gt;&#160; &lt;h:selectOneMenu value=\"#{hotelSearch.pageSize}\" id=\"pageSize\"&gt; &lt;f:selectItem itemLabel=\"5\" itemValue=\"5\"/&gt; &lt;f:selectItem itemLabel=\"10\" itemVal!
 ue=\"10\"/&gt; &lt;f:selectItem itemLabel=\"20\" itemValue=\"20\"/&gt; &lt;/h:selectOneMenu&gt; &lt;/fieldset&gt; &lt;/h:form&gt; &lt;/div&gt; &lt;a:outputPanel id=\"searchResults\"&gt; &lt;div class=\"section\"&gt; &lt;h:outputText value=\"No Hotels Found\" rendered=\"#{hotels != null and hotels.rowCount==0}\"/&gt; &lt;h:dataTable id=\"hotels\" value=\"#{hotels}\" var=\"hot\" rendered=\"#{hotels.rowCount&gt;0}\"&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Name&lt;/f:facet&gt; #{hot.name} &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Address&lt;/f:facet&gt; #{hot.address} &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;City, State&lt;/f:facet&gt; #{hot.city}, #{hot.state}, #{hot.country} &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Zip&lt;/f:facet&gt; #{hot.zip} &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Action&lt;/f:facet&gt; &lt;s:link id=\"viewHotel\" value=\"View Hotel\" action=\"#!
 {hotelBooking.selectHotel(hot)}\"/&gt; &lt;/h:column&gt; &lt;/!
 h:dataTa
ble&gt; &lt;s:link value=\"More results\" action=\"#{hotelSearch.nextPage}\" rendered=\"#{hotelSearch.nextPageAvailable}\"/&gt; &lt;/div&gt; &lt;/a:outputPanel&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "main.xhtml Explanatory Notes"
@@ -1397,11 +1257,6 @@
 msgid "Navigation rules can be found in <literal>WEB-INF/pages.xml</literal>. These are discussed further in <xref linkend=\"events.pageaction.navigation\" />."
 msgstr ""
 
-#. Tag: orderedlist
-#, no-c-format
-msgid "<!-- </programlistingco> -->"
-msgstr ""
-
 #. Tag: para
 #, no-c-format
 msgid "This page displays search results dynamically as the user types, and passes a selected hotel to the <literal>selectHotel()</literal> method of <literal>HotelBookingAction</literal>, where the real work occurs."
@@ -1417,11 +1272,6 @@
 msgid "HotelBookingAction.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>@Stateful @Name(\"hotelBooking\") @Restrict(\"#{identity.loggedIn}\") public class HotelBookingAction implements HotelBooking { @PersistenceContext(type=EXTENDED) private EntityManager em; @In private User user; @In(required=false) @Out private Hotel hotel; @In(required=false) @Out(required=false) private Booking booking; @In private FacesMessages facesMessages; @In private Events events; @Logger private Log log; private boolean bookingValid; @Begin public void selectHotel(Hotel selectedHotel) { hotel = em.merge(selectedHotel); } public void bookHotel() { booking = new Booking(hotel, user); Calendar calendar = Calendar.getInstance(); booking.setCheckinDate( calendar.getTime() ); calendar.add(Calendar.DAY_OF_MONTH, 1); booking.setCheckoutDate( calendar.getTime() ); } public void setBookingDetails() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -1); if ( booking.getCheckinDate().before( calendar.getTime() ) ) { facesM!
 essages.addToControl(\"checkinDate\", \"Check in date must be a future date\"); bookingValid=false; } else if (!booking.getCheckinDate().before(booking.getCheckoutDate())) { facesMessages.addToControl(\"checkoutDate\", \"Check out date must be later than check in date\"); bookingValid=false; } else { bookingValid=true; } } public boolean isBookingValid() { return bookingValid; } @End public void confirm() { em.persist(booking); facesMessages.add(\"Thank you, #{user.name}, \" + \"your confimation number \" + \"for #{hotel.name} is #{booki g.id}\"); log.info(\"New booking: #{booking.id} for #{user.username}\"); events.raiseTransactionSuccessEvent(\"bookingConfirmed\"); } @End public void cancel() {} @Remove public void destroy() {} </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "HotelBookingAction.java Explanatory Notes"
@@ -1522,11 +1372,6 @@
 msgid "RoomPreferenceAction.java Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>@Stateful @Name(\"roomPreference\") @Restrict(\"#{identity.loggedIn}\") public class RoomPreferenceAction implements RoomPreference { @Logger private Log log; @In private Hotel hotel; @In private Booking booking; @DataModel(value=\"availableRooms\") private List&lt;Room&gt; availableRooms; @DataModelSelection(value=\"availableRooms\") private Room roomSelection; @In(required=false, value=\"roomSelection\") @Out(required=false, value=\"roomSelection\") private Room room; @Factory(\"availableRooms\") public void loadAvailableRooms() { availableRooms = hotel.getAvailableRooms(booking.getCheckinDate(), booking.getCheckoutDate()); log.info(\"Retrieved #0 available rooms\", availableRooms.size()); } public BigDecimal getExpectedPrice() { log.info(\"Retrieving price for room #0\", roomSelection.getName()); return booking.getTotal(roomSelection); } @Begin(nested=true) public String selectPreference() { log.info(\"Room selected\"); this.room = this.roomSelecti!
 on; return \"payment\"; } public String requestConfirmation() { // all validations are performed through the s:validateAll, // so checks are already performed log.info(\"Request confirmation from user\"); return \"confirm\"; } @End(beforeRedirect=true) public String cancel() { log.info(\"ending conversation\"); return \"cancel\"; } @Destroy @Remove public void destroy() {} } </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "RoomPreferenceAction.java Explanatory Notes"
@@ -1562,11 +1407,6 @@
 msgid "rooms.xhtml Example"
 msgstr ""
 
-#. Tag: para
-#, no-c-format
-msgid "<programlisting>&lt;div class=\"section\"&gt; &lt;h1&gt;Room Preference&lt;/h1&gt; &lt;/div&gt; &lt;div class=\"section\"&gt; &lt;h:form id=\"room_selections_form\"&gt; &lt;div class=\"section\"&gt; &lt;h:outputText styleClass=\"output\" value=\"No rooms available for the dates selected: \" rendered=\"#{availableRooms != null and availableRooms.rowCount == 0}\"/&gt; &lt;h:outputText styleClass=\"output\" value=\"Rooms available for the dates selected: \" rendered=\"#{availableRooms != null and availableRooms.rowCount &gt; 0}\"/&gt; &lt;h:outputText styleClass=\"output\" value=\"#{booking.checkinDate}\"/&gt; - &lt;h:outputText styleClass=\"output\" value=\"#{booking.checkoutDate}\"/&gt; &lt;br/&gt;&lt;br/&gt; &lt;h:dataTable value=\"#{availableRooms}\" var=\"room\" rendered=\"#{availableRooms.rowCount &gt; 0}\"&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Name&lt;/f:facet&gt; #{room.name} &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Descrip!
 tion&lt;/f:facet&gt; #{room.description} &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Per Night&lt;/f:facet&gt; &lt;h:outputText value=\"#{room.price}\"&gt; &lt;f:convertNumber type=\"currency\" currencySymbol=\"$\"/&gt; &lt;/h:outputText&gt; &lt;/h:column&gt; &lt;h:column&gt; &lt;f:facet name=\"header\"&gt;Action&lt;/f:facet&gt; &lt;h:commandLink id=\"selectRoomPreference\" action=\"#{roomPreference.selectPreference}\"&gt;Select &lt;/h:commandLink&gt; &lt;/h:column&gt; &lt;/h:dataTable&gt; &lt;/div&gt; &lt;div class=\"entry\"&gt; &lt;div class=\"label\"&gt;&#160;&lt;/div&gt; &lt;div class=\"input\"&gt; &lt;s:button id=\"cancel\" value=\"Revise Dates\" view=\"/book.xhtml\"/&gt; &lt;/div&gt; &lt;/div&gt; &lt;/h:form&gt; &lt;/div&gt; </programlisting>"
-msgstr ""
-
 #. Tag: title
 #, no-c-format
 msgid "rooms.xhtml Explanatory Notes"
@@ -1594,11 +1434,6 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<programlisting>@Stateful @Name(\"hotelBooking\") @Restrict(\"#{identity.loggedIn}\") public class HotelBookingAction implements HotelBooking { @PersistenceContext(type=EXTENDED) private EntityManager em; @In private User user; @In(required=false) @Out private Hotel hotel; @In(required=false) @Out(required=false) private Booking booking; @In(required=false) private Room roomSelection; @In private FacesMessages facesMessages; @In private Events events; @Logger private Log log; @Begin public void selectHotel(Hotel selectedHotel) { log.info(\"Selected hotel #0\", selectedHotel.getName()); hotel = em.merge(selectedHotel); } public String setBookingDates() { // the result will indicate whether or not to begin the nested conversation // as well as the navigation. if a null result is returned, the nested // conversation will not begin, and the user will be returned to the current // page to fix validation issues String result = null; Calendar calendar = Calendar.getInstance!
 (); calendar.add(Calendar.DAY_OF_MONTH, -1); // validate what we have received from the user so far if ( booking.getCheckinDate().before( calendar.getTime() ) ) { facesMessages.addToControl(\"checkinDate\", \"Check in date must be a future date\"); } else if (!booking.getCheckinDate().before(booking.getCheckoutDate())) { facesMessages.addToControl(\"checkoutDate\", \"Check out date must be later than check in date\"); } else { result = \"rooms\"; } return result; } public void bookHotel() { booking = new Booking(hotel, user); Calendar calendar = Calendar.getInstance(); booking.setCheckinDate( calendar.getTime() ); calendar.add(Calendar.DAY_OF_MONTH, 1); booking.setCheckoutDate( calendar.getTime() ); } @End(root=true) public void confirm() { // on confirmation we set the room preference in the booking. // the room preference will be injected based on the nested // conversation we are in. booking.setRoomPreference(roomSelection); em.persist(booking); facesMessages.add(\"Thank!
  you, #{user.name}, your confimation number \" + \"for #{hotel!
 .name} i
s #{booking.id}\"); log.info(\"New booking: #{booking.id} for #{user.username}\"); events.raiseTransactionSuccessEvent(\"bookingConfirmed\"); } @End(root=true, beforeRedirect=true) public void cancel() {} @Destroy @Remove public void destroy() {} } </programlisting>"
-msgstr ""
-
-#. Tag: para
-#, no-c-format
 msgid "Annotating an action with <literal>@End(root=true)</literal> ends the root conversation, which effectively destroys the entire conversation stack. When any conversation is ended, conversations nested within it are ended as well. Since the root is the original conversation, this is a simple way to destroy and release all state associated with a workspace once the booking is confirmed."
 msgstr ""
 
@@ -1649,7 +1484,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Seam makes it easy to implement applications which keep state on the server side. However, server-side state is not always appropriate, particularly for functionality that serves up content. For this, application state is often stored as part of the URL, so that any page can be accessed through a bookmark at any time. The blog example shows how to implement an application that supports bookmarking throughout, even on the search results page. This example demonstrates Seam's management of application state in the URL<!-- #modify: as well as, hypothetically, other stuff - original cut off mid-sentence -->."
+msgid "Seam makes it easy to implement applications which keep state on the server side. However, server-side state is not always appropriate, particularly for functionality that serves up content. For this, application state is often stored as part of the URL, so that any page can be accessed through a bookmark at any time. The blog example shows how to implement an application that supports bookmarking throughout, even on the search results page. This example demonstrates Seam's management of application state in the URL."
 msgstr ""
 
 #. Tag: para

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Validation.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Validation.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Validation.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:17\n"
+"PO-Revision-Date: 2010-04-07T07:45:17\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -69,7 +69,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Inject this value into the message string with the placeholder {0} (the first and only parameter passed to a JSF message for a Hiberate Validator restriction). See the internationalization section<!-- #modify: xrefme! --> for more information on where to define these messages."
+msgid "Inject this value into the message string with the placeholder {0} (the first and only parameter passed to a JSF message for a Hiberate Validator restriction). See the internationalization section for more information on where to define these messages."
 msgstr ""
 
 #. Tag: para

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Weblogic.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Weblogic.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Weblogic.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:17\n"
+"PO-Revision-Date: 2010-04-07T07:45:17\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -199,7 +199,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You may see <literal>NoClassDefFound</literal> exceptions during redeployment when you use the <literal>/autodeploy</literal> directory as described in this chapter. If this occurs, restart the Weblogic server. If you still see the exception, remove the automatically deployed EAR or WAR files before restarting the server and redeploying. <!-- #modify: mention possible bug report options? no? -->"
+msgid "You may see <literal>NoClassDefFound</literal> exceptions during redeployment when you use the <literal>/autodeploy</literal> directory as described in this chapter. If this occurs, restart the Weblogic server. If you still see the exception, remove the automatically deployed EAR or WAR files before restarting the server and redeploying."
 msgstr ""
 
 #. Tag: title
@@ -564,7 +564,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Because we created our WebLogic domain in development mode, we can deploy the application by adding the <filename>EAR</filename> archive to the domain's <literal>autodeploy</literal> directory. <programlisting> cp ./dist/jboss-seam-jee5.ear $BEA_HOME/user_projects/domains/seam_examples/autodeploy </programlisting>"
+msgid "Because we created our WebLogic domain in development mode, we can deploy the application by adding the <filename>EAR</filename> archive to the domain's <literal>autodeploy</literal> directory."
 msgstr ""
 
 #. Tag: para
@@ -634,7 +634,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Building the example only requires the correct Ant command: <programlisting>ant weblogic10 </programlisting>. This creates a container-specific distribution and exploded archive directories."
+msgid "Building the example only requires the correct Ant command:"
 msgstr ""
 
 #. Tag: title
@@ -864,7 +864,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You will need to create and populate this file by this file and populate it with the following: <!-- #modify: please check, this step originally referred readers elsewhere without clarifying what to include... -->"
+msgid "You will need to create and populate this file by this file and populate it with the following:"
 msgstr ""
 
 #. Tag: term

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Webservices.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Webservices.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Webservices.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:17\n"
+"PO-Revision-Date: 2010-04-07T07:45:17\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Websphere.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Websphere.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Websphere.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:17\n"
+"PO-Revision-Date: 2010-04-07T07:45:17\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -104,7 +104,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "You will also need to alter the EJB reference in <filename>web.xml</filename> so that WebSphere AS can automatically bind EJB3 references in the web module to EJB3 beans in the EAR module. Replace all <literal>/local</literal> strings in <literal>ejb-local-refs</literal> with the values shown here: <!-- #modify: can we get a before/after shot of the code, here? I thought we were removing an appended \"/local\", but from this programlisting has <local> tags, which could be confusing. -->"
+msgid "You will also need to alter the EJB reference in <filename>web.xml</filename> so that WebSphere AS can automatically bind EJB3 references in the web module to EJB3 beans in the EAR module. Replace all <literal>/local</literal> strings in <literal>ejb-local-refs</literal> with the values shown here:"
 msgstr ""
 
 #. Tag: para
@@ -169,7 +169,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Copy this file from the JPA example so that changes to the <literal>ID</literal> column are supported. (Column support is the only difference between the files.) Use the following command: <programlisting> cp ../../jpa/resources-websphere7/import.sql ./resources </programlisting>"
+msgid "Copy this file from the JPA example so that changes to the <literal>ID</literal> column are supported. (Column support is the only difference between the files.) Use the following command:"
 msgstr ""
 
 #. Tag: title
@@ -219,11 +219,16 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Log in to the administration console through <programlisting>https://localhost:9043/admin </programlisting> or <programlisting>http://localhost:9060/admin </programlisting> ."
+msgid "Log in to the administration console through"
 msgstr ""
 
 #. Tag: para
 #, no-c-format
+msgid "or"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
 msgid "Access <guimenu>Websphere enterprise applications</guimenu> under the left hand side menu: <guimenu>Applications</guimenu>→<guimenu>Application Type</guimenu>→<guimenu>Websphere enterprise applications</guimenu>."
 msgstr ""
 
@@ -464,7 +469,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>META-INF/ejb-jar.xml</literal> —in <literal>ejb-ref-name</literal>, the <literal>/local</literal> string has been removed from <literal>jboss-seam-jee5/AuthenticatorAction</literal>.<!-- #modify: Check this, please; the original was incoherent. -->"
+msgid "<literal>META-INF/ejb-jar.xml</literal> —in <literal>ejb-ref-name</literal>, the <literal>/local</literal> string has been removed from <literal>jboss-seam-jee5/AuthenticatorAction</literal>."
 msgstr ""
 
 #. Tag: para
@@ -474,7 +479,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "<literal>import.sql</literal> —this file cannot populate the <literal>ID</literal> column when the correct dialect and Derby database are used for this application. This file has been removed. <!-- #modify: Again, please check. -->"
+msgid "<literal>import.sql</literal> —this file cannot populate the <literal>ID</literal> column when the correct dialect and Derby database are used for this application. This file has been removed."
 msgstr ""
 
 #. Tag: para
@@ -624,7 +629,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Required for database support. This file can be copied from the <literal>JPA</literal> example into the <literal>websphere_example/src</literal> directory. <programlisting>cp $SEAM/examples/jpa/src/GlassfishDerbyDialect.java ./src </programlisting>"
+msgid "Required for database support. This file can be copied from the <literal>JPA</literal> example into the <literal>websphere_example/src</literal> directory."
 msgstr ""
 
 #. Tag: term
@@ -649,7 +654,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Enable container-managed transaction integration by adding the <literal><transaction:ejb-transaction></transaction:ejb-transaction> </literal> component and its namespace declaration <literal>xmlns:transaction=\"http://jboss.com/products/seam/transaction\"</literal>."
+msgid "Enable container-managed transaction integration by adding the <literal>&lt;transaction:ejb-transaction /&gt; </literal> component and its namespace declaration <literal>xmlns:transaction=\"http://jboss.com/products/seam/transaction\"</literal>."
 msgstr ""
 
 #. Tag: para
@@ -664,7 +669,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid "Remove the <literal>/local</literal> string in <literal>ejb-ref-name</literal> to mark your EJBs for binding by WebSphere AS. <!-- #modify: Please check; previous version was incoherent. -->"
+msgid "Remove the <literal>/local</literal> string in <literal>ejb-ref-name</literal> to mark your EJBs for binding by WebSphere AS."
 msgstr ""
 
 #. Tag: title

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Wicket.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Wicket.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Wicket.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:17\n"
+"PO-Revision-Date: 2010-04-07T07:45:17\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"

Modified: projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Xml.pot
===================================================================
--- projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Xml.pot	2010-04-07 06:15:37 UTC (rev 103616)
+++ projects/docs/enterprise/5.0/Seam_Reference_Guide/pot/Xml.pot	2010-04-07 07:48:22 UTC (rev 103617)
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0\n"
-"POT-Creation-Date: 2010-02-01T03:07:55\n"
-"PO-Revision-Date: 2010-02-01T03:07:55\n"
+"POT-Creation-Date: 2010-04-07T07:45:17\n"
+"PO-Revision-Date: 2010-04-07T07:45:17\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"




More information about the jboss-cvs-commits mailing list