[richfaces-svn-commits] JBoss Rich Faces SVN: r18633 - in trunk: archetypes and 59 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Aug 13 15:22:30 EDT 2010


Author: jbalunas at redhat.com
Date: 2010-08-13 15:22:27 -0400 (Fri, 13 Aug 2010)
New Revision: 18633

Added:
   trunk/core/commons/checkstyle-suppressions.xml
   trunk/core/commons/pom.xml
   trunk/core/commons/src/
   trunk/core/commons/src/main/
   trunk/core/commons/src/main/java/
   trunk/core/commons/src/main/java/META-INF/
   trunk/core/commons/src/main/java/org/
   trunk/core/commons/src/main/java/org/richfaces/
   trunk/core/commons/src/main/java/org/richfaces/JavaLogger.java
   trunk/core/commons/src/main/java/org/richfaces/LogFactory.java
   trunk/core/commons/src/main/java/org/richfaces/Logger.java
   trunk/core/commons/src/main/java/org/richfaces/MethodMetadata.java
   trunk/core/commons/src/main/java/org/richfaces/PartialStateHolderHelper.java
   trunk/core/commons/src/main/java/org/richfaces/renderkit/
   trunk/core/commons/src/main/java/org/richfaces/renderkit/ComponentAttribute.java
   trunk/core/commons/src/main/java/org/richfaces/renderkit/RenderKitUtils.java
   trunk/core/commons/src/test/
   trunk/core/commons/src/test/java/
   trunk/core/commons/src/test/java/org/
   trunk/core/commons/src/test/java/org/richfaces/
   trunk/core/commons/src/test/java/org/richfaces/renderkit/
   trunk/core/commons/src/test/java/org/richfaces/renderkit/MockClientBehaviorHolder.java
   trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsMocksTest.java
   trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsTest.java
Removed:
   trunk/core/bom/
   trunk/core/commons/api/
   trunk/core/commons/bom/pom.xml
   trunk/core/commons/lgpl.txt
   trunk/core/commons/parent/
   trunk/core/commons/pom.xml
Modified:
   trunk/
   trunk/archetypes/pom.xml
   trunk/archetypes/richfaces-archetype-simpleapp/pom.xml
   trunk/archetypes/richfaces-component-short/pom.xml
   trunk/archetypes/richfaces-component/pom.xml
   trunk/archetypes/richfaces-components-aggregator/pom.xml
   trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/pom.xml
   trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/bom/pom.xml
   trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/parent/pom.xml
   trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/pom.xml
   trunk/bom/pom.xml
   trunk/cdk/bom/pom.xml
   trunk/cdk/plugins/annotations/pom.xml
   trunk/cdk/plugins/generator/pom.xml
   trunk/cdk/pom.xml
   trunk/core/api/pom.xml
   trunk/core/impl/pom.xml
   trunk/core/parent/pom.xml
   trunk/core/pom.xml
   trunk/dist/pom.xml
   trunk/examples/core-demo/pom.xml
   trunk/examples/iteration-demo/pom.xml
   trunk/examples/misc-demo/pom.xml
   trunk/examples/output-demo/pom.xml
   trunk/examples/pom.xml
   trunk/examples/repeater-demo/pom.xml
   trunk/examples/richfaces-showcase/pom.xml
   trunk/pom.xml
   trunk/ui/common/api/pom.xml
   trunk/ui/common/pom.xml
   trunk/ui/common/ui/pom.xml
   trunk/ui/core/pom.xml
   trunk/ui/core/ui/pom.xml
   trunk/ui/dist/pom.xml
   trunk/ui/dist/richfaces-components-api/pom.xml
   trunk/ui/dist/richfaces-components-ui/pom.xml
   trunk/ui/input/api/pom.xml
   trunk/ui/input/pom.xml
   trunk/ui/input/ui/pom.xml
   trunk/ui/iteration/api/pom.xml
   trunk/ui/iteration/pom.xml
   trunk/ui/iteration/ui/pom.xml
   trunk/ui/misc/pom.xml
   trunk/ui/misc/ui/pom.xml
   trunk/ui/output/api/pom.xml
   trunk/ui/output/pom.xml
   trunk/ui/output/ui/pom.xml
   trunk/ui/parent/pom.xml
   trunk/ui/pom.xml
Log:
svnmerge RF-9040 + some extra changes for conflicts


Property changes on: trunk
___________________________________________________________________
Name: svnmerge-integrated
   - /branches/RF-9040_build_updated_m2:1-18565
   + /branches/RF-9040_build_updated_m2:1-18626

Modified: trunk/archetypes/pom.xml
===================================================================
--- trunk/archetypes/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>6</version>
+        <version>10-SNAPSHOT</version>
     </parent>
     
     <groupId>org.richfaces.archetypes</groupId>
@@ -43,6 +43,7 @@
     </modules>
 
     <properties>
+        <!-- TODO verify if these are needed here - I believe they are inherited from parent -->
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     </properties>

Modified: trunk/archetypes/richfaces-archetype-simpleapp/pom.xml
===================================================================
--- trunk/archetypes/richfaces-archetype-simpleapp/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-archetype-simpleapp/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -4,7 +4,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

Modified: trunk/archetypes/richfaces-component/pom.xml
===================================================================
--- trunk/archetypes/richfaces-component/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-component/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

Modified: trunk/archetypes/richfaces-component-short/pom.xml
===================================================================
--- trunk/archetypes/richfaces-component-short/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-component-short/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

Modified: trunk/archetypes/richfaces-components-aggregator/pom.xml
===================================================================
--- trunk/archetypes/richfaces-components-aggregator/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-components-aggregator/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

Modified: trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/pom.xml
===================================================================
--- trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>${groupId}.${category}</groupId>

Modified: trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/bom/pom.xml
===================================================================
--- trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/bom/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/bom/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>${groupId}.${category}</groupId>

Modified: trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/parent/pom.xml
===================================================================
--- trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/parent/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/parent/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>${groupId}.${category}</groupId>

Modified: trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/pom.xml
===================================================================
--- trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/archetypes/richfaces-components-aggregator/src/main/resources/archetype-resources/trunk/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>${groupId}.${category}</groupId>

Modified: trunk/bom/pom.xml
===================================================================
--- trunk/bom/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/bom/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,102 +1,205 @@
 
-	<!--
-		JBoss, Home of Professional Open Source Copyright 2010, Red Hat, Inc.
-		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.
-	-->
-<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>
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
+<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>
 
-	<groupId>org.richfaces</groupId>
-	<artifactId>richfaces-bom</artifactId>
-	<packaging>pom</packaging>
-	<version>4.0.0-SNAPSHOT</version>
-	<name>RichFaces BOM</name>
+    <groupId>org.richfaces</groupId>
+    <artifactId>richfaces-bom</artifactId>
+    <packaging>pom</packaging>
+    <version>4.0.0-SNAPSHOT</version>
+    <name>RichFaces BOM</name>
 
-	<parent>
-		<groupId>org.richfaces</groupId>
-		<artifactId>richfaces-parent</artifactId>
-		<version>9</version>
-	</parent>
+    <parent>
+        <groupId>org.richfaces</groupId>
+        <artifactId>richfaces-parent</artifactId>
+        <version>10-SNAPSHOT</version>
+    </parent>
 
-	<description>
+    <description>
 		The RichFaces "Bill of Materials". This defines all runtime dependency
 		versions for RichFaces.
    </description>
 
-	<url>http://www.jboss.org/richfaces</url>
+    <url>http://www.jboss.org/richfaces</url>
 
-	<properties>
-	</properties>
+    <properties>
+    </properties>
 
-	<!-- Runtime dependency management -->
-	<dependencyManagement>
-		<dependencies>
-			<!-- JSF 2 -->
-			<!--
-				This is set by  by profiles in richfaces-parent
-			-->
-			<dependency>
-				<groupId>${jsf2.api.groupid}</groupId>
-				<artifactId>${jsf2.api.artifactid}</artifactId>
-				<version>${jsf2.api.version}</version>
-			</dependency>
+    <!-- Runtime dependency management -->
+    <dependencyManagement>
+        <dependencies>
+            <!-- Project Versions -->
+            <dependency>
+                <groupId>org.richfaces.commons</groupId>
+                <artifactId>richfaces-commons-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.core</groupId>
+                <artifactId>richfaces-core-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.core</groupId>
+                <artifactId>richfaces-core-impl</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.common</groupId>
+                <artifactId>richfaces-ui-common-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.common</groupId>
+                <artifactId>richfaces-ui-common-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.core</groupId>
+                <artifactId>richfaces-ui-core-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.iteration</groupId>
+                <artifactId>richfaces-ui-iteration-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.iteration</groupId>
+                <artifactId>richfaces-ui-iteration-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.output</groupId>
+                <artifactId>richfaces-ui-output-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.output</groupId>
+                <artifactId>richfaces-ui-output-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.misc</groupId>
+                <artifactId>richfaces-ui-misc-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.input</groupId>
+                <artifactId>richfaces-ui-input-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui.input</groupId>
+                <artifactId>richfaces-ui-input-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui</groupId>
+                <artifactId>richfaces-components-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.richfaces.ui</groupId>
+                <artifactId>richfaces-components-ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <!-- JSF 2 -->
+            <dependency>
+                <groupId>javax.faces</groupId>
+                <artifactId>jsf-api</artifactId>
+                <version>2.0.0</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.faces</groupId>
+                <artifactId>jsf-api</artifactId>
+                <version>2.0.2</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.faces</groupId>
+                <artifactId>jsf-impl</artifactId>
+                <version>2.0.2</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.myfaces.core</groupId>
+                <artifactId>myfaces-api</artifactId>
+                <version>2.0.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.myfaces.core</groupId>
+                <artifactId>myfaces-impl</artifactId>
+                <version>2.0.1</version>
+            </dependency>
 
-			<!-- Misc -->
-			<dependency>
-				<groupId>javax.el</groupId>
-				<artifactId>el-api</artifactId>
-				<version>1.0</version>
-			</dependency>
-			<dependency>
-				<groupId>javax.servlet</groupId>
-				<artifactId>servlet-api</artifactId>
-				<version>2.5</version>
-			</dependency>
-			<dependency>
-				<groupId>javax.servlet.jsp</groupId>
-				<artifactId>jsp-api</artifactId>
-				<version>2.1</version>
-			</dependency>
-			<dependency>
-				<groupId>javax.servlet</groupId>
-				<artifactId>jstl</artifactId>
-				<version>1.2</version>
-			</dependency>
-			<dependency>
-				<groupId>javax.inject</groupId>
-				<artifactId>javax.inject</artifactId>
-				<version>1</version>
-			</dependency>
-			<dependency>
-				<groupId>com.google.guava</groupId>
-				<artifactId>guava</artifactId>
-				<version>r05</version>
-			</dependency>
-			
-			<!-- Logging -->
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>slf4j-api</artifactId>
-				<version>1.5.8</version>
-			</dependency>
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>slf4j-log4j12</artifactId>
-				<version>1.5.8</version>
-			</dependency>
-        
+            <!-- Misc -->
+            <dependency>
+                <groupId>javax.el</groupId>
+                <artifactId>el-api</artifactId>
+                <version>1.0</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>servlet-api</artifactId>
+                <version>2.5</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.servlet.jsp</groupId>
+                <artifactId>jsp-api</artifactId>
+                <version>2.1</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>jstl</artifactId>
+                <version>1.2</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.inject</groupId>
+                <artifactId>javax.inject</artifactId>
+                <version>1</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>r05</version>
+            </dependency>
+            <!-- Required for EL-CSS func -->
+            <dependency>
+                <groupId>net.sourceforge.cssparser</groupId>
+                <artifactId>cssparser</artifactId>
+                <version>0.9.5</version>
+            </dependency>
+
+            <!-- Logging -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>1.5.8</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-log4j12</artifactId>
+                <version>1.5.8</version>
+            </dependency>
+
             <!-- Optional cache dependencies -->
             <dependency>
                 <groupId>opensymphony</groupId>
@@ -114,24 +217,86 @@
                 <version>1.6.0</version>
             </dependency>
         </dependencies>
-	</dependencyManagement>
+    </dependencyManagement>
 
-	<build>
-		<plugins>
-			<!-- For the release this bom pom -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-release-plugin</artifactId>
-			</plugin>
-		</plugins>
-	</build>
+    <profiles>
 
-	<scm>
-		<connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/build/bom
-		</connection>
-		<developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/build/bom
-		</developerConnection>
-		<url>http://fisheye.jboss.org/browse/richfaces/trunk/build/bom</url>
-	</scm>
+        <!--
+            The following profiles determine the JSF api/impl
+            combinations that will be used in the project builds.
 
+            -Djsf_profile=<profile-name> on the mvn command line
+        -->
+        <profile>
+            <id>jsf_ri</id>
+            <activation>
+                <property>
+                    <name>!jsf_profile</name>
+                </property>
+            </activation>
+            <dependencies>
+                <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>test</scope>
+                </dependency>
+            </dependencies>
+        </profile>
+        <profile>
+            <id>myfaces</id>
+            <activation>
+                <property>
+                    <name>jsf_profile</name>
+                    <value>myfaces</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>org.apache.myfaces.core</groupId>
+                    <artifactId>myfaces-api</artifactId>
+                    <scope>provided</scope>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.myfaces.core</groupId>
+                    <artifactId>myfaces-impl</artifactId>
+                    <scope>test</scope>
+                </dependency>
+            </dependencies>
+        </profile>
+        <profile>
+            <id>jsf_ri_2_1_snapshot</id>
+            <activation>
+                <property>
+                    <name>jsf_profile</name>
+                    <value>jsf_ri_2_1_snapshot</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
+                    <version>2.1.0-SNAPSHOT</version>
+                    <scope>provided</scope>
+                </dependency>
+                <dependency>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
+                    <version>2.1.0-SNAPSHOT</version>
+                    <scope>test</scope>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
+
+    <scm>
+        <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/build/bom</connection>
+        <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/build/bom</developerConnection>
+        <url>http://fisheye.jboss.org/browse/richfaces/trunk/build/bom</url>
+    </scm>
+
 </project>

Modified: trunk/cdk/bom/pom.xml
===================================================================
--- trunk/cdk/bom/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/cdk/bom/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -5,7 +5,7 @@
 	<parent>
 		<groupId>org.richfaces</groupId>
 		<artifactId>richfaces-parent</artifactId>
-		<version>9</version>
+		<version>10-SNAPSHOT</version>
 	</parent>
 
 	<modelVersion>4.0.0</modelVersion>
@@ -38,15 +38,13 @@
 	</build>
 	<dependencyManagement>
 		<dependencies>
