[seam-commits] Seam SVN: r15534 - in branches/enterprise/WFK-2_1/examples: blog/blog-ejb and 36 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon Jun 3 15:31:51 EDT 2013


Author: rsmeral
Date: 2013-06-03 15:31:51 -0400 (Mon, 03 Jun 2013)
New Revision: 15534

Added:
   branches/enterprise/WFK-2_1/examples/jpa/README.md
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/BookingTest.java
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/ChangePasswordTest.java
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/Deployments.java
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/LoginTest.java
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/arquillian.xml
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/web.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/BookingTest.java
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/ChangePasswordTest.java
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/Deployments.java
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/LoginTest.java
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/arquillian.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/components.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/jboss-deployment-structure.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/persistence.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/web.xml
   branches/enterprise/WFK-2_1/examples/spring/README.md
Removed:
   branches/enterprise/WFK-2_1/examples/jpa/jpa-tests/
   branches/enterprise/WFK-2_1/examples/jpa/readme.txt
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-tests/
   branches/enterprise/WFK-2_1/examples/nestedbooking/readme.txt
   branches/enterprise/WFK-2_1/examples/spring/readme.txt
   branches/enterprise/WFK-2_1/examples/spring/spring-tests/
Modified:
   branches/enterprise/WFK-2_1/examples/blog/blog-ear/pom.xml
   branches/enterprise/WFK-2_1/examples/blog/blog-ejb/pom.xml
   branches/enterprise/WFK-2_1/examples/blog/blog-web/pom.xml
   branches/enterprise/WFK-2_1/examples/booking/booking-ear/pom.xml
   branches/enterprise/WFK-2_1/examples/booking/booking-ejb/pom.xml
   branches/enterprise/WFK-2_1/examples/booking/booking-web/pom.xml
   branches/enterprise/WFK-2_1/examples/groovybooking/groovybooking-web/pom.xml
   branches/enterprise/WFK-2_1/examples/hibernate/hibernate-web/pom.xml
   branches/enterprise/WFK-2_1/examples/jee6/jee6-web/pom.xml
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/pom.xml
   branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/main/resources/META-INF/persistence.xml
   branches/enterprise/WFK-2_1/examples/jpa/pom.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ear/pom.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/pom.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-web/pom.xml
   branches/enterprise/WFK-2_1/examples/nestedbooking/pom.xml
   branches/enterprise/WFK-2_1/examples/spring/pom.xml
   branches/enterprise/WFK-2_1/examples/spring/spring-web/pom.xml
Log:
jpa, nestedbooking, spring converted

Modified: branches/enterprise/WFK-2_1/examples/blog/blog-ear/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/blog/blog-ear/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/blog/blog-ear/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blog</artifactId>
         <groupId>org.jboss.seam.examples</groupId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

Modified: branches/enterprise/WFK-2_1/examples/blog/blog-ejb/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/blog/blog-ejb/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/blog/blog-ejb/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.jboss.seam.examples</groupId>
         <artifactId>blog</artifactId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

Modified: branches/enterprise/WFK-2_1/examples/blog/blog-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/blog/blog-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/blog/blog-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -6,7 +6,7 @@
     <parent>
         <artifactId>blog</artifactId>
         <groupId>org.jboss.seam.examples</groupId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

Modified: branches/enterprise/WFK-2_1/examples/booking/booking-ear/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/booking/booking-ear/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/booking/booking-ear/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -4,7 +4,7 @@
     <parent>
         <groupId>org.jboss.seam.examples</groupId>
         <artifactId>booking</artifactId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     

Modified: branches/enterprise/WFK-2_1/examples/booking/booking-ejb/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/booking/booking-ejb/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/booking/booking-ejb/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -4,7 +4,7 @@
     <parent>
         <groupId>org.jboss.seam.examples</groupId>
         <artifactId>booking</artifactId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     

Modified: branches/enterprise/WFK-2_1/examples/booking/booking-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/booking/booking-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/booking/booking-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -4,7 +4,7 @@
     <parent>
         <groupId>org.jboss.seam.examples</groupId>
         <artifactId>booking</artifactId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     

Modified: branches/enterprise/WFK-2_1/examples/groovybooking/groovybooking-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/groovybooking/groovybooking-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/groovybooking/groovybooking-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -6,7 +6,7 @@
     <parent>
         <artifactId>groovybooking</artifactId>
         <groupId>org.jboss.seam.examples</groupId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

Modified: branches/enterprise/WFK-2_1/examples/hibernate/hibernate-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/hibernate/hibernate-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/hibernate/hibernate-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.jboss.seam.examples</groupId>
         <artifactId>hibernate</artifactId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

Modified: branches/enterprise/WFK-2_1/examples/jee6/jee6-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/jee6/jee6-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/jee6/jee6-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.jboss.seam.examples</groupId>
         <artifactId>jee6</artifactId>
-        <version>2.3.1-SNAPSHOT</version>
+        <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

Added: branches/enterprise/WFK-2_1/examples/jpa/README.md
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/README.md	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/jpa/README.md	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,58 @@
+Seam JPA Example
+================
+
+This is the Hotel Booking example implemented in Seam POJO and Hibernate JPA.
+
+Running the example
+-------------------
+
+To deploy the example to a running JBoss AS instance, follow these steps:
+
+1. In the example root directory run:
+
+    mvn clean install
+
+2. Set JBOSS_HOME environment property.
+
+3. In the jpa-web directory run:
+
+    mvn jboss-as:deploy
+
+4. Open this URL in a web browser: http://localhost:8080/jpa-web
+
+
+Testing the example
+-------------------
+
+This example is covered by integration and functional tests. All tests use the following technologies:
+
+* __Arquillian__ -  as the framework for EE testing, for managing of container lifecycle and deployment of test archive,
+* __ShrinkWrap__ - to create the test archive (WAR).
+
+
+### Integration tests
+
+Integration tests cover core application logic and reside in the EJB module. In addition to Arquillian and ShrinkWrap, the integration tests also use:
+
+* __JUnitSeamTest__ - to hook into the JSF lifecycle and assert server-side state,
+* __ShrinkWrap Resolver__ - to resolve dependencies of the project for packaging in the test archive.
+
+The tests are executed in Maven's test phase. By default they are skipped and can be executed on JBoss AS with:
+
+    mvn clean test -Darquillian=jbossas-managed-7
+
+The `JBOSS_HOME` environment variable must be set and point to a JBoss AS instance directory.
+
+To test on a running server, use
+
+    mvn clean test -Darquillian=jbossas-remote-7
+
+Testing in JBDS
+---------------
+### Integration tests
+
+1. Open JBDS and start a configured instance of JBoss AS
+2. Import the example project and its submodules
+3. In the _Project Explorer_, select the Web module project, then
+    1. Type `Ctrl+Alt+P` (_Select Maven Profiles_) and check `integration-tests` and `arq-jbossas-7-remote`
+    2. Right-click the module and select _Run As_ - _JUnit Test_

Modified: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/jpa-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/jpa/jpa-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -1,14 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
+        <groupId>org.jboss.seam.examples</groupId>
         <artifactId>jpa</artifactId>
-        <groupId>org.jboss.seam.examples</groupId>
         <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    
-    <groupId>org.jboss.seam.examples</groupId>
+
+    <groupId>org.jboss.seam.examples.jpa</groupId>
     <artifactId>jpa-web</artifactId>
     <packaging>war</packaging>
     <name>JPA Web Module (EE6)</name>
