SLING-6672 osgi-mock: Switch to OSGi annotations

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1787642 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 1cb7493..ff2a289 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,12 +43,6 @@
     <dependencies>
   
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr.annotations</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.core</artifactId>
             <scope>compile</scope>
@@ -167,11 +161,6 @@
                 <extensions>true</extensions>
             </plugin>
       
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-            </plugin>
-
            <plugin>
                 <groupId>org.apache.rat</groupId>
                 <artifactId>apache-rat-plugin</artifactId>
diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java b/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java
index 86c4eb5..fa16f44 100644
--- a/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java
+++ b/src/main/java/org/apache/sling/testing/mock/osgi/MockEventAdmin.java
@@ -26,16 +26,15 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.osgi.Order;
 import org.apache.sling.commons.osgi.ServiceUtil;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
 import org.osgi.service.event.EventConstants;
@@ -47,12 +46,12 @@
  * Mock implementation of {@link EventAdmin}.
  * From {@link EventConstants} currently only {@link EventConstants#EVENT_TOPIC} is supported. 
  */
-@Component(immediate = true)
-@Service(value = EventAdmin.class)
+@Component(immediate = true, service = EventAdmin.class)
 public final class MockEventAdmin implements EventAdmin {
     
-    @Reference(name="eventHandler", referenceInterface=EventHandler.class,
-            cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE, policy=ReferencePolicy.DYNAMIC)
+    @Reference(name="eventHandler", service=EventHandler.class,
+            cardinality=ReferenceCardinality.MULTIPLE, policy=ReferencePolicy.DYNAMIC,
+            bind="bindEventHandler", unbind="unbindEventHandler")
     private final Map<Object, EventHandlerItem> eventHandlers = new TreeMap<Object, EventHandlerItem>();
 
     private ExecutorService asyncHandler;
diff --git a/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilActivateDeactivateTest.java b/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilActivateDeactivateTest.java
index 7ea72d3..60358a4 100644
--- a/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilActivateDeactivateTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilActivateDeactivateTest.java
@@ -25,12 +25,12 @@
 
 import java.util.Map;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
 import org.junit.Test;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 
 import com.google.common.collect.ImmutableMap;
 
diff --git a/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilTest.java b/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilTest.java
index ee1bf5b..1f92fa7 100644
--- a/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtilTest.java
@@ -31,14 +31,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.References;
-import org.apache.felix.scr.annotations.Service;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -50,7 +42,12 @@
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Modified;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -222,32 +219,31 @@
         // no methods
     }
 
-    @Component
-    @Service(ServiceInterface1.class)
-    @Property(name = Constants.SERVICE_RANKING, intValue = 100)
+    @Component(service = ServiceInterface1.class,
+            property = Constants.SERVICE_RANKING + ":Integer=100")
     public static class Service1 implements ServiceInterface1 {
         // dummy interface
     }
 
-    @Component
-    @Service({ ServiceInterface2.class, ServiceInterface3.class })
-    @Property(name = Constants.SERVICE_RANKING, intValue = 200)
+    @Component(service = { ServiceInterface2.class, ServiceInterface3.class },
+            property = Constants.SERVICE_RANKING + ":Integer=200")
     public static class Service2 implements ServiceInterface2, ServiceInterface3 {
         // dummy interface
     }
 
-    @Component
-    @References({ @Reference(name = "reference2", referenceInterface = ServiceInterface2.class, cardinality = ReferenceCardinality.MANDATORY_MULTIPLE) })
+    @Component(reference = { @Reference(name = "reference2", service = ServiceInterface2.class, cardinality = ReferenceCardinality.AT_LEAST_ONE,
+            bind="bindReference2", unbind="unbindReference2") })
     public static class Service3 {
 
-        @Reference
+        @Reference(bind="bindReference1", unbind="unbindReference1")
         private ServiceInterface1 reference1;
-        @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY)
+        @Reference(cardinality = ReferenceCardinality.OPTIONAL, bind="bindReference1Optional", unbind="unbindReference1Optional")
         private ServiceInterface1Optional reference1Optional;
 
         private List<ServiceReference> references2 = new ArrayList<ServiceReference>();
 
-        @Reference(name = "reference3", referenceInterface = ServiceInterface3.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE)
+        @Reference(name = "reference3", service = ServiceInterface3.class, cardinality = ReferenceCardinality.MULTIPLE,
+                bind="bindReference3", unbind="unbindReference3")
         private List<ServiceSuperInterface3> references3 = new ArrayList<ServiceSuperInterface3>();
         private List<Map<String, Object>> reference3Configs = new ArrayList<Map<String, Object>>();
 
@@ -399,18 +395,19 @@
 
     }
 
-    @Component
-    @References({ @Reference(name = "reference2", referenceInterface = ServiceInterface2.class, cardinality = ReferenceCardinality.MANDATORY_MULTIPLE) })
+    @Component(reference = { @Reference(name = "reference2", service = ServiceInterface2.class, cardinality = ReferenceCardinality.AT_LEAST_ONE,
+            bind="bindReference2", unbind="unbindReference2") })
     public static class Service3StaticGreedy {
 
-        @Reference
+        @Reference(bind="bindReference1", unbind="unbindReference1")
         private ServiceInterface1 reference1;
-        @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY)
+        @Reference(cardinality = ReferenceCardinality.OPTIONAL, bind="bindReference1Optional", unbind="unbindReference1Optional")
         private ServiceInterface1Optional reference1Optional;
 
         private List<ServiceReference> references2 = new ArrayList<ServiceReference>();
 
-        @Reference(name = "reference3", referenceInterface = ServiceInterface3.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE)
+        @Reference(name = "reference3", service = ServiceInterface3.class, cardinality = ReferenceCardinality.MULTIPLE,
+                bind="bindReference3", unbind="unbindReference3")
         private List<ServiceSuperInterface3> references3 = new ArrayList<ServiceSuperInterface3>();
         private List<Map<String, Object>> reference3Configs = new ArrayList<Map<String, Object>>();
 
@@ -501,8 +498,7 @@
 
     }
 
-    @Component
-    @Reference(referenceInterface = ServiceInterface1.class, name = "customName", bind = "customBind", unbind = "customUnbind")
+    @Component(reference = @Reference(service = ServiceInterface1.class, name = "customName", bind = "customBind", unbind = "customUnbind"))
     public static class Service4 {
 
         private ServiceInterface1 reference1;
@@ -521,8 +517,7 @@
 
     }
 
-    @Component
-    @Service({ ServiceInterface5.class })
+    @Component(service = { ServiceInterface5.class })
     public static class Service5 implements ServiceInterface5 {
 
         @Override
@@ -537,8 +532,7 @@
 
     }
 
-    @Component
-    @Service(value=ServiceFactory1.class, serviceFactory=true)
+    @Component(service = ServiceFactory1.class, servicefactory = true)
     public static class ServiceFactory1 {
         
     }