-			<!-- Import richfaces-common-bom -->
-			<dependency>
-				<groupId>org.richfaces.commons</groupId>
-				<artifactId>richfaces-commons-bom</artifactId>
-				<version>${org.richfaces.commons.version}</version>
-				<scope>import</scope>
-				<type>pom</type>
-			</dependency>
-
+		    <!-- TODO Temp update to have jsf-api defined here.  Alex will a
+		         address with him build commit -->
+		    <dependency>
+                <groupId>com.sun.faces</groupId>
+                <artifactId>jsf-api</artifactId>
+                <version>2.0.2</version>
+            </dependency>
 			<!-- TODO remove duplicates from these dependences already defined in 
 				project BOM -->
 			<dependency>

Modified: trunk/cdk/plugins/annotations/pom.xml
===================================================================
--- trunk/cdk/plugins/annotations/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/cdk/plugins/annotations/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -14,8 +14,8 @@
   <name>annotations</name>
   <dependencies>
 		<dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+                <groupId>com.sun.faces</groupId>
+                <artifactId>jsf-api</artifactId>
         </dependency>
   </dependencies>
 </project>

Modified: trunk/cdk/plugins/generator/pom.xml
===================================================================
--- trunk/cdk/plugins/generator/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/cdk/plugins/generator/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -125,8 +125,8 @@
 			<artifactId>jaxb-impl</artifactId>
 		</dependency>
 		<dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+                <groupId>com.sun.faces</groupId>
+                <artifactId>jsf-api</artifactId>
         </dependency>
 		<dependency>
 			<groupId>javax.servlet.jsp</groupId>

Modified: trunk/cdk/pom.xml
===================================================================
--- trunk/cdk/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/cdk/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -4,7 +4,7 @@
         <parent>
              <groupId>org.richfaces</groupId>
              <artifactId>richfaces-parent</artifactId>
-             <version>9</version>
+             <version>10-SNAPSHOT</version>
         </parent>
 
 	<modelVersion>4.0.0</modelVersion>

Modified: trunk/core/api/pom.xml
===================================================================
--- trunk/core/api/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/api/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -47,13 +47,7 @@
         </dependency>
 
         <!-- Provided dependencies -->
-        <!-- JSF2 api version set by bom/richface-parent -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>javax.el</groupId>
             <artifactId>el-api</artifactId>
             <scope>provided</scope>

Deleted: trunk/core/commons/bom/pom.xml
===================================================================
--- trunk/core/commons/bom/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/commons/bom/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,70 +0,0 @@
-
-    <!--
-        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-        Inc. 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.
-    -->
-<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>
-
-    <groupId>org.richfaces.commons</groupId>
-    <artifactId>richfaces-commons-bom</artifactId>
-    <packaging>pom</packaging>
-    <version>4.0.0-SNAPSHOT</version>
-    <name>RichFaces Commons BOM</name>
-
-    <parent>
-        <groupId>org.richfaces</groupId>
-        <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
-    </parent>
-
-    <description>
-      The RichFaces Commons "Bill of Materials".  This defines any commons specific runtime dependency versions.
-   </description>
-
-    <url>http://www.jboss.org/richfaces</url>
-
-    <properties>
-        <org.richfaces.bom.version>4.0.0-SNAPSHOT</org.richfaces.bom.version>
-    </properties>
-
-    <!-- Runtime dependency management -->
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.richfaces</groupId>
-                <artifactId>richfaces-bom</artifactId>
-                <version>${org.richfaces.bom.version}</version>
-                <scope>import</scope>
-                <type>pom</type>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.commons</groupId>
-                <artifactId>richfaces-commons-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <scm>
-        <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/commons/bom</connection>
-        <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/commons/bom</developerConnection>
-        <url>http://fisheye.jboss.org/browse/richfaces/trunk/commons/bom</url>
-    </scm>
-
-</project>

Copied: trunk/core/commons/checkstyle-suppressions.xml (from rev 18623, branches/RF-9040_build_updated_m2/core/commons/checkstyle-suppressions.xml)
===================================================================
--- trunk/core/commons/checkstyle-suppressions.xml	                        (rev 0)
+++ trunk/core/commons/checkstyle-suppressions.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE suppressions PUBLIC
+        "-//Puppy Crawl//DTD Suppressions 1.0//EN"
+        "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
+
+<suppressions>
+    <suppress checks="DoubleCheckedLocking" files="MultipartRequestRegistry.java" />
+    <suppress checks="FallThrough" files="JSMin.java" />
+    <suppress checks="IllegalCatch" files="UISwitchablePanel.java" />
+    <suppress checks="ModifiedControlVariable" files="MultipartRequest.java" />
+    <suppress checks="IllegalCatch" files="StagingServer.java" />
+    <suppress checks="IllegalCatch" files="PartialViewContextImpl.java" />
+    <suppress checks="FallThrough" files="StagingServer.java" />
+    <suppress checks="ModifiedControlVariable" files="Cookie.java" />
+    <suppress checks="IllegalCatch" files="CacheManager.java" />
+    <suppress checks="MissingSwitchDefault" files="JSONTokener.java" />
+    <suppress checks="IllegalCatch" files="AjaxViewRoot.java" />
+    <suppress checks="FallThrough" files="XMLTokener.java" />
+    <suppress checks="IllegalCatch" files="ResourceHandlerImpl.java" />
+    <suppress checks="IllegalThrows" files="AbstractThreadedTest.java" />
+    <suppress checks="ModifiedControlVariable" files="URLCodec.java" />
+
+    <!-- TODO it is hot fix for building process, this files belong to the test-base module, 
+              and must be removed from here -->
+    <suppress checks="IllegalCatch" files="AbstractThreadedTest.java" />
+    <suppress checks="IllegalCatch" files="StagingServer.java" />
+
+    <!-- TODO it is hot fix for building process, this files belong to the ui/output/trunk/panela/ui module, 
+              and must be removed from here -->
+    <suppress checks="IllegalCatch" files="AbstractTogglePanel.java" />			  
+</suppressions>

Deleted: trunk/core/commons/lgpl.txt
===================================================================
--- trunk/core/commons/lgpl.txt	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/commons/lgpl.txt	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,504 +0,0 @@
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-		     
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library 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 library 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 library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-

Deleted: trunk/core/commons/pom.xml
===================================================================
--- trunk/core/commons/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/commons/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-    <!--
-        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-        Inc. 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.
-    -->
-<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/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.richfaces</groupId>
-        <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
-    </parent>
-
-    <groupId>org.richfaces.commons</groupId>
-    <artifactId>richfaces-commons-aggregator</artifactId>
-    <version>4.0.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <name>Richfaces Commons Aggregator</name>
-
-    <description>The root aggregator for the commons module.  This manages intermodule relationships, and destribution assembly where needed.</description>
-
-    <modules>
-        <module>bom</module>
-        <module>parent</module>
-        <module>api</module>
-    </modules>
-    
-    <scm>
-        <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/commons</connection>
-        <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/commons</developerConnection>
-        <url>http://fisheye.jboss.org/browse/richfaces/trunk/commons</url>
-    </scm>
-</project>
-

Copied: trunk/core/commons/pom.xml (from rev 18623, branches/RF-9040_build_updated_m2/core/commons/pom.xml)
===================================================================
--- trunk/core/commons/pom.xml	                        (rev 0)
+++ trunk/core/commons/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat, Inc.
+        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.
+    -->
+<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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    
+    <parent>
+        <groupId>org.richfaces.core</groupId>
+        <artifactId>richfaces-core-parent</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+    
+    <groupId>org.richfaces.commons</groupId>
+    <artifactId>richfaces-commons-api</artifactId>
+    <version>4.0.0-SNAPSHOT</version>
+    <name>RichFaces Commons API</name>
+
+    <dependencies>
+        <!-- Runtime Dependencies -->
+        <dependency>
+            <groupId>javax.el</groupId>
+            <artifactId>el-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Test Dependencies -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.test-jsf</groupId>
+            <artifactId>jsf-mock</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <!-- Trigger checkstyle checking for this module -->
+            <plugin>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+    
+    <scm>
+        <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/commons/api</connection>
+        <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/commons/api</developerConnection>
+        <url>http://fisheye.jboss.org/browse/richfaces/trunk/commons/api</url>
+    </scm>
+</project>
\ No newline at end of file

