[seam-commits] Seam SVN: r15057 - in branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US: images and 1 other directory.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon Aug 20 06:02:49 EDT 2012


Author: manaRH
Date: 2012-08-20 06:02:48 -0400 (Mon, 20 Aug 2012)
New Revision: 15057

Added:
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/ee6.png
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/hibernate-ee6.png
Modified:
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Dependencies.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jbpm.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Mail.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Testing.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml
   branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/architecture.png
Log:
JBSEAM-5008

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -8,12 +8,12 @@
         off by the following sections; you'll never need to type any of this stuff yourself, since you can just use 
         seam-gen to start your application or you can copy and paste from the example applications! </para>
 
-    <sect1>
+    <section>
         <title>Basic Seam configuration</title>
 
         <para> First, let's look at the basic configuration that is needed whenever we use Seam with JSF. </para>
 
-        <sect2>
+        <section>
             <title>Integrating Seam with JSF and your servlet container</title>
 
             <para> Of course, you need a faces servlet! </para>
@@ -57,7 +57,7 @@
                 <env-entry>
                     <env-entry-name>com.sun.faces.ClientStateSavingPassword</env-entry-name>
                     <env-entry-type>java.lang.String</env-entry-type>
-                    <env-entry-value>something</env-entry-value>
+                    <env-entry-value>INSERT_YOUR_PASSWORD</env-entry-value>
                 </env-entry>]]></programlisting>
                 </para>
             </warning>
@@ -79,9 +79,9 @@
     <param-name>com.sun.faces.serializeServerState</param-name>
     <param-value>true</param-value>
 </context-param>]]></programlisting>
-        </sect2>
+        </section>
 
