Added: 
felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/di/OptionalDependencies.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/di/OptionalDependencies.java?rev=602115&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/di/OptionalDependencies.java
 (added)
+++ 
felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/di/OptionalDependencies.java
 Fri Dec  7 07:00:34 2007
@@ -0,0 +1,372 @@
+package org.apache.felix.ipojo.test.scenarios.dependency.di;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.architecture.InstanceDescription;
+import org.apache.felix.ipojo.test.scenarios.service.CheckService;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+
+public class OptionalDependencies extends TestCase {
+       
+       ComponentInstance instance1, instance2, instance3, instance4, instance5;
+       ComponentInstance fooProvider;
+       
+       public OptionalDependencies(BundleContext bc) {super(bc); }
+       
+       public void setUp() {
+               try {
+                       Properties prov = new Properties();
+                       prov.put("name", "FooProvider");
+                       fooProvider = Utils.getFactoryByName(context, 
"FooProviderType-1").createComponentInstance(prov);
+                       fooProvider.stop();
+                       
+                       Properties i1 = new Properties();
+                       i1.put("name", "Simple");
+                       instance1 = Utils.getFactoryByName(context, 
"DISimpleOptionalCheckServiceProvider").createComponentInstance(i1);
+               
+                       Properties i2 = new Properties();
+                       i2.put("name", "Void");
+                       instance2 = Utils.getFactoryByName(context, 
"DIVoidOptionalCheckServiceProvider").createComponentInstance(i2);
+               
+                       Properties i3 = new Properties();
+                       i3.put("name", "Object");
+                       instance3 = Utils.getFactoryByName(context, 
"DIObjectOptionalCheckServiceProvider").createComponentInstance(i3);
+               
+                       Properties i4 = new Properties();
+                       i4.put("name", "Ref");
+                       instance4 = Utils.getFactoryByName(context, 
"DIRefOptionalCheckServiceProvider").createComponentInstance(i4);
+                       
+                       Properties i5 = new Properties();
+            i5.put("name", "Both");
+            instance5 = Utils.getFactoryByName(context, 
"DIBothOptionalCheckServiceProvider").createComponentInstance(i5);
+               } catch(Exception e) { fail(e.getMessage()); }          
+       }
+       
+       public void tearDown() {
+               instance1.dispose();
+               instance2.dispose();
+               instance3.dispose();
+               instance4.dispose();
+               instance5.dispose();
+               fooProvider.dispose();
+               instance1 = null;
+               instance2 = null;
+               instance3 = null;
+               instance4 = null;
+               instance5 = null;
+               fooProvider = null;
+       }
+       
+       public void testSimple() {
+               ServiceReference arch_ref = 
Utils.getServiceReferenceByName(context, Architecture.class.getName(), 
instance1.getInstanceName());
+               assertNotNull("Check architecture availability", arch_ref);
+               InstanceDescription id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 1", id.getState() == 
ComponentInstance.VALID);
+               
+               ServiceReference cs_ref = 
Utils.getServiceReferenceByName(context, CheckService.class.getName(), 
instance1.getInstanceName());
+               assertNotNull("Check CheckService availability", cs_ref);
+               CheckService cs = (CheckService) context.getService(cs_ref);
+               Properties props = cs.getProps();
+               
+               //Check properties
+               assertFalse("check CheckService invocation - 1", 
((Boolean)props.get("result")).booleanValue()); // False is returned (nullable)
+               assertEquals("check void bind invocation - 1", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation - 1", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation - 1", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation - 1", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation - 1", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation - 1", 
((Integer)props.get("refU")).intValue(), 0);
+               assertNull("Check FS invocation (object) - 1", 
props.get("object"));
+               assertEquals("Check FS invocation (int) - 1", 
((Integer)props.get("int")).intValue(), 5);
+               assertEquals("Check FS invocation (long) - 1", 
((Long)props.get("long")).longValue(), 5);
+               assertEquals("Check FS invocation (double) - 1", 
((Double)props.get("double")).doubleValue(), 5.0);
+               
+               fooProvider.start();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 2", id.getState() == 
ComponentInstance.VALID);
+               
+               assertNotNull("Check CheckService availability", cs_ref);
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               
+               //Check properties
+               assertTrue("check CheckService invocation - 2", 
((Boolean)props.get("result")).booleanValue()); // True, a provider is there
+               assertEquals("check void bind invocation - 2", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation - 2", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation - 2", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation - 2", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation - 2", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation - 2", 
((Integer)props.get("refU")).intValue(), 0);
+               assertNotNull("Check FS invocation (object) - 2", 
props.get("object"));
+               assertEquals("Check FS invocation (int) - 2", 
((Integer)props.get("int")).intValue(), 1);
+               assertEquals("Check FS invocation (long) - 2", 
((Long)props.get("long")).longValue(), 1);
+               assertEquals("Check FS invocation (double) - 2", 
((Double)props.get("double")).doubleValue(), 1.0);
+               
+               fooProvider.stop();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 3", id.getState() == 
ComponentInstance.VALID);
+               
+               id = null;
+               cs = null;
+               context.ungetService(arch_ref);
+               context.ungetService(cs_ref);           
+       }
+       
+       public void testVoid() {
+               ServiceReference arch_ref = 
Utils.getServiceReferenceByName(context, Architecture.class.getName(), 
instance2.getInstanceName());
+               assertNotNull("Check architecture availability", arch_ref);
+               InstanceDescription id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 1", id.getState() == 
ComponentInstance.VALID);
+               
+               ServiceReference cs_ref = 
Utils.getServiceReferenceByName(context, CheckService.class.getName(), 
instance2.getInstanceName());
+               assertNotNull("Check CheckService availability", cs_ref);
+               CheckService cs = (CheckService) context.getService(cs_ref);
+               Properties props = cs.getProps();
+               //Check properties
+               assertFalse("check CheckService invocation - 1", 
((Boolean)props.get("result")).booleanValue()); // False is returned (nullable)
+               assertEquals("check void bind invocation - 1", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation - 1", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation - 1", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation - 1", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation - 1", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation - 1", 
((Integer)props.get("refU")).intValue(), 0);
+               assertNull("Check FS invocation (object) - 1", 
props.get("object"));
+               assertEquals("Check FS invocation (int) - 1", 
((Integer)props.get("int")).intValue(), 5);
+               assertEquals("Check FS invocation (long) - 1", 
((Long)props.get("long")).longValue(), 5);
+               assertEquals("Check FS invocation (double) - 1", 
((Double)props.get("double")).doubleValue(), 5.0);
+               
+               fooProvider.start();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 2", id.getState() == 
ComponentInstance.VALID);
+               
+               assertNotNull("Check CheckService availability", cs_ref);
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               //Check properties
+               assertTrue("check CheckService invocation -2", 
((Boolean)props.get("result")).booleanValue());
+               assertEquals("check void bind invocation -2", 
((Integer)props.get("voidB")).intValue(), 1);
+               assertEquals("check void unbind callback invocation -2", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -2", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation -2", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -2", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation -2", 
((Integer)props.get("refU")).intValue(), 0);
+               assertNotNull("Check FS invocation (object) - 2", 
props.get("object"));
+               assertEquals("Check FS invocation (int) - 2", 
((Integer)props.get("int")).intValue(), 1);
+               assertEquals("Check FS invocation (long) - 2", 
((Long)props.get("long")).longValue(), 1);
+               assertEquals("Check FS invocation (double) - 2", 
((Double)props.get("double")).doubleValue(), 1.0);
+               
+               fooProvider.stop();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 3", id.getState() == 
ComponentInstance.VALID);
+               
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               //Check properties
+               assertFalse("check CheckService invocation -3", 
((Boolean)props.get("result")).booleanValue());
+               assertEquals("check void bind invocation -3", 
((Integer)props.get("voidB")).intValue(), 1);
+               assertEquals("check void unbind callback invocation -3 
("+((Integer)props.get("voidU")) + ")", 
((Integer)props.get("voidU")).intValue(), 1);
+               assertEquals("check object bind callback invocation -3", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation -3", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -3", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation -3", 
((Integer)props.get("refU")).intValue(), 0);
+               assertNull("Check FS invocation (object) - 3", 
props.get("object"));
+               assertEquals("Check FS invocation (int) - 3", 
((Integer)props.get("int")).intValue(), 5);
+               assertEquals("Check FS invocation (long) - 3", 
((Long)props.get("long")).longValue(), 5);
+               assertEquals("Check FS invocation (double) - 3", 
((Double)props.get("double")).doubleValue(), 5.0);
+               
+               id = null;
+               cs = null;
+               context.ungetService(arch_ref);
+               context.ungetService(cs_ref);   
+       }
+       
+       public void testObject() {
+               ServiceReference arch_ref = 
Utils.getServiceReferenceByName(context, Architecture.class.getName(), 
instance3.getInstanceName());
+               assertNotNull("Check architecture availability", arch_ref);
+               InstanceDescription id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 1", id.getState() == 
ComponentInstance.VALID);
+               
+               ServiceReference cs_ref = 
Utils.getServiceReferenceByName(context, CheckService.class.getName(), 
instance3.getInstanceName());
+               assertNotNull("Check CheckService availability", cs_ref);
+               CheckService cs = (CheckService) context.getService(cs_ref);
+               Properties props = cs.getProps();
+               //Check properties
+               assertFalse("check CheckService invocation -1", 
((Boolean)props.get("result")).booleanValue()); // False is returned (nullable)
+               assertEquals("check void bind invocation -1", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation -1", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -1", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation -1", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -1", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation -1", 
((Integer)props.get("refU")).intValue(), 0);
+               
+               fooProvider.start();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 2", id.getState() == 
ComponentInstance.VALID);
+               
+               assertNotNull("Check CheckService availability", cs_ref);
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               //Check properties
+               assertTrue("check CheckService invocation -2", 
((Boolean)props.get("result")).booleanValue());
+               assertEquals("check void bind invocation -2", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation -2", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -2 (" + 
((Integer)props.get("objectB")).intValue() + ")", 
((Integer)props.get("objectB")).intValue(), 1);
+               assertEquals("check object unbind callback invocation -2", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -2", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation -2", 
((Integer)props.get("refU")).intValue(), 0);
+               
+               fooProvider.stop();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 3", id.getState() == 
ComponentInstance.VALID);
+               
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               //Check properties
+               assertFalse("check CheckService invocation -3", 
((Boolean)props.get("result")).booleanValue());
+               assertEquals("check void bind invocation -3", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation -3", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -3", 
((Integer)props.get("objectB")).intValue(), 1);
+               assertEquals("check object unbind callback invocation -3", 
((Integer)props.get("objectU")).intValue(), 1);
+               assertEquals("check ref bind callback invocation -3", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation -3", 
((Integer)props.get("refU")).intValue(), 0);
+               
+               id = null;
+               cs = null;
+               context.ungetService(arch_ref);
+               context.ungetService(cs_ref);           
+       }
+       
+       public void testRef() {
+               ServiceReference arch_ref = 
Utils.getServiceReferenceByName(context, Architecture.class.getName(), 
instance4.getInstanceName());
+               assertNotNull("Check architecture availability", arch_ref);
+               InstanceDescription id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 1", id.getState() == 
ComponentInstance.VALID);
+               
+               ServiceReference cs_ref = 
Utils.getServiceReferenceByName(context, CheckService.class.getName(), 
instance4.getInstanceName());
+               assertNotNull("Check CheckService availability", cs_ref);
+               CheckService cs = (CheckService) context.getService(cs_ref);
+               Properties props = cs.getProps();
+               //Check properties
+               assertFalse("check CheckService invocation -1", 
((Boolean)props.get("result")).booleanValue()); // False is returned (nullable)
+               assertEquals("check void bind invocation -1", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation -1", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -1", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation -1", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -1", 
((Integer)props.get("refB")).intValue(), 0);
+               assertEquals("check ref unbind callback invocation -1", 
((Integer)props.get("refU")).intValue(), 0);
+               
+               fooProvider.start();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 2", id.getState() == 
ComponentInstance.VALID);
+               
+               assertNotNull("Check CheckService availability", cs_ref);
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               //Check properties
+               assertTrue("check CheckService invocation -2", 
((Boolean)props.get("result")).booleanValue());
+               assertEquals("check void bind invocation -2", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation -2", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -2", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation -2", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -2", 
((Integer)props.get("refB")).intValue(), 1);
+               assertEquals("check ref unbind callback invocation -2", 
((Integer)props.get("refU")).intValue(), 0);
+               
+               fooProvider.stop();
+               
+               id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+               assertTrue("Check instance validity - 3", id.getState() == 
ComponentInstance.VALID);
+               
+               cs = (CheckService) context.getService(cs_ref);
+               props = cs.getProps();
+               //Check properties
+               assertFalse("check CheckService invocation -3", 
((Boolean)props.get("result")).booleanValue());
+               assertEquals("check void bind invocation -3", 
((Integer)props.get("voidB")).intValue(), 0);
+               assertEquals("check void unbind callback invocation -3", 
((Integer)props.get("voidU")).intValue(), 0);
+               assertEquals("check object bind callback invocation -3", 
((Integer)props.get("objectB")).intValue(), 0);
+               assertEquals("check object unbind callback invocation -3", 
((Integer)props.get("objectU")).intValue(), 0);
+               assertEquals("check ref bind callback invocation -3", 
((Integer)props.get("refB")).intValue(), 1);
+               assertEquals("check ref unbind callback invocation -3", 
((Integer)props.get("refU")).intValue(), 1);
+               
+               id = null;
+               cs = null;
+               context.ungetService(arch_ref);
+               context.ungetService(cs_ref);
+       }
+       
+       public void testBoth() {
+        ServiceReference arch_ref = Utils.getServiceReferenceByName(context, 
Architecture.class.getName(), instance5.getInstanceName());
+        assertNotNull("Check architecture availability", arch_ref);
+        InstanceDescription id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+        assertTrue("Check instance validity - 1", id.getState() == 
ComponentInstance.VALID);
+        
+        ServiceReference cs_ref = Utils.getServiceReferenceByName(context, 
CheckService.class.getName(), instance5.getInstanceName());
+        assertNotNull("Check CheckService availability", cs_ref);
+        CheckService cs = (CheckService) context.getService(cs_ref);
+        Properties props = cs.getProps();
+        //Check properties
+        assertFalse("check CheckService invocation -1", 
((Boolean)props.get("result")).booleanValue()); // False is returned (nullable)
+        assertEquals("check void bind invocation -1", 
((Integer)props.get("voidB")).intValue(), 0);
+        assertEquals("check void unbind callback invocation -1", 
((Integer)props.get("voidU")).intValue(), 0);
+        assertEquals("check object bind callback invocation -1", 
((Integer)props.get("objectB")).intValue(), 0);
+        assertEquals("check object unbind callback invocation -1", 
((Integer)props.get("objectU")).intValue(), 0);
+        assertEquals("check both bind callback invocation -1", 
((Integer)props.get("bothB")).intValue(), 0);
+        assertEquals("check both unbind callback invocation -1", 
((Integer)props.get("bothU")).intValue(), 0);
+        
+        fooProvider.start();
+        
+        id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+        assertTrue("Check instance validity - 2", id.getState() == 
ComponentInstance.VALID);
+        
+        assertNotNull("Check CheckService availability", cs_ref);
+        cs = (CheckService) context.getService(cs_ref);
+        props = cs.getProps();
+        //Check properties
+        assertTrue("check CheckService invocation -2", 
((Boolean)props.get("result")).booleanValue());
+        assertEquals("check void bind invocation -2", 
((Integer)props.get("voidB")).intValue(), 0);
+        assertEquals("check void unbind callback invocation -2", 
((Integer)props.get("voidU")).intValue(), 0);
+        assertEquals("check object bind callback invocation -2", 
((Integer)props.get("objectB")).intValue(), 0);
+        assertEquals("check object unbind callback invocation -2", 
((Integer)props.get("objectU")).intValue(), 0);
+        assertEquals("check ref bind callback invocation -2", 
((Integer)props.get("refB")).intValue(), 0);
+        assertEquals("check ref unbind callback invocation -2", 
((Integer)props.get("refU")).intValue(), 0);
+        assertEquals("check both bind callback invocation -2", 
((Integer)props.get("bothB")).intValue(), 1);
+        assertEquals("check both unbind callback invocation -2", 
((Integer)props.get("bothU")).intValue(), 0);
+        
+        fooProvider.stop();
+        
+        id = ((Architecture) 
context.getService(arch_ref)).getInstanceDescription();
+        assertTrue("Check instance validity - 3", id.getState() == 
ComponentInstance.VALID);
+        
+        cs = (CheckService) context.getService(cs_ref);
+        props = cs.getProps();
+        //Check properties
+        assertFalse("check CheckService invocation -3", 
((Boolean)props.get("result")).booleanValue());
+        assertEquals("check void bind invocation -3", 
((Integer)props.get("voidB")).intValue(), 0);
+        assertEquals("check void unbind callback invocation -3", 
((Integer)props.get("voidU")).intValue(), 0);
+        assertEquals("check object bind callback invocation -3", 
((Integer)props.get("objectB")).intValue(), 0);
+        assertEquals("check object unbind callback invocation -3", 
((Integer)props.get("objectU")).intValue(), 0);
+        assertEquals("check ref bind callback invocation -3", 
((Integer)props.get("refB")).intValue(), 0);
+        assertEquals("check ref unbind callback invocation -3", 
((Integer)props.get("refU")).intValue(), 0);
+        assertEquals("check both bind callback invocation -3", 
((Integer)props.get("bothB")).intValue(), 1);
+        assertEquals("check both unbind callback invocation -3", 
((Integer)props.get("bothU")).intValue(), 1);
+  
+        id = null;
+        cs = null;
+        context.ungetService(arch_ref);
+        context.ungetService(cs_ref);
+    }
+
+
+}

