Author: kentam Date: Tue Jan 25 14:32:29 2005 New Revision: 126435 URL: http://svn.apache.org/viewcvs?view=rev&rev=126435 Log: Fix BEEHIVE-187: default control threading is MULTI_THREADED i/o SINGLE_THREADED
Added additional compile time checking for duplicate property names. Tests: all DRTs Modified: incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java Modified: incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java?view=diff&rev=126435&p1=incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java&r1=126434&p2=incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java&r2=126435 ============================================================================== --- incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java (original) +++ incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBean.java Tue Jan 25 14:32:29 2005 @@ -164,6 +164,8 @@ Threading thr = (Threading)_implClass.getAnnotation(Threading.class); if ( thr != null ) _threadingPolicy = thr.value(); + else + _threadingPolicy = ThreadingPolicy.SINGLE_THREADED; // default to single-threaded ensureThreadingBehaviour(); } @@ -956,7 +958,8 @@ /** * The threading policy associated with the control implementation wrapped by this - * ControlBean. + * ControlBean. Initialized to null in order to avoid prematurely assuming single-threadedness + * during bean hookup. */ transient private ThreadingPolicy _threadingPolicy = null; Modified: incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java?view=diff&rev=126435&p1=incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java&r1=126434&p2=incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java&r2=126435 ============================================================================== --- incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java (original) +++ incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptControlInterface.java Tue Jan 25 14:32:29 2005 @@ -326,7 +326,11 @@ // // Detect the presence of locally declared bound or constrained properties + // Enforce property name (including prefix) uniqueness across all propertysets on this interface. // + + Set<String> propertyNames = new HashSet<String>(); + for (AptPropertySet propSet : propSets) { for (AptProperty prop : propSet.getProperties()) @@ -336,6 +340,19 @@ if (prop.isConstrained()) _hasConstrainedProperties = true; + + String propName = prop.getAccessorName(); + + if ( propertyNames.contains( propName ) ) + { + _env.getMessager().printError(_intfDecl.getPosition(), + "Duplicate property name " + propName + " found on property set '" + propSet.getShortName() + + "'. Consider using the PropertySet 'prefix' attribute to disambiguate."); + } + else + { + propertyNames.add( propName ); + } } }
