You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2007/09/25 17:07:18 UTC

svn commit: r579291 [1/12] - in /felix/sandbox/clement/Tests/Suite: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/felix/ src/main/java/org/apache/felix/ipojo/ src/main/java/org/apache/felix/ipojo...

Author: clement
Date: Tue Sep 25 08:06:53 2007
New Revision: 579291

URL: http://svn.apache.org/viewvc?rev=579291&view=rev
Log:
Initial import of the iPOJO Test Suite

Added:
    felix/sandbox/clement/Tests/Suite/pom.xml
    felix/sandbox/clement/Tests/Suite/src/
    felix/sandbox/clement/Tests/Suite/src/main/
    felix/sandbox/clement/Tests/Suite/src/main/java/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandler.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandlerDescription.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/iPOJOTestRunner.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/log/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/log/LogImpl.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ArchitectureTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/DependencyTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ProvidedServiceTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/CheckService2Provider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/Manipulation23Tester.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/Baz2CheckProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/BazProviderType1.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/CallbackCheckService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/CheckServiceProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ConfigurableCheckServiceProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/FooBarProviderType1.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/FooProviderType1.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/FooProviderTypeDyn.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/FooProviderTypeDyn2.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/LifecycleControllerTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/Manipulation23Tester.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/MethodCheckServiceProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/MethodMultipleCheckService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/MultipleCheckService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ParentClass.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/ParentConfigurableCheckServiceProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/TataProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/TotoProvider.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/TotoProviderGlue.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/ExportTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/FilteredExport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/MultipleExport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/OptionalExport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/OptionalMultipleExport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/exporter/SimpleExport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/DelayedFilteredImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/DelayedMultipleImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/DelayedOptionalImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/DelayedOptionalMultipleImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/DelayedSimpleImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/FilteredImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/ImportTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/MultipleImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/OptionalImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/OptionalMultipleImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/importer/SimpleImport.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/infrastructure/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/infrastructure/EmptyCompositeTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/infrastructure/FactoryManagementTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/infrastructure/InfrastructureTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/infrastructure/ServiceRangeTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/infrastructure/ServiceRegistryTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instance/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instance/SimpleInstance.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/ConfigurableInstantiation.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/InstantiatorTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/MultipleInstantiation.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalInstantiation.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalMultipleInstantiation.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/SimpleInstantiation.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/ProvidesTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp0.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp1.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp2.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp3.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp4.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp5.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp6.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp7.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp8.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/test/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/test/CompositeTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/ConfigurationTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/DynamicallyConfigurableProperties.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/SimpleProperties.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/TestBothProperties.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/TestFieldProperties.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/TestMethodProperties.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/configuration/TestSuperMethodProperties.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/controller/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/controller/ImmediateLifeCycleControllerTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/controller/LifeCycleControllerTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/controller/LifeCycleControllerTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/core/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/core/ComponentDesc.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/core/CoreTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/core/POJOCreation.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/DelayedMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/DelayedOptionalDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/DelayedOptionalMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/DelayedSimpleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/DependencyTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodDelayedMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodDelayedOptionalDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodDelayedOptionalMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodDelayedSimpleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodOptionalDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodOptionalMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MethodSimpleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/MultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/OptionalDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/OptionalMultipleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/dependency/SimpleDependencies.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/factory/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/factory/ConfigAdminTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/factory/FactoryTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/factory/ObedienceTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/factory/UnacceptableConfigurationTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/handler/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/handler/ExternalHandlerTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/handler/HandlerTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/lifecycle/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/lifecycle/CallbackTestCase.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/lifecycle/ImmediateCallbackTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/lifecycle/LifeCycleCallbackTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/lifecycle/ParentCallbackTestCase.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/ExceptionTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/GetComponentInstanceTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/ManipulationMetadata.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/ManipulationMetadataAPI.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/ManipulationTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/PrimitiveTypeTest.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/manipulation/PrimitiveTypeTest2.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/A123/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/A123/CheckService2.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/BarService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/BazService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/CheckService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/FooService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/PrimitiveManipulationTestService.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Tata.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Tota.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/Toto.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/DynamicProps.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/DynamicPropsReconfiguration.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/Exposition.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/FactoryProps.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/ProvidedServiceTestSuite.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/SimplePS.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/StaticProps.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/service/providing/StaticPropsReconfiguration.java
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/util/
    felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/util/Utils.java
    felix/sandbox/clement/Tests/Suite/src/main/resources/
    felix/sandbox/clement/Tests/Suite/src/main/resources/metadata.xml

