You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by gv...@apache.org on 2007/02/25 02:18:07 UTC
svn commit: r511395 - in /shale/framework/branches/SHALE_1_0_X:
shale-apps/shale-clay-usecases/pom.xml
shale-validator/src/main/java/org/apache/shale/validator/CommonsValidator.java
Author: gvanmatre
Date: Sat Feb 24 17:18:06 2007
New Revision: 511395
URL: http://svn.apache.org/viewvc?view=rev&rev=511395
Log:
Apply SHALE-412, SHALE-413 (rev 511385) and SHALE-407 (rev 511223) from the trunk to the SHALE_1_0_X branch.
Modified:
shale/framework/branches/SHALE_1_0_X/shale-apps/shale-clay-usecases/pom.xml
shale/framework/branches/SHALE_1_0_X/shale-validator/src/main/java/org/apache/shale/validator/CommonsValidator.java
Modified: shale/framework/branches/SHALE_1_0_X/shale-apps/shale-clay-usecases/pom.xml
URL: http://svn.apache.org/viewvc/shale/framework/branches/SHALE_1_0_X/shale-apps/shale-clay-usecases/pom.xml?view=diff&rev=511395&r1=511394&r2=511395
==============================================================================
--- shale/framework/branches/SHALE_1_0_X/shale-apps/shale-clay-usecases/pom.xml (original)
+++ shale/framework/branches/SHALE_1_0_X/shale-apps/shale-clay-usecases/pom.xml Sat Feb 24 17:18:06 2007
@@ -41,6 +41,13 @@
</dependency>
<dependency>
+ <groupId>oro</groupId>
+ <artifactId>oro</artifactId>
+ <version>2.0.8</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.shale</groupId>
<artifactId>shale-application</artifactId>
<version>${version}</version>
Modified: shale/framework/branches/SHALE_1_0_X/shale-validator/src/main/java/org/apache/shale/validator/CommonsValidator.java
URL: http://svn.apache.org/viewvc/shale/framework/branches/SHALE_1_0_X/shale-validator/src/main/java/org/apache/shale/validator/CommonsValidator.java?view=diff&rev=511395&r1=511394&r2=511395
==============================================================================
--- shale/framework/branches/SHALE_1_0_X/shale-validator/src/main/java/org/apache/shale/validator/CommonsValidator.java (original)
+++ shale/framework/branches/SHALE_1_0_X/shale-validator/src/main/java/org/apache/shale/validator/CommonsValidator.java Sat Feb 24 17:18:06 2007
@@ -33,6 +33,7 @@
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
+import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
@@ -51,6 +52,7 @@
import org.apache.shale.util.ConverterHelper;
import org.apache.shale.util.Messages;
import org.apache.shale.util.Tags;
+import org.apache.shale.validator.faces.ValidatorInputRenderer;
/**
* <p>This is a JavaServer Faces <code>Validator</code> that uses
@@ -500,7 +502,7 @@
value = localVars.get(templateArgs[i].getKey());
} else if (value != null && value instanceof String) {
// if a String, check for a value binding expression
- value = tagUtils.eval((String) value);
+ value = tagUtils.eval((String) value);
}
target[i] = value;
}
@@ -787,7 +789,11 @@
ValidatorAction validatorAction = CommonsValidator.getValidatorAction(types[j]);
try {
- vars.put(SUBMITTED_VALUE_VARNAME, value);
+ if (component instanceof EditableValueHolder) {
+ vars.put(SUBMITTED_VALUE_VARNAME, ((EditableValueHolder) component).getSubmittedValue());
+ } else {
+ vars.put(SUBMITTED_VALUE_VARNAME, value);
+ }
Class validatorClass = loadValidatorClass(validatorAction);
Class[] paramClasses = this.loadMethodParamClasses(validatorAction);
Object[] paramValues = this.loadMethodParamValues(context, validatorAction, paramClasses);
@@ -797,10 +803,24 @@
validator = validatorClass.newInstance();
}
Boolean r = (Boolean) validatorMethod.invoke(validator, paramValues);
+
+ Map localVars = null;
+ // A map that captures information about a component that might contain state for commons
+ // validators properties. The map is organized by a hierarchy "clientId/validatorType/vars".
+ // It is captured at render time.
+ Map ids = (Map) component.getAttributes().get(ValidatorInputRenderer.VALIDATOR_CLIENTIDS_ATTR);
+ if (ids != null) {
+ String clientId = component.getClientId(context);
+ Map validatorVars = (Map) ids.get(clientId);
+ if (validatorVars != null) {
+ localVars = (Map) validatorVars.get(getType());
+ }
+ }
+
if (r.equals(Boolean.FALSE)) {
throw new ValidatorException(new FacesMessage(
FacesMessage.SEVERITY_ERROR,
- getErrorMessage(context, validatorAction, null), null));
+ getErrorMessage(context, validatorAction, localVars), null));
}
} catch (IllegalArgumentException e) {
throw new RuntimeException(messages.getMessage("commonsValidator.intException",