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/05/11 08:45:15 UTC
svn commit: r169593 - in /incubator/beehive/trunk:
controls/src/api/org/apache/beehive/controls/api/bean/
controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/
netui/src/pageflow/org/apache/beehive/netui/pageflow/util/
netui/src/util/org/apache/beehive/netui/core/urltemplates/
Author: rich
Date: Tue May 10 23:45:13 2005
New Revision: 169593
URL: http://svn.apache.org/viewcvs?rev=169593&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-608 : Overriding Controls annotated member in the inheriting page flow cause exception
Also, applied Carlin's patch to address http://issues.apache.org/jira/browse/BEEHIVE-688 : beehive-url-template-config.xml tomcat warning
tests: drt in trunk (WinXP)
BB: self (linux)
Removed:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/
Modified:
incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/bean/Controls.java
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/ControlClientAnnotationProcessor.java
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/strings.properties
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urltemplates/URLTemplatesFactory.java
Modified: incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/bean/Controls.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/bean/Controls.java?rev=169593&r1=169592&r2=169593&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/bean/Controls.java (original)
+++ incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/bean/Controls.java Tue May 10 23:45:13 2005
@@ -149,7 +149,7 @@
}
throw new ControlException( "Exception trying to run client initializer: " + e.getClass().getName() + ", " +
- e.getMessage() );
+ e.getMessage(), e );
}
}
}
Modified: incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/ControlClientAnnotationProcessor.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/ControlClientAnnotationProcessor.java?rev=169593&r1=169592&r2=169593&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/ControlClientAnnotationProcessor.java (original)
+++ incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/ControlClientAnnotationProcessor.java Tue May 10 23:45:13 2005
@@ -263,35 +263,62 @@
private void checkControlField( FieldDeclaration f )
{
- TypeMirror fieldType = f.getType();
+ TypeMirror fieldType = f.getType();
+ // Make sure that this field doesn't try to override another that's inherited.
+ String fieldName = f.getSimpleName();
+ TypeDeclaration declaringType = f.getDeclaringType();
+
+ if ( declaringType instanceof ClassDeclaration )
+ {
+ for ( ClassType i = ( ( ClassDeclaration ) declaringType ).getSuperclass(); i != null; i = i.getSuperclass() )
+ {
+ ClassDeclaration decl = i.getDeclaration();
+
+ if ( decl != null )
+ {
+ for ( FieldDeclaration baseClassField : decl.getFields() )
+ {
+ if ( fieldName.equals( baseClassField.getSimpleName() ) )
+ {
+ Collection<Modifier> modifiers = baseClassField.getModifiers();
+
+ if ( modifiers.contains( Modifier.PROTECTED ) || modifiers.contains( Modifier.PUBLIC ) )
+ {
+ printError( f, "control.field.override", decl.getQualifiedName() );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Valid control field instances can be of an interface type
+ // or a class type.
+ if ( fieldType instanceof InterfaceType )
+ {
+ // Valid interface type decls must be annotated w/ @ControlInterface
+ // or @ControlExtension.
+ Declaration fieldTypeDecl = ((InterfaceType)fieldType).getDeclaration();
+ if ( fieldTypeDecl.getAnnotation(ControlInterface.class) == null &&
+ fieldTypeDecl.getAnnotation(ControlExtension.class) == null )
+ printError( f, "control.field.bad.interfacetype" );
+ }
+ else if ( fieldType instanceof ClassType )
+ {
+ // Valid class type decls must implements the ControlBean API.
+
+ // Walk the implementation inheritance hierarchy, seeing if one of the
+ // classes implements ControlBean.
+ //
+ // REVIEW: Does NOT check if the interfaces might implement ControlBean!
+ // This is unnecessary for our impl, since our generated bean class directly
+ // implements ControlBean, but other impls may choose to do otherwise.
+ boolean foundControlBean = false;
+ ClassType classType = (ClassType)fieldType;
- // Valid control field instances can be of an interface type
- // or a class type.
- if ( fieldType instanceof InterfaceType )
- {
- // Valid interface type decls must be annotated w/ @ControlInterface
- // or @ControlExtension.
- Declaration fieldTypeDecl = ((InterfaceType)fieldType).getDeclaration();
- if ( fieldTypeDecl.getAnnotation(ControlInterface.class) == null &&
- fieldTypeDecl.getAnnotation(ControlExtension.class) == null )
- printError( f, "control.field.bad.interfacetype" );
- }
- else if ( fieldType instanceof ClassType )
- {
- // Valid class type decls must implements the ControlBean API.
-
- // Walk the implementation inheritance hierarchy, seeing if one of the
- // classes implements ControlBean.
- //
- // REVIEW: Does NOT check if the interfaces might implement ControlBean!
- // This is unnecessary for our impl, since our generated bean class directly
- // implements ControlBean, but other impls may choose to do otherwise.
- boolean foundControlBean = false;
- ClassType classType = (ClassType)fieldType;
-
- if (classType.getDeclaration() != null)
- {
+ if (classType.getDeclaration() != null)
+ {
outer: while ( classType != null )
{
Collection<InterfaceType> intfs = classType.getSuperinterfaces();
@@ -364,7 +391,6 @@
printError( f, "control.field.type.malformed" );
}
- TypeDeclaration declaringType = f.getDeclaringType();
assert declaringType != null : "Field " + f + " has no declaring type!";
if ( declaringType.getDeclaringType() != null )
Modified: incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/strings.properties
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/strings.properties?rev=169593&r1=169592&r2=169593&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/strings.properties (original)
+++ incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/apt/strings.properties Tue May 10 23:45:13 2005
@@ -24,6 +24,9 @@
A control field can exist only within the top-level class. \
Move fields marked with the Control annotation to just inside the top-level class.
+control.field.override=\
+This control field conflicts with another of the same name in superclass {0}.
+
control.public.interface.not.found = \
Cannot find the public interface for this control. \
Verify that the public interface for this control is available in this project.
Modified: incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urltemplates/URLTemplatesFactory.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urltemplates/URLTemplatesFactory.java?rev=169593&r1=169592&r2=169593&view=diff
==============================================================================
--- incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urltemplates/URLTemplatesFactory.java (original)
+++ incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urltemplates/URLTemplatesFactory.java Tue May 10 23:45:13 2005
@@ -141,7 +141,7 @@
else
{
// No descriptor
- _log.warn( "Could not find URL template descriptor at path " + _configFilePath );
+ _log.info( "Running without URL template descriptor, " + _configFilePath );
}
}
catch ( XmlException xe )