import akka.actor.Props;
import akka.actor.Status;
import com.google.common.base.Preconditions;
+import java.util.Collection;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor;
import org.opendaylight.mdsal.common.api.PostCanCommitStep;
@Override
protected void handleReceive(final Object message) {
+ LOG.debug("handleReceive for cohort {} - currentState: {}, message: {}", cohort.getClass().getName(),
+ currentState, message);
+
currentState = currentState.handle(message);
}
protected CommitProtocolCommand(TransactionIdentifier txId) {
this.txId = Preconditions.checkNotNull(txId);
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + " [txId=" + txId + "]";
+ }
}
static final class CanCommit extends CommitProtocolCommand<Success> {
- private final DOMDataTreeCandidate candidate;
+ private final Collection<DOMDataTreeCandidate> candidates;
private final ActorRef cohort;
private final SchemaContext schema;
- CanCommit(TransactionIdentifier txId, DOMDataTreeCandidate candidate, SchemaContext schema, ActorRef cohort) {
+ CanCommit(TransactionIdentifier txId, Collection<DOMDataTreeCandidate> candidates, SchemaContext schema,
+ ActorRef cohort) {
super(txId);
this.cohort = Preconditions.checkNotNull(cohort);
- this.candidate = Preconditions.checkNotNull(candidate);
+ this.candidates = Preconditions.checkNotNull(candidates);
this.schema = Preconditions.checkNotNull(schema);
}
- DOMDataTreeCandidate getCandidate() {
- return candidate;
+ Collection<DOMDataTreeCandidate> getCandidates() {
+ return candidates;
}
SchemaContext getSchema() {
return cohort;
}
+ @Override
+ public String toString() {
+ return "CanCommit [txId=" + getTxId() + ", candidates=" + candidates + ", cohort=" + cohort + "]";
+ }
}
abstract static class CommitReply {
final TransactionIdentifier getTxId() {
return txId;
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + " [txId=" + txId + ", cohortRef=" + cohortRef + "]";
+ }
}
static final class Success extends CommitReply {
Success(ActorRef cohortRef, TransactionIdentifier txId) {
super(cohortRef, txId);
}
-
}
static final class PreCommit extends CommitProtocolCommand<Success> {
abstract CohortBehaviour<?> process(E message);
+ @Override
+ public String toString() {
+ return getClass().getSimpleName();
+ }
}
private class Idle extends CohortBehaviour<CanCommit> {
CohortBehaviour<?> process(CanCommit message) {
final PostCanCommitStep nextStep;
try {
- nextStep = cohort.canCommit(message.getTxId(), message.getCandidate(), message.getSchema()).get();
+ nextStep = cohort.canCommit(message.getTxId(), message.getCandidates(), message.getSchema()).get();
} catch (final Exception e) {
getSender().tell(new Status.Failure(e), getSelf());
return this;
CohortBehaviour<?> abort() {
return this;
}
-
}
return idleState;
}
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + " [txId=" + txId + ", step=" + step + "]";
+ }
}
private class PostCanCommit extends CohortStateWithStep<PreCommit, PostCanCommitStep> {