Bump MRI upstreams
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / sal / SalBundleServiceImpl.java
index 232dce1618711e3247bc9f12a537e9f2bda78b2a..30b60e127c2d359552e65abd451203d9347ba096 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.openflowplugin.impl.services.sal;
 import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.JdkFutureAdapters;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
@@ -29,15 +28,19 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.on
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleControlSalBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.bundle.add.message.sal.SalAddMessageDataBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.bundle.control.sal.SalControlDataBuilder;
+import org.opendaylight.yangtools.yang.common.ErrorTag;
+import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Simple bundle extension service.
  */
 public class SalBundleServiceImpl implements SalBundleService {
-
+    private static final Logger LOG = LoggerFactory.getLogger(SalBundleServiceImpl.class);
     private final SalExperimenterMessageService experimenterMessageService;
 
     public SalBundleServiceImpl(final SalExperimenterMessageService experimenterMessageService) {
@@ -46,7 +49,8 @@ public class SalBundleServiceImpl implements SalBundleService {
     }
 
     @Override
-    public ListenableFuture<RpcResult<ControlBundleOutput>> controlBundle(ControlBundleInput input) {
+    public ListenableFuture<RpcResult<ControlBundleOutput>> controlBundle(final ControlBundleInput input) {
+        LOG.debug("Control message for device {} and bundle type {}", input.getNode(), input.getType());
         final SendExperimenterInputBuilder experimenterInputBuilder = new SendExperimenterInputBuilder();
         experimenterInputBuilder.setNode(input.getNode());
         experimenterInputBuilder.setExperimenterMessageOfChoice(
@@ -62,7 +66,7 @@ public class SalBundleServiceImpl implements SalBundleService {
     }
 
     @Override
-    public ListenableFuture<RpcResult<AddBundleMessagesOutput>> addBundleMessages(AddBundleMessagesInput input) {
+    public ListenableFuture<RpcResult<AddBundleMessagesOutput>> addBundleMessages(final AddBundleMessagesInput input) {
         final List<ListenableFuture<RpcResult<SendExperimenterOutput>>> partialResults = new ArrayList<>();
         final SendExperimenterInputBuilder experimenterInputBuilder = new SendExperimenterInputBuilder();
         final BundleAddMessageSalBuilder bundleAddMessageBuilder = new BundleAddMessageSalBuilder();
@@ -76,9 +80,7 @@ public class SalBundleServiceImpl implements SalBundleService {
             dataBuilder.setBundleInnerMessage(message.getBundleInnerMessage());
             experimenterInputBuilder.setExperimenterMessageOfChoice(
                     bundleAddMessageBuilder.setSalAddMessageData(dataBuilder.build()).build());
-            ListenableFuture<RpcResult<SendExperimenterOutput>> res = JdkFutureAdapters
-                    .listenInPoolThread(experimenterMessageService.sendExperimenter(experimenterInputBuilder.build()));
-            partialResults.add(res);
+            partialResults.add(experimenterMessageService.sendExperimenter(experimenterInputBuilder.build()));
         }
         return processResults(partialResults);
     }
@@ -89,13 +91,14 @@ public class SalBundleServiceImpl implements SalBundleService {
         Futures.addCallback(Futures.successfulAsList(partialResults),new FutureCallback<
                 List<RpcResult<SendExperimenterOutput>>>() {
             @Override
-            public void onSuccess(List<RpcResult<SendExperimenterOutput>> results) {
+            public void onSuccess(final List<RpcResult<SendExperimenterOutput>> results) {
                 final ArrayList<RpcError> errors = new ArrayList<>();
                 final RpcResultBuilder<AddBundleMessagesOutput> rpcResultBuilder;
                 for (RpcResult<SendExperimenterOutput> res : results) {
                     if (res == null) {
-                        errors.add(RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION, "BundleExtensionService",
-                                                             "RpcResult is null."));
+                        // FIXME: this should never happen
+                        errors.add(RpcResultBuilder.newError(ErrorType.APPLICATION,
+                            new ErrorTag("BundleExtensionService"), "RpcResult is null."));
                     } else if (!res.isSuccessful()) {
                         errors.addAll(res.getErrors());
                     }
@@ -109,7 +112,7 @@ public class SalBundleServiceImpl implements SalBundleService {
             }
 
             @Override
-            public void onFailure(Throwable throwable) {
+            public void onFailure(final Throwable throwable) {
                 RpcResultBuilder<AddBundleMessagesOutput> rpcResultBuilder = RpcResultBuilder.failed();
                 result.set(rpcResultBuilder.build());
             }