BUG-5626: do not allow overriding of RaftActor.handleCommand() 58/36958/18
authorRobert Varga <rovarga@cisco.com>
Thu, 31 Mar 2016 14:03:46 +0000 (16:03 +0200)
committerRobert Varga <rovarga@cisco.com>
Tue, 12 Apr 2016 11:34:14 +0000 (13:34 +0200)
commitf276ae33b951d173b51c467bb7bb1a5f5cf9a1e6
tree90fc0cd54828d6efd9c1d6d19d672677d3a1e8d7
parent21b1c23954208525d2b81ae66cc1d55d9f4a314d
BUG-5626: do not allow overriding of RaftActor.handleCommand()

Our class hierarchy does not reflect what a typical actor would do
and allows subclasses to override base message processing. This has
the potential to break the RAFT implementation.

Expose a new method, handleNonRaftCommand(), which subclasses can use
to plug in their message processing. This method is invoked after
RAFT message processing has completed.

Change-Id: I8ce2e44db2169e7b1ab55d5f9b6611a187ae1f84
Signed-off-by: Robert Varga <rovarga@cisco.com>
13 files changed:
opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/ExampleActor.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Leader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/RaftActorBehavior.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeaderElectionScenarioTest.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehaviorTest.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderTest.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShard.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java