From: Tom Pantelis Date: Wed, 25 Mar 2015 18:43:11 +0000 (+0000) Subject: Merge "Do not use ActorSystem.actorFor as it is deprecated" X-Git-Tag: release/lithium~350 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=4349b034606957d3e876b82b14a292e6739a986a;hp=6dcee56392712348b1abdcdc0d1d5f94dfcf505c Merge "Do not use ActorSystem.actorFor as it is deprecated" --- diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxy.java index 681132e660..8ac424a6a8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxy.java @@ -116,7 +116,7 @@ public class DataChangeListenerRegistrationProxy implements ListenerRegistration DataChangeScope scope) { Future future = actorContext.executeOperationAsync(shard, - new RegisterChangeListener(path, dataChangeListenerActor.path(), scope), + new RegisterChangeListener(path, dataChangeListenerActor, scope), actorContext.getDatastoreContext().getShardInitializationTimeout()); future.onComplete(new OnComplete(){ diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index 66467af130..a30b6f7516 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -677,7 +677,7 @@ public class Shard extends RaftActor { LOG.debug("{}: registerDataChangeListener sending reply, listenerRegistrationPath = {} ", persistenceId(), listenerRegistration.path()); - getSender().tell(new RegisterChangeListenerReply(listenerRegistration.path()), getSelf()); + getSender().tell(new RegisterChangeListenerReply(listenerRegistration), getSelf()); } private ListenerRegistration SERIALIZABLE_CLASS = ListenerRegistrationMessages.RegisterChangeListenerReply.class; - private final ActorPath listenerRegistrationPath; + private final ActorRef listenerRegistration; - public RegisterChangeListenerReply(final ActorPath listenerRegistrationPath) { - this.listenerRegistrationPath = listenerRegistrationPath; + public RegisterChangeListenerReply(final ActorRef listenerRegistration) { + this.listenerRegistration = listenerRegistration; } public ActorPath getListenerRegistrationPath() { - return listenerRegistrationPath; + return listenerRegistration.path(); } @Override public ListenerRegistrationMessages.RegisterChangeListenerReply toSerializable() { return ListenerRegistrationMessages.RegisterChangeListenerReply.newBuilder() - .setListenerRegistrationPath(listenerRegistrationPath.toString()).build(); + .setListenerRegistrationPath(Serialization.serializedActorPath(listenerRegistration)).build(); } public static RegisterChangeListenerReply fromSerializable(final ActorSystem actorSystem,final Object serializable){ ListenerRegistrationMessages.RegisterChangeListenerReply o = (ListenerRegistrationMessages.RegisterChangeListenerReply) serializable; return new RegisterChangeListenerReply( - actorSystem.actorFor(o.getListenerRegistrationPath()).path() + actorSystem.provider().resolveActorRef(o.getListenerRegistrationPath()) ); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxyTest.java index f6c8f07f6b..8ffb705df2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxyTest.java @@ -96,7 +96,7 @@ public class DataChangeListenerRegistrationProxyTest extends AbstractActorTest { Assert.assertEquals("getPath", path, registerMsg.getPath()); Assert.assertEquals("getScope", scope, registerMsg.getScope()); - reply(new RegisterChangeListenerReply(getRef().path())); + reply(new RegisterChangeListenerReply(getRef())); for(int i = 0; (i < 20 * 5) && proxy.getListenerRegistrationActor() == null; i++) { Uninterruptibles.sleepUninterruptibly(50, TimeUnit.MILLISECONDS); @@ -242,7 +242,7 @@ public class DataChangeListenerRegistrationProxyTest extends AbstractActorTest { @Override public Future answer(InvocationOnMock invocation) { proxy.close(); - return Futures.successful((Object)new RegisterChangeListenerReply(getRef().path())); + return Futures.successful((Object)new RegisterChangeListenerReply(getRef())); } }; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java index adc7f4706c..3e0bc42397 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java @@ -120,7 +120,7 @@ public class ShardTest extends AbstractShardTest { "testRegisterChangeListener-DataChangeListener"); shard.tell(new RegisterChangeListener(TestModel.TEST_PATH, - dclActor.path(), AsyncDataBroker.DataChangeScope.BASE), getRef()); + dclActor, AsyncDataBroker.DataChangeScope.BASE), getRef()); RegisterChangeListenerReply reply = expectMsgClass(duration("3 seconds"), RegisterChangeListenerReply.class); @@ -208,7 +208,7 @@ public class ShardTest extends AbstractShardTest { onFirstElectionTimeout.await(5, TimeUnit.SECONDS)); // Now send the RegisterChangeListener and wait for the reply. - shard.tell(new RegisterChangeListener(path, dclActor.path(), + shard.tell(new RegisterChangeListener(path, dclActor, AsyncDataBroker.DataChangeScope.SUBTREE), getRef()); RegisterChangeListenerReply reply = expectMsgClass(duration("5 seconds"), diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListenerReplyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListenerReplyTest.java new file mode 100644 index 0000000000..696a898169 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListenerReplyTest.java @@ -0,0 +1,58 @@ +package org.opendaylight.controller.cluster.datastore.messages; + +import static junit.framework.TestCase.assertEquals; +import akka.actor.Actor; +import akka.serialization.Serialization; +import akka.testkit.TestActorRef; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.opendaylight.controller.cluster.datastore.AbstractActorTest; +import org.opendaylight.controller.cluster.raft.TestActorFactory; +import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; +import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages; + +public class RegisterChangeListenerReplyTest extends AbstractActorTest { + + private TestActorFactory factory; + + + @Before + public void setUp(){ + factory = new TestActorFactory(getSystem()); + } + + @After + public void shutDown(){ + factory.close(); + } + + @Test + public void testToSerializable(){ + TestActorRef testActor = factory.createTestActor(MessageCollectorActor.props()); + + RegisterChangeListenerReply registerChangeListenerReply = new RegisterChangeListenerReply(testActor); + + ListenerRegistrationMessages.RegisterChangeListenerReply serialized + = registerChangeListenerReply.toSerializable(); + + assertEquals(Serialization.serializedActorPath(testActor), serialized.getListenerRegistrationPath()); + } + + @Test + public void testFromSerializable(){ + TestActorRef testActor = factory.createTestActor(MessageCollectorActor.props()); + + RegisterChangeListenerReply registerChangeListenerReply = new RegisterChangeListenerReply(testActor); + + ListenerRegistrationMessages.RegisterChangeListenerReply serialized + = registerChangeListenerReply.toSerializable(); + + + RegisterChangeListenerReply fromSerialized + = RegisterChangeListenerReply.fromSerializable(getSystem(), serialized); + + assertEquals(testActor.path().toString(), fromSerialized.getListenerRegistrationPath().toString()); + } + +} \ No newline at end of file diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListenerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListenerTest.java new file mode 100644 index 0000000000..2354a7946a --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/RegisterChangeListenerTest.java @@ -0,0 +1,67 @@ +package org.opendaylight.controller.cluster.datastore.messages; + +import static junit.framework.TestCase.assertEquals; +import akka.actor.Actor; +import akka.serialization.Serialization; +import akka.testkit.TestActorRef; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.opendaylight.controller.cluster.datastore.AbstractActorTest; +import org.opendaylight.controller.cluster.raft.TestActorFactory; +import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; +import org.opendaylight.controller.md.cluster.datastore.model.TestModel; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker; +import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; +import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages; + +public class RegisterChangeListenerTest extends AbstractActorTest { + + private TestActorFactory factory; + + @Before + public void setUp(){ + factory = new TestActorFactory(getSystem()); + } + + @After + public void shutDown(){ + factory.close(); + } + + @Test + public void testToSerializable(){ + TestActorRef testActor = factory.createTestActor(MessageCollectorActor.props()); + RegisterChangeListener registerChangeListener = new RegisterChangeListener(TestModel.TEST_PATH, testActor + , AsyncDataBroker.DataChangeScope.BASE); + + ListenerRegistrationMessages.RegisterChangeListener serialized + = registerChangeListener.toSerializable(); + + NormalizedNodeMessages.InstanceIdentifier path = serialized.getInstanceIdentifierPath(); + + assertEquals("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", path.getCode(0)); + assertEquals(Serialization.serializedActorPath(testActor), serialized.getDataChangeListenerActorPath()); + assertEquals(AsyncDataBroker.DataChangeScope.BASE.ordinal(), serialized.getDataChangeScope()); + + } + + @Test + public void testFromSerializable(){ + TestActorRef testActor = factory.createTestActor(MessageCollectorActor.props()); + RegisterChangeListener registerChangeListener = new RegisterChangeListener(TestModel.TEST_PATH, testActor + , AsyncDataBroker.DataChangeScope.SUBTREE); + + ListenerRegistrationMessages.RegisterChangeListener serialized + = registerChangeListener.toSerializable(); + + + RegisterChangeListener fromSerialized = RegisterChangeListener.fromSerializable(getSystem(), serialized); + + assertEquals(TestModel.TEST_PATH, registerChangeListener.getPath()); + assertEquals(testActor.path().toString(), fromSerialized.getDataChangeListenerPath().toString()); + assertEquals(AsyncDataBroker.DataChangeScope.SUBTREE, fromSerialized.getScope()); + + + } +} \ No newline at end of file