From ccb626cb08f6871d9dc3eafcfb5a3cc515f3704c Mon Sep 17 00:00:00 2001 From: antelder Date: Thu, 15 Oct 2009 20:53:21 +0000 Subject: Fix JCA900011 - @Property on a constructor must not have requoired=false git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@825650 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/introspect/impl/AbstractPropertyProcessor.java | 5 +++++ .../sca/implementation/java/introspect/impl/PropertyProcessor.java | 4 ++++ .../java/introspect/impl/TestAbstractPropertyProcessorTestCase.java | 5 +++++ 3 files changed, 14 insertions(+) (limited to 'java/sca') diff --git a/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java b/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java index 818e9ad048..9154b10ed5 100644 --- a/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java +++ b/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java @@ -174,6 +174,10 @@ public abstract class AbstractPropertyProcessor extends Ba 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 @@ public abstract class AbstractPropertyProcessor extends Ba } protected abstract String getName(A annotation); + protected abstract boolean getRequired(A annotation); protected abstract void initProperty(Property property, A annotation) throws IntrospectionException; diff --git a/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java b/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java index a755146997..4cbd5c013c 100644 --- a/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java +++ b/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PropertyProcessor.java @@ -43,4 +43,8 @@ public class PropertyProcessor extends AbstractPropertyProcessor { property.setMustSupply(annotation.required()); } + @Override + protected boolean getRequired(Property annotation) { + return annotation.required(); + } } diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java index 3b56d146a4..6cdc9224bf 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/TestAbstractPropertyProcessorTestCase.java @@ -142,6 +142,11 @@ public class TestAbstractPropertyProcessorTestCase { protected String getName(Bar annotation) { return "test"; } + + @Override + protected boolean getRequired(Bar annotation) { + return true; + } } private static class Foo { -- cgit v1.2.3