Added: trunk/core/commons/src/main/java/org/richfaces/JavaLogger.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/JavaLogger.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/JavaLogger.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,214 @@
+/*
+ * $Id: JavaLogger.java 16812 2010-04-26 20:43:19Z alexsmirnov $
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces;
+
+
+
+/**
+ * <p class="changed_added_4_0">That logger delegates all calls to the JDK {@link java.util.logging.Logger}</p>
+ *
+ * @author asmirnov at exadel.com
+ */
+public class JavaLogger implements Logger {
+    
+    public static final String RICHFACES_LOG = "org.richfaces.cdk";
+
+
+    private static final String DEFAULT_MESSAGE = "Exception";
+
+    
+    private final java.util.logging.Logger jdkLogger;
+
+    JavaLogger(String category) {
+        jdkLogger = java.util.logging.Logger.getLogger(category);
+    }
+    
+    JavaLogger() {
+        this(RICHFACES_LOG);
+    }
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#debug(java.lang.CharSequence)
+     */
+    public void debug(CharSequence content) {
+        jdkLogger.fine(String.valueOf(content));
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#debug(java.lang.CharSequence, java.lang.Throwable)
+     */
+    public void debug(CharSequence content, Throwable error) {
+        jdkLogger.log(java.util.logging.Level.FINE, String.valueOf(content), error);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#debug(java.lang.Throwable)
+     */
+    public void debug(Throwable error) {
+        jdkLogger.log(java.util.logging.Level.FINE, "", error);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#error(java.lang.CharSequence)
+     */
+    public void error(CharSequence content) {
+        jdkLogger.severe(String.valueOf(content));
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#error(java.lang.CharSequence, java.lang.Throwable)
+     */
+    public void error(CharSequence content, Throwable error) {
+        
+        jdkLogger.log(java.util.logging.Level.SEVERE, String.valueOf(content), error);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#error(java.lang.Throwable)
+     */
+    public void error(Throwable error) {
+        
+        jdkLogger.log(java.util.logging.Level.SEVERE, "", error);
+    }
+
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#info(java.lang.CharSequence)
+     */
+    public void info(CharSequence content) {
+        jdkLogger.info(String.valueOf(content));
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#info(java.lang.CharSequence, java.lang.Throwable)
+     */
+    public void info(CharSequence content, Throwable error) {
+        jdkLogger.log(java.util.logging.Level.INFO, String.valueOf(content), error);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#info(java.lang.Throwable)
+     */
+    public void info(Throwable error) {
+        jdkLogger.log(java.util.logging.Level.INFO, "", error);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#isDebugEnabled()
+     */
+    public boolean isDebugEnabled() {
+        return jdkLogger.isLoggable(java.util.logging.Level.FINE);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#isErrorEnabled()
+     */
+    public boolean isErrorEnabled() {
+        return jdkLogger.isLoggable(java.util.logging.Level.SEVERE);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#isInfoEnabled()
+     */
+    public boolean isInfoEnabled() {
+        return jdkLogger.isLoggable(java.util.logging.Level.INFO);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#isWarnEnabled()
+     */
+    public boolean isWarnEnabled() {
+        return jdkLogger.isLoggable(java.util.logging.Level.WARNING);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#warn(java.lang.CharSequence)
+     */
+    public void warn(CharSequence content) {
+        jdkLogger.warning(String.valueOf(content));
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#warn(java.lang.CharSequence, java.lang.Throwable)
+     */
+    public void warn(CharSequence content, Throwable error) {
+        jdkLogger.log(java.util.logging.Level.WARNING, String.valueOf(content), error);
+    }
+
+    /*
+     *  (non-Javadoc)
+     * @see org.richfaces.cdk.Logger#warn(java.lang.Throwable)
+     */
+    public void warn(Throwable error) {
+        jdkLogger.log(java.util.logging.Level.WARNING, "", error);
+    }
+
+    public boolean isLogEnabled(Logger.Level level) {
+        return jdkLogger.isLoggable(toJavaLevel(level));
+    }
+
+    public void log(org.richfaces.Logger.Level level, CharSequence content) {
+        jdkLogger.log(toJavaLevel(level), String.valueOf(content));
+        
+    }
+
+    public void log(org.richfaces.Logger.Level level, CharSequence content, Throwable error) {
+        jdkLogger.log(toJavaLevel(level), String.valueOf(content),error);
+    }
+
+    public void log(org.richfaces.Logger.Level level, Throwable error) {
+        jdkLogger.log(toJavaLevel(level),DEFAULT_MESSAGE, error);
+    }
+    
+    private java.util.logging.Level toJavaLevel(Logger.Level level){
+        switch (level) {
+            case ERROR:
+                return java.util.logging.Level.SEVERE;
+            case INFO:
+                return java.util.logging.Level.INFO;
+            case WARNING:
+                return java.util.logging.Level.WARNING;
+            case DEBUG:
+                return java.util.logging.Level.FINE;
+            default :{
+                //No level set
+                throw new IllegalArgumentException("Logging level must be set to obtain a logger");
+            }
+        }
+    }
+}

Added: trunk/core/commons/src/main/java/org/richfaces/LogFactory.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/LogFactory.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/LogFactory.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,61 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces;
+
+/**
+ * <p class="changed_added_4_0">This class produces loggers used by whole RichFaces library.</p>
+ * @author asmirnov at exadel.com
+ *
+ */
+public final class LogFactory {
+    
+    private static final Logger DEFAULT_LOGGER = new JavaLogger();
+    
+    private LogFactory(){
+        // This class is not instantiable.
+    }
+
+    
+    /**
+     * <p class="changed_added_4_0">This method creates default logger.</p>
+     * @return
+     */
+    public static Logger getLogger(){
+        return DEFAULT_LOGGER;
+    }
+
+    /**
+     * <p class="changed_added_4_0">This method produces logger instance for given category.</p>
+     * @param category
+     * @return
+     */
+    public static Logger getLogger(String category){
+        return new JavaLogger(category);
+    }
+    
+    public static Logger getLogger(Class<?> clazz){
+        return getLogger(clazz.getName());
+    }
+    
+}

Added: trunk/core/commons/src/main/java/org/richfaces/Logger.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/Logger.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/Logger.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,174 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces;
+
+
+/**
+ * That interface hides current logging system from classes.
+ * Concrete implementation should provide appropriate logger instance that delegates
+ * messages to the current log system.
+ *
+ * @author shura
+ */
+public interface Logger {
+    
+    public enum Level {
+        ERROR,
+        INFO,
+        WARNING,
+        DEBUG
+    }
+    
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @return
+     */
+    public boolean isDebugEnabled();
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     */
+    public void debug(CharSequence content);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     * @param error
+     */
+    public void debug(CharSequence content, Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param error
+     */
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param error
+     */
+    public void debug(Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @return
+     */
+    public boolean isInfoEnabled();
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     */
+    public void info(CharSequence content);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     * @param error
+     */
+    public void info(CharSequence content, Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param error
+     */
+    public void info(Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @return
+     */
+    public boolean isWarnEnabled();
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     */
+    public void warn(CharSequence content);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     * @param error
+     */
+    public void warn(CharSequence content, Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param error
+     */
+    public void warn(Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @return
+     */
+    public boolean isErrorEnabled();
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     */
+    public void error(CharSequence content);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param content
+     * @param error
+     */
+    public void error(CharSequence content, Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param error
+     */
+    public void error(Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param level
+     * @return
+     */
+    public boolean isLogEnabled(Level level);
+    
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param level
+     * @param content
+     */
+    public void log(Level level,CharSequence content);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param level
+     * @param content
+     * @param error
+     */
+    public void log(Level level,CharSequence content, Throwable error);
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param level
+     * @param error
+     */
+    public void log(Level level, Throwable error);
+    
+}

Added: trunk/core/commons/src/main/java/org/richfaces/MethodMetadata.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/MethodMetadata.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/MethodMetadata.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright , Red Hat, Inc. 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.richfaces;
+
+import javax.el.MethodExpression;
+import javax.faces.application.Application;
+import javax.faces.el.MethodBinding;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.Metadata;
+import javax.faces.view.facelets.TagAttribute;
+
+/**
+ * @author akolonitsky
+ * @since Feb 24, 2010
+ */
+//TODO nick - handle return type
+public abstract class MethodMetadata extends Metadata {
+    
+    protected final Class<?>[] signature;
+
+    protected final TagAttribute attribute;
+
+    public MethodMetadata(TagAttribute attribute, Class<?> ... signature) {
+        this.attribute = attribute;
+        this.signature = signature;
+    }
+
+    protected MethodExpression getMethodExpression(FaceletContext ctx) {
+        return this.attribute.getMethodExpression(ctx, null, signature);
+    }
+
+    protected MethodBinding getMethodBinding(FaceletContext ctx) {
+        MethodExpression expression = this.attribute.getMethodExpression(ctx, null, signature);
+        Application application = ctx.getFacesContext().getApplication();
+        return application.createMethodBinding(expression.getExpressionString(), signature); // TODO expression.getExpressionString() ???
+    }
+
+}

Added: trunk/core/commons/src/main/java/org/richfaces/PartialStateHolderHelper.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/PartialStateHolderHelper.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/PartialStateHolderHelper.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,421 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright , Red Hat, Inc. 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.richfaces;
+
+import javax.faces.component.PartialStateHolder;
+import javax.faces.component.StateHelper;
+import javax.faces.component.StateHolder;
+import static javax.faces.component.UIComponentBase.restoreAttachedState;
+import static javax.faces.component.UIComponentBase.saveAttachedState;
+import javax.faces.context.FacesContext;
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * @author akolonitsky
+ * @since Feb 2, 2010
+ *
+ * A base implementation for
+ * maps which implement the PartialStateHolder interface.
+ * <p/>
+ * This can be used as a base-class for all
+ * state-holder implementations in components,
+ * converters and validators and other implementations
+ * of the StateHolder interface.
+ */
+ at SuppressWarnings({"unchecked"})
+public class PartialStateHolderHelper implements StateHelper {
+
+    private PartialStateHolder stateHolder;
+    private boolean isTransient;
+    private Map<Serializable, Object> deltaMap;
+    private Map<Serializable, Object> defaultMap;
+
+    // ------------------------------------------------------------ Constructors
+
+
+    public PartialStateHolderHelper(PartialStateHolder stateHolder) {
+
+        this.stateHolder = stateHolder;
+        this.deltaMap = new HashMap<Serializable, Object>();
+        this.defaultMap = new HashMap<Serializable, Object>();
+
+    }
+
+
+    // ------------------------------------------------ Methods from StateHelper
+
+
+    /**
+     * Put the object in the main-map
+     * and/or the delta-map, if necessary.
+     *
+     * @param key
+     * @param value
+     * @return the original value in the delta-map, if not present, the old value in the main map
+     */
+    public Object put(Serializable key, Object value) {
+
+        if (stateHolder.initialStateMarked() || value instanceof PartialStateHolder) {
+            Object retVal = deltaMap.put(key, value);
+
+            if (retVal == null) {
+                return defaultMap.put(key, value);
+            } else {
+                defaultMap.put(key, value);
+                return retVal;
+            }
+        } else {
+            return defaultMap.put(key, value);
+        }
+    }
+
+
+    /**
+     * We need to remove from both
+     * maps, if we do remove an existing key.
+     *
+     * @param key
+     * @return the removed object in the delta-map. if not present, the removed object from the main map
+     */
+    public Object remove(Serializable key) {
+        if (stateHolder.initialStateMarked()) {
+            Object retVal = deltaMap.remove(key);
+
+            if (retVal == null) {
+                return defaultMap.remove(key);
+            } else {
+                defaultMap.remove(key);
+                return retVal;
+            }
+        } else {
+            return defaultMap.remove(key);
+        }
+    }
+
+
+    /**
+     * @see StateHelper#put(java.io.Serializable, String, Object)
+     */
+    public Object put(Serializable key, String mapKey, Object value) {
+
+        Object ret = null;
+        if (stateHolder.initialStateMarked()) {
+            Map<String, Object> dMap = (Map<String, Object>) deltaMap.get(key);
+            if (dMap == null) {
+                dMap = new HashMap<String, Object>(5);
+                deltaMap.put(key, dMap);
+            }
+            ret = dMap.put(mapKey, value);
+
+        }
+        Map<String, Object> map = (Map<String, Object>) get(key);
+        if (map == null) {
+            map = new HashMap<String, Object>(8);
+            defaultMap.put(key, map);
+        }
+        if (ret == null) {
+            return map.put(mapKey, value);
+        } else {
+            map.put(mapKey, value);
+            return ret;
+        }
+
+    }
+
+
+    /**
+     * Get the object from the main-map.
+     * As everything is written through
+     * from the delta-map to the main-map, this
+     * should be enough.
+     *
+     * @param key
+     * @return
+     */
+    public Object get(Serializable key) {
+        return defaultMap.get(key);
+    }
+
+
+    /**
+     * @see StateHelper#eval(java.io.Serializable)
+     */
+    public Object eval(Serializable key) {
+        return eval(key, null);
+    }
+
+
+    /**
+     * @see StateHelper#eval(java.io.Serializable, Object)
+     */
+    public Object eval(Serializable key, Object defaultValue) {
+        Object retVal = get(key);
+        if (retVal == null) {
+            retVal = getValueExpressionValue(key.toString());
+        }
+
+        return (retVal != null) ? retVal : defaultValue;
+    }
+
+    protected Object getValueExpressionValue(String name) {
+        return null;
+    }
+
+
+    /**
+     * @see StateHelper#add(java.io.Serializable, Object)
+     */
+    public void add(Serializable key, Object value) {
+
+        if (stateHolder.initialStateMarked()) {
+            List<Object> deltaList = (List<Object>) deltaMap.get(key);
+            if (deltaList == null) {
+                deltaList = new ArrayList<Object>(4);
+                deltaMap.put(key, deltaList);
+            }
+            deltaList.add(value);
+        }
+        List<Object> items = (List<Object>) get(key);
+        if (items == null) {
+            items = new ArrayList<Object>(4);
+            defaultMap.put(key, items);
+        }
+        items.add(value);
+
+    }
+
+
+    /**
+     * @see StateHelper#remove(java.io.Serializable, Object)
+     */
+    public Object remove(Serializable key, Object valueOrKey) {
+        Object source = get(key);
+        if (source instanceof Collection) {
+            return removeFromList(key, valueOrKey);
+        } else if (source instanceof Map) {
+            return removeFromMap(key, valueOrKey.toString());
+        }
+        return null;
+    }
+
+
+    // ------------------------------------------------ Methods from StateHolder
+
+
+    /**
+     * One and only implementation of
+     * save-state - makes all other implementations
+     * unnecessary.
+     *
+     * @param context
+     * @return the saved state
+     */
+    public Object saveState(FacesContext context) {
+        if (context == null) {
+            throw new NullPointerException();
+        }
+        if (stateHolder.initialStateMarked()) {
+            return saveMap(context, deltaMap);
+        } else {
+            return saveMap(context, defaultMap);
+        }
+    }
+
+
+    /**
+     * One and only implementation of
+     * restore state. Makes all other implementations
+     * unnecessary.
+     *
+     * @param context FacesContext
+     * @param state   the state to be restored.
+     */
+    public void restoreState(FacesContext context, Object state) {
+
+        if (context == null) {
+            throw new NullPointerException();
+        }
+        if (state == null) {
+            return;
+        }
+        Object[] savedState = (Object[]) state;
+        if (savedState[savedState.length - 1] != null) {
+            if ((Boolean) savedState[savedState.length - 1]) {
+                stateHolder.markInitialState();
+            } else {
+                stateHolder.clearInitialState();
+            }
+        }
+
+        int length = (savedState.length - 1) / 2;
+        for (int i = 0; i < length; i++) {
+            Object value = savedState[i * 2 + 1];
+            if (Void.TYPE.equals(value)) {
+                value = null;
+            }
+            Serializable serializable = (Serializable) savedState[i * 2];
+            if (value != null) {
+                if (value instanceof Collection) {
+                    value = restoreAttachedState(context, value);
+                    /*} else if (value instanceof StateHolderSaver) {
+                 value = ((StateHolderSaver) value).restore(context);*/
+                } else {
+                    value = value instanceof Serializable
+                            ? value
+                            : restoreAttachedState(context, value);
+                }
+            }
+            if (value instanceof Map) {
+                for (Map.Entry<String, Object> entry : ((Map<String, Object>) value)
+                        .entrySet()) {
+                    this.put(serializable, entry.getKey(), entry.getValue());
+                }
+            } else if (value instanceof List) {
+                List<Object> list = (List) get(serializable);
+                for (Object o : (List<Object>) value) {
+                    if (list == null || !list.contains(o)) {
+                        this.add(serializable, o);
+                    }
+                }
+            } else {
+                put(serializable, value);
+            }
+        }
+    }
+
+
+    /**
+     * @see javax.faces.component.StateHolder#isTransient()
+     */
+    public boolean isTransient() {
+        return isTransient;
+    }
+
+
+    /**
+     * @see javax.faces.component.StateHolder#setTransient(boolean)
+     */
+    public void setTransient(boolean newTransientValue) {
+        isTransient = newTransientValue;
+    }
+
+
+    // --------------------------------------------------------- Private Methods
+
+
+    private Object saveMap(FacesContext context, Map<Serializable, Object> map) {
+
+        if (map.isEmpty()) {
+            if (!stateHolder.initialStateMarked()) {
+                // only need to propagate the stateHolder's delta status when
+                // delta tracking has been disabled.  We're assuming that
+                // the VDL will reset the status when the view is reconstructed,
+                // so no need to save the state if the saved state is the default.
+                return new Object[]{stateHolder.initialStateMarked()};
+            }
+            return null;
+        }
+
+        Object[] savedState = new Object[map.size() * 2 + 1];
+
+        int i = 0;
+
+        for (Map.Entry<Serializable, Object> entry : map.entrySet()) {
+            Object value = entry.getValue();
+            if (value == null) {
+                value = Void.TYPE;
+            }
+            savedState[i * 2] = entry.getKey();
+            if (value instanceof Collection
+                    || value instanceof StateHolder
+                    || !(value instanceof Serializable)) {
+                value = saveAttachedState(context, value);
+            }
+            savedState[i * 2 + 1] = value;
+            i++;
+        }
+        if (!stateHolder.initialStateMarked()) {
+            savedState[savedState.length - 1] = stateHolder.initialStateMarked();
+        }
+        return savedState;
+
+    }
+
+
+    private Object removeFromList(Serializable key, Object value) {
+        Object ret = null;
+        if (stateHolder.initialStateMarked() || value instanceof PartialStateHolder) {
+            Collection<Object> deltaList = (Collection<Object>) deltaMap.get(key);
+            if (deltaList != null) {
+                ret = deltaList.remove(value);
+                if (deltaList.isEmpty()) {
+                    deltaMap.remove(key);
+                }
+            }
+        }
+        Collection<Object> list = (Collection<Object>) get(key);
+        if (list != null) {
+            if (ret == null) {
+                ret = list.remove(value);
+            } else {
+                list.remove(value);
+            }
+            if (list.isEmpty()) {
+                defaultMap.remove(key);
+            }
+        }
+        return ret;
+    }
+
+
+    private Object removeFromMap(Serializable key, String mapKey) {
+        Object ret = null;
+        if (stateHolder.initialStateMarked()) {
+            Map<String, Object> dMap = (Map<String, Object>) deltaMap.get(key);
+            if (dMap != null) {
+                ret = dMap.remove(mapKey);
+                if (dMap.isEmpty()) {
+                    deltaMap.remove(key);
+                }
+            }
+        }
+        Map<String, Object> map = (Map<String, Object>) get(key);
+        if (map != null) {
+            if (ret == null) {
+                ret = map.remove(mapKey);
+            } else {
+                map.remove(mapKey);
+
+            }
+            if (map.isEmpty()) {
+                defaultMap.remove(key);
+            }
+        }
+        if (ret != null && !stateHolder.initialStateMarked()) {
+            deltaMap.remove(key);
+        }
+        return ret;
+    }
+
+}

Added: trunk/core/commons/src/main/java/org/richfaces/renderkit/ComponentAttribute.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/renderkit/ComponentAttribute.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/renderkit/ComponentAttribute.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. 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.richfaces.renderkit;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * @author Nick Belaevski
+ */
+public class ComponentAttribute implements Comparable<ComponentAttribute> {
+    
+    public enum Kind {
+        BOOL,
+        GENERIC,
+        URI
+    }
+
+    private final String htmlAttributeName;
+    
+    private String componentAttributeName;
+    
+    private Object defaultValue;
+    
+    private String[] eventNames = {};
+    
+    private Kind kind = Kind.GENERIC;
+    
+    //TODO handling for aliases: "styleClass" -> "class"
+    
+    public ComponentAttribute(String htmlAttributeName) {
+        super();
+        this.htmlAttributeName = htmlAttributeName;
+    }
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @return the defaultValue
+     */
+    public Object getDefaultValue() {
+        return this.defaultValue;
+    }
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param defaultValue the defaultValue to set
+     */
+    public void setDefaultValue(Object dafaultValue) {
+        this.defaultValue = dafaultValue;
+    }
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @return the kind
+     */
+    public Kind getKind() {
+        return this.kind;
+    }
+
+    /**
+     * <p class="changed_added_4_0"></p>
+     * @param kind the kind to set
+     */
+    public void setKind(Kind kind) {
+        this.kind = kind;
+    }
+
+    public static final Map<String, ComponentAttribute> createMap(ComponentAttribute... attributes) {
+        Map<String,ComponentAttribute> result = new TreeMap<String, ComponentAttribute>();
+        
+        for (ComponentAttribute componentAttribute : attributes) {
+            result.put(componentAttribute.getComponentAttributeName(), componentAttribute);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * @return the name
+     */
+    public String getHtmlAttributeName() {
+        return htmlAttributeName;
+    }
+    
+    /**
+     * @return the componentAttributeName
+     */
+    public String getComponentAttributeName() {
+        return (componentAttributeName == null) ? htmlAttributeName : componentAttributeName;
+    }
+
+    /**
+     * @param componentAttributeName the componentAttributeName to set
+     * @return 
+     */
+    public ComponentAttribute setComponentAttributeName(String componentAttributeName) {
+        this.componentAttributeName = componentAttributeName;
+        
+        return this;
+    }
+    
+    /**
+     * @return the eventNames
+     */
+    public String[] getEventNames() {
+        return eventNames;
+    }
+    
+    /**
+     * @param eventNames the eventNames to set
+     * @return 
+     */
+    public ComponentAttribute setEventNames(String... eventNames) {
+        this.eventNames = eventNames;
+    
+        return this;
+    }
+    
+    public int compareTo(ComponentAttribute o) {
+        return getHtmlAttributeName().compareTo(o.getHtmlAttributeName());
+    }
+}

Added: trunk/core/commons/src/main/java/org/richfaces/renderkit/RenderKitUtils.java
===================================================================
--- trunk/core/commons/src/main/java/org/richfaces/renderkit/RenderKitUtils.java	                        (rev 0)
+++ trunk/core/commons/src/main/java/org/richfaces/renderkit/RenderKitUtils.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,468 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. 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.richfaces.renderkit;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIComponentBase;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorContext;
+import javax.faces.component.behavior.ClientBehaviorHint;
+import javax.faces.component.behavior.ClientBehaviorHolder;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
+import org.richfaces.renderkit.ComponentAttribute.Kind;
+
+/**
+ * @author Nick Belaevski
+ * 
+ */
+public final class RenderKitUtils {
+
+    /**
+     * 
+     */
+    static final String BEHAVIOR_SOURCE_ID = "javax.faces.source";
+
+    /**
+     * 
+     */
+    static final String BEHAVIOR_EVENT_NAME = "javax.faces.behavior.event";
+
+    /**
+     * 
+     */
+    private static final String XHTML_ATTRIBUTE_PREFIX = "xml:";
+
+    /**
+     * 
+     */
+    private static final String XHTML_CONTENT_TYPE = "application/xhtml+xml";
+
+    // TODO - check what's in MyFaces
+    private static final String ATTRIBUTES_THAT_ARE_SET = UIComponentBase.class.getName() + ".attributesThatAreSet";
+
+    private static final String[] BOOLEAN_ATTRIBUTE_NAMES = { "checked", "compact", "declare", "defer", "disabled",
+        "ismap", "multiple", "nohref", "noshade", "nowrap", "readonly", "selected" };
+
+    private static final String[] URI_ATTRIBUTE_NAMES = { "action", "background", "cite", "classid", "codebase",
+        "data", "href", "longdesc", "profile", "src", "usemap" };
+
+    private static final String[] XHTML_ATTRIBUTE_NAMES = { "lang" };
+
+    private static final String DISABLED_ATTRIBUTE_NAME = "disabled";
+
+    private RenderKitUtils() {
+        // utility constructor
+    }
+
+    private static Map<String, List<ClientBehavior>> getClientBehaviorsMap(UIComponent component) {
+        Map<String, List<ClientBehavior>> result;
+        if (component instanceof ClientBehaviorHolder) {
+            ClientBehaviorHolder clientBehaviorHolder = (ClientBehaviorHolder) component;
+
+            result = clientBehaviorHolder.getClientBehaviors();
+        } else {
+            result = Collections.emptyMap();
+        }
+        return result;
+    }
+
+    static boolean isDisabled(UIComponent component) {
+        Object disabledAttributeValue = component.getAttributes().get(DISABLED_ATTRIBUTE_NAME);
+        if (disabledAttributeValue == null) {
+            return false;
+        }
+
+        if (disabledAttributeValue instanceof Boolean) {
+            return Boolean.TRUE.equals(disabledAttributeValue);
+        }
+
+        return Boolean.valueOf(disabledAttributeValue.toString());
+    }
+
+    static String escape(String s) {
+        StringBuilder sb = new StringBuilder(s.length());
+        int start = 0;
+        int end;
+
+        while ((end = s.indexOf('\'', start)) >= 0) {
+            sb.append(s, start, end);
+            sb.append("\\'");
+
+            start = end + 1;
+        }
+
+        sb.append(s, start, s.length());
+
+        return sb.toString();
+    }
+
+    static boolean chain(StringBuilder sb, Object object, boolean isChained) {
+        if (object != null) {
+            String objectString = object.toString().trim();
+            if (objectString.length() != 0) {
+                final boolean localIsChained;
+
+                if (!isChained && sb.length() != 0) {
+                    // extract previously stored handler
+                    String previousHandlerString = sb.toString();
+                    // clear builder object
+                    sb.setLength(0);
+
+                    // append escaped handler
+                    sb.append("'");
+                    sb.append(escape(previousHandlerString));
+                    sb.append("'");
+
+                    localIsChained = true;
+                } else {
+                    // use passed in value of chained indicator
+                    localIsChained = isChained;
+                }
+
+                if (localIsChained) {
+                    sb.append(",'");
+                    sb.append(escape(objectString));
+                    sb.append("'");
+
+                    return true;
+                } else {
+                    sb.append(objectString);
+                    return false;
+                }
+            }
+        }
+
+        // no changes, pass chained indicator we initially used
+        return isChained;
+    }
+
+    private static Object createBehaviorsChain(Object inlineHandlerValue, ClientBehaviorContext behaviorContext,
+        List<ClientBehavior> behaviors) {
+
+        boolean isChained = false;
+        StringBuilder result = new StringBuilder();
+
+        isChained = chain(result, inlineHandlerValue, isChained);
+        for (ClientBehavior behavior : behaviors) {
+            isChained = chain(result, behavior.getScript(behaviorContext), isChained);
+
+            if (behavior.getHints().contains(ClientBehaviorHint.SUBMITTING)) {
+                break;
+            }
+        }
+
+        if (result.length() == 0) {
+            return null;
+        }
+
+        if (isChained) {
+            result.insert(0, "jsf.util.chain(");
+            result.append(")");
+        }
+
+        return result.toString();
+    }
+
+    public static boolean shouldRenderAttribute(Object attributeValue) {
+        if (attributeValue == null) {
+            return false;
+        } else if (attributeValue instanceof String) {
+            return ((String) attributeValue).length() > 0;
+        } else if (attributeValue instanceof Boolean && Boolean.FALSE.equals(attributeValue)) {
+            return false;
+        } else if (attributeValue instanceof Integer && (Integer) attributeValue == Integer.MIN_VALUE) {
+            return false;
+        } else if (attributeValue instanceof Double && (Double) attributeValue == Double.MIN_VALUE) {
+            return false;
+        } else if (attributeValue instanceof Character && (Character) attributeValue == Character.MIN_VALUE) {
+            return false;
+        } else if (attributeValue instanceof Float && (Float) attributeValue == Float.MIN_VALUE) {
+            return false;
+        } else if (attributeValue instanceof Short && (Short) attributeValue == Short.MIN_VALUE) {
+            return false;
+        } else if (attributeValue instanceof Byte && (Byte) attributeValue == Byte.MIN_VALUE) {
+            return false;
+        } else if (attributeValue instanceof Long && (Long) attributeValue == Long.MIN_VALUE) {
+            return false;
+        }
+
+        return attributeValue.toString().length() > 0;
+    }
+
+    public static String prefixAttributeName(String attributeName, boolean isXhtmlMode) {
+        if (isXhtmlMode) {
+            if (Arrays.binarySearch(XHTML_ATTRIBUTE_NAMES, attributeName) >= 0) {
+                return XHTML_ATTRIBUTE_PREFIX + attributeName;
+            }
+        }
+
+        return attributeName;
+    }
+
+    public static String prefixAttributeName(String attributeName, ResponseWriter responseWriter) {
+        return prefixAttributeName(attributeName, XHTML_CONTENT_TYPE.equals(responseWriter.getContentType()));
+    }
+
+    public static void renderAttribute(FacesContext facesContext, String attributeName, Object attributeValue)
+        throws IOException {
+
+        if (!shouldRenderAttribute(attributeValue)) {
+            return;
+        }
+
+        ResponseWriter writer = facesContext.getResponseWriter();
+
+        String prefixedAttributeName = prefixAttributeName(attributeName, writer);
+
+        if (Arrays.binarySearch(URI_ATTRIBUTE_NAMES, attributeName) >= 0) {
+            writer.writeURIAttribute(prefixedAttributeName, attributeValue, null);
+        } else if (Arrays.binarySearch(BOOLEAN_ATTRIBUTE_NAMES, attributeName) >= 0) {
+            boolean booleanAttributeValue = Boolean.valueOf(String.valueOf(attributeValue));
+            if (booleanAttributeValue) {
+                // TODO - is passing in Boolean.TRUE value documented somewhere?
+                writer.writeAttribute(prefixedAttributeName, Boolean.TRUE, null);
+            }
+        } else {
+            writer.writeAttribute(prefixedAttributeName, attributeValue, null);
+        }
+    }
+
+    public static Object getAttributeAndBehaviorsValue(FacesContext facesContext, UIComponent component,
+        ComponentAttribute componentAttribute) {
+        if (facesContext == null) {
+            throw new NullPointerException("facesContext");
+        }
+
+        if (component == null) {
+            throw new NullPointerException("component");
+        }
+
+        if (componentAttribute == null) {
+            throw new NullPointerException("componentAttribute");
+        }
+
+        String componentAttributeName = componentAttribute.getComponentAttributeName();
+        Object attributeValue = component.getAttributes().get(componentAttributeName);
+
+        String[] eventNames = componentAttribute.getEventNames();
+        if (eventNames.length > 0) {
+            Map<String, List<ClientBehavior>> behaviorsMap = getClientBehaviorsMap(component);
+            if (behaviorsMap.size() > 0) {
+                for (String eventName : eventNames) {
+                    if (behaviorsMap.containsKey(eventName)) {
+                        List<ClientBehavior> behaviorsList = behaviorsMap.get(eventName);
+                        if (!behaviorsList.isEmpty()) {
+                            // TODO - parameters handling
+                            ClientBehaviorContext behaviorContext =
+                                ClientBehaviorContext.createClientBehaviorContext(facesContext, component, eventName,
+                                    null, null);
+                            attributeValue = createBehaviorsChain(attributeValue, behaviorContext, behaviorsList);
+                        }
+                        break;
+                    }
+                }
+            }
+        }
+        return attributeValue;
+    }
+
+    public static void renderAttributeAndBehaviors(FacesContext facesContext, UIComponent component,
+        ComponentAttribute componentAttribute) throws IOException {
+        Object attributeValue = getAttributeAndBehaviorsValue(facesContext, component, componentAttribute);
+        renderAttribute(facesContext, componentAttribute.getHtmlAttributeName(), attributeValue);
+    }
+
+    public static void renderPassThroughAttributesOptimized(FacesContext context, UIComponent component,
+        Map<String, ComponentAttribute> knownAttributesMap) throws IOException {
+
+        boolean disabled = isDisabled(component);
+        Set<String> handledAttributes = new HashSet<String>(knownAttributesMap.size());
+        Object attributesThatAreSetObject = component.getAttributes().get(ATTRIBUTES_THAT_ARE_SET);
+        if (attributesThatAreSetObject instanceof Collection<?>) {
+            Collection<?> attributesThatAreSet = (Collection<?>) attributesThatAreSetObject;
+            for (Object attributeNameObject : attributesThatAreSet) {
+                if (attributeNameObject == null) {
+                    continue;
+                }
+
+                String attributeName = attributeNameObject.toString();
+
+                ComponentAttribute knownAttribute = knownAttributesMap.get(attributeName);
+                if (knownAttribute != null) {
+                    handledAttributes.add(knownAttribute.getHtmlAttributeName());
+
+                    if (disabled && knownAttribute.getEventNames() != null) {
+                        continue;
+                    }
+
+                    renderAttributeAndBehaviors(context, component, knownAttribute);
+                }
+            }
+
+            // render attributes that haven't been processed yet - there can be behaviors
+            for (ComponentAttribute knownAttribute : knownAttributesMap.values()) {
+
+                if (handledAttributes.contains(knownAttribute.getHtmlAttributeName())) {
+                    continue;
+                }
+
+                renderAttributeAndBehaviors(context, component, knownAttribute);
+            }
+        } else {
+            // switch to unoptimized mode
+            renderPassThroughAttributes(context, component, knownAttributesMap);
+        }
+    }
+
+    public static void renderPassThroughAttributes(FacesContext context, UIComponent component,
+        Map<String, ComponentAttribute> knownAttributesMap) throws IOException {
+        Collection<ComponentAttribute> attributes = knownAttributesMap.values();
+
+        renderPassThroughAttributes(context, component, attributes);
+    }
+
+    public static void renderPassThroughAttributes(FacesContext context, UIComponent component, Collection<ComponentAttribute> attributes)
+        throws IOException {
+        boolean disabled = isDisabled(component);
+        for (ComponentAttribute knownAttribute : attributes) {
+            if (!disabled || knownAttribute.getEventNames().length == 0) {
+                renderAttributeAndBehaviors(context, component, knownAttribute);
+            }
+        }
+    }
+
+    public static String decodeBehaviors(FacesContext context, UIComponent component) {
+        if (!(component instanceof ClientBehaviorHolder)) {
+            return null;
+        }
+
+        ClientBehaviorHolder holder = (ClientBehaviorHolder) component;
+        Map<String, List<ClientBehavior>> behaviors = holder.getClientBehaviors();
+
+        if (behaviors == null || behaviors.isEmpty()) {
+            return null;
+        }
+
+        ExternalContext externalContext = context.getExternalContext();
+        Map<String, String> parametersMap = externalContext.getRequestParameterMap();
+        String behaviorEvent = parametersMap.get(BEHAVIOR_EVENT_NAME);
+
+        if (behaviorEvent == null) {
+            return null;
+        }
+
+        List<ClientBehavior> behaviorsForEvent = behaviors.get(behaviorEvent);
+        String behaviorSource = parametersMap.get(BEHAVIOR_SOURCE_ID);
+        String clientId = component.getClientId(context);
+
+        if (behaviorSource != null && behaviorSource.equals(clientId)) {
+            if (behaviorsForEvent != null && !behaviorsForEvent.isEmpty()) {
+                for (ClientBehavior behavior : behaviorsForEvent) {
+                    behavior.decode(context, component);
+                }
+
+                return behaviorEvent;
+            }
+        }
+
+        return null;
+    }
+
+    public static Attributes attributes() {
+        return new Attributes();
+    }
+
+    public static Attributes attributes(Enum<?> ... attrs) {
+        Attributes res = new Attributes();
+        for (Enum<?> attr : attrs) {
+            res.generic(attr.toString(), attr.toString());
+        }
+
+        return res;
+    }
+    
+    public static Attributes attributes(String ... attrs) {
+        Attributes res = new Attributes();
+        for (String attr : attrs) {
+            res.generic(attr, attr);
+        }
+        
+        return res;
+    }
+
+    @SuppressWarnings("serial")
+    public static final class Attributes extends TreeSet<ComponentAttribute> {
+        
+        private ComponentAttribute last;
+
+        public void render(FacesContext context, UIComponent component) throws IOException {
+            renderPassThroughAttributes(context, component, this);
+        }
+
+        public Attributes generic(String name, String componentAttribute, String... events) {
+            ComponentAttribute attribute = createAttribute(name, componentAttribute);
+            attribute.setEventNames(events);
+            attribute.setKind(Kind.GENERIC);
+            return this;
+        }
+
+        private ComponentAttribute createAttribute(String name, String componentAttribute) {
+            ComponentAttribute attribute = new ComponentAttribute(name);
+            attribute.setComponentAttributeName(componentAttribute);
+            add(attribute);
+            last = attribute;
+            return attribute;
+        }
+
+        public Attributes uri(String name, String componentAttribute) {
+            ComponentAttribute attribute = createAttribute(name, componentAttribute);
+            attribute.setKind(Kind.URI);
+            return this;
+        }
+
+        public Attributes bool(String name, String componentAttribute) {
+            ComponentAttribute attribute = createAttribute(name, componentAttribute);
+            attribute.setKind(Kind.BOOL);
+            return this;
+        }
+        
+        public Attributes defaultValue(Object value){
+            last.setDefaultValue(value);
+            return this;
+        }
+
+    }
+
+}

Added: trunk/core/commons/src/test/java/org/richfaces/renderkit/MockClientBehaviorHolder.java
===================================================================
--- trunk/core/commons/src/test/java/org/richfaces/renderkit/MockClientBehaviorHolder.java	                        (rev 0)
+++ trunk/core/commons/src/test/java/org/richfaces/renderkit/MockClientBehaviorHolder.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. 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.richfaces.renderkit;
+
+import static org.jboss.test.faces.mock.FacesMockController.invokeCurrent;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorHolder;
+
+import org.easymock.IMocksControl;
+import org.jboss.test.faces.mock.component.MockUIComponent;
+
+public class MockClientBehaviorHolder extends MockUIComponent implements ClientBehaviorHolder {
+
+    public MockClientBehaviorHolder(IMocksControl control, String name) {
+        super(control, name);
+    }
+
+    public void addClientBehavior(String eventName, ClientBehavior behavior) {
+        invokeCurrent(this, eventName, behavior);
+    }
+
+    public Map<String, List<ClientBehavior>> getClientBehaviors() {
+        return invokeCurrent(this);
+    }
+
+    public String getDefaultEventName() {
+        return invokeCurrent(this);
+    }
+
+    public Collection<String> getEventNames() {
+        return invokeCurrent(this);
+    }
+
+}

Added: trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsMocksTest.java
===================================================================
--- trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsMocksTest.java	                        (rev 0)
+++ trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsMocksTest.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,377 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. 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.richfaces.renderkit;
+
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.same;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorContext;
+import javax.faces.component.behavior.ClientBehaviorHint;
+import javax.faces.component.behavior.ClientBehaviorHolder;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
+import org.easymock.EasyMock;
+import org.jboss.test.faces.mock.MockFacesEnvironment;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Nick Belaevski
+ * 
+ */
+public class RenderKitUtilsMocksTest {
+
+    /**
+     * 
+     */
+    private static final String CLIENT_ID = "submittedId";
+
+    private MockFacesEnvironment facesEnvironment;
+
+    private ResponseWriter responseWriter;
+
+    private FacesContext facesContext;
+
+    private ExternalContext externalContext;
+    
+    private Map<String, Object> componentAttributes;
+    
+    private Map<String, List<ClientBehavior>> behaviorsMap;
+
+    private Map<String, ComponentAttribute> knownAttributes;
+    
+    @Before
+    public void setUp() throws Exception {
+        facesEnvironment = MockFacesEnvironment.createEnvironment().withExternalContext();
+        
+        facesContext = facesEnvironment.getFacesContext();
+        externalContext = facesEnvironment.getExternalContext();
+        
+        responseWriter = facesEnvironment.createMock(ResponseWriter.class);
+        expect(facesContext.getResponseWriter()).andStubReturn(responseWriter);
+        expect(responseWriter.getContentType()).andStubReturn("application/xhtml+xml");
+        
+        componentAttributes = new HashMap<String, Object>();
+        behaviorsMap = new HashMap<String, List<ClientBehavior>>();
+        knownAttributes = new TreeMap<String, ComponentAttribute>();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        this.facesEnvironment.verify();
+        this.facesEnvironment.release();
+        
+        this.facesEnvironment = null;
+        this.responseWriter = null;
+        this.facesContext = null;
+        this.externalContext = null;
+        this.componentAttributes = null;
+        this.behaviorsMap = null;
+        this.knownAttributes = null;
+    }
+
+    private UIComponent createMockComponent() {
+        UIComponent component = facesEnvironment.createMock(UIComponent.class);
+        expect(component.getAttributes()).andStubReturn(componentAttributes);
+        expect(component.getClientId(same(facesContext))).andStubReturn(CLIENT_ID);
+        return component;
+    }
+
+    private ClientBehaviorHolder createMockClientBehaviorHolder() {
+        UIComponent component = facesEnvironment.createMock(MockClientBehaviorHolder.class);
+        expect(component.getClientId(same(facesContext))).andStubReturn(CLIENT_ID);
+        expect(component.getAttributes()).andStubReturn(componentAttributes);
+        ClientBehaviorHolder behaviorHolder = (ClientBehaviorHolder) component;
+        expect(behaviorHolder.getClientBehaviors()).andStubReturn(behaviorsMap);
+        expect(behaviorHolder.getEventNames()).andStubReturn(
+            Arrays.asList("click", "action", "mousemove", "keypress", "blur", "contextmenu"));
+        return behaviorHolder;
+    }
+    
+    @Test
+    public void testRenderPassThroughAttributes() throws Exception {
+        knownAttributes.put("disabled", new ComponentAttribute("disabled"));
+        knownAttributes.put("checked", new ComponentAttribute("checked"));
+        knownAttributes.put("style", new ComponentAttribute("style"));
+        knownAttributes.put("src", new ComponentAttribute("src"));
+        knownAttributes.put("lang", new ComponentAttribute("lang"));
+        knownAttributes.put("class", new ComponentAttribute("class").setComponentAttributeName("styleClass"));
+
+        componentAttributes.put("disabled", Boolean.TRUE);
+        componentAttributes.put("checked", Boolean.FALSE);
+        componentAttributes.put("style", "color:red");
+        componentAttributes.put("src", "urn:abc");
+        componentAttributes.put("facelets.Mark", 123);
+        componentAttributes.put("lang", "ru");
+        componentAttributes.put("styleClass", "rich-component");
+
+        UIComponent component = createMockComponent();
+
+        responseWriter.writeAttribute(eq("disabled"), eq(Boolean.TRUE), EasyMock.<String>isNull());
+        // checked attribute shouldn't be rendered - it's 'false'
+        responseWriter.writeAttribute(eq("style"), eq("color:red"), EasyMock.<String>isNull());
+        responseWriter.writeURIAttribute(eq("src"), eq("urn:abc"), EasyMock.<String>isNull());
+        // facelets.Mark shouldn't be rendered - it's unknown
+        responseWriter.writeAttribute(eq("xml:lang"), eq("ru"), EasyMock.<String>isNull());
+        responseWriter.writeAttribute(eq("class"), eq("rich-component"), EasyMock.<String>isNull());
+
+        facesEnvironment.replay();
+
+        RenderKitUtils.renderPassThroughAttributes(facesContext, component, knownAttributes);
+    }
+
+    private ClientBehavior createClientBehavior(String handlerData, Set<ClientBehaviorHint> hints) {
+        ClientBehavior behavior = facesEnvironment.createMock(ClientBehavior.class);
+        expect(behavior.getScript(EasyMock.<ClientBehaviorContext> notNull())).andStubReturn(
+            MessageFormat.format("prompt({0})", handlerData));
+
+        expect(behavior.getHints()).andStubReturn(hints);
+        return behavior;
+    }
+
+    @Test
+    public void testBehaviors() throws Exception {
+        knownAttributes.put("onclick", new ComponentAttribute("onclick")
+            .setEventNames(new String[] { "click", "action" }));
+        knownAttributes.put("onmousemove", new ComponentAttribute("onmousemove")
+            .setEventNames(new String[] { "mousemove" }));
+        knownAttributes.put("onkeypress", new ComponentAttribute("onkeypress")
+            .setEventNames(new String[] { "keypress" }));
+        knownAttributes.put("oncontextmenu", new ComponentAttribute("oncontextmenu")
+            .setEventNames(new String[] { "contextmenu" }));
+
+        componentAttributes.put("onkeypress", "alert(keypress)");
+        componentAttributes.put("onmousemove", "alert(mousemove)");
+        componentAttributes.put("onclick", "alert(click)");
+
+        Set<ClientBehaviorHint> emptyHintsSet = EnumSet.noneOf(ClientBehaviorHint.class);
+        Set<ClientBehaviorHint> submittingHintsSet = EnumSet.of(ClientBehaviorHint.SUBMITTING);
+
+        ClientBehavior keypressBehavior = createClientBehavior("keypress", emptyHintsSet);
+        ClientBehavior actionBehavior1 = createClientBehavior("action1", emptyHintsSet);
+        ClientBehavior actionBehavior2 = createClientBehavior("action2", submittingHintsSet);
+        ClientBehavior actionBehavior3 = createClientBehavior("action3", emptyHintsSet);
+        ClientBehavior contextmenuBehavior = createClientBehavior("contextmenu", emptyHintsSet);
+
+        behaviorsMap.put("keypress", Arrays.asList(keypressBehavior));
+        behaviorsMap.put("action", Arrays.asList(actionBehavior1, actionBehavior2, actionBehavior3));
+        behaviorsMap.put("contextmenu", Arrays.asList(contextmenuBehavior));
+
+        ClientBehaviorHolder behaviorHolder = createMockClientBehaviorHolder();
+        UIComponent component = (UIComponent) behaviorHolder;
+
+        responseWriter.writeAttribute(eq("onkeypress"), eq("jsf.util.chain('alert(keypress)','prompt(keypress)')"),
+            EasyMock.<String>isNull());
+        responseWriter.writeAttribute(eq("onclick"),
+            eq("jsf.util.chain('alert(click)','prompt(action1)','prompt(action2)')"), EasyMock.<String>isNull());
+        responseWriter.writeAttribute(eq("onmousemove"), eq("alert(mousemove)"), EasyMock.<String>isNull());
+        responseWriter.writeAttribute(eq("oncontextmenu"), eq("prompt(contextmenu)"), EasyMock.<String>isNull());
+
+        facesEnvironment.replay();
+
+        RenderKitUtils.renderPassThroughAttributes(facesContext, component, knownAttributes);
+    }
+    
+    private UIComponent setupBehaviorsTestForDisabledComponent() throws IOException {
+        knownAttributes.put("style", new ComponentAttribute("style"));
+        knownAttributes.put("onclick", new ComponentAttribute("onclick")
+            .setEventNames(new String[] { "click", "action" }));
+        knownAttributes.put("onmousemove", new ComponentAttribute("onmousemove")
+            .setEventNames(new String[] { "mousemove" }));
+
+        componentAttributes.put("onmousemove", "alert(mousemove)");
+        componentAttributes.put("onclick", "alert(click)");
+        componentAttributes.put("style", "color:green");
+
+        Set<ClientBehaviorHint> emptyHintsSet = EnumSet.noneOf(ClientBehaviorHint.class);
+
+        ClientBehavior actionBehavior1 = createClientBehavior("action1", emptyHintsSet);
+        behaviorsMap.put("action", Arrays.asList(actionBehavior1));
+
+        ClientBehaviorHolder behaviorHolder = createMockClientBehaviorHolder();
+        UIComponent component = (UIComponent) behaviorHolder;
+        return component;
+    }
+    
+    @Test
+    public void testBehaviorsForDisabledComponent() throws Exception {
+        componentAttributes.put("disabled", Boolean.TRUE);
+        UIComponent component = setupBehaviorsTestForDisabledComponent();
+
+        responseWriter.writeAttribute(eq("style"), eq("color:green"), EasyMock.<String>isNull());
+
+        facesEnvironment.replay();
+
+        RenderKitUtils.renderPassThroughAttributes(facesContext, component, knownAttributes);
+    }
+
+    @Test
+    public void testBehaviorsForNonDisabledComponent() throws Exception {
+        componentAttributes.put("disabled", Boolean.FALSE);
+        UIComponent component = setupBehaviorsTestForDisabledComponent();
+
+        responseWriter.writeAttribute(eq("onclick"), eq("jsf.util.chain('alert(click)','prompt(action1)')"),
+            EasyMock.<String>isNull());
+        responseWriter.writeAttribute(eq("onmousemove"),
+            eq("alert(mousemove)"), EasyMock.<String>isNull());
+        responseWriter.writeAttribute(eq("style"), eq("color:green"), EasyMock.<String>isNull());
+
+        facesEnvironment.replay();
+
+        RenderKitUtils.renderPassThroughAttributes(facesContext, component, knownAttributes);
+    }
+
+    public void checkDisabled(Object attributeValue, boolean expectedValue) throws Exception {
+        componentAttributes.put("disabled", attributeValue);
+
+        UIComponent component = createMockComponent();
+        facesEnvironment.replay();
+        assertTrue(expectedValue == RenderKitUtils.isDisabled(component));
+    }
+
+    @Test
+    public void testIsDisabled() throws Exception {
+        checkDisabled(Boolean.TRUE, true);
+    }
+
+    @Test
+    public void testIsDisabledString() throws Exception {
+        checkDisabled("true", true);
+    }
+
+    @Test
+    public void testIsNonDisabled() throws Exception {
+        checkDisabled(Boolean.FALSE, false);
+    }
+
+    @Test
+    public void testIsNonDisabledString() throws Exception {
+        checkDisabled("false", false);
+    }
+
+    @Test
+    public void testIsNonDisabledNull() throws Exception {
+        checkDisabled(null, false);
+    }
+    
+    private UIComponent setupTestDecodeBehaviors(String behaviorSourceId, String behaviorEventName) throws Exception {
+        ClientBehaviorHolder behaviorHolder = createMockClientBehaviorHolder();
+        UIComponent component = (UIComponent) behaviorHolder;
+
+        Map<String, String> requestParameterMap = new HashMap<String, String>();
+        requestParameterMap.put(RenderKitUtils.BEHAVIOR_SOURCE_ID, behaviorSourceId);
+        requestParameterMap.put(RenderKitUtils.BEHAVIOR_EVENT_NAME, behaviorEventName);
+        expect(externalContext.getRequestParameterMap()).andStubReturn(requestParameterMap);
+        
+        ClientBehavior actionBehavior = createClientBehavior("action1", EnumSet.of(ClientBehaviorHint.SUBMITTING));
+        ClientBehavior actionBehavior1 = createClientBehavior("action2", EnumSet.of(ClientBehaviorHint.SUBMITTING));
+        behaviorsMap.put("action", Arrays.asList(actionBehavior, actionBehavior1));
+
+        ClientBehavior blurBehavior = createClientBehavior("blur1", EnumSet.of(ClientBehaviorHint.SUBMITTING));
+        behaviorsMap.put("blur", Arrays.asList(blurBehavior));
+
+        return component;
+    }
+    
+    @Test
+    public void testDecodeActionBehaviors() throws Exception {
+        UIComponent component = setupTestDecodeBehaviors(CLIENT_ID, "action");
+        
+        List<ClientBehavior> behaviors = behaviorsMap.get("action");
+        for (ClientBehavior clientBehavior : behaviors) {
+            clientBehavior.decode(same(facesContext), same(component));
+            expectLastCall();
+        }
+        
+        facesEnvironment.replay();
+
+        assertEquals("action", RenderKitUtils.decodeBehaviors(facesContext, component));
+    }
+
+    @Test
+    public void testDecodeBlurBehaviors() throws Exception {
+        UIComponent component = setupTestDecodeBehaviors(CLIENT_ID, "blur");
+        
+        List<ClientBehavior> behaviors = behaviorsMap.get("blur");
+        for (ClientBehavior clientBehavior : behaviors) {
+            clientBehavior.decode(same(facesContext), same(component));
+            expectLastCall();
+        }
+        
+        facesEnvironment.replay();
+
+        assertEquals("blur", RenderKitUtils.decodeBehaviors(facesContext, component));
+    }
+    
+    @Test
+    public void testDecodeNonMatchingClientId() throws Exception {
+        UIComponent component = setupTestDecodeBehaviors("wrongId", "action");
+        
+        //nothing should be called - clientId is not matched
+        
+        facesEnvironment.replay();
+
+        assertNull(RenderKitUtils.decodeBehaviors(facesContext, component));
+    }
+
+    @Test
+    public void testDecodeNoSubmittedBehavior() throws Exception {
+        UIComponent component = setupTestDecodeBehaviors(CLIENT_ID, null);
+        
+        //nothing should be called - no behavior event information was submitted
+        
+        facesEnvironment.replay();
+
+        assertNull(RenderKitUtils.decodeBehaviors(facesContext, component));
+    }
+
+    @Test
+    public void testDecodeContextMenuBehaviors() throws Exception {
+        UIComponent component = setupTestDecodeBehaviors(CLIENT_ID, "contextmenu");
+        
+        //nothing should be called - no context menu behaviors were created
+
+        facesEnvironment.replay();
+
+        assertNull(RenderKitUtils.decodeBehaviors(facesContext, component));
+    }
+}
\ No newline at end of file

Added: trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsTest.java
===================================================================
--- trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsTest.java	                        (rev 0)
+++ trunk/core/commons/src/test/java/org/richfaces/renderkit/RenderKitUtilsTest.java	2010-08-13 19:22:27 UTC (rev 18633)
@@ -0,0 +1,110 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. 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.richfaces.renderkit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * @author Nick Belaevski
+ * 
+ */
+public class RenderKitUtilsTest {
+
+    @Test
+    public void testEscape() throws Exception {
+        assertEquals("", RenderKitUtils.escape(""));
+        assertEquals("abcd", RenderKitUtils.escape("abcd"));
+        assertEquals("\\'abcd", RenderKitUtils.escape("'abcd"));
+        assertEquals("abcd\\'", RenderKitUtils.escape("abcd'"));
+        assertEquals("ab\\'cd", RenderKitUtils.escape("ab'cd"));
+        assertEquals("ab\\'\\'cd", RenderKitUtils.escape("ab''cd"));
+        assertEquals("ab\\'c\\'d", RenderKitUtils.escape("ab'c'd"));
+    }
+
+    @Test
+    public void testChain() throws Exception {
+        StringBuilder sb = new StringBuilder();
+
+        assertFalse(RenderKitUtils.chain(sb, "", false));
+        assertTrue(sb.length() == 0);
+        assertFalse(RenderKitUtils.chain(sb, null, false));
+        assertTrue(sb.length() == 0);
+
+        assertFalse(RenderKitUtils.chain(sb, "test", false));
+        assertEquals("test", sb.toString());
+
+        assertFalse(RenderKitUtils.chain(sb, "", false));
+        assertEquals("test", sb.toString());
+
+        assertTrue(RenderKitUtils.chain(sb, "another'object", false));
+        assertEquals("'test','another\\'object'", sb.toString());
+
+        assertTrue(RenderKitUtils.chain(sb, "one more", true));
+        assertEquals("'test','another\\'object','one more'", sb.toString());
+    }
+
+    @Test
+    public void testShouldRenderAttribute() throws Exception {
+        assertFalse(RenderKitUtils.shouldRenderAttribute(null));
+
+        assertFalse(RenderKitUtils.shouldRenderAttribute(""));
+        assertTrue(RenderKitUtils.shouldRenderAttribute("test"));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(new Object()));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Long.valueOf(10)));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Long.valueOf(0)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Long.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Integer.valueOf(10)));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Integer.valueOf(0)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Integer.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Short.valueOf((short) 10)));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Short.valueOf((short) 0)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Short.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Character.valueOf('a')));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Character.valueOf((char) 13)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Character.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Byte.valueOf((byte) 10)));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Byte.valueOf((byte) 0)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Byte.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Double.valueOf(10)));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Double.valueOf(0)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Double.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Float.valueOf(10)));
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Float.valueOf(0)));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Float.MIN_VALUE));
+
+        assertTrue(RenderKitUtils.shouldRenderAttribute(Boolean.TRUE));
+        assertFalse(RenderKitUtils.shouldRenderAttribute(Boolean.FALSE));
+    }
+
+}
\ No newline at end of file

Modified: trunk/core/impl/pom.xml
===================================================================
--- trunk/core/impl/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/impl/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -58,11 +58,6 @@
 
 		<!-- Provided Dependencies -->
 		<dependency>
-			<groupId>${jsf2.api.groupid}</groupId>
-			<artifactId>${jsf2.api.artifactid}</artifactId>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
 			<groupId>javax.el</groupId>
 			<artifactId>el-api</artifactId>
 			<scope>provided</scope>
@@ -126,11 +121,6 @@
 			<artifactId>slf4j-log4j12</artifactId>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>${jsf2.impl.groupid}</groupId>
-			<artifactId>${jsf2.impl.artifactid}</artifactId>
-			<scope>test</scope>
-		</dependency>
 	</dependencies>
 
 	<build>

Modified: trunk/core/parent/pom.xml
===================================================================
--- trunk/core/parent/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/parent/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -28,8 +28,8 @@
 
     <parent>
         <groupId>org.richfaces</groupId>
-        <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <artifactId>richfaces-bom</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
     </parent>
 
     <description>
@@ -42,14 +42,6 @@
 
     <dependencyManagement>
         <dependencies>
-            <dependency>
-                <groupId>org.richfaces.core</groupId>
-                <artifactId>richfaces-core-bom</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-
             <!-- Test Dependencies -->
             <!--
                 These dependencies are usually provided by

Modified: trunk/core/pom.xml
===================================================================
--- trunk/core/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/core/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.core</groupId>
@@ -36,9 +36,8 @@
     <description>The root aggregator for the richfaces core module.  This manages intermodule relationships, and destribution assembly where needed.</description>
 
     <modules>
-        <module>commons</module>
-        <module>bom</module>
         <module>parent</module>
+        <module>commons</module>
         <module>api</module>
         <module>impl</module>
     </modules>

Modified: trunk/dist/pom.xml
===================================================================
--- trunk/dist/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/dist/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -23,8 +23,8 @@
 
     <parent>
         <groupId>org.richfaces</groupId>
-        <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <artifactId>richfaces-bom</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces</groupId>
@@ -34,54 +34,43 @@
     <name>Richfaces Distribution Assembler</name>
 
     <properties>
-        <org.richfaces.commons.version>4.0.0-SNAPSHOT</org.richfaces.commons.version>
-        <org.richfaces.core.version>4.0.0-SNAPSHOT</org.richfaces.core.version>
-        <org.richfaces.ui.version>4.0.0-SNAPSHOT</org.richfaces.ui.version>
-        <org.richfaces.examples.core-demo.version>4.0.0-SNAPSHOT</org.richfaces.examples.core-demo.version>
-        <org.richfaces.examples.richfaces-showcase.version>4.0.0-SNAPSHOT</org.richfaces.examples.richfaces-showcase.version>
-        <org.richfaces.archetypes.richfaces-archetype-simpleapp.version>4.0.0-SNAPSHOT</org.richfaces.archetypes.richfaces-archetype-simpleapp.version>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.richfaces.ui</groupId>
             <artifactId>richfaces-components-api</artifactId>
-            <version>${org.richfaces.ui.version}</version>
         </dependency>
         <dependency>
             <groupId>org.richfaces.ui</groupId>
             <artifactId>richfaces-components-ui</artifactId>
-            <version>${org.richfaces.ui.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.richfaces.core</groupId>
             <artifactId>richfaces-core-api</artifactId>
-            <version>${org.richfaces.core.version}</version>
         </dependency>
         <dependency>
             <groupId>org.richfaces.core</groupId>
             <artifactId>richfaces-core-impl</artifactId>
-            <version>${org.richfaces.core.version}</version>
         </dependency>
         <dependency>
             <groupId>org.richfaces.commons</groupId>
             <artifactId>richfaces-commons-api</artifactId>
-            <version>${org.richfaces.commons.version}</version>
         </dependency>
 
         <!-- Examples -->
         <dependency>
             <groupId>org.richfaces.examples</groupId>
             <artifactId>core-demo</artifactId>
-            <version>${org.richfaces.examples.core-demo.version}</version>
+            <version>${project.version}</version>
             <type>war</type>
             <classifier>tomcat6</classifier>
         </dependency>
         <dependency>
             <groupId>org.richfaces.examples</groupId>
             <artifactId>richfaces-showcase</artifactId>
-            <version>${org.richfaces.examples.richfaces-showcase.version}</version>
+            <version>${project.version}</version>
             <type>war</type>
             <classifier>tomcat6</classifier>
         </dependency>
@@ -90,7 +79,7 @@
         <dependency>
             <groupId>org.richfaces.archetypes</groupId>
             <artifactId>richfaces-archetype-simpleapp</artifactId>
-            <version>${org.richfaces.archetypes.richfaces-archetype-simpleapp.version}</version>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 

Modified: trunk/examples/core-demo/pom.xml
===================================================================
--- trunk/examples/core-demo/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/core-demo/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,30 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-    JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-    Inc. 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.
--->
-<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/xsd/maven-4.0.0.xsd">
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
+<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/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.examples</groupId>
@@ -38,23 +40,26 @@
         <snapshotRepository>dav:https://repository.jboss.org/nexus/content/repositories/snapshots/</snapshotRepository>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        
+
         <jetty.port>8080</jetty.port>
         <richfaces.checkstyle.version>1</richfaces.checkstyle.version>
-        <org.richfaces.ui.version>4.0.0-SNAPSHOT</org.richfaces.ui.version>
+        <org.richfaces.bom.version>4.0.0-SNAPSHOT</org.richfaces.bom.version>
     </properties>
 
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-ui-parent</artifactId>
-                <version>${org.richfaces.ui.version}</version>
+                <groupId>org.richfaces</groupId>
+                <artifactId>richfaces-bom</artifactId>
+                <version>${org.richfaces.bom.version}</version>
                 <scope>import</scope>
                 <type>pom</type>
             </dependency>
 
-            <!-- simple logger binding: only messages of level INFO and higher are printed-->
+            <!--
+                simple logger binding: only messages of level INFO and
+                higher are printed
+            -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
@@ -71,13 +76,14 @@
     </dependencyManagement>
 
     <dependencies>
+        <!-- JSF impl should be switchable in example specific parent -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -150,7 +156,9 @@
                 <configuration>
                     <scanIntervalSeconds>10</scanIntervalSeconds>
                     <connectors>
-                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                        <connector
+                            implementation="org.mortbay.jetty.nio.SelectChannelConnector"
+                        >
                             <port>${jetty.port}</port>
                             <maxIdleTime>60000</maxIdleTime>
                         </connector>
@@ -212,8 +220,12 @@
                                 </goals>
                                 <phase>package</phase>
                                 <configuration>
-                                    <!-- TODO - basedir might have a problem with release realitive
-                                          path might be better to use ${project.build.directory} -->
+                                    <!--
+                                        TODO - basedir might have a
+                                        problem with release realitive
+                                        path might be better to use
+                                        ${project.build.directory}
+                                    -->
                                     <classesDirectory>${basedir}/target/sources/sources</classesDirectory>
                                     <classifier>sources</classifier>
                                 </configuration>
@@ -239,14 +251,15 @@
             </build>
 
             <dependencies>
+                <!-- TODO these should be switchable in example specific parent -->
                 <dependency>
-                    <groupId>${jsf2.api.groupid}</groupId>
-                    <artifactId>${jsf2.api.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
-                    <groupId>${jsf2.impl.groupid}</groupId>
-                    <artifactId>${jsf2.impl.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
@@ -270,7 +283,7 @@
             </snapshots>
         </repository>
     </repositories>
-    
+
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples/core-demo</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples/core-demo</developerConnection>

Modified: trunk/examples/iteration-demo/pom.xml
===================================================================
--- trunk/examples/iteration-demo/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/iteration-demo/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,32 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-    JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-    Inc. 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.
--->
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
 <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/xsd/maven-4.0.0.xsd">
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                      http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.examples</groupId>
@@ -35,7 +36,7 @@
     <version>4.0.0-SNAPSHOT</version>
     <name>RichFaces Examples: Iteration</name>
 
-        <properties>
+    <properties>
         <snapshotRepository>dav:https://repository.jboss.org/nexus/content/repositories/snapshots/</snapshotRepository>
         <jetty.port>8080</jetty.port>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -46,14 +47,17 @@
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-ui-parent</artifactId>
+                <groupId>org.richfaces</groupId>
+                <artifactId>richfaces-bom</artifactId>
                 <version>${project.version}</version>
                 <scope>import</scope>
                 <type>pom</type>
             </dependency>
 
-            <!-- simple logger binding: only messages of level INFO and higher are printed-->
+            <!--
+                simple logger binding: only messages of level INFO and
+                higher are printed
+            -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
@@ -90,8 +94,8 @@
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
         </dependency>
-        
 
+
         <!-- API implementation for runtime -->
         <dependency>
             <groupId>org.richfaces.core</groupId>
@@ -107,12 +111,12 @@
         </dependency>
         <!-- JSF -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -177,14 +181,16 @@
                 <configuration>
                     <scanIntervalSeconds>10</scanIntervalSeconds>
                     <connectors>
-                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                        <connector
+                            implementation="org.mortbay.jetty.nio.SelectChannelConnector"
+                        >
                             <port>${jetty.port}</port>
                             <maxIdleTime>60000</maxIdleTime>
                         </connector>
                     </connectors>
                 </configuration>
             </plugin>
-        </plugins>        
+        </plugins>
     </build>
 
     <profiles>
@@ -192,13 +198,13 @@
             <id>jee6</id>
             <dependencies>
                 <dependency>
-                    <groupId>${jsf2.api.groupid}</groupId>
-                    <artifactId>${jsf2.api.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
-                    <groupId>${jsf2.impl.groupid}</groupId>
-                    <artifactId>${jsf2.impl.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>

Modified: trunk/examples/misc-demo/pom.xml
===================================================================
--- trunk/examples/misc-demo/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/misc-demo/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,32 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-    JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-    Inc. 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.
--->
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
 <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/xsd/maven-4.0.0.xsd">
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                      http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.examples</groupId>
@@ -46,14 +47,17 @@
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-ui-parent</artifactId>
+                <groupId>org.richfaces</groupId>
+                <artifactId>richfaces-bom</artifactId>
                 <version>${project.version}</version>
                 <scope>import</scope>
                 <type>pom</type>
             </dependency>
 
-            <!-- simple logger binding: only messages of level INFO and higher are printed-->
+            <!--
+                simple logger binding: only messages of level INFO and
+                higher are printed
+            -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
@@ -74,10 +78,10 @@
             <groupId>org.richfaces.ui.misc</groupId>
             <artifactId>richfaces-ui-misc-ui</artifactId>
         </dependency>
-		<!-- todo remove this dependency -->
+        <!-- todo remove this dependency -->
         <dependency>
-			<groupId>org.richfaces.ui.core</groupId>
-			<artifactId>richfaces-ui-core-ui</artifactId>
+            <groupId>org.richfaces.ui.core</groupId>
+            <artifactId>richfaces-ui-core-ui</artifactId>
         </dependency>
         <dependency>
             <groupId>org.richfaces.core</groupId>
@@ -85,12 +89,12 @@
         </dependency>
 
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -132,13 +136,13 @@
             <id>jee6</id>
             <dependencies>
                 <dependency>
-                    <groupId>${jsf2.api.groupid}</groupId>
-                    <artifactId>${jsf2.api.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
-                    <groupId>${jsf2.impl.groupid}</groupId>
-                    <artifactId>${jsf2.impl.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
@@ -184,7 +188,9 @@
                 <configuration>
                     <scanIntervalSeconds>10</scanIntervalSeconds>
                     <connectors>
-                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                        <connector
+                            implementation="org.mortbay.jetty.nio.SelectChannelConnector"
+                        >
                             <port>${jetty.port}</port>
                             <maxIdleTime>60000</maxIdleTime>
                         </connector>

Modified: trunk/examples/output-demo/pom.xml
===================================================================
--- trunk/examples/output-demo/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/output-demo/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,11 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -33,7 +34,6 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.richfaces.ui.version>4.0.0-SNAPSHOT</org.richfaces.ui.version>
     </properties>
 
     <build>
@@ -78,13 +78,13 @@
 
             <dependencies>
                 <dependency>
-                    <groupId>${jsf2.api.groupid}</groupId>
-                    <artifactId>${jsf2.api.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
-                    <groupId>${jsf2.impl.groupid}</groupId>
-                    <artifactId>${jsf2.impl.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
@@ -133,9 +133,9 @@
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-ui-parent</artifactId>
-                <version>${version}</version>
+                <groupId>org.richfaces</groupId>
+                <artifactId>richfaces-bom</artifactId>
+                <version>${project.version}</version>
                 <scope>import</scope>
                 <type>pom</type>
             </dependency>
@@ -153,12 +153,12 @@
         </dependency>
 
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -194,7 +194,10 @@
             <artifactId>ehcache</artifactId>
         </dependency>
 
-        <!-- simple logger binding: only messages of level INFO and higher are printed-->
+        <!--
+            simple logger binding: only messages of level INFO and
+            higher are printed
+        -->
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>

Modified: trunk/examples/pom.xml
===================================================================
--- trunk/examples/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>7</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.examples</groupId>

Modified: trunk/examples/repeater-demo/pom.xml
===================================================================
--- trunk/examples/repeater-demo/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/repeater-demo/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,33 +1,34 @@
 <?xml version="1.0"?>
-<!--
-    JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-    Inc. 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.
--->        
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
 
 <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/xsd/maven-4.0.0.xsd">
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                      http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.examples</groupId>
@@ -54,7 +55,10 @@
                 <type>pom</type>
             </dependency>
 
-            <!-- simple logger binding: only messages of level INFO and higher are printed-->
+            <!--
+                simple logger binding: only messages of level INFO and
+                higher are printed
+            -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
@@ -72,12 +76,12 @@
 
     <dependencies>
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -102,7 +106,7 @@
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
-        </dependency>        
+        </dependency>
     </dependencies>
 
     <profiles>
@@ -110,13 +114,13 @@
             <id>jee6</id>
             <dependencies>
                 <dependency>
-                    <groupId>${jsf2.api.groupid}</groupId>
-                    <artifactId>${jsf2.api.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
-                    <groupId>${jsf2.impl.groupid}</groupId>
-                    <artifactId>${jsf2.impl.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
@@ -162,7 +166,9 @@
                 <configuration>
                     <scanIntervalSeconds>10</scanIntervalSeconds>
                     <connectors>
-                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                        <connector
+                            implementation="org.mortbay.jetty.nio.SelectChannelConnector"
+                        >
                             <port>${jetty.port}</port>
                             <maxIdleTime>60000</maxIdleTime>
                         </connector>
@@ -181,5 +187,5 @@
                 <enabled>true</enabled>
             </snapshots>
         </repository>
-    </repositories>    
+    </repositories>
 </project>

Modified: trunk/examples/richfaces-showcase/pom.xml
===================================================================
--- trunk/examples/richfaces-showcase/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/examples/richfaces-showcase/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,13 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.examples</groupId>
@@ -21,18 +23,18 @@
         <snapshotRepository>dav:https://repository.jboss.org/nexus/content/repositories/snapshots/</snapshotRepository>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        
+
         <jetty.port>8080</jetty.port>
         <richfaces.checkstyle.version>1</richfaces.checkstyle.version>
-        <org.richfaces.ui.version>4.0.0-SNAPSHOT</org.richfaces.ui.version>
+        <org.richfaces.bom.version>4.0.0-SNAPSHOT</org.richfaces.bom.version>
     </properties>
 
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-ui-parent</artifactId>
-                <version>${org.richfaces.ui.version}</version>
+                <groupId>org.richfaces</groupId>
+                <artifactId>richfaces-bom</artifactId>
+                <version>${org.richfaces.bom.version}</version>
                 <scope>import</scope>
                 <type>pom</type>
             </dependency>
@@ -49,12 +51,12 @@
             <artifactId>richfaces-components-ui</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
+            <groupId>com.sun.faces</groupId>
+            <artifactId>jsf-impl</artifactId>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -81,7 +83,10 @@
             <artifactId>ehcache</artifactId>
         </dependency>
 
-        <!-- simple logger binding: only messages of level INFO and higher are printed-->
+        <!--
+            simple logger binding: only messages of level INFO and
+            higher are printed
+        -->
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
@@ -129,7 +134,9 @@
                 <configuration>
                     <scanIntervalSeconds>10</scanIntervalSeconds>
                     <connectors>
-                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                        <connector
+                            implementation="org.mortbay.jetty.nio.SelectChannelConnector"
+                        >
                             <port>${jetty.port}</port>
                             <maxIdleTime>60000</maxIdleTime>
                         </connector>
@@ -228,13 +235,13 @@
 
             <dependencies>
                 <dependency>
-                    <groupId>${jsf2.api.groupid}</groupId>
-                    <artifactId>${jsf2.api.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-api</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
-                    <groupId>${jsf2.impl.groupid}</groupId>
-                    <artifactId>${jsf2.impl.artifactid}</artifactId>
+                    <groupId>com.sun.faces</groupId>
+                    <artifactId>jsf-impl</artifactId>
                     <scope>provided</scope>
                 </dependency>
                 <dependency>
@@ -243,11 +250,11 @@
                     <version>1.1</version>
                     <scope>provided</scope>
                 </dependency>
-				<dependency>
-					<groupId>javax.servlet</groupId>
-					<artifactId>jstl</artifactId>
-					<scope>provided</scope>
-				</dependency>
+                <dependency>
+                    <groupId>javax.servlet</groupId>
+                    <artifactId>jstl</artifactId>
+                    <scope>provided</scope>
+                </dependency>
             </dependencies>
         </profile>
     </profiles>
@@ -263,7 +270,7 @@
             </snapshots>
         </repository>
     </repositories>
-    
+
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples/richfaces-showcase</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples/richfaces-showcase</developerConnection>

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -5,9 +5,9 @@
                       http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <parent>
-        <groupId>org.jboss</groupId>
-        <artifactId>jboss-parent</artifactId>
-        <version>5</version>
+        <groupId>org.richfaces</groupId>
+        <artifactId>richfaces-parent</artifactId>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -30,6 +30,16 @@
         <module>examples</module>
         <!--<module>docs</module>-->
     </modules>
+    
+    <build>
+        <plugins>
+            <!-- To trigger the release -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
 
     <profiles>
         <profile>

Modified: trunk/ui/common/api/pom.xml
===================================================================
--- trunk/ui/common/api/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/common/api/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -33,67 +33,4 @@
     <artifactId>richfaces-ui-common-api</artifactId>
     <name>Richfaces UI Components: Common API</name>
     <packaging>jar</packaging>
-
-    <dependencies>
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
-	</dependencies>
-	
 </project>
\ No newline at end of file

Modified: trunk/ui/common/pom.xml
===================================================================
--- trunk/ui/common/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/common/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui.common</groupId>

Modified: trunk/ui/common/ui/pom.xml
===================================================================
--- trunk/ui/common/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/common/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -36,81 +36,12 @@
     <packaging>jar</packaging>
 
     <properties>
-        <org.richfaces.cdk.version>4.0.0-SNAPSHOT</org.richfaces.cdk.version>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-api</artifactId>
-            <version>${project.version}</version>
         </dependency>
-    
-        <!-- runtime -->
-        <dependency>
-            <groupId>org.richfaces.core</groupId>
-            <artifactId>richfaces-core-api</artifactId>
-        </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
-    
 </project>
\ No newline at end of file

Modified: trunk/ui/core/pom.xml
===================================================================
--- trunk/ui/core/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/core/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui.core</groupId>

Modified: trunk/ui/core/ui/pom.xml
===================================================================
--- trunk/ui/core/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/core/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,27 +1,32 @@
-<!--
-        JBoss, Home of Professional Open Source Copyright 2010, Red Hat, Inc.
-        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.
+
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
     -->
 
 <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">
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+>
 
     <parent>
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -30,16 +35,7 @@
     <name>Richfaces UI Components: Core UI</name>
     <packaging>jar</packaging>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.richfaces.cdk</groupId>
-                <artifactId>maven-cdk-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
     <dependencies>
-        <!-- runtime -->
         <dependency>
             <groupId>org.richfaces.core</groupId>
             <artifactId>richfaces-core-api</artifactId>
@@ -53,74 +49,17 @@
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-ui</artifactId>
         </dependency>
-
-        <dependency>
-            <groupId>org.richfaces.cdk</groupId>
-            <artifactId>annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.richfaces.cdk</groupId>
+                <artifactId>maven-cdk-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+    
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/core/ui
         </connection>

Modified: trunk/ui/dist/pom.xml
===================================================================
--- trunk/ui/dist/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/dist/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -20,9 +20,10 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.richfaces</groupId>
-        <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <groupId>org.richfaces.ui</groupId>
+        <artifactId>richfaces-ui-parent</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui</groupId>
@@ -32,40 +33,13 @@
     <name>Richfaces UI Assembler</name>
 
     <modules>
-        <!--<module>bom</module>-->
-        <!--<module>parent</module>-->
         <module>richfaces-components-api</module>
-        <!--<module>richfaces-components-impl</module>-->
         <module>richfaces-components-ui</module>
     </modules>
     
     <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <configuration>
-                        <!--
-                            The dist requires clean install for prepare
-                        -->
-                        <preparationGoals>clean install</preparationGoals>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
         <plugins>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <!--
-                        The dist requires clean install for prepare
-                    -->
-                    <preparationGoals>clean install</preparationGoals>
-                </configuration>
-            </plugin>
-            <plugin>
                 <artifactId>maven-deploy-plugin</artifactId>
                 <configuration>
                     <skip>true</skip>
@@ -77,7 +51,8 @@
     <profiles>
         <profile>
             <id>build-force</id>
-
+            
+            <!-- TODO these are out of date -->
             <modules>
                 <module>../../core</module>
                 <module>../../misc/dist</module>

Modified: trunk/ui/dist/richfaces-components-api/pom.xml
===================================================================
--- trunk/ui/dist/richfaces-components-api/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/dist/richfaces-components-api/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,6 +25,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui</groupId>
@@ -66,14 +67,6 @@
             <artifactId>richfaces-commons-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-        </dependency>
-        <dependency>
             <groupId>javax.el</groupId>
             <artifactId>el-api</artifactId>
         </dependency>

Modified: trunk/ui/dist/richfaces-components-ui/pom.xml
===================================================================
--- trunk/ui/dist/richfaces-components-ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/dist/richfaces-components-ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,6 +25,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui</groupId>
@@ -75,16 +76,6 @@
             <artifactId>richfaces-commons-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>javax.el</groupId>
             <artifactId>el-api</artifactId>
         </dependency>

Modified: trunk/ui/input/api/pom.xml
===================================================================
--- trunk/ui/input/api/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/input/api/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -26,6 +26,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -44,65 +45,5 @@
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-api</artifactId>
         </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
\ No newline at end of file

Modified: trunk/ui/input/pom.xml
===================================================================
--- trunk/ui/input/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/input/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui.input</groupId>
@@ -39,31 +39,6 @@
         <module>ui</module>
     </modules>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <configuration>
-                        <!-- The dist requires clean install for prepare -->
-                        <preparationGoals>clean install</preparationGoals>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <!-- The dist requires clean install for prepare -->
-                    <preparationGoals>clean install</preparationGoals>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/input</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/input</developerConnection>

Modified: trunk/ui/input/ui/pom.xml
===================================================================
--- trunk/ui/input/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/input/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -27,6 +27,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui.input</groupId>
@@ -58,80 +59,13 @@
             <artifactId>richfaces-ui-common-ui</artifactId>
         </dependency>
         <dependency>
-            <!-- todo remove this dependency -->
-            <groupId>org.richfaces.ui.core</groupId>
-            <artifactId>richfaces-ui-core-ui</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.richfaces.cdk</groupId>
-            <artifactId>annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.richfaces.ui.input</groupId>
             <artifactId>richfaces-ui-input-api</artifactId>
-            <version>${project.version}</version>
         </dependency>
-
-        <!-- JSF with dependencies -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
+            <!-- todo remove this dependency -->
+            <groupId>org.richfaces.ui.core</groupId>
+            <artifactId>richfaces-ui-core-ui</artifactId>
         </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
\ No newline at end of file

Modified: trunk/ui/iteration/api/pom.xml
===================================================================
--- trunk/ui/iteration/api/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/iteration/api/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,6 +25,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -34,33 +35,7 @@
     <packaging>jar</packaging>
 
     <dependencies>
-        <!-- JSF with dependencies -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>org.richfaces.ui.core</groupId>
             <artifactId>richfaces-ui-core-ui</artifactId>
         </dependency>
@@ -68,39 +43,6 @@
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-api</artifactId>
         </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
 	</dependencies>
     
     <scm>

Modified: trunk/ui/iteration/pom.xml
===================================================================
--- trunk/ui/iteration/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/iteration/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui.iteration</groupId>
@@ -39,35 +39,6 @@
         <module>ui</module>
     </modules>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <configuration>
-                        <!--
-                            The dist requires clean install for prepare
-                        -->
-                        <preparationGoals>clean install</preparationGoals>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <!--
-                        The dist requires clean install for prepare
-                    -->
-                    <preparationGoals>clean install</preparationGoals>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration</developerConnection>

Modified: trunk/ui/iteration/ui/pom.xml
===================================================================
--- trunk/ui/iteration/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/iteration/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -27,6 +27,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui.iteration</groupId>
@@ -34,121 +35,27 @@
     <name>Richfaces UI Components: Iteration UI</name>
     <packaging>jar</packaging>
 
-    <properties>
-        <org.richfaces.cdk.version>4.0.0-SNAPSHOT</org.richfaces.cdk.version>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.richfaces.cdk</groupId>
-                <artifactId>maven-cdk-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <version>1.0-beta-1</version>
-                <configuration>
-                    <fail>false</fail>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
     <dependencies>
         <!-- runtime -->
         <dependency>
-            <groupId>org.richfaces.core</groupId>
-            <artifactId>richfaces-core-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-ui</artifactId>
         </dependency>
         <dependency>
-            <!-- todo remove this dependency or move to test scope -->
-            <groupId>org.richfaces.core</groupId>
-            <artifactId>richfaces-core-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.richfaces.cdk</groupId>
-            <artifactId>annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.richfaces.ui.iteration</groupId>
             <artifactId>richfaces-ui-iteration-api</artifactId>
-            <version>${project.version}</version>
         </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.richfaces.cdk</groupId>
-            <artifactId>annotations</artifactId>
-            <version>${org.richfaces.cdk.version}</version>
-        </dependency>
     </dependencies>
     
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.richfaces.cdk</groupId>
+                <artifactId>maven-cdk-plugin</artifactId>
+            </plugin>
+       </plugins>
+    </build>
+    
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration/datascroller/impl</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration/datascroller/impl</developerConnection>

Modified: trunk/ui/misc/pom.xml
===================================================================
--- trunk/ui/misc/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/misc/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,31 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-    JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-    Inc. 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.
--->
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
 
-<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/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui.misc</groupId>
@@ -38,50 +40,6 @@
         <module>ui</module>
     </modules>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <configuration>
-                        <!--
-                            The dist requires clean install for prepare
-                        -->
-                        <preparationGoals>clean install</preparationGoals>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.richfaces.cdk</groupId>
-                <artifactId>maven-cdk-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <version>1.0-beta-1</version>
-                <configuration>
-                    <fail>false</fail>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <!--                     The dist requires clean install for prepare -->
-                    <preparationGoals>clean install</preparationGoals>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/misc</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/misc</developerConnection>

Modified: trunk/ui/misc/ui/pom.xml
===================================================================
--- trunk/ui/misc/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/misc/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -26,6 +26,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui.misc</groupId>
@@ -40,108 +41,29 @@
                 <groupId>org.richfaces.cdk</groupId>
                 <artifactId>maven-cdk-plugin</artifactId>
             </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <version>1.0-beta-1</version>
-                <configuration>
-                    <fail>false</fail>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 
     <properties>
         <assembly.projects.group>org.richfaces.ui.misc</assembly.projects.group>
         <faces-shade-transformers.version>2</faces-shade-transformers.version>
-        <org.richfaces.cdk.version>4.0.0-SNAPSHOT</org.richfaces.cdk.version>
     </properties>
 
     <dependencies>
-        <!-- artifacts for javadoc generation -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.richfaces.cdk</groupId>
-            <artifactId>annotations</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-ui</artifactId>
        </dependency>
         <dependency>
              <groupId>org.richfaces.ui.core</groupId>
             <artifactId>richfaces-ui-core-ui</artifactId>
-       </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
+       </dependency>       
     </dependencies>
 
     <profiles>
         <profile>
             <id>release</id>
-
+            <!-- TODO this needs to be centralized in ui-parent -->
             <build>
                 <plugins>
                     <plugin>

Modified: trunk/ui/output/api/pom.xml
===================================================================
--- trunk/ui/output/api/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/output/api/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -26,6 +26,7 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -37,74 +38,9 @@
     <dependencies>
         <!-- runtime -->
         <dependency>
-            <groupId>org.richfaces.core</groupId>
-            <artifactId>richfaces-core-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-api</artifactId>
-            <version>${org.richfaces.commons.version}</version>
         </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <scm>

Modified: trunk/ui/output/pom.xml
===================================================================
--- trunk/ui/output/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/output/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui.output</groupId>
@@ -39,31 +39,6 @@
         <module>ui</module>
     </modules>
 
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <configuration>
-                        <!-- The dist requires clean install for prepare -->
-                        <preparationGoals>clean install</preparationGoals>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <!-- The dist requires clean install for prepare -->
-                    <preparationGoals>clean install</preparationGoals>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
     <scm>
         <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output</connection>
         <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output</developerConnection>

Modified: trunk/ui/output/ui/pom.xml
===================================================================
--- trunk/ui/output/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/output/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -27,12 +27,14 @@
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui-parent</artifactId>
         <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.richfaces.ui.output</groupId>
     <artifactId>richfaces-ui-output-ui</artifactId>
     <name>Richfaces UI Components: Output UI</name>
     <packaging>jar</packaging>
+    
     <build>
         <plugins>
             <plugin>
@@ -43,20 +45,17 @@
     </build>
 
     <dependencies>
-        <!-- runtime -->
         <dependency>
             <groupId>org.richfaces.core</groupId>
             <artifactId>richfaces-core-api</artifactId>
         </dependency>
         <dependency>
-            <!-- todo remove this dependency or move to test scope -->
-            <groupId>org.richfaces.core</groupId>
-            <artifactId>richfaces-core-impl</artifactId>
+            <groupId>org.richfaces.commons</groupId>
+            <artifactId>richfaces-commons-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.richfaces.ui.common</groupId>
             <artifactId>richfaces-ui-common-ui</artifactId>
-            <version>${org.richfaces.commons.version}</version>
         </dependency>
         <dependency>
             <!-- todo remove this dependency -->
@@ -64,76 +63,9 @@
             <artifactId>richfaces-ui-core-ui</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.richfaces.cdk</groupId>
-            <artifactId>annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.richfaces.ui.output</groupId>
             <artifactId>richfaces-ui-output-api</artifactId>
-            <version>${project.version}</version>
         </dependency>
-
-        <!-- JSF with dependencies -->
-        <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- tests -->
-        <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- todo api? -->
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-test-stage</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>htmlunit-client</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.test-jsf</groupId>
-            <artifactId>jsf-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     
     <scm>

Modified: trunk/ui/parent/pom.xml
===================================================================
--- trunk/ui/parent/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/parent/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -1,147 +1,45 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-    JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
-    Inc. 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.
--->
+    <!--
+        JBoss, Home of Professional Open Source Copyright 2010, Red Hat,
+        Inc. 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.
+    -->
 
 <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/xsd/maven-4.0.0.xsd">
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+>
 
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.richfaces</groupId>
-        <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <artifactId>richfaces-bom</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui</groupId>
     <artifactId>richfaces-ui-parent</artifactId>
     <version>4.0.0-SNAPSHOT</version>
-    <name>Richfaces UI Components: Miscellanous Parent</name>
+    <name>Richfaces UI Components Parent</name>
     <packaging>pom</packaging>
 
     <properties>
         <richfaces.checkstyle.version>1</richfaces.checkstyle.version>
-        <org.richfaces.cdk.version>4.0.0-SNAPSHOT</org.richfaces.cdk.version>
-        <org.richfaces.core.version>4.0.0-SNAPSHOT</org.richfaces.core.version>
-        <org.richfaces.commons.version>4.0.0-SNAPSHOT</org.richfaces.commons.version>
-        <org.richfaces.ui.common.version>4.0.0-SNAPSHOT</org.richfaces.ui.common.version>
-        <org.richfaces.ui.core.version>4.0.0-SNAPSHOT</org.richfaces.ui.core.version>
-        <org.richfaces.ui.misc.version>4.0.0-SNAPSHOT</org.richfaces.ui.misc.version>
-        <org.richfaces.ui.iteration.version>4.0.0-SNAPSHOT</org.richfaces.ui.iteration.version>
-        <org.richfaces.ui.output.version>4.0.0-SNAPSHOT</org.richfaces.ui.output.version>
-	<org.richfaces.ui.input.version>4.0.0-SNAPSHOT</org.richfaces.ui.input.version>
     </properties>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.richfaces.core</groupId>
-                <artifactId>richfaces-core-bom</artifactId>
-                <version>${org.richfaces.core.version}</version>
-                <scope>import</scope>
-                <type>pom</type>
-            </dependency>
-            <dependency>
-                <groupId>org.richfaces.commons</groupId>
-                <artifactId>richfaces-commons-bom</artifactId>
-                <version>${org.richfaces.commons.version}</version>
-                <scope>import</scope>
-                <type>pom</type>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.ui.common</groupId>
-                <artifactId>richfaces-ui-common-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.richfaces.ui.common</groupId>
-                <artifactId>richfaces-ui-common-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.ui.core</groupId>
-                <artifactId>richfaces-ui-core-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.ui.iteration</groupId>
-                <artifactId>richfaces-ui-iteration-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.richfaces.ui.iteration</groupId>
-                <artifactId>richfaces-ui-iteration-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.ui.output</groupId>
-                <artifactId>richfaces-ui-output-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.richfaces.ui.output</groupId>
-                <artifactId>richfaces-ui-output-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.ui.input</groupId>
-                <artifactId>richfaces-ui-input-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.richfaces.ui.input</groupId>
-                <artifactId>richfaces-ui-input-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-	
-            <dependency>
-                <groupId>org.richfaces.ui.misc</groupId>
-                <artifactId>richfaces-ui-misc-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-components-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.richfaces.ui</groupId>
-                <artifactId>richfaces-components-ui</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            
-            <dependency>
-                <groupId>org.richfaces.cdk</groupId>
-                <artifactId>annotations</artifactId>
-                <version>${org.richfaces.cdk.version}</version>
-            </dependency>
-        </dependencies>
-        
-    </dependencyManagement>
-
     <build>
         <pluginManagement>
             <plugins>
@@ -164,17 +62,7 @@
                 <plugin>
                     <groupId>org.richfaces.cdk</groupId>
                     <artifactId>maven-cdk-plugin</artifactId>
-                    <version>${org.richfaces.cdk.version}</version>
-                    <configuration>
-                        <library>
-                            <prefix>org.richfaces</prefix>
-                            <taglib>
-                                <uri>http://richfaces.org/iteration</uri>
-                                <shortName>it</shortName>
-                                <displayName>Iteration components tags</displayName>
-                            </taglib>
-                        </library>
-                    </configuration>
+                    <version>${project.version}</version>
                     <executions>
                         <execution>
                             <id>cdk-generate-sources</id>
@@ -228,16 +116,12 @@
         <dependency>
             <groupId>org.richfaces.cdk</groupId>
             <artifactId>annotations</artifactId>
+            <version>${project.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <!-- JSF with dependencies -->
         <dependency>
-            <groupId>${jsf2.api.groupid}</groupId>
-            <artifactId>${jsf2.api.artifactid}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
             <scope>provided</scope>
@@ -260,11 +144,6 @@
 
         <!-- tests -->
         <dependency>
-            <groupId>${jsf2.impl.groupid}</groupId>
-            <artifactId>${jsf2.impl.artifactid}</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <!-- todo api? -->
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
@@ -338,8 +217,8 @@
 
 
     <scm>
-        <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/misc/parent</connection>
-        <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/misc/parent</developerConnection>
+        <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/parent</connection>
+        <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/parent</developerConnection>
         <url>http://fisheye.jboss.org/browse/richfaces/</url>
     </scm>
-</project>
+</project>
\ No newline at end of file

Modified: trunk/ui/pom.xml
===================================================================
--- trunk/ui/pom.xml	2010-08-13 17:38:52 UTC (rev 18632)
+++ trunk/ui/pom.xml	2010-08-13 19:22:27 UTC (rev 18633)
@@ -28,11 +28,11 @@
     <parent>
         <groupId>org.richfaces</groupId>
         <artifactId>richfaces-parent</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
     </parent>
 
     <groupId>org.richfaces.ui</groupId>
-    <artifactId>ui-aggregator</artifactId>
+    <artifactId>richfaces-ui-aggregator</artifactId>
     <version>4.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>RichFaces UI: Aggregator</name>
@@ -44,7 +44,7 @@
         <module>iteration</module>
         <module>misc</module>
         <module>output</module>
-	<module>input</module>
+        <module>input</module>
         <module>dist</module>
     </modules>
 



More information about the richfaces-svn-commits mailing list