Separate privileged methods to MappingAdminService

Change-Id: I8cb32fe027ed70e6d37a8069403224ef4a1fd224
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingAdminService.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingAdminService.java
index 8f41e10..60ad4e0 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingAdminService.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingAdminService.java
@@ -15,8 +15,46 @@
  */
 package org.onosproject.mapping;
 
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.DeviceId;
+
 /**
  * Service for administering the mapping management.
  */
 public interface MappingAdminService extends MappingService {
+
+    /**
+     * Stores a mapping entry.
+     *
+     * @param type  mapping store type
+     * @param entry mapping entry to be stored
+     */
+    void storeMappingEntry(MappingStore.Type type, MappingEntry entry);
+
+    /**
+     * Removes the specified mapping entries from their respective devices and
+     * mapping store.
+     *
+     * @param type     mapping store type
+     * @param entries  one or more mapping entries
+     */
+    void removeMappingEntries(MappingStore.Type type, MappingEntry... entries);
+
+    /**
+     * Removes all mapping entries submitted by a particular application.
+     *
+     * @param type  mapping store type
+     * @param appId identifier of application whose mapping entries will be removed
+     */
+    void removeMappingEntriesByAppId(MappingStore.Type type, ApplicationId appId);
+
+    /**
+     * Purges all mappings on the specified device and mapping store.
+     * Note that the mappings will only be removed from storage, the mappings
+     * are still remaining in the device.
+     *
+     * @param type     mapping store type
+     * @param deviceId device identifier
+     */
+    void purgeMappings(MappingStore.Type type, DeviceId deviceId);
 }
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java
index e15507f..7a1ddbe 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java
@@ -35,14 +35,6 @@
     int getMappingCount(Type type);
 
     /**
-     * Stores a mapping entry.
-     *
-     * @param type  mapping store type
-     * @param entry mapping entry to be stored
-     */
-    void storeMappingEntry(Type type, MappingEntry entry);
-
-    /**
      * Obtains the collection of mapping entries applied on the specific device.
      * The will include mapping which may not yet have been applied to device.
      *
@@ -60,31 +52,4 @@
      * @return collection of mapping entries
      */
     Iterable<MappingEntry> getMappingEntriesByAddId(Type type, ApplicationId appId);
-
-    /**
-     * Removes the specified mapping entries from their respective devices and
-     * mapping store.
-     *
-     * @param type     mapping store type
-     * @param entries  one or more mapping entries
-     */
-    void removeMappingEntries(Type type, MappingEntry... entries);
-
-    /**
-     * Removes all mapping entries submitted by a particular application.
-     *
-     * @param type  mapping store type
-     * @param appId identifier of application whose mapping entries will be removed
-     */
-    void removeMappingEntriesByAppId(Type type, ApplicationId appId);
-
-    /**
-     * Purges all mappings on the specified device and mapping store.
-     * Note that the mappings will only be removed from storage, the mappings
-     * are still remaining in the device.
-     *
-     * @param type     mapping store type
-     * @param deviceId device identifier
-     */
-    void purgeMappings(Type type, DeviceId deviceId);
 }
diff --git a/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java b/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java
index c767c36..5af006e 100644
--- a/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java
+++ b/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java
@@ -38,10 +38,6 @@
         return 0;
     }
 
-    @Override
-    public void storeMappingEntry(Type type, MappingEntry entry) {
-
-    }
 
     @Override
     public Iterable<MappingEntry> getMappingEntries(Type type, DeviceId deviceId) {
@@ -52,19 +48,4 @@
     public Iterable<MappingEntry> getMappingEntriesByAddId(Type type, ApplicationId appId) {
         return null;
     }
-
-    @Override
-    public void removeMappingEntries(Type type, MappingEntry... mappingEntries) {
-
-    }
-
-    @Override
-    public void removeMappingEntriesByAppId(Type type, ApplicationId appId) {
-
-    }
-
-    @Override
-    public void purgeMappings(Type type, DeviceId deviceId) {
-
-    }
 }