Modified: 
felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Tota.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Tota.java?rev=602115&r1=602114&r2=602115&view=diff
==============================================================================
--- 
felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Tota.java
 (original)
+++ 
felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Tota.java
 Fri Dec  7 07:00:34 2007
@@ -9,6 +9,7 @@
                    
"$specification=\"org.apache.felix.ipojo.test.scenarios.service.Toto\" " +
                    "$optional=\"true\" " +
                    "$aggregate=\"true\" " +
+                   "$type=\"service\" " +
                "} }"; 
     
     public Properties getProps() throws UnsupportedOperationException;;

Modified: felix/sandbox/clement/Tests/Suite/src/main/resources/metadata.xml
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/resources/metadata.xml?rev=602115&r1=602114&r2=602115&view=diff
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/resources/metadata.xml (original)
+++ felix/sandbox/clement/Tests/Suite/src/main/resources/metadata.xml Fri Dec  
7 07:00:34 2007
@@ -268,6 +268,62 @@
                </requires>
                <provides/>
        </component>
+       
+       <!-- Simple & Optional Dependencies with default-implementation -->
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
 factory="DISimpleOptionalCheckServiceProvider" architecture="true">
+               <requires field="fs" optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl"/>
+               <provides/>
+       </component>
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
 factory="DIVoidOptionalCheckServiceProvider" architecture="true">
