You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/06/22 21:25:22 UTC
svn commit: r192976 - in /incubator/beehive/trunk/netui/src:
compiler-core/org/apache/beehive/netui/compiler/grammar/
pageflow/org/apache/beehive/netui/pageflow/annotations/
pageflow/org/apache/beehive/netui/pageflow/faces/internal/
Author: rich
Date: Wed Jun 22 12:25:21 2005
New Revision: 192976
URL: http://svn.apache.org/viewcvs?rev=192976&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-831 : NPE if a required annotation attribute is missing for @Jpf.ValidateRequired
As part of this fix, I've filled out required-attribute constraints in our annotation processors across the board. Previously, we'd depended on pure Java constraints for required attributes in some cases.
tests: bvt in neuti, bvt.myfaces and bvt.jsf-ri in netui/test/webapps/jsf (WinXP)
BB: self (linux)
Modified:
incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/BaseValidationRuleGrammar.java
incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java
incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateCustomGrammar.java
incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateTypeGrammar.java
incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateValidWhenGrammar.java
incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidationRulesContainerGrammar.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowNavigationHandler.java
Modified: incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/BaseValidationRuleGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/BaseValidationRuleGrammar.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/BaseValidationRuleGrammar.java (original)
+++ incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/BaseValidationRuleGrammar.java Wed Jun 22 12:25:21 2005
@@ -28,6 +28,7 @@
import java.util.List;
import java.util.Iterator;
+import java.util.ArrayList;
public class BaseValidationRuleGrammar
@@ -43,23 +44,35 @@
{ BUNDLE_NAME_ATTR, MESSAGE_KEY_ATTR }
};
+ private String[][] _requiredAttrs = null;
public BaseValidationRuleGrammar( AnnotationProcessorEnvironment env, Diagnostics diags,
RuntimeVersionChecker rvc )
{
super( env, diags, VERSION_9_0_STRING, rvc );
-
+
addMemberType( MESSAGE_KEY_ATTR, new MessageKeyType( null, this ) );
addMemberArrayGrammar( MESSAGE_ARGS_ATTR, new ValidationMessageArgsGrammar( env, diags, rvc ) );
addMemberType( BUNDLE_NAME_ATTR, new BundleNameType( null, this ) );
}
-
+ public BaseValidationRuleGrammar( AnnotationProcessorEnvironment env, Diagnostics diags,
+ RuntimeVersionChecker rvc, String[][] requiredAttrs )
+ {
+ this( env, diags, rvc );
+
+ _requiredAttrs = requiredAttrs;
+ }
+
+ public String[][] getRequiredAttrs()
+ {
+ return _requiredAttrs;
+ }
+
public String[][] getMutuallyExclusiveAttrs()
{
return MUTUALLY_EXCLUSIVE_ATTRS;
}
-
public String[][] getAttrDependencies()
{
Modified: incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java (original)
+++ incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/SimpleActionGrammar.java Wed Jun 22 12:25:21 2005
@@ -113,6 +113,7 @@
{
private static String[][] REQUIRED_SIMPLEACTION_ATTRS =
{
+ { CONDITION_ATTR },
{ PATH_ATTR, TILES_DEFINITION_ATTR, RETURN_ACTION_ATTR, NAVIGATE_TO_ATTR, ACTION_ATTR }
};
Modified: incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateCustomGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateCustomGrammar.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateCustomGrammar.java (original)
+++ incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateCustomGrammar.java Wed Jun 22 12:25:21 2005
@@ -20,21 +20,39 @@
import org.apache.beehive.netui.compiler.typesystem.env.AnnotationProcessorEnvironment;
import org.apache.beehive.netui.compiler.Diagnostics;
import org.apache.beehive.netui.compiler.RuntimeVersionChecker;
+import org.apache.beehive.netui.compiler.AnnotationGrammar;
public class ValidateCustomGrammar
extends BaseValidationRuleGrammar
{
- private static final String[][] REQUIRED_ATTRS = { { MESSAGE_ATTR, MESSAGE_KEY_ATTR } };
+ private static final String[][] REQUIRED_ATTRS = { { RULE_ATTR }, { MESSAGE_ATTR, MESSAGE_KEY_ATTR } };
+ private static final String[][] VARIABLE_REQUIRED_ATTRS = { { NAME_ATTR }, { VALUE_ATTR } };
public ValidateCustomGrammar( AnnotationProcessorEnvironment env, Diagnostics diagnostics,
RuntimeVersionChecker rvc )
{
super( env, diagnostics, rvc );
+ addMemberArrayGrammar( VARIABLES_ATTR, new ValidateCustomVariableGrammar() );
}
public String[][] getRequiredAttrs()
{
return REQUIRED_ATTRS;
+ }
+
+ private class ValidateCustomVariableGrammar
+ extends AnnotationGrammar
+ {
+ public ValidateCustomVariableGrammar()
+ {
+ super( ValidateCustomGrammar.this.getEnv(), ValidateCustomGrammar.this.getDiagnostics(),
+ null, ValidateCustomGrammar.this.getRuntimeVersionChecker() );
+ }
+
+ public String[][] getRequiredAttrs()
+ {
+ return VARIABLE_REQUIRED_ATTRS;
+ }
}
}
Modified: incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateTypeGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateTypeGrammar.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateTypeGrammar.java (original)
+++ incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateTypeGrammar.java Wed Jun 22 12:25:21 2005
@@ -33,12 +33,19 @@
public class ValidateTypeGrammar
extends BaseValidationRuleGrammar
{
+ private static final String[][] REQUIRED_ATTRS = { { TYPE_ATTR } };
+
public ValidateTypeGrammar( AnnotationProcessorEnvironment env, Diagnostics diags,
- RuntimeVersionChecker runtimeVersionChecker )
+ RuntimeVersionChecker runtimeVersionChecker )
{
super( env, diags, runtimeVersionChecker );
addMemberType( TYPE_ATTR, new PrimitiveTypeType() );
+ }
+
+ public String[][] getRequiredAttrs()
+ {
+ return REQUIRED_ATTRS;
}
private class PrimitiveTypeType
Modified: incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateValidWhenGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateValidWhenGrammar.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateValidWhenGrammar.java (original)
+++ incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidateValidWhenGrammar.java Wed Jun 22 12:25:21 2005
@@ -25,7 +25,7 @@
public class ValidateValidWhenGrammar
extends BaseValidationRuleGrammar
{
- private static final String[][] REQUIRED_ATTRS = { { MESSAGE_ATTR, MESSAGE_KEY_ATTR } };
+ private static final String[][] REQUIRED_ATTRS = { { CONDITION_ATTR }, { MESSAGE_ATTR, MESSAGE_KEY_ATTR } };
public ValidateValidWhenGrammar( AnnotationProcessorEnvironment env, Diagnostics diagnostics,
RuntimeVersionChecker rvc )
Modified: incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidationRulesContainerGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidationRulesContainerGrammar.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidationRulesContainerGrammar.java (original)
+++ incubator/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/ValidationRulesContainerGrammar.java Wed Jun 22 12:25:21 2005
@@ -32,12 +32,16 @@
addMemberGrammar( VALIDATE_REQUIRED_ATTR, new ValidateRequiredGrammar( env, diags, rvc ) );
addMemberGrammar( VALIDATE_RANGE_ATTR, new ValidateRangeGrammar( env, diags, rvc ) );
- addMemberGrammar( VALIDATE_MIN_LENGTH_ATTR, new BaseValidationRuleGrammar( env, diags, rvc ) );
- addMemberGrammar( VALIDATE_MAX_LENGTH_ATTR, new BaseValidationRuleGrammar( env, diags, rvc ) );
+ addMemberGrammar( VALIDATE_MIN_LENGTH_ATTR,
+ new BaseValidationRuleGrammar( env, diags, rvc, new String[][]{ { CHARS_ATTR } } ) );
+ addMemberGrammar( VALIDATE_MAX_LENGTH_ATTR,
+ new BaseValidationRuleGrammar( env, diags, rvc, new String[][]{ { CHARS_ATTR } } ) );
addMemberGrammar( VALIDATE_CREDIT_CARD_ATTR, new BaseValidationRuleGrammar( env, diags, rvc ) );
addMemberGrammar( VALIDATE_EMAIL_ATTR, new BaseValidationRuleGrammar( env, diags, rvc ) );
- addMemberGrammar( VALIDATE_MASK_ATTR, new BaseValidationRuleGrammar( env, diags, rvc ) );
- addMemberGrammar( VALIDATE_DATE_ATTR, new BaseValidationRuleGrammar( env, diags, rvc ) );
+ addMemberGrammar( VALIDATE_MASK_ATTR,
+ new BaseValidationRuleGrammar( env, diags, rvc, new String[][]{ { REGEX_ATTR } } ) );
+ addMemberGrammar( VALIDATE_DATE_ATTR,
+ new BaseValidationRuleGrammar( env, diags, rvc, new String[][]{ { PATTERN_ATTR } } ) );
addMemberGrammar( VALIDATE_TYPE_ATTR, new ValidateTypeGrammar( env, diags, rvc ) );
addMemberGrammar( VALIDATE_VALID_WHEN_ATTR, new ValidateValidWhenGrammar( env, diags, rvc ) );
addMemberArrayGrammar( VALIDATE_CUSTOM_ATTR, new ValidateCustomGrammar( env, diags, rvc ) );
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java Wed Jun 22 12:25:21 2005
@@ -933,7 +933,7 @@
/**
* A String version of the type information that can be used by tools or as runtime-accessable information,
* particularly to add generics to the type (generics are "erased" during compilation and are not available
- * to the runtime through reflection.
+ * to the runtime through reflection).
*/
String typeHint() default "";
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowNavigationHandler.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowNavigationHandler.java?rev=192976&r1=192975&r2=192976&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowNavigationHandler.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowNavigationHandler.java Wed Jun 22 12:25:21 2005
@@ -83,10 +83,12 @@
try
{
+ //
+ // We only forward to Page Flow actions if there's a page flow appropriate for this request.
+ //
ServletContext servletContext = ( ServletContext ) extContext;
FlowControllerFactory fcFactory = FlowControllerFactory.get( servletContext );
PageFlowController pfc = fcFactory.getPageFlowForRequest( new RequestContext( httpRequest, httpResponse ) );
- PageFlowUtils.getCurrentPageFlow( httpRequest );
if ( pfc != null )
{