diff --git a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
index 72be9e7..7a741a5 100644
--- a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
+++ b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
@@ -24,6 +24,7 @@
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
 import org.onosproject.core.ApplicationId;
+import org.onosproject.mapping.MappingAdminService;
 import org.onosproject.mapping.MappingEntry;
 import org.onosproject.mapping.MappingEvent;
 import org.onosproject.mapping.MappingListener;
@@ -53,7 +54,7 @@
 public class MappingManager
         extends AbstractListenerProviderRegistry<MappingEvent, MappingListener,
                                                  MappingProvider, MappingProviderService>
-        implements MappingService, MappingProviderRegistry {
+        implements MappingService, MappingAdminService, MappingProviderRegistry {
 
     private final Logger log = getLogger(getClass());
 
diff --git a/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java b/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java
index 54fc652..95aa93f 100644
--- a/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java
+++ b/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java
@@ -27,6 +27,7 @@
 import org.onosproject.mapping.DefaultMapping;
 import org.onosproject.mapping.DefaultMappingEntry;
 import org.onosproject.mapping.Mapping;
+import org.onosproject.mapping.MappingAdminService;
 import org.onosproject.mapping.MappingEntry;
 import org.onosproject.mapping.MappingEvent;
 import org.onosproject.mapping.MappingKey;
@@ -82,6 +83,7 @@
     private MappingManager manager;
 
     private MappingService service;
+    private MappingAdminService adminService;
     private MappingProviderRegistry registry;
     private MappingProviderService providerService;
     private TestProvider provider;
@@ -96,6 +98,7 @@
         manager.deviceService = new TestDeviceService();
 
         service = manager;
+        adminService = manager;
         registry = manager;
 
         manager.activate();
@@ -160,7 +163,7 @@
     private Mapping addMapping(Type type, int tval) {
         Mapping mapping = mapping(tval, tval);
         MappingEntry entry = new DefaultMappingEntry(mapping);
-        service.storeMappingEntry(type, entry);
+        adminService.storeMappingEntry(type, entry);
 
         assertNotNull("mapping should be found",
                                 service.getMappingEntries(type, LISP_DID));
@@ -209,9 +212,9 @@
 
         assertTrue("store should be empty", Sets.newHashSet(
                 service.getMappingEntries(MAP_DATABASE, LISP_DID)).isEmpty());
-        service.storeMappingEntry(MAP_DATABASE, me1);
-        service.storeMappingEntry(MAP_DATABASE, me2);
-        service.storeMappingEntry(MAP_DATABASE, me3);
+        adminService.storeMappingEntry(MAP_DATABASE, me1);
+        adminService.storeMappingEntry(MAP_DATABASE, me2);
+        adminService.storeMappingEntry(MAP_DATABASE, me3);
         assertEquals("3 mappings should exist", 3, mappingCount(MAP_DATABASE));
     }
 
@@ -229,7 +232,7 @@
         MappingEntry me1 = new DefaultMappingEntry(m1);
         MappingEntry me2 = new DefaultMappingEntry(m2);
 
-        service.removeMappingEntries(MAP_DATABASE, me1, me2);
+        adminService.removeMappingEntries(MAP_DATABASE, me1, me2);
         assertEquals("1 mappings should exist", 1, mappingCount(MAP_DATABASE));
     }
 
@@ -244,7 +247,7 @@
         addMapping(MAP_DATABASE, 3);
         assertEquals("3 mappings should exist", 3, mappingCount(MAP_DATABASE));
 
-        service.purgeMappings(MAP_DATABASE, LISP_DID);
+        adminService.purgeMappings(MAP_DATABASE, LISP_DID);
         assertEquals("0 mappings should exist", 0, mappingCount(MAP_DATABASE));
     }
 
@@ -269,7 +272,7 @@
         addMapping(MAP_DATABASE, 1);
         addMapping(MAP_DATABASE, 2);
 
-        service.removeMappingEntriesByAppId(MAP_DATABASE, appId);
+        adminService.removeMappingEntriesByAppId(MAP_DATABASE, appId);
 
         assertTrue("should not have any mappings",
                 Lists.newLinkedList(