Separated ARP proxy as an independent component and some renaming

- Renamed CordVtnService to DependencyService
- Renamed CordVtnInstanceManager to InstanceManager and added
  InstanceService as an interface of the manager implementation
- Renamed package name impl.service to impl.handler
- Added Constants class

Change-Id: I249708c008d5105957aa1d1a796f0ca32025e75c
diff --git a/src/main/java/org/opencord/cordvtn/impl/AbstractInstanceHandler.java b/src/main/java/org/opencord/cordvtn/impl/AbstractInstanceHandler.java
index 29868b4..d714e3e 100644
--- a/src/main/java/org/opencord/cordvtn/impl/AbstractInstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/impl/AbstractInstanceHandler.java
@@ -37,8 +37,8 @@
 import org.onosproject.xosclient.api.VtnServiceId;
 import org.onosproject.xosclient.api.XosAccess;
 import org.onosproject.xosclient.api.XosClientService;
+import org.opencord.cordvtn.api.Constants;
 import org.opencord.cordvtn.api.CordVtnConfig;
-import org.opencord.cordvtn.api.CordVtnService;
 import org.opencord.cordvtn.api.Instance;
 import org.opencord.cordvtn.api.InstanceHandler;
 import org.slf4j.Logger;
@@ -51,6 +51,10 @@
 import java.util.stream.StreamSupport;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor;
+import static org.onlab.util.Tools.groupedThreads;
+import static org.opencord.cordvtn.api.Constants.ERROR_OPENSTACK_ACCESS;
+import static org.opencord.cordvtn.api.Constants.ERROR_XOS_ACCESS;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -65,19 +69,16 @@
     protected NetworkConfigRegistry configRegistry;
     protected HostService hostService;
     protected XosClientService xosClient;
-    protected CordVtnPipeline pipeline;
-    protected CordVtnNodeManager nodeManager;
 
     protected ApplicationId appId;
-    protected ExecutorService eventExecutor;
     protected Optional<ServiceType> serviceType = Optional.empty();
     protected NetworkConfigListener configListener = new InternalConfigListener();
     protected HostListener hostListener = new InternalHostListener();
 
-    private static final String OPENSTACK_ACCESS_ERROR = "OpenStack access is not configured";
-    private static final String XOS_ACCESS_ERROR = "XOS access is not configured";
     private XosAccess xosAccess = null;
     private OpenStackAccess osAccess = null;
+    private final ExecutorService eventExecutor = newSingleThreadScheduledExecutor(
+            groupedThreads(this.getClass().getSimpleName(), "event-handler"));
 
     protected void activate() {
         ServiceDirectory services = new DefaultServiceDirectory();
@@ -86,10 +87,8 @@
         mastershipService = services.get(MastershipService.class);
         hostService = services.get(HostService.class);
         xosClient = services.get(XosClientService.class);
-        pipeline = services.get(CordVtnPipeline.class);
-        nodeManager = services.get(CordVtnNodeManager.class);
 
-        appId = coreService.registerApplication(CordVtnService.CORDVTN_APP_ID);
+        appId = coreService.registerApplication(Constants.CORDVTN_APP_ID);
         hostService.addListener(hostListener);
         configRegistry.addListener(configListener);
 
@@ -105,8 +104,8 @@
     }
 
     protected VtnService getVtnService(VtnServiceId serviceId) {
-        checkNotNull(osAccess, OPENSTACK_ACCESS_ERROR);
-        checkNotNull(xosAccess, XOS_ACCESS_ERROR);
+        checkNotNull(osAccess, ERROR_OPENSTACK_ACCESS);
+        checkNotNull(xosAccess, ERROR_XOS_ACCESS);
 
         // TODO remove openstack access when XOS provides all information
         VtnServiceApi serviceApi = xosClient.getClient(xosAccess).vtnService();
@@ -118,8 +117,8 @@
     }
 
     protected VtnPort getVtnPort(Instance instance) {
-        checkNotNull(osAccess, OPENSTACK_ACCESS_ERROR);
-        checkNotNull(xosAccess, XOS_ACCESS_ERROR);
+        checkNotNull(osAccess, ERROR_OPENSTACK_ACCESS);
+        checkNotNull(xosAccess, ERROR_XOS_ACCESS);
 
         VtnPortId vtnPortId = instance.portId();
         VtnPortApi portApi = xosClient.getClient(xosAccess).vtnPort();