-        <sect2>
+        <section>
             <title>Seam Resource Servlet</title>
 
             <para> The Seam Resource Servlet provides resources used by Seam Remoting, captchas (see the security
@@ -97,9 +97,9 @@
   <servlet-name>Seam Resource Servlet</servlet-name>
   <url-pattern>/seam/resource/*</url-pattern>
 </servlet-mapping>]]></programlisting>
-        </sect2>
+        </section>
 
-        <sect2>
+        <section>
             <title>Seam servlet filters</title>
 
             <para> Seam doesn't need any servlet filters for basic operation. However, there are several features which
@@ -405,9 +405,9 @@
                         (<literal>@Filter(within="org.jboss.seam.web.ajax4jsfFilter")</literal>). </para>
 
             </sect3>
-        </sect2>
+        </section>
 
-        <sect2 id="config.integration.ejb.container">
+        <section id="config.integration.ejb.container">
             <title>Integrating Seam with your EJB container</title>
 
             <para> In a Seam application, EJB components have a certain duality, as they are managed by both the EJB
@@ -594,9 +594,9 @@
             
             <programlisting role="XML"><![CDATA[<transaction:ejb-transaction/>]]></programlisting>
 
-        </sect2>
+        </section>
 
-        <sect2>
+        <section>
             <title>Don't forget!</title>
 
             <para> There is one final item you need to know about. You must place a <literal>seam.properties</literal>,
@@ -616,11 +616,11 @@
                 component explicitly in <literal>components.xml</literal>, just like some other competing frameworks do!
                 I think you'll like our way better. </para>
 
-        </sect2>
+        </section>
 
-    </sect1>
+    </section>
     
-    <sect1 id="alt-jpa-providers">
+    <section id="alt-jpa-providers">
         <title>Using Alternate JPA Providers</title>
         
         <para> Seam comes packaged and configured with Hibernate as the default JPA provider.
@@ -662,23 +662,23 @@
             provider needs.  Don't forget to package your new provider's jar files in the 
             application if they are needed.
         </para>
-    </sect1>
+    </section>
 
-    <sect1>
+    <section>
         <title>Configuring Seam in Java EE 6</title>
 
         <mediaobject>
             <imageobject role="fo">
-                <imagedata fileref="images/ee5.png" align="center"/>
+                <imagedata fileref="images/ee6.png" align="center"/>
             </imageobject>
             <imageobject role="html">
-                <imagedata fileref="images/ee5.png" align="center"/>
+                <imagedata fileref="images/ee6.png" align="center"/>
             </imageobject>
         </mediaobject>
 
         <para> If you're running in a Java EE environment, this is all the configuration required to start using Seam! </para>
 
-        <sect2>
+        <section>
             <title>Packaging</title>
 
             <para> Once you've packaged all this stuff together into an EAR, the archive structure will look something
@@ -691,6 +691,7 @@
     META-INF/
         MANIFEST.MF
         application.xml
+        jboss-deployment-structure.xml
     my-application.war/
         META-INF/
             MANIFEST.MF
@@ -734,31 +735,35 @@
                     <literal>jboss-seam-debug.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. </para>
 
             <para> Seam ships with several example applications that are deployable in any Java EE container that
-                supports EJB 3.0. </para>
+                supports EJB 3.1. </para>
+                
+            <para><filename>faces-config.xml</filename> is not required in JSF 2, but if you want to set up something non-default 
+            you need to place it in <filename>WAR/WEB-INF</filename>.</para>
 
             <para> I really wish that was all there was to say on the topic of configuration but unfortunately we're
                 only about a third of the way there. If you're too overwhelmed by all this tedious configuration stuff,
                 feel free to skip over the rest of this section and come back to it later. </para>
+                
 
-        </sect2>
+        </section>
 
-    </sect1>
+    </section>
 
-    <sect1>
-        <title>Configuring Seam in Java EE</title>
+    <section>
+        <title>Configuring Seam without EJB</title>
 
-        <para> Seam is useful even if you're not yet ready to take the plunge into EJB 3.0. In this case you would use
-            Hibernate4 or JPA instead of EJB 3.0 persistence, and plain JavaBeans instead of session beans. You'll miss
-            out on some of the nice features of session beans but it will be very easy to migrate to EJB 3.0 when you're
+        <para> Seam is useful even if you're not yet ready to take the plunge into EJB 3.1. In this case you would use
+            Hibernate 4 instead of EJB 3.1 persistence, and plain JavaBeans instead of session beans. You'll miss
+            out on some of the nice features of session beans but it will be very easy to migrate to EJB 3.1 when you're
             ready and, in the meantime, you'll be able to take advantage of Seam's unique declarative state management
             architecture. </para>
 
         <mediaobject>
             <imageobject role="fo">
-                <imagedata fileref="images/hibernate-ee.png" align="center"/>
+                <imagedata fileref="images/hibernate-ee6.png" align="center"/>
             </imageobject>
             <imageobject role="html">
-                <imagedata fileref="images/hibernate-ee.png" align="center"/>
+                <imagedata fileref="images/hibernate-ee6.png" align="center"/>
             </imageobject>
         </mediaobject>
 
@@ -772,7 +777,7 @@
             JavaBeans instead of EJB, and another version that uses JPA and JavaBeans. These example applications are
             ready to deploy into any Java EE application server. </para>
 
-        <sect2>
+        <section>
             <title>Boostrapping Hibernate in Seam</title>
 
             <para> Seam will bootstrap a Hibernate <literal>SessionFactory</literal> from your
@@ -786,9 +791,9 @@
             <programlisting role="XML"><![CDATA[<persistence:managed-hibernate-session name="hibernateSession"
                             session-factory="#{hibernateSessionFactory}"/>]]></programlisting>
 
-        </sect2>
+        </section>
 
-        <sect2>
+        <section>
             <title>Boostrapping JPA in Seam</title>
 
             <para> Seam will bootstrap a JPA <literal>EntityManagerFactory</literal> from your
@@ -802,9 +807,9 @@
             <programlisting role="XML"><![CDATA[<persistence:managed-persistence-context name="entityManager"
                             entity-manager-factory="#{entityManagerFactory}"/>]]></programlisting>
 
-        </sect2>
+        </section>
 
-        <sect2>
+        <section>
             <title>Packaging</title>
 
             <para> We can package our application as a WAR, in the following structure: </para>
@@ -812,6 +817,7 @@
             <programlisting><![CDATA[my-application.war/
     META-INF/
         MANIFEST.MF
+        jboss-deployment-structure.xml
     WEB-INF/
         web.xml
         components.xml
@@ -843,10 +849,10 @@
             <para> If we want to deploy Hibernate in a non-EE environment like Tomcat or TestNG, we need to do a little
                 bit more work. </para>
 
-        </sect2>
-    </sect1>
+        </section>
+    </section>
 
-    <sect1>
+    <section>
         <title>Configuring Seam in Java SE</title>
 
         <para> It is possible to use Seam completely outside of an EE environment. In this case, you need to tell Seam
@@ -861,9 +867,9 @@
         
         <para> Of course, you'll also need to define a datasource.</para>
                 
-    </sect1>
+    </section>
 
-    <sect1>
+    <section>
         <title>Configuring jBPM in Seam</title>
         <para> Seam's jBPM integration is not installed by default, so you'll need to enable jBPM by installing a
             built-in component. You'll also need to explicitly list your process and pageflow definitions. In
@@ -908,7 +914,7 @@
         <para> The most important thing to notice here is that jBPM transaction control is disabled. Seam or EJB3 should
             control the JTA transactions. </para>
 
-        <sect2>
+        <section>
             <title>Packaging</title>
 
             <para> There is not yet any well-defined packaging format for jBPM configuration and process/pageflow
@@ -924,6 +930,7 @@
     META-INF/
         MANIFEST.MF
         application.xml
+        jboss-deployment-structure.xml
     my-application.war/
         META-INF/
             MANIFEST.MF
@@ -957,11 +964,36 @@
     approveDocument.jpdl.xml
     documentLifecycle.jpdl.xml]]></programlisting>
 
-        </sect2>
+        </section>
 
-    </sect1>
+    </section>
+    
+    <section>
+        <title>Deployment in JBoss AS 7</title>
+        
+        <para>JBoss AS 7 is default deployment target for all examples in Seam 2.3 distribution.</para>
+        
+        <para>Seam 2.3 requires to have setup special deployment metada file <filename>jboss-deployment-structure.xml</filename>
+         for correct initialization. Minimal content for EAR is: 
+        <example>
+            <title>jboss-deployment-structure.xml</title>
+        <programlisting><![CDATA[<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+  <deployment>
+      <dependencies>
+          <module name="org.dom4j" export="true"/>
+          <module name="org.apache.commons.collections" export="true"/>
+          <module name="javax.faces.api" export="true"/>
+        </dependencies>
+  </deployment>  
+</jboss-deployment-structure>]]></programlisting> 
+    </example>
+    
+    More details about new AS 7 classloading can be found at 
+    <ulink url="https://docs.jboss.org/author/display/AS7/Developer+Guide#DeveloperGuide-ClassloadinginJBossAS7">https://docs.jboss.org/author/display/AS7/Developer+Guide#DeveloperGuide-ClassloadinginJBossAS7</ulink> 
+</para>
+    </section>
 
-    <sect1>
+    <section>
         <title>Configuring SFSB and Session Timeouts in JBoss AS 7</title>
 
         <para> It is very important that the timeout for Stateful Session Beans is set higher than the timeout for HTTP
@@ -994,9 +1026,9 @@
             <session-timeout>30</session-timeout>
         </session-config>]]></programlisting>
 
-    </sect1>
+    </section>
     
-    <sect1>
+    <section>
         <title>Running Seam in a Portlet</title>
 
         <para>
@@ -1007,9 +1039,9 @@
            for more.
         </para>
 
-    </sect1>
+    </section>
     
-        <sect1>
+        <section>
         <title>Deploying custom resources</title>
         
         <para>
@@ -1139,6 +1171,6 @@
    }
 }]]></programlisting>
 
-    </sect1>
+    </section>
 
 </chapter>

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Dependencies.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Dependencies.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Dependencies.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -10,16 +10,16 @@
     <para>
       Seam does not work with JDK 1.4 and requires JDK 5 or above as it uses 
       annotations and other JDK 5.0 features. Seam has been thoroughly tested 
-      using Sun's JDKs.  However there are no known issues specific to Seam with
+      using Oracle's JDKs and OpenJDKs.  However there are no known issues specific to Seam with
       other JDKs.
     </para>
     
     <section id="jdk6_dependencies">
-        <title>Sun's JDK 6 Considerations</title>
+        <title>Oracle's JDK 6 Considerations</title>
         <para>
-            Earlier versions of Sun's JDK 6 contained an incompatible 
+            Earlier versions of Oracle's JDK 6 contained an incompatible 
             version of JAXB and required overriding it using the "endorsed" 
-            directory.  Sun's JDK6 Update 4 release upgraded to JAXB 2.1 and 
+            directory.  Oracle's JDK6 Update 4 release upgraded to JAXB 2.1 and 
             removed this requirement.  When building, testing, or executing be
             sure to use this version or higher. 
         </para>        
@@ -410,7 +410,7 @@
             
             <row>
               <entry>
-                <para><literal>mail-ra.jar</literal></para>
+                <para><literal>ironjacamar-mail.jar</literal></para>
               </entry>
               <entry align="center">
                 <para>compile only</para>
@@ -420,7 +420,7 @@
               </entry>
               <entry>
                 <para>Required for incoming mail support</para>
-                <para>mail-ra.rar should be deployed to the application server
+                <para><filename>ironjacamar-mail.jar</filename> should be deployed to the application server
                 at runtime</para>
               </entry>
             </row>                  

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -23,10 +23,10 @@
       
       <para>You can still use JBoss EL instead of standard EL 2.2 from Java EE 6 by 
       setting up <literal>com.sun.faces.expressionFactory</literal> in <filename>web.xml</filename>:
-      <programlisting role="XML"><![CDATA[<context-param>     
+      <programlisting><![CDATA[<context-param>
     <param-name>com.sun.faces.expressionFactory</param-name>
-    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
-</context-param>]]> </programlisting>      
+    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
+</context-param>]]></programlisting>
       </para>
       
       <para> 
@@ -36,9 +36,10 @@
       <programlisting role="XHTML"><![CDATA[<h:commandButton action="#{hotelBooking.bookHotel(hotel)}" value="Book Hotel"/>]]></programlisting>
       
       <programlisting role="JAVA"><![CDATA[@Name("hotelBooking")
-public class HotelBooking {
-   
-   public String bookHotel(Hotel hotel) {
+public class HotelBooking 
+{   
+   public String bookHotel(Hotel hotel) 
+   {
       // Book the hotel
    }
 }]]></programlisting>

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jbpm.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jbpm.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jbpm.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -231,7 +231,7 @@
 	        <listitem>
 	        <para>
 	            The jPDL makes the user interaction immediately understandable,
-	            without us needing to even look at the JSP or Java code.
+	            without us needing to even look at the facelets template or Java code.
 	        </para>
 	        </listitem>
 	    </itemizedlist>

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Mail.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Mail.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Mail.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -321,6 +321,9 @@
   </section>
   <section>
     <title>Receiving emails</title>
+
+
+    <warning>Please be reminded that this section is not updated for JBoss AS 7.x!</warning>
     
     <para>
       If you are using EJB then you can use a MDB (Message Driven Bean) to 

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Testing.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Testing.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Testing.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -29,7 +29,7 @@
 @Scope(EVENT)
 @Name("statementOfAccount")
 public class StatementOfAccount {
-   
+
    @In(create=true) EntityManager entityManager
    
    private double statementTotal;
@@ -64,8 +64,7 @@
             the business logic of the component) as follows:
         </para>
 
-        <programlisting role="JAVA"><![CDATA[public class StatementOfAccountTest {
-    
+        <programlisting role="JAVA"><![CDATA[public class StatementOfAccountTest {    
     @Test
     public testCalculateTotal {
        List<Invoice> invoices = generateTestInvoices(); // A test data generator
@@ -91,9 +90,10 @@
     <section>
         <title>Integration testing Seam components</title>
 
-        <note>
-            Using JBoss Embedded for integration testing was removed. See <xref linkend="testing.arquillian" />
-        </note>
+        <warning>
+            <para>Using JBoss Embedded for integration testing was removed. Seam uses
+            Arquillian with JUnit. Right now TestNG is not recommended test framework with Arquillian.</para>
+        </warning>
         
         <para>
             Integration testing is slightly more difficult. In this case, we can't eliminate
@@ -110,13 +110,185 @@
             together with the JBoss AS container)
         </para>
         
-<programlisting role="JAVA"><![CDATA[public class RegisterTest extends SeamTest
+        <para>
+          Arquillian makes it possible to run integration tests inside a real container, even without <literal>SeamTest</literal>.
+        </para>
+          
+          <example>
+            <title>RegisterTest.java</title>
+            <programlistingco>
+                <areaspec>
+                    <area id="registration-test-runwith" coords="1"/>
+                    <area id="registration-test-deployment" coords="4"/>
+                    <area id="registration-test-overprotocol" coords="5"/>
+                    <area id="registration-test-zipimporter" coords="8"/>
+                    <area id="registration-test-addtestclass" coords="12"/>
+                    <area id="registration-test-lifecycle" coords="19"/>
+                </areaspec>
+                <programlisting role="JAVA"><![CDATA[@RunWith(Arquillian)
+public class RegisterTest
 {
+   @Deployment
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      EnterpriseArchive er = ShrinkWrap.create(ZipImporter.class)
+         .importFrom(new File("../registration-ear/target/seam-registration.ear"))
+         .as(EnterpriseArchive.class);
+      WebArchive web = er.getAsType(WebArchive.class, "registration-web.war");
+      web.addClasses(RegisterTest.class);
+      return er;
+   }
+
+   @Before
+   public void before()
+   {
+       Lifecycle.beginCall();
+   }
    
+   @After
+   public void after(
+   {
+       Lifecycle.endCall();
+   }
+
+   protected void setValue(String valueExpression, Object value)
+   {
+      Expressions.instance().createValueExpression(valueExpression).setValue(value);
+   }
+
    @Test
    public void testRegisterComponent() throws Exception
    {
-            
+     setValue("#{user.username}", "1ovthafew");
+     setValue("#{user.name}", "Gavin King");
+     setValue("#{user.password}", "secret");
+     Register register = (Register)Component.getInstance("register");
+     Assert.assertEquals("success", register.register());
+   }
+
+   ...
+}]]></programlisting>
+            <calloutlist>
+                <callout arearefs="registration-test-runwith">
+                    <para> The JUnit <literal>@RunWith</literal> annotation must be present to run our tests with Arquillian.
+                    </para>
+                </callout>
+                <callout arearefs="registration-test-deployment">
+                    <para> Since we want to run our test in a real container, we need to specify an archive that gets deployed.
+                    </para>
+                </callout>
+                <callout arearefs="registration-test-overprotocol">
+                    <para> <literal>@OverProtocol</literal> is an Arquillian annotation to specify the protocol used for running the tests.
+                        The "Servlet 3.0" protocol is the recommended protocol for running Seam tests.
+                    </para>
+                </callout>
+                <callout arearefs="registration-test-zipimporter">
+                    <para> ShrinkWrap can be used to create the deployment archive. In this example, the whole EAR is imported, but we could also use
+                        the ShrinkWrap API to create a WAR or an EAR from the scratch and put in just the artifacts that we need for the test.
+                    </para>
+                </callout>
+                <callout arearefs="registration-test-addtestclass">
+                    <para> The test class itself must be added to the web archive.
+                    </para>
+                </callout>
+                <callout arearefs="registration-test-lifecycle">
+                    <para> <literal>Lifecycle.beginCall()</literal> is needed to setup Seam contexts.
+                    </para>
+                </callout>
+            </calloutlist>
+          </programlistingco>
+        </example>
+
+        <section>
+          <title>Configuration</title>
+
+          <para>
+            The Arquillian configuration depends on the specific container used. See Arquillian documentation for more information.
+          </para>
+
+           <para>
+              Assuming you are using Maven as your build tool and want run your tests on JBoss AS 7, you will need to put these dependencies into your <literal>pom.xml</literal>:
+           </para>
+          
+           <programlisting role="XML"><![CDATA[<dependency>
+    <groupId>org.jboss.arquillian.junit</groupId>
+    <artifactId>arquillian-junit-container</artifactId>
+    <version>${version.arquillian}</version>
+    <scope>test</scope>
+</dependency>
+
+<dependency>
+    <groupId>org.jboss.as</groupId>
+    <artifactId>jboss-as-arquillian-container-managed</artifactId>
+    <version>${version.jboss.as7}</version>
+    <scope>test</scope>
+</dependency>]]></programlisting>
+
+          <para>
+            The Arquillian JBoss AS Managed Container will automatically start the application server,
+             provided the JBOSS_HOME environment property points to the JBoss AS 7 installation.
+          </para>
+
+        </section>
+
+        <section>
+          <title>Using JUnitSeamTest with Arquillian</title>
+          
+          <para>
+            It is also possible to use the simulated JSF environment provided by <literal>SeamTest</literal> along with Arquillian. 
+            This is useful especially if you are migrating from previous Seam releases and want to keep your existing testsuite mostly
+            unchanged.
+          </para>
+
+          <note>SeamTest was primary designated for TestNG integration tests. There are some glitches
+          so we recommend to use JUnitSeamTest which is the JUnit variant for SeamTest.            
+          </note>
+
+          <para>
+            The following changes must be done to run a JUnitSeamTest with Arquillian:
+          </para>
+
+          <itemizedlist>
+            <listitem>
+                <para>Create the <literal>@Deployment</literal> method.</para>
+            </listitem>
+            <listitem>
+                <para>Convert the test to JUnit. A <literal>JUnitSeamTest</literal>
+                class can now be used instead of the original <literal>SeamTest</literal>.</para>
+            </listitem>
+            <listitem>
+                <para>Replace the <literal>SeamListener</literal> with <literal>org.jboss.seam.mock.MockSeamListener</literal> in web.xml.</para>
+            </listitem>
+          </itemizedlist> 
+
+
+          <example>
+                <title>RegisterTest.java</title>
+                <programlisting role="JAVA"><![CDATA[@RunWith(Arquillian)
+public class RegisterTest extends JUnitSeamTest
+{
+   @Deployment
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      EnterpriseArchive er = ShrinkWrap.create(ZipImporter.class)
+         .importFrom(new File("../registration-ear/target/seam-registration.ear"))
+         .as(EnterpriseArchive.class);
+      WebArchive web = er.getAsType(WebArchive.class, "registration-web.war");
+      web.addClasses(RegisterTest.class);
+
+      // Replacing the SeamListener with MockSeamListener
+      web.delete("/WEB-INF/web.xml");
+      web.addAsWebInfResource("WEB-INF/mock-web.xml", "web.xml");
+
+      return er;
+   }
+
+   @Test
+   public void testRegisterComponent() throws Exception
+   {
+
       new ComponentTest() {
 
          protected void testComponents() throws Exception
@@ -129,16 +301,33 @@
             assert getValue("#{user.name}").equals("Gavin King");
             assert getValue("#{user.password}").equals("secret");
          }
-         
+
       }.run();
-      
+
    }
 
    ...
-   
 }]]></programlisting>
+          </example>
 
+          <example>
+            <title>mock-web.xml</title>
+            <programlisting role="XML"><![CDATA[
+<?xml version="1.0" ?>
+<web-app version="3.0"
+         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_3_0.xsd">
+         
+    <listener>
+        <listener-class>org.jboss.seam.mock.MockSeamListener</listener-class>
+    </listener>
+
+</web-app>
+]]></programlisting>
         
+          </example>        
+        
         <section>
             <title>Using mocks in integration tests</title>
             
@@ -189,7 +378,8 @@
         </para>
         
         <para>
-            <literal>SeamTest</literal> lets you write <emphasis>scripted</emphasis> tests,
+            <literal>SeamTest</literal> or <literal>JUnitSeamTest</literal> lets you write
+             <emphasis>scripted</emphasis> tests,
             in a simulated JSF environment. The role of a scripted test is to reproduce 
             the interaction between the view and the Seam components. In other words, you 
             get to pretend you are the JSF implementation!
@@ -234,17 +424,33 @@
         <para>
             We want to test the registration functionality of our application (the stuff
             that happens when the user clicks the Register button). We'll reproduce the JSF 
-            request lifecycle in an automated TestNG test:
+            request lifecycle in an automated JUnit test:
         </para>
 
-<programlisting role="JAVA"><![CDATA[public class RegisterTest extends SeamTest
+<programlisting role="JAVA"><![CDATA[@RunWith(Arquillian.class)
+public class RegisterTest extends JUnitSeamTest
 {
+   @Deployment(name="RegisterTest")
+   @OverProtocol("Servlet 3.0") 
+   public static Archive<?> createDeployment()
+   {
+     EnterpriseArchive er = ShrinkWrap.create(ZipImporter.class, "seam-registration.ear").importFrom(new File("../registration-ear/target/seam-registration.ear"))
+               .as(EnterpriseArchive.class);
+     WebArchive web = er.getAsType(WebArchive.class, "registration-web.war");
+     web.addClasses(RegisterTest.class);
+
+     // Install org.jboss.seam.mock.MockSeamListener
+     web.delete("/WEB-INF/web.xml");
+     web.addAsWebInfResource("web.xml");
+     
+     return er;
+  }
    
    @Test
-   public void testRegister() throws Exception
+   public void testLogin() throws Exception
    {
             
-      new FacesRequest() {
+      new FacesRequest("/register.xhtml") {
 
          @Override
          protected void processValidations() throws Exception
@@ -266,31 +472,28 @@
          @Override
          protected void invokeApplication()
          {
-            assert invokeMethod("#{register.register}").equals("success");
+            assert invokeMethod("#{register.register}").equals("/registered.xhtml");
+            setOutcome("/registered.xhtml");
          }
-
+         
          @Override
-         protected void renderResponse()
+         protected void afterRequest()
          {
-            assert getValue("#{user.username}").equals("1ovthafew");
-            assert getValue("#{user.name}").equals("Gavin King");
-            assert getValue("#{user.password}").equals("secret");
+            assert isInvokeApplicationComplete();
+            assert !isRenderResponseBegun();
          }
          
       }.run();
       
-   }
-
-   ...
-   
+      ...
 }]]></programlisting>
 
         <para>
-            Notice that we've extended <literal>SeamTest</literal>, which provides a 
+            Notice that we've extended <literal>JUnitSeamTest</literal>, which provides a 
             Seam environment for our components, and written our test script as an 
-            anonymous class that extends <literal>SeamTest.FacesRequest</literal>, 
+            anonymous class that extends <literal>JUnitSeamTest.FacesRequest</literal>, 
             which provides an emulated JSF request lifecycle. (There is also a
-            <literal>SeamTest.NonFacesRequest</literal> for testing GET requests.)
+            <literal>JUnitSeamTest.NonFacesRequest</literal> for testing GET requests.)
             We've written our code in methods which are named for the various JSF 
             phases, to emulate the calls that JSF would make to our components. Then 
             we've thrown in various assertions.
@@ -302,16 +505,24 @@
             these tests using Maven, or using the JUnit plugin for eclipse:
         </para>
 
-<!-- TODO capture new JUnit screenshot -->
         <mediaobject>
           <imageobject role="fo">
+            <imagedata fileref="images/plugin-junit.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/plugin-junit.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+<!--         
+        <mediaobject>
+          <imageobject role="fo">
             <imagedata fileref="images/plugin-testng.png" align="center" scalefit="1"/>
           </imageobject>
           <imageobject role="html">
             <imagedata fileref="images/plugin-testng.png" align="center"/>
           </imageobject>
         </mediaobject>
-       
+        -->
         <section>
            <title>Configuration</title>
            
@@ -333,7 +544,7 @@
               And, of course you need to put your built project and tests onto
               the classpath as well as jar for your test framework. Don't forget
               to put all the correct configuration files for JPA and Seam onto 
-              the classpath as well.Seam asks Arquillian to deploy any 
+              the classpath as well. Seam asks Arquillian to deploy any 
               resource (jar or directory) which has 
               <literal>seam.properties</literal> in it's root. Therefore, if you
               don't assemble a directory structure that resembles a deployable 
@@ -344,10 +555,10 @@
          </section>
          
         <section>
-           <title>Using SeamTest with another test framework</title>
+           <title>Using JUnitSeamTest with another test framework</title>
          
            <para>
-              Seam provides JUnit and TestNG support out of the box, but you can also use
+              Seam provides JUnit support out of the box, but you can also use
               another test framework, if you want.
            </para>
            
@@ -463,7 +674,7 @@
          <programlisting role="XML"><![CDATA[<parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>]]></programlisting>
          
          <para>
-            DBUnitSeamTest and DBJUnitSeamTest have support for MySQL and HSQL - you need to tell it
+            DBUnitSeamTest or DBJUnitSeamTest have support for MySQL and HSQL - you need to tell it
             which database is being used, otherwise it defaults to HSQL:
          </para>
          
@@ -540,231 +751,6 @@
         </section> 
 
       </section>
-
-      <section id="testing.arquillian">
-
-        <title>Testing Seam with Arquillian</title>
-
-        <para>
-          Arquillian makes it possible to run integration tests inside a real container, even without <literal>SeamTest</literal>.
-        </para>
-          
-          <example>
-            <title>RegisterTest.java</title>
-            <programlistingco>
-                <areaspec>
-                    <area id="registration-test-runwith" coords="1"/>
-                    <area id="registration-test-deployment" coords="4"/>
-                    <area id="registration-test-overprotocol" coords="5"/>
-                    <area id="registration-test-zipimporter" coords="8"/>
-                    <area id="registration-test-addtestclass" coords="12"/>
-                    <area id="registration-test-lifecycle" coords="19"/>
-                </areaspec>
-                <programlisting role="JAVA"><![CDATA[@RunWith(Arquillian)
-public class RegisterTest
-{
-   @Deployment
-   @OverProtocol("Servlet 3.0")
-   public static Archive<?> createDeployment()
-   {
-      EnterpriseArchive er = ShrinkWrap.create(ZipImporter.class)
-         .importFrom(new File("../registration-ear/target/seam-registration.ear"))
-         .as(EnterpriseArchive.class);
-      WebArchive web = er.getAsType(WebArchive.class, "registration-web.war");
-      web.addClasses(RegisterTest.class);
-      return er;
-   }
-
-   @Before
-   public void before()
-   {
-       Lifecycle.beginCall();
-   }
-   
-   @After
-   public void after(
-   {
-       Lifecycle.endCall();
-   }
-
-   protected void setValue(String valueExpression, Object value)
-   {
-      Expressions.instance().createValueExpression(valueExpression).setValue(value);
-   }
-
-   @Test
-   public void testRegisterComponent() throws Exception
-   {
-     setValue("#{user.username}", "1ovthafew");
-     setValue("#{user.name}", "Gavin King");
-     setValue("#{user.password}", "secret");
-     Register register = (Register)Component.getInstance("register");
-     Assert.assertEquals("success", register.register());
-   }
-
-   ...
-
-}]]></programlisting>
-            <calloutlist>
-                <callout arearefs="registration-test-runwith">
-                    <para> The JUnit <literal>@RunWith</literal> annotation must be present to run our tests with Arquillian.
-                    </para>
-                </callout>
-                <callout arearefs="registration-test-deployment">
-                    <para> Since we want to run our test in a real container, we need to specify an archive that gets deployed.
-                    </para>
-                </callout>
-                <callout arearefs="registration-test-overprotocol">
-                    <para> <literal>@OverProtocol</literal> is an Arquillian annotation to specify the protocol used for running the tests.
-                        The "Servlet 3.0" protocol is the recommended protocol for running Seam tests.
-                    </para>
-                </callout>
-                <callout arearefs="registration-test-zipimporter">
-                    <para> ShrinkWrap can be used to create the deployment archive. In this example, the whole EAR is imported, but we could also use
-                        the ShrinkWrap API to create a WAR or an EAR from the scratch and put in just the artifacts that we need for the test.
-                    </para>
-                </callout>
-                <callout arearefs="registration-test-addtestclass">
-                    <para> The test class itself must be added to the web archive.
-                    </para>
-                </callout>
-                <callout arearefs="registration-test-lifecycle">
-                    <para> <literal>Lifecycle.beginCall()</literal> is needed to setup Seam contexts.
-                    </para>
-                </callout>
-            </calloutlist>
-          </programlistingco>
-        </example>
-
-        <section>
-          <title>Configuration</title>
-
-          <para>
-            The Arquillian configuration depends on the specific container used. See Arquillian documentation for more information.
-          </para>
-
-           <para>
-              Assuming you are using Maven as your build tool and want run your tests on JBoss AS 7, you will need to put these dependencies into your <literal>pom.xml</literal>:
-           </para>
-          
-           <programlisting role="XML"><![CDATA[<dependency>
-    <groupId>org.jboss.arquillian.junit</groupId>
-    <artifactId>arquillian-junit-container</artifactId>
-    <version>${version.arquillian}</version>
-    <scope>test</scope>
-</dependency>
-
-<dependency>
-    <groupId>org.jboss.as</groupId>
-    <artifactId>jboss-as-arquillian-container-managed</artifactId>
-    <version>${version.jboss.as7}</version>
-    <scope>test</scope>
-</dependency>]]></programlisting>
-
-          <para>
-            The Arquillian JBoss AS Managed Container will automatically start the application server, provided the JBOSS_HOME environment property points to the JBoss AS 7 installation.
-          </para>
-
-        </section>
-
-        <section>
-          <title>Using SeamTest with Arquillian</title>
-
-          <para>
-            It is also possible to use the simulated JSF environment provided by <literal>SeamTest</literal> along with Arquillian. 
-            This is useful especially if you are migrating from previous Seam releases and want to keep your existing testsuite mostly
-            unchanged.
-          </para>
-
-          <note>
-            This feature currently only works with JUnit.
-          </note>
-
-          <para>
-            The following changes must be done to run a SeamTest with Arquillian:
-          </para>
-
-          <itemizedlist>
-            <listitem>
-                <para>Create the <literal>@Deployment</literal> method.</para>
-            </listitem>
-            <listitem>
-                <para>Convert the test to JUnit. A <literal>JUnitSeamTest</literal>
-                class can now be used instead of the original <literal>SeamTest</literal>.</para>
-            </listitem>
-            <listitem>
-                <para>Replace the <literal>SeamListener</literal> with <literal>org.jboss.seam.mock.MockSeamListener</literal> in web.xml.</para>
-            </listitem>
-          </itemizedlist> 
-
-
-          <example>
-                <title>RegisterTest.java</title>
-                <programlisting role="JAVA"><![CDATA[@RunWith(Arquillian)
-public class RegisterTest extends JUnitSeamTest
-{
-   @Deployment
-   @OverProtocol("Servlet 3.0")
-   public static Archive<?> createDeployment()
-   {
-      EnterpriseArchive er = ShrinkWrap.create(ZipImporter.class)
-         .importFrom(new File("../registration-ear/target/seam-registration.ear"))
-         .as(EnterpriseArchive.class);
-      WebArchive web = er.getAsType(WebArchive.class, "registration-web.war");
-      web.addClasses(RegisterTest.class);
-
-      // Replacing the SeamListener with MockSeamListener
-      web.delete("/WEB-INF/web.xml");
-      web.addAsWebInfResource("WEB-INF/mock-web.xml", "web.xml");
-
-      return er;
-   }
-
-   @Test
-   public void testRegisterComponent() throws Exception
-   {
-
-      new ComponentTest() {
-
-         protected void testComponents() throws Exception
-         {
-            setValue("#{user.username}", "1ovthafew");
-            setValue("#{user.name}", "Gavin King");
-            setValue("#{user.password}", "secret");
-            assert invokeMethod("#{register.register}").equals("success");
-            assert getValue("#{user.username}").equals("1ovthafew");
-            assert getValue("#{user.name}").equals("Gavin King");
-            assert getValue("#{user.password}").equals("secret");
-         }
-
-      }.run();
-
-   }
-
-   ...
-
-}]]></programlisting>
-          </example>
-
-          <example>
-            <title>mock-web.xml</title>
-            <programlisting role="XML"><![CDATA[
-<?xml version="1.0" ?>
-<web-app version="3.0"
-         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_3_0.xsd">
-         
-    <listener>
-        <listener-class>org.jboss.seam.mock.MockSeamListener</listener-class>
-    </listener>
-
-</web-app>
-]]></programlisting>
-        
-          </example>
-
-        </section>
        
     </section>
 	

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml	2012-08-17 11:30:51 UTC (rev 15056)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml	2012-08-20 10:02:48 UTC (rev 15057)
@@ -3,141 +3,181 @@
 ]>
 
 <chapter id="wicket">
-   <title>Writing your presentation layer using Apache Wicket</title>
+    <title>Writing your presentation layer using Apache Wicket</title>
 
-   <para>
-      Seam supports Wicket as an alternative presentation layer to JSF. Take a 
-      look at the <code>wicket</code> example in Seam which shows the Booking
-      Example ported to Wicket.
-   </para>
+    <para>
+        Seam supports Wicket as an alternative presentation layer to
+        JSF. Take a
+        look at the
+        <code>wicket</code>
+        example in Seam which shows the Booking
+        Example ported to Wicket.
+    </para>
 
-   <note>
-      <para>
-         Wicket support is new to Seam, so some features which are
-         available in JSF are not yet available when you use Wicket
-         (e.g. pageflow). You'll also notice that the documentation is
-         very JSF-centric and needs reorganization to reflect the first
-         class support for Wicket.
-      </para>
-   </note>
-   
-   <section>
-      <title>Adding Seam to your wicket application</title>
-      
-      <para>
-          The features added to your Wicket application can be split into two 
-          categories: bijection and orchestration; these are discussed in detail
-          below.
-      </para>
-      
-      <para>
-         Extensive use of inner classes is common when building Wicket 
-         applications, with the component tree being built in the constructor.
-         Seam fully supports the use of annotation based control in inner 
-         classes and constructors (unlike regular Seam components).
-      </para>
-      
-      <para>
-         Annotations are processed <emphasis>after</emphasis> any call to
-         a superclass. This mean's that any injected attributes cannot be
-         passed as an argument in a call to <code>this()</code> or 
-         <code>super()</code>.
-      </para>
-      
-      <para>
-         When a method is called in an inner class, bijection occurs for any
-         class which encloses it. This allows you to place your bijected
-         variables in the outer class, and refer to them in any inner class.
-      </para>
-      
-      <section>
-         <title>Bijection</title>
-         
-         <para>
-            A Seam enabled Wicket application has full access to the all the 
-            standard Seam contexts (<code>EVENT</code>, <code>CONVERSATION</code>,
-            <code>SESSION</code>, <code>APPLICATION</code> and
-            <code>BUSINESS_PROCESS</code>).
-         </para>
-         
-         <para>
-            To access Seam component's from Wicket, you just need to inject it
-            using <code>@In</code>:
-         </para>
-         
-         <programlisting role="JAVA"><![CDATA[@In(create=true)
+    <note>
+        <para>
+            Wicket support is new to Seam, so some features which are
+            available in JSF are not yet available when you use Wicket
+            (e.g. pageflow). You'll also notice that the documentation is
+            very JSF-centric and needs reorganization to reflect the first
+            class support for Wicket.
+        </para>
+    </note>
+
+    <section>
+        <title>Adding Seam to your wicket application</title>
+
+        <para>
+            The features added to your Wicket application can be split into two
+            categories: bijection and orchestration; these are discussed
+            in detail
+            below.
+        </para>
+
+        <para>
+            Extensive use of inner classes is common when building Wicket
+            applications, with the component tree being built in the constructor.
+            Seam fully supports the use of annotation based control in inner
+            classes and constructors (unlike regular Seam components).
+        </para>
+
+        <para>
+            Annotations are processed
+            <emphasis>after</emphasis>
+            any call to
+            a superclass. This mean's that any injected attributes cannot be
+            passed as an argument in a call to
+            <code>this()</code>
+            or
+            <code>super()</code>
+            .
+        </para>
+
+        <para>
+            When a method is called in an inner class, bijection occurs for any
+            class which encloses it. This allows you to place your bijected
+            variables in the outer class, and refer to them in any inner class.
+        </para>
+
+        <section>
+            <title>Bijection</title>
+
+            <para>
+                A Seam enabled Wicket application has full access to the
+                all the
+                standard Seam contexts (
+                <code>EVENT</code>
+                ,
+                <code>CONVERSATION</code>
+                ,
+                <code>SESSION</code>
+                ,
+                <code>APPLICATION</code>
+                and
+                <code>BUSINESS_PROCESS</code>
+                ).
+            </para>
+
+            <para>
+                To access Seam component's from Wicket, you just need to
+                inject it
+                using
+                <code>@In</code>
+                :
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@In(create=true)
 private HotelBooking hotelBooking;]]></programlisting>
 
-         <tip>
+            <tip>
+                <para>
+                    As your Wicket class isn't a full Seam component,
+                    there is no
+                    need to annotate it
+                    <code>@Name</code>
+                    .
+                </para>
+            </tip>
+
             <para>
-               As your Wicket class isn't a full Seam component, there is no
-               need to annotate it <code>@Name</code>.
+                You can also outject an object into the Seam contexts from a Wicket
+                component:
             </para>
-         </tip>
-         
-         <para>
-            You can also outject an object into the Seam contexts from a Wicket
-            component:
-         </para>
-         
-         <programlisting role="JAVA"><![CDATA[@Out(scope=ScopeType.EVENT, required=false)
+
+            <programlisting role="JAVA"><![CDATA[@Out(scope=ScopeType.EVENT, required=false)
 private String verify;]]></programlisting>
 
-         <para>
-            TODO Make this more use case driven
-         </para>
-      
-      </section>
-      
-      <section>
-         <title>Orchestration</title>
-         
-         <para>
-            You can secure a Wicket component by using the 
-            <code>@Restrict</code> annotation. This can be placed on the outer
-            component or any inner components. If <code>@Restrict</code> is
-            specified, the component will automatically be restricted to logged
-            in users. You can optionally use an EL expression in the 
-            <code>value</code> attribute to specify a restriction to be applied.
-            For more refer to the <xref linkend="security"/>.
-         </para>
-         
-         <para>
-            For example:
-         </para>
-         
-         <programlisting role="JAVA"><![CDATA[@Restrict
-public class Main extends WebPage {
+            <para>
+                TODO Make this more use case driven
+            </para>
 
+        </section>
+
+        <section>
+            <title>Orchestration</title>
+
+            <para>
+                You can secure a Wicket component by using the
+                <code>@Restrict</code>
+                annotation. This can be placed on the outer
+                component or any inner components. If
+                <code>@Restrict</code>
+                is
+                specified, the component will automatically be restricted to logged
+                in users. You can optionally use an EL expression in the
+                <code>value</code>
+                attribute to specify a restriction to be applied.
+                For more refer to the
+                <xref linkend="security" />
+                .
+            </para>
+
+            <para>
+                For example:
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Restrict
+public class Main extends WebPage
+{
    ...]]></programlisting>
-         
-         <tip>
+
+            <tip>
+                <para>
+                    Seam will automatically apply the restriction to any nested
+                    classes.
+                </para>
+            </tip>
+
             <para>
-               Seam will automatically apply the restriction to any nested
-               classes.
+                You can demarcate conversations from within a Wicket
+                component
+                through the use of
+                <code>@Begin</code>
+                and
+                <code>@End</code>
+                . The
+                semantics for these annotations are the same as when used in a Seam
+                component. You can place
+                <code>@Begin</code>
+                and
+                <code>@End</code>
+                on any method.
             </para>
-         </tip>
-         
-         <para>
-            You can demarcate conversations from within a Wicket component
-            through the use of <code>@Begin</code> and <code>@End</code>. The
-            semantics for these annotations are the same as when used in a Seam
-            component. You can place <code>@Begin</code> and <code>@End</code>
-            on any method.
-         </para>
-         
-         <note>
+
+            <note>
+                <para>
+                    The deprecated
+                    <code>ifOutcome</code>
+                    attribute is not supported.
+                </para>
+            </note>
+
             <para>
-               The deprecated <code>ifOutcome</code> attribute is not supported.
+                For example:
             </para>
-         </note>
-         
-         <para>
-            For example:
-         </para>
-         
-         <programlisting role="JAVA"><![CDATA[item.add(new Link("viewHotel") {
 
+            <programlisting role="JAVA"><![CDATA[item.add(new Link("viewHotel") {
+
    @Override
    @Begin
    public void onClick() {
@@ -146,109 +186,166 @@
    }
 };]]></programlisting>
 
-         <para>
-            You may have pages in your application which can only be accessed 
-            when the user has a long-running conversation active. To enforce 
-            this you can use the <code>@NoConversationPage</code> annotation: 
-         </para>
-         
-         <programlisting><![CDATA[@Restrict
+            <para>
+                You may have pages in your application which can only be
+                accessed
+                when the user has a long-running conversation active. To enforce
+                this you can use the
+                <code>@NoConversationPage</code>
+                annotation:
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Restrict
 @NoConversationPage(Main.class)
-public class Hotel extends WebPage {]]></programlisting>
+public class Hotel extends WebPage 
+{]]></programlisting>
 
-         <para>
-            If you want to further decouple your application classes, you can 
-            use Seam events. Of course, you can raise an event using
-            <code>Events.instance().raiseEvent("foo")</code>. Alternatively, you
-            can annotate a method <code>@RaiseEvent("foo")</code>; if the method
-            returns a non-null outcome without exception, the event will be
-            raised.
-         </para>
-         
-         <para>
-            You can also control tasks and processes in Wicket classes through
-            the use of <code>@CreateProcess</code>, <code>@ResumeTask</code>,
-            <code>@BeginTask</code>, <code>@EndTask</code>, 
-            <code>@StartTask</code> and <code>@Transition</code>.
-         </para>   
-         
-         <para>
-            TODO - Implement BPM control - JBSEAM-3194
-         </para>
-      </section>
-      
-   </section>
+            <para>
+                If you want to further decouple your application
+                classes, you can
+                use Seam events. Of course, you can raise an event using
+                <code>Events.instance().raiseEvent("foo")</code>
+                . Alternatively, you
+                can annotate a method
+                <code>@RaiseEvent("foo")</code>
+                ; if the method
+                returns a non-null outcome without exception, the event will be
+                raised.
+            </para>
 
-   <section>
-      <title>Setting up your project</title>
-      
-      <para>
-         Seam needs to instrument the bytecode of your Wicket classes to be able
-         to intercept the annotations you use. The first decision to make is: do
-         you want your code instrumented at runtime as your app is running, or 
-         at compile time?  The former requires no integration
-         with your build environment, but has a performance penalty when loading each
-         instrumented class for the first time.  The latter is faster, but requires 
-         you to integrate this instrumentation into your build environment.
-         </para>
-      	 <section>
-      	   <title>Runtime instrumentation</title>
-      	   <para>
-      	    There are two ways to achieve runtime instrumentation.  One relies on  
-      	    placing wicket components to be instrumented in a special folder in your WAR
-      	    deployment.  If this is not acceptable or possible, you can also use an
-      	    instrumentation "agent," which you specify in the command line for launching
-      	    your container.
-      	    </para>
-      	    <section>
-      	    	<title>Location-specific instrumentation</title>
-      	    	<para>
-      	    	Any classes placed in the <literal>WEB-INF/wicket</literal> folder within your
-      	    	WAR deployment will be automatically instrumented by the seam-wicket runtime.
-      	    	You can arrange to place your wicket pages and components here by specifying
-      	    	a separate output folder for those classes in your IDE, or through the use of 
-      	    	ant scripts.
-      	    	</para>
-      	    </section>
-      	    <section>
-      	    <title>Runtime instrumentation agent</title>
-  	    	<para>The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an instrumentation 
-  	    	agent through the Java Instrumentation api.  This is accomplished through the following
-  	    	steps:</para>
-  	    	<itemizedlist>
-	  	    	<listitem>
-		  	    	<para>Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a 
-		  	    	location for which you have an absolute path, as the Java Instrumentation API does 
-		  	    	not allow relative paths when  specifying the location of an agent lib. </para>
-	  	    	</listitem>
-	  	    	<listitem>
-		  	    	<para>Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the command line options 
-		  	    	when launching your webapp container:</para>
-	  	    	</listitem>
-	  	    	<listitem>
-		  	    	<para> In addition, you will need to add an environment variable that specifies 
-		  	    	packages that the agent should instrument.  This is accomplished by a comma separated
-		  	    	list of package names:</para>
-		  	    	<programlisting>-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package</programlisting>
-		  	    	<para>Note that if a package A is specified, classes in subpackages of A are also examined.  The 
-		  	    	classes chosen for instrumentation can be further limited by specifying:
-		  	    	<programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</programlisting>
-		  	    	and then marking instrumentable classes with the <literal>@SeamWicketComponent</literal>
-		  	    	annotation, see <xref linkend="SeamWicketComponent"/>.</para>
-	  	    	</listitem>
-  	    	</itemizedlist>
-      	   </section>
-      	 </section>
-      	 <section>
-      	   <title>Compile-time instrumentation</title>
-      	   <para>
-      	   Seam supports instrumentation at compile time through either Apache Ant or Apache Maven.</para>
-      	   <section>
-      	   <title> Instrumenting with ant</title>
-      	   <para>
-      	   Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </literal>.  This is used
-      	   in the following manner:
-      <programlisting role="XML"><![CDATA[<taskdef name="instrumentWicket" 
+            <para>
+                You can also control tasks and processes in Wicket
+                classes through
+                the use of
+                <code>@CreateProcess</code>
+                ,
+                <code>@ResumeTask</code>
+                ,
+                <code>@BeginTask</code>
+                ,
+                <code>@EndTask</code>
+                ,
+                <code>@StartTask</code>
+                and
+                <code>@Transition</code>
+                .
+            </para>
+
+            <!-- <para> TODO - Implement BPM control - JBSEAM-3194 </para> -->
+        </section>
+
+    </section>
+
+    <section>
+        <title>Setting up your project</title>
+
+        <para>
+            Seam needs to instrument the bytecode of your Wicket classes to be able
+            to intercept the annotations you use. The first decision to
+            make is: do
+            you want your code instrumented at runtime as your app is running, or
+            at compile time? The former requires no integration
+            with your build environment, but has a performance penalty when loading
+            each
+            instrumented class for the first time. The latter is faster, but requires
+            you to integrate this instrumentation into your build environment.
+        </para>
+        <section>
+            <title>Runtime instrumentation</title>
+            <para>
+                There are two ways to achieve runtime instrumentation. One relies on
+                placing wicket components to be instrumented in a
+                special folder in your WAR
+                deployment. If this is not acceptable or possible, you can also use an
+                instrumentation "agent," which you specify in the
+                command line for launching
+                your container.
+            </para>
+            <section>
+                <title>Location-specific instrumentation</title>
+                <para>
+                    Any classes placed in the
+                    <literal>WEB-INF/wicket</literal>
+                    folder within your
+                    WAR deployment will be automatically instrumented by the seam-wicket
+                    runtime.
+                    You can arrange to place your wicket pages and components here by
+                    specifying
+                    a separate output folder for those classes in your IDE, or through
+                    the use of
+                    ant scripts.
+                </para>
+            </section>
+            <section>
+                <title>Runtime instrumentation agent</title>
+                <para>
+                    The jar file
+                    <literal>jboss-seam-wicket.jar</literal>
+                    can be used as an instrumentation
+                    agent through the Java Instrumentation api. This is accomplished through
+                    the following
+                    steps:
+                </para>
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            Arrange for the
+                            <literal>jboss-seam-wicket.jar</literal>
+                            file to live in a
+                            location for which you have an absolute path, as the Java Instrumentation
+                            API does
+                            not allow relative paths when specifying the location of an agent
+                            lib.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            Add
+                            <literal>javaagent:/path/to/jboss-seam-wicket.jar
+                            </literal>
+                            to the command line options
+                            when launching your webapp container:
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para> In addition, you will need to add an
+                            environment variable that specifies
+                            packages that the agent should instrument. This is accomplished by a
+                            comma separated
+                            list of package names:
+                        </para>
+                        <programlisting>-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package</programlisting>
+                        <para>
+                            Note that if a package A is specified,
+                            classes in subpackages of A are also
+                            examined. The
+                            classes chosen for instrumentation can be further limited by specifying:
+                            <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</programlisting>
+                            and then marking instrumentable classes with
+                            the
+                            <literal>@SeamWicketComponent</literal>
+                            annotation, see
+                            <xref linkend="SeamWicketComponent" />
+                            .
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </section>
+        </section>
+        <section>
+            <title>Compile-time instrumentation</title>
+            <para>
+                Seam supports instrumentation at compile time through either Apache Ant
+                or Apache Maven.
+            </para>
+            <section>
+                <title> Instrumenting with ant</title>
+                <para>
+                    Seam provides an ant task in the
+                    <literal>jboss-seam-wicket-ant.jar </literal>
+                    . This is used
+                    in the following manner:
+                    <programlisting><![CDATA[<taskdef name="instrumentWicket"
    classname="org.jboss.seam.wicket.ioc.WicketInstrumentationTask">
   <classpath>
     <pathelement location="lib/jboss-seam-wicket-ant.jar"/>
@@ -262,124 +359,180 @@
   <classpath refid="build.classpath"/>
   <fileset dir="${build.classes}" includes="**/*.class"/>
 </instrumentWicket>]]></programlisting>
