FELIX-4166 unregister service if it becomes unsatisfied before being created, tests for unactivated components

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1503517 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/test/java/org/apache/felix/scr/integration/ComponentActivationTest.java b/scr/src/test/java/org/apache/felix/scr/integration/ComponentActivationTest.java
index 234d251..db5bb84 100644
--- a/scr/src/test/java/org/apache/felix/scr/integration/ComponentActivationTest.java
+++ b/scr/src/test/java/org/apache/felix/scr/integration/ComponentActivationTest.java
@@ -285,9 +285,17 @@
     }
 
     @Test
-    public void test_activate_register_service_multiple_static_dependency()
+    public void test_activate_register_service_multiple_static_reluctant_dependency()
     {
-        final String componentname = "ActivatorComponent.bind.multiple.static";
+        final String componentname = "ActivatorComponent.bind.multiple.static.reluctant";
+
+        testRequiredDependency( componentname );
+    }
+
+    @Test
+    public void test_activate_register_service_multiple_static_greedy_dependency()
+    {
+        final String componentname = "ActivatorComponent.bind.multiple.static.greedy";
 
         testRequiredDependency( componentname );
     }
diff --git a/scr/src/test/resources/integration_test_activation_components.xml b/scr/src/test/resources/integration_test_activation_components.xml
index 79badd6..c5651b4 100644
--- a/scr/src/test/resources/integration_test_activation_components.xml
+++ b/scr/src/test/resources/integration_test_activation_components.xml
@@ -17,7 +17,7 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
+<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0">
 
     <!-- 
         Components used for the ComponentActivationTest integration test.
@@ -149,7 +149,7 @@
     </scr:component>
 
     <!-- 1n static dependency -->
-    <scr:component name="ActivatorComponent.bind.multiple.static"
+    <scr:component name="ActivatorComponent.bind.multiple.static.reluctant"
         enabled="false"
         activate="myActivate"
         deactivate="myDeactivate">
@@ -168,6 +168,27 @@
         />
     </scr:component>
 
+    <!-- 1n static greedy dependency -->
+    <scr:component name="ActivatorComponent.bind.multiple.static.greedy"
+        enabled="false"
+        activate="myActivate"
+        deactivate="myDeactivate">
+        <implementation class="org.apache.felix.scr.integration.components.ActivatorComponent" />
+        <service factory="false">
+            <provide interface="org.apache.felix.scr.integration.components.ActivatorComponent"/>
+        </service>
+        <property name="registerService" value="true" />
+        <reference
+            name="service"
+            interface="org.apache.felix.scr.integration.components.SimpleService"
+            bind="bindSimpleService"
+            unbind="unbindSimpleService"
+            policy="static"
+            policy-option="greedy"
+            cardinality="1..n"
+        />
+    </scr:component>
+
     <!-- 11 dynamic dependency -->
     <scr:component name="ActivatorComponent.bind.single.dynamic"
         enabled="false"
@@ -188,7 +209,7 @@
         />
     </scr:component>
 
-    <!-- 11 static dependency -->
+    <!-- 1n dynamic dependency -->
     <scr:component name="ActivatorComponent.bind.multiple.dynamic"
         enabled="false"
         activate="myActivate"