Refactored code in an attempt to break dependency cycles
diff --git a/core/api/src/main/java/org/onlab/onos/store/ClockProviderService.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceClockProviderService.java
similarity index 64%
rename from core/api/src/main/java/org/onlab/onos/store/ClockProviderService.java
rename to core/api/src/main/java/org/onlab/onos/net/device/DeviceClockProviderService.java
index fff6d15..6ef480d 100644
--- a/core/api/src/main/java/org/onlab/onos/store/ClockProviderService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceClockProviderService.java
@@ -1,14 +1,13 @@
-package org.onlab.onos.store;
+package org.onlab.onos.net.device;
 
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.device.DeviceMastershipTerm;
 
 //TODO: Consider renaming to DeviceClockProviderService?
 /**
 * Interface for feeding term information to a logical clock service
 * that vends per device timestamps.
 */
-public interface ClockProviderService {
+public interface DeviceClockProviderService {
 
     /**
      * Updates the mastership term for the specified deviceId.
@@ -16,5 +15,5 @@
      * @param deviceId device identifier.
      * @param term mastership term.
      */
-    public void setMastershipTerm(DeviceId deviceId, DeviceMastershipTerm term);
+    public void setDeviceMastershipTerm(DeviceId deviceId, DeviceMastershipTerm term);
 }
diff --git a/core/api/src/main/java/org/onlab/onos/store/ClockService.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceClockService.java
similarity index 83%
rename from core/api/src/main/java/org/onlab/onos/store/ClockService.java
rename to core/api/src/main/java/org/onlab/onos/net/device/DeviceClockService.java
index 20549e8..b979db2 100644
--- a/core/api/src/main/java/org/onlab/onos/store/ClockService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceClockService.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store;
+package org.onlab.onos.net.device;
 
 import org.onlab.onos.net.DeviceId;
 
@@ -6,7 +6,7 @@
 /**
  * Interface for a logical clock service that vends per device timestamps.
  */
-public interface ClockService {
+public interface DeviceClockService {
 
     /**
      * Returns a new timestamp for the specified deviceId.
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipAdminService.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipAdminService.java
index 78c9c39..3d31f37 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipAdminService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipAdminService.java
@@ -2,7 +2,6 @@
 
 import org.onlab.onos.cluster.NodeId;
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 
 /**
  * Service for administering the inventory of device masterships.
@@ -16,6 +15,6 @@
      * @param deviceId device identifier
      * @param role     requested role
      */
-    void setRole(NodeId instance, DeviceId deviceId, MastershipRole role);
+    void setRole(NodeId instance, DeviceId deviceId, DeviceMastershipRole role);
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/MastershipRole.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipRole.java
similarity index 89%
rename from core/api/src/main/java/org/onlab/onos/net/MastershipRole.java
rename to core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipRole.java
index 10d53ad..89bdc59 100644
--- a/core/api/src/main/java/org/onlab/onos/net/MastershipRole.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipRole.java
@@ -1,10 +1,10 @@
-package org.onlab.onos.net;
+package org.onlab.onos.net.device;
 
 /**
  * Representation of a relationship role of a controller instance to a device
  * or a region of network environment.
  */
-public enum MastershipRole {
+public enum DeviceMastershipRole {
 
     /**
      * Represents a relationship where the controller instance is the master
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipService.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipService.java
index a44abfd..18683ea 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipService.java
@@ -4,7 +4,6 @@
 
 import org.onlab.onos.cluster.NodeId;
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 
 /**
  * Service responsible for determining the controller instance mastership of
@@ -21,7 +20,7 @@
      * @param deviceId the the identifier of the device
      * @return role of the current node
      */
-    MastershipRole getLocalRole(DeviceId deviceId);
+    DeviceMastershipRole getLocalRole(DeviceId deviceId);
 
     /**
      * Returns the mastership status of the local controller for a given
@@ -30,7 +29,7 @@
      * @param deviceId the the identifier of the device
      * @return the role of this controller instance
      */
-    MastershipRole requestRoleFor(DeviceId deviceId);
+    DeviceMastershipRole requestRoleFor(DeviceId deviceId);
 
     /**
      * Abandons mastership of the specified device on the local node thus
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipStore.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipStore.java
index ee9b253..9c1b3e6 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipStore.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceMastershipStore.java
@@ -4,7 +4,6 @@
 
 import org.onlab.onos.cluster.NodeId;
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.store.Store;
 
 /**
@@ -21,7 +20,7 @@
      * @param deviceId device identifier
      * @return established or newly negotiated mastership role
      */
-    MastershipRole requestRole(DeviceId deviceId);
+    DeviceMastershipRole requestRole(DeviceId deviceId);
 
     /**
      * Returns the role of a device for a specific controller instance.
@@ -30,7 +29,7 @@
      * @param deviceId the device identifiers
      * @return the role
      */
-    MastershipRole getRole(NodeId nodeId, DeviceId deviceId);
+    DeviceMastershipRole getRole(NodeId nodeId, DeviceId deviceId);
 
     /**
      * Returns the master for a device.
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
index 9934b8d..9a51a16 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
@@ -1,7 +1,6 @@
 package org.onlab.onos.net.device;
 
 import org.onlab.onos.net.Device;
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.provider.Provider;
 
 /**
@@ -30,6 +29,6 @@
      * @param device  affected device
      * @param newRole newly determined mastership role
      */
-    void roleChanged(Device device, MastershipRole newRole);
+    void roleChanged(Device device, DeviceMastershipRole newRole);
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
index d043eca..168b684 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
@@ -1,7 +1,6 @@
 package org.onlab.onos.net.device;
 
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.provider.ProviderService;
 
 import java.util.List;
@@ -53,6 +52,6 @@
      * @param deviceId identity of the device
      * @param role mastership role that was asserted but failed
      */
-    void unableToAssertRole(DeviceId deviceId, MastershipRole role);
+    void unableToAssertRole(DeviceId deviceId, DeviceMastershipRole role);
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/device/DeviceService.java b/core/api/src/main/java/org/onlab/onos/net/device/DeviceService.java
index 54b9d72..3a6f89b 100644
--- a/core/api/src/main/java/org/onlab/onos/net/device/DeviceService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/DeviceService.java
@@ -2,7 +2,6 @@
 
 import org.onlab.onos.net.Device;
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.Port;
 import org.onlab.onos.net.PortNumber;
 
@@ -43,7 +42,7 @@
      * @return designated mastership role
      */
     //XXX do we want this method here when MastershipService already does?
-    MastershipRole getRole(DeviceId deviceId);
+    DeviceMastershipRole getRole(DeviceId deviceId);
 
 
     /**
diff --git a/core/api/src/main/java/org/onlab/onos/store/Timestamp.java b/core/api/src/main/java/org/onlab/onos/net/device/Timestamp.java
similarity index 90%
rename from core/api/src/main/java/org/onlab/onos/store/Timestamp.java
rename to core/api/src/main/java/org/onlab/onos/net/device/Timestamp.java
index b3caf85..8acf16c 100644
--- a/core/api/src/main/java/org/onlab/onos/store/Timestamp.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/Timestamp.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store;
+package org.onlab.onos.net.device;
 
 /**
  * Opaque version structure.
diff --git a/core/api/src/main/java/org/onlab/onos/store/Timestamped.java b/core/api/src/main/java/org/onlab/onos/net/device/Timestamped.java
similarity index 97%
rename from core/api/src/main/java/org/onlab/onos/store/Timestamped.java
rename to core/api/src/main/java/org/onlab/onos/net/device/Timestamped.java
index 9de7b0d..9d3549a 100644
--- a/core/api/src/main/java/org/onlab/onos/store/Timestamped.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/Timestamped.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store;
+package org.onlab.onos.net.device;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
diff --git a/core/api/src/main/java/org/onlab/onos/store/VersionedValue.java b/core/api/src/main/java/org/onlab/onos/net/device/VersionedValue.java
similarity index 97%
rename from core/api/src/main/java/org/onlab/onos/store/VersionedValue.java
rename to core/api/src/main/java/org/onlab/onos/net/device/VersionedValue.java
index 70602f6..f0233ef 100644
--- a/core/api/src/main/java/org/onlab/onos/store/VersionedValue.java
+++ b/core/api/src/main/java/org/onlab/onos/net/device/VersionedValue.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store;
+package org.onlab.onos.net.device;
 
 import java.util.Objects;
 
diff --git a/core/api/src/test/java/org/onlab/onos/cluster/MastershipServiceAdapter.java b/core/api/src/test/java/org/onlab/onos/cluster/MastershipServiceAdapter.java
index 53fafd3..c30ee3e 100644
--- a/core/api/src/test/java/org/onlab/onos/cluster/MastershipServiceAdapter.java
+++ b/core/api/src/test/java/org/onlab/onos/cluster/MastershipServiceAdapter.java
@@ -1,8 +1,8 @@
 package org.onlab.onos.cluster;
 
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.device.DeviceMastershipListener;
+import org.onlab.onos.net.device.DeviceMastershipRole;
 import org.onlab.onos.net.device.DeviceMastershipService;
 import org.onlab.onos.net.device.DeviceMastershipTermService;
 
@@ -13,12 +13,12 @@
  */
 public class MastershipServiceAdapter implements DeviceMastershipService {
     @Override
-    public MastershipRole getLocalRole(DeviceId deviceId) {
+    public DeviceMastershipRole getLocalRole(DeviceId deviceId) {
         return null;
     }
 
     @Override
-    public MastershipRole requestRoleFor(DeviceId deviceId) {
+    public DeviceMastershipRole requestRoleFor(DeviceId deviceId) {
         return null;
     }
 
diff --git a/core/api/src/test/java/org/onlab/onos/net/device/DeviceServiceAdapter.java b/core/api/src/test/java/org/onlab/onos/net/device/DeviceServiceAdapter.java
index bfb28f6..aef5786 100644
--- a/core/api/src/test/java/org/onlab/onos/net/device/DeviceServiceAdapter.java
+++ b/core/api/src/test/java/org/onlab/onos/net/device/DeviceServiceAdapter.java
@@ -2,7 +2,6 @@
 
 import org.onlab.onos.net.Device;
 import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.Port;
 import org.onlab.onos.net.PortNumber;
 
@@ -28,7 +27,7 @@
     }
 
     @Override
-    public MastershipRole getRole(DeviceId deviceId) {
+    public DeviceMastershipRole getRole(DeviceId deviceId) {
         return null;
     }