@@ -84,14 +85,122 @@
             <artifactId>jboss-servlet-api_3.0_spec</artifactId>
             <scope>provided</scope>
         </dependency>
+
+        <!-- Test dependencies -->
+        <dependency>
+            <groupId>org.jboss.shrinkwrap.resolver</groupId>
+            <artifactId>shrinkwrap-resolver-depchain</artifactId>
+            <type>pom</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.junit</groupId>
+            <artifactId>arquillian-junit-container</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.protocol</groupId>
+            <artifactId>arquillian-protocol-servlet</artifactId>
+            <scope>test</scope>
+        </dependency>
+ 
     </dependencies>
-  
+    
+    <profiles>
+        <profile>
+            <id>integration-tests</id>
+            <activation>
+                <property>
+                    <name>arquillian</name>
+                </property>
+            </activation>
+            <properties>
+                <jndiPattern>java:app/jpa-web/#{ejbName}</jndiPattern>
+                <distributable>false</distributable>
+            </properties>
+            <build>
+                <testResources>
+                    <testResource>
+                        <directory>src/test/resources</directory>
+                        <filtering>true</filtering>
+                    </testResource>
+                </testResources>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <skip>false</skip>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>arq-jbossas-7-managed</id>
+            <activation>
+                <property>
+                    <name>arquillian</name>
+                    <value>jbossas-managed-7</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>org.jboss.as</groupId>
+                    <artifactId>jboss-as-arquillian-container-managed</artifactId>
+                    <scope>test</scope>
+                </dependency>                
+            </dependencies>
+        </profile>
+
+        <profile>
+            <id>arq-jbossas-7-remote</id>
+            <activation>
+                <property>
+                    <name>arquillian</name>
+                    <value>jbossas-remote-7</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>org.jboss.as</groupId>
+                    <artifactId>jboss-as-arquillian-container-remote</artifactId>
+                    <scope>test</scope>
+                </dependency>                
+            </dependencies>
+        </profile>
+    </profiles>
+
     <build>
         <finalName>jpa-web</finalName>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.jboss.as.plugins</groupId>
+                    <artifactId>jboss-as-maven-plugin</artifactId>
+                    <version>${version.jboss.maven.plugin}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
         <plugins>
+            <!-- Skip tests by default -->
+            <plugin> 
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-war-plugin</artifactId>
+                <version>${version.war.plugin}</version>
                 <configuration>
                     <webResources>
                         <resource>
@@ -102,19 +211,7 @@
                     <attachClasses>true</attachClasses>
                 </configuration>
             </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-		<artifactId>jboss-maven-plugin</artifactId>
-		<version>1.5.0</version>
-                <configuration>
-                    <jbossHome>${jboss.home}</jbossHome>
-                    <serverName>${jboss.domain}</serverName>
-                    <fileNames>
-                        <directory>${project.build.directory}/${project.build.finalName}.war</directory>
-                    </fileNames>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
-  
+
 </project>

Modified: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/main/resources/META-INF/persistence.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/main/resources/META-INF/persistence.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/main/resources/META-INF/persistence.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -9,6 +9,7 @@
       <properties>
          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
          <property name="hibernate.show_sql" value="true"/>
+         <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
 		 <!-- Binds the EntityManagerFactory to JNDI where Seam can look it up.
               This is only relevant when the container automatically loads the persistence unit, as is the case in JBoss AS 5. -->
          <property name="jboss.entity.manager.factory.jndi.name" value="java:/bookingEntityManagerFactory"/>

Added: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/BookingTest.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/BookingTest.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/BookingTest.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,303 @@
+//$Id: BookingTest.java 6505 2007-10-12 11:24:54Z pmuir $
+package org.jboss.seam.example.jpa.test;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import javax.faces.model.DataModel;
+import javax.faces.model.ListDataModel;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.core.Manager;
+import org.jboss.seam.example.jpa.Booking;
+import org.jboss.seam.example.jpa.Hotel;
+import org.jboss.seam.example.jpa.HotelBookingAction;
+import org.jboss.seam.example.jpa.User;
+import org.jboss.seam.mock.JUnitSeamTest;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class BookingTest extends JUnitSeamTest
+{
+   @Deployment(name="BookingTest")
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      return Deployments.jpaDeployment();
+   }
+   
+   @Test
+   public void testBookHotel() throws Exception
+   {
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void invokeApplication() throws Exception
+         {
+            Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "foobar");
+            invokeAction("#{identity.login}");
+         }
+         
+      }.run();
+      
+      new FacesRequest("/main.xhtml") {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            setValue("#{hotelSearch.searchString}", "Union Square");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            Assert.assertNull(invokeAction("#{hotelSearch.find}"));
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
+            Assert.assertEquals(1, hotels.getRowCount());
+            Assert.assertEquals("NY",( (Hotel) hotels.getRowData() ).getCity() );
+            Assert.assertEquals("Union Square", getValue("#{hotelSearch.searchString}"));
+            Assert.assertTrue(!Manager.instance().isLongRunningConversation());
+         }
+         
+      }.run();
+      
+      String id = new FacesRequest("/main.xhtml") {
+         
+         @Override
+         protected void invokeApplication() throws Exception {
+            HotelBookingAction hotelBooking = (HotelBookingAction) getInstance("hotelBooking");
+            DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
+            Assert.assertEquals(1, hotels.getRowCount());
+            hotelBooking.selectHotel( (Hotel) hotels.getRowData() );
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            Hotel hotel = (Hotel) Contexts.getConversationContext().get("hotel");
+            Assert.assertEquals("NY",hotel.getCity() );
+            Assert.assertEquals("10011",hotel.getZip() );
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+         }
+         
+      }.run();
+      
+      id = new FacesRequest("/hotel.xhtml", id) {
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeAction("#{hotelBooking.bookHotel}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            Assert.assertNotNull(getValue("#{booking.user}"));
+            Assert.assertNotNull(getValue("#{booking.hotel}"));
+            Assert.assertNull(getValue("#{booking.creditCard}"));
+            Assert.assertNull(getValue("#{booking.creditCardName}"));
+            Booking booking = (Booking) Contexts.getConversationContext().get("booking");
+            Assert.assertTrue(booking.getHotel()==Contexts.getConversationContext().get("hotel"));
+            Assert.assertTrue(booking.getUser()==Contexts.getConversationContext().get("user"));
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+         }
+         
+      }.run();
+      
+      new FacesRequest("/book.xhtml", id) {
+
+         @Override
+         protected void processValidations() throws Exception
+         {
+            validateValue("#{booking.creditCard}", "123");
+            Assert.assertTrue(isValidationFailure());
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            Iterator messages = FacesContext.getCurrentInstance().getMessages();
+            Assert.assertTrue(messages.hasNext());
+            Assert.assertEquals("Credit card number must 16 digits long", ( (FacesMessage) messages.next() ).getSummary());
+            Assert.assertFalse(messages.hasNext());
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+         }
+         
+         @Override
+         protected void afterRequest()
+         {
+            Assert.assertTrue(!isInvokeApplicationBegun());
+         }
+         
+      }.run();
+      
+      new FacesRequest("/book.xhtml", id) {
+
+         @Override
+         protected void processValidations() throws Exception
+         {
+            validateValue("#{booking.creditCardName}", "");
+            Assert.assertTrue(isValidationFailure());
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            Iterator messages = FacesContext.getCurrentInstance().getMessages();
+            Assert.assertTrue(messages.hasNext());
+            Assert.assertEquals("Credit card name is required", ( (FacesMessage) messages.next() ).getSummary());
+            Assert.assertFalse(messages.hasNext());
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+         }
+         
+         @Override
+         protected void afterRequest()
+         {
+            Assert.assertFalse(isInvokeApplicationBegun());
+         }
+         
+      }.run();
+      
+      new FacesRequest("/book.xhtml", id) {
+         
+         @Override @SuppressWarnings("deprecation")
+         protected void updateModelValues() throws Exception
+         {  
+            setValue("#{booking.creditCard}", "1234567891021234");
+            setValue("#{booking.creditCardName}", "GAVIN KING");
+            setValue("#{booking.beds}", 2);
+            Date now = new Date();
+            setValue("#{booking.checkinDate}", now);
+            setValue("#{booking.checkoutDate}", now);
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert invokeAction("#{hotelBooking.setBookingDetails}")==null;
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            Iterator messages = FacesContext.getCurrentInstance().getMessages();
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+            Assert.assertTrue(messages.hasNext());
+            FacesMessage message = (FacesMessage) messages.next();
+            Assert.assertEquals("Check out date must be later than check in date",message.getSummary());
+            Assert.assertFalse(messages.hasNext());
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+         }
+         
+         @Override
+         protected void afterRequest()
+         {
+            assert isInvokeApplicationComplete();
+         }
+         
+      }.run();
+      
+      new FacesRequest("/book.xhtml", id) {
+         
+         @Override @SuppressWarnings("deprecation")
+         protected void updateModelValues() throws Exception
+         {
+            Calendar cal = Calendar.getInstance();
+            cal.add(Calendar.DAY_OF_MONTH, 2);
+            setValue("#{booking.checkoutDate}", cal.getTime() );
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeAction("#{hotelBooking.setBookingDetails}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            Assert.assertTrue(Manager.instance().isLongRunningConversation());
+         }
+         
+         @Override
+         protected void afterRequest()
+         {
+            Assert.assertTrue( isInvokeApplicationComplete() );
+         }
+         
+      }.run();
+      
+      new FacesRequest("/confirm.xhtml", id) {
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeAction("#{hotelBooking.confirm}");
+         }
+         
+         @Override
+         protected void afterRequest()
+         {
+            Assert.assertTrue( isInvokeApplicationComplete() );
+         }
+         
+      }.run();
+      
+      new NonFacesRequest("/main.xhtml") {
+
+         @Override
+         protected void renderResponse()
+         {
+            ListDataModel bookings = (ListDataModel) getInstance("bookings");
+            Assert.assertEquals(1, bookings.getRowCount());
+            bookings.setRowIndex(0);
+            Booking booking = (Booking) bookings.getRowData();
+            Assert.assertEquals("NY", booking.getHotel().getCity());
+            Assert.assertEquals("gavin", booking.getUser().getUsername());
+            Assert.assertFalse(Manager.instance().isLongRunningConversation());
+         }
+         
+      }.run();
+      
+      new FacesRequest("/main.xhtml") {
+         
+         @Override
+         protected void invokeApplication()
+         {
+            ListDataModel bookings = (ListDataModel) Contexts.getSessionContext().get("bookings");
+            bookings.setRowIndex(0);
+            invokeAction("#{bookingList.cancel}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            ListDataModel bookings = (ListDataModel) Contexts.getSessionContext().get("bookings");
+            Assert.assertEquals(0, bookings.getRowCount());
+            Assert.assertFalse(Manager.instance().isLongRunningConversation());
+         }
+         
+      }.run();
+      
+   }
+   
+}

