You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/10/15 22:53:21 UTC

svn commit: r825650 - in /tuscany/java/sca/modules/implementation-java/src: main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/

Author: antelder
Date: Thu Oct 15 20:53:21 2009
New Revision: 825650

URL: http://svn.apache.org/viewvc?rev=825650&view=rev
Log:
Fix JCA900011 - @Property on a constructor must not have requoired=false

Modified:
    tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java
    tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java
    tuscany/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java

Modified: tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java?rev=825650&r1=825649&r2=825650&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java (original)
+++ tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java Thu Oct 15 20:53:21 2009
@@ -174,6 +174,10 @@
             if ("".equals(name)) {
                 name = parameter.getName();
             }
+            
+            if (!getRequired(annotation)) {
+                throw new InvalidPropertyException("JCA_90014 Constructor property must not have required=false: " + type.getName());
+            }
 
             JavaElementImpl prop = properties.get(name);
             // Setter override field
@@ -192,6 +196,7 @@
     }
 
     protected abstract String getName(A annotation);
+    protected abstract boolean getRequired(A annotation);
 
     protected abstract void initProperty(Property property, A annotation) throws IntrospectionException;
 

Modified: tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java?rev=825650&r1=825649&r2=825650&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java (original)
+++ tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java Thu Oct 15 20:53:21 2009
@@ -43,4 +43,8 @@
         property.setMustSupply(annotation.required());
     }
 
+    @Override
+    protected boolean getRequired(Property annotation) {
+        return annotation.required();
+    }
 }

Modified: tuscany/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java?rev=825650&r1=825649&r2=825650&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java (original)
+++ tuscany/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java Thu Oct 15 20:53:21 2009
@@ -142,6 +142,11 @@
         protected String getName(Bar annotation) {
             return "test";
         }
+
+        @Override
+        protected boolean getRequired(Bar annotation) {
+            return true;
+        }
     }
 
     private static class Foo {