You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by al...@apache.org on 2016/06/05 19:41:46 UTC

svn commit: r1746944 - in /aries/trunk/blueprint/blueprint-maven-plugin/src: main/java/org/apache/aries/blueprint/plugin/ main/java/org/apache/aries/blueprint/plugin/model/ test/java/org/apache/aries/blueprint/plugin/

Author: alien11689
Date: Sun Jun  5 19:41:46 2016
New Revision: 1746944

URL: http://svn.apache.org/viewvc?rev=1746944&view=rev
Log:
[ARIES-1563] Add field-injection attribute only if bean needs it

Modified:
    aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java
    aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java?rev=1746944&r1=1746943&r2=1746944&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java Sun Jun  5 19:41:46 2016
@@ -145,7 +145,9 @@ public class Generator implements Proper
         writer.writeStartElement("bean");
         writer.writeAttribute("id", bean.id);
         writer.writeAttribute("class", bean.clazz.getName());
-        writer.writeAttribute("ext", NS_EXT, "field-injection", "true");
+        if(bean.needFieldInjection()) {
+            writer.writeAttribute("ext", NS_EXT, "field-injection", "true");
+        }
         if (bean.isPrototype) {
             writer.writeAttribute("scope", "prototype");
         }

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java?rev=1746944&r1=1746943&r2=1746944&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java Sun Jun  5 19:41:46 2016
@@ -200,4 +200,12 @@ public class Bean extends BeanRef {
     }
 
 
+    public boolean needFieldInjection() {
+        for (Property property : properties) {
+            if (property.isField) {
+                return true;
+            }
+        }
+        return false;
+    }
 }

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java?rev=1746944&r1=1746943&r2=1746944&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java Sun Jun  5 19:41:46 2016
@@ -29,14 +29,16 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
 public class Property implements Comparable<Property> {
-    public String name;
-    public String ref;
-    public String value;
+    public final String name;
+    public final String ref;
+    public final String value;
+    public final boolean isField;
 
-    public Property(String name, String ref, String value) {
+    public Property(String name, String ref, String value, boolean isField) {
         this.name = name;
         this.ref = ref;
         this.value = value;
+        this.isField = isField;
     }
 
     public static Property create(Matcher matcher, Field field) {
@@ -44,9 +46,9 @@ public class Property implements Compara
         if (needsInject(field)) {
             BeanRef matching = matcher.getMatching(new BeanRef(field));
             String ref = (matching == null) ? getRefName(field) : matching.id;
-            return new Property(field.getName(), ref, null);
+            return new Property(field.getName(), ref, null, true);
         } else if (value != null) {
-            return new Property(field.getName(), null, cleanValue(value.value()));
+            return new Property(field.getName(), null, cleanValue(value.value()), true);
         } else {
             // Field is not a property
             return null;
@@ -61,14 +63,14 @@ public class Property implements Compara
 
         Value value = method.getAnnotation(Value.class);
         if (value != null) {
-            return new Property(propertyName, null, cleanValue(value.value()));
+            return new Property(propertyName, null, cleanValue(value.value()), false);
         }
 
         if (needsInject(method)) {
             BeanRef beanRef = new BeanRef(method);
             BeanRef matching = matcher.getMatching(beanRef);
             String ref = (matching == null) ? beanRef.id : matching.id;
-            return new Property(propertyName, ref, null);
+            return new Property(propertyName, ref, null, false);
         }
 
         return null;

Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java?rev=1746944&r1=1746943&r2=1746944&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java Sun Jun  5 19:41:46 2016
@@ -164,6 +164,7 @@ public class GeneratorTest {
     public void testGenerateBeanWithConstructorInjection() throws Exception {
         // Bean with constructor injection
         Node myBean5 = getBeanById("myBean5");
+        assertXpathDoesNotExist(myBean5, "@field-injection");
         assertXpathEquals(myBean5, "argument[1]/@ref", "my2");
         assertXpathEquals(myBean5, "argument[2]/@ref", "my1");
         assertXpathEquals(myBean5, "argument[3]/@ref", "serviceABImpl");
@@ -266,6 +267,7 @@ public class GeneratorTest {
     @Test
     public void testSetterInjection() throws Exception {
         Node bean1 = getBeanById("beanWithSetters");
+        assertXpathDoesNotExist(bean1, "@field-injection");
 
         assertXpathDoesNotExist(bean1, "property[@name='useless']");
         assertXpathDoesNotExist(bean1, "property[@name='iOnlyHaveSetPrefix']");