Added: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/ChangePasswordTest.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/ChangePasswordTest.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/ChangePasswordTest.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,151 @@
+//$Id: ChangePasswordTest.java 6505 2007-10-12 11:24:54Z pmuir $
+package org.jboss.seam.example.jpa.test;
+
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.core.Manager;
+import org.jboss.seam.example.jpa.User;
+import org.jboss.seam.mock.JUnitSeamTest;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class ChangePasswordTest extends JUnitSeamTest
+{
+
+   @Deployment(name="ChangePasswordTest")
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      return Deployments.jpaDeployment();
+   }
+
+   @Test
+   public void testChangePassword() throws Exception
+   {
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void invokeApplication() throws Exception
+         {
+            Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "foobar");
+            invokeMethod("#{identity.login}");
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void processValidations() throws Exception
+         {
+            validateValue("#{user.password}", "xxx");
+            assert isValidationFailure();
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            setValue("#{user.password}", "xxxyyy");
+            setValue("#{changePassword.verify}", "xxyyyx");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert invokeAction("#{changePassword.changePassword}")==null;
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            setValue("#{user.password}", "xxxyyy");
+            setValue("#{changePassword.verify}", "xxxyyy");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeMethod("#{changePassword.changePassword}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("xxxyyy");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            assert getValue("#{user.password}").equals("xxxyyy");
+            setValue("#{user.password}", "foobar");
+            setValue("#{changePassword.verify}", "foobar");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeMethod("#{changePassword.changePassword}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+
+         }
+         
+      }.run();
+      
+   }
+
+}

Added: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/Deployments.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/Deployments.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/Deployments.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,39 @@
+package org.jboss.seam.example.jpa.test;
+
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+
+import java.io.File;
+import org.jboss.seam.example.jpa.Booking;
+import org.jboss.shrinkwrap.resolver.api.maven.Maven;
+
+public class Deployments {
+
+    public static WebArchive jpaDeployment() {
+
+        File[] libs = Maven.resolver().loadPomFromFile("pom.xml")
+                .importCompileAndRuntimeDependencies()
+                .resolve().withTransitivity().asFile();
+
+        // Get File reference to src/main/webapp/WEB-INF, to avoid duplication of resources for the test archive
+        // Depends on shrinkwrap-resolver-maven-plugin to set the property
+        File webInf = new File(new File("pom.xml").getParentFile(), "src/main/webapp/WEB-INF");
+
+        return ShrinkWrap.create(WebArchive.class, "jpa-web.war")
+                .addPackage(Booking.class.getPackage())
+                
+                // copy classpath resources to WAR classpath
+                .addAsResource("import.sql")
+                .addAsResource("seam.properties")
+                .addAsResource("META-INF/persistence.xml")
+                
+                // copy files from src/main/webapp to test-archive's WEB-INF
+                .addAsWebInfResource(new File(webInf, "components.xml"))
+                .addAsWebInfResource(new File(webInf, "jboss-deployment-structure.xml"))
+                .addAsWebInfResource(new File(webInf, "pages.xml"))
+                
+                // modified web.xml, defines only MockSeamListener
+                .addAsWebInfResource("web.xml")
+                .addAsLibraries(libs);
+    }
+}

