You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2008/04/04 23:28:26 UTC

svn commit: r644938 - in /incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src: main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/impl/ main/resourc...

Author: kwilliams
Date: Fri Apr  4 14:28:25 2008
New Revision: 644938

URL: http://svn.apache.org/viewvc?rev=644938&view=rev
Log:
Applying Gilbert's patch for TUSCANY-2199

Modified:
    incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/AService.java
    incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/impl/AServiceImpl.java
    incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/resources/ab.composite
    incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/AService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/AService.java?rev=644938&r1=644937&r2=644938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/AService.java (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/AService.java Fri Apr  4 14:28:25 2008
@@ -34,7 +34,17 @@
     public String getB7Name();
     public String getB8Name();
     public String getB9Name();
-
+    public String getB10Name();
+    public String getB11Name();
+    public String getB12Name();
+    public String getB13Name(int i);
+    public String getB14Name(int i);
+    public String getB15Name(int i);
+    
+    public int getB13Size();
+    public int getB14Size();
+    public int getB15Size();
+    
     public boolean isB7SetterCalled();
     
 }

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/impl/AServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/impl/AServiceImpl.java?rev=644938&r1=644937&r2=644938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/impl/AServiceImpl.java (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/impl/AServiceImpl.java Fri Apr  4 14:28:25 2008
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.sca.vtest.javaapi.annotations.reference.impl;
 
+import java.util.List;
+
 import org.apache.tuscany.sca.vtest.javaapi.annotations.reference.AService;
 import org.apache.tuscany.sca.vtest.javaapi.annotations.reference.BService;
 import org.osoa.sca.annotations.Reference;
@@ -48,6 +50,22 @@
 
     protected BService bNine; // setter injection (different reference and field name)
 
+    @Reference(required=false)
+    protected BService b10; // multiplicity="0..1" and required=false
+
+    @Reference(required=false)
+    protected BService b11; // multiplicity="1..1" and required=false
+
+    protected BService b12; // multiplicity="1..1" and required=true at setter
+
+    @Reference(required=false)
+    protected List<BService> b13; // multiplicity="0..n" and required=false
+
+    protected List<BService> b14; // multiplicity="1..n" and required=false at setter
+
+    @Reference(name="b15", required=true)
+    protected BService[] b15s; // multiplicity="1..n" and required=true
+
     protected boolean b7SetterCalled;
 
     public AServiceImpl(@Reference(name = "b2")
@@ -77,6 +95,16 @@
         this.bNine = bNine;
     }
     
+    @Reference(required=true)
+    public void setB12(BService b12) {
+        this.b12 = b12;
+    }
+    
+    @Reference(required=true)
+    public void setB14(List<BService> b14) {
+        this.b14 = b14;
+    }
+    
     public String getName() {
         return "AService";
     }
@@ -117,7 +145,46 @@
         return bNine.getName();
     }
     
+    public String getB10Name() {
+        return b10.getName();
+    }
+
+    public String getB11Name() {
+        return b11.getName();
+    }
+    
+    public String getB12Name() {
+        return b12.getName();
+    }
+    
+    public String getB13Name(int i) {
+    	BService b = (BService) b13.get(i);
+        return b.getName();
+    }
+    
+    public String getB14Name(int i) {
+    	BService b = (BService) b14.get(i);
+        return b.getName();
+    }
+    
+    public String getB15Name(int i) {
+        return b15s[i].getName();
+    }
+    
+    public int getB13Size() {
+    	return b13.size();
+    }
+    
+    public int getB14Size() {
+    	return b14.size();
+    }
+    
+    public int getB15Size() {
+    	return b15s.length;
+    }
+    
     public boolean isB7SetterCalled() {
         return b7SetterCalled;
     }
+
 }

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/resources/ab.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/resources/ab.composite?rev=644938&r1=644937&r2=644938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/resources/ab.composite (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/main/resources/ab.composite Fri Apr  4 14:28:25 2008
@@ -32,7 +32,13 @@
         <reference name="b7" target="BComponent"/>
         <reference name="b8" target="BComponent"/>
         <reference name="b9" target="BComponent"/>
-     </component>   
+        <reference name="b10" multiplicity="0..1" target="BComponent"/>
+        <reference name="b11" multiplicity="1..1" target="BComponent"/>
+        <reference name="b12" multiplicity="1..1" target="BComponent"/>
+        <reference name="b13" multiplicity="0..n" target=""/>
+        <reference name="b14" multiplicity="1..n" target="BComponent"/>
+        <reference name="b15" multiplicity="1..n" target="BComponent BComponent"/>
+    </component>   
     
     <component name="BComponent">
         <implementation.java class="org.apache.tuscany.sca.vtest.javaapi.annotations.reference.impl.BServiceImpl"/>

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java?rev=644938&r1=644937&r2=644938&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/reference/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/reference/ReferenceAnnotationTestCase.java Fri Apr  4 14:28:25 2008
@@ -30,7 +30,7 @@
 
 /**
  * This test class tests the "@Reference" annotation described in section
- * 1.8.1.4
+ * 1.8.14
  */
 public class ReferenceAnnotationTestCase {
 
@@ -44,7 +44,7 @@
             System.out.println("Setting up");
             domain = SCADomain.newInstance(compositeName);
             a = domain.getService(AService.class, "AComponent");
-
+            
         } catch (Exception ex) {
             ex.printStackTrace();
         }
@@ -151,12 +151,51 @@
      * Reference and field have different names<br>
      * B8 is field injected<br>
      * B9 is setter injected
-     * 
-     * @TODO - Would be best to explicitly test "required" attribute
      */
     @Test
     public void atReference4() throws Exception {
         Assert.assertEquals("BService", a.getB8Name());
         Assert.assertEquals("BService", a.getB9Name());
+    }
+
+    /**
+     * Lines 1457 to 1459<br>
+     * If the reference is not an array or collection, then the implied
+     * component type has a reference with a multiplicity of either 0..1 or
+     * 1..1 depending on the value of the @Reference required attribute –
+     * 1..1 applies if required=true.<br>
+     * <p>
+     * B10 is field injected, required=false, and multiplicity="0..1"<br>
+     * B11 is field injected, required=false, and multiplicity="1..1"<br>
+     * B12 is setter injected, required=true, and multiplicity="1..1"
+
+     */
+    @Test
+    public void atReference5() throws Exception {
+        Assert.assertEquals("BService", a.getB10Name());
+        Assert.assertEquals("BService", a.getB11Name());
+        Assert.assertEquals("BService", a.getB12Name());
+    }
+
+    /**
+     * Lines 1461 to 1463<br>
+     * If the reference is defined as an array or as a java.util.Collection,
+     * then the implied component type has a reference with a multiplicity of
+     * either 1..n or 0..n, depending on whether the required attribute of the
+     * "@Reference" annotation is set to true or false – 1..n applies if
+     * required=true.<br>
+     * <p>
+     * B13 is a java.util.List, field injected, required=false, multiplicity="0..n", and no target<br>
+     * B14 is a java.util.List, setter injected, required=true, multiplicity="1..n", and one target<br>
+     * B15 is an array, field injected, required=true, multiplicity="1..n", and two targets
+     */
+    @Test
+    public void atReference6() throws Exception {
+        Assert.assertEquals(0, a.getB13Size());
+        Assert.assertEquals("BService", a.getB14Name(0));
+        Assert.assertEquals(1, a.getB14Size());
+        Assert.assertEquals("BService", a.getB15Name(0));
+        Assert.assertEquals("BService", a.getB15Name(1));
+        Assert.assertEquals(2, a.getB15Size());
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org