JBoss Rich Faces SVN: r19445 - tags.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2010-10-04 21:08:39 -0400 (Mon, 04 Oct 2010)
New Revision: 19445
Added:
tags/4.0.0.20101004-M3/
Log:
[maven-scm] copy for tag 4.0.0.20101004-M3
Copied: tags/4.0.0.20101004-M3 (from rev 19444, trunk)
14 years, 3 months
JBoss Rich Faces SVN: r19444 - in trunk: archetypes and 53 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2010-10-04 21:08:26 -0400 (Mon, 04 Oct 2010)
New Revision: 19444
Modified:
trunk/archetypes/pom.xml
trunk/archetypes/rf-gae-sample/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/bom/pom.xml
trunk/cdk/annotations/pom.xml
trunk/cdk/attributes/pom.xml
trunk/cdk/commons/pom.xml
trunk/cdk/dist/pom.xml
trunk/cdk/generator/pom.xml
trunk/cdk/maven-cdk-plugin/pom.xml
trunk/cdk/maven-resources-plugin/pom.xml
trunk/cdk/parent/pom.xml
trunk/cdk/pom.xml
trunk/cdk/xinclude/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/input-demo/pom.xml
trunk/examples/iteration-demo/pom.xml
trunk/examples/misc-demo/pom.xml
trunk/examples/output-demo/pom.xml
trunk/examples/parent/pom.xml
trunk/examples/pom.xml
trunk/examples/repeater-demo/pom.xml
trunk/examples/richfaces-showcase/pom.xml
trunk/parent/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/api/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:
[maven-release-plugin] prepare release 4.0.0.20101004-M3
Modified: trunk/archetypes/pom.xml
===================================================================
--- trunk/archetypes/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/archetypes/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -30,7 +30,7 @@
<groupId>org.richfaces.archetypes</groupId>
<artifactId>archetypes-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>RichFaces Archetypes: Aggregator</name>
@@ -49,9 +49,9 @@
</properties>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/archetypes</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/archetypes</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/archetypes</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/a...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/arch...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/archetypes</url>
</scm>
</project>
Modified: trunk/archetypes/rf-gae-sample/pom.xml
===================================================================
--- trunk/archetypes/rf-gae-sample/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/archetypes/rf-gae-sample/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -11,7 +11,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-archetype-gae</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: GAE Application</name>
@@ -92,9 +92,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/archetypes/richfac...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/archetypes/richfaces-...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/a...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/arch...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/archetyp...</url>
</scm>
</project>
Modified: trunk/archetypes/richfaces-archetype-simpleapp/pom.xml
===================================================================
--- trunk/archetypes/richfaces-archetype-simpleapp/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/archetypes/richfaces-archetype-simpleapp/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -11,7 +11,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-archetype-simpleapp</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Simple Application</name>
@@ -92,9 +92,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/archetypes/richfac...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/archetypes/richfaces-...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/a...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/arch...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/archetyp...</url>
</scm>
</project>
Modified: trunk/archetypes/richfaces-component/pom.xml
===================================================================
--- trunk/archetypes/richfaces-component/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/archetypes/richfaces-component/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -29,7 +29,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-component</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Component</name>
@@ -96,9 +96,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/archetypes/richfac...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/archetypes/richfaces-...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/a...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/arch...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/archetyp...</url>
</scm>
</project>
Modified: trunk/archetypes/richfaces-component-short/pom.xml
===================================================================
--- trunk/archetypes/richfaces-component-short/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/archetypes/richfaces-component-short/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -29,7 +29,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-component-short</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Component Short</name>
@@ -96,9 +96,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/archetypes/richfac...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/archetypes/richfaces-...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/a...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/arch...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/archetyp...</url>
</scm>
</project>
Modified: trunk/archetypes/richfaces-components-aggregator/pom.xml
===================================================================
--- trunk/archetypes/richfaces-components-aggregator/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/archetypes/richfaces-components-aggregator/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -29,7 +29,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.archetypes</groupId>
<artifactId>richfaces-components-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-archetype</packaging>
<name>RichFaces Archetypes: Components Aggregator</name>
@@ -96,9 +96,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/archetypes/richfac...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/archetypes/richfaces-...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/a...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/arch...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/archetyp...</url>
</scm>
</project>
Modified: trunk/bom/pom.xml
===================================================================
--- trunk/bom/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/bom/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -23,7 +23,7 @@
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>RichFaces BOM</name>
<parent>
@@ -200,9 +200,9 @@
</dependencyManagement>
<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>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/b...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/buil...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/build/bom</url>
</scm>
</project>
Modified: trunk/cdk/annotations/pom.xml
===================================================================
--- trunk/cdk/annotations/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/annotations/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,12 +4,12 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<description>That project contains annotations for JSF classes</description>
<name>annotations</name>
<dependencies>
Modified: trunk/cdk/attributes/pom.xml
===================================================================
--- trunk/cdk/attributes/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/attributes/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,12 +4,12 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>attributes</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<description>That project contains JAXB bindings for model classes representing schema attributes data</description>
<name>attributes</name>
Modified: trunk/cdk/commons/pom.xml
===================================================================
--- trunk/cdk/commons/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/commons/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,12 +4,12 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>commons</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>commons</name>
<build>
<plugins>
Modified: trunk/cdk/dist/pom.xml
===================================================================
--- trunk/cdk/dist/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/dist/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,20 +4,20 @@
<parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>dist</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>JSF Components Development Kit (CDK) distribution assembly</name>
<!-- SCM and distribution management -->
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/cdk/dist</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/cdk/dist</developerConnection>
- <url>http://fisheye.jboss.org/browse/Richfaces/cdk</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/c...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/cdk/...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/Richfaces/cdk/tags/4.0.0.20101004-M3/cdk/...</url>
</scm>
<build>
<finalName>cdk</finalName>
Modified: trunk/cdk/generator/pom.xml
===================================================================
--- trunk/cdk/generator/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/generator/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -3,13 +3,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>generator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>Java Server Faces component generator</name>
Modified: trunk/cdk/maven-cdk-plugin/pom.xml
===================================================================
--- trunk/cdk/maven-cdk-plugin/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/maven-cdk-plugin/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -2,13 +2,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-cdk-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-plugin</packaging>
<name>Maven plugin for JSF components code generation</name>
<dependencies>
Modified: trunk/cdk/maven-resources-plugin/pom.xml
===================================================================
--- trunk/cdk/maven-resources-plugin/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/maven-resources-plugin/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,13 +4,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>maven-plugin</packaging>
<name>maven-resources-plugin</name>
<description>Maven plugin for packaging resources with web application</description>
Modified: trunk/cdk/parent/pom.xml
===================================================================
--- trunk/cdk/parent/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/parent/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -13,7 +13,7 @@
<groupId>org.richfaces.cdk</groupId>
<artifactId>parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>JSF Components Development Kit (CDK)</name>
@@ -22,9 +22,9 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/cdk/parent</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/cdk/parent</developerConnection>
- <url>http://fisheye.jboss.org/browse/Richfaces/cdk/parent</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/c...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/cdk/...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/Richfaces/cdk/parent/tags/4.0.0.20101004-...</url>
</scm>
<build>
Modified: trunk/cdk/pom.xml
===================================================================
--- trunk/cdk/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -11,7 +11,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.cdk</groupId>
<artifactId>aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>JSF Components Development Kit (CDK)</name>
<properties>
@@ -32,9 +32,9 @@
</modules>
<!-- SCM and distribution management -->
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/cdk</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/cdk</developerConnection>
- <url>http://fisheye.jboss.org/browse/Richfaces/cdk</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/cdk</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/cdk</developerConnection>
+ <url>http://fisheye.jboss.org/browse/Richfaces/cdk/tags/4.0.0.20101004-M3/cdk</url>
</scm>
<!-- Minimal build configuration -->
Modified: trunk/cdk/xinclude/pom.xml
===================================================================
--- trunk/cdk/xinclude/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/cdk/xinclude/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -22,13 +22,13 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.richfaces.cdk</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.cdk</groupId>
<artifactId>xinclude</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>Cocoon 3: xinclude transformer</name>
<description>Cocoon 3 xinclude transformer with Xpointer scheme support.</description>
Modified: trunk/core/api/pom.xml
===================================================================
--- trunk/core/api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/core/api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -80,8 +80,8 @@
</build>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/core/api</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/core/api</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/core/api</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/c...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/core...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/core/api</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/core/impl/pom.xml
===================================================================
--- trunk/core/impl/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/core/impl/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -20,7 +20,7 @@
<parent>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -225,8 +225,8 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/core/impl</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/core/impl</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/core/impl</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/c...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/core...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/core/impl</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/core/parent/pom.xml
===================================================================
--- trunk/core/parent/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/core/parent/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -23,13 +23,13 @@
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>RichFaces Core Parent</name>
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -46,8 +46,8 @@
</dependencyManagement>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/core/parent</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/core/parent</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/core/parent</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/c...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/core...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/core/parent</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/core/pom.xml
===================================================================
--- trunk/core/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/core/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -29,7 +29,7 @@
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>RichFaces Core Aggregator</name>
@@ -43,9 +43,9 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/core</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/core</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/core</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/core</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/core</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/core</url>
</scm>
</project>
Modified: trunk/dist/pom.xml
===================================================================
--- trunk/dist/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/dist/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-distribution</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces Distribution Assembler</name>
@@ -187,8 +187,8 @@
</build>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/dist</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/dist</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/dist</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/dist</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/dist</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/examples/core-demo/pom.xml
===================================================================
--- trunk/examples/core-demo/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/core-demo/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,14 +24,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>core-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>RichFaces Examples: Core</name>
<properties>
@@ -193,8 +193,8 @@
</profiles>
<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>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/e...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/exam...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/examples...</url>
</scm>
</project>
Modified: trunk/examples/input-demo/pom.xml
===================================================================
--- trunk/examples/input-demo/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/input-demo/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -12,7 +12,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>input-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>Richfaces Examples: Inputs</name>
<packaging>war</packaging>
Modified: trunk/examples/iteration-demo/pom.xml
===================================================================
--- trunk/examples/iteration-demo/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/iteration-demo/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,14 +24,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>iteration-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>RichFaces Examples: Iteration</name>
<properties>
Modified: trunk/examples/misc-demo/pom.xml
===================================================================
--- trunk/examples/misc-demo/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/misc-demo/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>misc-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>war</packaging>
<name>RichFaces Examples: Miscellanous</name>
Modified: trunk/examples/output-demo/pom.xml
===================================================================
--- trunk/examples/output-demo/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/output-demo/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -12,7 +12,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>output-demo</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>Richfaces Examples: Outputs</name>
<packaging>war</packaging>
Modified: trunk/examples/parent/pom.xml
===================================================================
--- trunk/examples/parent/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/parent/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -29,7 +29,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>RichFaces Examples Parent</name>
@@ -229,8 +229,8 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples/parent</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples/parent</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/examples/parent</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/e...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/exam...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/examples...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/examples/pom.xml
===================================================================
--- trunk/examples/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -34,7 +34,7 @@
<groupId>org.richfaces.examples</groupId>
<artifactId>examples-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>RichFaces Examples: Aggregator</name>
@@ -51,9 +51,9 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/examples</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/e...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/exam...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/examples</url>
</scm>
</project>
Modified: trunk/examples/repeater-demo/pom.xml
===================================================================
--- trunk/examples/repeater-demo/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/repeater-demo/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,14 +25,14 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>repeater-demo</artifactId>
<packaging>war</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>Richfaces Examples: Repeater</name>
<properties>
Modified: trunk/examples/richfaces-showcase/pom.xml
===================================================================
--- trunk/examples/richfaces-showcase/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/examples/richfaces-showcase/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -7,13 +7,13 @@
<parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-example-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.examples</groupId>
<artifactId>richfaces-showcase</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>war</packaging>
<name>Richfaces Examples: Richfaces Showcase Application</name>
@@ -373,8 +373,8 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/examples/richfaces...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/examples/richfaces-sh...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/e...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/exam...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/examples...</url>
</scm>
</project>
Modified: trunk/parent/pom.xml
===================================================================
--- trunk/parent/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/parent/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -23,13 +23,13 @@
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>RichFaces Root Parent</name>
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../bom/pom.xml</relativePath>
</parent>
@@ -394,11 +394,11 @@
<!-- SCM and distribution management -->
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/parent
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/p...
</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/parent
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/parent
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk/parent</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/parent</url>
</scm>
</project>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -12,7 +12,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces Aggregator</name>
@@ -59,8 +59,8 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/trunk</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3</url>
</scm>
</project>
Modified: trunk/ui/common/api/pom.xml
===================================================================
--- trunk/ui/common/api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/common/api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: trunk/ui/common/pom.xml
===================================================================
--- trunk/ui/common/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/common/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.common</groupId>
<artifactId>richfaces-ui-common-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Common Aggregator</name>
Modified: trunk/ui/common/ui/pom.xml
===================================================================
--- trunk/ui/common/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/common/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: trunk/ui/core/api/pom.xml
===================================================================
--- trunk/ui/core/api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/core/api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -20,7 +20,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: trunk/ui/core/pom.xml
===================================================================
--- trunk/ui/core/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/core/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.core</groupId>
<artifactId>richfaces-ui-core-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Core Aggregator</name>
@@ -41,8 +41,8 @@
</modules>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/core</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/core</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/core</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/core</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/core/ui/pom.xml
===================================================================
--- trunk/ui/core/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/core/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -61,10 +61,10 @@
</build>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/core/ui
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...
</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/core/ui
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/c...
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/core/ui</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/dist/pom.xml
===================================================================
--- trunk/ui/dist/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/dist/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -22,13 +22,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-assembler</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Assembler</name>
@@ -63,9 +63,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/dist</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/dist</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/dist</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/dist</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/dist/richfaces-components-api/pom.xml
===================================================================
--- trunk/ui/dist/richfaces-components-api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/dist/richfaces-components-api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-api</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>jar</packaging>
<name>Richfaces UI Components API</name>
@@ -173,8 +173,8 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/dist/richfaces-...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/dist/richfaces-com...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/d...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/dist/...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/dist/richfaces-components-ui/pom.xml
===================================================================
--- trunk/ui/dist/richfaces-components-ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/dist/richfaces-components-ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>jar</packaging>
<name>Richfaces UI Components UI</name>
@@ -241,9 +241,9 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/dist/richfaces-...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/dist/richfaces-com...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/d...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/dist/...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/input/api/pom.xml
===================================================================
--- trunk/ui/input/api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/input/api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: trunk/ui/input/pom.xml
===================================================================
--- trunk/ui/input/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/input/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.input</groupId>
<artifactId>richfaces-ui-input-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Input Aggregator</name>
@@ -41,8 +41,8 @@
</modules>
<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>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/i...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/input</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/input/ui/pom.xml
===================================================================
--- trunk/ui/input/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/input/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
Modified: trunk/ui/iteration/api/pom.xml
===================================================================
--- trunk/ui/iteration/api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/iteration/api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -54,9 +54,9 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration/datas...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration/datascro...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/i...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/itera...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/iteration/pom.xml
===================================================================
--- trunk/ui/iteration/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/iteration/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.iteration</groupId>
<artifactId>richfaces-ui-iteration-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Iteration Aggregator</name>
@@ -41,8 +41,8 @@
</modules>
<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>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/i...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/itera...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/iteration/ui/pom.xml
===================================================================
--- trunk/ui/iteration/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/iteration/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -60,8 +60,8 @@
</build>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/iteration/datas...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/iteration/datascro...</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/i...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/itera...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/misc/pom.xml
===================================================================
--- trunk/ui/misc/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/misc/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.misc</groupId>
<artifactId>richfaces-ui-misc-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Miscellanous Aggregator</name>
@@ -40,9 +40,9 @@
</modules>
<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>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/misc</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/misc</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/misc/ui/pom.xml
===================================================================
--- trunk/ui/misc/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/misc/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,13 +24,13 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.misc</groupId>
<artifactId>richfaces-ui-misc-ui</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>jar</packaging>
<name>Richfaces UI Misc UI</name>
@@ -155,10 +155,10 @@
</profiles>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/misc/dist/richf...
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...
</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/misc/dist/richface...
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/m...
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces/</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/misc/...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/output/api/pom.xml
===================================================================
--- trunk/ui/output/api/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/output/api/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -51,10 +51,10 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output/panels/api</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output/panels/api
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/o...
</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/outpu...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/output/pom.xml
===================================================================
--- trunk/ui/output/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/output/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui.output</groupId>
<artifactId>richfaces-ui-output-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Output Aggregator</name>
@@ -41,8 +41,8 @@
</modules>
<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>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/o...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/output</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/output/ui/pom.xml
===================================================================
--- trunk/ui/output/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/output/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -71,9 +71,9 @@
</dependencies>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/trunk/ui/output/panels/ui</developerConnection>
- <url>http://fisheye.jboss.org/browse/richfaces</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/o...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/outpu...</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/parent/pom.xml
===================================================================
--- trunk/ui/parent/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/parent/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -25,13 +25,13 @@
<parent>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-root-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<name>Richfaces UI Components Parent</name>
<packaging>pom</packaging>
@@ -194,8 +194,8 @@
<scm>
- <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>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/u...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/tags/4.0.0.20101004-M3/ui/p...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/tags/4.0.0.20101004-M3/ui/parent</url>
</scm>
</project>
\ No newline at end of file
Modified: trunk/ui/pom.xml
===================================================================
--- trunk/ui/pom.xml 2010-10-05 00:52:14 UTC (rev 19443)
+++ trunk/ui/pom.xml 2010-10-05 01:08:26 UTC (rev 19444)
@@ -32,7 +32,7 @@
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.0.20101004-M3</version>
<packaging>pom</packaging>
<name>RichFaces UI: Aggregator</name>
@@ -46,5 +46,11 @@
<module>input</module>
<module>dist</module>
</modules>
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/richfaces/modules/build/parent/tag...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/richfaces/modules/build/parent/tags/4...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/richfaces/modules/build/parent/tags/4.0.0...</url>
+ </scm>
</project>
14 years, 3 months
JBoss Rich Faces SVN: r19443 - trunk/dist.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2010-10-04 20:52:14 -0400 (Mon, 04 Oct 2010)
New Revision: 19443
Modified:
trunk/dist/readme-ui.txt
Log:
Prep for M3 respin
Modified: trunk/dist/readme-ui.txt
===================================================================
--- trunk/dist/readme-ui.txt 2010-10-05 00:23:10 UTC (rev 19442)
+++ trunk/dist/readme-ui.txt 2010-10-05 00:52:14 UTC (rev 19443)
@@ -8,10 +8,10 @@
-------------------------------
1) Put RichFaces libraries and its dependencies in your application libraries folder:
- 1.1) richfaces-core-api-4.0.0.20101001-M3.jar
- 1.2) richfaces-core-impl-4.0.0.20101001-M3.jar
- 1.3) richfaces-components-api-4.0.0.20101001-M3.jar
- 1.4) richfaces-components-ui-4.0.0.20101001-M3.jar
+ 1.1) richfaces-core-api-4.0.0.20101004-M3.jar
+ 1.2) richfaces-core-impl-4.0.0.20101004-M3.jar
+ 1.3) richfaces-components-api-4.0.0.20101004-M3.jar
+ 1.4) richfaces-components-ui-4.0.0.20101004-M3.jar
1.5) sac-1.3, cssparser-0.9.5 - required for components CSS work
1.6) google-guava-r06 - core runtime dependency.
1.7) annotations.jar from org.richfaces.cdk
14 years, 3 months
JBoss Rich Faces SVN: r19442 - in branches/RF-8742/ui/validator: api/src/main/java/org/richfaces/event and 7 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2010-10-04 20:23:10 -0400 (Mon, 04 Oct 2010)
New Revision: 19442
Added:
branches/RF-8742/ui/validator/.checkstyle
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidatorState.java
branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ClonedObjectResolver.java
branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ObjectValidator.java
Removed:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ObjectValidator.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/ClonedObjectResolver.java
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorEvent.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorListener.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidator.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/NullValueValidator.java
branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/application/ValidatorModule.java
branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/BeanValidator.java
branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/FacesBeanValidator.java
branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/NullValidator.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIAjaxValidator.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIBeanValidator.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIGraphValidator.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIRichMessages.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/behavior/ClientValidatorBehavior.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/component/behavior/ClientValidatorBehaviorTest.java
Log:
CODING IN PROGRESS - issue RF-9219: CSV: development tests for server side(junit)
https://jira.jboss.org/browse/RF-9219
Added: branches/RF-8742/ui/validator/.checkstyle
===================================================================
--- branches/RF-8742/ui/validator/.checkstyle (rev 0)
+++ branches/RF-8742/ui/validator/.checkstyle 2010-10-05 00:23:10 UTC (rev 19442)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+ <fileset name="all" enabled="true" check-config-name="RichFaces" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>
Modified: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorEvent.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorEvent.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorEvent.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -27,42 +27,45 @@
import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
-
/**
* @author asmirnov
- *
+ *
*/
public class ValidatorEvent extends FacesEvent {
- /**
+ /**
*
*/
- private static final long serialVersionUID = 5593837134704144777L;
+ private static final long serialVersionUID = 5593837134704144777L;
- public ValidatorEvent(UIComponent component) {
- super(component);
- // TODO Auto-generated constructor stub
- }
+ public ValidatorEvent(UIComponent component) {
+ super(component);
+ // TODO Auto-generated constructor stub
+ }
- /* (non-Javadoc)
- * @see javax.faces.event.FacesEvent#isAppropriateListener(javax.faces.event.FacesListener)
- */
- @Override
- public boolean isAppropriateListener(FacesListener listener) {
- // TODO Auto-generated method stub
- return listener instanceof ValidatorListener;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.event.FacesEvent#isAppropriateListener(javax.faces.event.FacesListener)
+ */
+ @Override
+ public boolean isAppropriateListener(FacesListener listener) {
+ // TODO Auto-generated method stub
+ return listener instanceof ValidatorListener;
+ }
- /* (non-Javadoc)
- * @see javax.faces.event.FacesEvent#processListener(javax.faces.event.FacesListener)
- */
- @Override
- public void processListener(FacesListener listener) {
- if (listener instanceof ValidatorListener) {
- ValidatorListener validationListener = (ValidatorListener) listener;
- validationListener.processValidation(this);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.event.FacesEvent#processListener(javax.faces.event.FacesListener)
+ */
+ @Override
+ public void processListener(FacesListener listener) {
+ if (listener instanceof ValidatorListener) {
+ ValidatorListener validationListener = (ValidatorListener) listener;
+ validationListener.processValidation(this);
+ }
- }
+ }
}
Modified: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorListener.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorListener.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/event/ValidatorListener.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -22,13 +22,12 @@
import javax.faces.event.FacesListener;
-
/**
* @author asmirnov
- *
+ *
*/
public interface ValidatorListener extends FacesListener {
-
- public void processValidation(ValidatorEvent event);
+ public void processValidation(ValidatorEvent event);
+
}
Modified: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -24,16 +24,19 @@
package org.richfaces.validator;
/**
- * <p class="changed_added_4_0">This class contains information about JavaScript associated with JSF object ( converter or validator )</p>
+ * <p class="changed_added_4_0">
+ * This class contains information about JavaScript associated with JSF object ( converter or validator )
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public interface ClientScript {
String getLibrary();
-
+
String getResourceName();
-
+
String getFunctionName();
-
+
}
Modified: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidator.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -8,18 +8,17 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
- * This interface should be implemented by the JSF {@link Validator} which able to
- * validate entire graph.
+ * This interface should be implemented by the JSF {@link Validator} which able to validate entire graph.
+ *
* @author asmirnov
- *
+ *
*/
public interface GraphValidator {
-
- public Collection<String> validateGraph(FacesContext context, UIComponent component, Object value,
- Set<String> profiles) throws ValidatorException ;
+ public Collection<String> validateGraph(FacesContext context, UIComponent component, Object value,
+ Set<String> profiles) throws ValidatorException;
+
}
Added: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidatorState.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidatorState.java (rev 0)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidatorState.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -0,0 +1,85 @@
+package org.richfaces.validator;
+
+
+public final class GraphValidatorState {
+ public static final String STATE_ATTRIBUTE_PREFIX = "org.richfaces.GraphValidator:";
+ boolean active = false;
+ Object cloned;
+ Object base;
+ Object property;
+ /**
+ * @return the active
+ */
+ public boolean isActive() {
+ return active;
+ }
+
+ /**
+ * @param active
+ * the active to set
+ */
+ public void setActive(boolean active) {
+ this.active = active;
+ }
+
+ /**
+ * @return the cloned
+ */
+ public Object getCloned() {
+ return cloned;
+ }
+
+ /**
+ * @param cloned
+ * the cloned to set
+ */
+ public void setCloned(Object cloned) {
+ this.cloned = cloned;
+ }
+
+ /**
+ * @return the base
+ */
+ public Object getBase() {
+ return base;
+ }
+
+ /**
+ * @param base
+ * the base to set
+ */
+ public void setBase(Object base) {
+ this.base = base;
+ }
+
+ /**
+ * @return the property
+ */
+ public Object getProperty() {
+ return property;
+ }
+
+ /**
+ * @param property
+ * the property to set
+ */
+ public void setProperty(Object property) {
+ this.property = property;
+ }
+
+ public boolean isSameBase(Object base) {
+ return (null == base && null == this.base) || (base == this.base);
+ }
+
+ public boolean isSameProperty(Object property) {
+ if (null == this.property) {
+ return null == property;
+ } else {
+ return this.property.equals(property);
+ }
+ }
+
+ public boolean isSame(Object base, Object property) {
+ return isSameBase(base) && isSameProperty(property) && active;
+ }
+}
\ No newline at end of file
Property changes on: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/GraphValidatorState.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/NullValueValidator.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/NullValueValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/NullValueValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -7,8 +7,9 @@
/**
* Marker interface for validators that allows null-values to validate.
+ *
* @author asmirnov
- *
+ *
*/
public interface NullValueValidator extends Validator {
Deleted: branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ObjectValidator.java
===================================================================
--- branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ObjectValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ObjectValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -1,443 +0,0 @@
-package org.richfaces.validator;
-
-import java.beans.FeatureDescriptor;
-import java.util.Collection;
-import java.util.EmptyStackException;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.Stack;
-
-import javax.el.ELContext;
-import javax.el.ELException;
-import javax.el.ELResolver;
-import javax.el.ValueExpression;
-import javax.faces.FacesException;
-import javax.faces.application.Application;
-import javax.faces.context.FacesContext;
-
-import org.richfaces.application.ServiceTracker;
-import org.richfaces.component.ClonedObjectResolver;
-import org.richfaces.el.ELContextWrapper;
-
-public abstract class ObjectValidator {
-
- private static final String RESOURCE_BUNDLE_IS_NOT_REGISTERED_FOR_CURRENT_LOCALE = "Resource bundle is not registered for current locale";
-
- private static final String FACES_CONTEXT_IS_NULL = "Faces context is null";
- protected static final String INPUT_PARAMETERS_IS_NOT_CORRECT = "Input parameters is not correct.";
- private static final String LOCALE_IS_NOT_SET = "Locale is not set";
- private static final String VIEW_ROOT_IS_NOT_INITIALIZED = "ViewRoot is not initialized";
-
-
- protected final ObjectValidator parent;
-
-
- ObjectValidator() {
- this.parent = null;
- }
-
- ObjectValidator(ObjectValidator parent){
- this.parent = parent;
- }
- /**
- * Return BeanValidator object from a ServletContext attribute. Create new
- * instance if none is defined.
- *
- * @param context
- * @return
- */
- public static ObjectValidator getInstance(FacesContext context) {
- return ServiceTracker.getService(context, ObjectValidator.class);
- }
-
- public abstract Collection<String> validateGraph(FacesContext context, Object value,
- Set<String> profiles);
-
- /**
- * Perform Validation for a new value.
- *
- * @param context
- * current faces context.
- * @param target
- * {@link ValueExpression} for a value assignment.
- * @param value
- * new value for validation
- * @param profiles TODO
- * @return null if no validation errors. Array of the validation messages
- * otherwise.
- * @throws FacesException
- * if locale or context not properly initialized
- */
- public Collection<String> validate(FacesContext context, ValueExpression target,
- Object value, Set<String> profiles) {
- if (null == context) {
- throw new FacesException(INPUT_PARAMETERS_IS_NOT_CORRECT);
- }
- Collection<String> validationMessages = null;
- if (null != target) {
- ELContext elContext = context.getELContext();
- ValidationResolver validationResolver = createValidationResolver(
- context, elContext.getELResolver(),profiles);
- ELContextWrapper wrappedElContext = new ELContextWrapper(elContext,
- validationResolver);
- try {
- target.setValue(wrappedElContext, value);
- } catch (ELException e) {
- throw new FacesException(e);
- }
- if (!validationResolver.isValid()) {
- validationMessages = validationResolver.getValidationMessages();
- }
- if(null != parent){
- Collection<String> parentMessages = parent.validate(context, target, value, profiles);
- if (null != validationMessages) {
- if (null != parentMessages) {
- validationMessages.addAll(parentMessages);
- }
- } else {
- validationMessages = parentMessages;
- }
- }
-
- }
- return validationMessages;
- }
-
- /**
- * Validate bean property for a new value.
- * @param facesContext TODO
- * @param base
- * - bean
- * @param property
- * - bean property name.
- * @param value
- * new value.
- * @param profiles TODO
- *
- * @return null for a valid value, array of the validation messages
- * othervise.
- */
- protected abstract Collection<String> validate(FacesContext facesContext, Object base,
- String property, Object value, Set<String> profiles);
-
- static Locale calculateLocale(FacesContext context) {
- if (null == context.getViewRoot()) {
- throw new FacesException(VIEW_ROOT_IS_NOT_INITIALIZED);
- } else if (null == context.getViewRoot().getLocale()) {
- throw new FacesException(LOCALE_IS_NOT_SET);
- }
- Locale locale = context.getViewRoot().getLocale();
- return locale;
- }
-
- static ResourceBundle getResourceBundle(FacesContext facesContext, String name) {
- ResourceBundle bundle = null;
- if (null != facesContext) {
- Application application = facesContext.getApplication();
- try {
- bundle = application.getResourceBundle(facesContext,
- name);
-
- } catch (Exception e) {
- // Let one more attempt to load resource
- }
- }
- if (null == bundle) {
- ClassLoader classLoader = Thread.currentThread()
- .getContextClassLoader();
- if (null == classLoader) {
- classLoader = ObjectValidator.class.getClassLoader();
- }
- try {
- bundle = ResourceBundle.getBundle(name, calculateLocale(facesContext),
- classLoader);
-
- } catch (MissingResourceException e) {
- // Do nothing, use default bundle.
- }
- }
- return bundle;
- }
-
- protected ValidationResolver createValidationResolver(FacesContext context,
- ELResolver parent, Set<String> profiles) {
- return new ValidationResolver(parent, context, profiles);
- }
-
- /**
- * @author asmirnov
- *
- */
- protected static class BasePropertyPair {
- private final Object base;
- private final Object property;
-
- /**
- * @param base
- * @param property
- */
- public BasePropertyPair(Object base, Object property) {
- this.base = base;
- this.property = property;
- }
-
- /**
- * @return the base
- */
- public Object getBase() {
- return base;
- }
-
- /**
- * @return the property
- */
- public Object getProperty() {
- return property;
- }
-
- }
-
- /**
- * Class for identify validator instance by locale
- *
- * @author amarkhel
- *
- */
- protected static class ValidatorKey {
- private final Class<? extends Object> validatableClass;
- private final Locale locale;
-
- /**
- * Constructor for ValidatorKey object
- *
- * @param validatableClass
- * - class to validate
- * @param locale
- * - User locale to determine Resource bundle, used during
- * validation process
- */
- public ValidatorKey(Class<? extends Object> validatableClass,
- Locale locale) {
- this.validatableClass = validatableClass;
- this.locale = locale;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result
- + ((locale == null) ? 0 : locale.hashCode());
- result = prime
- * result
- + ((validatableClass == null) ? 0 : validatableClass
- .hashCode());
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof ValidatorKey))
- return false;
- ValidatorKey other = (ValidatorKey) obj;
- if (locale == null) {
- if (other.locale != null)
- return false;
- } else if (!locale.equals(other.locale))
- return false;
- if (validatableClass == null) {
- if (other.validatableClass != null)
- return false;
- } else if (!validatableClass.equals(other.validatableClass))
- return false;
- return true;
- }
-
- }
-
- /**
- * Wrapper class for a {@link ELResolver}. For a setValue method, perform
- * validation instead of real assignment.
- *
- * @author asmirnov
- *
- */
- final class ValidationResolver extends ELResolver {
-
- /**
- * Original resolver.
- */
- private final ELResolver parent;
-
- private boolean valid = true;
-
- private Collection<String> validationMessages = null;
-
- private Stack<BasePropertyPair> valuesStack;
-
- private Set<String> profiles;
-
- private FacesContext facesContext;
-
- private boolean clonedObject = false;
-
- /**
- * @param parent
- * @param context
- */
- public ValidationResolver(ELResolver parent, FacesContext context, Set<String> profiles) {
- this.parent = parent;
- this.valuesStack = new Stack<BasePropertyPair>();
- this.profiles = profiles;
- this.facesContext = context;
- }
-
- public boolean isValid() {
- return valid;
- }
-
- /**
- * @param context
- * @param base
- * @return
- * @see javax.el.ELResolver#getCommonPropertyType(javax.el.ELContext,
- * java.lang.Object)
- */
- public Class<?> getCommonPropertyType(ELContext context, Object base) {
- return parent.getCommonPropertyType(context, base);
- }
-
- /**
- * @param context
- * @param base
- * @return
- * @see javax.el.ELResolver#getFeatureDescriptors(javax.el.ELContext,
- * java.lang.Object)
- */
- public Iterator<FeatureDescriptor> getFeatureDescriptors(
- ELContext context, Object base) {
- return parent.getFeatureDescriptors(context, base);
- }
-
- /**
- * @param context
- * @param base
- * @param property
- * @return
- * @see javax.el.ELResolver#getType(javax.el.ELContext,
- * java.lang.Object, java.lang.Object)
- */
- public Class<?> getType(ELContext context, Object base, Object property) {
- return parent.getType(context, base, property);
- }
-
- /**
- * @param context
- * @param base
- * @param property
- * @return
- * @see javax.el.ELResolver#getValue(javax.el.ELContext,
- * java.lang.Object, java.lang.Object)
- */
- public Object getValue(ELContext context, Object base, Object property) {
- Object value = ClonedObjectResolver.resolveCloned(context, base, property);
- if(null != value){
- this.clonedObject =true;
- context.setPropertyResolved(true);
- } else {
- value = parent.getValue(context, base, property);
- }
- valuesStack.push(new BasePropertyPair(base, property));
- return value;
- }
-
- /**
- * @param context
- * @param base
- * @param property
- * @return
- * @see javax.el.ELResolver#isReadOnly(javax.el.ELContext,
- * java.lang.Object, java.lang.Object)
- */
- public boolean isReadOnly(ELContext context, Object base,
- Object property) {
- return parent.isReadOnly(context, base, property);
- }
-
- /**
- * @param context
- * @param base
- * @param property
- * @param value
- * @see javax.el.ELResolver#setValue(javax.el.ELContext,
- * java.lang.Object, java.lang.Object, java.lang.Object)
- */
- public void setValue(ELContext context, Object base, Object property,
- Object value) {
- if (null != base && null != property) {
- // TODO - detect value object from inderect references ( e.g. data table variables ).
- if(this.clonedObject){
- parent.setValue(context, base, property, value);
- }
- context.setPropertyResolved(true);
- // For Arrays, Collection or Map use parent base and property.
- BasePropertyPair basePropertyPair = lookupBeanProperty(new BasePropertyPair(
- base, property));
- base = basePropertyPair.getBase();
- property = basePropertyPair.getProperty();
- if (null != base && null != property) {
- // https://jira.jboss.org/jira/browse/RF-4034
- // apache el looses locale information during value
- // resolution,
- // so we use our own
- validationMessages = validate(facesContext, base,
- property.toString(), value, profiles);
- valid = null == validationMessages
- || 0 == validationMessages.size();
-
- }
- }
- }
-
- private BasePropertyPair lookupBeanProperty(BasePropertyPair pair) {
- Object base = pair.getBase();
- if (null != base
- && (base instanceof Collection || base instanceof Map || base
- .getClass().isArray())) {
- try {
- pair = lookupBeanProperty(valuesStack.pop());
- } catch (EmptyStackException e) {
- // Do nothing, this is a first item.
- }
- }
- return pair;
- }
-
- /**
- * @return the validationMessages
- */
- public Collection<String> getValidationMessages() {
- return validationMessages;
- }
-
- }
-
-}
\ No newline at end of file
Modified: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/application/ValidatorModule.java
===================================================================
--- branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/application/ValidatorModule.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/application/ValidatorModule.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -23,24 +23,32 @@
package org.richfaces.application;
+import javax.validation.ValidationException;
+
import org.richfaces.validator.BeanValidator;
import org.richfaces.validator.NullValidator;
import org.richfaces.validator.ObjectValidator;
/**
- * <p class="changed_added_4_0">This class initializes validator-related services</p>
+ * <p class="changed_added_4_0">
+ * This class initializes validator-related services
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public class ValidatorModule implements Module {
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.richfaces.application.Module#configure(org.richfaces.application.ServicesFactory)
*/
public void configure(ServicesFactory factory) {
factory.setInstance(ObjectValidator.class, createInstance());
}
+
/**
* Create BeanValidator instance. For a Junit tests only.
*
@@ -50,9 +58,12 @@
ObjectValidator validator = null;
try {
validator = new BeanValidator();
- } catch (Throwable e){
+ } catch (ValidationException e) {
+ // JSR-303 is available but not initialised.
+ validator = new NullValidator();
+ } catch (NoClassDefFoundError e){
// JSR-303 is not avalable.
-// log.warn("Validator implementations not found at classpath, default NullValidator will be used.");
+ // log.warn("Validator implementations not found at classpath, default NullValidator will be used.");
validator = new NullValidator();
}
return validator;
Modified: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/BeanValidator.java
===================================================================
--- branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/BeanValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/BeanValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -13,11 +13,9 @@
import javax.validation.ConstraintViolation;
import javax.validation.MessageInterpolator;
import javax.validation.Validation;
-import javax.validation.ValidationException;
import javax.validation.Validator;
import javax.validation.ValidatorContext;
import javax.validation.ValidatorFactory;
-import javax.validation.groups.Default;
/**
* @author asmirnov
@@ -25,139 +23,129 @@
*/
public class BeanValidator extends ObjectValidator {
- private static final Class[] DEFAULT_PROFILE = new Class[] {};
- private final ValidatorFactory validatorFactory;
- private ValidatorContext validatorContext;
+ private static final Class[] DEFAULT_PROFILE = new Class[] {};
+ private final ValidatorFactory validatorFactory;
+ private ValidatorContext validatorContext;
- public BeanValidator() {
- // Enforce class to load
- ValidatorFactory.class.getName();
- // Check Factory, to avoid instantiation errors
- // https://jira.jboss.org/jira/browse/RF-7226
- validatorFactory = Validation
- .buildDefaultValidatorFactory();
- validatorContext = validatorFactory.usingContext();
- MessageInterpolator jsfMessageInterpolator = new JsfMessageInterpolator(
- validatorFactory.getMessageInterpolator());
- validatorContext.messageInterpolator(jsfMessageInterpolator);
- }
+ public BeanValidator() {
+ // Enforce class to load
+ ValidatorFactory.class.getName();
+ // Check Factory, to avoid instantiation errors
+ // https://jira.jboss.org/jira/browse/RF-7226
+ validatorFactory = Validation.buildDefaultValidatorFactory();
+ validatorContext = validatorFactory.usingContext();
+ MessageInterpolator jsfMessageInterpolator =
+ new JsfMessageInterpolator(validatorFactory.getMessageInterpolator());
+ validatorContext.messageInterpolator(jsfMessageInterpolator);
+ }
- /*
- * (non-Javadoc)
- *
- * @see org.richfaces.validator.ObjectValidator#validate(java.lang.Object,
- * java.lang.String, java.lang.Object, java.util.Locale)
- */
- @Override
- protected Collection<String> validate(FacesContext facesContext, Object base, String property,
- Object value, Set<String> profiles) {
- Class beanType = base.getClass();
- Set<ConstraintViolation<Object>> constrains = getValidator(facesContext)
- .validateValue(beanType, property, value, getGroups(profiles));
- return extractMessages(constrains);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.richfaces.validator.ObjectValidator#validate(java.lang.Object, java.lang.String, java.lang.Object,
+ * java.util.Locale)
+ */
+ @Override
+ protected Collection<String> validate(FacesContext facesContext, Object base, String property, Object value,
+ Set<String> profiles) {
+ Class beanType = base.getClass();
+ Set<ConstraintViolation<Object>> constrains =
+ getValidator(facesContext).validateValue(beanType, property, value, getGroups(profiles));
+ return extractMessages(constrains);
+ }
- /*
- * (non-Javadoc)
- *
- * @see
- * org.richfaces.validator.ObjectValidator#validateGraph(javax.faces.context
- * .FacesContext, java.lang.Object, java.util.Set)
- */
- @Override
- public Collection<String> validateGraph(FacesContext context, Object value,
- Set<String> profiles) {
- Class<?>[] groups = getGroups(profiles);
- Set<ConstraintViolation<Object>> violations = getValidator(
- context).validate(value, groups);
- Collection<String> messages = extractMessages(violations);
- if(null != parent){
- Collection<String> parentMessages = parent.validateGraph(context, value, profiles);
- if (null != messages) {
- if (null != parentMessages) {
- messages.addAll(parentMessages);
- }
- } else {
- messages = parentMessages;
- }
- }
- return messages;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.richfaces.validator.ObjectValidator#validateGraph(javax.faces.context .FacesContext, java.lang.Object,
+ * java.util.Set)
+ */
+ @Override
+ public Collection<String> validateGraph(FacesContext context, Object value, Set<String> profiles) {
+ Class<?>[] groups = getGroups(profiles);
+ Set<ConstraintViolation<Object>> violations = getValidator(context).validate(value, groups);
+ Collection<String> messages = extractMessages(violations);
+ if (null != parent) {
+ Collection<String> parentMessages = parent.validateGraph(context, value, profiles);
+ if (null != messages) {
+ if (null != parentMessages) {
+ messages.addAll(parentMessages);
+ }
+ } else {
+ messages = parentMessages;
+ }
+ }
+ return messages;
+ }
- private Class<?>[] getGroups(Set<String> profiles) {
- Class<?> groups[] = null;
- if (null != profiles) {
- groups = new Class<?>[profiles.size()];
- int i = 0;
- for (String group : profiles) {
- try {
- groups[i] = Class.forName(group, false, Thread
- .currentThread().getContextClassLoader());
- } catch (ClassNotFoundException e) {
- try {
- groups[i] = Class.forName(group);
- } catch (ClassNotFoundException e1) {
- throw new FacesException(
- "Bean validation group not found " + group, e1);
- }
- }
- i++;
- }
+ private Class<?>[] getGroups(Set<String> profiles) {
+ Class<?>[] groups = null;
+ if (null != profiles) {
+ groups = new Class<?>[profiles.size()];
+ int i = 0;
+ for (String group : profiles) {
+ try {
+ groups[i] = Class.forName(group, false, Thread.currentThread().getContextClassLoader());
+ } catch (ClassNotFoundException e) {
+ try {
+ groups[i] = Class.forName(group);
+ } catch (ClassNotFoundException e1) {
+ throw new FacesException("Bean validation group not found " + group, e1);
+ }
+ }
+ i++;
+ }
- } else {
- groups = DEFAULT_PROFILE;
- }
- return groups;
- }
+ } else {
+ groups = DEFAULT_PROFILE;
+ }
+ return groups;
+ }
- private Collection<String> extractMessages(Set<ConstraintViolation<Object>> violations) {
- Collection<String> messages = null;
- if (null != violations && violations.size() > 0) {
- messages = new ArrayList<String>(violations.size());
- for (ConstraintViolation<? extends Object> constraintViolation : violations) {
- messages.add(constraintViolation.getMessage());
- }
+ private Collection<String> extractMessages(Set<ConstraintViolation<Object>> violations) {
+ Collection<String> messages = null;
+ if (null != violations && violations.size() > 0) {
+ messages = new ArrayList<String>(violations.size());
+ for (ConstraintViolation<? extends Object> constraintViolation : violations) {
+ messages.add(constraintViolation.getMessage());
+ }
- }
- return messages;
- }
+ }
+ return messages;
+ }
- protected Validator getValidator(FacesContext facesContext) {
- Validator beanValidator = validatorContext.getValidator();
- return beanValidator;
- }
+ protected Validator getValidator(FacesContext facesContext) {
+ Validator beanValidator = validatorContext.getValidator();
+ return beanValidator;
+ }
- private static class JsfMessageInterpolator implements MessageInterpolator {
+ private static class JsfMessageInterpolator implements MessageInterpolator {
- private MessageInterpolator delegate;
+ private MessageInterpolator delegate;
- public JsfMessageInterpolator(
- MessageInterpolator delegate) {
- this.delegate = delegate;
- }
+ public JsfMessageInterpolator(MessageInterpolator delegate) {
+ this.delegate = delegate;
+ }
- public String interpolate(String messageTemplate, Context context) {
+ public String interpolate(String messageTemplate, Context context) {
- Locale locale = ObjectValidator.calculateLocale(FacesContext.getCurrentInstance());
- if (null != locale) {
- return delegate.interpolate(messageTemplate, context,
- locale);
- } else {
- return delegate.interpolate(messageTemplate, context);
- }
- }
+ Locale locale = ObjectValidator.calculateLocale(FacesContext.getCurrentInstance());
+ if (null != locale) {
+ return delegate.interpolate(messageTemplate, context, locale);
+ } else {
+ return delegate.interpolate(messageTemplate, context);
+ }
+ }
- public String interpolate(String messageTemplate, Context context,
- Locale locale) {
- Locale faceslocale = ObjectValidator.calculateLocale(FacesContext.getCurrentInstance());
- if (null != faceslocale) {
- return delegate.interpolate(messageTemplate, context,
- faceslocale);
- } else {
- return delegate.interpolate(messageTemplate, context, locale);
- }
- }
+ public String interpolate(String messageTemplate, Context context, Locale locale) {
+ Locale faceslocale = ObjectValidator.calculateLocale(FacesContext.getCurrentInstance());
+ if (null != faceslocale) {
+ return delegate.interpolate(messageTemplate, context, faceslocale);
+ } else {
+ return delegate.interpolate(messageTemplate, context, locale);
+ }
+ }
- }
+ }
}
Copied: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ClonedObjectResolver.java (from rev 19430, branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/ClonedObjectResolver.java)
===================================================================
--- branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ClonedObjectResolver.java (rev 0)
+++ branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ClonedObjectResolver.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -0,0 +1,110 @@
+/**
+ *
+ */
+package org.richfaces.validator;
+
+import java.beans.FeatureDescriptor;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.el.ELContext;
+import javax.el.ELResolver;
+import javax.faces.context.FacesContext;
+
+
+
+/**
+ * @author asmirnov
+ *
+ */
+public class ClonedObjectResolver extends ELResolver {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ELResolver#getCommonPropertyType(javax.el.ELContext, java.lang.Object)
+ */
+ @Override
+ public Class<?> getCommonPropertyType(ELContext context, Object base) {
+ // Do nothing
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ELResolver#getFeatureDescriptors(javax.el.ELContext, java.lang.Object)
+ */
+ @Override
+ public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
+ // do nothing
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ELResolver#getType(javax.el.ELContext, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public Class<?> getType(ELContext context, Object base, Object property) {
+ Object cloned = resolveCloned(context, base, property);
+ if (null != cloned) {
+ context.setPropertyResolved(true);
+ return cloned.getClass();
+ }
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ELResolver#getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public Object getValue(ELContext context, Object base, Object property) {
+ Object cloned = resolveCloned(context, base, property);
+ if (null != cloned) {
+ context.setPropertyResolved(true);
+ }
+ return cloned;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ELResolver#isReadOnly(javax.el.ELContext, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public boolean isReadOnly(ELContext context, Object base, Object property) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ELResolver#setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void setValue(ELContext context, Object base, Object property, Object value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public static Object resolveCloned(ELContext context, Object base, Object property) {
+ if (null != base || null != property) {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
+ for (String key : requestMap.keySet()) {
+ if (null != key && key.startsWith(GraphValidatorState.STATE_ATTRIBUTE_PREFIX)) {
+ GraphValidatorState state = (GraphValidatorState) requestMap.get(key);
+ if (state.isSame(base, property)) {
+ return state.getCloned();
+ }
+ }
+ }
+ }
+ return null;
+ }
+}
Property changes on: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ClonedObjectResolver.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/FacesBeanValidator.java
===================================================================
--- branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/FacesBeanValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/FacesBeanValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -37,143 +37,142 @@
import javax.faces.validator.ValidatorException;
/**
- * Implementation of the JSF validator to use with Bean Validation / Hibernate
- * validator
+ * Implementation of the JSF validator to use with Bean Validation / Hibernate validator
*
* @author asmirnov
*
*/
public class FacesBeanValidator implements Serializable, Validator, GraphValidator {
- /**
+ public static final String BEAN_VALIDATOR_TYPE = "org.richfaces.BeanValidator";
+ /**
*
*/
- private static final long serialVersionUID = -264568176252121853L;
- public static final String BEAN_VALIDATOR_TYPE = "org.richfaces.BeanValidator";
+ private static final long serialVersionUID = -264568176252121853L;
+ private ValueExpression summaryExpression = null;
- private ValueExpression summaryExpression = null;
-
- private String summary = null;
-
- private ValueExpression profilesExpression = null;
+ private String summary = null;
- private Set<String> profiles = null;
- /**
- * @return the summary
- */
- public String getSummary() {
- String summaryString = null;
- if(null != summaryExpression){
- summaryString = (String) summaryExpression.getValue(FacesContext.getCurrentInstance().getELContext());
- }else {
- summaryString = this.summary;
- }
- return summaryString;
- }
-
- /**
- * @param summary the summary to set
- */
- public void setSummary(ValueExpression summary) {
- this.summaryExpression = summary;
- }
+ private ValueExpression profilesExpression = null;
-
- /**
- * @param summary the summary to set
- */
- public void setSummary(String summary) {
- this.summary = summary;
- }
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext,
- * javax.faces.component.UIComponent, java.lang.Object)
- */
- public void validate(FacesContext context, UIComponent component,
- Object convertedValue) throws ValidatorException {
- if (component instanceof EditableValueHolder) {
- // Validate input component
- EditableValueHolder input = (EditableValueHolder) component;
- try {
- ValueExpression valueExpression = component
- .getValueExpression("value");
- if (null != valueExpression) {
- Collection<String> messages = ObjectValidator.getInstance(context)
- .validate(context, valueExpression, convertedValue, getProfiles());
- if (null != messages) {
- input.setValid(false);
- Object label = getLabel(context, component);
- Locale locale = context.getViewRoot().getLocale();
- // send all validation messages.
- for (String msg : messages) {
- // https://jira.jboss.org/jira/browse/RF-7636 -
- // format values.
- msg = formatMessage(msg, locale, label,convertedValue); // create Summary message ?
- String summaryString = getSummary() != null ? getSummary()
- : msg;
- summaryString = formatMessage(summaryString, locale, label,convertedValue);
- context.addMessage(component.getClientId(context), new FacesMessage(
- FacesMessage.SEVERITY_ERROR, summaryString , msg));
- }
- }
- }
- } catch (ELException e) {
- throw new FacesException(e);
- }
- }
- }
+ private Set<String> profiles = null;
- static String formatMessage(String msg, Locale locale, Object... messageParams) {
- if (msg.contains("{")) {
- try {
- MessageFormat messageFormat = new MessageFormat(
- msg, locale);
- msg = messageFormat.format(messageParams);
- } catch (IllegalArgumentException e) {
- // Do nothing, use original string unchanged.
- }
- }
- return msg;
- }
+ /**
+ * @return the summary
+ */
+ public String getSummary() {
+ String summaryString = null;
+ if (null != summaryExpression) {
+ summaryString = (String) summaryExpression.getValue(FacesContext.getCurrentInstance().getELContext());
+ } else {
+ summaryString = this.summary;
+ }
+ return summaryString;
+ }
- static Object getLabel(FacesContext context, UIComponent component) {
- Object label = component.getAttributes().get("label");
- if(null == label || 0 == label.toString().length()){
- label = component.getClientId(context);
- }
- return label;
- }
+ /**
+ * @param summary
+ * the summary to set
+ */
+ public void setSummary(ValueExpression summary) {
+ this.summaryExpression = summary;
+ }
- public Collection<String> validateGraph(FacesContext context, UIComponent component,
- Object value, Set<String> profiles) throws ValidatorException {
- ObjectValidator beanValidator = ObjectValidator.getInstance(context);
- Collection<String> messages = beanValidator.validateGraph(context, value,profiles);
- return messages;
- }
+ /**
+ * @param summary
+ * the summary to set
+ */
+ public void setSummary(String summary) {
+ this.summary = summary;
+ }
- /**
- * @return the profiles
- */
- public Set<String> getProfiles() {
- Set<String> profiles;
- if(null != profilesExpression){
- profiles = (Set<String>) profilesExpression.getValue(FacesContext.getCurrentInstance().getELContext());
- }else {
- profiles = this.profiles;
- }
- return profiles;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext,
+ * javax.faces.component.UIComponent, java.lang.Object)
+ */
+ public void validate(FacesContext context, UIComponent component, Object convertedValue) throws ValidatorException {
+ if (component instanceof EditableValueHolder) {
+ // Validate input component
+ EditableValueHolder input = (EditableValueHolder) component;
+ try {
+ ValueExpression valueExpression = component.getValueExpression("value");
+ if (null != valueExpression) {
+ Collection<String> messages =
+ ObjectValidator.getInstance(context).validate(context, valueExpression, convertedValue,
+ getProfiles());
+ if (null != messages) {
+ input.setValid(false);
+ Object label = getLabel(context, component);
+ Locale locale = context.getViewRoot().getLocale();
+ // send all validation messages.
+ for (String msg : messages) {
+ // https://jira.jboss.org/jira/browse/RF-7636 -
+ // format values.
+ String formattedMessage = formatMessage(msg, locale, label, convertedValue); // create Summary message ?
+ String summaryString = getSummary() != null ? getSummary() : formattedMessage;
+ summaryString = formatMessage(summaryString, locale, label, convertedValue);
+ context.addMessage(component.getClientId(context), new FacesMessage(
+ FacesMessage.SEVERITY_ERROR, summaryString, formattedMessage));
+ }
+ }
+ }
+ } catch (ELException e) {
+ throw new FacesException(e);
+ }
+ }
+ }
- /**
- * @param profiles the profiles to set
- */
- public void setProfiles(Set<String> profiles) {
- this.profiles = profiles;
- }
-
- public void setProfiles(ValueExpression profilesExpression) {
- this.profilesExpression = profilesExpression;
- }
-}
+ static String formatMessage(String msg, Locale locale, Object... messageParams) {
+ if (msg.contains("{")) {
+ try {
+ MessageFormat messageFormat = new MessageFormat(msg, locale);
+ msg = messageFormat.format(messageParams);
+ } catch (IllegalArgumentException e) {
+ // Do nothing, use original string unchanged.
+ }
+ }
+ return msg;
+ }
+
+ static Object getLabel(FacesContext context, UIComponent component) {
+ Object label = component.getAttributes().get("label");
+ if (null == label || 0 == label.toString().length()) {
+ label = component.getClientId(context);
+ }
+ return label;
+ }
+
+ public Collection<String> validateGraph(FacesContext context, UIComponent component, Object value,
+ Set<String> profiles) throws ValidatorException {
+ ObjectValidator beanValidator = ObjectValidator.getInstance(context);
+ Collection<String> messages = beanValidator.validateGraph(context, value, profiles);
+ return messages;
+ }
+
+ /**
+ * @return the profiles
+ */
+ public Set<String> getProfiles() {
+ Set<String> profiles;
+ if (null != profilesExpression) {
+ profiles = (Set<String>) profilesExpression.getValue(FacesContext.getCurrentInstance().getELContext());
+ } else {
+ profiles = this.profiles;
+ }
+ return profiles;
+ }
+
+ /**
+ * @param profiles
+ * the profiles to set
+ */
+ public void setProfiles(Set<String> profiles) {
+ this.profiles = profiles;
+ }
+
+ public void setProfiles(ValueExpression profilesExpression) {
+ this.profilesExpression = profilesExpression;
+ }
+}
\ No newline at end of file
Modified: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/NullValidator.java
===================================================================
--- branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/NullValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/NullValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -10,28 +10,33 @@
/**
* @author asmirnov
- *
+ *
*/
public class NullValidator extends ObjectValidator {
- /* (non-Javadoc)
- * @see org.richfaces.validator.ObjectValidator#validate(java.lang.Object, java.lang.String, java.lang.Object, java.util.Locale)
- */
- @Override
- protected Collection<String> validate(FacesContext facesContext, Object base, String property,
- Object value, Set<String> profiles) {
- // do nothing.
- return null;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.richfaces.validator.ObjectValidator#validate(java.lang.Object, java.lang.String, java.lang.Object,
+ * java.util.Locale)
+ */
+ @Override
+ protected Collection<String> validate(FacesContext facesContext, Object base, String property, Object value,
+ Set<String> profiles) {
+ // do nothing.
+ return null;
+ }
- /* (non-Javadoc)
- * @see org.richfaces.validator.ObjectValidator#validateGraph(javax.faces.context.FacesContext, java.lang.Object, java.util.Set)
- */
- @Override
- public Collection<String> validateGraph(FacesContext context, Object value,
- Set<String> profiles) {
- // do nothing
- return null;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.richfaces.validator.ObjectValidator#validateGraph(javax.faces.context.FacesContext, java.lang.Object,
+ * java.util.Set)
+ */
+ @Override
+ public Collection<String> validateGraph(FacesContext context, Object value, Set<String> profiles) {
+ // do nothing
+ return null;
+ }
}
Copied: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ObjectValidator.java (from rev 19430, branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ObjectValidator.java)
===================================================================
--- branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ObjectValidator.java (rev 0)
+++ branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ObjectValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -0,0 +1,420 @@
+package org.richfaces.validator;
+
+import java.beans.FeatureDescriptor;
+import java.util.Collection;
+import java.util.EmptyStackException;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.Stack;
+
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.ELResolver;
+import javax.el.ValueExpression;
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.faces.context.FacesContext;
+
+import org.richfaces.application.ServiceTracker;
+import org.richfaces.el.ELContextWrapper;
+
+public abstract class ObjectValidator {
+
+ private static final String RESOURCE_BUNDLE_IS_NOT_REGISTERED_FOR_CURRENT_LOCALE =
+ "Resource bundle is not registered for current locale";
+
+ private static final String FACES_CONTEXT_IS_NULL = "Faces context is null";
+ private static final String INPUT_PARAMETERS_IS_NOT_CORRECT = "Input parameters is not correct.";
+ private static final String LOCALE_IS_NOT_SET = "Locale is not set";
+ private static final String VIEW_ROOT_IS_NOT_INITIALIZED = "ViewRoot is not initialized";
+
+ protected final ObjectValidator parent;
+
+ ObjectValidator() {
+ this.parent = null;
+ }
+
+ ObjectValidator(ObjectValidator parent) {
+ this.parent = parent;
+ }
+
+ /**
+ * Return BeanValidator object from a ServletContext attribute. Create new instance if none is defined.
+ *
+ * @param context
+ * @return
+ */
+ public static ObjectValidator getInstance(FacesContext context) {
+ return ServiceTracker.getService(context, ObjectValidator.class);
+ }
+
+ public abstract Collection<String> validateGraph(FacesContext context, Object value, Set<String> profiles);
+
+ /**
+ * Perform Validation for a new value.
+ *
+ * @param context
+ * current faces context.
+ * @param target
+ * {@link ValueExpression} for a value assignment.
+ * @param value
+ * new value for validation
+ * @param profiles
+ * TODO
+ * @return null if no validation errors. Array of the validation messages otherwise.
+ * @throws FacesException
+ * if locale or context not properly initialized
+ */
+ public Collection<String> validate(FacesContext context, ValueExpression target, Object value, Set<String> profiles) {
+ if (null == context) {
+ throw new FacesException(INPUT_PARAMETERS_IS_NOT_CORRECT);
+ }
+ Collection<String> validationMessages = null;
+ if (null != target) {
+ ELContext elContext = context.getELContext();
+ ValidationResolver validationResolver =
+ createValidationResolver(context, elContext.getELResolver(), profiles);
+ ELContextWrapper wrappedElContext = new ELContextWrapper(elContext, validationResolver);
+ try {
+ target.setValue(wrappedElContext, value);
+ } catch (ELException e) {
+ throw new FacesException(e);
+ }
+ if (!validationResolver.isValid()) {
+ validationMessages = validationResolver.getValidationMessages();
+ }
+ if (null != parent) {
+ Collection<String> parentMessages = parent.validate(context, target, value, profiles);
+ if (null != validationMessages) {
+ if (null != parentMessages) {
+ validationMessages.addAll(parentMessages);
+ }
+ } else {
+ validationMessages = parentMessages;
+ }
+ }
+
+ }
+ return validationMessages;
+ }
+
+ /**
+ * Validate bean property for a new value.
+ *
+ * @param facesContext
+ * TODO
+ * @param base
+ * - bean
+ * @param property
+ * - bean property name.
+ * @param value
+ * new value.
+ * @param profiles
+ * TODO
+ *
+ * @return null for a valid value, array of the validation messages othervise.
+ */
+ protected abstract Collection<String> validate(FacesContext facesContext, Object base, String property,
+ Object value, Set<String> profiles);
+
+ static Locale calculateLocale(FacesContext context) {
+ if (null == context.getViewRoot()) {
+ throw new FacesException(VIEW_ROOT_IS_NOT_INITIALIZED);
+ } else if (null == context.getViewRoot().getLocale()) {
+ throw new FacesException(LOCALE_IS_NOT_SET);
+ }
+ Locale locale = context.getViewRoot().getLocale();
+ return locale;
+ }
+
+ static ResourceBundle getResourceBundle(FacesContext facesContext, String name) {
+ ResourceBundle bundle = null;
+ if (null != facesContext) {
+ Application application = facesContext.getApplication();
+ try {
+ bundle = application.getResourceBundle(facesContext, name);
+
+ } catch (Exception e) {
+ // Let one more attempt to load resource
+ }
+ }
+ if (null == bundle) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ if (null == classLoader) {
+ classLoader = ObjectValidator.class.getClassLoader();
+ }
+ try {
+ bundle = ResourceBundle.getBundle(name, calculateLocale(facesContext), classLoader);
+
+ } catch (MissingResourceException e) {
+ // Do nothing, use default bundle.
+ }
+ }
+ return bundle;
+ }
+
+ protected ValidationResolver createValidationResolver(FacesContext context, ELResolver parent, Set<String> profiles) {
+ return new ValidationResolver(parent, context, profiles);
+ }
+
+ /**
+ * @author asmirnov
+ *
+ */
+ protected static class BasePropertyPair {
+ private final Object base;
+ private final Object property;
+
+ /**
+ * @param base
+ * @param property
+ */
+ public BasePropertyPair(Object base, Object property) {
+ this.base = base;
+ this.property = property;
+ }
+
+ /**
+ * @return the base
+ */
+ public Object getBase() {
+ return base;
+ }
+
+ /**
+ * @return the property
+ */
+ public Object getProperty() {
+ return property;
+ }
+
+ }
+
+ /**
+ * Class for identify validator instance by locale
+ *
+ * @author amarkhel
+ *
+ */
+ protected static class ValidatorKey {
+ private final Class<? extends Object> validatableClass;
+ private final Locale locale;
+
+ /**
+ * Constructor for ValidatorKey object
+ *
+ * @param validatableClass
+ * - class to validate
+ * @param locale
+ * - User locale to determine Resource bundle, used during validation process
+ */
+ public ValidatorKey(Class<? extends Object> validatableClass, Locale locale) {
+ this.validatableClass = validatableClass;
+ this.locale = locale;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((this.locale == null) ? 0 : this.locale.hashCode());
+ result = prime * result + ((this.validatableClass == null) ? 0 : this.validatableClass.hashCode());
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ ValidatorKey other = (ValidatorKey) obj;
+ if (this.locale == null) {
+ if (other.locale != null) {
+ return false;
+ }
+ } else if (!this.locale.equals(other.locale)) {
+ return false;
+ }
+ if (this.validatableClass == null) {
+ if (other.validatableClass != null) {
+ return false;
+ }
+ } else if (!this.validatableClass.equals(other.validatableClass)) {
+ return false;
+ }
+ return true;
+ }
+
+
+
+ }
+
+ /**
+ * Wrapper class for a {@link ELResolver}. For a setValue method, perform validation instead of real assignment.
+ *
+ * @author asmirnov
+ *
+ */
+ final class ValidationResolver extends ELResolver {
+
+ /**
+ * Original resolver.
+ */
+ private final ELResolver parent;
+
+ private boolean valid = true;
+
+ private Collection<String> validationMessages = null;
+
+ private Stack<BasePropertyPair> valuesStack;
+
+ private Set<String> profiles;
+
+ private FacesContext facesContext;
+
+ private boolean clonedObject = false;
+
+ /**
+ * @param parent
+ * @param context
+ */
+ public ValidationResolver(ELResolver parent, FacesContext context, Set<String> profiles) {
+ this.parent = parent;
+ this.valuesStack = new Stack<BasePropertyPair>();
+ this.profiles = profiles;
+ this.facesContext = context;
+ }
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ /**
+ * @param context
+ * @param base
+ * @return
+ * @see javax.el.ELResolver#getCommonPropertyType(javax.el.ELContext, java.lang.Object)
+ */
+ public Class<?> getCommonPropertyType(ELContext context, Object base) {
+ return parent.getCommonPropertyType(context, base);
+ }
+
+ /**
+ * @param context
+ * @param base
+ * @return
+ * @see javax.el.ELResolver#getFeatureDescriptors(javax.el.ELContext, java.lang.Object)
+ */
+ public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
+ return parent.getFeatureDescriptors(context, base);
+ }
+
+ /**
+ * @param context
+ * @param base
+ * @param property
+ * @return
+ * @see javax.el.ELResolver#getType(javax.el.ELContext, java.lang.Object, java.lang.Object)
+ */
+ public Class<?> getType(ELContext context, Object base, Object property) {
+ return parent.getType(context, base, property);
+ }
+
+ /**
+ * @param context
+ * @param base
+ * @param property
+ * @return
+ * @see javax.el.ELResolver#getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
+ */
+ public Object getValue(ELContext context, Object base, Object property) {
+ Object value = ClonedObjectResolver.resolveCloned(context, base, property);
+ if (null != value) {
+ this.clonedObject = true;
+ context.setPropertyResolved(true);
+ } else {
+ value = parent.getValue(context, base, property);
+ }
+ valuesStack.push(new BasePropertyPair(base, property));
+ return value;
+ }
+
+ /**
+ * @param context
+ * @param base
+ * @param property
+ * @return
+ * @see javax.el.ELResolver#isReadOnly(javax.el.ELContext, java.lang.Object, java.lang.Object)
+ */
+ public boolean isReadOnly(ELContext context, Object base, Object property) {
+ return parent.isReadOnly(context, base, property);
+ }
+
+ /**
+ * @param context
+ * @param base
+ * @param property
+ * @param value
+ * @see javax.el.ELResolver#setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
+ */
+ public void setValue(ELContext context, Object base, Object property, Object value) {
+ if (null != base && null != property) {
+ // TODO - detect value object from inderect references ( e.g. data table variables ).
+ if (this.clonedObject) {
+ parent.setValue(context, base, property, value);
+ }
+ context.setPropertyResolved(true);
+ // For Arrays, Collection or Map use parent base and property.
+ BasePropertyPair basePropertyPair = lookupBeanProperty(new BasePropertyPair(base, property));
+ base = basePropertyPair.getBase();
+ property = basePropertyPair.getProperty();
+ if (null != base && null != property) {
+ // https://jira.jboss.org/jira/browse/RF-4034
+ // apache el looses locale information during value
+ // resolution,
+ // so we use our own
+ validationMessages = validate(facesContext, base, property.toString(), value, profiles);
+ valid = null == validationMessages || 0 == validationMessages.size();
+
+ }
+ }
+ }
+
+ private BasePropertyPair lookupBeanProperty(BasePropertyPair pair) {
+ Object base = pair.getBase();
+ if (null != base && (base instanceof Collection || base instanceof Map || base.getClass().isArray())) {
+ try {
+ pair = lookupBeanProperty(valuesStack.pop());
+ } catch (EmptyStackException e) {
+ // Do nothing, this is a first item.
+ }
+ }
+ return pair;
+ }
+
+ /**
+ * @return the validationMessages
+ */
+ public Collection<String> getValidationMessages() {
+ return validationMessages;
+ }
+
+ }
+
+}
\ No newline at end of file
Property changes on: branches/RF-8742/ui/validator/impl/src/main/java/org/richfaces/validator/ObjectValidator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/ClonedObjectResolver.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/ClonedObjectResolver.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/ClonedObjectResolver.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -1,103 +0,0 @@
-/**
- *
- */
-package org.richfaces.component;
-
-import java.beans.FeatureDescriptor;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-
-import javax.el.ELContext;
-import javax.el.ELResolver;
-import javax.faces.context.FacesContext;
-
-import org.richfaces.component.UIGraphValidator.GraphValidatorState;
-
-/**
- * @author asmirnov
- *
- */
-public class ClonedObjectResolver extends ELResolver {
-
- /* (non-Javadoc)
- * @see javax.el.ELResolver#getCommonPropertyType(javax.el.ELContext, java.lang.Object)
- */
- @Override
- public Class<?> getCommonPropertyType(ELContext context, Object base) {
- // Do nothing
- return null;
- }
-
- /* (non-Javadoc)
- * @see javax.el.ELResolver#getFeatureDescriptors(javax.el.ELContext, java.lang.Object)
- */
- @Override
- public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context,
- Object base) {
- // do nothing
- return null;
- }
-
- /* (non-Javadoc)
- * @see javax.el.ELResolver#getType(javax.el.ELContext, java.lang.Object, java.lang.Object)
- */
- @Override
- public Class<?> getType(ELContext context, Object base, Object property) {
- Object cloned = resolveCloned(context, base, property);
- if(null != cloned){
- context.setPropertyResolved(true);
- return cloned.getClass();
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see javax.el.ELResolver#getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
- */
- @Override
- public Object getValue(ELContext context, Object base, Object property) {
- Object cloned = resolveCloned(context, base, property);
- if(null != cloned){
- context.setPropertyResolved(true);
- }
- return cloned;
- }
-
-
- /* (non-Javadoc)
- * @see javax.el.ELResolver#isReadOnly(javax.el.ELContext, java.lang.Object, java.lang.Object)
- */
- @Override
- public boolean isReadOnly(ELContext context, Object base, Object property) {
- // TODO Auto-generated method stub
- return false;
- }
-
- /* (non-Javadoc)
- * @see javax.el.ELResolver#setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
- */
- @Override
- public void setValue(ELContext context, Object base, Object property,
- Object value) {
- // TODO Auto-generated method stub
-
- }
-
- public static Object resolveCloned(ELContext context, Object base, Object property){
- if(null != base || null != property){
- FacesContext facesContext = FacesContext.getCurrentInstance();
- Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
- for (String key : requestMap.keySet()) {
- if(null != key && key.startsWith(UIGraphValidator.STATE_ATTRIBUTE_PREFIX)){
- UIGraphValidator.GraphValidatorState state = (GraphValidatorState) requestMap.get(key);
- if(state.isSame(base, property)){
- return state.getCloned();
- }
- }
- }
- }
- return null;
- }
-}
Modified: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIAjaxValidator.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIAjaxValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIAjaxValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -48,161 +48,158 @@
* JSF component class
*
*/
-public abstract class UIAjaxValidator extends UIComponentBase implements
- AjaxComponent, AjaxSupport, AjaxContainer {
+public abstract class UIAjaxValidator extends UIComponentBase implements AjaxComponent, AjaxSupport, AjaxContainer {
- public static final String COMPONENT_TYPE = "org.richfaces.AjaxValidator";
+ public static final String COMPONENT_TYPE = "org.richfaces.AjaxValidator";
- public static final String COMPONENT_FAMILY = "org.richfaces.AjaxValidator";
+ public static final String COMPONENT_FAMILY = "org.richfaces.AjaxValidator";
- public static final String BEAN_VALIDATOR_FACET = "org.richfaces.validator.";
+ public static final String BEAN_VALIDATOR_FACET = "org.richfaces.validator.";
- @Override
- public void setParent(UIComponent parent) {
- super.setParent(parent);
+ @Override
+ public void setParent(UIComponent parent) {
+ super.setParent(parent);
- if (null != parent && parent instanceof EditableValueHolder) {
- setParentProperties(parent);
- }
- }
+ if (null != parent && parent instanceof EditableValueHolder) {
+ setParentProperties(parent);
+ }
+ }
- /**
- * @param parent
- * @throws FacesException
- */
- public void setParentProperties(UIComponent parent) throws FacesException {
- if (!(parent instanceof EditableValueHolder)) {
- throw new FacesException(
- "Parent component must be an EditableValueHolder");
- }
+ /**
+ * @param parent
+ * @throws FacesException
+ */
+ public void setParentProperties(UIComponent parent) throws FacesException {
+ if (!(parent instanceof EditableValueHolder)) {
+ throw new FacesException("Parent component must be an EditableValueHolder");
+ }
-// if (null != getEvent()) {
-// ValueExpression binding = new EventValueExpression(this);
-// parent.setValueExpression(getEvent(), binding);
-// }
- }
+ // if (null != getEvent()) {
+ // ValueExpression binding = new EventValueExpression(this);
+ // parent.setValueExpression(getEvent(), binding);
+ // }
+ }
- @Override
- public void broadcast(FacesEvent event) throws AbortProcessingException {
- super.broadcast(event);
- if (event.getComponent() == this) {
- FacesContext context = getFacesContext();
- if (event instanceof ValidatorEvent) {
- // ByPass UpdateModelValue
- context.renderResponse();
- }
- }
- }
+ @Override
+ public void broadcast(FacesEvent event) throws AbortProcessingException {
+ super.broadcast(event);
+ if (event.getComponent() == this) {
+ FacesContext context = getFacesContext();
+ if (event instanceof ValidatorEvent) {
+ // ByPass UpdateModelValue
+ context.renderResponse();
+ }
+ }
+ }
- @Override
- public void queueEvent(FacesEvent event) {
- if (event instanceof ValidatorEvent && event.getComponent() == this) {
- UIComponent parent = getParent();
- if (parent instanceof UIInput) {
- UIInput input = (UIInput) parent;
- if (input.isImmediate()) {
- event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else {
- event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
- }
- }
- }
- super.queueEvent(event);
- }
+ @Override
+ public void queueEvent(FacesEvent event) {
+ if (event instanceof ValidatorEvent && event.getComponent() == this) {
+ UIComponent parent = getParent();
+ if (parent instanceof UIInput) {
+ UIInput input = (UIInput) parent;
+ if (input.isImmediate()) {
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ } else {
+ event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
+ }
+ }
+ }
+ super.queueEvent(event);
+ }
- public String getEventString() {
- StringBuffer buildOnEvent = new StringBuffer();
- String onsubmit = getOnsubmit();
- // Insert script to call before submit ajax request.
- if (null != onsubmit) {
- buildOnEvent.append(onsubmit).append(";");
- }
-// buildOnEvent.append(AjaxRendererUtils.buildOnEvent(this,
-// getFacesContext(), getEvent(), true));
- String script = buildOnEvent.toString();
- return script;
- }
+ public String getEventString() {
+ StringBuffer buildOnEvent = new StringBuffer();
+ String onsubmit = getOnsubmit();
+ // Insert script to call before submit ajax request.
+ if (null != onsubmit) {
+ buildOnEvent.append(onsubmit).append(";");
+ }
+ // buildOnEvent.append(AjaxRendererUtils.buildOnEvent(this,
+ // getFacesContext(), getEvent(), true));
+ String script = buildOnEvent.toString();
+ return script;
+ }
- public UIComponent getSingleComponent() {
- return getParent();
- }
+ public UIComponent getSingleComponent() {
+ return getParent();
+ }
- public void encodeAjax(FacesContext context) throws IOException {
- AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
- Set<String> renderedAreas = ajaxContext.getAjaxRenderedAreas();
- for (UIComponent message : getMessages(context)) {
- if (message.isRendered()) {
- message.encodeAll(context);
- renderedAreas.add(message.getClientId(context));
- }
- }
- // Write information about encoded areas after submission.
-// AjaxRendererUtils.encodeAreas(context, this);
- }
+ public void encodeAjax(FacesContext context) throws IOException {
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
+ Set<String> renderedAreas = ajaxContext.getAjaxRenderedAreas();
+ for (UIComponent message : getMessages(context)) {
+ if (message.isRendered()) {
+ message.encodeAll(context);
+ renderedAreas.add(message.getClientId(context));
+ }
+ }
+ // Write information about encoded areas after submission.
+ // AjaxRendererUtils.encodeAreas(context, this);
+ }
- public Set<UIComponent> getMessages(FacesContext context) {
- Set<UIComponent> messages = new HashSet<UIComponent>();
- findMessages(this.getParent(), this, messages,false);
- findRichMessages(context, context.getViewRoot(), messages);
- return messages;
- }
+ public Set<UIComponent> getMessages(FacesContext context) {
+ Set<UIComponent> messages = new HashSet<UIComponent>();
+ findMessages(this.getParent(), this, messages, false);
+ findRichMessages(context, context.getViewRoot(), messages);
+ return messages;
+ }
-
- /**
- * Find all instances of the {@link UIRichMessages} and update list of the rendered messages.
- * @param context
- * @param component
- * @param messages
- */
- protected void findRichMessages(FacesContext context,UIComponent component, Set<UIComponent> messages) {
- Iterator<UIComponent> facetsAndChildren = component.getFacetsAndChildren();
- while (facetsAndChildren.hasNext()) {
- UIComponent child = (UIComponent) facetsAndChildren.next();
- if (child instanceof UIRichMessages) {
- UIRichMessages richMessage = (UIRichMessages) child;
- if(null == richMessage.getFor()){
- richMessage.updateMessages(context, this.getParent().getClientId(context));
- messages.add(richMessage);
- }
- } else {
- findRichMessages(context, child, messages);
- }
- }
- }
+ /**
+ * Find all instances of the {@link UIRichMessages} and update list of the rendered messages.
+ *
+ * @param context
+ * @param component
+ * @param messages
+ */
+ protected void findRichMessages(FacesContext context, UIComponent component, Set<UIComponent> messages) {
+ Iterator<UIComponent> facetsAndChildren = component.getFacetsAndChildren();
+ while (facetsAndChildren.hasNext()) {
+ UIComponent child = (UIComponent) facetsAndChildren.next();
+ if (child instanceof UIRichMessages) {
+ UIRichMessages richMessage = (UIRichMessages) child;
+ if (null == richMessage.getFor()) {
+ richMessage.updateMessages(context, this.getParent().getClientId(context));
+ messages.add(richMessage);
+ }
+ } else {
+ findRichMessages(context, child, messages);
+ }
+ }
+ }
- /**
- * Recursive search messages for the parent component.
- * @param parent
- * @param component
- * @param messages
- * @return
- */
- protected boolean findMessages(UIComponent parent, UIComponent component,
- Set<UIComponent> messages,boolean found) {
- Iterator<UIComponent> facetsAndChildren = parent.getFacetsAndChildren();
- while (facetsAndChildren.hasNext()) {
- UIComponent child = (UIComponent) facetsAndChildren.next();
- if (child != component) {
- if (child instanceof UIMessage || child instanceof UIMessages) {
- UIComponent message = (UIComponent) child;
- Object targetId = message.getAttributes().get("for");
- if (null != targetId
- && targetId.equals(getParent().getId())) {
- messages.add(message);
- found = true;
- }
- } else {
- found |= findMessages(child, null, messages,found);
- }
- }
- }
- if(!(found && parent instanceof NamingContainer) && component != null){
- UIComponent newParent = parent.getParent();
- if(null != newParent){
- found = findMessages(newParent, parent, messages,found);
- }
- }
- return found;
- }
+ /**
+ * Recursive search messages for the parent component.
+ *
+ * @param parent
+ * @param component
+ * @param messages
+ * @return
+ */
+ protected boolean findMessages(UIComponent parent, UIComponent component, Set<UIComponent> messages, boolean found) {
+ Iterator<UIComponent> facetsAndChildren = parent.getFacetsAndChildren();
+ while (facetsAndChildren.hasNext()) {
+ UIComponent child = (UIComponent) facetsAndChildren.next();
+ if (child != component) {
+ if (child instanceof UIMessage || child instanceof UIMessages) {
+ UIComponent message = (UIComponent) child;
+ Object targetId = message.getAttributes().get("for");
+ if (null != targetId && targetId.equals(getParent().getId())) {
+ messages.add(message);
+ found = true;
+ }
+ } else {
+ found |= findMessages(child, null, messages, found);
+ }
+ }
+ }
+ if (!(found && parent instanceof NamingContainer) && component != null) {
+ UIComponent newParent = parent.getParent();
+ if (null != newParent) {
+ found = findMessages(newParent, parent, messages, found);
+ }
+ }
+ return found;
+ }
}
Modified: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIBeanValidator.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIBeanValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIBeanValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -5,19 +5,21 @@
/**
* Stage class to keep backward compatibility.
+ *
* @author asmirnov
* @deprecated That class has been renamed, Use {@link UIAjaxValidator} instead
- *
+ *
*/
public abstract class UIBeanValidator extends UIAjaxValidator {
- /* (non-Javadoc)
- * @see javax.faces.component.UIComponent#getFamily()
- */
- @Override
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.component.UIComponent#getFamily()
+ */
+ @Override
+ public String getFamily() {
+ return COMPONENT_FAMILY;
+ }
-
}
Modified: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIGraphValidator.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIGraphValidator.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIGraphValidator.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -33,7 +33,6 @@
import javax.faces.FacesException;
import javax.faces.application.FacesMessage;
import javax.faces.component.EditableValueHolder;
-import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;
@@ -43,316 +42,240 @@
import org.richfaces.el.util.CapturingELResolver;
import org.richfaces.validator.FacesBeanValidator;
import org.richfaces.validator.GraphValidator;
+import org.richfaces.validator.GraphValidatorState;
-
/**
* JSF component class
*
*/
public abstract class UIGraphValidator extends UIComponentBase {
- public static final String COMPONENT_TYPE = "org.richfaces.GraphValidator";
+ public static final String COMPONENT_TYPE = "org.richfaces.GraphValidator";
- public static final String COMPONENT_FAMILY = "org.richfaces.GraphValidator";
+ public static final String COMPONENT_FAMILY = "org.richfaces.GraphValidator";
- public static final String STATE_ATTRIBUTE_PREFIX = COMPONENT_TYPE+NamingContainer.SEPARATOR_CHAR;
-
-
-
+ /**
+ * Get object for validation
+ *
+ * @return
+ */
+ public abstract Object getValue();
- /**
- * Get object for validation
- *
- * @return
- */
- public abstract Object getValue();
+ /**
+ * Set object for validation
+ *
+ * @param newvalue
+ */
+ public abstract void setValue(Object newvalue);
- /**
- * Set object for validation
- *
- * @param newvalue
- */
- public abstract void setValue(Object newvalue);
-
- /**
- * Get object for validation
- *
- * @return
- */
- public abstract String getSummary();
+ /**
+ * Get object for validation
+ *
+ * @return
+ */
+ public abstract String getSummary();
- /**
- * Set object for validation
- *
- * @param newvalue
- */
- public abstract void setSummary(String newvalue);
+ /**
+ * Set object for validation
+ *
+ * @param newvalue
+ */
+ public abstract void setSummary(String newvalue);
- /**
- * Get set of profiles for validation
- *
- * @return
- */
- public abstract Set<String> getProfiles();
+ /**
+ * Get set of profiles for validation
+ *
+ * @return
+ */
+ public abstract Set<String> getProfiles();
- /**
- * Set set of profiles for validation
- *
- * @param newvalue
- */
- public abstract void setProfiles(Object newvalue);
-
- /**
- * Get graph validator Id.
- * @return
- */
- public abstract String getType();
+ /**
+ * Set set of profiles for validation
+ *
+ * @param newvalue
+ */
+ public abstract void setProfiles(Object newvalue);
- /**
- * Set graph validator Id.
- * @param newvalue
- */
- public abstract void setType(String newvalue);
+ /**
+ * Get graph validator Id.
+ *
+ * @return
+ */
+ public abstract String getType();
+ /**
+ * Set graph validator Id.
+ *
+ * @param newvalue
+ */
+ public abstract void setType(String newvalue);
- @Override
- public void processDecodes(FacesContext context) {
- GraphValidatorState validatorState = null;
- // Detect value EL-expression.
- ValueExpression valueExpression = getValueExpression("value");
- if (null != valueExpression) {
+ @Override
+ public void processDecodes(FacesContext context) {
+ GraphValidatorState validatorState = null;
+ // Detect value EL-expression.
+ ValueExpression valueExpression = getValueExpression("value");
+ if (null != valueExpression) {
-
- Object value = getValue();
- if (null !=value && value instanceof Cloneable) {
- try {
- ELContext initialELContext = context.getELContext();
+ Object value = getValue();
+ if (null != value && value instanceof Cloneable) {
+ try {
+ ELContext initialELContext = context.getELContext();
- CapturingELResolver capturingELResolver = new CapturingELResolver(initialELContext.getELResolver());
- Class<?> type = valueExpression.getType(new ELContextWrapper(initialELContext, capturingELResolver));
- if(null != type) {
- validatorState = new GraphValidatorState();
- Method method = getCloneMethod(value.getClass());
- if(!Modifier.isPublic(method.getModifiers())){
- // Method Object#clone() is protected by default. Make it public
- // unless developer did it.
- method.setAccessible(true);
- }
- validatorState.cloned = method.invoke(value);
- validatorState.base = capturingELResolver.getBase();
- validatorState.property = capturingELResolver.getProperty();
- validatorState.active = true;
- context.getExternalContext().getRequestMap().put(getStateId(context), validatorState);
- }
- } catch (NoSuchMethodException e) {
- // do nothing, that is really not possible.
- } catch (InvocationTargetException e) {
- throw new FacesException(e);
- } catch (IllegalArgumentException e) {
- // do nothing, that is really not possible.
- } catch (IllegalAccessException e) {
- throw new FacesException(e);
- }
- }
- }
- super.processDecodes(context);
- if(null != validatorState){
- validatorState.active = false;
- }
- }
+ CapturingELResolver capturingELResolver = new CapturingELResolver(initialELContext.getELResolver());
+ Class<?> type =
+ valueExpression.getType(new ELContextWrapper(initialELContext, capturingELResolver));
+ if (null != type) {
+ validatorState = new GraphValidatorState();
+ Method method = getCloneMethod(value.getClass());
+ if (!Modifier.isPublic(method.getModifiers())) {
+ // Method Object#clone() is protected by default. Make it public
+ // unless developer did it.
+ method.setAccessible(true);
+ }
+ validatorState.setCloned(method.invoke(value));
+ validatorState.setBase(capturingELResolver.getBase());
+ validatorState.setProperty(capturingELResolver.getProperty());
+ validatorState.setActive(true);
+ context.getExternalContext().getRequestMap().put(getStateId(context), validatorState);
+ }
+ } catch (NoSuchMethodException e) {
+ // do nothing, that is really not possible.
+ } catch (InvocationTargetException e) {
+ throw new FacesException(e);
+ } catch (IllegalArgumentException e) {
+ // do nothing, that is really not possible.
+ } catch (IllegalAccessException e) {
+ throw new FacesException(e);
+ }
+ }
+ }
+ super.processDecodes(context);
+ if (null != validatorState) {
+ validatorState.setActive(false);
+ }
+ }
- private Method getCloneMethod(Class<?> clazz) throws NoSuchMethodException {
- try {
- return clazz.getDeclaredMethod("clone");
- } catch( NoSuchMethodException e){
- if(null != clazz.getSuperclass()){
- return getCloneMethod(clazz.getSuperclass());
- } else {
- throw e;
- }
- }
- }
+ private Method getCloneMethod(Class<?> clazz) throws NoSuchMethodException {
+ try {
+ return clazz.getDeclaredMethod("clone");
+ } catch (NoSuchMethodException e) {
+ if (null != clazz.getSuperclass()) {
+ return getCloneMethod(clazz.getSuperclass());
+ } else {
+ throw e;
+ }
+ }
+ }
- protected String getStateId(FacesContext context) {
- String stateId = STATE_ATTRIBUTE_PREFIX+getClientId(context);
- return stateId;
- }
-
- protected GraphValidatorState getValidatorState(FacesContext context){
- return (GraphValidatorState) context.getExternalContext().getRequestMap().get(getStateId(context));
- }
+ protected String getStateId(FacesContext context) {
+ String stateId = GraphValidatorState.STATE_ATTRIBUTE_PREFIX + getClientId(context);
+ return stateId;
+ }
- @Override
- public void processValidators(FacesContext context) {
- GraphValidatorState validatorState = getValidatorState(context);
- if(null != validatorState){
- validatorState.active = true;
- }
- super.processValidators(context);
- if(null != validatorState){
- validatorState.active = false;
- validateObject(context, validatorState.cloned);
- context.getExternalContext().getRequestMap().remove(getStateId(context));
- }
- }
-
- @Override
- public void processUpdates(FacesContext context) {
- super.processUpdates(context);
- Object value = getValue();
- validateObject(context, value);
- }
+ protected GraphValidatorState getValidatorState(FacesContext context) {
+ return (GraphValidatorState) context.getExternalContext().getRequestMap().get(getStateId(context));
+ }
- private void validateObject(FacesContext context, Object value) {
- if (null != value) {
- Validator validator = context.getApplication().createValidator(getType());
- if (validator instanceof GraphValidator) {
- GraphValidator graphValidator = (GraphValidator) validator;
- Collection<String> messages = graphValidator.validateGraph(context,this, value,getProfiles());
- if (null != messages) {
- context.renderResponse();
- // send all validation messages.
- String clientId = getClientId(context);
- for (String msg : messages) {
- // TODO - create Summary message ?
- String summary = null != getSummary() ? getSummary() + msg : msg;
- context.addMessage(clientId, new FacesMessage(
- FacesMessage.SEVERITY_ERROR, summary, msg));
- }
- }
-
- } else {
- throw new FacesException("Validator "+FacesBeanValidator.BEAN_VALIDATOR_TYPE+" does not implement GraphValidator");
- }
+ @Override
+ public void processValidators(FacesContext context) {
+ GraphValidatorState validatorState = getValidatorState(context);
+ if (null != validatorState) {
+ validatorState.setActive(true);
+ }
+ super.processValidators(context);
+ if (null != validatorState) {
+ validatorState.setActive(false);
+ validateObject(context, validatorState.getCloned());
+ context.getExternalContext().getRequestMap().remove(getStateId(context));
+ }
+ }
- }
- }
-
- @Override
- public void encodeBegin(FacesContext context) throws IOException {
- super.encodeBegin(context);
- FacesBeanValidator validator = (FacesBeanValidator)context.getApplication().createValidator(getType());
- validator.setSummary(getSummary());
- ValueExpression expression = getValueExpression("profiles");
- if(null != expression){
- validator.setProfiles(expression);
- } else {
- validator.setProfiles(getProfiles());
- }
- setupValidators(this,validator);
- }
-
- @Override
- public void encodeChildren(FacesContext context) throws IOException {
- if(isRendered()){
- for (UIComponent child : getChildren()) {
- if(child.isRendered()){
- child.encodeAll(context);
- }
- }
- }
- }
-
- private void setupValidators(UIComponent component,
- Validator validator) {
- Iterator<UIComponent> facetsAndChildren = component.getFacetsAndChildren();
- while (facetsAndChildren.hasNext()) {
- UIComponent child = facetsAndChildren.next();
- if (child instanceof EditableValueHolder) {
- EditableValueHolder input = (EditableValueHolder) child;
- setupValidator(input,validator);
- }
- setupValidators(child, validator);
- }
- }
+ @Override
+ public void processUpdates(FacesContext context) {
+ super.processUpdates(context);
+ Object value = getValue();
+ validateObject(context, value);
+ }
- /**
- * @param input
- */
- private void setupValidator(EditableValueHolder input,Validator validator) {
- Validator[] validators = input.getValidators();
- for (int i = 0; i < validators.length; i++) {
- if(validators[i] instanceof FacesBeanValidator){
- return;
- }
- }
- input.addValidator(validator);
- }
+ private void validateObject(FacesContext context, Object value) {
+ if (null != value) {
+ Validator validator = context.getApplication().createValidator(getType());
+ if (validator instanceof GraphValidator) {
+ GraphValidator graphValidator = (GraphValidator) validator;
+ Collection<String> messages = graphValidator.validateGraph(context, this, value, getProfiles());
+ if (null != messages) {
+ context.renderResponse();
+ // send all validation messages.
+ String clientId = getClientId(context);
+ for (String msg : messages) {
+ // TODO - create Summary message ?
+ String summary = null != getSummary() ? getSummary() + msg : msg;
+ context.addMessage(clientId, new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, msg));
+ }
+ }
- @Override
- public boolean getRendersChildren() {
- return true;
- }
-
- public static final class GraphValidatorState {
- private boolean active = false;
- private Object cloned;
- private Object base;
- private Object property;
- /**
- * @return the active
- */
- public boolean isActive() {
- return active;
- }
- /**
- * @param active the active to set
- */
- public void setActive(boolean active) {
- this.active = active;
- }
- /**
- * @return the cloned
- */
- public Object getCloned() {
- return cloned;
- }
- /**
- * @param cloned the cloned to set
- */
- public void setCloned(Object cloned) {
- this.cloned = cloned;
- }
- /**
- * @return the base
- */
- public Object getBase() {
- return base;
- }
- /**
- * @param base the base to set
- */
- public void setBase(Object base) {
- this.base = base;
- }
- /**
- * @return the property
- */
- public Object getProperty() {
- return property;
- }
- /**
- * @param property the property to set
- */
- public void setProperty(Object property) {
- this.property = property;
- }
-
- public boolean isSameBase(Object base){
- return (null == base && null == this.base)||(base == this.base);
- }
-
- public boolean isSameProperty(Object property){
- if(null == this.property){
- return null == property;
- } else {
- return this.property.equals(property);
- }
- }
-
- public boolean isSame(Object base, Object property){
- return isSameBase(base)&& isSameProperty(property)&& active;
- }
- }
+ } else {
+ throw new FacesException("Validator " + FacesBeanValidator.BEAN_VALIDATOR_TYPE
+ + " does not implement GraphValidator");
+ }
+ }
+ }
+
+ @Override
+ public void encodeBegin(FacesContext context) throws IOException {
+ super.encodeBegin(context);
+ FacesBeanValidator validator = (FacesBeanValidator) context.getApplication().createValidator(getType());
+ validator.setSummary(getSummary());
+ ValueExpression expression = getValueExpression("profiles");
+ if (null != expression) {
+ validator.setProfiles(expression);
+ } else {
+ validator.setProfiles(getProfiles());
+ }
+ setupValidators(this, validator);
+ }
+
+ @Override
+ public void encodeChildren(FacesContext context) throws IOException {
+ if (isRendered()) {
+ for (UIComponent child : getChildren()) {
+ if (child.isRendered()) {
+ child.encodeAll(context);
+ }
+ }
+ }
+ }
+
+ private void setupValidators(UIComponent component, Validator validator) {
+ Iterator<UIComponent> facetsAndChildren = component.getFacetsAndChildren();
+ while (facetsAndChildren.hasNext()) {
+ UIComponent child = facetsAndChildren.next();
+ if (child instanceof EditableValueHolder) {
+ EditableValueHolder input = (EditableValueHolder) child;
+ setupValidator(input, validator);
+ }
+ setupValidators(child, validator);
+ }
+ }
+
+ /**
+ * @param input
+ */
+ private void setupValidator(EditableValueHolder input, Validator validator) {
+ Validator[] validators = input.getValidators();
+ for (int i = 0; i < validators.length; i++) {
+ if (validators[i] instanceof FacesBeanValidator) {
+ return;
+ }
+ }
+ input.addValidator(validator);
+ }
+
+ @Override
+ public boolean getRendersChildren() {
+ return true;
+ }
+
}
Modified: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIRichMessages.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIRichMessages.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIRichMessages.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -27,15 +27,17 @@
import javax.faces.context.FacesContext;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public class UIRichMessages extends UIMessages {
public void updateMessages(FacesContext context, String clientId) {
// TODO Auto-generated method stub
-
+
}
}
Modified: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/behavior/ClientValidatorBehavior.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/behavior/ClientValidatorBehavior.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/behavior/ClientValidatorBehavior.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -22,11 +22,8 @@
*/
package org.richfaces.component.behavior;
-import java.util.Collection;
-
import javax.faces.FacesException;
import javax.faces.component.EditableValueHolder;
-import javax.faces.component.UIMessage;
import javax.faces.component.behavior.ClientBehaviorBase;
import javax.faces.component.behavior.ClientBehaviorContext;
Modified: branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -1,26 +1,19 @@
-
package org.richfaces.renderkit.html;
-
//
// Imports
//
import javax.faces.render.ClientBehaviorRenderer;
-
-
/**
* Renderer for component class org.richfaces.renderkit.html.AjaxValidatorRenderer
*/
public class ClientValidatorRenderer extends ClientBehaviorRenderer {
-
- public static final String RENDERER_TYPE = "org.richfaces.ClientValidatorRenderer";
-
- public ClientValidatorRenderer () {
- super();
- }
+ public static final String RENDERER_TYPE = "org.richfaces.ClientValidatorRenderer";
-
+ public ClientValidatorRenderer() {
+ super();
+ }
}
Modified: branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/component/behavior/ClientValidatorBehaviorTest.java
===================================================================
--- branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/component/behavior/ClientValidatorBehaviorTest.java 2010-10-05 00:00:43 UTC (rev 19441)
+++ branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/component/behavior/ClientValidatorBehaviorTest.java 2010-10-05 00:23:10 UTC (rev 19442)
@@ -7,7 +7,6 @@
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
-import javax.faces.component.UIForm;
import javax.faces.component.UIInput;
import javax.faces.component.UIOutput;
import javax.faces.component.UIViewRoot;
@@ -16,16 +15,15 @@
import javax.faces.convert.Converter;
import org.jboss.test.faces.mock.Environment;
+import org.jboss.test.faces.mock.Environment.Feature;
import org.jboss.test.faces.mock.Mock;
import org.jboss.test.faces.mock.MockController;
import org.jboss.test.faces.mock.MockFacesEnvironment;
import org.jboss.test.faces.mock.MockTestRunner;
import org.jboss.test.faces.mock.Stub;
-import org.jboss.test.faces.mock.Environment.Feature;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.richfaces.component.behavior.ClientValidatorBehavior;
import org.richfaces.component.mock.MockUIForm;
import org.richfaces.component.mock.MockUIMessage;
14 years, 3 months
JBoss Rich Faces SVN: r19441 - trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/progressBar.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-10-04 20:00:43 -0400 (Mon, 04 Oct 2010)
New Revision: 19441
Modified:
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/progressBar/ProgressBarBean.java
Log:
ProgressBarBean.java made Serializable
Modified: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/progressBar/ProgressBarBean.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/progressBar/ProgressBarBean.java 2010-10-04 23:52:08 UTC (rev 19440)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/progressBar/ProgressBarBean.java 2010-10-05 00:00:43 UTC (rev 19441)
@@ -3,6 +3,7 @@
*/
package org.richfaces.demo.progressBar;
+import java.io.Serializable;
import java.util.Date;
import javax.faces.bean.ManagedBean;
@@ -14,8 +15,10 @@
*/
@ManagedBean
@ViewScoped
-public class ProgressBarBean {
+public class ProgressBarBean implements Serializable {
+ private static final long serialVersionUID = -314414475508376585L;
+
private boolean buttonRendered = true;
private boolean enabled=false;
private Long startTime;
14 years, 3 months
JBoss Rich Faces SVN: r19440 - in trunk: core/api/src/main/java/org/richfaces/resource and 5 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-10-04 19:52:08 -0400 (Mon, 04 Oct 2010)
New Revision: 19440
Added:
trunk/core/api/src/main/java/org/richfaces/renderkit/util/ColorUtils.java
trunk/core/api/src/main/java/org/richfaces/resource/Java2DAnimatedUserResource.java
trunk/core/impl/src/main/java/org/richfaces/resource/Java2DAnimatedUserResourceWrapperImpl.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/ProgressBarAnimatedBackgroundImage.java
Modified:
trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java
trunk/core/impl/src/main/java/org/richfaces/resource/Java2DUserResourceWrapperImpl.java
trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java
trunk/ui/output/ui/pom.xml
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/progressBar.ecss
trunk/ui/output/ui/src/main/resources/META-INF/richfaces/resource-mappings.properties
Log:
https://jira.jboss.org/browse/RF-9413
Added: trunk/core/api/src/main/java/org/richfaces/renderkit/util/ColorUtils.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/renderkit/util/ColorUtils.java (rev 0)
+++ trunk/core/api/src/main/java/org/richfaces/renderkit/util/ColorUtils.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -0,0 +1,235 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * 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.renderkit.util;
+
+import java.awt.Color;
+
+/**
+ * Utility methods that are useful for color processing.
+ *
+ * @author carcasser
+ */
+public final class ColorUtils {
+
+ private ColorUtils() {
+ }
+
+ /**
+ * Converts the components of a color, as specified by the default RGB
+ * model, to an equivalent set of values for hue, saturation, and lightness
+ * that are the three components of the HSL model.
+ *
+ * @param r
+ * the red component of the color
+ * @param g
+ * the green component of the color
+ * @param b
+ * the blue component of the color
+ * @return an array of three elements containing the hue, saturation, and
+ * lightness (in that order), of the color with the indicated red,
+ * green, and blue components.
+ */
+ public static float[] convertRGBtoHSL(int r, int g, int b) {
+ float varR = (r / 255f);
+ float varG = (g / 255f);
+ float varB = (b / 255f);
+
+ float varMin = Math.min(varR, Math.min(varG, varB)); // Min value of RGB
+ float varMax = Math.max(varR, Math.max(varG, varB)); // Max value of RGB
+ float delMax = varMax - varMin; // Delta RGB value
+
+ float h = 0;
+ float s = 0;
+ float l = (varMax + varMin) / 2;
+
+ if (delMax == 0 || l == 0) {
+ s = 0;
+ } else if (l == 1) {
+ s = 1;
+ } else if (l <= 0.5) {
+ s = delMax / (2 * (1 - l));
+ } else if (l > 0.5) {
+ s = delMax / (2 * l);
+ }
+
+ if (delMax == 0) {
+ h = 0;
+ } else if (varMax == varR && g >= b) {
+ h = 60 * (varG - varB) / delMax + 0;
+ } else if (varMax == varR && varG < b) {
+ h = 60 * (varG - varB) / delMax + 360;
+ } else if (varMax == varG) {
+ h = 60 * (varB - varR) / delMax + 120;
+ } else if (varMax == varB) {
+ h = 60 * (varR - varG) / delMax + 240;
+ }
+
+ return new float[] { h, s, l };
+ }
+
+ /**
+ * Converts the components of a color, as specified by the HSL model, to an
+ * equivalent set of values for the default RGB model.
+ * <p>
+ * The <code>saturation</code> and <code>lightness</code> components
+ * should be floating-point values between zero and one (numbers in the
+ * range 0.0-1.0). The <code>hue</code> component can be any
+ * floating-point number. The floor of this number is subtracted from it to
+ * create a fraction between 0 and 1. This fractional number is then
+ * multiplied by 360 to produce the hue angle in the HSB color model.
+ *
+ * @param h
+ * the hue component of the color
+ * @param s
+ * the saturation of the color
+ * @param l
+ * the lightness of the color
+ * @return the RGB value of the color with the indicated hue, saturation,
+ * and lightness
+ */
+ public static Color convertHSLtoRGB(float h, float s, float l) {
+ float q;
+ if (l < 0.5) {
+ q = l * (1 + s);
+ } else {
+ q = l + s - (l * s);
+ }
+
+ float p = 2 * l - q;
+ float hNorm = h / 360;
+
+ float tR = hNorm + 1f / 3f;
+ float tG = hNorm;
+ float tB = hNorm - 1f / 3f;
+
+ float r = tC2C(tR, p, q);
+ float g = tC2C(tG, p, q);
+ float b = tC2C(tB, p, q);
+
+ return new Color(r, g, b);
+ }
+
+ private static float tC2C(float tC, float p, float q) {
+ float retVal;
+
+ if (tC < 0) {
+ tC += 1;
+ }
+
+ if (tC > 1) {
+ tC -= 1;
+ }
+
+ if ((6 * tC) < 1) {
+ retVal = (p + (q - p) * 6 * tC);
+ } else if ((2 * tC) < 1) {
+ retVal = q;
+ } else if ((3 * tC) < 2) {
+ retVal = (p + (q - p) * 6 * (2f / 3f - tC));
+ } else {
+ retVal = p;
+ }
+
+ return retVal;
+ }
+
+ /**
+ * Increases/decreases brightness of the given color by the specified
+ * <code>difference</code>.
+ * <p>
+ * The <code>difference</code> values in the range (-1.0, 1.0): 1.0 - the
+ * brightest value; -1.0 - the dimmest value.
+ *
+ * @param c
+ * color to adjust
+ * @param difference
+ * value to be added to the current brightness
+ *
+ * @return a new <code>Color</code> instance with increased/decreased
+ * brightness by specified <code>difference</code>
+ * @throws IllegalArgumentException
+ * if difference is outside of the range -1.0 to 1.0, inclusive
+ */
+ public static Color adjustBrightness(Color c, float difference) {
+ if (difference < -1.0 || difference > 1.0) {
+ throw new IllegalArgumentException("Difference parameter outside of expected range: "
+ + "Difference parameter should be floating-point values between -1 and 1");
+ }
+
+ Color retVal = null;
+ if (c != null) {
+ float[] hsb = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), null);
+ float brightness = Math.min(1.0f, Math.max(0.0f, hsb[2] + difference));
+ retVal = new Color(Color.HSBtoRGB(hsb[0], hsb[1], brightness));
+ }
+
+ return retVal;
+ }
+
+ /**
+ * Increases/decreases lightness of the given color by the specified
+ * <code>difference</code>.
+ * <p>
+ * The <code>difference</code> values in the range (-1.0, 1.0): 1.0 - the
+ * lightest value; -1.0 - on the contrary.
+ *
+ * @param c
+ * color to adjust
+ * @param difference
+ * value to be added to the current lightness
+ *
+ * @return a new <code>Color</code> instance with increased/decreased
+ * lightness by specified <code>difference</code>
+ * @throws IllegalArgumentException
+ * if difference is outside of the range -1.0 to 1.0, inclusive
+ */
+ public static Color adjustLightness(Color c, float difference) {
+ if (difference < -1.0 || difference > 1.0) {
+ throw new IllegalArgumentException("Difference parameter outside of expected range: "
+ + "Difference parameter should be floating-point values between -1 and 1");
+ }
+
+ Color retVal = null;
+ if (c != null) {
+ float[] hsl = convertRGBtoHSL(c.getRed(), c.getGreen(), c.getBlue());
+ float lightness = Math.min(1.0f, Math.max(0.0f, hsl[2] + difference));
+ retVal = convertHSLtoRGB(hsl[0], hsl[1], lightness);
+ }
+
+ return retVal;
+ }
+
+ /**
+ * Overwrites alpha value for given color.
+ *
+ * @param c color to overwrite
+ * @param alpha a new value of alpha
+ * @return a new <code>Color</code> object with a new specified alpha value
+ */
+ public static Color overwriteAlpha(Color c, float alpha) {
+ Color retVal = c;
+ if (c != null) {
+ retVal = new Color(c.getRed(), c.getGreen(), c.getBlue(), (int) (alpha * 255 + 0.5));
+ }
+ return retVal;
+ }
+
+}
Modified: trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java 2010-10-04 21:44:13 UTC (rev 19439)
+++ trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -21,6 +21,7 @@
*/
package org.richfaces.resource;
+import java.awt.Dimension;
import java.awt.Transparency;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
@@ -115,6 +116,10 @@
public abstract BufferedImage createImage(int width, int height);
+ public BufferedImage createImage(Dimension dimension) {
+ return createImage(dimension.width, dimension.height);
+ }
+
public String getFormatName() {
return formatName;
}
Added: trunk/core/api/src/main/java/org/richfaces/resource/Java2DAnimatedUserResource.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/resource/Java2DAnimatedUserResource.java (rev 0)
+++ trunk/core/api/src/main/java/org/richfaces/resource/Java2DAnimatedUserResource.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -0,0 +1,43 @@
+/*
+ * 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.resource;
+
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public interface Java2DAnimatedUserResource extends Java2DUserResource {
+
+ public boolean isLooped();
+
+ public int getFrameDelay();
+
+ public void startFramesSequence();
+
+ public boolean hasNextFrame();
+
+ public void paint(Graphics2D graphics2d, Dimension dimension);
+
+}
Added: trunk/core/impl/src/main/java/org/richfaces/resource/Java2DAnimatedUserResourceWrapperImpl.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/resource/Java2DAnimatedUserResourceWrapperImpl.java (rev 0)
+++ trunk/core/impl/src/main/java/org/richfaces/resource/Java2DAnimatedUserResourceWrapperImpl.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -0,0 +1,161 @@
+/*
+ * 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.resource;
+
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.Iterator;
+
+import javax.imageio.IIOImage;
+import javax.imageio.ImageIO;
+import javax.imageio.ImageTypeSpecifier;
+import javax.imageio.ImageWriteParam;
+import javax.imageio.ImageWriter;
+import javax.imageio.metadata.IIOMetadata;
+import javax.imageio.metadata.IIOMetadataNode;
+import javax.imageio.stream.ImageOutputStream;
+
+import org.w3c.dom.Node;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public class Java2DAnimatedUserResourceWrapperImpl extends Java2DUserResourceWrapperImpl {
+
+ public Java2DAnimatedUserResourceWrapperImpl(Java2DAnimatedUserResource resourceObject) {
+ super(resourceObject);
+ }
+
+ private static ImageWriter getSequenceCapableImageWriter(ImageType imageType) {
+ Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersByFormatName(imageType.getFormatName());
+
+ while (imageWriters.hasNext()) {
+ ImageWriter imageWriter = imageWriters.next();
+
+ if (imageWriter.canWriteSequence()) {
+ return imageWriter;
+ }
+ }
+
+ throw new IllegalArgumentException(MessageFormat.format("Cannot find sequence-capable image writer for {0} format",
+ imageType.getFormatName()));
+ }
+
+ private static Node getOrCreateChild(Node root, String name) {
+ Node result = null;
+
+ for (Node node = root.getFirstChild(); (node != null) && (result == null); node = node.getNextSibling()) {
+ if (name.equals(node.getNodeName())) {
+ result = node;
+ }
+ }
+
+ if (result == null) {
+ result = new IIOMetadataNode(name);
+ root.appendChild(result);
+ }
+
+ return result;
+ }
+
+ private static void checkSupportedFormat(ImageType imageType) {
+ if (imageType != ImageType.GIF) {
+ throw new IllegalArgumentException(MessageFormat.format("Image format {0} is not supported", imageType.getFormatName()));
+ }
+ }
+
+ @Override
+ public String getRequestPath() {
+ //detect unsupported types early
+ checkSupportedFormat(getWrapped().getImageType());
+ return super.getRequestPath();
+ }
+
+ @Override
+ protected void paintAndWrite(ImageOutputStream outputStream) throws IOException {
+ Java2DAnimatedUserResource userResource = (Java2DAnimatedUserResource) getWrapped();
+
+ ImageType imageType = userResource.getImageType();
+ checkSupportedFormat(imageType);
+ ImageWriter imageWriter = getSequenceCapableImageWriter(imageType);
+ Dimension dimension = userResource.getDimension();
+ BufferedImage image = imageType.createImage(dimension);
+
+ try {
+ imageWriter.setOutput(outputStream);
+
+ ImageWriteParam defaultImageWriteParam = imageWriter.getDefaultWriteParam();
+ IIOMetadata imageMetaData = imageWriter.getDefaultImageMetadata(ImageTypeSpecifier.createFromBufferedImageType(
+ BufferedImage.TYPE_INT_RGB),
+ defaultImageWriteParam);
+ String metaFormatName = imageMetaData.getNativeMetadataFormatName();
+ Node root = imageMetaData.getAsTree(metaFormatName);
+ IIOMetadataNode graphicsControlExtensionNode = (IIOMetadataNode) getOrCreateChild(root, "GraphicControlExtension");
+
+ // http://java.sun.com/javase/6/docs/api/javax/imageio/metadata/doc-files/gi...
+ graphicsControlExtensionNode.setAttribute("disposalMethod", "none");
+ graphicsControlExtensionNode.setAttribute("userInputFlag", "FALSE");
+ graphicsControlExtensionNode.setAttribute("transparentColorFlag", "FALSE");
+ graphicsControlExtensionNode.setAttribute("delayTime", Integer.toString(userResource.getFrameDelay() / 100));
+ graphicsControlExtensionNode.setAttribute("transparentColorIndex", "0");
+
+ Node applicationExtensionsNode = getOrCreateChild(root, "ApplicationExtensions");
+ IIOMetadataNode netscapeExtension = new IIOMetadataNode("ApplicationExtension");
+
+ netscapeExtension.setAttribute("applicationID", "NETSCAPE");
+ netscapeExtension.setAttribute("authenticationCode", "2.0");
+
+ byte numLoops = (byte) (userResource.isLooped() ? 0x0 : 0x1);
+
+ netscapeExtension.setUserObject(new byte[]{0x1, numLoops, 0x0});
+ applicationExtensionsNode.appendChild(netscapeExtension);
+ imageMetaData.setFromTree(metaFormatName, root);
+
+ imageWriter.prepareWriteSequence(null);
+
+ userResource.startFramesSequence();
+
+ while (userResource.hasNextFrame()) {
+ Graphics2D g2d = null;
+ try {
+ g2d = createGraphics(image);
+ userResource.paint(g2d, dimension);
+ imageWriter.writeToSequence(new IIOImage(image, null, imageMetaData),
+ defaultImageWriteParam);
+ } finally {
+ if (g2d != null) {
+ g2d.dispose();
+ }
+ }
+ }
+
+ imageWriter.endWriteSequence();
+ } finally {
+ imageWriter.dispose();
+ }
+ }
+
+}
Modified: trunk/core/impl/src/main/java/org/richfaces/resource/Java2DUserResourceWrapperImpl.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/resource/Java2DUserResourceWrapperImpl.java 2010-10-04 21:44:13 UTC (rev 19439)
+++ trunk/core/impl/src/main/java/org/richfaces/resource/Java2DUserResourceWrapperImpl.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -34,6 +34,7 @@
import javax.faces.context.FacesContext;
import javax.imageio.ImageIO;
+import javax.imageio.stream.ImageOutputStream;
import org.ajax4jsf.util.HtmlColor;
import org.richfaces.renderkit.util.HtmlDimensions;
@@ -52,54 +53,33 @@
}
public InputStream getInputStream() throws IOException {
- Java2DUserResource j2DUserResource = getWrapped();
- Dimension dimension = j2DUserResource.getDimension();
- int width = dimension.width;
- int height = dimension.height;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- ImageType imageType = j2DUserResource.getImageType();
-
- if ((width > 0) && (height > 0)) {
- BufferedImage image = imageType.createImage(width, height);
- Graphics2D g2d = image.createGraphics();
-
- try {
- g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
-
- g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
- RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
- g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
- g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
-
- j2DUserResource.paint(g2d, dimension);
- } finally {
- g2d.dispose();
- }
-
- try {
- ImageIO.write(image, imageType.getFormatName(), baos);
- } finally {
+ ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(baos);
+ try {
+ paintAndWrite(imageOutputStream);
+ } finally {
+ if (imageOutputStream != null) {
try {
- baos.close();
+ imageOutputStream.close();
} catch (IOException e) {
-
- // TODO Auto-generated catch block
+ // TODO: handle exception
e.printStackTrace();
}
}
}
-
return new ByteArrayInputStream(baos.toByteArray());
}
+ protected void write(BufferedImage image, String formatName, ImageOutputStream imageOutputStream) throws IOException {
+ ImageIO.write(image, formatName, imageOutputStream);
+ }
+
public String getContentType() {
return getWrapped().getImageType().getMimeType();
}
protected String getValueParameter(FacesContext context, String name) {
- SkinFactory skinFactory = SkinFactory.getInstance();
+ SkinFactory skinFactory = SkinFactory.getInstance(context);
Skin skin = skinFactory.getSkin(context);
String value = (String) skin.getParameter(context, name);
@@ -115,16 +95,16 @@
protected Integer getColorValueParameter(FacesContext context, String name, boolean useDefault) {
Skin skin;
if (useDefault) {
- skin = SkinFactory.getInstance().getDefaultSkin(context);
+ skin = SkinFactory.getInstance(context).getDefaultSkin(context);
} else {
- skin = SkinFactory.getInstance().getSkin(context);
+ skin = SkinFactory.getInstance(context).getSkin(context);
}
return decodeColor((String) skin.getParameter(context, name));
}
protected Integer getHeight(FacesContext context, String heightParamName) {
- SkinFactory skinFactory = SkinFactory.getInstance();
+ SkinFactory skinFactory = SkinFactory.getInstance(context);
Skin skin = skinFactory.getSkin(context);
String height = (String) skin.getParameter(context, heightParamName);
@@ -157,4 +137,33 @@
protected Date getLastModified(FacesContext context) {
return getWrapped().getLastModified();
}
+
+ protected void paintAndWrite(ImageOutputStream outputStream) throws IOException {
+ Java2DUserResource resource = getWrapped();
+ ImageType imageType = resource.getImageType();
+
+ BufferedImage image = imageType.createImage(resource.getDimension());
+ Graphics2D g2d = null;
+ try {
+ g2d = createGraphics(image);
+ resource.paint(g2d, new Dimension(image.getWidth(), image.getHeight()));
+ ImageIO.write(image, imageType.getFormatName(), outputStream);
+ } finally {
+ if (g2d != null) {
+ g2d.dispose();
+ }
+ }
+ }
+
+ protected Graphics2D createGraphics(BufferedImage image) {
+ Graphics2D g2d = image.createGraphics();
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
+
+ g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
+ RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
+ g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+ g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+ return g2d;
+ }
}
Modified: trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java 2010-10-04 21:44:13 UTC (rev 19439)
+++ trunk/core/impl/src/main/java/org/richfaces/resource/ResourceFactoryImpl.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -260,7 +260,11 @@
if (legitimateResource) {
Object wrappedResource;
- if (Java2DUserResource.class.isAssignableFrom(loadedClass)) {
+ if (Java2DAnimatedUserResource.class.isAssignableFrom(loadedClass)) {
+ Java2DAnimatedUserResource java2DAnimatedUserResource = (Java2DAnimatedUserResource) loadedClass.newInstance();
+ wrappedResource = java2DAnimatedUserResource;
+ resource = new Java2DAnimatedUserResourceWrapperImpl(java2DAnimatedUserResource);
+ } else if (Java2DUserResource.class.isAssignableFrom(loadedClass)) {
Java2DUserResource java2DUserResource = (Java2DUserResource) loadedClass.newInstance();
wrappedResource = java2DUserResource;
resource = new Java2DUserResourceWrapperImpl(java2DUserResource);
Modified: trunk/ui/output/ui/pom.xml
===================================================================
--- trunk/ui/output/ui/pom.xml 2010-10-04 21:44:13 UTC (rev 19439)
+++ trunk/ui/output/ui/pom.xml 2010-10-04 23:52:08 UTC (rev 19440)
@@ -55,10 +55,6 @@
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.richfaces.core</groupId>
- <artifactId>richfaces-core-impl</artifactId>
- </dependency>
<dependency>
<groupId>org.richfaces.ui.common</groupId>
<artifactId>richfaces-ui-common-ui</artifactId>
Added: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/ProgressBarAnimatedBackgroundImage.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/ProgressBarAnimatedBackgroundImage.java (rev 0)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/ProgressBarAnimatedBackgroundImage.java 2010-10-04 23:52:08 UTC (rev 19440)
@@ -0,0 +1,168 @@
+/*
+ * 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.html;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GradientPaint;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Date;
+import java.util.Map;
+
+import javax.faces.context.FacesContext;
+
+import org.richfaces.renderkit.util.ColorUtils;
+import org.richfaces.resource.CacheableResource;
+import org.richfaces.resource.DynamicResource;
+import org.richfaces.resource.ImageType;
+import org.richfaces.resource.Java2DAnimatedUserResource;
+import org.richfaces.resource.StateHolderResource;
+import org.richfaces.skin.Skin;
+import org.richfaces.skin.SkinFactory;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+//TODO - add version
+@DynamicResource
+public class ProgressBarAnimatedBackgroundImage implements Java2DAnimatedUserResource, StateHolderResource, CacheableResource {
+
+ private static final int NUMBER_OF_FRAMES = 12;
+
+ private static final Dimension DIMENSION = new Dimension(24, 48);
+
+ private int frameNumber = 0;
+
+ private Color basicColor;
+
+ public Map<String, String> getResponseHeaders() {
+ return null;
+ }
+
+ public Date getLastModified() {
+ return null;
+ }
+
+ public ImageType getImageType() {
+ return ImageType.GIF;
+ }
+
+ public Dimension getDimension() {
+ return DIMENSION;
+ }
+
+ public boolean isLooped() {
+ return true;
+ }
+
+ public int getFrameDelay() {
+ return 1000;
+ }
+
+ public void startFramesSequence() {
+ frameNumber = 0;
+ }
+
+ public boolean hasNextFrame() {
+ return frameNumber < NUMBER_OF_FRAMES;
+ }
+
+ /**
+ * Creates a main stage for progress bar background.
+ *
+ * @param context
+ * resource context
+ * @return a <code>BufferedImage</code> object
+ */
+ private BufferedImage createMainStage() {
+ Color progressbarBackgroundColor = basicColor;
+ Color progressbarSpiralColor = ColorUtils.adjustLightness(basicColor, 0.2f);
+
+ Dimension dimension = getDimension();
+ BufferedImage retVal = getImageType().createImage(dimension.width, dimension.height * 2);
+ Graphics g = retVal.getGraphics();
+ try {
+ g.setColor(progressbarBackgroundColor);
+ g.fillRect(0, 0, dimension.width, dimension.height * 2);
+ g.setColor(progressbarSpiralColor);
+ for (int k : new int[] { -24, 0, 24, 48, 72 }) {
+ g.fillPolygon(new int[] { 0, 24, 24, 0 }, new int[] { 24 + k, k, 12 + k, 36 + k }, 4);
+ }
+ } finally {
+ if (g != null) {
+ g.dispose();
+ }
+ }
+
+ return retVal;
+ }
+
+ public void paint(Graphics2D g2d, Dimension dimension) {
+ frameNumber++;
+
+ BufferedImage mainStage = createMainStage();
+ BufferedImage frame = mainStage.getSubimage(0, 48 - frameNumber * 2, dimension.width, dimension.height);
+ g2d.drawImage(frame, null, null);
+ Color progressbarShadowStartColor = ColorUtils.overwriteAlpha(ColorUtils.adjustLightness(basicColor, 0.7f), 0.6f);
+ Color progressbarShadowEndColor = ColorUtils.overwriteAlpha(ColorUtils.adjustLightness(basicColor, 0.3f), 0.6f);
+ // paint a shadow in the form of semi-transparent gradient
+ g2d.setPaint(new GradientPaint(0, 0, progressbarShadowStartColor, 0, 7, progressbarShadowEndColor));
+ g2d.fillRect(0, 0, dimension.width, 7);
+ }
+
+ public boolean isTransient() {
+ return false;
+ }
+
+ public void writeState(FacesContext context, DataOutput dataOutput) throws IOException {
+ // TODO Auto-generated method stub
+ Skin skin = SkinFactory.getInstance(context).getSkin(context);
+ Integer color = skin.getColorParameter(context, Skin.SELECT_CONTROL_COLOR);
+ dataOutput.writeInt(color.intValue());
+ }
+
+ public void readState(FacesContext context, DataInput dataInput) throws IOException {
+ basicColor = new Color(dataInput.readInt());
+ }
+
+ public boolean isCacheable(FacesContext context) {
+ return true;
+ }
+
+ public Date getExpires(FacesContext context) {
+ return null;
+ }
+
+ public int getTimeToLive(FacesContext context) {
+ return 0;
+ }
+
+ public String getEntityTag(FacesContext context) {
+ return null;
+ }
+}
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/progressBar.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/progressBar.ecss 2010-10-04 21:44:13 UTC (rev 19439)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/progressBar.ecss 2010-10-04 23:52:08 UTC (rev 19440)
@@ -5,7 +5,7 @@
}
.rf-pb-upl{
background-repeat : repeat-x;
-background-image : "url(#{resource['org.richfaces.renderkit.html.images.ProgressBarAnimatedBg']})";
+background-image : "url(#{resource['org.richfaces.images:pbAniBg.gif']})";
background-color : '#{richSkin.selectControlColor}';
height : 13px;
}
@@ -40,5 +40,5 @@
height : 13px;
width : 200px;
padding: 0px;
-background-image : "url(#{resource['org.richfaces.renderkit.html.images.ProgressBarAnimatedBg']})";
+background-image : "url(#{resource['org.richfaces.images:pbAniBg.gif']})";
}
Modified: trunk/ui/output/ui/src/main/resources/META-INF/richfaces/resource-mappings.properties
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/richfaces/resource-mappings.properties 2010-10-04 21:44:13 UTC (rev 19439)
+++ trunk/ui/output/ui/src/main/resources/META-INF/richfaces/resource-mappings.properties 2010-10-04 23:52:08 UTC (rev 19440)
@@ -12,3 +12,5 @@
org.richfaces.images\:actRightTabBg.png=org.richfaces.renderkit.html.BaseGradient\
{width=26, height=5, baseColorParam=generalBackgroundColor, gradientColorParam=tabBackgroundColor, horizontal=true}
+
+org.richfaces.images\:pbAniBg.gif=org.richfaces.renderkit.html.ProgressBarAnimatedBackgroundImage
\ No newline at end of file
14 years, 3 months
JBoss Rich Faces SVN: r19439 - in trunk/archetypes/rf-gae-sample: src/main/resources/archetype-resources and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2010-10-04 17:44:13 -0400 (Mon, 04 Oct 2010)
New Revision: 19439
Modified:
trunk/archetypes/rf-gae-sample/readme.txt
trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/pom.xml
trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt
Log:
RF-9411 Updated archetype, and readme files to describe deploying to GAE SDK developer server
Modified: trunk/archetypes/rf-gae-sample/readme.txt
===================================================================
--- trunk/archetypes/rf-gae-sample/readme.txt 2010-10-04 21:42:02 UTC (rev 19438)
+++ trunk/archetypes/rf-gae-sample/readme.txt 2010-10-04 21:44:13 UTC (rev 19439)
@@ -1,51 +1,46 @@
RichFaces 4 Archetype
-BUILDING THE ARCHETYPE
+GENERATING THE PROJECT
-just execute mvn clean install in the root folder
+This archetype creates a simple RichFaces 4 application with all the settings and custom artifacts you need to perform deploy to GAE cloud.
-APPLICATION CREATION
-
-This archetype creates a simple RichFaces 4 application with all the settings and custom artifacts you need to perform deply to GAE cloud.
-
1) To generate a project from the archetype, run
mvn archetype:generate -DarchetypeGroupId=org.richfaces.archetypes -DarchetypeArtifactId=richfaces-archetype-gae -DarchetypeVersion=<richfaces-version>
-DgroupId=<yourGroupId> -DartifactId=<yourArtifactId> -Dversion=1.0-SNAPSHOT
-2) To build the project for deploy to GAE cloud, run
+2) Navigate into the new project directory and build by running:
mvn clean install
-*BEFORE NEXT STEP - you should setup your GAE account at http://appspot.com and register new application there.
-(read more at http://code.google.com/intl/ru/appengine/docs/python/gettingstarted/uploa...)
+*BEFORE NEXT STEP:
+ -- You should setup your GAE account at http://appspot.com
+ -- Register your new application there. By default the applications name is "rf-${artifactId}"
+ -- Download and install the GAE SDK for deployment and local server tools
-3) Then just execute appcfg from GAE SDK(link) to publish to your account:
+3) Execute appcfg from GAE SDK to publish to your account:
appcfg update <PATH: "generated-application-target-folder/output application folder">
-NOTE:Do not forget to register your own application name and make sure that the demo uses the same name accordingly. By default the applications name is "rf-${artifactId}"
-
-
-4) now visit your application using http://<application-name>.appspot.com
+4) Once uploaded, visit your application using http://<application-name>.appspot.com
4.1) check all the information about deployed application at https://appengine.google.com/dashboard?&app_id=<your-application-id>
+NOTE:
+During build the "org.richfaces.cdk:maven-resource-plugin" executed and generated static resources(web-app\static-resources\) for all skins in order to
+solve the compatibility problem with GAE and java2D API.
-PAY ATTENTION:
-during build with GAE profile - our org.richfaces.cdk:maven-resource-plugin executed and generates static resources(web-app\static-resources\) for all the skins in order to
-solve the compatibility problem with GAE which restricts java2D usage(our dynamic resources works using that dependency)
-
-NOTES about additional artifacts in webapp folder:
+NOTE: about additional artifacts in webapp folder:
1) java-gae-jsf-ri - contains modified WebConfiguration.java class which will be put to Web-inf\classes when building with GAE profile. It solves compatibilities
issues exist in GAE for JSF applications.
-2) Webapp-gae folder contains GAE descriptor(appengine-web.xml) and modified application web.xml. Them will be placed to WEb-inf folder after build with GAE profile. web.xml
-should be different in order to use static resources generated by plugin instead of dynamic resources. And also restricts threading with
+2) Webapp-gae folder contains GAE descriptor(appengine-web.xml) and modified application web.xml. They will be placed in the WEB-INF folder. The web.xml
+is different in order to use static resources generated by plugin instead of dynamic resources. And also restricts threading with
com.sun.faces.enableThreading context parameter as GAE not allows threads.
============================================================================================================
-LOCAL DEPLOYMENT
-you still could deploy your application as usually using
-1) mvn clean install
-2) put to tomcat6\webapps
-3) run server
-4) enjoy going to http:\\localhost:8080\<app-name>
\ No newline at end of file
+LOCAL DEPLOYMENTS
+To test your application on your local machine you can use GAE SDK development server.
+1) Build archetype as above
+2) Navigate GAE SDK /bin
+3) Execute"
+ ./dev_appserver.sh <PATH: "generated-application-target-folder/output application folder">
+4) Once loaded, access your application at http:\\localhost:8080\
\ No newline at end of file
Modified: trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/pom.xml
===================================================================
--- trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/pom.xml 2010-10-04 21:42:02 UTC (rev 19438)
+++ trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/pom.xml 2010-10-04 21:44:13 UTC (rev 19439)
@@ -130,74 +130,6 @@
</plugins>
</build>
- <profiles>
- <profile>
- <id>jee6</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <webappDirectory>${project.build.directory}/${project.build.finalName}-jee6</webappDirectory>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <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>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- </profile>
- <profile>
- <id>release</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <executions>
- <execution>
- <id>jee6</id>
- <phase>package</phase>
- <goals>
- <goal>war</goal>
- </goals>
- <configuration>
- <webappDirectory>${project.build.directory}/${project.build.finalName}-jee6</webappDirectory>
- <classifier>jee6</classifier>
- <packagingExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*</packagingExcludes>
- <warSourceExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*</warSourceExcludes>
- </configuration>
- </execution>
- </executions>
- <configuration>
- <webResources>
- <resource>
- <directory>${basedir}/src/main/java</directory>
- <targetPath>/WEB-INF/src</targetPath>
- </resource>
- </webResources>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
<dependencyManagement>
<dependencies>
<dependency>
@@ -252,8 +184,8 @@
<classifier>jdk15</classifier>
<scope>test</scope>
</dependency>
+
<!-- GAE PROFILE DEPENDENCIES -->
-
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
@@ -288,6 +220,5 @@
<version>2.9.1</version>
<scope>runtime</scope>
</dependency>
-
</dependencies>
</project>
Modified: trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt
===================================================================
--- trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt 2010-10-04 21:42:02 UTC (rev 19438)
+++ trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt 2010-10-04 21:44:13 UTC (rev 19439)
@@ -1,38 +1,37 @@
-Project generated with richfaces-archetype-gae
+RichFaces 4 Archetype
-1) To build the project for deploy to GAE cloud, run
+1) Build by running:
mvn clean install
-*BEFORE NEXT STEP - you should setup your GAE account at http://appspot.com and register new application there.
-(read more at http://code.google.com/intl/ru/appengine/docs/python/gettingstarted/uploa...)
+*BEFORE NEXT STEP:
+ -- You should setup your GAE account at http://appspot.com
+ -- Register your new application there. By default the applications name is "rf-${artifactId}"
+ -- Download and install the GAE SDK for deployment and local server tools
-2) Then just execute appcfg from GAE SDK(link) to publish to your account:
- appcfg update <PATH: "generated-application-target-folder/output application folder">
+3) Execute appcfg from GAE SDK to publish to your account:
+ appcfg update <PATH: "generated-application-target-folder/output application folder">
-NOTE:Do not forget to register your own application name and make sure that the demo uses the same name accordingly. By default the applications name is "rf-${artifactId}"
+4) Once uploaded, visit your application using http://<application-name>.appspot.com
+4.1) check all the information about deployed application at https://appengine.google.com/dashboard?&app_id=<your-application-id>
+NOTE:
+During build the "org.richfaces.cdk:maven-resource-plugin" executed and generated static resources(web-app\static-resources\) for all skins in order to
+solve the compatibility problem with GAE and java2D API.
-3) now visit your application using http://<application-name>.appspot.com
-3.1) check all the information about deployed application at https://appengine.google.com/dashboard?&app_id=<your-application-id>
-
-
-PAY ATTENTION:
-during build with GAE profile(default one) - our org.richfaces.cdk:maven-resource-plugin executed and generates static resources(web-app\static-resources\) for all the skins in order to
-solve the compatibility problem with GAE which restricts java2D usage(our dynamic resources works using that dependency)
-
-NOTES about additional artifacts in webapp folder:
+NOTE: about additional artifacts in webapp folder:
1) java-gae-jsf-ri - contains modified WebConfiguration.java class which will be put to Web-inf\classes when building with GAE profile. It solves compatibilities
issues exist in GAE for JSF applications.
-2) Webapp-gae folder contains GAE descriptor(appengine-web.xml) and modified application web.xml. Them will be placed to WEb-inf folder after build with GAE profile. web.xml
-should be different in order to use static resources generated by plugin instead of dynamic resources. And also restricts threading with
+2) Webapp-gae folder contains GAE descriptor(appengine-web.xml) and modified application web.xml. They will be placed in the WEB-INF folder. The web.xml
+is different in order to use static resources generated by plugin instead of dynamic resources. And also restricts threading with
com.sun.faces.enableThreading context parameter as GAE not allows threads.
============================================================================================================
-LOCAL DEPLOYMENT
-you still can deploy your application to a local tomcat instance.
-1) mvn clean install
-2) put target war into tomcat6 webapp directory
-3) Launch tomcat
-4) Go to http:\\localhost:8080\<app-name>
\ No newline at end of file
+LOCAL DEPLOYMENTS
+To test your application on your local machine you can use GAE SDK development server.
+1) Build archetype as above
+2) Navigate GAE SDK /bin
+3) Execute"
+ ./dev_appserver.sh <PATH: "generated-application-target-folder/output application folder">
+4) Once loaded, access your application at http:\\localhost:8080\
\ No newline at end of file
14 years, 3 months
JBoss Rich Faces SVN: r19438 - in trunk/ui/output/ui/src/main: resources/META-INF and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-10-04 17:42:02 -0400 (Mon, 04 Oct 2010)
New Revision: 19438
Modified:
trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlAccordionItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTab.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTogglePanelTitledItem.java
trunk/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml
trunk/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml
Log:
https://jira.jboss.org/browse/RF-9406
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlAccordionItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlAccordionItem.java 2010-10-04 19:43:13 UTC (rev 19437)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlAccordionItem.java 2010-10-04 21:42:02 UTC (rev 19438)
@@ -22,22 +22,22 @@
package org.richfaces.component.html;
-import org.richfaces.component.UITogglePanelTitledItem;
-import org.richfaces.component.behavior.ToggleControl;
-
-import javax.faces.component.behavior.ClientBehaviorHolder;
-
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import javax.faces.component.behavior.ClientBehaviorHolder;
+
+import org.richfaces.component.UITogglePanelTitledItem;
+import org.richfaces.component.behavior.ToggleControl;
+
/**
* @author akolonitsky
* @since 2010-08-13
*/
public class HtmlAccordionItem extends UITogglePanelTitledItem implements ClientBehaviorHolder {
- public static final String COMPONENT_TYPE = "org.richfaces.TogglePanelTitledItem";
+ public static final String COMPONENT_TYPE = "org.richfaces.AccordionItem";
public static final String COMPONENT_FAMILY = "org.richfaces.TogglePanelTitledItem";
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTab.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTab.java 2010-10-04 19:43:13 UTC (rev 19437)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTab.java 2010-10-04 21:42:02 UTC (rev 19438)
@@ -22,20 +22,21 @@
package org.richfaces.component.html;
-import org.richfaces.component.UITogglePanelTitledItem;
-
-import javax.faces.component.behavior.ClientBehaviorHolder;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import javax.faces.component.behavior.ClientBehaviorHolder;
+
+import org.richfaces.component.UITogglePanelTitledItem;
+
/**
* @author akolonitsky
* @since 2010-08-27
*/
public class HtmlTab extends UITogglePanelTitledItem implements ClientBehaviorHolder {
- public static final String COMPONENT_TYPE = "org.richfaces.TogglePanelTitledItem";
+ public static final String COMPONENT_TYPE = "org.richfaces.TabPanelItem";
public static final String COMPONENT_FAMILY = "org.richfaces.TogglePanelTitledItem";
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTogglePanelTitledItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTogglePanelTitledItem.java 2010-10-04 19:43:13 UTC (rev 19437)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/html/HtmlTogglePanelTitledItem.java 2010-10-04 21:42:02 UTC (rev 19438)
@@ -22,17 +22,19 @@
package org.richfaces.component.html;
-import org.richfaces.component.UITogglePanelTitledItem;
-import javax.faces.component.behavior.ClientBehaviorHolder;
-
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import javax.faces.component.behavior.ClientBehaviorHolder;
+
+import org.richfaces.component.UITogglePanelTitledItem;
+
/**
* @author akolonitsky
* @since 2010-08-13
*/
+//TODO alex - what's the purpose of this class?
public class HtmlTogglePanelTitledItem extends UITogglePanelTitledItem implements ClientBehaviorHolder {
public static final String COMPONENT_TYPE = "org.richfaces.TogglePanelTitledItem";
Modified: trunk/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml 2010-10-04 19:43:13 UTC (rev 19437)
+++ trunk/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml 2010-10-04 21:42:02 UTC (rev 19438)
@@ -491,7 +491,7 @@
</component>
<component>
- <component-type>org.richfaces.TogglePanelTitledItem</component-type>
+ <component-type>org.richfaces.AccordionItem</component-type>
<component-class>org.richfaces.component.html.HtmlAccordionItem</component-class>
<property>
<description></description>
@@ -659,7 +659,7 @@
<component-class>org.richfaces.component.html.HtmlTabPanel</component-class>
</component>
<component>
- <component-type>org.richfaces.TogglePanelTitledItem</component-type>
+ <component-type>org.richfaces.TabPanelItem</component-type>
<component-class>org.richfaces.component.html.HtmlTab</component-class>
</component>
Modified: trunk/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml 2010-10-04 19:43:13 UTC (rev 19437)
+++ trunk/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml 2010-10-04 21:42:02 UTC (rev 19438)
@@ -45,7 +45,7 @@
<tag>
<tag-name>tab</tag-name>
<component>
- <component-type>org.richfaces.TogglePanelTitledItem</component-type>
+ <component-type>org.richfaces.TabPanelItem</component-type>
<renderer-type>org.richfaces.Tab</renderer-type>
</component>
</tag>
@@ -741,9 +741,8 @@
<tag>
<tag-name>accordionItem</tag-name>
<component>
- <component-type>org.richfaces.TogglePanelTitledItem</component-type>
+ <component-type>org.richfaces.AccordionItem</component-type>
<renderer-type>org.richfaces.AccordionItem</renderer-type>
-
</component>
<attribute>
<description></description>
14 years, 3 months
JBoss Rich Faces SVN: r19437 - in trunk: ui/dist/richfaces-components-ui and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-10-04 15:43:13 -0400 (Mon, 04 Oct 2010)
New Revision: 19437
Removed:
trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TabHeaderGradient.java
trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TopTabHeaderGradient.java
Modified:
trunk/ui/dist/richfaces-components-ui/pom.xml
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
Log:
https://jira.jboss.org/browse/RF-9405
https://jira.jboss.org/browse/RF-8779
Deleted: trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TabHeaderGradient.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TabHeaderGradient.java 2010-10-04 19:32:49 UTC (rev 19436)
+++ trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TabHeaderGradient.java 2010-10-04 19:43:13 UTC (rev 19437)
@@ -1,41 +0,0 @@
-/**
- * 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.renderkit.html.images;
-
-import org.richfaces.renderkit.html.BaseGradient;
-import org.richfaces.skin.Skin;
-
-import javax.faces.context.FacesContext;
-
-/**
- * @author akolonitsky
- * @since Sep 30, 2010
- */
-public class TabHeaderGradient extends BaseGradient {
-
- @Override
- protected void initializeProperties(FacesContext context, Skin skin) {
- super.initializeProperties(context, skin);
- setBaseColorParam(Skin.GENERAL_BACKGROUND_COLOR);
- setGradientColorParam(Skin.TAB_BACKGROUND_COLOR);
- }
-}
Deleted: trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TopTabHeaderGradient.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TopTabHeaderGradient.java 2010-10-04 19:32:49 UTC (rev 19436)
+++ trunk/core/impl/src/main/java/org/richfaces/renderkit/html/images/TopTabHeaderGradient.java 2010-10-04 19:43:13 UTC (rev 19437)
@@ -1,41 +0,0 @@
-/**
- * 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.renderkit.html.images;
-
-import org.richfaces.renderkit.html.BaseGradient;
-import org.richfaces.skin.Skin;
-
-import javax.faces.context.FacesContext;
-
-/**
- * @author akolonitsky
- * @since Sep 30, 2010
- */
-public class TopTabHeaderGradient extends BaseGradient {
-
- @Override
- protected void initializeProperties(FacesContext context, Skin skin) {
- super.initializeProperties(context, skin);
- setBaseColorParam(Skin.TAB_BACKGROUND_COLOR);
- setGradientColorParam(Skin.GENERAL_BACKGROUND_COLOR);
- }
-}
Modified: trunk/ui/dist/richfaces-components-ui/pom.xml
===================================================================
--- trunk/ui/dist/richfaces-components-ui/pom.xml 2010-10-04 19:32:49 UTC (rev 19436)
+++ trunk/ui/dist/richfaces-components-ui/pom.xml 2010-10-04 19:43:13 UTC (rev 19437)
@@ -137,6 +137,9 @@
</taglibs>
</transformer>
<transformer implementation="org.richfaces.build.shade.resource.FacesConfigXmlResourceTransformer" />
+ <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+ <resource>META-INF/richfaces/resource-mappings.properties</resource>
+ </transformer>
</transformers>
</configuration>
</execution>
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-10-04 19:32:49 UTC (rev 19436)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-10-04 19:43:13 UTC (rev 19437)
@@ -4,7 +4,7 @@
cursor : pointer;
padding : 0px 5px 3px 5px;
vertical-align : top;
- background-image: "url(#{resource['org.richfaces.renderkit.html.images.TabHeaderGradient']})";
+ background-image: "url(#{resource['org.richfaces.images:tabBg.png']})";
background-position: top;
background-repeat: repeat-x;
background-color: "#{richSkin.tabBackgroundColor}";
@@ -16,7 +16,7 @@
border-bottom: 0px;
font-weight: bold;
vertical-align: top;
- background-image: "url(#{resource['org.richfaces.renderkit.html.images.TopTabHeaderGradient']})";
+ background-image: "url(#{resource['org.richfaces.images:actTabBg.png']})";
background-position: top;
background-repeat: repeat-x;
background-color: "#{richSkin.additionalBackgroundColor}";
@@ -32,10 +32,15 @@
}
.rf-tb-hdr-tabline-vis {
- background:url("tabline_bg.gif") repeat-x scroll center top #EEF4FB;
- border-color:#A6A6A6 #A6A6A6 -moz-use-text-color;
- border-style:solid solid none;
- border-width:1px 1px 0;
+ background:url("tabline_bg.gif") repeat-x scroll center top;
+ background-color: "#{richSkin.additionalBackgroundColor}";
+
+ border-color: "#{richSkin.panelBorderColor}";
+ border-style: solid;
+ border-width: 1px;
+
+ border-bottom-width: 0px;
+
padding-top: 2px;
overflow: hidden;
height: 25px;
@@ -68,7 +73,7 @@
}
.rf-tb-hdr-scrl_l {
- background: "url(#{resource['org.richfaces.renderkit.html.images.TopTabHeaderGradient']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ background: "url(#{resource['org.richfaces.images:actTabBg.png']}) top repeat-x #{richSkin.additionalBackgroundColor}";
position: absolute;
top: 1px;
left: 1px;
@@ -83,7 +88,7 @@
}
.rf-tb-hdr-scrl_r {
- background: "url(#{resource['org.richfaces.renderkit.html.images.TopTabHeaderGradient']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ background: "url(#{resource['org.richfaces.images:actTabBg.png']}) top repeat-x #{richSkin.additionalBackgroundColor}";
position: absolute;
top: 1px;
right: 17px;
@@ -98,7 +103,7 @@
}
.rf-tb-hdr-tablst {
- background: "url(#{resource['org.richfaces.renderkit.html.images.TopTabHeaderGradient']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ background: "url(#{resource['org.richfaces.images:actTabBg.png']}) top repeat-x #{richSkin.additionalBackgroundColor}";
position: absolute;
top: 1px;
right: 1px;
14 years, 3 months
JBoss Rich Faces SVN: r19436 - in trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main: webapp/WEB-INF and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2010-10-04 15:32:49 -0400 (Mon, 04 Oct 2010)
New Revision: 19436
Added:
trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/java/RichBean.java
Removed:
trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/java/org/
Modified:
trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/faces-config.xml
Log:
RF-9409 fixed simple archetype so that it uses packages
Copied: trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/java/RichBean.java (from rev 19417, trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/java/org/richfaces/RichBean.java)
===================================================================
--- trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/java/RichBean.java (rev 0)
+++ trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/java/RichBean.java 2010-10-04 19:32:49 UTC (rev 19436)
@@ -0,0 +1,25 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package};
+
+import java.io.Serializable;
+
+public class RichBean implements Serializable {
+
+ private static final long serialVersionUID = -2403138958014741653L;
+ private String name;
+
+ public RichBean() {
+ System.out.println("post construct: initialize");
+ name = "John";
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Modified: trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/faces-config.xml 2010-10-04 19:16:38 UTC (rev 19435)
+++ trunk/archetypes/richfaces-archetype-simpleapp/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/faces-config.xml 2010-10-04 19:32:49 UTC (rev 19436)
@@ -1,3 +1,6 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
<?xml version="1.0"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
@@ -4,7 +7,7 @@
<managed-bean>
<managed-bean-name>richBean</managed-bean-name>
- <managed-bean-class>org.richfaces.RichBean</managed-bean-class>
+ <managed-bean-class>${package}.RichBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
</managed-bean>
</faces-config>
14 years, 3 months