Added: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/LoginTest.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/LoginTest.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/java/org/jboss/seam/example/jpa/test/LoginTest.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,129 @@
+//$Id: LoginTest.java 6505 2007-10-12 11:24:54Z pmuir $
+package org.jboss.seam.example.jpa.test;
+
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.seam.core.Manager;
+import org.jboss.seam.mock.JUnitSeamTest;
+import org.jboss.seam.web.Session;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class LoginTest extends JUnitSeamTest
+{
+
+   @Deployment(name="LoginTest")
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      return Deployments.jpaDeployment();
+   }
+
+
+   @Test
+   public void testLoginComponent() throws Exception
+   {
+      new ComponentTest() {
+
+         @Override
+         protected void testComponents() throws Exception
+         {
+            assert getValue("#{identity.loggedIn}").equals(false);
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "foobar");
+            invokeMethod("#{identity.login}");
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert getValue("#{identity.loggedIn}").equals(true);
+            invokeMethod("#{identity.logout}");
+            assert getValue("#{identity.loggedIn}").equals(false);
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "tiger");
+            invokeMethod("#{identity.login}");
+            assert getValue("#{identity.loggedIn}").equals(false);
+         }
+         
+      }.run();
+   }
+   
+   @Test
+   public void testLogin() throws Exception
+   {
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void invokeApplication()
+         {
+            assert !isSessionInvalid();
+            assert getValue("#{identity.loggedIn}").equals(false);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            assert !isSessionInvalid();
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "foobar");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeAction("#{identity.login}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert !isSessionInvalid();
+            assert getValue("#{identity.loggedIn}").equals(true);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert !Manager.instance().isLongRunningConversation();
+            assert !isSessionInvalid();
+            invokeMethod("#{identity.logout}");
+            assert Session.instance().isInvalid();
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{identity.loggedIn}").equals(false);
+            assert Session.instance().isInvalid();
+         }
+         
+      }.run();
+      
+   }
+
+}

Added: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/arquillian.xml
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/arquillian.xml
___________________________________________________________________
Added: svn:mime-type
   + application/xml

Added: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/web.xml
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/WFK-2_1/examples/jpa/jpa-web/src/test/resources/web.xml
___________________________________________________________________
Added: svn:mime-type
   + application/xml

Modified: branches/enterprise/WFK-2_1/examples/jpa/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/jpa/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -3,25 +3,43 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.jboss.seam.examples</groupId>
     <artifactId>jpa</artifactId>
-    <parent>
-        <groupId>org.jboss.seam</groupId>
-        <artifactId>examples</artifactId>
-        <version>2.3.1.Final-redhat-2</version>
-    </parent>
+    <version>2.3.1.Final-redhat-2</version>
     <packaging>pom</packaging>
     <name>JPA Example (EE6)</name>
     
     <properties>
         <example.name>jpa</example.name>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.target>1.6</maven.compiler.target>
+        <maven.compiler.source>1.6</maven.compiler.source>
+        
+        <!-- To use jacoco, set jacoco.agent system property to something like
+        -javaagent:/path/to/jacocoagent.jar=append=true,destfile=/path/to/output/jacoco.exec -->
+        <jacoco.agent />
+        
+        <!-- To use custom Maven settings with ShrinkWrap Resolver, uncomment 
+        and customize the following property.  -->
+        <!--<maven.user.settings>/path/to/custom/settings.xml</maven.user.settings>-->
+        
+        <version.commons.logging>1.1.1</version.commons.logging>
+        <version.shrinkwrap.resolver>2.0.0-beta-4</version.shrinkwrap.resolver>
+        
+        <!-- Plugin versions -->
+        <version.dependency.plugin>2.5.1</version.dependency.plugin>
+        <version.resources.plugin>2.6</version.resources.plugin>
+        <version.surefire.plugin>2.10</version.surefire.plugin>
+        <version.compiler.plugin>2.3.1</version.compiler.plugin>
+        <version.war.plugin>2.1.1</version.war.plugin>
+        <version.jboss.maven.plugin>7.4.Final</version.jboss.maven.plugin>
     </properties>
     
     <modules>
         <module>jpa-web</module>
-        <module>jpa-tests</module>
     </modules>
     
     <dependencyManagement>
         <dependencies>
+            <!-- Modules -->
             <dependency>
                 <groupId>org.jboss.seam.examples</groupId>
                 <artifactId>jpa-web</artifactId>
@@ -34,6 +52,82 @@
                 <version>${project.version}</version>
                 <classifier>classes</classifier>
             </dependency>
