X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardTransactionChain.java;h=50042411b17eeb0b0428963535008e8a777ca915;hb=eb887b1c2c8cd2768f8b4c2ed2b5054f97798466;hp=1092e9a793d82443b2bda82eeb81fbebb7360675;hpb=eee61ea351b6179d2862dce6875bdc25dd0fb272;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionChain.java index 1092e9a793..50042411b1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionChain.java @@ -17,6 +17,7 @@ import org.opendaylight.controller.cluster.datastore.messages.CreateTransaction; import org.opendaylight.controller.cluster.datastore.messages.CreateTransactionReply; import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction; import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; /** * The ShardTransactionChain Actor represents a remote TransactionChain @@ -24,19 +25,23 @@ import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain; public class ShardTransactionChain extends AbstractUntypedActor { private final DOMStoreTransactionChain chain; + private final SchemaContext schemaContext; - public ShardTransactionChain(DOMStoreTransactionChain chain) { + public ShardTransactionChain(DOMStoreTransactionChain chain, SchemaContext schemaContext) { this.chain = chain; + this.schemaContext = schemaContext; } @Override public void handleReceive(Object message) throws Exception { - if (message instanceof CreateTransaction) { - CreateTransaction createTransaction = (CreateTransaction) message; + if (message.getClass().equals(CreateTransaction.SERIALIZABLE_CLASS)) { + CreateTransaction createTransaction = CreateTransaction.fromSerializable( message); createTransaction(createTransaction); - } else if (message instanceof CloseTransactionChain) { + } else if (message.getClass().equals(CloseTransactionChain.SERIALIZABLE_CLASS)) { chain.close(); - getSender().tell(new CloseTransactionChainReply(), getSelf()); + getSender().tell(new CloseTransactionChainReply().toSerializable(), getSelf()); + }else{ + throw new Exception("Not recognized message recieved="+message); } } @@ -44,18 +49,18 @@ public class ShardTransactionChain extends AbstractUntypedActor { DOMStoreReadWriteTransaction transaction = chain.newReadWriteTransaction(); ActorRef transactionActor = getContext().actorOf(ShardTransaction - .props(chain, transaction, getContext().parent()), "shard-" + createTransaction.getTransactionId()); + .props(chain, transaction, getContext().parent(), schemaContext), "shard-" + createTransaction.getTransactionId()); getSender() - .tell(new CreateTransactionReply(transactionActor.path(), createTransaction.getTransactionId()), + .tell(new CreateTransactionReply(transactionActor.path().toString(),createTransaction.getTransactionId()).toSerializable(), getSelf()); } - public static Props props(final DOMStoreTransactionChain chain) { + public static Props props(final DOMStoreTransactionChain chain, final SchemaContext schemaContext) { return Props.create(new Creator() { @Override public ShardTransactionChain create() throws Exception { - return new ShardTransactionChain(chain); + return new ShardTransactionChain(chain, schemaContext); } }); }