+               <requires field="fs" optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="voidBind"/>
+                       <callback type="unbind" method="voidUnbind"/>
+               </requires>
+               <provides/>
+       </component>
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
 factory="DIObjectOptionalCheckServiceProvider" architecture="true">
+               <requires field="fs" optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="objectBind"/>
+                       <callback type="unbind" method="objectUnbind"/>
+               </requires>
+               <provides/>
+       </component>
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
 factory="DIRefOptionalCheckServiceProvider" architecture="true">
+               <requires field="fs" optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="refBind"/>
+                       <callback type="unbind" method="refUnbind"/>
+               </requires>
+               <provides/>
+       </component>
+    <component 
className="org.apache.felix.ipojo.test.scenarios.component.CheckServiceProvider"
 factory="DIBothOptionalCheckServiceProvider" architecture="true">
+               <requires field="fs" optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="bothBind"/>
+                       <callback type="unbind" method="bothUnbind"/>
+               </requires>
+               <provides/>
+       </component>
+       
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.MethodCheckServiceProvider"
 factory="DIMObjectOptionalCheckServiceProvider" architecture="true">
+               <requires optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="objectBind"/>
+                       <callback type="unbind" method="objectUnbind"/>
+               </requires>
+               <provides/>
+       </component>
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.MethodCheckServiceProvider"
 factory="DIMRefOptionalCheckServiceProvider" architecture="true">
+               <requires 
interface="org.apache.felix.ipojo.test.scenarios.service.FooService" 
optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="refBind"/>
+                       <callback type="unbind" method="refUnbind"/>
+               </requires>
+               <provides/>
+       </component>
+       <component 
className="org.apache.felix.ipojo.test.scenarios.component.MethodCheckServiceProvider"
 factory="DIMBothOptionalCheckServiceProvider" architecture="true">
+               <requires 
interface="org.apache.felix.ipojo.test.scenarios.service.FooService" 
optional="true" 
default-implementation="org.apache.felix.ipojo.test.scenarios.component.FooServiceDefaultImpl">
+                       <callback type="bind" method="bothBind"/>
+                       <callback type="unbind" method="bothUnbind"/>
+               </requires>
+               <provides/>
+       </component>
 
        <!--  Multiple Dependencies -->
        <component 
className="org.apache.felix.ipojo.test.scenarios.component.MultipleCheckService"
 factory="SimpleMultipleCheckServiceProvider" architecture="true">


Reply via email to