Author: slaws
Date: Thu May 1 07:51:22 2008
New Revision: 652542
URL: http://svn.apache.org/viewvc?rev=652542&view=rev
Log:
TUSCANY-2271 - Thanks for the patch Vamsi
Modified:
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/AService.java
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AServiceImpl.java
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AnotherAServiceImpl.java
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/resources/property.composite
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/PropertyAnnotationTestCase.java
Modified:
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java?rev=652542&r1=652541&r2=652542&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java
(original)
+++
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java
Thu May 1 07:51:22 2008
@@ -112,7 +112,16 @@
if (element != null && configuredProperty.getValue() != null) {
if (!(element.getAnchor() instanceof Constructor)) {
- instanceFactoryProvider.getInjectionSites().add(element);
+ if(element.getElementType() == ElementType.FIELD) {
+ Field field = (Field)element.getAnchor();
+ if(Modifier.isPublic(field.getModifiers())) {
+
instanceFactoryProvider.getInjectionSites().add(element);
+ } else
if(field.getAnnotation(org.osoa.sca.annotations.Property.class) != null) {
+
instanceFactoryProvider.getInjectionSites().add(element);
+ }
+ } else {
+ instanceFactoryProvider.getInjectionSites().add(element);
+ }
}
//Class propertyJavaType =
JavaIntrospectionHelper.getBaseType(element.getType(),
element.getGenericType());
Modified:
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/AService.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/AService.java?rev=652542&r1=652541&r2=652542&view=diff
==============================================================================
---
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/AService.java
(original)
+++
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/AService.java
Thu May 1 07:51:22 2008
@@ -85,4 +85,5 @@
public int getP21Size();
+ public String getP22();
}
Modified:
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AServiceImpl.java?rev=652542&r1=652541&r2=652542&view=diff
==============================================================================
---
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AServiceImpl.java
(original)
+++
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AServiceImpl.java
Thu May 1 07:51:22 2008
@@ -79,6 +79,8 @@
@Property(required=false)
public Integer[] p21; // an array and injected via
field
+
+ protected String p22; // unannotated protected field should
not be injected
public String getName() {
return "AService";
@@ -257,5 +259,9 @@
return p21.length;
}
+ public String getP22() {
+ return p22;
+ }
}
+
Modified:
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AnotherAServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AnotherAServiceImpl.java?rev=652542&r1=652541&r2=652542&view=diff
==============================================================================
---
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AnotherAServiceImpl.java
(original)
+++
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/impl/AnotherAServiceImpl.java
Thu May 1 07:51:22 2008
@@ -31,6 +31,8 @@
public boolean p14SetterIsCalled = false;
+ protected String p22; // unannotated protected field should not
be injected
+
public String getName() {
return "AService";
}
@@ -163,4 +165,8 @@
public int getP21Size() {
return -1;
}
+
+ public String getP22() {
+ return p22;
+ }
}
Modified:
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/resources/property.composite
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/resources/property.composite?rev=652542&r1=652541&r2=652542&view=diff
==============================================================================
---
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/resources/property.composite
(original)
+++
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/main/resources/property.composite
Thu May 1 07:51:22 2008
@@ -137,5 +137,6 @@
class="org.apache.tuscany.sca.vtest.javaapi.annotations.property.impl.AnotherAServiceImpl"
/>
<property name="p13">p13</property>
<property name="p14">p14</property>
+ <property name="p22">p22</property>
</component>
</composite>
Modified:
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/PropertyAnnotationTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/PropertyAnnotationTestCase.java?rev=652542&r1=652541&r2=652542&view=diff
==============================================================================
---
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/PropertyAnnotationTestCase.java
(original)
+++
incubator/tuscany/java/sca/vtest/java-api/annotations/property/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/property/PropertyAnnotationTestCase.java
Thu May 1 07:51:22 2008
@@ -253,4 +253,20 @@
}
+ /**
+ * Lines 1349 to 1352:<br>
+ * 1.8.13. "@Property"<br>
+ * ...<br>
+ * Properties may also be injected via public setter methods even when the
"@Property" annotation is not
+ * present. However, the "@Property" annotation must be used in order to
inject a property onto a non-public
+ * field. In the case where there is no "@Property" annotation, the name
of the property is the same as the
+ * name of the field or setter.
+ * <p>
+ * p22 - unannotated protected field which should not be injected
+ */
+ @Test
+ public void atProperty7() throws Exception {
+ AService anotherAService = domain.getService(AService.class,
"AnotherAComponent");
+ Assert.assertNull(anotherAService.getP22());
+ }
}