Make ShardCoordinationTasks public
[mdsal.git] / dom / mdsal-dom-inmemory-datastore / src / main / java / org / opendaylight / mdsal / dom / store / inmemory / ShardCanCommitCoordinationTask.java
index 9c2f5a02f779b25bfd676def28fd0e7c426f201a..c8499ecd48cbee559628ed2c137b3c2641dfd32d 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.mdsal.dom.store.inmemory;
 
+import com.google.common.annotations.Beta;
+import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Collection;
 import java.util.concurrent.Callable;
@@ -18,17 +20,21 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class ShardCanCommitCoordinationTask implements Callable<Boolean> {
+/**
+ * Task that coordinates the CanCommit phase of the provided {@link DOMStoreThreePhaseCommitCohort}'s
+ */
+@Beta
+public class ShardCanCommitCoordinationTask implements Callable<Boolean> {
 
     private static final Logger LOG = LoggerFactory.getLogger(ShardCanCommitCoordinationTask.class);
 
     private final DOMDataTreeIdentifier rootShardPrefix;
     private final Collection<DOMStoreThreePhaseCommitCohort> cohorts;
 
-    ShardCanCommitCoordinationTask(final DOMDataTreeIdentifier rootShardPrefix,
+    public ShardCanCommitCoordinationTask(final DOMDataTreeIdentifier rootShardPrefix,
                                        final Collection<DOMStoreThreePhaseCommitCohort> cohorts) {
-        this.rootShardPrefix = rootShardPrefix;
-        this.cohorts = cohorts;
+        this.rootShardPrefix = Preconditions.checkNotNull(rootShardPrefix);
+        this.cohorts = Preconditions.checkNotNull(cohorts);
     }
 
     @Override
@@ -39,7 +45,7 @@ class ShardCanCommitCoordinationTask implements Callable<Boolean> {
             canCommitBlocking();
 
             return true;
-        } catch (TransactionCommitFailedException e) {
+        } catch (final TransactionCommitFailedException e) {
             LOG.warn("Shard: {} Submit Error during phase CanCommit, starting Abort", rootShardPrefix, e);
             //FIXME abort here
             throw e;
@@ -51,7 +57,7 @@ class ShardCanCommitCoordinationTask implements Callable<Boolean> {
             try {
                 final Boolean result = (Boolean)canCommit.get();
                 if (result == null || !result) {
-                    throw new TransactionCommitFailedException("Can Commit failed, no detailed cause available.");
+                    throw new TransactionCommitFailedException("CanCommit failed, no detailed cause available.");
                 }
             } catch (InterruptedException | ExecutionException e) {
                 throw new TransactionCommitFailedException("CanCommit failed", e);