[seam-commits] Seam SVN: r14402 - in branches/community/Seam_2_3/examples-ee6: ui and 36 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Wed Mar 14 13:50:09 EDT 2012


Author: manaRH
Date: 2012-03-14 13:50:07 -0400 (Wed, 14 Mar 2012)
New Revision: 14402

Added:
   branches/community/Seam_2_3/examples-ee6/ui/
   branches/community/Seam_2_3/examples-ee6/ui/pom.xml
   branches/community/Seam_2_3/examples-ee6/ui/readme.txt
   branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql
   branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/seam.properties
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties
   branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml
   branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml
Modified:
   branches/community/Seam_2_3/examples-ee6/pom.xml
Log:
JBSEAM-4852 add the ui example

add the ui example

Conflicts:

	examples-ee6/ui/readme.txt
	examples-ee6/ui/ui-ear/pom.xml
	examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml
	examples-ee6/ui/ui-ejb/pom.xml
	examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml

ui example cleanup

add ui example to the examples-ee6 module

Modified: branches/community/Seam_2_3/examples-ee6/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/pom.xml	2012-03-14 17:48:19 UTC (rev 14401)
+++ branches/community/Seam_2_3/examples-ee6/pom.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -19,6 +19,7 @@
         <module>mail</module>
         <module>messages</module>
         <module>todo</module>
+        <module>ui</module>
     </modules>
 
     <build>

Added: branches/community/Seam_2_3/examples-ee6/ui/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/pom.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/pom.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,49 @@
+<?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">
+    <parent>
+        <artifactId>examples-ee6</artifactId>
+        <groupId>org.jboss.seam</groupId>
+        <version>2.3.0.Beta1-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.jboss.seam.examples-ee6</groupId>
+    <artifactId>ui</artifactId>
+    <packaging>pom</packaging>
+    <name>UI Example (EE6)</name>
+  
+    <modules>
+        <module>ui-ejb</module>
+        <module>ui-web</module>
+        <module>ui-ear</module>
+        <module>ui-tests</module>
+    </modules>
+
+    <properties>
+        <example.name>ui</example.name>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.jboss.seam.examples-ee6</groupId>
+                <artifactId>ui-ejb</artifactId>
+                <version>${project.version}</version>
+                <type>ejb</type>
+            </dependency>
+            <dependency>
+                <groupId>org.jboss.seam.examples-ee6</groupId>
+                <artifactId>ui-web</artifactId>
+                <version>${project.version}</version>
+                <type>war</type>
+            </dependency>
+            <dependency>
+                <groupId>org.jboss.seam.examples-ee6</groupId>
+                <artifactId>ui-ear</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    
+</project>

