Added notion of a general Store abstraction and wired it up in ClusterStore.
diff --git a/core/store/src/main/java/org/onlab/onos/store/cluster/impl/DistributedMastershipStore.java b/core/store/src/main/java/org/onlab/onos/store/cluster/impl/DistributedMastershipStore.java
index 92d6880..2a7f67a 100644
--- a/core/store/src/main/java/org/onlab/onos/store/cluster/impl/DistributedMastershipStore.java
+++ b/core/store/src/main/java/org/onlab/onos/store/cluster/impl/DistributedMastershipStore.java
@@ -13,6 +13,7 @@
 import org.onlab.onos.cluster.ClusterService;
 import org.onlab.onos.cluster.MastershipEvent;
 import org.onlab.onos.cluster.MastershipStore;
+import org.onlab.onos.cluster.MastershipStoreDelegate;
 import org.onlab.onos.cluster.NodeId;
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.MastershipRole;
@@ -31,7 +32,8 @@
  */
 @Component(immediate = true)
 @Service
-public class DistributedMastershipStore extends AbstractDistributedStore
+public class DistributedMastershipStore
+        extends AbstractDistributedStore<MastershipEvent, MastershipStoreDelegate>
         implements MastershipStore {
 
     private IMap<byte[], byte[]> rawMasters;