X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDistributedDataStore.java;h=3c760f35b8a671be81239e48ef6936a1e065c065;hp=f64c6f1a8669888726f30bfe4099aa628365ccbb;hb=1af23ad8e572896323ed5d1c723d977a16eb7e6d;hpb=2d16cfa0af7079ff969dcb81da6071ecacb3a5f6 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java index f64c6f1a86..3c760f35b8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DistributedDataStore.java @@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory; /** * */ -public class DistributedDataStore implements DOMStore, SchemaContextListener { +public class DistributedDataStore implements DOMStore, SchemaContextListener, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(DistributedDataStore.class); @@ -56,15 +56,17 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener { InstanceIdentifier path, L listener, AsyncDataBroker.DataChangeScope scope) { - ActorRef dataChangeListenerActor = actorContext.getActorSystem().actorOf(DataChangeListener.props()); + ActorRef dataChangeListenerActor = actorContext.getActorSystem().actorOf( + DataChangeListener.props()); Object result = actorContext.executeShardOperation(Shard.DEFAULT_NAME, new RegisterChangeListener(path, dataChangeListenerActor.path(), AsyncDataBroker.DataChangeScope.BASE), - ActorContext.ASK_DURATION); + ActorContext.ASK_DURATION + ); RegisterChangeListenerReply reply = (RegisterChangeListenerReply) result; - return new ListenerRegistrationProxy(reply.getListenerRegistrationPath()); + return new DataChangeListenerRegistrationProxy(actorContext.actorSelection(reply.getListenerRegistrationPath()), listener); } @@ -90,6 +92,12 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener { } @Override public void onGlobalContextUpdated(SchemaContext schemaContext) { - actorContext.getShardManager().tell(new UpdateSchemaContext(schemaContext), null); + actorContext.getShardManager().tell( + new UpdateSchemaContext(schemaContext), null); + } + + @Override public void close() throws Exception { + actorContext.shutdown(); + } }