-			</para>
-      <para> 
-		   This results in the instrumented classes being placed in the directory
-		   specified by <literal>${build.instrumented}</literal>.  You will then
-		   need to instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. 
-		   If you want to hot deploy the  Wicket components, you can copy the instrumented classes to 
-         <literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that
-         your <literal>WicketApplication</literal> class is also hot-deployed.
-         Upon a reload of hot-deployed classes, the entire WicketApplication 
-         instance has to be  re-initialized, in order to pick up new references 
-		   to the classes of mounted pages.
-      </para>
-      <para> The <literal>useAnnotations</literal> attribute is used to make the ant task only include
-      classes that have been marked with the <literal>@SeamWicketComponent</literal> annotation, 
-      see  <xref linkend="SeamWicketComponent"/>.
-      </para>
-     </section>
-     <section>
-     <title>Instrumenting with maven</title>
-     <para>
-     	The jboss maven repository <literal>repository.jboss.org</literal> provides a plugin named
-     	<literal>seam-instrument-wicket</literal> with a <literal>process-classes</literal> mojo.  An
-     	example configuration in your pom.xml might look like: 
-     	<programlisting role="XML"><![CDATA[<build>
-		<plugins>
-		 <plugin>
-			<groupId>org.jboss.seam</groupId>
-			<artifactId>seam-instrument-wicket</artifactId>
-			<version>2.2.0</version>
-			<configuration>
-				<scanAnnotations>true</scanAnnotations>
-				<includes>
-					<include>your.package.name</include>
-				</includes>
-			</configuration>
-			<executions>
-				<execution>
-					<id>instrument</id>
-					<phase>process-classes</phase>
-					<goals>
-						<goal>instrument</goal>
-					</goals>
-				</execution>
-			</executions>
-		</plugin>
-	</plugins>
+                </para>
+                <para>
+                    This results in the instrumented classes being
+                    placed in the directory
+                    specified by
+                    <literal>${build.instrumented}</literal>
+                    . You will then
+                    need to instruct ant to copy these classes into
+                    <literal>WEB-INF/classes</literal>
+                    .
+                    If you want to hot deploy the Wicket components, you can copy the
+                    instrumented classes to
+                    <literal>WEB-INF/dev</literal>
+                    ; if you use hot deploy, make sure that
+                    your
+                    <literal>WicketApplication</literal>
+                    class is also hot-deployed.
+                    Upon a reload of hot-deployed classes, the entire WicketApplication
+                    instance has to be re-initialized, in order to pick
+                    up new references
+                    to the classes of mounted pages.
+                </para>
+                <para>
+                    The
+                    <literal>useAnnotations</literal>
+                    attribute is used to make the ant task only include
+                    classes that have been marked with the
+                    <literal>@SeamWicketComponent</literal>
+                    annotation,
+                    see
+                    <xref linkend="SeamWicketComponent" />
+                    .
+                </para>
+            </section>
+            <section>
+                <title>Instrumenting with maven</title>
+                <para>
+                    The jboss maven repository
+                    <literal>repository.jboss.org</literal>
+                    provides a plugin named
+                    <literal>seam-instrument-wicket</literal>
+                    with a
+                    <literal>process-classes</literal>
+                    mojo. An
+                    example configuration in your pom.xml might look like:
+                    <programlisting><![CDATA[<build>
+    <plugins>
+         <plugin>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>seam-instrument-wicket</artifactId>
+            <version>2.2.0</version>
+            <configuration>
+                <scanAnnotations>true</scanAnnotations>
+                <includes>
+                    <include>your.package.name</include>
+                </includes>
+            </configuration>
+            <executions>
+                <execution>
+                    <id>instrument</id>
+                    <phase>process-classes</phase>
+                    <goals>
+                        <goal>instrument</goal>
+                    </goals>
+                </execution>
+            </executions>
+        </plugin>
+    </plugins>
 </build>]]></programlisting>
-		The above example illustrates that the instrumentation is limited to classes specified by
-		the <literal>includes</literal> element.  In this example, the <literal>scanAnnotations</literal>
-		is specified, see  <xref linkend="SeamWicketComponent"/>.
-	</para>
-	</section>
-	</section>
-	<section id="SeamWicketComponent">
-	<title>The <literal>@SeamWicketComponent</literal> annotation</title>
-	<para>
-		Classes placed in WEB-INF/wicket will unconditionally be instrumented.  The other instrumentation 
-		mechanisms all allow you to specify that instrumentation should only be applied to classes 
-		annotated with the <literal>@SeamWicketComponent</literal> annotation.  This annotation is inherited,
-		which means all subclasses of an annotated class will also be instrumented.  An example usage is:
-         <programlisting role="JAVA"><![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;
+                    The above example illustrates that the
+                    instrumentation is limited to classes specified by
+                    the
+                    <literal>includes</literal>
+                    element. In this example, the
+                    <literal>scanAnnotations</literal>
+                    is specified, see
+                    <xref linkend="SeamWicketComponent" />
+                    .
+                </para>
+            </section>
+        </section>
+        <section id="SeamWicketComponent">
+            <title>
+                The
+                <literal>@SeamWicketComponent</literal>
+                annotation
+            </title>
+            <para>
+                Classes placed in WEB-INF/wicket will unconditionally be
+                instrumented. The other instrumentation
+                mechanisms all allow you to specify that instrumentation should only be
+                applied to classes
+                annotated with the
+                <literal>@SeamWicketComponent</literal>
+                annotation. This annotation is inherited,
+                which means all subclasses of an annotated class will also be
+                instrumented. An example usage is:
+                <programlisting>
+import org.jboss.seam.wicket.ioc.SeamWicketComponent;
+
 @SeamWicketComponent
-public class MyPage extends WebPage{
+public class MyPage extends WebPage
+{
  ...
-}]]></programlisting>
-	</para>
-	</section>
-     	
-      
-      <section>
-         <title>Defining the Application</title>
-      
-         <para>
-            A Wicket web application which uses Seam should use 
-            <code>SeamWebApplication</code> as the base class; this creates hooks
-            into the Wicket lifecycle allowing Seam to automagically propagate the
-            conversation as needed. It also adds status messages to the page.
-         </para>
-         
-         <para>
-            For example:
-         </para>
-         
-         <para>
-            The <code>SeamAuthorizationStrategy</code> delegates authorization
-            to Seam Security, allowing the use of <code>@Restrict</code> on Wicket
-            components. <code>SeamWebApplication</code> installs the authorization
-            strategy for you. You can specify the login page by implementing the
-            <code>getLoginPage()</code> method. 
-         </para>
-         
-         <para>
-            You'll also need to set the home page of the application by 
-            implementing the <code>getHomePage()</code> method.
-         </para>
-         
-         <programlisting role="JAVA"><![CDATA[public class WicketBookingApplication extends SeamWebApplication {
+}
+</programlisting>
+            </para>
+        </section>
 
+        <section>
+            <title>Defining the Application</title>
+
+            <para>
+                A Wicket web application which uses Seam should use
+                <code>SeamWebApplication</code>
+                as the base class; this creates hooks
+                into the Wicket lifecycle allowing Seam to automagically propagate the
+                conversation as needed. It also adds status messages to
+                the page.
+            </para>
+
+            <para>
+                For example:
+            </para>
+
+            <para>
+                The
+                <code>SeamAuthorizationStrategy</code>
+                delegates authorization
+                to Seam Security, allowing the use of
+                <code>@Restrict</code>
+                on Wicket
+                components.
+                <code>SeamWebApplication</code>
+                installs the authorization
+                strategy for you. You can specify the login page by implementing the
+                <code>getLoginPage()</code>
+                method.
+            </para>
+
+            <para>
+                You'll also need to set the home page of the application
+                by
+                implementing the
+                <code>getHomePage()</code>
+                method.
+            </para>
+
+            <programlisting role="JAVA">public class WicketBookingApplication extends SeamWebApplication
+{
+
    @Override
-   public Class getHomePage() {
+   public Class getHomePage() 
+   {
       return Home.class;
    }
 
    @Override
-   protected Class getLoginPage() {
+   protected Class getLoginPage() 
+   {
       return Home.class;
    }
-   
-}
-]]></programlisting>
-         
-         <para>
-            Seam automatically installs the Wicket filter for you (ensuring that
-            it is inserted in the correct place for you). But you still need to 
-            tell Wicket which <code>WebApplication</code> class to use. 
-         </para>
-         
-         <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.org/schema/seam/components"
+}</programlisting>
+
+            <para>
+                Seam automatically installs the Wicket filter for you
+                (ensuring that
+                it is inserted in the correct place for you). But you still need to
+                tell Wicket which
+                <code>WebApplication</code>
+                class to use.
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.org/schema/seam/components"
  xmlns:wicket="http://jboss.org/schema/seam/wicket"
  xsi:schemaLocation=
   "http://jboss.org/schema/seam/wicket
@@ -388,13 +541,15 @@
   <wicket:web-application 
     application-class="org.jboss.seam.example.wicket.WicketBookingApplication" />
 </components]]></programlisting>
-         
-         <para>
-          In addition, if you plan to use JSF-based pages in the same application as wicket pages, you'll 
-          need to ensure that the jsf exception filter is only enabled for jsf urls:
-         </para>
-          
-                   <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.org/schema/seam/components"
+
+            <para>
+                In addition, if you plan to use JSF-based pages in the same
+                application as wicket pages, you'll
+                need to ensure that the jsf exception filter is only enabled for jsf
+                urls:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.org/schema/seam/components"
  xmlns:web="http://jboss.org/schema/seam/web"
  xmlns:wicket="http://jboss.org/schema/seam/wicket"
  xsi:schemaLocation=
@@ -404,17 +559,19 @@
     <!-- Only map the seam jsf exception filter to jsf paths, which we identify with the *.seam path -->
 	<web:exception-filter url-pattern="*.seam"/>
 </components]]></programlisting>