Added: felix/sandbox/clement/Tests/Suite/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/pom.xml?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/pom.xml (added)
+++ felix/sandbox/clement/Tests/Suite/pom.xml Tue Sep 25 08:06:53 2007
@@ -0,0 +1,58 @@
+<project>
+  <groupId>ipojo.test</groupId>
+  <version>0.7.5</version>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Test Suite</name>
+  <artifactId>iPOJOTestSuite</artifactId>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+      <version>0.7.5-SNAPSHOT</version>
+    </dependency>
+     <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+      <version>0.7.5-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>ipojo.utf</groupId>
+      <artifactId>utf</artifactId>
+      <version>0.1.1</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>org.apache.felix.ipojo.test.*</Export-Package>
+            <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+            <Private-Package>fr.imag.adele.escoffier.utf.framework, fr.imag.adele.escoffier.utf.runner</Private-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+	      <groupId>org.apache.felix</groupId>
+	      <artifactId>org.apache.felix.ipojo.plugin</artifactId>
+		  <executions>
+          	<execution>
+            	<goals>
+	              <goal>ipojo-bundle</goal>
+               </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandler.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandler.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandler.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandler.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,82 @@
+package org.apache.felix.ipojo.test.handler;
+
+import java.util.Dictionary;
+import java.util.Properties;
+
+import org.apache.felix.ipojo.PrimitiveHandler;
+import org.apache.felix.ipojo.architecture.ComponentDescription;
+import org.apache.felix.ipojo.architecture.HandlerDescription;
+import org.apache.felix.ipojo.architecture.PropertyDescription;
+import org.apache.felix.ipojo.metadata.Element;
+import org.apache.felix.ipojo.test.scenarios.service.CheckService;
+import org.osgi.framework.ServiceRegistration;
+
+public class CheckServiceHandler extends PrimitiveHandler implements CheckService {
+	
+	ServiceRegistration sr;
+	boolean isValid;
+	int changes = 0;
+	static final String NAMESPACE = org.apache.felix.ipojo.test.handler.CheckServiceHandler.class.getName();
+	
+	Properties props = new Properties();
+
+	public void configure(Element metadata, Dictionary configuration) {
+		Element[] meta = metadata.getElements("Check", NAMESPACE);
+		if(meta.length == 0) { return;	}		
+		// Get handler props 
+		props.put("instance.name", configuration.get("name"));
+		if(configuration.get("csh.simple") != null) { props.put("Simple", configuration.get("csh.simple")); }
+		if(configuration.get("csh.map") != null) { 
+			Dictionary m = (Dictionary) configuration.get("csh.map");
+			props.put("Map1", m.get("a"));
+			props.put("Map2", m.get("b"));
+			props.put("Map3", m.get("c"));
+		}
+		props.put("changes", new Integer(changes));
+		
+	}
+	
+	public void initializeComponentFactory(ComponentDescription cd, Element metadata) {
+	    cd.addProperty(new PropertyDescription("csh.simple", "java.lang.String", null));
+        cd.addProperty(new PropertyDescription("csh.map", "java.util.Dictionary", null));
+	}
+	
+	public void start() {
+		if(sr == null) {
+			sr = getInstanceManager().getContext().registerService(CheckService.class.getName(), this, props);
+		}
+		isValid = true;
+	}
+	
+	public void stop() {
+		isValid = false;
+		synchronized(this) {
+			if(sr != null) { sr.unregister(); }
+		}
+	}
+	
+	public boolean check() {
+		if(isValid) { isValid = false;}
+		else { isValid = true; }
+		return isValid;
+	}
+
+	public Properties getProps() {
+		return props;
+	}
+	
+	public void stateChanged(int state) {
+		changes++;
+		props.put("changes", new Integer(changes));
+		sr.setProperties(props);
+	}
+
+	public String getName() {
+		return NAMESPACE;
+	}
+	
+	public HandlerDescription getDescription() {
+		return new CheckServiceHandlerDescription(this);
+	}
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandlerDescription.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandlerDescription.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandlerDescription.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/handler/CheckServiceHandlerDescription.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,20 @@
+package org.apache.felix.ipojo.test.handler;
+
+import org.apache.felix.ipojo.Handler;
+import org.apache.felix.ipojo.architecture.HandlerDescription;
+import org.apache.felix.ipojo.metadata.Attribute;
+import org.apache.felix.ipojo.metadata.Element;
+
+public class CheckServiceHandlerDescription extends HandlerDescription {
+
+	public CheckServiceHandlerDescription(Handler h) {
+		super(h);
+	}
+	
+	public Element getHandlerInfo() {
+		Element elem = super.getHandlerInfo();
+		elem.addAttribute(new Attribute("isValid", isValid()+""));
+		return elem;
+	}
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/iPOJOTestRunner.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/iPOJOTestRunner.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/iPOJOTestRunner.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/iPOJOTestRunner.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,99 @@
+package org.apache.felix.ipojo.test;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.test.scenarios.architecture.ArchitectureTestSuite;
+import org.apache.felix.ipojo.test.scenarios.composite.exporter.ExportTestSuite;
+import org.apache.felix.ipojo.test.scenarios.composite.importer.ImportTestSuite;
+import org.apache.felix.ipojo.test.scenarios.composite.infrastructure.InfrastructureTestSuite;
+import org.apache.felix.ipojo.test.scenarios.composite.instance.SimpleInstance;
+import org.apache.felix.ipojo.test.scenarios.composite.instantiator.InstantiatorTestSuite;
+import org.apache.felix.ipojo.test.scenarios.composite.provides.ProvidesTestSuite;
+import org.apache.felix.ipojo.test.scenarios.composite.test.CompositeTest;
+import org.apache.felix.ipojo.test.scenarios.configuration.ConfigurationTestSuite;
+import org.apache.felix.ipojo.test.scenarios.controller.LifeCycleControllerTestSuite;
+import org.apache.felix.ipojo.test.scenarios.core.CoreTestSuite;
+import org.apache.felix.ipojo.test.scenarios.dependency.DependencyTestSuite;
+import org.apache.felix.ipojo.test.scenarios.factory.FactoryTestSuite;
+import org.apache.felix.ipojo.test.scenarios.handler.ExternalHandlerTestSuite;
+import org.apache.felix.ipojo.test.scenarios.lifecycle.LifeCycleCallbackTest;
+import org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite;
+import org.apache.felix.ipojo.test.scenarios.service.providing.ProvidedServiceTestSuite;
+import org.osgi.framework.BundleContext;
+
+import fr.imag.adele.escoffier.utf.runner.InlineConsoleRunner;
+
+/**
+ * @author Clement Escoffier
+ *
+ */
+public class iPOJOTestRunner {
+	
+	private List tests = new ArrayList();
+
+	private BundleContext context;
+	
+	public iPOJOTestRunner(BundleContext bc) {
+		context = bc;
+		//Initialize tests
+		init();
+		execute();
+	}
+	
+	private void init() {
+		tests.add(new ManipulationTestSuite(context));
+		tests.add(new CoreTestSuite(context));
+		tests.add(new FactoryTestSuite(context));
+		tests.add(new ProvidedServiceTestSuite(context));
+		tests.add(new ConfigurationTestSuite(context));
+		tests.add(new DependencyTestSuite(context));
+		tests.add(new ArchitectureTestSuite(context));
+		tests.add(new LifeCycleCallbackTest(context));
+		tests.add(new ExternalHandlerTestSuite(context));
+		tests.add(new InfrastructureTestSuite(context));
+		tests.add(new InstantiatorTestSuite(context));
+        tests.add(new SimpleInstance(context));
+		tests.add(new ImportTestSuite(context));
+		tests.add(new ExportTestSuite(context));
+		tests.add(new CompositeTest(context));
+        tests.add(new ProvidesTestSuite(context));
+        tests.add(new LifeCycleControllerTestSuite(context));
+	}
+	
+	private void execute() {
+        try {
+            InlineConsoleRunner.run(tests, true);
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
+        
+        
+        try {
+            System.gc();
+            Field ins = ComponentFactory.class.getDeclaredField("m_instancesName");
+            
+            ins.setAccessible(true);
+            List l = (List) ins.get(null);
+            System.out.println("\nStatistics :");
+            System.out.println("Number of instances : " + l.size());
+            System.out.println("Living Instances : " + l);
+        } catch (SecurityException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (NoSuchFieldException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (IllegalArgumentException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (IllegalAccessException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        
+    }
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/log/LogImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/log/LogImpl.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/log/LogImpl.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/log/LogImpl.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,96 @@
+package org.apache.felix.ipojo.test.log;
+
+import java.util.Enumeration;
+import java.util.Vector;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogEntry;
+import org.osgi.service.log.LogListener;
+import org.osgi.service.log.LogReaderService;
+import org.osgi.service.log.LogService;
+
+public class LogImpl implements LogService, LogReaderService {
+    
+    Vector m_messages = new Vector();
+
+    public void log(int arg0, String arg1) {
+       add(new LogEntryImpl(arg0, arg1, null, null));
+    }
+
+    public void log(int arg0, String arg1, Throwable arg2) {
+        add(new LogEntryImpl(arg0, arg1, arg2, null));
+    }
+
+    public void log(ServiceReference arg0, int arg1, String arg2) {
+        add(new LogEntryImpl(arg1, arg2, null, arg0));
+
+    }
+
+    public void log(ServiceReference arg0, int arg1, String arg2, Throwable arg3) {
+        add(new LogEntryImpl(arg1, arg2, arg3, arg0));
+    }
+    
+    private void add(LogEntry entry) {
+        m_messages.add(entry);
+    }
+
+    public void addLogListener(LogListener arg0) {
+        throw new UnsupportedOperationException("Log Listener not supported");
+        
+    }
+
+    public Enumeration getLog() {
+       return m_messages.elements();
+    }
+
+    public void removeLogListener(LogListener arg0) {
+        throw new UnsupportedOperationException("Log Listener not supported");
+        
+    }
+    
+    private class LogEntryImpl implements LogEntry {
+        
+        private int level;
+        private String message;
+        private Throwable exception;
+        private ServiceReference reference;
+        private long time;
+        
+
+        LogEntryImpl(int l, String m, Throwable e, ServiceReference ref) {
+            level = l;
+            message = m;
+            exception = e;
+            reference = ref;
+            time = System.currentTimeMillis();
+        }
+        
+        
+        public Bundle getBundle() {
+           return null;
+        }
+
+        public Throwable getException() {
+            return exception;
+        }
+
+        public int getLevel() {
+            return level;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+
+        public ServiceReference getServiceReference() {
+            return reference;
+        }
+
+        public long getTime() {
+            return time;
+        }
+        
+    }
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ArchitectureTestSuite.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ArchitectureTestSuite.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ArchitectureTestSuite.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ArchitectureTestSuite.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,21 @@
+package org.apache.felix.ipojo.test.scenarios.architecture;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+
+import fr.imag.adele.escoffier.utf.framework.TestSuite;
+
+public class ArchitectureTestSuite extends TestSuite {
+	
+	public ArchitectureTestSuite(BundleContext bc) { super(bc); }
+
+	public List suite() {
+		List list = new ArrayList();
+		list.add(new ProvidedServiceTest(context));
+		list.add(new DependencyTest(context));
+		return list;
+	}
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/DependencyTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/DependencyTest.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/DependencyTest.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/DependencyTest.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,586 @@
+package org.apache.felix.ipojo.test.scenarios.architecture;
+
+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.handlers.dependency.DependencyHandlerDescription;
+import org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandlerDescription;
+import org.apache.felix.ipojo.test.scenarios.service.CheckService;
+import org.apache.felix.ipojo.test.scenarios.service.FooService;
+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 DependencyTest extends TestCase {
+	
+	ComponentInstance fooProvider1, fooProvider2;
+	
+	ComponentInstance instance1, instance2, instance3, instance4;
+	
+	public DependencyTest(BundleContext bc) { super(bc);}
+	
+	public void setUp() {
+		try {
+			Properties prov = new Properties();
+			prov.put("name", "FooProvider");
+			fooProvider1 = Utils.getFactoryByName(context, "FooProviderType-1").createComponentInstance(prov);
+			fooProvider1.stop();
+		
+			Properties prov2 = new Properties();
+			prov2.put("name", "FooProvider2");
+			fooProvider2 = Utils.getFactoryByName(context, "FooProviderType-1").createComponentInstance(prov2);
+			fooProvider2.stop();
+		
+			Properties i1 = new Properties();
+			i1.put("name", "Simple");
+			instance1 = Utils.getFactoryByName(context, "SimpleCheckServiceProvider").createComponentInstance(i1);
+		
+			Properties i2 = new Properties();
+			i2.put("name", "Optional");
+			instance2 = Utils.getFactoryByName(context, "SimpleOptionalCheckServiceProvider").createComponentInstance(i2);
+		
+			Properties i3 = new Properties();
+			i3.put("name", "Multiple");
+			instance3 = Utils.getFactoryByName(context, "SimpleMultipleCheckServiceProvider").createComponentInstance(i3);
+		
+			Properties i4 = new Properties();
+			i4.put("name", "OptionalMultiple");
+			instance4 = Utils.getFactoryByName(context, "SimpleOptionalMultipleCheckServiceProvider").createComponentInstance(i4);
+		} catch(Exception e) {
+			throw new RuntimeException(e.getMessage());
+		}
+	}
+	
+	public void tearDown() {
+		instance1.dispose();
+		instance2.dispose();
+		instance3.dispose();
+		instance4.dispose();
+		fooProvider1.dispose();
+		fooProvider2.dispose();
+		instance1 = null;
+		instance2 = null;
+		instance3 = null;
+		instance4 = null;
+		fooProvider1 = null;
+		fooProvider2 = null;
+	}
+	
+	private DependencyHandlerDescription getDependencyDesc(InstanceDescription id) {
+		for(int i = 0; i < id.getHandlers().length; i++) {
+			if(id.getHandlers()[i].getHandlerName().equals("org.apache.felix.ipojo.handlers.dependency.DependencyHandler")) {
+				return (DependencyHandlerDescription) id.getHandlers()[i];
+			}
+		}
+		fail("Dependency Handler not found");
+		return null;
+	}
+	
+	private ProvidedServiceHandlerDescription getPSDesc(InstanceDescription id) {
+		for(int i = 0; i < id.getHandlers().length; i++) {
+			if(id.getHandlers()[i].getHandlerName().equals("org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler")) {
+				return (ProvidedServiceHandlerDescription) id.getHandlers()[i];
+			}
+		}
+		fail("Provided Service Handler not found");
+		return null;
+	}
+	
+	public void testSimpleDependency() {
+		ServiceReference arch_dep = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_dep);
+		InstanceDescription id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_dep.getState() == ComponentInstance.INVALID);
+		
+		// Check dependency handler invalidity
+		DependencyHandlerDescription dhd = getDependencyDesc(id_dep);
+		assertFalse("Check dependency handler invalidity", dhd.isValid());
+		
+		// Check dependency metadata
+		assertEquals("Check dependency interface", dhd.getDependencies()[0].getInterface(), FooService.class.getName());
+		assertFalse("Check dependency cardinality", dhd.getDependencies()[0].isMultiple());
+		assertFalse("Check dependency optionality", dhd.getDependencies()[0].isOptional());
+		assertEquals("Check dependency ref -1", dhd.getDependencies()[0].getServiceReferences().size(), 0);
+		
+		fooProvider1.start();
+		
+		ServiceReference arch_ps = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps);
+		InstanceDescription id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps.getState() == ComponentInstance.VALID);				
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 2 ", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		CheckService cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		ProvidedServiceHandlerDescription psh = getPSDesc(id_ps);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertEquals("Check POJO creation", id_ps.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 1", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		
+		fooProvider1.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.INVALID);
+		dhd = getDependencyDesc(id_dep);
+		assertFalse("Check dependency handler invalidity", dhd.isValid());
+		
+		fooProvider1.start();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		arch_ps = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps);
+		id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps.getState() == ComponentInstance.VALID);
+		psh = getPSDesc(id_ps);
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		
+		assertEquals("Check dependency ref -3", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph 
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		psh = getPSDesc(id_ps);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertTrue("Check service reference - 1", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		
+		fooProvider1.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.INVALID);
+		dhd = getDependencyDesc(id_dep);
+		assertFalse("Check dependency handler invalidity", dhd.isValid());
+		
+		id_dep = null;
+		cs = null;
+		context.ungetService(arch_dep);
+		context.ungetService(cs_ref);
+	}
+	
+	public void testOptionalDependency() {
+		ServiceReference arch_dep = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance2.getInstanceName());
+		assertNotNull("Check architecture availability", arch_dep);
+		InstanceDescription id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_dep.getState() == ComponentInstance.VALID);
+		
+		// Check dependency handler invalidity
+		DependencyHandlerDescription dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler invalidity", dhd.isValid());
+		
+		// Check dependency metadata
+		assertEquals("Check dependency interface", dhd.getDependencies()[0].getInterface(), FooService.class.getName());
+		assertFalse("Check dependency cardinality", dhd.getDependencies()[0].isMultiple());
+		assertTrue("Check dependency optionality", dhd.getDependencies()[0].isOptional());
+		assertEquals("Check dependency ref -1", dhd.getDependencies()[0].getServiceReferences().size(), 0);
+		
+		fooProvider1.start();
+		
+		ServiceReference arch_ps = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps);
+		InstanceDescription id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps.getState() == ComponentInstance.VALID);				
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 2 ", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		CheckService cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		ProvidedServiceHandlerDescription psh = getPSDesc(id_ps);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertEquals("Check POJO creation", id_ps.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 1", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		
+		fooProvider1.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler invalidity", dhd.isValid());
+		
+		fooProvider1.start();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		arch_ps = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps);
+		id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps.getState() == ComponentInstance.VALID);
+		psh = getPSDesc(id_ps);
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		
+		assertEquals("Check dependency ref -3", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph 
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps = ((Architecture) context.getService(arch_ps)).getInstanceDescription();
+		psh = getPSDesc(id_ps);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertTrue("Check service reference - 1", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		
+		fooProvider1.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler invalidity", dhd.isValid());
+		
+		id_dep = null;
+		cs = null;
+		context.ungetService(arch_dep);
+		context.ungetService(cs_ref);
+	}
+	
+	public void testMultipleDependency() {
+		ServiceReference arch_dep = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance3.getInstanceName());
+		assertNotNull("Check architecture availability", arch_dep);
+		InstanceDescription id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_dep.getState() == ComponentInstance.INVALID);
+		
+		// Check dependency handler invalidity
+		DependencyHandlerDescription dhd = getDependencyDesc(id_dep);
+		assertFalse("Check dependency handler invalidity", dhd.isValid());
+		
+		// Check dependency metadata
+		assertEquals("Check dependency interface", dhd.getDependencies()[0].getInterface(), FooService.class.getName());
+		assertTrue("Check dependency cardinality", dhd.getDependencies()[0].isMultiple());
+		assertFalse("Check dependency optionality", dhd.getDependencies()[0].isOptional());
+		assertEquals("Check dependency ref -1", dhd.getDependencies()[0].getServiceReferences().size(), 0);
+		
+		fooProvider1.start();
+		
+		ServiceReference arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		InstanceDescription id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		assertTrue("Check instance validity - 1", id_ps1.getState() == ComponentInstance.VALID);				
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 2 ", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		assertEquals("Check used ref - 1 (" + dhd.getDependencies()[0].getUsedServices().size() + ")", dhd.getDependencies()[0].getUsedServices().size(), 0);
+		
+		ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		CheckService cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		ProvidedServiceHandlerDescription psh = getPSDesc(id_ps1);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertEquals("Check POJO creation", id_ps1.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 2", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		
+		// Start a second foo service provider
+		fooProvider2.start();
+		
+		arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		ServiceReference arch_ps2 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider2.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		assertNotNull("Check architecture 2 availability", arch_ps2);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		InstanceDescription id_ps2 = ((Architecture) context.getService(arch_ps2)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps1.getState() == ComponentInstance.VALID);
+		assertTrue("Check instance 2 invalidity - 1", id_ps2.getState() == ComponentInstance.VALID);
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 3 ", dhd.getDependencies()[0].getServiceReferences().size(), 2);
+		assertEquals("Check used ref - 2 ", dhd.getDependencies()[0].getUsedServices().size(), 1); // provider 2 not already used
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		id_ps2 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		ProvidedServiceHandlerDescription psh1 = getPSDesc(id_ps1);
+		ProvidedServiceHandlerDescription psh2 = getPSDesc(id_ps2);
+		assertEquals("Check POJO creation", id_ps1.getCreatedObjects().length, 1);
+		assertEquals("Check POJO creation", id_ps2.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 3.1", dhd.getDependencies()[0].getUsedServices().contains(psh1.getProvidedServices()[0].getServiceReference()));
+		assertTrue("Check service reference - 3.2", dhd.getDependencies()[0].getUsedServices().contains(psh2.getProvidedServices()[0].getServiceReference()));
+		assertEquals("Check used ref - 3 ("+dhd.getDependencies()[0].getUsedServices().size()+")", dhd.getDependencies()[0].getUsedServices().size(), 2);
+		
+		fooProvider2.stop();
+		
+		arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		assertTrue("Check instance validity - 1", id_ps1.getState() == ComponentInstance.VALID);				
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 2 ", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		assertEquals("Check used ref - 4 ", dhd.getDependencies()[0].getUsedServices().size(), 1);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		psh = getPSDesc(id_ps1);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertEquals("Check POJO creation", id_ps1.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 1", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		assertEquals("Check used ref - 5 ", dhd.getDependencies()[0].getUsedServices().size(), 1);
+		
+		fooProvider1.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertFalse("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertFalse("Check dependency handler invalidity", dhd.isValid());
+		
+		fooProvider2.start();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider2.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps1.getState() == ComponentInstance.VALID);
+		psh = getPSDesc(id_ps1);
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		
+		assertEquals("Check dependency ref -3", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		assertEquals("Check used ref - 6 ", dhd.getDependencies()[0].getUsedServices().size(), 0);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph 
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		psh = getPSDesc(id_ps1);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertTrue("Check service reference - 4", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		assertEquals("Check used ref - 7 ", dhd.getDependencies()[0].getUsedServices().size(), 1);
+		
+		fooProvider2.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertFalse("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertFalse("Check dependency handler invalidity", dhd.isValid());
+		
+		id_dep = null;
+		cs = null;
+		context.ungetService(arch_dep);
+		context.ungetService(cs_ref);
+	}
+	
+	public void testMultipleOptionalDependency() {
+		ServiceReference arch_dep = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance4.getInstanceName());
+		assertNotNull("Check architecture availability", arch_dep);
+		InstanceDescription id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_dep.getState() == ComponentInstance.VALID);
+		
+		// Check dependency handler invalidity
+		DependencyHandlerDescription dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler invalidity", dhd.isValid());
+		
+		// Check dependency metadata
+		assertEquals("Check dependency interface", dhd.getDependencies()[0].getInterface(), FooService.class.getName());
+		assertTrue("Check dependency cardinality", dhd.getDependencies()[0].isMultiple());
+		assertTrue("Check dependency optionality", dhd.getDependencies()[0].isOptional());
+		assertEquals("Check dependency ref -1", dhd.getDependencies()[0].getServiceReferences().size(), 0);
+		
+		fooProvider1.start();
+		
+		ServiceReference arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		InstanceDescription id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps1.getState() == ComponentInstance.VALID);				
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 2 ", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		CheckService cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		ProvidedServiceHandlerDescription psh = getPSDesc(id_ps1);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertEquals("Check POJO creation", id_ps1.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 1", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+		
+		// Start a second foo service provider
+		fooProvider2.start();
+		
+		arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		ServiceReference arch_ps2 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider2.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		assertNotNull("Check architecture 2 availability", arch_ps2);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		InstanceDescription id_ps2 = ((Architecture) context.getService(arch_ps2)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps1.getState() == ComponentInstance.VALID);
+		assertTrue("Check instance 2 invalidity - 1", id_ps2.getState() == ComponentInstance.VALID);
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 3 ", dhd.getDependencies()[0].getServiceReferences().size(), 2);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		id_ps2 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		ProvidedServiceHandlerDescription psh1 = getPSDesc(id_ps1);
+		ProvidedServiceHandlerDescription psh2 = getPSDesc(id_ps2);
+		assertEquals("Check POJO creation", id_ps1.getCreatedObjects().length, 1);
+		assertEquals("Check POJO creation", id_ps2.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 2.1", dhd.getDependencies()[0].getUsedServices().contains(psh1.getProvidedServices()[0].getServiceReference()));
+		assertTrue("Check service reference - 2.2", dhd.getDependencies()[0].getUsedServices().contains(psh2.getProvidedServices()[0].getServiceReference()));
+		
+		fooProvider2.stop();
+		
+		arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider1.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps1.getState() == ComponentInstance.VALID);				
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		assertEquals("Check dependency ref - 2 ", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		psh = getPSDesc(id_ps1);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertEquals("Check POJO creation", id_ps1.getCreatedObjects().length, 1);
+		assertTrue("Check service reference - 3", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+
+		fooProvider1.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler invalidity", dhd.isValid());
+		
+		fooProvider2.start();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		arch_ps1 = Utils.getServiceReferenceByName(context, Architecture.class.getName(), fooProvider2.getInstanceName());
+		assertNotNull("Check architecture availability", arch_ps1);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 1", id_ps1.getState() == ComponentInstance.VALID);
+		psh = getPSDesc(id_ps1);
+		assertTrue("Check instance validity", id_dep.getState() == ComponentInstance.VALID);
+		assertTrue("Check dependency handler validity", dhd.isValid());
+		
+		assertEquals("Check dependency ref -3", dhd.getDependencies()[0].getServiceReferences().size(), 1);
+		
+		cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName());
+		assertNotNull("Check CheckService availability", cs_ref);
+		cs = (CheckService) context.getService(cs_ref);
+		assertTrue("check CheckService invocation", cs.check());
+		
+		// Check object graph 
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		dhd = getDependencyDesc(id_dep);
+		id_ps1 = ((Architecture) context.getService(arch_ps1)).getInstanceDescription();
+		psh = getPSDesc(id_ps1);
+		assertEquals("Check Service Reference equality", psh.getProvidedServices()[0].getServiceReference(), dhd.getDependencies()[0].getServiceReference());
+		assertTrue("Check service reference - 4", dhd.getDependencies()[0].getUsedServices().contains(psh.getProvidedServices()[0].getServiceReference()));
+
+		fooProvider2.stop();
+		
+		id_dep = ((Architecture) context.getService(arch_dep)).getInstanceDescription();
+		assertTrue("Check instance invalidity - 2", id_dep.getState() == ComponentInstance.VALID);
+		dhd = getDependencyDesc(id_dep);
+		assertTrue("Check dependency handler invalidity", dhd.isValid());
+		
+		id_dep = null;
+		cs = null;
+		context.ungetService(arch_dep);
+		context.ungetService(cs_ref);
+	}
+	
+	
+	
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ProvidedServiceTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ProvidedServiceTest.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ProvidedServiceTest.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/architecture/ProvidedServiceTest.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,185 @@
+package org.apache.felix.ipojo.test.scenarios.architecture;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.architecture.HandlerDescription;
+import org.apache.felix.ipojo.architecture.InstanceDescription;
+import org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceDescription;
+import org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandlerDescription;
+import org.apache.felix.ipojo.test.scenarios.service.BarService;
+import org.apache.felix.ipojo.test.scenarios.service.FooService;
+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 ProvidedServiceTest extends TestCase {
+	
+	public ProvidedServiceTest(BundleContext bc) { super(bc); }
+	
+	
+	public void testExposition() {
+		String factName = "FooProviderType-1";
+		String compName = "FooProvider-1";
+		
+		// Get the factory to create a component instance
+		Factory fact = Utils.getFactoryByName(context, factName);
+		assertNotNull("Cannot find the factory FooProvider-1", fact);
+		
+		Properties props = new Properties();
+		props.put("name", compName);
+		ComponentInstance ci = null;
+		try {
+			ci = fact.createComponentInstance(props);
+		} catch (Exception e) {
+			fail(e.getMessage());
+		}
+
+		ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "FooProvider-1");
+		assertNotNull("Architecture not available", arch_ref);
+
+		Architecture arch = (Architecture) context.getService(arch_ref);
+		InstanceDescription id = arch.getInstanceDescription();
+		
+		assertEquals("Check component instance name (" + id.getName() + ")", id.getName(), compName);
+		assertEquals("Check component type implementation class", id.getComponentDescription().getClassName(), "org.apache.felix.ipojo.test.scenarios.component.FooProviderType1");
+		
+		HandlerDescription[] handlers = id.getHandlers();
+		assertEquals("Number of handlers", handlers.length, 2);
+		
+		//Look for the ProvidedService Handler
+		ProvidedServiceHandlerDescription pshd = null;
+		for(int i = 0; i < handlers.length; i++) {
+			if(handlers[i].getHandlerName().equals("org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler")) {
+				pshd = (ProvidedServiceHandlerDescription) handlers[i];
+			}
+		}
+		
+		assertNotNull("Check ProvidedServiceHandlerDescription", pshd);
+		ProvidedServiceDescription[] ps = pshd.getProvidedServices();
+		
+		assertEquals("Check ProvidedService number", ps.length, 1);
+		assertEquals("Check Provided Service Specs - 1", ps[0].getServiceSpecification().length, 1);
+		assertEquals("Check Provided Service Specs - 2", ps[0].getServiceSpecification()[0], FooService.class.getName());
+		assertEquals("Check Provided Service availability", ps[0].getState(), ProvidedServiceDescription.REGISTERED);
+		Properties prop = ps[0].getProperties();
+		assertNotNull("Check Props", prop);
+		assertEquals("Check service properties number", prop.size(), 2);
+		assertEquals("Check instance.name property", prop.getProperty("instance.name"), compName);
+		assertEquals("Check factory.name property", prop.getProperty("factory.name"), factName);
+		
+		ci.dispose();
+	}
+	
+	public void testProps() {
+		String factName = "FooProviderType-3";
+		String compName = "FooProvider";
+		
+		// Get the factory to create a component instance
+		Factory fact = Utils.getFactoryByName(context, factName);
+		assertNotNull("Cannot find the factory FooProvider", fact);
+		
+		Properties props = new Properties();
+		props.put("name", compName);
+		props.put("foo", "foo");
+		props.put("bar", "2");
+		props.put("baz", "baz");
+		ComponentInstance ci = null;
+		try {
+			ci = fact.createComponentInstance(props);
+		} catch (Exception e) { fail(e.getMessage()); }
+
+		ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), compName);
+		assertNotNull("Architecture not available", arch_ref);
+
+		Architecture arch = (Architecture) context.getService(arch_ref);
+		InstanceDescription id = arch.getInstanceDescription();
+		
+		assertEquals("Check component instance name (" + id.getName() + ")", id.getName(), compName);
+		assertEquals("Check component type implementation class", id.getComponentDescription().getClassName(), "org.apache.felix.ipojo.test.scenarios.component.FooProviderType1");
+		
+		HandlerDescription[] handlers = id.getHandlers();
+		assertEquals("Number of handlers", handlers.length, 3);
+		
+		//Look for the ProvidedService Handler
+		ProvidedServiceHandlerDescription pshd = null;
+		for(int i = 0; i < handlers.length; i++) {
+			if(handlers[i].getHandlerName().equals("org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler")) {
+				pshd = (ProvidedServiceHandlerDescription) handlers[i];
+			}
+		}
+		
+		assertNotNull("Check ProvidedServiceHandlerDescription", pshd);
+		ProvidedServiceDescription[] ps = pshd.getProvidedServices();
+		
+		assertEquals("Check ProvidedService number", ps.length, 1);
+		assertEquals("Check Provided Service Specs - 1", ps[0].getServiceSpecification().length, 1);
+		assertEquals("Check Provided Service Specs - 2", ps[0].getServiceSpecification()[0], FooService.class.getName());
+		assertEquals("Check Provided Service availability", ps[0].getState(), ProvidedServiceDescription.REGISTERED);
+	
+		Properties prop = ps[0].getProperties();
+		assertNotNull("Check Props", prop);
+		assertEquals("Check service properties number (#" + prop + "?=5)" , prop.size(), 5);
+		assertEquals("Check instance.name property", prop.getProperty("instance.name"), compName);
+		assertEquals("Check factory.name property", prop.getProperty("factory.name"), factName);
+		assertEquals("Check foo property", prop.getProperty("foo"), "foo");
+		assertEquals("Check bar property", prop.getProperty("bar"), "2");
+		assertEquals("Check baz property", prop.getProperty("baz"), "baz");
+		
+		ci.dispose();
+	}
+	
+	public void testDoubleProviding() {
+		String factName = "FooBarProviderType-1";
+		String compName = "FooProvider";
+		
+		// Get the factory to create a component instance
+		Factory fact = Utils.getFactoryByName(context, factName);
+		assertNotNull("Cannot find the factory FooProvider", fact);
+		
+		Properties props = new Properties();
+		props.put("name", compName);
+		ComponentInstance ci = null;
+		try {
+			ci = fact.createComponentInstance(props);
+		} catch (Exception e) {
+			fail(e.getMessage());
+		}
+
+		ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), compName);
+		assertNotNull("Architecture not available", arch_ref);
+
+		Architecture arch = (Architecture) context.getService(arch_ref);
+		InstanceDescription id = arch.getInstanceDescription();
+		
+		assertEquals("Check component instance name (" + id.getName() + ")", id.getName(), compName);
+		assertEquals("Check component type implementation class", id.getComponentDescription().getClassName(), "org.apache.felix.ipojo.test.scenarios.component.FooBarProviderType1");
+		
+		HandlerDescription[] handlers = id.getHandlers();
+		assertEquals("Number of handlers", handlers.length, 2);
+		
+		//Look for the ProvidedService Handler
+		ProvidedServiceHandlerDescription pshd = null;
+		for(int i = 0; i < handlers.length; i++) {
+			if(handlers[i].getHandlerName().equals("org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler")) {
+				pshd = (ProvidedServiceHandlerDescription) handlers[i];
+			}
+		}
+		
+		assertNotNull("Check ProvidedServiceHandlerDescription", pshd);
+		ProvidedServiceDescription[] ps = pshd.getProvidedServices();
+		
+		assertEquals("Check ProvidedService number", ps.length, 1);
+		assertEquals("Check Provided Service Specs - 1", ps[0].getServiceSpecification().length, 2);
+		assertEquals("Check Provided Service Specs - 2", ps[0].getServiceSpecification()[0], FooService.class.getName());
+		assertEquals("Check Provided Service Specs - 2", ps[0].getServiceSpecification()[1], BarService.class.getName());
+		assertEquals("Check Provided Service availability", ps[0].getState(), ProvidedServiceDescription.REGISTERED);
+		
+		ci.dispose();
+	}
+	
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/CheckService2Provider.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/CheckService2Provider.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/CheckService2Provider.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/CheckService2Provider.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,12 @@
+package org.apache.felix.ipojo.test.scenarios.component.A123;
+
+import org.apache.felix.ipojo.test.scenarios.service.A123.CheckService2;
+
+public class CheckService2Provider implements CheckService2 {
+
+	public boolean check() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/Manipulation23Tester.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/Manipulation23Tester.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/Manipulation23Tester.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/A123/Manipulation23Tester.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,102 @@
+package org.apache.felix.ipojo.test.scenarios.component.A123;
+
+import org.apache.felix.ipojo.test.scenarios.service.PrimitiveManipulationTestService;
+
+
+public class Manipulation23Tester implements PrimitiveManipulationTestService {
+
+    
+    // Integer types
+	byte b = 1;
+	short s = 1;
+	int i = 1;
+	long l = 1;
+	
+	// Floatting types
+	double d = 1.1;
+	float f = 1.1f;
+	
+	// Character
+	char c = 'a';
+	
+	// Boolean
+	boolean bool = false;
+	
+	// Integer arrays 
+	byte[] bs = new byte[] {0,1,2};
+	short[] ss = new short[] {0,1,2};
+	int[] is = new int[] {0,1,2};
+	long[] ls = new long[] {0,1,2};
+	
+	double[] ds = new double[] {0.0, 1.1, 2.2};
+	float[] fs = new float[] {0.0f, 1.1f, 2.2f};
+	
+	char[] cs = new char[] {'a', 'b', 'c'};
+	
+	boolean[] bools = new boolean[] {false, true, false};
+
+	public boolean getBoolean() { return bool; }
+
+	public boolean[] getBooleans() { return bools; }
+
+	public byte getByte() { return b; }
+
+	public byte[] getBytes() { return bs; }
+
+	public char getChar() { return c; }
+
+	public char[] getChars() { return cs; }
+
+	public double getDouble() { return d; }
+
+	public double[] getDoubles() { return ds; }
+
+	public float getFloat() { return f; }
+
+	public float[] getFloats() { return fs; }
+
+	public int getInt() { return i; }
+
+	public int[] getInts() { return is; }
+
+	public long getLong() { return l; }
+
+	public long[] getLongs() { return ls; }
+
+	public short getShort() { return s; }
+
+	public short[] getShorts() { return ss; }
+
+	public void setBoolean(boolean b) { this.bool = b; }
+
+	public void setBooleans(boolean[] bs) { this.bools = bs; }
+
+	public void setByte(byte b) { this.b = b; }
+
+	public void setBytes(byte[] bs) { this.bs = bs; }
+
+	public void setChar(char c) { this.c = c; }
+
+	public void setChars(char[] cs) { this.cs = cs; }
+
+	public void setDouble(double d) { this.d = d; }
+
+	public void setDoubles(double[] ds) { this.ds = ds; }
+
+	public void setFloat(float f) { this.f = f; }
+
+	public void setFloats(float[] fs) { this.fs = fs; }
+
+	public void setInt(int i) { this.i = i; }
+
+	public void setInts(int[] is) { this.is = is; }
+
+	public void setLong(long l) { this.l = l; }
+
+	public void setLongs(long[] ls) { this.ls = ls; }
+
+ 	public void setShort(short s) { this.s = s; }
+
+	public void setShorts(short[] ss) { this.ss = ss; }	
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/Baz2CheckProvider.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/Baz2CheckProvider.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/Baz2CheckProvider.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/Baz2CheckProvider.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,63 @@
+package org.apache.felix.ipojo.test.scenarios.component;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.test.scenarios.service.BazService;
+import org.apache.felix.ipojo.test.scenarios.service.CheckService;
+import org.apache.felix.ipojo.test.scenarios.service.FooService;
+import org.osgi.framework.ServiceReference;
+
+public class Baz2CheckProvider implements CheckService {
+	
+	BazService fs;
+	
+	int simpleB = 0;
+	int objectB = 0;
+	int refB = 0;
+	int simpleU = 0;
+	int objectU = 0;
+	int refU = 0;
+
+	public boolean check() {
+		return fs.foo();
+	}
+
+	public Properties getProps() {
+		Properties props = new Properties();
+		props.put("result", new Boolean(fs.foo()));
+		props.put("voidB", new Integer(simpleB));
+		props.put("objectB", new Integer(objectB));
+		props.put("refB", new Integer(refB));
+		props.put("voidU", new Integer(simpleU));
+		props.put("objectU", new Integer(objectU));
+		props.put("refU", new Integer(refU));
+		props.put("boolean", new Boolean(fs.getBoolean()));
+		props.put("int", new Integer(fs.getInt()));
+		props.put("long", new Long(fs.getLong()));
+		props.put("double", new Double(fs.getDouble()));
+		if(fs.getObject() != null) { props.put("object", fs.getObject()); }
+		
+		return props;
+	}
+	
+	private void voidBind() {
+		simpleB++;
+	}
+	private void voidUnbind() {
+		simpleU++;
+	}
+	
+	protected void objectBind(Object o) {
+		if(o != null && o instanceof FooService) { objectB++; }
+	}
+	protected void objectUnbind(Object o) {
+		if(o != null && o instanceof FooService) { objectU++; }
+	}
+	
+	public void refBind(ServiceReference sr) {
+		if(sr != null) { refB++; }
+	}
+	public void refUnbind(ServiceReference sr) {
+		if(sr != null) { refU++; }
+	}
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/BazProviderType1.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/BazProviderType1.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/BazProviderType1.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/BazProviderType1.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,33 @@
+package org.apache.felix.ipojo.test.scenarios.component;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.test.scenarios.service.BazService;
+
+public class BazProviderType1 implements BazService {
+	
+	private int m_bar;
+	private String m_foo;
+
+	public boolean foo() {
+		return true;
+	}
+
+	public Properties fooProps() {
+		Properties p = new Properties();
+		p.put("bar", new Integer(m_bar));
+		p.put("foo", m_foo);
+		return p;
+	}
+	
+	public boolean getBoolean() { return true; }
+
+	public double getDouble() { return 1.0; }
+
+	public int getInt() { return 1; }
+
+	public long getLong() { return 1; }
+
+	public Boolean getObject() { return new Boolean(true); }
+
+}

Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/CallbackCheckService.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/CallbackCheckService.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/CallbackCheckService.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/component/CallbackCheckService.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,31 @@
+package org.apache.felix.ipojo.test.scenarios.component;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.test.scenarios.service.CheckService;
+import org.apache.felix.ipojo.test.scenarios.service.FooService;
+
+public class CallbackCheckService extends ParentClass implements CheckService {
+
+	int i = 0;
+	FooService fs;
+	
+	private void start() {
+		i++;
+	}
+	
+	protected void stop() {
+		i++;
+	}
+	
+	public boolean check() {
+		return fs.foo();
+	}
+
+	public Properties getProps() {
+		Properties p = new Properties();
+		p.put("int", new Integer(i));
+		return p;
+	}
+
+}