Added: branches/community/Seam_2_3/examples-ee6/ui/readme.txt
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/readme.txt	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/readme.txt	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,25 @@
+Seam UI Example
+===============
+
+This is a simple example demonstrating Seam UI. It runs on JBoss
+AS7 as an EAR
+
+To deploy the example to JBoss AS7, follow these steps:
+
+* In the example root directory run:
+
+    mvn clean package
+
+* Set JBOSS_HOME environment property.
+
+* Start the AS7 up.
+
+* In the ui-ear directory run the following to create a ui datasource:
+
+    $JBOSS_HOME/bin/jboss-cli.sh --file=ui-ds.cli
+
+* Deploy the sample:
+
+    $JBOSS_HOME/bin/jboss-cli.sh --connect 'deploy ui-ear/target/seam-ui.ear'
+
+* Open this URL in a web browser: http://localhost:8080/seam-ui

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ds.cli	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,3 @@
+connect
+data-source add --name=uiDS --jndi-name=java:/uiDatasource --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --user-name=sa --password=sa --driver-name=h2
+/subsystem=datasources/data-source="uiDS":enable

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ear/pom.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,105 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>ui</artifactId>
+        <groupId>org.jboss.seam.examples-ee6</groupId>
+        <version>2.3.0.Beta1-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    
+    <artifactId>ui-ear</artifactId>
+    <packaging>ear</packaging>
+    <name>UI EAR Module (EE6)</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.jboss.seam.examples-ee6</groupId>
+            <artifactId>ui-web</artifactId>
+            <type>war</type>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.seam.examples-ee6</groupId>
+            <artifactId>ui-ejb</artifactId>
+            <type>ejb</type>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>jboss-seam</artifactId>
+            <type>ejb</type>
+            <scope>compile</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.thoughtworks.xstream</groupId>
+                    <artifactId>xstream</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xpp3</groupId>
+                    <artifactId>xpp3_min</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.persistence</groupId>
+            <artifactId>persistence-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.ejb</groupId>
+            <artifactId>ejb-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sf.ehcache</groupId>
+            <artifactId>ehcache</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>seam-ui</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-ear-plugin</artifactId>
+                <configuration>
+                    <version>6</version>
+                    <defaultLibBundleDir>lib</defaultLibBundleDir>
+                    <!-- Exclude eclipse generated application.xml and manually modified jboss-app.xml during mvn build  -->
+                    <earSourceExcludes>**/application.xml, **/jboss-app.xml</earSourceExcludes>
+                    <!-- use maven generated application.xml instead -->
+                    <generateApplicationXml>true</generateApplicationXml>
+                    <filtering>true</filtering>
+                    <modules>
+                        <webModule>
+                            <groupId>org.jboss.seam.examples-ee6</groupId>
+                            <artifactId>ui-web</artifactId>
+                            <contextRoot>/seam-ui</contextRoot>
+                            <bundleFileName>ui-web.war</bundleFileName>
+                        </webModule>
+                        <ejbModule>
+                            <groupId>org.jboss.seam.examples-ee6</groupId>
+                            <artifactId>ui-ejb</artifactId>
+                            <bundleFileName>ui-ejb.jar</bundleFileName>
+                        </ejbModule>
+                        <ejbModule>
+                            <groupId>org.jboss.seam</groupId>
+                            <artifactId>jboss-seam</artifactId>
+                            <bundleFileName>jboss-seam.jar</bundleFileName>
+                        </ejbModule>
+                    </modules>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ear/src/main/application/META-INF/jboss-deployment-structure.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,9 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+  <deployment>
+      <dependencies>
+          <module name="org.antlr" export="true"/>
+          <module name="org.dom4j" export="true"/>
+          <module name="javax.faces.api" export="true"/>
+        </dependencies>
+  </deployment>
+</jboss-deployment-structure>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/pom.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,41 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>ui</artifactId>
+        <groupId>org.jboss.seam.examples-ee6</groupId>
+        <version>2.3.0.Beta1-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    
+    <artifactId>ui-ejb</artifactId>
+    <packaging>ejb</packaging>
+    <name>UI EJB Module</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>jboss-seam</artifactId>
+            <type>ejb</type>
+        </dependency>
+        <!-- TODO: fix when seam parent is updated  -->
+        <dependency>
+            <groupId>org.hibernate.javax.persistence</groupId>
+            <artifactId>hibernate-jpa-2.0-api</artifactId>
+            <version>1.0.1.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.ejb</groupId>
+            <artifactId>ejb-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+   </dependencies>
+</project>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeConverter.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,26 @@
+package org.jboss.seam.example.ui;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.ConverterException;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.annotations.faces.Converter;
+
+ at Name("ageConverter")
+ at BypassInterceptors
+ at Converter
+public class AgeConverter implements javax.faces.convert.Converter
+{
+   public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException
+   {
+      Integer i = new Integer(value);
+      return i.intValue();
+   }
+
+   public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException
+   {
+      return value + "";
+   }
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AgeList.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,16 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.Name;
+
+ at Name("ageList")
+public class AgeList
+{
+   
+   @Factory("ages")
+   public int[] getAges() {
+      int[] ages = {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};
+      return ages;
+   }
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Animal.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.ui;
+
+public class Animal
+{
+
+   public static Animal DOG = new Animal("Needs lots of exercise", "Dog");
+   public static Animal CAT = new Animal("Looks after itself", "Cat");
+   public static Animal GOLDFISH = new Animal("Needs a fishtank!", "Goldfish");
+   public static Animal RABBIT = new Animal("Often has floppy ears", "Rabbit");
+   public static Animal SNAKE = new Animal("Better make sure it doesn't bite you", "Snake");
+   public static Animal PARROT = new Animal("Peices of Eight", "Parrot");
+   
+   private String notes;
+   private String name;
+
+   public Animal(String notes, String name)
+   {
+      this.notes = notes;
+      this.name = name;
+   }
+   
+   public String getNotes()
+   {
+      return notes;
+   }
+   
+   public String getName()
+   {
+      return name;
+   }
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/AnimalList.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Unwrap;
+
+ at Name("animals")
+public class AnimalList
+{
+
+   private List<Animal> animals;
+   
+   @Unwrap
+   public List<Animal> unwrap()
+   {
+      if (animals == null)
+      {
+         animals = new ArrayList<Animal>();
+         animals.add(Animal.CAT);
+         animals.add(Animal.DOG);
+         animals.add(Animal.GOLDFISH);
+         animals.add(Animal.PARROT);
+         animals.add(Animal.RABBIT);
+         animals.add(Animal.SNAKE);
+      }
+      return animals;
+   }
+   
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Book.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+
+ at Entity
+public class Book implements Serializable
+{
+   
+   @EmbeddedId
+   private BookPk bookPk = new BookPk();
+   
+   private String nationality;
+   
+   public String getName() 
+   {
+      return bookPk.getName();
+   }
+   
+   public String getAuthor() 
+   {
+      return bookPk.getAuthor();
+   }
+
+   public String getNationality()
+   {
+      return nationality;
+   }
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/BookPk.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,48 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Embeddable;
+
+ at Embeddable
+public class BookPk implements Serializable
+{
+   
+   private String name;
+   
+   private String author;
+   
+   protected BookPk()
+   {
+   }
+   
+   public BookPk(String name, String author)
+   {
+      this.name = name;
+      this.author = author;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+   
+   public String getAuthor()
+   {
+      return author;
+   }
+   
+   @Override
+   public boolean equals(Object other)
+   {
+      if (other instanceof BookPk)
+      {
+         BookPk that = (BookPk) other;
+         return this.getAuthor().equals(that.getAuthor()) && this.getName().equals(that.getName());
+      }
+      else
+      {
+         return false;
+      }
+   }
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/ButtonLinkBean.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,33 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.faces.FacesMessages;
+
+ at Name("buttonLink")
+public class ButtonLinkBean
+{
+   private String foo;
+   
+   public void simpleAction()
+   {
+      if (foo != null)
+      {
+         FacesMessages.instance().add("Foo = " + foo);
+      }
+      else
+      {
+         FacesMessages.instance().add("A simple action was performed");
+      }
+   }
+   
+   public void setFoo(String foo)
+   {
+      this.foo = foo;
+   }
+   
+   public String getFoo()
+   {
+      return foo;
+   }
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Colour.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,45 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+
+ at Entity
+public class Colour implements Serializable
+{
+   
+   @ManyToMany(mappedBy="favouriteColours")
+   private List<Person> people;
+
+   @Id @GeneratedValue
+   private Integer id;
+   
+   private String name;
+
+   public Integer getId()
+   {
+      return id;
+   }
+
+   public void setId(Integer id)
+   {
+      this.id = id;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Continent.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,52 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+
+ at Entity
+public class Continent implements Serializable
+{
+   @Id @GeneratedValue
+   private Integer id;
+ 
+   private String name;
+   
+   @OneToMany(mappedBy="continent")
+   private List<Country> countries;
+
+   public List<Country> getCountries()
+   {
+      return countries;
+   }
+
+   public void setCountries(List<Country> countries)
+   {
+      this.countries = countries;
+   }
+
+   public Integer getId()
+   {
+      return id;
+   }
+
+   public void setId(Integer id)
+   {
+      this.id = id;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Country.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,54 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
+ at Entity
+public class Country implements Serializable
+{
+   
+   @Id @GeneratedValue
+   private Integer id;
+   
+   private String name;
+   
+   @ManyToOne
+   private Continent continent;
+
+   public Continent getContinent()
+   {
+      return continent;
+   }
+
+   public void setContinent(Continent continent)
+   {
+      this.continent = continent;
+   }
+
+   public Integer getId()
+   {
+      return id;
+   }
+
+   public void setId(Integer id)
+   {
+      this.id = id;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/EqualityValidatorBean.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,82 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.international.StatusMessages;
+import org.jboss.seam.international.StatusMessage.Severity;
+import org.jboss.seam.util.Strings;
+
+ at Name("equalityValidatorBean")
+ at Scope(ScopeType.SESSION)
+public class EqualityValidatorBean implements Serializable
+{
+
+   @In
+   private StatusMessages statusMessages;
+
+   private String name;
+
+   private Long age;
+
+   private Date date;
+
+   public void check()
+   {
+      if (Strings.isEmpty(name))
+      {
+         statusMessages.addToControl("name", Severity.WARN, "Enter a name!");
+      }
+      else
+      {
+         statusMessages.addToControl("name", Severity.INFO, "OK!");
+      }
+   }
+
+   public void checkDate()
+   {
+      if (date == null)
+      {
+         statusMessages.addToControl("date", Severity.WARN, "Enter a date!");
+      }
+      else
+      {
+         statusMessages.addToControl("date", Severity.INFO, "OK!");
+      }
+   }
+
+   public Date getDate()
+   {
+      return date;
+   }
+
+   public void setDate(Date date)
+   {
+      this.date = date;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+
+   public Long getAge()
+   {
+      return age;
+   }
+
+   public void setAge(Long age)
+   {
+      this.age = age;
+   }
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Factories.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,21 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.ui.Person.Honorific;
+import org.jboss.seam.example.ui.Person.Role;
+
+ at Name("factories")
+public class Factories
+{
+   @Factory("honorifics")
+   public Honorific[] getHonorifics() {
+      return Honorific.values();
+   }
+   
+   @Factory("roles")
+   public Role[] getRoles() {
+      return Role.values();
+   }
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Film.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,52 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+ at Entity
+public class Film implements Serializable
+{
+   
+   @Id @GeneratedValue
+   private Integer id;
+   
+   private String name;
+   
+   private String director;
+
+   public String getDirector()
+   {
+      return director;
+   }
+
+   public void setDirector(String director)
+   {
+      this.director = director;
+   }
+
+   public Integer getId()
+   {
+      return id;
+   }
+
+   public void setId(Integer id)
+   {
+      this.id = id;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/FilmConverter.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,53 @@
+package org.jboss.seam.example.ui;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.persistence.EntityManager;
+
+import org.jboss.seam.Component;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.faces.Converter;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+
+ at Name("filmConverter")
+ at Converter(forClass = Film.class)
+ at BypassInterceptors
+public class FilmConverter implements javax.faces.convert.Converter
+{
+   
+   public Object getAsObject(FacesContext context, UIComponent component, String value)
+   {
+      
+      EntityManager entityManager = (EntityManager) Component.getInstance("entityManager");
+      
+      if (value != null)
+      {
+         try
+         {
+            Integer id = Integer.parseInt(value);
+            if (id != null)
+            {
+               return entityManager.find(Film.class, id);
+            }
+         }
+         catch (NumberFormatException e)
+         {
+         }
+      }
+      return null;
+   }
+   
+   public String getAsString(FacesContext context, UIComponent component, Object value)
+   {
+      if (value instanceof Film)
+      {
+         Film film = (Film) value;
+         return film.getId().toString();
+      }
+      else
+      {
+         return null;
+      }
+   }
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Person.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,235 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.ElementCollection;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.validation.constraints.Size;
+
+ at Entity
+public class Person implements Serializable
+{
+   
+   public enum Honorific {
+      
+      MR("Mr."), 
+      MRS("Mrs."), 
+      MISS("Miss."), 
+      MS("Ms."),
+      DOCTOR("Dr.");
+      
+      private String label;
+      
+      Honorific(String label)
+      {
+         this.label = label;
+      }
+      
+      public String getLabel()
+      {
+         return label;
+      }      
+   }
+   
+   public enum Role
+   {
+      USER,
+      ADMIN,
+      MANAGER,
+      SUPERADMIN;
+      
+      public String getName()
+      {
+         return this.name();
+      }
+   }
+   
+   @Id @GeneratedValue
+   private Integer id;
+   
+   @Size(min=5)
+   private String name;
+   
+   // A wikitext string
+   private String hobbies;
+   
+   @ManyToOne
+   private Country country;
+   
+   @ManyToOne
+   private Continent continent;
+   
+   @Enumerated(EnumType.STRING)
+   private Honorific honorific;
+   
+   private int age;
+   
+   @ManyToMany
+   private List<Colour> favouriteColours;
+   
+   @ManyToOne(fetch=FetchType.LAZY)
+   private Book favouriteBook;
+   
+   @OneToOne(cascade=CascadeType.ALL)
+   private Picture picture;
+   
+   @ElementCollection
+   private List<Role> roles = new ArrayList<Role>();
+   
+   private String pet;
+   
+   
+   
+   @ManyToOne
+   private Film favouriteFilm;
+   
+   public Person()
+   {
+      picture = new Picture();
+   }
+   
+   public List<Role> getRoles()
+   {
+      return roles;
+   }
+   
+   public void setRoles(List<Role> roles)
+   {
+      this.roles = roles;
+   }
+
+   public Country getCountry()
+   {
+      return country;
+   }
+
+   public void setCountry(Country country)
+   {
+      this.country = country;
+   }
+
+   public Integer getId()
+   {
+      return id;
+   }
+
+   public void setId(Integer id)
+   {
+      this.id = id;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   public int getAge()
+   {
+      return age;
+   }
+   
+   public void setAge(int age)
+   {
+      this.age = age;
+   }
+   
+   public Continent getContinent()
+   {
+      return continent;
+   }
+   
+   public void setContinent(Continent continent)
+   {
+      this.continent = continent;
+   }
+   
+   public Honorific getHonorific()
+   {
+      return honorific;
+   }
+   
+   public void setHonorific(Honorific honorific)
+   {
+      this.honorific = honorific;
+   }
+   
+   public List<Colour> getFavouriteColours()
+   {
+      return favouriteColours;
+   }
+   
+   public void setFavouriteColours(List<Colour> favouriteColours)
+   {
+      this.favouriteColours = favouriteColours;
+   }
+   
+   public Book getFavouriteBook()
+   {
+      return favouriteBook;
+   }
+   
+   public void setFavouriteBook(Book favouriteBook)
+   {
+      this.favouriteBook = favouriteBook;
+   }
+   
+   public String getHobbies()
+   {
+      return hobbies;
+   }
+   
+   public void setHobbies(String hobbies)
+   {
+      this.hobbies = hobbies;
+   }
+   
+   public Picture getPicture()
+   {
+      if (picture == null)
+      {
+         picture = new Picture();
+      }
+      return picture;
+   }
+   
+   public void setPicture(Picture picture)
+   {
+      this.picture = picture;
+   }
+   
+   public String getPet()
+   {
+      return pet;
+   }
+   
+   public void setPet(String pet)
+   {
+      this.pet = pet;
+   }
+   
+   public Film getFavouriteFilm()
+   {
+      return favouriteFilm;
+   }
+   
+   public void setFavouriteFilm(Film favouriteFilm)
+   {
+      this.favouriteFilm = favouriteFilm;
+   }
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Picture.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,80 @@
+package org.jboss.seam.example.ui;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.OneToOne;
+
+import org.jboss.seam.annotations.Name;
+
+ at Entity
+ at Name("memberImage")
+public class Picture implements Serializable
+{
+   private static final long serialVersionUID = -8088455267213832920L;
+   
+   @Id @GeneratedValue
+   private Integer id;
+   
+   @OneToOne(mappedBy="picture")
+   private Person person;
+   private byte[] data;
+   private String contentType;
+   private String fileName;
+   
+  
+   public Integer getId()
+   {
+      return id;
+   }
+   
+   public void setId(Integer imageId)
+   {
+      this.id = imageId;
+   }
+   
+   
+   public Person getPerson()
+   {
+      return person;
+   }
+   
+   public void setPerson(Person person)
+   {
+      this.person = person;
+   }
+
+   public String getContentType()
+   {
+      return contentType;
+   }
+
+   public void setContentType(String contentType)
+   {
+      this.contentType = contentType;
+   }
+
+   @Lob
+   public byte[] getData()
+   {
+      return data;
+   }
+
+   public void setData(byte[] data)
+   {
+      this.data = data;
+   }
+   
+   public String getFileName()
+   {
+      return fileName;
+   }
+   
+   public void setFileName(String fileName)
+   {
+      this.fileName = fileName;
+   }
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/Resources.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,94 @@
+package org.jboss.seam.example.ui;
+
+import java.io.ByteArrayInputStream;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Create;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.web.RequestParameter;
+
+ at Name("resources")
+ at Scope(ScopeType.EVENT)
+public class Resources
+{
+   
+   @RequestParameter
+   private int id;
+   
+   private ResourceItem item;
+   
+   @Create
+   public void create()
+   {
+      switch (id)
+      {
+      case 1:
+         item = new ResourceItem("text.txt", new byte[] { 'a', 'b', 'c' }, null, "text/plain");
+         break;
+      case 2:
+         ByteArrayInputStream str = new ByteArrayInputStream(new byte[] { '1', '2', '3' });
+         item = new ResourceItem("numbers.txt", str, null, "text/plain");
+         break;
+      }
+   }
+   
+   public static class ResourceItem
+   {
+      
+      public ResourceItem(String fileName, Object data, String disposition, String contentType)
+      {
+         this.fileName = fileName;
+         this.data = data;
+         this.disposition = disposition;
+         this.contentType = contentType;
+      }
+      
+      public String fileName;
+      public Object data;
+      public String disposition;
+      public String contentType;
+      
+      public String getFileName()
+      {
+         return fileName;
+      }
+      
+      public Object getData()
+      {
+         return data;
+      }
+      
+      public String getDisposition()
+      {
+         return disposition;
+      }
+      
+      public String getContentType()
+      {
+         return contentType;
+      }
+      
+   }
+   
+   public int getId()
+   {
+      return id;
+   }
+   
+   public void setId(int id)
+   {
+      this.id = id;
+   }
+   
+   public ResourceItem getItem()
+   {
+      return item;
+   }
+   
+   public void setItem(ResourceItem item)
+   {
+      this.item = item;
+   }
+   
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/java/org/jboss/seam/example/ui/SpanTitle.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,16 @@
+package org.jboss.seam.example.ui;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Unwrap;
+
+ at Name("spanTitle")
+public class SpanTitle
+{
+
+   @Unwrap
+   public String unwrap()
+   {
+      return "A Span title";
+   }
+
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/META-INF/persistence.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
+             version="1.0">
+   <persistence-unit name="uiDatabase">
+      <provider>org.hibernate.ejb.HibernatePersistence</provider>
+      <jta-data-source>java:/uiDatasource</jta-data-source>
+      <properties>
+         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+         <property name="hibernate.show_sql" value="true"/>
+         <property name="jboss.entity.manager.factory.jndi.name" value="java:/uiEntityManagerFactory"/>
+      </properties>
+   </persistence-unit>
+</persistence>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/import.sql	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,36 @@
+insert into person (id, name, age, hobbies) values (1, 'Peter Muir', 25, '*works on Seam*, *of course*');
+insert into continent(id, name) values(1, 'North America');
+insert into continent(id, name) values(2, 'South America');
+insert into continent(id, name) values(3, 'Australasia');
+insert into continent(id, name) values(4, 'Europe');
+insert into continent(id, name) values(5, 'Asia');
+insert into continent(id, name) values(6, 'Africa');
+insert into continent(id, name) values(7, 'Antartica');
+
+insert into country (id, name, continent_id) values (1, 'USA', 1);
+insert into country (id, name, continent_id) values (2, 'Canada', 1);
+insert into country (id, name, continent_id) values (3, 'United Kingdom', 4);
+insert into country (id, name, continent_id) values (4, 'France', 4);
+insert into country (id, name, continent_id) values (5, 'Germany', 4);
+insert into country (id, name, continent_id) values (6, 'Spain', 4);
+insert into country (id, name, continent_id) values (7, 'Australia', 3);
+insert into country (id, name, continent_id) values (8, 'Chile', 2);
+insert into country (id, name, continent_id) values (9, 'China', 5);
+insert into country (id, name, continent_id) values (10, 'South Africa', 6);
+
+insert into colour(id, name) values (1, 'Red')
+insert into colour(id, name) values (2, 'Blue')
+insert into colour(id, name) values (3, 'Green')
+insert into colour(id, name) values (4, 'Purple')
+insert into colour(id, name) values (5, 'Yellow')
+insert into colour(id, name) values (6, 'Orange')
+
+insert into book(name,author,nationality) values ('Pride and Prejudice', 'Jane Austin', 'British')
+insert into book(name,author,nationality) values ('The Great Gatsby', 'F. Scott Fitzgerald', 'American')
+insert into book(name,author,nationality) values ('Romeo and Juliet', 'William Shakespeare', 'British')
+insert into book(name,author,nationality) values ('The Illiad', 'Homer', 'Ancient Greek')
+
+insert into film(id,name,director) values (1, 'Blade Runner', 'Ridley Scott')
+insert into film(id,name,director) values (2, 'E.T.', 'Steven Spielberg')
+insert into film(id,name,director) values (3, 'Star Wars', 'George Lucas')
+insert into film(id,name,director) values (4, 'Jay and Silent Bob Strike Back', 'Kevin Smith')

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-ejb/src/main/resources/seam.properties
===================================================================
Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/pom.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,128 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>ui</artifactId>
+        <groupId>org.jboss.seam.examples-ee6</groupId>
+        <version>2.3.0.Beta1-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    
+    <groupId>org.jboss.seam.examples</groupId>
+    <artifactId>ui-tests</artifactId>
+    <name>UI Integration Tests Module</name>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <classifier>jdk15</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.seam.examples-ee6</groupId>
+            <artifactId>ui-ejb</artifactId>
+            <type>ejb</type>
+            <scope>test</scope>
+        </dependency>        
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>jboss-seam</artifactId>
+            <type>ejb</type>
+            <scope>test</scope>
+        </dependency>        
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.seleniumhq.selenium.server</groupId>
+            <artifactId>selenium-server</artifactId>
+            <classifier>standalone</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+            <artifactId>selenium-java-client-driver</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>functional-tests</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>net.sourceforge.htmlunit</groupId>
+            <artifactId>htmlunit</artifactId>
+            <version>2.3</version>
+        </dependency>
+    </dependencies>
+    
+    <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>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>     
+    </build>    
+
+    <profiles>
+        <profile>
+            <id>ftest-jbossas</id>
+            <properties>
+                <example.context.path>seam-ui</example.context.path>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>selenium-maven-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>failsafe-maven-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ftest-tomcat</id>
+            <properties>
+                <example.context.path>jboss-seam-ui</example.context.path>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>selenium-maven-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>failsafe-maven-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+    
+</project>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/htmlunit/HtmlUnitUITest.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,122 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */ 
+package org.jboss.seam.example.ui.test.htmlunit;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+
+import java.io.IOException;
+
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.BrowserVersion;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlInput;
+import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
+import com.gargoylesoftware.htmlunit.html.HtmlImage;
+import static org.testng.AssertJUnit.fail;
+import java.net.URL;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Functional test for uploadLink and graphicImage testcases of UI example
+ * 
+ * @author mgencur
+ *
+ */
+public class HtmlUnitUITest
+{
+   public static final String PAGE_URL = "http://localhost:8080/seam-ui";
+   public static final String HOME_PAGE_TITLE = "UI Example:";
+   public static final String FILE_UPLOAD_FILE= "//input[@type='file']";
+   public static final String FILE_UPLOAD_UPDATE="//input[@type='submit'][@value='Update']";
+   public static final String IMAGE_TO_UPLOAD = "photo.jpg";
+   public static final String FILE_UPLOAD_RESPONSE="//ul/li[contains(text(),'Successfully updated')]";
+   public static final String FILE_UPLOAD_LINK = "//a[contains(@href,'fileUpload')]";
+   public static final String GRAPHIC_IMAGE_LINK = "//a[contains(@href,'graphicImage')]";
+   public static final String IMAGE = "//img";
+   
+   public WebClient wc;
+   public HtmlPage page;   
+   
+   @BeforeMethod
+   public void setUp() throws Exception{
+      URL url = new URL(PAGE_URL);      
+      wc = new WebClient(BrowserVersion.FIREFOX_2);      
+      page = (HtmlPage) wc.getPage(url);  
+   }
+
+   
+   @AfterMethod
+   public void tearDown() {
+      wc.closeAllWindows();       
+   }
+   
+   
+   @Test
+   public void homePageLoadTest()
+   {      
+      assertEquals("Unexpected page title.", HOME_PAGE_TITLE, page.getTitleText());
+   } 
+   
+   
+   @Test(dependsOnMethods={"homePageLoadTest"})
+   public void fileUploadTest() throws IOException {
+      final HtmlAnchor linkEl = (HtmlAnchor) page.getFirstByXPath(FILE_UPLOAD_LINK);
+      
+      final HtmlPage uploadPage = (HtmlPage) linkEl.click();
+      if (uploadPage == null){
+         fail("Could not read page");
+      }
+            
+      final HtmlInput el1 = (HtmlInput) uploadPage.getFirstByXPath(FILE_UPLOAD_FILE);
+      if (el1 == null) {
+         fail("Element file upload file doesn't exist");
+      } else {         
+         el1.type(IMAGE_TO_UPLOAD);
+      }      
+      
+      final HtmlInput el2 = (HtmlInput) uploadPage.getFirstByXPath(FILE_UPLOAD_UPDATE);
+      final HtmlPage finishPage = (HtmlPage) el2.click();
+      final HtmlElement el3 = (HtmlElement) finishPage.getFirstByXPath(FILE_UPLOAD_RESPONSE);
+      
+      assertFalse("Page should contain \"Successfully updated\"", el3 == null);
+   } 
+   
+   
+   @Test(dependsOnMethods={"homePageLoadTest","fileUploadTest"})
+   public void graphicImageTest() throws IOException { 
+      final HtmlAnchor linkEl = (HtmlAnchor) page.getFirstByXPath(GRAPHIC_IMAGE_LINK);
+      
+      final HtmlPage graphicPage = (HtmlPage) linkEl.click();
+      if (graphicPage == null){
+         fail("Could not read page");
+      }
+      
+      final HtmlImage image = (HtmlImage) graphicPage.getFirstByXPath(IMAGE);
+      
+      assertFalse("Page should contain image of Pete Muir", image == null);      
+   }      
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/java/org/jboss/seam/example/ui/test/selenium/SeleniumUITest.java	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,220 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */ 
+package org.jboss.seam.example.ui.test.selenium;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+import org.jboss.seam.example.common.test.selenium.SeamSeleniumTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * This class tests functionality of UI example
+ * 
+ * @author Martin Gencur
+ * 
+ */
+public class SeleniumUITest extends SeamSeleniumTest
+{
+      public static final String HOME_PAGE = "/index.seam";
+      public static final String HOME_PAGE_TITLE = "UI Example:";
+      public static final String SELECT_ITEMS_LINK = "xpath=//a[contains(@href,\"selectItems\")]";
+      public static final String FRAGMENT_LINK = "xpath=//a[contains(@href,\"fragment\")]";
+      public static final String FOTMATTED_TEXT_LINK = "xpath=//a[contains(@href,\"formattedText\")]";
+      public static final String BUTTON_AND_SLINK_LINK = "xpath=//a[contains(@href,\"linkAndButton\")]";
+      public static final String CACHE_LINK = "xpath=//a[contains(@href,\"cache\")]";
+      public static final String VALIDATE_EQUALITY_LINK = "xpath=//a[contains(@href,\"equalityValidator\")]";
+      public static final String VALIDATE_EQUALITY2_LINK = "xpath=//a[contains(@href,\"equalityValidatorWConvert\")]";
+      public static final String RESOURCE_DOWNLOAD_LINK = "xpath=//a[contains(@href,\"resource\")]";
+               
+      @BeforeMethod
+      @Override
+      public void setUp()
+      {
+         super.setUp();
+         browser.open(CONTEXT_PATH + HOME_PAGE);
+      }
+
+      /**
+       * Place holder - just verifies that example deploys
+       */
+      @Test
+      public void homePageLoadTest()
+      {
+         assertEquals("Unexpected page title.", HOME_PAGE_TITLE, browser.getTitle());
+      }        
+       
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void selectItemsTest(){      
+         String title = "Mr.";
+         String name = "Martin Gencur";
+         String continent = "Europe";
+         String age = "24";
+         String pet = "Dog (Needs lots of exercise)";
+         String colour1 = "Green", colour2 = "Yellow";
+         String book = "Pride and Prejudice by Jane Austin (British)";
+         String film = "Blade Runner directed by Ridley Scott";
+         browser.clickAndWait(SELECT_ITEMS_LINK);
+         browser.select(getProperty("SELECT_ITEMS_TITLE"), "label="+title);
+         browser.type(getProperty("SELECT_ITEMS_NAME"), name);
+         browser.select(getProperty("SELECT_ITEMS_CONTINENT"), "label="+continent);
+         browser.check(getProperty("SELECT_ITEMS_USER"));
+         browser.check(getProperty("SELECT_ITEMS_ADMIN"));
+         browser.check(getProperty("SELECT_ITEMS_MANAGER"));
+         browser.check(getProperty("SELECT_ITEMS_SUPERADMIN"));
+         browser.select(getProperty("SELECT_ITEMS_AGE"), "label="+age);
+         browser.select(getProperty("SELECT_ITEMS_PET"), "label="+pet);
+         browser.select(getProperty("SELECT_ITEMS_COLOURS"), "label="+colour1);
+         browser.select(getProperty("SELECT_ITEMS_COLOURS"), "label="+colour2);         
+         browser.select(getProperty("SELECT_ITEMS_BOOK"), "label="+book);
+         browser.select(getProperty("SELECT_ITEMS_FILM"), "label="+film); 
+         browser.clickAndWait(getProperty("SELECT_ITEMS_APPLY"));
+         browser.check(getProperty("SELECT_ITEMS_COUNTRY"));
+         browser.clickAndWait(getProperty("SELECT_ITEMS_APPLY"));
+         assertTrue("Page should contain \"Successfully updated\"", browser.isTextPresent("Successfully updated"));
+      }
+      
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void fragmentTest(){ 
+         browser.clickAndWait(FRAGMENT_LINK);
+         assertTrue("Page should contain \"fragment is rendered\"", browser.isTextPresent("This fragment is rendered whilst"));
+      }      
+      
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void formattedTextTest(){ 
+         browser.clickAndWait(FOTMATTED_TEXT_LINK);
+         assertTrue("Page should contain information about Pete Muir working all the time on Seam", browser.isTextPresent("works on Seam, of course"));
+      }
+          
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void buttonAndLinkTest(){ 
+         browser.clickAndWait(BUTTON_AND_SLINK_LINK);  
+         assertTrue("Page should contain \"A fragment to jump to\"", browser.isTextPresent("A fragment to jump to"));
+         browser.clickAndWait(getProperty("JUMP_LINK"));
+         browser.clickAndWait(getProperty("JUMP_BUTTON"));
+         browser.clickAndWait(getProperty("LINK_LINK"));
+         browser.clickAndWait(getProperty("DO_ACTION_LINK"));
+         assertTrue("Page should contain \"A simple action was performed\"", browser.isTextPresent("A simple action was performed"));
+         browser.clickAndWait(getProperty("DO_ACTION_BUTTON"));
+         assertTrue("Page should contain \"A simple action was performed\"", browser.isTextPresent("A simple action was performed"));
+         assertTrue("Page should contain disabled link", browser.isElementPresent(getProperty("DISABLED_DO_ACTION_LINK")));
+         assertTrue("Page should contain disabled button", browser.isElementPresent(getProperty("DISABLED_DO_ACTION_BUTTON")));
+         browser.clickAndWait(getProperty("BEGIN_CONVERSATION_LINK"));
+         browser.clickAndWait(getProperty("END_CONVERSATION_BUTTON"));
+         assertTrue("Page shouldn't contain \"A simple action was performed\"", !browser.isTextPresent("A simple action was performed"));
+         browser.clickAndWait(getProperty("ADD_PARAMETER_LINK"));
+         browser.clickAndWait(getProperty("ADD_PARAMETER_BUTTON"));
+         assertTrue("Page should contain \"Foo = bar\"", browser.isTextPresent("Foo = bar"));      
+      }
+      
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void cacheTest(){ 
+         browser.clickAndWait(CACHE_LINK);         
+         assertTrue("Page should contain some cached text", browser.isTextPresent("Some cached text"));
+      }
+      
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void validateEqualityTest(){ 
+         String name1 = "martin";
+         String name2 = "peter";   
+         String age1 = "20";
+         String age2 = "30";
+         browser.clickAndWait(VALIDATE_EQUALITY_LINK);
+         
+         browser.type(getProperty("NAME_INPUT"), name1);
+         browser.type(getProperty("NAME_VERIFICATION_INPUT"), name1);
+         browser.clickAndWait(getProperty("CHECK_NAME_BUTTON"));
+         assertTrue("Page should contain \"OK!\""+ "je tam:" + browser.getBodyText(), browser.isTextPresent("OK!"));
+         
+         browser.type(getProperty("NAME_INPUT"), name1);
+         browser.type(getProperty("NAME_VERIFICATION_INPUT"), name2);
+         browser.clickAndWait(getProperty("CHECK_NAME_BUTTON"));
+         assertTrue("Page should contain \"Must be the same as name!\"", browser.isTextPresent("Must be the same as name!"));
+         
+         browser.type(getProperty("MINIMUM_AGE_INPUT"), age1);
+         browser.type(getProperty("MAXIMUM_AGE_INPUT"), age2);
+         browser.clickAndWait(getProperty("CHECK_AGES_BUTTON"));
+         assertTrue("Page should contain \"OK!\"", browser.isTextPresent("OK!"));
+         browser.type(getProperty("MINIMUM_AGE_INPUT"), age1);
+         browser.type(getProperty("MAXIMUM_AGE_INPUT"), age1);
+         browser.clickAndWait(getProperty("CHECK_AGES_BUTTON"));
+         assertTrue("Page should contain \"Must be larger than minimum!\"", browser.isTextPresent("Must be larger than minimum!"));
+         browser.type(getProperty("MINIMUM_AGE_INPUT"), age2);
+         browser.type(getProperty("MAXIMUM_AGE_INPUT"), age1);
+         browser.clickAndWait(getProperty("CHECK_AGES_BUTTON"));
+         assertTrue("Page should contain \"Must be larger than minimum!\"", browser.isTextPresent("Must be larger than minimum!"));        
+      }
+      
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void validateEquality2Test(){ 
+         String date1 = "2009-08-21";
+         String date2 = "2009-08-25";
+         browser.clickAndWait(VALIDATE_EQUALITY2_LINK);
+         
+         browser.type(getProperty("DATE_INPUT"), date1);
+         browser.type(getProperty("DATE_VERIFICATION_INPUT"), date1);
+         browser.clickAndWait(getProperty("CHECK_DATE_BUTTON"));
+         assertTrue("Page should contain \"OK!\"", browser.isTextPresent("OK!"));
+         
+         browser.type(getProperty("DATE_INPUT"), date1);
+         browser.type(getProperty("DATE_VERIFICATION_INPUT"), date2);
+         browser.clickAndWait(getProperty("CHECK_DATE_BUTTON"));
+         assertTrue("Page should contain \"Value does not equal that in 'date'\"", browser.isTextPresent("Value does not equal"));
+         //assertTrue("Page should contain information about Pete Muir working all the time on Seam", browser.isTextPresent("works on Seam, of course"));
+      }
+      
+      @Test(dependsOnMethods={"homePageLoadTest"})
+      public void resourceDownloadTest(){
+         String textToFind1 = "abc";
+         String textToFind2 = "123";
+         browser.clickAndWait(RESOURCE_DOWNLOAD_LINK);
+
+         assertTrue( "File download failed: Restful with s:download \"Text\"", isDownloadWorking("/seam-ui/resources.seam?id=1", textToFind1));
+         assertTrue( "File download failed: Restful with s:download \"Numbers\"", isDownloadWorking("/seam-ui/resources.seam?id=2", textToFind2));         
+      }
+      
+      private boolean isDownloadWorking(String pathToFile, String textToFind)
+      {
+         try 
+         {
+            URL downloadUrl = new URL("http://localhost:8080" + pathToFile);
+            BufferedReader r = new BufferedReader(new InputStreamReader(downloadUrl.openStream()));
+            String str;
+            StringBuffer sb = new StringBuffer();
+            while ((str = r.readLine()) != null)
+            {
+               sb.append(str);
+            }
+            return sb.toString().contains(textToFind);
+         } 
+         catch (IOException e) 
+         {
+            return false;
+         } 
+      }
+}

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/seam.properties	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,3 @@
+#debug is explicitly disabled in test to avoid JBIDE-3623
+#Thu Dec 31 16:24:37 CET 2009
+org.jboss.seam.core.init.debug=false

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources/ui.properties	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,36 @@
+SELECT_ITEMS_TITLE=xpath\=//select[option[contains(@value,'MR')]]
+SELECT_ITEMS_NAME=xpath\=//input[contains(@value,'Peter Muir')]
+SELECT_ITEMS_CONTINENT=xpath\=//select[option[contains(text(),'Europe')]]
+SELECT_ITEMS_USER=xpath\=//input[@type\='checkbox'][@value\='USER']
+SELECT_ITEMS_ADMIN=xpath\=//input[@type\='checkbox'][@value\='ADMIN']
+SELECT_ITEMS_MANAGER=xpath\=//input[@type\='checkbox'][@value\='MANAGER']
+SELECT_ITEMS_SUPERADMIN=xpath\=//input[@type\='checkbox'][@value\='SUPERADMIN']
+SELECT_ITEMS_AGE=xpath\=//select[option[contains(text(),'24')]]
+SELECT_ITEMS_PET=xpath\=//select[option[contains(@value,'Dog')]]
+SELECT_ITEMS_COLOURS=xpath\=//select[option[contains(text(),'Green')]]
+SELECT_ITEMS_BOOK=xpath\=//select[option[contains(text(),'Pride and Prejudice by Jane Austin (British)')]]
+SELECT_ITEMS_FILM=xpath\=//select[option[contains(text(),'Blade Runner directed by Ridley Scott')]]
+SELECT_ITEMS_APPLY=xpath\=//input[@type\='submit'][@value\='Apply']
+SELECT_ITEMS_COUNTRY=xpath\=//input[@type\='radio'][@value\='18']
+JUMP_LINK=xpath\=//a[contains(text(),'Jump')]
+JUMP_BUTTON=xpath\=//input[@type\='button'][@value\='Jump']
+LINK_LINK=xpath\=//a[contains(text(),'Link')]
+DO_ACTION_LINK=xpath\=//a[contains(text(),'Do action')]
+DO_ACTION_BUTTON=xpath\=//input[@type\='button'][@value\='Do action']
+#DISABLED_DO_ACTION_LINK=xpath\=//a[contains(text(),'Do action')][not(@href)]
+#DISABLED_DO_ACTION_BUTTON=xpath\=//input[@type\='button'][@value\='Do action'][@disabled\='disabled']
+DISABLED_DO_ACTION_LINK=xpath\=//tr[contains(td[1]/text(), 'Disabled')]/td[2]/a[contains(text(),'Do action')][string-length(@href)=0] 
+DISABLED_DO_ACTION_BUTTON=xpath\=//tr[contains(td[1]/text(), 'Disabled')]/td[3]/input[@value\='Do action'][@type\='button']
+BEGIN_CONVERSATION_LINK=xpath\=//a[contains(text(),'Begin conversation')]
+END_CONVERSATION_BUTTON=xpath\=//input[@type\='button'][@value\='End conversation']
+ADD_PARAMETER_LINK=xpath\=//a[contains(text(),'Add a page parameter')]
+ADD_PARAMETER_BUTTON=xpath\=//input[@type\='button'][@value\='Add a page parameter']
+NAME_INPUT=xpath\=//input[@type\='text'][contains(@name,'name')][not(contains(@name,'nameVerification'))]
+NAME_VERIFICATION_INPUT=xpath\=//input[@type\='text'][contains(@name,'nameVerification')]
+CHECK_NAME_BUTTON=xpath\=//input[@type\='submit'][@value\='Check name']
+MINIMUM_AGE_INPUT=xpath\=//input[@type\='text'][contains(@name,'min')][not(contains(@name,'minVerification'))]
+MAXIMUM_AGE_INPUT=xpath\=//input[@type\='text'][contains(@name,'minVerification')]
+CHECK_AGES_BUTTON=xpath\=//input[@type\='submit'][@value\='Check ages']
+DATE_INPUT=xpath\=//input[contains(@name,'date')][not(contains(@name,'dateVerification'))]
+DATE_VERIFICATION_INPUT=xpath\=//input[contains(@name,'dateVerification')]
+CHECK_DATE_BUTTON=xpath\=//input[@type\='submit'][@value\='Check date']

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/photo.jpg	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,5 @@
+ÿØÿà
+ÿÄ
+
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,26 @@
+<!--
+		JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+		Middleware LLC, and individual contributors by the @authors tag. See
+		the copyright.txt in the distribution for a full listing of individual
+		contributors. This is free software; you can redistribute it and/or
+		modify it under the terms of the GNU Lesser General Public License as
+		published by the Free Software Foundation; either version 2.1 of the
+		License, or (at your option) any later version. This software is
+		distributed in the hope that it will be useful, but WITHOUT ANY
+		WARRANTY; without even the implied warranty of MERCHANTABILITY or
+		FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+		License for more details. You should have received a copy of the GNU
+		Lesser General Public License along with this software; if not, write
+		to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+		Boston, MA 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+--> 
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+<suite name="UI example" verbose="2" parallel="false">
+	<test name="ui_jboss5">
+		<parameter name="PROPERTY_FILE" value="/ui.properties" />
+		<classes>
+			<class name="org.jboss.seam.example.ui.test.selenium.SeleniumUITest" />
+			<class name="org.jboss.seam.example.ui.test.htmlunit.HtmlUnitUITest" />
+		</classes>
+	</test>
+</suite>


Property changes on: branches/community/Seam_2_3/examples-ee6/ui/ui-tests/src/test/resources-ftest/testng.xml
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/pom.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,132 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>ui</artifactId>
+        <groupId>org.jboss.seam.examples-ee6</groupId>
+        <version>2.3.0.Beta1-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    
+    <artifactId>ui-web</artifactId>
+    <packaging>war</packaging>
+    <name>UI Web Module (EE6)</name>
+    
+    <properties>
+        <!-- filtering property for components.xml -->
+        <jndiPattern>java:app/ui-ejb/#{ejbName}</jndiPattern>
+    </properties>
+    
+    <dependencies>
+        <dependency>
+            <groupId>org.jboss.seam.examples-ee6</groupId>
+            <artifactId>ui-ejb</artifactId>
+            <type>ejb</type>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>jboss-seam</artifactId>
+            <type>ejb</type>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>jboss-seam-ui</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.jboss.seam</groupId>
+                    <artifactId>jboss-seam-jul</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jboss.seam</groupId>
+            <artifactId>jboss-seam-debug</artifactId>
+            <version>${project.version}</version>
+            <scope>runtime</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.jboss.seam</groupId>
+                    <artifactId>jboss-seam-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+  
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                    <webResources>
+                        <resource>
+                            <directory>src/main/webapp</directory>
+                            <filtering>true</filtering>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+  
+    <profiles>
+        <profile>
+            <id>tomcat</id>
+            <properties>
+                <!-- filtering property for components.xml -->
+                <jndiPattern>#{ejbName}/local</jndiPattern>
+            </properties>
+            <dependencies>
+                <dependency>
+                    <groupId>org.jboss.seam.examples-ee6</groupId>
+                    <artifactId>ui-ejb</artifactId>
+                    <type>ejb</type>
+                    <scope>compile</scope>
+                </dependency>
+                <dependency>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
+                    <scope>compile</scope>
+                </dependency>
+                <dependency>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
+                    <scope>compile</scope>
+                </dependency>
+                <dependency>
+                    <groupId>org.jboss.seam</groupId>
+                    <artifactId>jboss-seam</artifactId>
+                    <type>ejb</type>
+                    <scope>compile</scope>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>com.thoughtworks.xstream</groupId>
+                            <artifactId>xstream</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>xpp3</groupId>
+                            <artifactId>xpp3_min</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+            </dependencies>
+            <build>
+                <finalName>jboss-seam-ui</finalName>
+            </build>
+        </profile>
+    </profiles>
+</project>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/resources/messages_en.properties	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1 @@
+javax.faces.component.UIInput.REQUIRED=value is required

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/components.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components xmlns="http://jboss.com/products/seam/components"
+    xmlns:cache="http://jboss.com/products/seam/cache"
+	xmlns:core="http://jboss.com/products/seam/core"
+	xmlns:framework="http://jboss.com/products/seam/framework"
+	xmlns:persistence="http://jboss.com/products/seam/persistence"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.3.xsd 
+                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.3.xsd 
+                 http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.3.xsd 
+                 http://jboss.com/products/seam/framework http://jboss.com/products/seam/framework-2.3.xsd">
+	
+	<core:init jndi-pattern="@jndiPattern@" debug="true"/>
+
+	<core:manager conversation-timeout="120000"/>
+
+    <cache:eh-cache-provider/>
+	
+	<persistence:managed-persistence-context name="entityManager" persistence-unit-jndi-name="java:/uiEntityManagerFactory"/>
+    
+    <framework:entity-query name="countries" ejbql="select c from Country c" />
+    
+    <framework:entity-query name="continents" ejbql="select c from Continent c" />
+     
+    <framework:entity-home name="personHome" entity-class="org.jboss.seam.example.ui.Person" />
+    
+    <framework:entity-query name="colours" ejbql="select c from Colour c" />
+    
+    <framework:entity-query name="books" ejbql="select b from Book b" />
+    
+    <framework:entity-query name="films" ejbql="select f from Film f" />
+
+	<factory name="person" value="#{personHome.instance}" />
+	
+</components>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/faces-config.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="2.1"
+              xmlns="http://java.sun.com/xml/ns/javaee"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
+
+</faces-config>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/pages.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pages xmlns="http://jboss.com/products/seam/pages"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.3.xsd">
+
+	<page view-id="/index.xhtml">
+		<param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+		<begin-conversation join="true"/>
+	</page>
+	
+	<page view-id="/selectItems.xhtml">
+		<begin-conversation join="true"/>
+		<param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+	 	<navigation from-action="#{personHome.update}">        
+            <rule if-outcome="updated">
+       			<render/>         
+            </rule>        
+        </navigation>
+	</page>
+	
+	<page view-id="/formattedText.xhtml">
+		<param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+	</page>
+	
+	<page view-id="/fileUpload.xhtml">
+		<begin-conversation join="true"/>
+		<param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+		<navigation from-action="#{personHome.update}">        
+            <rule if-outcome="updated">
+                <render/>
+            </rule>        
+        </navigation>
+	</page>
+	
+	<page view-id="/graphicImage.xhtml">
+		<begin-conversation join="true"/>
+		<param name="personId" converterId="javax.faces.Integer" value="#{personHome.id}" />
+	</page>
+	
+	<page view-id="/linkAndButton.xhtml">
+		<param name="foo" value="#{buttonLink.foo}" />
+	</page>
+	
+</pages>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/WEB-INF/web.xml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+	version="3.0">
+         
+    <!-- Seam -->
+    
+    <listener>
+        <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+    </listener>
+    
+    <servlet>
+        <servlet-name>Seam Resource Servlet</servlet-name>
+        <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+    </servlet>
+    
+    <servlet-mapping>
+        <servlet-name>Seam Resource Servlet</servlet-name>
+        <url-pattern>/seam/resource/*</url-pattern>
+    </servlet-mapping>
+    
+	<servlet>
+		<servlet-name>Document Store Servlet</servlet-name>
+		<servlet-class>org.jboss.seam.document.DocumentStoreServlet</servlet-class>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>Document Store Servlet</servlet-name>
+		<url-pattern>/seam/docstore/*</url-pattern>
+	</servlet-mapping>
+    
+    <filter>
+        <filter-name>Seam Filter</filter-name>
+        <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>Seam Filter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+ 
+    <context-param>
+        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+        <param-value>.xhtml</param-value>
+    </context-param>
+
+<!--    
+    <context-param>
+      <param-name>com.sun.faces.verifyObjects</param-name>
+      <param-value>true</param-value>
+    </context-param>
+    -->
+
+    <context-param>
+        <param-name>facelets.SKIP_COMMENTS</param-name>
+        <param-value>true</param-value>
+    </context-param>
+
+   
+    <!--  This option is required by JSF 2 RI to work with custom EqualityValidator see JBSEAM-4537 -->
+    <context-param>
+        <param-name>com.sun.faces.allowTextChildren</param-name>
+        <param-value>true</param-value>
+    </context-param>
+    
+    <!-- Faces Servlet -->
+    
+    <servlet>
+        <servlet-name>Faces Servlet</servlet-name>
+        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    
+    <servlet-mapping>
+        <servlet-name>Faces Servlet</servlet-name>
+        <url-pattern>*.seam</url-pattern>
+    </servlet-mapping>
+
+    <!-- workaround for JBSEAM-4907 -->
+    <!--
+    <context-param>
+        <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
+        <param-value>false</param-value>
+    </context-param>
+    -->
+
+    <session-config>
+        <session-timeout>10</session-timeout> 
+    </session-config> 
+</web-app>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/cache.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:cache" />
+	<ui:define name="body">
+		<p>Cache the rendered page fragment using cache. Note that s:cache actually uses the instance of EHCache managed by the built-in pojoCache component.</p>	
+		<s:cache key="example">Some cached text</s:cache>
+	</ui:define>
+</ui:composition>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/continents.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,42 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:selectItems" />
+	<ui:define name="body">
+	<p>
+		Here you can select which continent a country is in.  This
+		demonstrates using <code>s:selectItems</code> in a <code>h:dataTable</code>.
+	</p>
+	
+
+	<h:form>
+	
+		<h:dataTable value="#{countries.dataModel}" var="country">
+			<h:column>
+				<f:facet name="header">
+					Country
+				</f:facet>
+				<h:outputText value="#{country.name}" />
+			</h:column>
+			<h:column>
+				<f:facet name="header">
+					Continent
+				</f:facet>
+				<h:selectOneMenu value="#{country.continent}">
+					<s:selectItems value="#{continents.resultList}" var="continent" label="#{continent.name}" />
+					<s:convertEntity />
+				</h:selectOneMenu>
+			</h:column>
+		</h:dataTable>
+		<h:commandButton value="Apply">
+			<s:conversationPropagation type="join" />
+		</h:commandButton>
+		
+	</h:form>
+</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/date.css	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,185 @@
+div.seam-date 
+{
+  margin-top: 5px;
+  border: 1px solid #AAAAAA;
+  background: #fff url(../img/input.bg.gif) 0 0 repeat-x;
+  background-color: #FFFFFF;  
+  color: #505050;
+  font-family: Tahoma, Arial, Helvetica, sans-serif;
+  font-size: 12px;
+}
+
+table.seam-date td {
+  font-family: Tahoma, Arial, Helvetica, sans-serif;
+  font-size: 11px; 
+}
+
+.seam-date-monthNames
+{
+  width: 70px;
+  border: 1px solid #dddddd;
+  border-right: 3px solid #444444;
+  border-bottom: 3px solid #444444;
+  background-color: #ffffff; 
+  font-size: 12px;
+  cursor: pointer;	
+  font-family: Tahoma, Arial, Helvetica, sans-serif;
+  font-weight: normal;
+}
+
+a.seam-date-monthNameLink, a.seam-date-monthNameLink:visited
+{
+  text-align: center;
+  display: block;
+  color: #555555;  
+}
+
+a.seam-date-monthNameLink:hover
+{ 
+  background-color: #CCCCCC;
+  color: red;  
+}
+
+.seam-date-years
+{
+  height: 10em;
+  overflow: auto;
+  width: 60px;
+  border: 1px solid #dddddd;
+  border-right: 3px solid #444444;
+  border-bottom: 3px solid #444444;
+  background-color: #ffffff; 
+  font-size: 12px;
+  cursor: pointer;	
+  font-family: Tahoma, Arial, Helvetica, sans-serif;
+  font-weight: normal;
+}
+
+a.seam-date-yearLink, a.seam-date-yearLink:visited
+{
+  text-align: center;
+  display: block;
+  color: #555555;    
+}
+
+a.seam-date-yearLink:hover
+{
+  background-color: #CCCCCC;
+  color: red;    
+}  
+
+tr.seam-date-header
+{
+  padding: 2px 0px 2px 0px;
+}
+  
+td.seam-date-header
+{
+  padding: 0px 8px 0px 8px;
+  text-align: center;
+  color: gray;
+  font-family: Tahoma, Arial, Helvetica, sans-serif;
+  font-weight: bold;
+  font-size: 12px;  
+}
+
+td.seam-date-header-prevMonth
+{
+  background-image: url("../img/cal-prev.png");
+  background-repeat: no-repeat;
+  background-position: center;
+  padding: 0px 2px 0px 2px;
+  width: 17px;
+  height: 16px;
+  margin-left: 2px;
+}
+
+td.seam-date-header-nextMonth
+{
+  background-image: url("../img/cal-next.png");
+  background-repeat: no-repeat;
+  background-position: center;
+  padding: 0px 2px 0px 2px;
+  width: 17px;
+  height: 16px;
+  margin-right: 2px;
+}
+
+tr.seam-date-headerDays
+{
+  color: white;
+  font-weight: normal;
+}
+
+tr.seam-date-headerDays > td
+{
+  background-color: #CCCCCC;
+  border: 1px solid #AAAAAA;
+  color: white;
+  text-align: center;
+  width: 26px;   
+}
+
+tr.seam-date-footer
+{
+  background-color: white; 
+  color: #505050;
+  font-weight: bold;
+}
+
+tr.seam-date-footer > td
+{
+  text-align: center;
+}
+
+td.seam-date-inMonth
+{
+  background-color: white; 
+  color: black;
+  font-weight: normal;
+  cursor: pointer;
+  border: 1px solid #ece9d8;
+}
+
+td.seam-date-outMonth
+{
+  background-color: white; 
+  color: #999999;
+  font-weight: normal;
+  cursor: pointer;
+  border: 1px solid #ece9d8;
+}
+
+td.seam-date-selected
+{
+  background-color: #CCCCCC;        
+  border: 1px solid #AAAAAA; 
+  color: black;
+  font-weight: normal;
+}
+
+td.seam-date-dayOff-inMonth
+{
+  background-color: #efefef;
+  color: black;
+  font-weight: normal;
+  cursor: pointer;
+  border: 1px solid #ece9d8;
+}
+
+td.seam-date-dayOff-outMonth
+{
+  background-color: #efefef;
+  color: #999999;
+  font-weight: normal;
+  cursor: pointer;
+  border: 1px solid #ece9d8;
+}
+
+td.seam-date-hover 
+{
+  background-color: #CCCCCC;
+  border: 1px solid #AAAAAA;
+  cursor: pointer;
+  color: red;
+}
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/decorateField.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,24 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition  xmlns="http://www.w3.org/1999/xhtml"
+                 xmlns:ui="http://java.sun.com/jsf/facelets"
+                 xmlns:h="http://java.sun.com/jsf/html"
+                 xmlns:f="http://java.sun.com/jsf/core"
+                 xmlns:s="http://jboss.com/products/seam/taglib">
+                 
+    <div class="entry">
+        <s:label styleClass="label #{invalid?'errors':''}">
+            <ui:insert name="label"/>
+            <s:span styleClass="required" rendered="#{required}">*</s:span>
+        </s:label>
+        <span class="input #{invalid?'errors':''}">
+           <s:validateAll>
+                <ui:insert/>
+            </s:validateAll>
+        </span>
+        <div>
+	        <s:message styleClass="error errors"/>
+	    </div>
+        <div class="description"><ui:insert name="description" /></div>
+    </div>
+    
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/dtpick.gif	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,2 @@
+GIF89a
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidator.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,37 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:h="http://java.sun.com/jsf/html" xmlns:s="http://jboss.com/products/seam/taglib" template="template.xhtml">
+	<ui:param name="tagName" value="s:validateEquality" />
+	<ui:define name="body">
+		<h:form>
+			<p>Validates that two java.lang.String inputs are equal (may be empty)</p>
+			<h:panelGrid columns="3">
+				<s:label for="name">Name</s:label>
+				<h:inputText id="name" value="#{equalityValidatorBean.name}" />
+				<h:message for="name" />
+				<s:label for="nameVerification">Name Verification</s:label>
+				<h:inputText id="nameVerification">
+					<s:validateEquality for="name" message="Must be the same as name!" required="false" />
+				</h:inputText>
+				<h:message for="nameVerification" />
+				<h:commandButton action="#{equalityValidatorBean.check}" value="Check name" />
+			</h:panelGrid>
+			</h:form>
+
+			<h:form>
+			<p>Validates that one number is greater than another</p>
+			<h:panelGrid columns="3">
+				<s:label for="min">Minimum age (e.g. 18)</s:label>
+				<h:inputText id="min" value="#{equalityValidatorBean.age}" />
+				<h:message for="min" />
+				<s:label for="minVerification">Maximum age (e.g. 25)</s:label>
+				<h:inputText id="minVerification">
+					<f:convertNumber integerOnly="true" />
+					<s:validateEquality for="min" message="Must be larger than minimum!" operator="greater" />
+				</h:inputText>
+				<h:message for="minVerification" />
+				<h:commandButton action="#{equalityValidatorBean.check}" value="Check ages" />
+			</h:panelGrid>
+		</h:form>
+	</ui:define>
+</ui:composition>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/equalityValidatorWConvert.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,31 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:s="http://jboss.com/products/seam/taglib"
+	template="template.xhtml">
+	<ui:param name="tagName" value="s:validateEquality" />
+	<ui:define name="body">
+		<p>Validates that two java.util.Date inputs are equal</p>
+		<h:form>
+			<h:panelGrid columns="3">
+				<s:label for="date">Date (yyyy-MM-dd)</s:label>
+				<h:inputText id="date" value="#{equalityValidatorBean.date}">
+					<f:convertDateTime pattern="yyyy-MM-dd" />
+				</h:inputText>
+				<h:message for="date" />
+				<s:label for="dateVerification">Date Verification (yyyy-MM-dd)</s:label>
+				<h:inputText id="dateVerification">
+					<f:convertDateTime pattern="yyyy-MM-dd" />
+					<s:validateEquality for="date" />
+				</h:inputText>
+				<h:message for="dateVerification" />
+				<h:commandButton action="#{equalityValidatorBean.checkDate}"
+					value="Check date" />
+			</h:panelGrid>
+		</h:form>
+
+
+	</ui:define>
+</ui:composition>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fileUpload.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,21 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:fileUpload" />
+	<ui:define name="body">
+		<p>Renders a file upload control.</p>
+		<h:form enctype="multipart/form-data">
+			<h:panelGrid columns="2">
+				<h:outputText value="#{person.name}'s Picture" />
+				<s:fileUpload data="#{person.picture.data}" contentType="#{person.picture.contentType}" fileName="#{person.picture.fileName}" accept="images/png,images/jpg" />
+				<h:commandButton action="#{personHome.update}" value="Update" />
+				<h:outputText/>
+			</h:panelGrid>
+		</h:form>
+	</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/formattedText.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:formattedText" />
+	<ui:define name="body">
+		<p>Output Seam Text:</p>	
+		<p>In his/her spare time, <h:outputText value="#{person.name}"/> <s:formattedText value="#{person.hobbies}" /></p>
+	</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/fragment.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:fragment" />
+	<ui:define name="body">
+		<p>A non-rendering component useful for enabling/disabling rendering of it's children.</p>	
+		<p><s:fragment rendered="true">This fragment is rendered</s:fragment> whilst <s:fragment rendered="false">this one isn't</s:fragment></p>
+	</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/graphicImage.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,22 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:graphicImage" />
+	<ui:define name="body">
+		<p>Outputs an image</p>
+		<h:panelGrid>
+			<s:fragment>
+				<s:graphicImage value="#{person.picture.data}">
+					<s:transformImageSize factor="0.5" />
+				</s:graphicImage>
+				<h:outputText value="No image found (upload one)" rendered="#{person.picture.contentType eq null}" />
+			</s:fragment>
+			<h:outputText value="Picture of #{person.name}" />
+		</h:panelGrid>
+	</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.html	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,5 @@
+<html>
+<head>
+  <meta http-equiv="Refresh" content="0; URL=index.seam">
+</head>
+</html>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/index.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,14 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      xmlns:aca="http://www.aca-it.be/taglib/jsf"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="" />
+	<ui:define name="body">
+		<p>Seam ui components</p>
+	</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/linkAndButton.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,47 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:link/s:button" />
+	<ui:define name="body">
+		<p>A link/button that supports invocation of an action with control over conversation propagation. <i>Does not submit the form.</i></p>
+		<p>Some of the things you can do with a s:link or s:button:</p>
+		<h:panelGrid columns="3">
+			<h:outputText value="Jump to a fragment on a view" />
+			<s:link view="/linkAndButton.xhtml" fragment="fragment" value="Jump" />
+			<s:button view="/linkAndButton.xhtml" fragment="fragment" value="Jump" />
+			
+			<h:outputText value="Link on children" />
+			<s:link view="/linkAndButton.xhtml">Link</s:link>
+			<h:outputText value="N/A" />
+			
+			<h:outputText value="Do an action" />
+			<s:link action="#{buttonLink.simpleAction}" value="Do action" />
+			<s:button action="#{buttonLink.simpleAction}" value="Do action" />
+			
+			<h:outputText value="Disabled" />
+			<s:link action="#{buttonLink.simpleAction}" value="Do action" disabled="true"/>
+			<s:button action="#{buttonLink.simpleAction}" value="Do action" disabled="true"/>
+			
+			<h:outputText value="Conversation Propagation" />
+			<s:link view="/linkAndButton.xhtml" value="Begin conversation" propagation="begin" />
+			<s:button view="/linkAndButton.xhtml" value="End conversation">
+				<s:conversationPropagation type="end" />
+			</s:button>
+			
+			<h:outputText value="Page parameters" />
+			<s:link action="#{buttonLink.simpleAction}" value="Add a page parameter">
+				<f:param name="foo" value="bar" />
+			</s:link>
+			<s:button action="#{buttonLink.simpleAction}" value="Add a page parameter">
+				<f:param name="foo" value="bar" />
+			</s:button>
+		</h:panelGrid>
+		<p>You can also start a pageflow or start/resume a task - this isn't demonstrated here.</p>
+		<p><a name="fragment">A fragment to jump to</a></p>
+	</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resource.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,26 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:s="http://jboss.com/products/seam/taglib"
+	template="template.xhtml">
+	<ui:param name="tagName" value="s:resource, s:download" />
+	<ui:define name="body">
+		<p>Download a file.</p>
+		<h:panelGrid columns="3">
+			<h:outputText value="Totally restful" />
+			<h:outputLink value="resources.seam?id=1">Text</h:outputLink>
+			<h:outputLink value="resources.seam?id=2">Numbers</h:outputLink>
+			<h:outputText value="Restful with s:download" />
+			<s:download src="/resources.xhtml">
+				<h:outputText value="Text" />
+				<f:param name="id" value="1" />
+			</s:download>
+			<s:download src="/resources.xhtml">
+				<h:outputText value="Numbers" />
+				<f:param name="id" value="2" />
+			</s:download>
+		</h:panelGrid>
+	</ui:define>
+</ui:composition>

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/resources.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,5 @@
+<s:resource xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:s="http://jboss.com/products/seam/taglib"
+	data="#{resources.item.data}"
+	contentType="#{resources.item.contentType}"
+	fileName="#{resources.item.fileName}" />

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/selectItems.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,113 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      template="template.xhtml"
+      >
+	<ui:param name="tagName" value="s:selectItems" />
+	<ui:define name="body">
+	<p>This example shows example usage of the <code>s:selectItems</code> tag being used for CRUD on a  <code>Person</code> entity.</p>
+	<p>The example also uses:</p>
+	<ul>
+		<li><code>s:span</code></li>
+		<li><code>s:convertEnum</code></li>
+		<li><code>s:message</code></li>
+		<li><code>s:decorate</code></li>
+		<li><code>s:link</code></li>
+		<li><code>s:conversationPropagation</code></li>
+		<li><code>s:decorate</code></li>
+	</ul>
+	
+	<p><s:link view="/continents.xhtml" value="Edit the continent/country relationship." /></p>
+
+	<h:form>
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Title</ui:define>
+			<h:selectOneMenu value="#{person.honorific}">
+				<s:selectItems value="#{honorifics}" var="honorific" label="#{honorific.label}" noSelectionLabel="Please select" />
+				<s:convertEnum />
+			</h:selectOneMenu>
+		</s:decorate>		
+		
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Name</ui:define>
+			<ui:define name="description">Enter your name as it appears on your passport</ui:define>
+			<h:inputText value="#{person.name}" required="true" />
+		</s:decorate>
+		
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Continent of Birth</ui:define>
+			<h:selectOneMenu value="#{personHome.instance.continent}" required="true" id="continent">
+				<s:selectItems value="#{continents.resultList}" var="continent" label="#{continent.name}" noSelectionLabel="Please Select..."/>
+				<s:convertEntity />
+			</h:selectOneMenu>
+		</s:decorate>
+		
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Country of Birth</ui:define>
+			<h:selectOneRadio value="#{personHome.instance.country}" required="true" disabled="#{empty person.continent}">
+				<s:selectItems value="#{personHome.instance.continent.countries}" var="country" label="#{country.name} (#{country.continent.name})" noSelectionLabel="Please Select..." hideNoSelectionLabel="true"/>
+				<s:convertEntity />
+			</h:selectOneRadio>
+		</s:decorate>
+		
+		<s:decorate template="decorateField.xhtml">
+		  <ui:define name="label">Roles</ui:define>
+		  <h:selectManyCheckbox value="#{person.roles}" required="true" collectionType="java.util.ArrayList">
+		    <s:selectItems value="#{roles}" var="role" label="#{role.name}"/>
+		    <s:convertEnum />
+		  </h:selectManyCheckbox>
+		</s:decorate>
+	
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Age</ui:define>
+			<ui:define name="description">The age list is an array of primitives</ui:define>
+			<h:selectOneMenu value="#{person.age}">
+				<s:selectItems value="#{ages}" var="age" label="#{age}" />
+				<f:converter converterId="ageConverter" />
+			</h:selectOneMenu>
+		</s:decorate>
+		
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Pet</ui:define>
+			<ui:define name="description">The animal list is a list of Strings</ui:define>
+			<h:selectOneMenu value="#{person.pet}">
+				<s:selectItems value="#{animals}" var="animal" label="#{animal.name} (#{animal.notes})" itemValue="#{animal.name}" noSelectionLabel="Select your pet"/>
+			</h:selectOneMenu>
+		</s:decorate>
+		
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Favourite Colours</ui:define>
+			<ui:define name="description">A colour is an entity</ui:define>
+			<h:selectManyListbox value="#{personHome.instance.favouriteColours}" collectionType="java.util.ArrayList">
+				<s:selectItems value="#{colours.resultList}" var="colour" label="#{colour.name}" />
+				<s:convertEntity />
+			</h:selectManyListbox>
+		</s:decorate>
+	
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Favourite Book</ui:define>
+			<ui:define name="description">A book has a composite key</ui:define>
+			<h:selectOneListbox value="#{person.favouriteBook}" >
+				<s:selectItems value="#{books.resultList}" var="book" label="#{book.name} by #{book.author} (#{book.nationality})" />
+				<s:convertEntity />
+			</h:selectOneListbox>
+		</s:decorate>
+		
+		<s:decorate template="decorateField.xhtml">
+			<ui:define name="label">Favourite Film</ui:define>
+			<ui:define name="description">Film uses <code>@Converter(forClass="...")</code> - there is no converter specified in the facelet</ui:define>
+			<h:selectOneListbox value="#{person.favouriteFilm}">
+				<s:selectItems value="#{films.resultList}" var="film" label="#{film.name} directed by #{film.director}" noSelectionLabel="Please Select..."/>
+			</h:selectOneListbox>
+		</s:decorate>
+		
+		<h:commandButton value="Apply" action="#{personHome.update}">
+			<s:conversationPropagation type="join" />
+		</h:commandButton>
+		
+	</h:form>
+</ui:define>
+</ui:composition>
\ No newline at end of file

Added: branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml	                        (rev 0)
+++ branches/community/Seam_2_3/examples-ee6/ui/ui-web/src/main/webapp/template.xhtml	2012-03-14 17:50:07 UTC (rev 14402)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html  xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:s="http://jboss.com/products/seam/taglib">
+<head>
+<title>UI Example: #{tagName}</title>
+<link href="date.css" rel="stylesheet" type="text/css" />
+<style type="text/css">
+.label {
+	font-weight: bold;
+	color: #5E5147;
+}
+.errors {
+	font-size: small;
+	font-weight: bold;
+	text-align: center;
+	color: #600;
+}
+.errors div {
+	text-align: left;
+}
+.errors span {
+	text-align: left;
+}
+.errors input {
+	border: 1px solid #600;
+}
+.errors ul {
+	list-style: none;
+}
+.entry {
+	padding-top: 10px;
+}
+.entry .label {
+	float: left;
+	padding-right: 5px;
+	font-weight: bold;
+	width: 250px;
+	text-align: right;
+}
+
+.entry .input {
+	width: 600px;
+	text-align: left;
+}
+.entry .error {
+	width: 600px;
+	text-align: left;
+	margin-left: 270px;
+}
+
+.entry .description {
+	font-size: x-small;
+	margin-left: 270px;
+}
+
+.menu {
+	width: 220px;
+	float: left;
+	padding: 10px;
+}
+
+.content {
+	margin-left: 200px;
+}
+</style>
+<ui:debug id="debug" />
+</head>
+
+<body>
+<s:div styleClass="menu">
+	<ul>
+		<li><s:link view="/selectItems.xhtml" propagation="join">
+			<code>s:selectItems</code>
+			<f:param name="personId" value="1" />
+		</s:link></li>
+		<li><s:link view="/fragment.xhtml" propagation="none">
+			<code>s:fragment</code>
+		</s:link></li>
+		<li><s:link view="/formattedText.xhtml" propagation="join">
+			<code>s:formattedText</code>
+			<f:param name="personId" value="1" />
+		</s:link></li>
+		<li><s:link view="/fileUpload.xhtml" propagation="join">
+			<code>s:fileUpload</code>
+			<f:param name="personId" value="1" />
+		</s:link></li>
+		<li><s:link view="/linkAndButton.xhtml" propagation="none">
+			<code>s:button</code> and <code>s:link</code>
+		</s:link></li>
+		<li><s:link view="/cache.xhtml" propagation="none">
+			<code>s:cache</code>
+		</s:link></li>
+		<li><s:link view="/graphicImage.xhtml">
+			<code>s:graphicImage</code>
+			<f:param name="personId" value="1" />
+		</s:link></li>
+		
+		<li><s:link view="/equalityValidator.xhtml">
+			<code>s:validateEquality</code>
+		</s:link></li>
+		
+		<li><s:link view="/equalityValidatorWConvert.xhtml">
+			<code>s:validateEquality(2)</code>
+		</s:link></li>		
+	
+		<li><s:link view="/resource.xhtml">
+			<code>s:resource/download</code>
+		</s:link></li>		
+		
+		
+		<li><s:span title="#{spanTitle}" style="font-weight:bold">
+		    <code>s:span</code>
+		  </s:span>
+		</li>		
+	
+	</ul>
+</s:div>
+<s:div styleClass="content">
+	<h1><code><h:outputText value="#{tagName}" /></code></h1>
+	<ui:insert name="body" />
+	<h:messages />
+</s:div>
+</body>
+
+</html>
\ No newline at end of file



More information about the seam-commits mailing list