-          
-          
-         <tip>
-            <para>
-               Take a look at the Wicket documentation for more on authorization
-               strategies and other methods you can override on the
-               <code>Application</code> class.
-            </para>
-         </tip>
-      </section>
 
-   </section>
 
+            <tip>
+                <para>
+                    Take a look at the Wicket documentation for more on
+                    authorization
+                    strategies and other methods you can override on the
+                    <code>Application</code>
+                    class.
+                </para>
+            </tip>
+        </section>
+
+    </section>
+
 </chapter>

Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/architecture.png
===================================================================
(Binary files differ)

Added: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/ee6.png
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/ee6.png	                        (rev 0)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/ee6.png	2012-08-20 10:02:48 UTC (rev 15057)
@@ -0,0 +1,98 @@
+‰PNG
+
+
+‘ë“]ï #¿„|è¸@£I
+­‰ <
+üOâ¼8::vDÔXouÏKŽŒÖëµÉÖ¢hS"yƒ±
+¶þJ™àþoèê	îÔÿB)ÿcçÙȝú/âßo at MÖ)íAU9¯d:¢DŸ·XŠ1
+§¨¨(Ñ>‡££#¶Â[_–žžnjjŠ\fddòíT	
+
+òôôÄÜ­¬©êÎ;»1:j,D—ЗíÈd‹cW¾¹AW0>%LœÞÔG£]oÉŸ÷šUóÎÄl‰ŒšVUažŒ¡[jèÈœÐ`V¸9§ÞÏ’ê¡yÈ°'‹Lž’”NSÅ£7om6QÛ“´fè›KÑÁ‡¿Ô€±¿Rv­›×,–^|Ë¿å%]hbæô×÷‰+sLÎ+ì(º€
+Ô’É“/Ðhé'7˜š.§Ñ2¿¤­¿®E£
+Eîi˜.Mžú;âx9ßÔ]+=tBÓh>“ÉdehjÒª?[Xù«=ó™nÙ‹˜edәїiI?7sÕ“ª»^=i'W£n
+K µŒºÛV<˜ëC}Ρñ×,n}kx,‹­ðà}5›ÃÝäûWª*7ë}^è2Cí-òÙ.¯âA[{,IÿÔQlQÃDƒ­»=Ç•p<{!!¶¨Ä¡Ô„ÝÈWª«Å™àÀòa/ç[–9¤¡­}»z¡3{Ž@g÷?ˆâ3/“––&Ì‘¨ñq;{ú=
+&2#ÂŽ„ ßëRcWO»ýéy£5?bÿÝñ{…™Ðd_X½b7ç‚‘í6i5NÞ3›››·nÝêãÓåUU[Zç¶0üÂBAþßZ‡S™FM˜&¦ÝDRRQhƒhkkk¡ZK¸P¥31R¸Òvh'«Ž­ÈÎÎVCG“«b
+aö©èèèùlÈAˆ"""ˆL&Sž”)êjÈç77øF_™Ÿ”9ñ˜C©y®ËuËi•˜Ú¾ÕÓåÔÃ(V
+óÜT¢bMèCd<÷úø˜Ó·xm¥±V…ß$áгÈÅ/úµÏžHb7&W^¹Á9ïÉ)솜˜¬n椆eºS‘ÂÇ?»¬}=¥÷ÙÝcØG
+×®Ù’æÛtI½ÜŠ¡;5cà‚»+&+Þ¿¢™q«6~;£è²”3]6Û÷{_î¥;µê
+mE`` |³*–Ø´idN\!üìœ
+¢Î\Aԝw>v÷~®“Ñ`t¯3Hë9×g¶dcÞ`u/vaÆHú[jËÔÓÒ8ïTÿN•o2!ÂYÑoÎV‡áY¾~‡÷âƒç
+•øgMr¯PCöÁÜ"<(ççÏ1³_e6¸q¼´µ„ºCû+ÑŸ¥¥¢V÷I#åù!a/ÖKÒ\|üÞ ¥q”æ´í²µÈÓš¸û§Û² (síŸ=æíóÿ<½÷ß—«×Ï×m˜&o2å¬e`b Iì‰{vÔ=Ü{³ÄÙH¹y¼ÊæTspÔÁ"ã6•bw›ïÏ{w-›]VÙUØZ¶¯xOùüŸʤê뱏ނGPNp<‹hbþâ´«åižËQƒøb¤.°xUßÄgIÄì$*´å5ß³mùØϵ!--þ¼—*h_K†ršƒr\`ÌRÍ—'‰Ü¤ÎO%s¹nÉœ0Ãu¸ö«3!ìÚ/áOýû÷ÇŽNäZÛÂÎPÄîr,ÄŒoaž\\ÜE1˜-.ì.×"÷.÷@ð#Ö¥aõ¸C3ō‰¹²²²×>p-¤q³‡€{È$7{€çüDîB&nö
+&"¬hʯˆO-È6í„êª*ÊËNQZNšØŠ?£­‘_§,I_|Ñ´7˜??Ü,ä¤M
+¤:pôã—
+‚ŒªÉons¦£ï+ê^†­õ:Ç÷[×ØÔM÷©ÒKží|õ¾eGÏp\ºh&¤­3p{›UìÃyUEW£7_MšFtª|¹è¶rg•÷O…ß?w…¿ÒÖѨÇ8ÓX½é×Þù§VË%ʘn\3†³ÃÏNќNj[1ÎT©	qô¼¿ÜÜúÓ:èI„´uðӐö€OÇ~§#½tçßs$Ù/Óë„ø±EXª
+Z²Á	©„‚W˜gUëË™Õ+Q›öÎ/öÚ¿¸áà©×ïʧ÷þv߆vo^–§^¢†Èî1óÆkÀ€(¡iµ¤lExÌ_ŒVÁã
+’c¯Hb sŒIzOÕ;!SRÿ¥‹S!¤MdpÞò2Ì;ÿü¢.òÁi|rÛô6?y›3æaÿÖ>}XýîÞqcÂnÅL_ö_݃¡‘1*ŸÏŽdNk8ó’.'Ñ«”þY	a«þU_œr¹D‰<R-jŸè1@!Ò&*T
+Ý©…U•Ó“u23Q›^¬O´¼¬œËØŠHü>Wcnà»ð&·Ý—àßü§yrÛÿ>pòÈà‰pÕæ§U#•GÜ«·>be÷ß…®%a"iAÚDÓD–ôÚí3
+ÕÞâU
+ãûãßf2Ž?~féE×å;a#Ù~_1ýxƒ{Ðú$Šá7÷Ø•ß»qµ<;»°Û,À6Ž(?lˆ,¥ÁPÆÆ#Á#²ö¸Å.ÒÖAh:PÄñWÒ¬ÔÒZžÆæo»ãzjìÞ{x%3jz~ÙC(míÂçyɪìÛ—¯ÐždÜ[¿/Çà˜‘—âå¦5á£æËöEòK_ú.ø5,á´ FVŠš
+ªR–l
+xXë ¼‰ôü´­NþW‹zìaOMeR]ÉÇ‚rö’D9S¿c[§¨âë³/^‡Ó÷Lüs¦Zcd}¥yÚlú·VÝ.ú¸ó@’0Qu¡²¬Éü+1
+ßfYÖÛ¯ÈwΑ…“#UÖ­
+¥ô–(}•~<tÇúy€Ôx¯ãÛ-Ô >	åM„çwŠæXµEoï_ýþǹÙï^¿ÌÌýŠZ©©¯ªg«!hX‡x_·ñ¿¿sãɱç"£faª÷Ö»õ`¨ÇÎ}‰mˆªuôZ÷Ç@áõö†o2ºÃ:09ëýgÜáìIè5l†{´ùÜcö‘·Üÿþåð-8'üËÛœ9s„Ê(~tùòƒ÷̶¶£¹z“ÎVï̇U¹Ì)ö=
+‘DÕ
+Ûš­ðÑÖð-¨Úč	ß(#ˆŸWÞ„6ˆNÔ'!  ¾WÞ’’’¬­­aA@@t†¼Aaƒ€€ú$”7ˆï‘·´´4sssX!o"6‹°u+,Mˆî
+QÙÔ¥>iµb$¢›€ÃÜ"²þkg¢ÃõI(l'o°  :OÞnÞ¼idd¢3ä
+[‡‚Yì²ÿc£‡ÂÿüÙæì‚cV=¿ê{úQY‹¿W?×ÛÓ¤¯¶M©îe˜Ÿ×¹òo¦*gæºßc€dkÏUñèPDPb½…ûxmÓõAsTàþ!¨OvÔ½ŽØ²éT£¨IëOZ8k 2«äÅÅÔSw9þ¥·N¬µºãxdí´^«¾¬f?%¿"¼²–tk‚R—·,89¿ÑCæãÙ“5AÎýÓ§Þ`ÒÌÌI²{`¾ÛwùP¤
+Ê›ø£¾èÞÝ&ýšl%Umm}m}Édë׏ïfU7˜gÁËUÖ0Œ
+—Ũo*F2òRh%fÕ}ÈÎÇú‰SgyØjôÓ”ÂcMþ‹ä‡¸j ?§ÆÜ4r3Un®OÎßÛf}²ñ¡_\
+Úp:³†·wÔœêáè0©'´MÛAò¸iÓ&Xß<(<óWôÆÙ¾ÄàÓý7OÔ,úoïÑϼF
+Ó@-áð_ï…¹_*äéQf†¬[<Ñq$u=ë¡gŸ<¬âÞTêÝKZ”S…̲gûœö_+áil¶x›êHC9ë8ìÞ½›…M$1ô^g·f{|Ã;¬ì+Á˯ðœFþ¶}U?lš^¢ÿ¯;w16¬½Ú Ž_ή÷<+0îžÆ^{mEhHYôŸßâ¸LFϪ{‰ëf'ò?ðçC¾C¤!½¢››Ô'E’朽T뺒g©×ÒÒŸ½xSP‚Í/J)ôÑÓûßôÉ–¦ZMgq2ÃæPSçÐK²oûïÖÝ7o³‹Š«0!ÀK)«i8f²±™QoY¿«yºÿŸ°Atš>YZZª¤¤BD“!$åa³¬‘OPÖ!Û#¡dZÏ50Áõ;ŸQj¸×ÎHÕ@DD
+DçÀÅÅꓝ¨OÂ"€€è<yÛ½{·››ÛwÆBÀ¡H9°(DKÈÎÎ&~¿°aðññ
+Ñ
+tttD¥O²ê¥°@!º#p‘Í)#""\\\¾3–zFY`@øp+?HD7ƒAñÞI7‘˜ñ÷÷'~¿°A@@ooo8?	Ñy€òÑIHJJ‚ö'! :	ÖÖÖ°%XÕòw¢¹ù¢åR•/ž´êåHMÜöõIˆïB}vÿè]•Ük©²ÑVû(âÊßö¼}Y™ã_®ruûøç¶wíLj é+(oíþë3åJ^é:yåê^z•ýõG˜É½}*[Û`ÿ'C¨c)®ÀÑI34ÞUÉË‘©¨e Õ+i”k
++A.ê)ËjÚ‡Jž÷zð_Ü™Ò"g_
+Ž)¥X£¢ýuÑ‡áƒkˆœÞ_d{¥Á,ždÑÜ€7ÒOúü{Y-û	ù!^¶º¯áû‰³
+U$ð%OµþMU—#Y
+
+¥ÎªTº<ìQI“x$øú:‰’äóä¬ÀWox<V5ËPýdpt¤jmSù#qt:¾¦Tæ#òy¤q
+Tšx?Ó“Åÿ€µª'Ö©6I©R:ûš^Ì5=¾€Œ2¹×†¼¾P7Êãî$m&¤VT077‡ò&:*Œ¼nL KæÒúܾªž[ÒlŒV)Ÿ™òKf
+ xã°ê³"Cþò¶a¹Ö[Uòzg÷Äa’ží›ŠYbÊݪ¼íé@Y ­ÿÂ%ŒPý•TQ*YQS¯1¸R
+²Ù·´SO©4Ø!‘½sAaÄâ¯ÍPbÈ+‡•ò8âûxƒ·xî«¿_¸þ}O¾øÒˆ˜®©!Ò‹›rÆÚeY¨Ov¹™’:ÉÂ’tv§BÔ.0Z–§ªUCÂìÿÔKå\xú¼b=·y3àܽây}”syM%kźi	Ž!÷æaà
+z¥r@–k¨‹Y§uD‰-[¶@y
+pxâ˘áō>ŠŸÚ[—"ƒ4œD6ù£ÎUÅ׍†°êÕÔè„¥Zr}K¸µ[ªÈzë‹~c!¸úJN†Nä©ð¬
+Õ›çrõDÕ¼žÙ½$9S5Q»4ª 
+]¨ýIX
+"R*7>f¿_ÄñøzmØÞkƒÖŽpy0¹2.*›ºé9=ph&&r5ªIëQU’ˆ¯£7
+¿êÁd=: 0¤^ˆ;z+Òú;PI]ŽPü^º†¯°_‚úd·ïâ¤Ê&úÞ˜H'}z þìr^®Li)›mÀIÖ)k–÷Ñ/nôEM¦q&'_<}ûi52o®k>}¨ôù“T5-lxº\¯ÊÞƒ‹ôMóû¨09Ò#]2kÇ¿%ûܼÔ3;G²Ž¥Òå2ez6oÇ—Õœ18v™3Y÷T3§²t€,ä¤káæÍ›PÞDÞ‚Õiæ"Ÿ¶jÕ@ó7…9GÇT‘c9"§ùùÙî³ùü˜=­3Ü™.’ýØ}´ gï“åDÍ‚vŒŒŒ ¼A@@}ÊD»å
+¢“`oo/y“ (²7õÀ}=Ý–úPŸ„€7ŠFÞ,VÀÖ­°@!º+D²'{Ó¦M¢ì߬V¬ƒÄ@t3p¸“ûC >	!f(--…òÑIƒòÑy€òömÔ>öö½R-TqŽý#ʨŒà›Ì‚¤`—ý=þçÌ~0zPpÝ‹]>Þi•­ÄŒ“VÖ5zÚs“2B[>aVe?¾|ëöÃœ÷Ÿ*Ù{ð2=zjj<sâäáÊÄvl# ÷ðÎäìúÖtðÚe§+”·îVuÉÛ/G éá1Žã”Z:Vé7ÿûÍ%ðËçÌtäså ëí³ÖX/¼¨Ñþñ	¸UÉ€òÖ©´à@Øx•µ¯ÕgVØ>sMölVEfÄÒ½ée
+·ªMúd°´w+Ô1Kž&Ÿ/–ÅUT¢›ÔlܳD
+_ý:|A8³1µæNô͏ã¦iµj0žÿôLÜ¥ó©o‹!ïPÞ~àHòÊÒ
+ú‰Á/â#¾e¿7ür9(ð2ÿ3Ìòò›:Pc
+“Ü&Á*å
+ʔ7(oPބ
\ No newline at end of file

Added: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/hibernate-ee6.png
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/hibernate-ee6.png	                        (rev 0)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/hibernate-ee6.png	2012-08-20 10:02:48 UTC (rev 15057)
@@ -0,0 +1,87 @@
+‰PNG
+
+
+
+
+¬f–½¡		)**jÒ	Úƒ­SÐ1Øɬ¬¬Z`½­•Ã‹ä|2ù‚­•-æ@TD	`þÕ†äN]¯™K¶xÌð"ù…îܽû—ˆ!Žtdò*Àq@ï„Cƒ[Í`æÀ´¦nƒÃsªÉàúÆéwt¬9À0{©…‘‰ygˆ_.=öh Ñt¾øµ˜Ú±óÑüQ•¦Ûõ™&e¦“ š¦bt»<_øáy?,¾Ö'cše‘†ü8çîÖazMA°¹
+l¾ÔÂþ·µ>A´n‡rÃFÐlÕf
+j`ëI‹?°BÜírÕæúQk ™ÏÉÉQPP¸}ûöìٳщ¬  kwMJJŠššZ||¼žž^ëMÇÕb©šµ§Å¸‰E†¤
+yÕ.£Ú’ä/–ìùl{x°…-lí·§®Z|ÈÚíÓbÐÄ"CÒÆrÿÇö¼­fÂt:R›JFÀÜƺºW›ÑSñ²¸^
+×K²D×0+NPÞ
+Ò£âçëYÛv™Í‡5Æà©ù¬oÿñ7ý`ñ€>=ž%$?3tu/Üyq&ºº—ïƉÑÀµÝ"Ò†
+Æ>%Wk$°ÊßáólöR€2Z²£lì’qÕËôH”Ž4ž;¸äwÀÚ~ªžÏµ³
+#/Ç¿«y>Šý[b®7géñMÉÑóßü£_`£ÃZ¬z6Rp}>º°1²áE":¿¹à@BĝU	¡¶:õ
+ÎËÒ™µ³¿^CE‚œ4 o±å{¿U—\…äG– Nñ	z\ü¨¡ýåM"OU<¬zŒtºEÄ6{»»mÂÍw?µ$˜Óó²Ä-^÷Öí±,qû9›ÿæY!¨?@ôR>ÕëêθO–êòªIm*ñŸu—š,Ai:ÞôÓ7ÖÕ-áàc›V¹{W’-:ʧË3WÇLšüêÉãQO1ùÔŽ­Ñ;÷Yb⸁OŸ¿’4ò_‘2cc9ÆyU¹yÙý%qþú-h"œ&4CëîÝàÖ!ûܸ«ÓÞÙ	Ê›™«Þ¹àïv tÑFO»¿’I¿Æ§5¾Á™	Ï_!îÒ(?>'Ò~mƒÍ‘EG¾/Þ_L&ë·¦N]=(ÓX’
+À…ñûƒÆÓ…[7ŠLîóò©M%‚ú=^ožûÕ¸¸ƒ
+RMŽJEg}&[¼€½rV	qLç5ˆ–ý	W›*-µ®°,7R'WV©¡;IÐ)@rÞËÕýø†#2Æ&**ò€‡qX¡Ÿ0À5Ö2ƾ°Ýë"Ô¬7]ÕÊì´¿2œ“dúJŒûl8Žá¶d;’8kOÂ,¦›í¨"¥ÉÍ[ÞGÿF>A@>ýçøÄ]§t¹­ÿ&Ÿà>–nE§ö±Àb‚ýw‚Vûƒ*Їò‰†zº¹väÖ1ì@R¾¡†RÛp<ÂÂ
+ÕX¨Óx=
+=pos.f0eˆ»ó—ŒÔM'¢U„k0„7”d†-ÿO¯Ÿ!ZE‡ŒÏ½«“ˆ¡î™ak"rH$û+ùÔJžÚÄxçCÓGÝ&Ý£
+h”´””T´BV¨(3&ŒªÁ¨qŒÑ²ŠÖpãzc„蔥¨ù)¢9ìŸ~†*_½×noU´	8:XIó4"IïÞq·ôÆSnä´Í»Å›²ò“6'<vëêY‡ÏDŸÝ½é»­Ÿ¦Hª^–ŽÒ•ôرÔëÀåƒóÇ®±¹S÷íY°Á¤‚GXzšùÎ…3Gÿu|
+l¾™„e€A¿…'Xf(X²²ûÔ­¥­¿ÞS}3/Uë+ØýL³mYbß¾2dŽíÁ9ŒëÂÀÙ&Éñ–¤¦ÛøL°?Dê
+5ê{\¢—‹‰‰ý”è?p‹Ko†f'¶ºvöšNbÔ¨Q‹£¦­½¼¼\\\GHHˆ•• _ƒ]ú‚€u•
+ëî֝6Ø%6v•
+âØ·oß®]»‡ŸŸŸ½=z 411	äeëù‚Ö÷ˆ²®ÊiÓ“µ?œõaEEKHXÒžÕ¹îÚ·Œ1	ÕµèLÌ›y0°îça]Èú¨‡Å$À¼ŸÆ$“hÓуBÐúfÔÖLb÷d•3ëCö–ŒU m²aìŸà¼ääS3|9³Âü±9ùØì®ÇÔ¦#‘ô¶±}G³›55‘ðX©â—UwÈq‚OݍÖvŒèûHÚ6z„¡(jkÒ°]ä 9ˆûÞn³—?ìÆö|j´ê÷S
+7©jhó%Ì£DÆ“7ëén?œ$Šuª®Þõx²¥%Mß.[;FLrþ7èjˆWܧ:;Ïsú"x
+fœ°;b×&M‹@öF“۲ߦE&·Ûî!<™¸ç–Î d¨ñOØúÓ«=ß÷ׁ|bÀÌPïHL<R6u”zÀ‡öÜ{çê~0Üw9½Ó͐^ýqb‹¥i×¾UÏóµMÓeL
+RûᲿö½è„Þ•Æl@‡ÇÒ-gWçHdÞΖ÷\åʈÂÅcëa»×%ÌóMÈ{:t^‘~q;îååQ/¯–Ûz}£3	˜9¿C2pÝgL9
+O†ö‹ñ˜‚­¢ã
+tfÑ€p.Æ¿ z÷Ã
+Áä2ƒæG¯¤š’
+/våTÓňgV¾D´ù¹²/ó-c„Œ‘Ð÷µðˆ«`žþ¤~Ø?u[™rënði³Ï²íŽ+ïØújyC矒Ñ)FÃǃë8¸bÌ‚D~ÒµCNññ“P³<ÒCú”BPK0‰Eú'Y°·
+@>µ‡áN¦JÑ—b_©Y[­‰xð^ã<"ØÇa°ô4ógŽfÉÓOaábðö
+éy9ée#ýNyÚ¯uÔwT
+¸Ì
+
+/àjîïÅW’me
+âömpZ~
+ßvéèb9XÏ 8ý>h”œ'Wÿ½z÷iò§¢jÔ4
+¿¤²úä¹ækÇÉðÕ¥^ay± Ï?ánÚì˜Z»m±×kšúÎðCseð?§w”µôŽƒux¨aPøî1ÂL_>Ù.3\`õ‚âÔEÔ9·ÎüØg0Èâð¡ðÑ¢˜†T—ã¹ÎÛ62DÓõZÐ̍A„—ˈw=g\Ù§Û—¡
+5~»æàõºQhêþ}sPYêD8’=¯\R¿?»ò†
+DµÇ|õ3±¹“ÏþNlá —É!¨îAqúmð
+´%[°y4VgúL‘‘ã©õùŸJfJÊ/ñs¶Äý±‹Ë+
+ÐAI}æY»ƒi@Ê8Ðe²®³át¼Aõµóüøڬ˂í-Àó»Äl‰ª,¬Dþ«ŒÛE8çªÄì3iUo‚WZ×ܱ%5îµ=(Ní(rTߪÞápMíõs"Á><Ýÿ+,«:x²Ê ¡j£GjêžZ°Û:ñ’úž~OMm¢½#FY$‘vØîT¸!Èz¤à¯„ÓñpÈçÆ/Œ~…˜­øÄ"]i6UjѶJlú'NDc
+A#ÜåÍÇè—eçHãaMû;Ä©ó["(o|[GWH/>vq›c<%'¥
+J«±Ãb<ÂÒýŽPÓ™;mÆh	^x*{\Ú÷„S6^IÕmÔuJIVZò¿ðÊ«OØÌ‘çchÕoü½¼ïühõ¢±ºø[ÊCäwŒstÝ1MžÍ‚âÄ% d^b“%±ñ»O™iÐmÊPË^;\O¥`'öËcO¼š¸{¼T[§˜;Xø%¦U¿ú÷
+Ð8§½^#&—©Õ™	ט³
+o/?ÐðúGÏ	e9Pª|uüÐþkyM&k„”çØ­\®+#
+°9‡|ò-"¹¥Œª¯u°%É1­Zz‡h˜ÑÜŽZ]ÎÛ”œ–:iÃL;ÈS¨ìõè¸HTkáÛ;]Ú·í¾¼í¦/4=I]J!^r¦Í¥™SHœ<==]áõ·]Ƶk×x¡,A at p‹-‚Ê甽ÇoÙ²¥ëñóÀùV®§ª®——/Gd‰#ƒ! z
+©À...PÙƒ€àœ²—••¥¬¬ÜÅP<<<F/p‡¥	ÁTO¸´¸ëT`` o×e	­­-Tö  8§ìÁ"€€à’““y‘aœ—ƒ€è:ÔÕÕa^ƒÚLÅGf×´K 1éãÓbQXTPœ :®üæÉ+"¬ç~ïçýS.LÈ{<(ò†D-ݳìÉðãï¿­pÿÔŸ–Ø}ìK¡+ Ñš=ƪ…§—)
+©ôÅâÀ1AZk	¬Jq\!¿¾í
+Ø}Be¯‡Á'ÿmžÃ’	­V 8S,'C<3I&«€y<ý‡ø£ƒßè%­š,õ8Ý&¥T”Û”¨6‚~uWtŒY¾AaöG9=‘Ì—2Ÿ?ŠåeÉ]Ü¡Ðy• …ÚÚ·bŽË»a¨éŠ2¾œqò˜ÞR9+ì³d¶O¬¬Ý­þ‘ÂLK	/
+ò²k at wEÀRøý¾©R:Üyx6«ò~Ÿåö~Äð"™áEZsÓkS†Ÿ‘®e¾¬. ‰V‹âA9³êë¼±4­ì C ÕHÜv™Ê¬ñ@6ßÈêË0…z<À»4îBÇ©ãmsòO…‹º	pWD×&"D‹íüúï>¥bì¹A<ÚeJt›¤ý³—¯+ä‹ìDÎû)`Šau‚ñQ]ÿaU|¢ÙylŒË6ÛþEŠ@9…-¢¾ióë„¿¼/e·³Œ°cÊÞ¢øä¿®$~m¬û˜ ›–"VðM°ºSçhübiåóÕ5ªX¶·øf­&fÕI¾‰ëŸöQ¬¨˜?ÿ#ÚÉàk%+”Ç䏙XއɜDþŠƒ¥Ù>}$•[ÀK¥
+}zÎ#­R6Òò…¦Šp´ûˆtLب}_¿ã4®²£gžw‚¥ÐuðˆUŒœü:=Ü’)gZ:®SA×)NOG~­^PæHhá%oñÔ΢µvGã˜0¦uÈå³$̆Ìãày'¨ìA@ô> –Œ`)@@p³d„Á·î°@! ²Ç¸ºÂ#§rJ#\ú€àRðà€¨
+i
+¥W¼°ê8ðˆ5qQ[QÖ½²¬26)”ç¾¾ÏÛ¨ 9§®¥8©Ì2#ҁúį6ZIˆ¹„´0HeNPYQ6V$ö»UÀ–¼¸ªÚØqjjò^U2åïç{Å-#²‚Pœ ~ïNo±Ë01ˆOK¸x3»É_iŠžZÊŠs
+Õ.ŸOaAovÀu¢,ҬבOF<+ê+!&!ÕWBVI[KÔ5¼¸H—6•5|9à{«„ù(»üÄ.cE$U´ïOÂì/µñŽW@yÏlY*Þ¾z•L(oTž8ô×2•=ˆß@ÿiêõÈg?Ù=Eu,ö;Ž—¡2^z¢gÄr`pð=ÔôJÍóóÖsÏ·¨ÃJó×;/Rã¼~Ä«¸ÄôŸ{!w‹ýÆ…u¶˜jâ`EÞòì是’BÂH„‡™™ôKºPÈ Ê}`ÿ
+=˜(N½‚šž¤ŽÆ?#nÛ*¥~O¶ðäºíq»ãÏâç“ÒuðÐuèLJU­¯­;JªšÃͶ’*Ô*U˜b'ª¶1Œ¸ñWj†òjÒê.gŠ'(NPœ   ºCœàu \
+NU`^(	œï‚‚‚455õôôX>)))W¯^uvvfÿÀÏÏO[[›,11ñÞ½{»víjA†Ð ”“íÛ·O__¿Y||¼½½}Çd
+BÙš¬¶¶2õ·1mÚ´ ""â§,k,PSSë˜ÌÇÇÇØظYRR’MÇd·oßNOOoM¶jÕ*v2$Ò?V€ÿ³èÕÒ¢×d
\ No newline at end of file



More information about the seam-commits mailing list