+            
+            <!-- BOMs -->
+            <dependency>
+                <groupId>org.jboss.shrinkwrap.resolver</groupId>
+                <artifactId>shrinkwrap-resolver-bom</artifactId>
+                <version>${version.shrinkwrap.resolver}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            
+            <dependency>
+                <groupId>org.jboss.seam</groupId>
+                <artifactId>bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            
+            <!-- Common provided dependencies -->
+            <dependency>
+                <groupId>commons-logging</groupId>
+                <artifactId>commons-logging</artifactId>
+                <version>${version.commons.logging}</version>
+                <scope>provided</scope>
+            </dependency>
+            
+            <!-- TestNG is not necessary -->
+            <dependency>
+                <groupId>org.jboss.seam</groupId>
+                <artifactId>jboss-seam</artifactId>
+                <version>${project.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.testng</groupId>
+                        <artifactId>testng</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>junit</groupId>
+                        <artifactId>junit</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
         </dependencies>
     </dependencyManagement>
+    
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!-- Manage plugin versions for build stability -->
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${version.surefire.plugin}</version>
+                    <configuration>
+                        <systemPropertyVariables>
+                            <org.apache.maven.user-settings>${maven.user.settings}</org.apache.maven.user-settings>
+                        </systemPropertyVariables>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>${version.dependency.plugin}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>${version.resources.plugin}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${version.compiler.plugin}</version>
+                    <configuration>
+                        <source>${maven.compiler.source}</source>
+                        <target>${maven.compiler.target}</target>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        
+    </build>
 </project>

Deleted: branches/enterprise/WFK-2_1/examples/jpa/readme.txt
===================================================================
--- branches/enterprise/WFK-2_1/examples/jpa/readme.txt	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/jpa/readme.txt	2013-06-03 19:31:51 UTC (rev 15534)
@@ -1,18 +0,0 @@
-Seam JPA Example
-================
-
-This is the Hotel Booking example implemented in Seam POJO and Hibernate JPA.
-
-To deploy the example, follow these steps:
-
-* In the example root directory run:
-
-    mvn clean install
-
-* Set JBOSS_HOME environment property.
-
-* In the jpa-web directory run:
-
-    mvn jboss-as:deploy
-
-* Open this URL in a web browser: http://localhost:8080/jpa-web

Modified: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ear/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ear/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ear/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -2,8 +2,8 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
+        <groupId>org.jboss.seam.examples</groupId>
         <artifactId>nestedbooking</artifactId>
-        <groupId>org.jboss.seam.examples</groupId>
         <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -28,7 +28,6 @@
             <groupId>org.jboss.seam</groupId>
             <artifactId>jboss-seam</artifactId>
             <type>ejb</type>
-            <scope>compile</scope>
             <exclusions>
                 <exclusion>
                     <groupId>org.testng</groupId>
@@ -48,12 +47,21 @@
 
     <build>
         <finalName>seam-nestedbooking</finalName>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.jboss.as.plugins</groupId>
+                    <artifactId>jboss-as-maven-plugin</artifactId>
+                    <version>${version.jboss.maven.plugin}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-ear-plugin</artifactId>
-                <configuration>
-                    <version>6</version>
+                <version>${version.ear.plugin}</version>
+                <configuration>                    
                     <defaultLibBundleDir>lib</defaultLibBundleDir>
                     <filtering>true</filtering>
                     <modules>

Modified: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -2,8 +2,8 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
+        <groupId>org.jboss.seam.examples</groupId>
         <artifactId>nestedbooking</artifactId>
-        <groupId>org.jboss.seam.examples</groupId>
         <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -45,6 +45,110 @@
             <artifactId>jboss-jsf-api_2.1_spec</artifactId>
             <scope>provided</scope>
         </dependency>
+        
+        <!-- Test dependencies -->
+        <dependency>
+            <groupId>org.jboss.shrinkwrap.resolver</groupId>
+            <artifactId>shrinkwrap-resolver-depchain</artifactId>
+            <type>pom</type>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+         
+        <dependency>
+            <groupId>org.jboss.arquillian.junit</groupId>
+            <artifactId>arquillian-junit-container</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jboss.arquillian.protocol</groupId>
+            <artifactId>arquillian-protocol-servlet</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
-   
+
+    <profiles>
+        <profile>
+            <id>integration-tests</id>
+            <activation>
+                <property>
+                    <name>arquillian</name>
+                </property>
+            </activation>
+            <properties>
+                <jndiPattern>java:app/seam-nestedbooking/#{ejbName}</jndiPattern>
+            </properties>
+            <build>
+                <testResources>
+                    <testResource>
+                        <directory>src/test/resources</directory>
+                        <filtering>true</filtering>
+                    </testResource>
+                </testResources>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <skip>false</skip>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>arq-jbossas-7-managed</id>
+            <activation>
+                <property>
+                    <name>arquillian</name>
+                    <value>jbossas-managed-7</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>org.jboss.as</groupId>
+                    <artifactId>jboss-as-arquillian-container-managed</artifactId>
+                    <scope>test</scope>
+                </dependency>                
+            </dependencies>
+        </profile>
+
+        <profile>
+            <id>arq-jbossas-7-remote</id>
+            <activation>
+                <property>
+                    <name>arquillian</name>
+                    <value>jbossas-remote-7</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>org.jboss.as</groupId>
+                    <artifactId>jboss-as-arquillian-container-remote</artifactId>
+                    <scope>test</scope>
+                </dependency>                
+            </dependencies>
+        </profile>
+    </profiles>
+    
+    <build>
+        <plugins>
+            <!-- Skip tests by default -->
+            <plugin> 
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    
 </project>

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/BookingTest.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/BookingTest.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/BookingTest.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,307 @@
+//$Id: BookingTest.java 6896 2007-12-04 15:45:49Z pmuir $
+package org.jboss.seam.example.nestedbooking.test;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import javax.faces.model.DataModel;
+import javax.faces.model.ListDataModel;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.core.Manager;
+import org.jboss.seam.example.booking.Booking;
+import org.jboss.seam.example.booking.Hotel;
+import org.jboss.seam.example.booking.HotelBooking;
+import org.jboss.seam.example.booking.User;
+import org.jboss.seam.mock.JUnitSeamTest;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class BookingTest extends JUnitSeamTest {
+
+    @Deployment(name = "BookingTest")
+    @OverProtocol("Servlet 3.0")
+    public static Archive<?> createDeployment() {
+        return Deployments.nestedBookingDeployment();
+    }
+
+    @Test
+    public void testBookHotel() throws Exception {
+
+        new FacesRequest() {
+            @Override
+            protected void invokeApplication() {
+                Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
+                setValue("#{identity.username}", "gavin");
+                setValue("#{identity.password}", "foobar");
+                invokeMethod("#{identity.login}");
+            }
+        }.run();
+
+        new FacesRequest("/main.xhtml") {
+            @Override
+            protected void updateModelValues() {
+                setValue("#{hotelSearch.searchString}", "Union Square");
+            }
+
+            @Override
+            protected void invokeApplication() {
+                assert invokeMethod("#{hotelSearch.find}") == null;
+            }
+
+            @Override
+            protected void renderResponse() {
+                DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
+                assert hotels.getRowCount() == 1;
+                assert ((Hotel) hotels.getRowData()).getCity().equals("NY");
+                assert getValue("#{hotelSearch.searchString}").equals("Union Square");
+                assert !Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+        final String id = new FacesRequest("/main.xhtml") {
+            @Override
+            protected void invokeApplication() {
+                HotelBooking hotelBooking = (HotelBooking) getInstance("hotelBooking");
+                DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
+                assert hotels.getRowCount() == 1;
+                hotelBooking.selectHotel((Hotel) hotels.getRowData());
+            }
+
+            @Override
+            protected void renderResponse() {
+                Hotel hotel = (Hotel) Contexts.getConversationContext().get("hotel");
+                assert hotel.getCity().equals("NY");
+                assert hotel.getZip().equals("10011");
+                assert Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+        new FacesRequest("/hotel.xhtml", id) {
+            @Override
+            protected void invokeApplication() {
+                invokeMethod("#{hotelBooking.bookHotel}");
+            }
+
+            @Override
+            protected void renderResponse() {
+                assert getValue("#{booking.user}") != null;
+                assert getValue("#{booking.hotel}") != null;
+                assert getValue("#{booking.creditCard}") == null;
+                assert getValue("#{booking.creditCardName}") == null;
+                Booking booking = (Booking) Contexts.getConversationContext().get("booking");
+                assert booking.getHotel() == Contexts.getConversationContext().get("hotel");
+                assert booking.getUser() == Contexts.getSessionContext().get("user");
+                assert Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+
+        new FacesRequest("/book.xhtml", id) {
+            @Override
+            @SuppressWarnings("deprecation")
+            protected void updateModelValues() {
+                Date now = new Date();
+                setValue("#{booking.checkinDate}", now);
+                setValue("#{booking.checkoutDate}", now);
+            }
+
+            @Override
+            protected void invokeApplication() {
+                assert invokeMethod("#{hotelBooking.setBookingDates}") == null;
+            }
+
+            @Override
+            protected void renderResponse() {
+                Iterator messages = FacesContext.getCurrentInstance().getMessages();
+                assert messages.hasNext();
+                FacesMessage message = (FacesMessage) messages.next();
+                assert message.getSummary().equals("Check out date must be later than check in date");
+                assert !messages.hasNext();
+                assert Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+        new FacesRequest("/book.xhtml", id) {
+            @Override
+            @SuppressWarnings("deprecation")
+            protected void updateModelValues() {
+                Calendar cal = Calendar.getInstance();
+                cal.add(Calendar.DAY_OF_MONTH, 2);
+                setValue("#{booking.checkoutDate}", cal.getTime());
+            }
+
+            @Override
+            protected void invokeApplication() {
+                assert "rooms".equals(invokeMethod("#{hotelBooking.setBookingDates}"));
+            }
+
+            @Override
+            protected void renderResponse() {
+                assert Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+        new FacesRequest("/rooms.xhtml", id) {
+            @Override
+            protected void renderResponse() {
+                assert getValue("#{booking.user}") != null;
+                assert getValue("#{booking.hotel}") != null;
+                assert getValue("#{booking.checkinDate}") != null;
+                assert getValue("#{booking.checkoutDate}") != null;
+                assert getValue("#{booking.roomPreference}").equals(getValue("#{hotel.standardRoom}"));
+                assert getValue("#{booking.creditCard}") == null;
+                assert getValue("#{booking.creditCardName}") == null;
+
+                assert getValue("#{availableRooms.rowCount}").equals(new Integer(2));
+                DataModel availableRooms = (DataModel) getValue("#{availableRooms}");
+                availableRooms.setRowIndex(0);
+                assert "Cozy Room".equals(getValue("#{availableRooms.rowData.name}"));
+                availableRooms.setRowIndex(1);
+                assert "Spectacular Room".equals(getValue("#{availableRooms.rowData.name}"));
+            }
+        }.run();
+
+        final String nestedId = new FacesRequest("/rooms.xhtml", id) {
+            @Override
+            protected void applyRequestValues() {
+                DataModel availableRooms = (DataModel) getValue("#{availableRooms}");
+                availableRooms.setRowIndex(0);
+            }
+
+            @Override
+            protected void invokeApplication() {
+                assert getValue("#{booking.roomPreference}") != null;
+                assert "Cozy Room".equals(getValue("#{booking.roomPreference.name}"));
+                assert "payment".equals(invokeAction("#{roomPreference.selectPreference}"));
+                System.out.println("here");
+            }
+
+            @Override
+            protected void renderResponse() {
+                assert Manager.instance().isLongRunningConversation();
+                assert Manager.instance().isNestedConversation();
+            }
+        }.run();
+
+        System.out.println(id + "/" + nestedId);
+        // Hmm, need this to move to the new, nested, conversation
+        // TODO This is probably a bug in SeamTest, not sure where
+        new NonFacesRequest("/payment.xhtml", nestedId) {
+            @Override
+            protected void renderResponse() {
+                System.out.println("here");
+                assert Manager.instance().isLongRunningConversation();
+                assert Manager.instance().isNestedConversation();
+
+                assert getValue("#{booking.user}") != null;
+                assert getValue("#{booking.hotel}") != null;
+                assert getValue("#{booking.checkinDate}") != null;
+                assert getValue("#{booking.checkoutDate}") != null;
+                assert getValue("#{booking.roomPreference}") != null;
+                assert getValue("#{booking.creditCard}") == null;
+                assert getValue("#{booking.creditCardName}") == null;
+            }
+        }.run();
+
+        new FacesRequest("/payment.xhtml", nestedId) {
+            @Override
+            protected void processValidations() {
+                validateValue("#{booking.creditCard}", "123");
+                assert isValidationFailure();
+            }
+
+            @Override
+            protected void renderResponse() {
+                Iterator messages = FacesContext.getCurrentInstance().getMessages();
+                assert messages.hasNext();
+                assert ((FacesMessage) messages.next()).getSummary().equals("Credit card number must 16 digits long");
+                assert !messages.hasNext();
+                assert Manager.instance().isLongRunningConversation();
+                assert Manager.instance().isNestedConversation();
+            }
+        }.run();
+
+        new FacesRequest("/payment.xhtml", nestedId) {
+            @Override
+            protected void processValidations() {
+                validateValue("#{booking.creditCardName}", "");
+                assert isValidationFailure();
+            }
+
+            @Override
+            protected void renderResponse() {
+                Iterator messages = FacesContext.getCurrentInstance().getMessages();
+                assert messages.hasNext();
+                assert ((FacesMessage) messages.next()).getSummary().equals("Credit card name is required");
+                assert !messages.hasNext();
+                assert Manager.instance().isLongRunningConversation();
+                assert Manager.instance().isNestedConversation();
+            }
+        }.run();
+
+        new FacesRequest("/payment.xhtml", nestedId) {
+            @Override
+            protected void updateModelValues() {
+                setValue("#{booking.creditCard}", "1234567891021234");
+                setValue("#{booking.creditCardName}", "GAVIN KING");
+            }
+
+            @Override
+            protected void invokeApplication() {
+                assert "confirm".equals(invokeAction("#{roomPreference.requestConfirmation}"));
+            }
+
+            @Override
+            protected void renderResponse() {
+                assert Manager.instance().isLongRunningConversation();
+                assert Manager.instance().isNestedConversation();
+            }
+        }.run();
+
+        new FacesRequest("/confirm.xhtml", nestedId) {
+            @Override
+            protected void invokeApplication() {
+                invokeMethod("#{hotelBooking.confirm}");
+            }
+        }.run();
+
+        new NonFacesRequest("/main.xhtml") {
+            @Override
+            protected void renderResponse() {
+                ListDataModel bookings = (ListDataModel) getInstance("bookings");
+                assert bookings.getRowCount() == 1;
+                bookings.setRowIndex(0);
+                Booking booking = (Booking) bookings.getRowData();
+                assert booking.getHotel().getCity().equals("NY");
+                assert booking.getUser().getUsername().equals("gavin");
+                assert !Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+        new FacesRequest("/main.xhtml") {
+            @Override
+            protected void invokeApplication() {
+                ListDataModel bookings = (ListDataModel) Contexts.getSessionContext().get("bookings");
+                bookings.setRowIndex(0);
+                invokeMethod("#{bookingList.cancel}");
+            }
+
+            @Override
+            protected void renderResponse() {
+                ListDataModel bookings = (ListDataModel) Contexts.getSessionContext().get("bookings");
+                assert bookings.getRowCount() == 0;
+                assert !Manager.instance().isLongRunningConversation();
+            }
+        }.run();
+
+    }
+}

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/ChangePasswordTest.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/ChangePasswordTest.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/ChangePasswordTest.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,150 @@
+//$Id: ChangePasswordTest.java 6826 2007-11-25 13:12:07Z pmuir $
+package org.jboss.seam.example.nestedbooking.test;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.core.Manager;
+import org.jboss.seam.example.booking.User;
+import org.jboss.seam.mock.JUnitSeamTest;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class ChangePasswordTest extends JUnitSeamTest
+{
+   @Deployment(name="ChangePasswordTest")
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      return Deployments.nestedBookingDeployment();
+   }
+   
+   @Test
+   public void testChangePassword() throws Exception
+   {
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void invokeApplication() throws Exception
+         {
+            Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "foobar");
+            invokeMethod("#{identity.login}");
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void processValidations() throws Exception
+         {
+            validateValue("#{user.password}", "xxx");
+            assert isValidationFailure();
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            setValue("#{user.password}", "xxxyyy");
+            setValue("#{changePassword.verify}", "xxyyyx");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert invokeMethod("#{changePassword.changePassword}")==null;
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            setValue("#{user.password}", "xxxyyy");
+            setValue("#{changePassword.verify}", "xxxyyy");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeMethod("#{changePassword.changePassword}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("xxxyyy");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            assert getValue("#{user.password}").equals("xxxyyy");
+            setValue("#{user.password}", "foobar");
+            setValue("#{changePassword.verify}", "foobar");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeMethod("#{changePassword.changePassword}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+
+         }
+         
+      }.run();
+      
+   }
+
+}

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/Deployments.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/Deployments.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/Deployments.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,36 @@
+package org.jboss.seam.example.nestedbooking.test;
+
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+
+import java.io.File;
+import org.jboss.seam.example.booking.Booking;
+import org.jboss.shrinkwrap.resolver.api.maven.Maven;
+
+public class Deployments {
+   public static WebArchive nestedBookingDeployment() {
+        
+        File[] libs = Maven.resolver().loadPomFromFile("pom.xml")
+                .importCompileAndRuntimeDependencies()
+                // force resolve jboss-seam, because it is provided-scoped in the pom, but we need it bundled in the WAR
+                .resolve("org.jboss.seam:jboss-seam")
+                .withTransitivity().asFile();
+
+        return ShrinkWrap.create(WebArchive.class, "seam-nestedbooking.war")
+                .addPackage(Booking.class.getPackage())
+                
+                // from main and test resources
+                .addAsWebInfResource("META-INF/ejb-jar.xml", "ejb-jar.xml")
+                .addAsResource("import.sql", "import.sql")
+                .addAsResource("seam.properties", "seam.properties")
+                .addAsWebInfResource("web.xml", "web.xml")
+                
+                // manually copied from EAR, persistence modified
+                .addAsResource("persistence.xml", "META-INF/persistence.xml")
+                .addAsWebInfResource("jboss-deployment-structure.xml", "jboss-deployment-structure.xml")
+                
+                // manually copied from WAR
+                .addAsWebInfResource("components.xml", "components.xml")
+                .addAsLibraries(libs);
+    }
+}

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/LoginTest.java
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/LoginTest.java	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/java/org/jboss/seam/example/nestedbooking/test/LoginTest.java	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,100 @@
+//$Id: LoginTest.java 6826 2007-11-25 13:12:07Z pmuir $
+package org.jboss.seam.example.nestedbooking.test;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.seam.Seam;
+import org.jboss.seam.core.Manager;
+import org.jboss.seam.mock.JUnitSeamTest;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+ at RunWith(Arquillian.class)
+public class LoginTest extends JUnitSeamTest
+{
+   @Deployment(name="LoginTest")
+   @OverProtocol("Servlet 3.0")
+   public static Archive<?> createDeployment()
+   {
+      return Deployments.nestedBookingDeployment();
+   }
+   
+   @Test
+   public void testLogin() throws Exception
+   {
+      
+      new FacesRequest() {
+         
+         @Override
+         protected void invokeApplication()
+         {
+            assert !isSessionInvalid();
+            assert getValue("#{identity.loggedIn}").equals(false);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            assert !isSessionInvalid();
+            setValue("#{identity.username}", "gavin");
+            setValue("#{identity.password}", "foobar");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            invokeMethod("#{identity.login}");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.username}").equals("gavin");
+            assert getValue("#{user.password}").equals("foobar");
+            assert !Manager.instance().isLongRunningConversation();
+            assert getValue("#{identity.loggedIn}").equals(true);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert !isSessionInvalid();
+            assert getValue("#{identity.loggedIn}").equals(true);
+         }
+         
+      }.run();
+      
+      new FacesRequest() {
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert !Manager.instance().isLongRunningConversation();
+            assert !isSessionInvalid();
+            invokeMethod("#{identity.logout}");
+            assert Seam.isSessionInvalid();
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{identity.loggedIn}").equals(false);
+            assert Seam.isSessionInvalid();
+         }
+         
+      }.run();
+      
+   }
+
+}

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/arquillian.xml
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/arquillian.xml
___________________________________________________________________
Added: svn:mime-type
   + application/xml

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/components.xml
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/components.xml
___________________________________________________________________
Added: svn:mime-type
   + application/xml

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/jboss-deployment-structure.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/jboss-deployment-structure.xml	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/jboss-deployment-structure.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,12 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+  <deployment>
+  	  <dependencies>
+          <module name="org.apache.log4j" export="true"/>
+          <module name="org.dom4j" export="true"/>
+          <module name="org.apache.commons.logging" export="true"/>
+          <module name="org.apache.commons.collections" export="true"/>
+	      <module name="javax.faces.api" export="true"/>
+          <module name="com.sun.jsf-impl" export="true"/>
+	    </dependencies>
+  </deployment>  
+</jboss-deployment-structure> 

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/persistence.xml
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/persistence.xml
___________________________________________________________________
Added: svn:mime-type
   + application/xml

Added: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/web.xml
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-ejb/src/test/resources/web.xml
___________________________________________________________________
Added: svn:mime-type
   + application/xml

Modified: branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/nestedbooking-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -2,8 +2,8 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
+        <groupId>org.jboss.seam.examples</groupId>
         <artifactId>nestedbooking</artifactId>
-        <groupId>org.jboss.seam.examples</groupId>
         <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -70,6 +70,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-war-plugin</artifactId>
+                <version>${version.war.plugin}</version>
                 <configuration>
                     <webResources>
                         <resource>

Modified: branches/enterprise/WFK-2_1/examples/nestedbooking/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -3,27 +3,48 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.jboss.seam.examples</groupId>
     <artifactId>nestedbooking</artifactId>
-    <parent>
-        <groupId>org.jboss.seam</groupId>
-        <artifactId>examples</artifactId>
-        <version>2.3.1.Final-redhat-2</version>
-    </parent>
+    <version>2.3.1.Final-redhat-2</version>
     <packaging>pom</packaging>
     <name>Nested Booking Example (EE6)</name>
     
     <properties>
         <example.name>nestedbooking</example.name>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.target>1.6</maven.compiler.target>
+        <maven.compiler.source>1.6</maven.compiler.source>
+        
+        <!-- To use jacoco, set jacoco.agent system property to something like
+        -javaagent:/path/to/jacocoagent.jar=append=true,destfile=/path/to/output/jacoco.exec -->
+        <jacoco.agent />
+        
+        <!-- To use custom Maven settings with ShrinkWrap Resolver, uncomment 
+             and customize the following property.  -->
+        <!--<maven.user.settings>/path/to/custom/settings.xml</maven.user.settings>-->
+        
+        <version.commons.logging>1.1.1</version.commons.logging>
+        <version.shrinkwrap.resolver>2.0.0-beta-4</version.shrinkwrap.resolver>
+        
+        <!-- Plugin versions -->
+        <version.dependency.plugin>2.5.1</version.dependency.plugin>
+        <version.surefire.plugin>2.10</version.surefire.plugin>
+        <version.resources.plugin>2.6</version.resources.plugin>
+        <version.compiler.plugin>2.3.1</version.compiler.plugin>
+        <version.ear.plugin>2.6</version.ear.plugin>
+        <version.war.plugin>2.1.1</version.war.plugin>
+        <version.ejb.plugin>2.3</version.ejb.plugin>
+        <version.jboss.maven.plugin>7.4.Final</version.jboss.maven.plugin>
     </properties>
     
     <modules>
         <module>nestedbooking-ear</module>
         <module>nestedbooking-ejb</module>
         <module>nestedbooking-web</module>
-        <module>nestedbooking-tests</module>
+        
     </modules>
     
     <dependencyManagement>
         <dependencies>
+            <!-- Modules -->
             <dependency>
                 <groupId>org.jboss.seam.examples.nestedbooking</groupId>
                 <artifactId>nestedbooking-ejb</artifactId>
@@ -40,7 +61,84 @@
                 <groupId>org.jboss.seam.examples.nestedbooking</groupId>
                 <artifactId>nestedbooking-ear</artifactId>
                 <version>${project.version}</version>
+                <type>ear</type>
             </dependency>
+            
+            <!-- BOMs -->
+            <dependency>
+                <groupId>org.jboss.shrinkwrap.resolver</groupId>
+                <artifactId>shrinkwrap-resolver-bom</artifactId>
+                <version>${version.shrinkwrap.resolver}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            
+            <dependency>
+                <groupId>org.jboss.seam</groupId>
+                <artifactId>bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            
+            <!-- Common provided dependencies -->
+            <dependency>
+                <groupId>commons-logging</groupId>
+                <artifactId>commons-logging</artifactId>
+                <version>${version.commons.logging}</version>
+                <scope>provided</scope>
+            </dependency>
+            
+            <!-- TestNG is not necessary -->
+            <dependency>
+                <groupId>org.jboss.seam</groupId>
+                <artifactId>jboss-seam</artifactId>
+                <version>${project.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.testng</groupId>
+                        <artifactId>testng</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>junit</groupId>
+                        <artifactId>junit</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            
         </dependencies>
     </dependencyManagement>
+    
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!-- Manage plugin versions for build stability -->
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${version.surefire.plugin}</version>
+                    <configuration>
+                        <systemPropertyVariables>
+                            <org.apache.maven.user-settings>${maven.user.settings}</org.apache.maven.user-settings>
+                        </systemPropertyVariables>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>${version.dependency.plugin}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>${version.resources.plugin}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${version.compiler.plugin}</version>
+                    <configuration>
+                        <source>${maven.compiler.source}</source>
+                        <target>${maven.compiler.target}</target>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
 </project>

Deleted: branches/enterprise/WFK-2_1/examples/nestedbooking/readme.txt
===================================================================
--- branches/enterprise/WFK-2_1/examples/nestedbooking/readme.txt	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/nestedbooking/readme.txt	2013-06-03 19:31:51 UTC (rev 15534)
@@ -1,20 +0,0 @@
-Seam NestedBooking Example
-==========================
-
-This example demonstrates the use of Seam nested conversations and runs 
-on JBoss AS as an EAR.
-
-To deploy the example, follow these steps:
-
-* In the example root directory run:
-
-    mvn clean install
-
-* Set JBOSS_HOME environment property.
-
-* In the nestedbooking-ear directory run:
-
-    mvn jboss-as:deploy
-
-* Open this URL in a web browser: http://localhost:8080/seam-nestedbooking
-

Added: branches/enterprise/WFK-2_1/examples/spring/README.md
===================================================================
--- branches/enterprise/WFK-2_1/examples/spring/README.md	                        (rev 0)
+++ branches/enterprise/WFK-2_1/examples/spring/README.md	2013-06-03 19:31:51 UTC (rev 15534)
@@ -0,0 +1,22 @@
+Seam Spring Example
+===================
+
+This example shows Seam/Spring integration. This application runs on AS as
+a WAR file.
+
+Running the example
+-------------------
+
+To deploy the example to a running JBoss AS instance, follow these steps:
+
+1. In the example root directory run:
+
+    mvn clean install
+
+2. Set JBOSS_HOME environment property.
+
+3. In the spring-web directory run:
+
+    mvn jboss-as:deploy
+
+4. Open this URL in a web browser: http://localhost:8080/spring-web

Modified: branches/enterprise/WFK-2_1/examples/spring/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/spring/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/spring/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -3,32 +3,125 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.jboss.seam.examples</groupId>
     <artifactId>spring</artifactId>
-    <parent>
-        <groupId>org.jboss.seam</groupId>
-        <artifactId>examples</artifactId>
-        <version>2.3.1.Final-redhat-2</version>
-    </parent>
+    <version>2.3.1.Final-redhat-2</version>
     <packaging>pom</packaging>
     <name>Spring Example (EE6)</name>
     
     <properties>
         <example.name>spring</example.name>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.target>1.6</maven.compiler.target>
+        <maven.compiler.source>1.6</maven.compiler.source>
+        
+        <!-- To use jacoco, set jacoco.agent system property to something like
+        -javaagent:/path/to/jacocoagent.jar=append=true,destfile=/path/to/output/jacoco.exec -->
+        <jacoco.agent />
+        
+        <!-- To use custom Maven settings with ShrinkWrap Resolver, uncomment 
+        and customize the following property.  -->
+        <!--<maven.user.settings>/path/to/custom/settings.xml</maven.user.settings>-->
+        
+        <version.commons.logging>1.1.1</version.commons.logging>
+        <version.shrinkwrap.resolver>2.0.0-beta-4</version.shrinkwrap.resolver>
+        
+        <!-- Plugin versions -->
+        <version.dependency.plugin>2.5.1</version.dependency.plugin>
+        <version.resources.plugin>2.6</version.resources.plugin>
+        <version.surefire.plugin>2.10</version.surefire.plugin>
+        <version.compiler.plugin>2.3.1</version.compiler.plugin>
+        <version.war.plugin>2.1.1</version.war.plugin>
+        <version.jboss.maven.plugin>7.4.Final</version.jboss.maven.plugin>
     </properties>
-    
+
     <modules>
         <module>spring-web</module>
-        <module>spring-tests</module>
     </modules>
-    
+
     <dependencyManagement>
         <dependencies>
+            <!-- Modules -->
             <dependency>
                 <groupId>org.jboss.seam.examples.spring</groupId>
                 <artifactId>spring-web</artifactId>
                 <version>${project.version}</version>
                 <type>war</type>
             </dependency>
+            
+            <!-- BOMs -->
+            <dependency>
+                <groupId>org.jboss.shrinkwrap.resolver</groupId>
+                <artifactId>shrinkwrap-resolver-bom</artifactId>
+                <version>${version.shrinkwrap.resolver}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            
+            <dependency>
+                <groupId>org.jboss.seam</groupId>
+                <artifactId>bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            
+            <!-- Common provided dependencies -->
+            <dependency>
+                <groupId>commons-logging</groupId>
+                <artifactId>commons-logging</artifactId>
+                <version>${version.commons.logging}</version>
+                <scope>provided</scope>
+            </dependency>
+            
+            <!-- TestNG is not necessary -->
+            <dependency>
+                <groupId>org.jboss.seam</groupId>
+                <artifactId>jboss-seam</artifactId>
+                <version>${project.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.testng</groupId>
+                        <artifactId>testng</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>junit</groupId>
+                        <artifactId>junit</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
         </dependencies>
     </dependencyManagement>
     
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!-- Manage plugin versions for build stability -->
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${version.surefire.plugin}</version>
+                    <configuration>
+                        <systemPropertyVariables>
+                            <org.apache.maven.user-settings>${maven.user.settings}</org.apache.maven.user-settings>
+                        </systemPropertyVariables>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>${version.dependency.plugin}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>${version.resources.plugin}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${version.compiler.plugin}</version>
+                    <configuration>
+                        <source>${maven.compiler.source}</source>
+                        <target>${maven.compiler.target}</target>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        
+    </build>
 </project>

Deleted: branches/enterprise/WFK-2_1/examples/spring/readme.txt
===================================================================
--- branches/enterprise/WFK-2_1/examples/spring/readme.txt	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/spring/readme.txt	2013-06-03 19:31:51 UTC (rev 15534)
@@ -1,18 +0,0 @@
-Seam Spring Example
-===================
-
-This example shows Seam/Spring integration. This application runs on AS as
-a WAR file.
-
-To deploy the example, follow these steps:
-
-* In the example root directory run:
-
-    mvn clean install
-
-* Set JBOSS_HOME environment property.
-
-* In the spring-web directory run:
-
-    mvn jboss-as:deploy
-

Modified: branches/enterprise/WFK-2_1/examples/spring/spring-web/pom.xml
===================================================================
--- branches/enterprise/WFK-2_1/examples/spring/spring-web/pom.xml	2013-06-03 18:05:17 UTC (rev 15533)
+++ branches/enterprise/WFK-2_1/examples/spring/spring-web/pom.xml	2013-06-03 19:31:51 UTC (rev 15534)
@@ -2,17 +2,17 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
+        <groupId>org.jboss.seam.examples</groupId>
         <artifactId>spring</artifactId>
-        <groupId>org.jboss.seam.examples</groupId>
         <version>2.3.1.Final-redhat-2</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    
+
     <groupId>org.jboss.seam.examples.spring</groupId>
     <artifactId>spring-web</artifactId>
     <packaging>war</packaging>
     <name>Spring Web Module (EE6)</name>
-    
+
     <dependencies>
         <dependency>
             <groupId>org.jboss.seam</groupId>
@@ -113,6 +113,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-war-plugin</artifactId>
+                <version>${version.war.plugin}</version>
                 <configuration>
                     <webResources>
                         <resource>
@@ -124,4 +125,5 @@
             </plugin>
         </plugins>
     </build>
+
 </project>



More information about the seam-commits mailing list