From: Robert Varga Date: Sat, 4 Aug 2018 00:07:58 +0000 (+0200) Subject: Get rid of CheckedFutures X-Git-Tag: release/fluorine~15 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=86584368a5064ed067e79861052ff0c950c7470e;p=mdsal.git Get rid of CheckedFutures We do not really need them, so let's replace them where we can. Change-Id: I06dd05d60018a814fb0610096aa8fe5709669980 JIRA: MDSAL-229 Signed-off-by: Robert Varga --- diff --git a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/DirectGetterRouteContextExtractor.java b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/DirectGetterRouteContextExtractor.java index 9ea627cbde..61e2526166 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/DirectGetterRouteContextExtractor.java +++ b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/DirectGetterRouteContextExtractor.java @@ -39,7 +39,8 @@ final class DirectGetterRouteContextExtractor extends ContextReferenceExtractor try { return (InstanceIdentifier) handle.invokeExact(obj); } catch (final Throwable e) { - throw Throwables.propagate(e); + Throwables.throwIfUnchecked(e); + throw new RuntimeException(e); } } } \ No newline at end of file diff --git a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/GetValueRouteContextExtractor.java b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/GetValueRouteContextExtractor.java index 114a51dd4e..1a5ad18cc0 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/GetValueRouteContextExtractor.java +++ b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/extractor/GetValueRouteContextExtractor.java @@ -47,7 +47,8 @@ final class GetValueRouteContextExtractor extends ContextReferenceExtractor { } return null; } catch (final Throwable e) { - throw Throwables.propagate(e); + Throwables.throwIfUnchecked(e); + throw new RuntimeException(e); } } } diff --git a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/data/tree/BindingDOMDataTreeListenerAdapter.java b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/data/tree/BindingDOMDataTreeListenerAdapter.java index 9353920827..c75c89e8c7 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/data/tree/BindingDOMDataTreeListenerAdapter.java +++ b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/data/tree/BindingDOMDataTreeListenerAdapter.java @@ -85,7 +85,7 @@ public class BindingDOMDataTreeListenerAdapter implements DOMDataTreeListener { delegate.onDataTreeFailed(bindingCauses); } - private DataTreeListeningException mapException(final DOMDataTreeListeningException cause) { + private static DataTreeListeningException mapException(final DOMDataTreeListeningException cause) { // FIXME: Extend logic return new DataTreeListeningException(cause.getMessage(), cause); } diff --git a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/notification/NotificationListenerInvoker.java b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/notification/NotificationListenerInvoker.java index 511660f9ec..8156d8d891 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/notification/NotificationListenerInvoker.java +++ b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/notification/NotificationListenerInvoker.java @@ -120,7 +120,8 @@ public final class NotificationListenerInvoker { try { invoker.invokeExact(impl, input); } catch (final Throwable e) { - throw Throwables.propagate(e); + Throwables.throwIfUnchecked(e); + throw new RuntimeException(e); } } } diff --git a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/operation/invoker/OperationMethodInvoker.java b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/operation/invoker/OperationMethodInvoker.java index c1549ad3ee..2c1bcad997 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/operation/invoker/OperationMethodInvoker.java +++ b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/operation/invoker/OperationMethodInvoker.java @@ -46,7 +46,8 @@ abstract class OperationMethodInvoker { try { return (Future>) handle.invokeExact(args); } catch (final Throwable e) { - throw Throwables.propagate(e); + Throwables.throwIfUnchecked(e); + throw new RuntimeException(e); } } } diff --git a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/spi/AbstractForwardedTransaction.java b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/spi/AbstractForwardedTransaction.java index 50ae0156d0..f35df4fbf2 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/spi/AbstractForwardedTransaction.java +++ b/binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/spi/AbstractForwardedTransaction.java @@ -10,7 +10,7 @@ package org.opendaylight.mdsal.binding.javav2.dom.adapter.spi; import com.google.common.annotations.Beta; import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.MoreExecutors; import javax.annotation.Nonnull; import org.opendaylight.mdsal.binding.javav2.dom.codec.impl.BindingToNormalizedNodeCodec; @@ -18,8 +18,6 @@ import org.opendaylight.mdsal.binding.javav2.spec.base.InstanceIdentifier; import org.opendaylight.mdsal.binding.javav2.spec.base.TreeNode; import org.opendaylight.mdsal.common.api.AsyncTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.common.api.MappingCheckedFuture; -import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.Identifiable; @@ -67,13 +65,13 @@ public abstract class AbstractForwardedTransaction< return codec; } - protected final CheckedFuture, ReadFailedException> doRead( + protected final FluentFuture> doRead( final DOMDataTreeReadTransaction readTx, final LogicalDatastoreType store, final InstanceIdentifier path) { Preconditions.checkArgument(!path.isWildcarded(), "Invalid read of wildcarded path %s", path); - return MappingCheckedFuture.create(readTx.read(store, codec.toYangInstanceIdentifierBlocking(path)) + return readTx.read(store, codec.toYangInstanceIdentifierBlocking(path)) .transform(Optional::fromJavaUtil, MoreExecutors.directExecutor()) - .transform(codec.deserializeFunction(path), MoreExecutors.directExecutor()), ReadFailedException.MAPPER); + .transform(codec.deserializeFunction(path), MoreExecutors.directExecutor()); } } diff --git a/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BindingTestContext.java b/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BindingTestContext.java index 6a0ea2b6ae..dcf9d8e241 100644 --- a/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BindingTestContext.java +++ b/binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/test/BindingTestContext.java @@ -143,7 +143,7 @@ public class BindingTestContext implements AutoCloseable { mockSchemaService.changeSchema(getContext(moduleInfos)); } - private SchemaContext getContext(final ImmutableSet moduleInfos) { + private static SchemaContext getContext(final ImmutableSet moduleInfos) { final ModuleInfoBackedContext ctx = ModuleInfoBackedContext.create(); ctx.addModuleInfos(moduleInfos); return ctx.tryToCreateSchemaContext().get(); diff --git a/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java b/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java index cc1f991a9e..6ed1f56444 100755 --- a/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java +++ b/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/BindingRuntimeContext.java @@ -24,7 +24,6 @@ import java.util.AbstractMap.SimpleEntry; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -429,7 +428,7 @@ public class BindingRuntimeContext implements Immutable { } } - private boolean isLocalAugment(final AugmentationTarget container, final AugmentationSchemaNode augment) { + private static boolean isLocalAugment(final AugmentationTarget container, final AugmentationSchemaNode augment) { Preconditions.checkState(container instanceof SchemaNode); final QName root = ((SchemaNode) container).getPath().getPathFromRoot().iterator().next(); // findFirst makes no sense but just pick up one child to judge whether the target node is diff --git a/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/ModuleInfoBackedContext.java b/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/ModuleInfoBackedContext.java index a321f9147d..6712295324 100644 --- a/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/ModuleInfoBackedContext.java +++ b/binding2/mdsal-binding2-runtime/src/main/java/org/opendaylight/mdsal/binding/javav2/runtime/context/ModuleInfoBackedContext.java @@ -11,8 +11,8 @@ import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Optional; import com.google.common.io.ByteSource; -import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import java.io.IOException; import java.io.InputStream; import java.lang.ref.WeakReference; @@ -184,22 +184,24 @@ public class ModuleInfoBackedContext extends GeneratedClassLoadingStrategy return registration; } - @Override public CheckedFuture getSource( + @Override + public ListenableFuture getSource( final SourceIdentifier sourceIdentifier) { final YangModuleInfo yangModuleInfo = sourceIdentifierToModuleInfo.get(sourceIdentifier); if (yangModuleInfo == null) { - LOG.debug("Unknown schema source requested: {}, available sources: {}", sourceIdentifier, sourceIdentifierToModuleInfo.keySet()); - return Futures - .immediateFailedCheckedFuture(new SchemaSourceException("Unknown schema source: " + sourceIdentifier)); + LOG.debug("Unknown schema source requested: {}, available sources: {}", sourceIdentifier, + sourceIdentifierToModuleInfo.keySet()); + return Futures.immediateFailedFuture(new SchemaSourceException("Unknown schema source: " + + sourceIdentifier)); } - return Futures - .immediateCheckedFuture(YangTextSchemaSource.delegateForByteSource(sourceIdentifier, new ByteSource() { - @Override public InputStream openStream() throws IOException { - return yangModuleInfo.getModuleSourceStream(); - } - })); + return Futures.immediateFuture(YangTextSchemaSource.delegateForByteSource(sourceIdentifier, new ByteSource() { + @Override + public InputStream openStream() throws IOException { + return yangModuleInfo.getModuleSourceStream(); + } + })); } private static class YangModuleInfoRegistration extends AbstractObjectRegistration { diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/CommitCoordinationTaskTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/CommitCoordinationTaskTest.java index a1cca509bf..3cf8b485b2 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/CommitCoordinationTaskTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/CommitCoordinationTaskTest.java @@ -7,7 +7,6 @@ */ package org.opendaylight.mdsal.dom.broker; -import static com.google.common.util.concurrent.Futures.immediateFailedCheckedFuture; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -18,6 +17,7 @@ import org.junit.Test; import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; +import org.opendaylight.yangtools.util.concurrent.FluentFutures; public class CommitCoordinationTaskTest { @@ -33,36 +33,36 @@ public class CommitCoordinationTaskTest { @Test(expected = TransactionCommitFailedException.class) public void canCommitBlockingWithFail() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(cohort).abort(); + doReturn(FluentFutures.immediateNullFluentFuture()).when(cohort).abort(); - doReturn(Futures.immediateCheckedFuture(Boolean.FALSE)).when(cohort).canCommit(); + doReturn(FluentFutures.immediateFalseFluentFuture()).when(cohort).canCommit(); task.call(); } @Test(expected = TransactionCommitFailedException.class) public void canCommitBlockingWithFailException() throws Exception { - doReturn(Futures.immediateCheckedFuture(null)).when(cohort).abort(); + doReturn(FluentFutures.immediateNullFluentFuture()).when(cohort).abort(); - doReturn(immediateFailedCheckedFuture(new InterruptedException())).when(cohort).canCommit(); + doReturn(Futures.immediateFailedFuture(new InterruptedException())).when(cohort).canCommit(); task.call(); } @Test(expected = TransactionCommitFailedException.class) public void preCommitBlockingWithFail() throws Exception { - doReturn(Futures.immediateCheckedFuture(Boolean.TRUE)).when(cohort).canCommit(); - doReturn(Futures.immediateCheckedFuture(null)).when(cohort).abort(); + doReturn(FluentFutures.immediateTrueFluentFuture()).when(cohort).canCommit(); + doReturn(FluentFutures.immediateNullFluentFuture()).when(cohort).abort(); - doReturn(immediateFailedCheckedFuture(new InterruptedException())).when(cohort).preCommit(); + doReturn(Futures.immediateFailedFuture(new InterruptedException())).when(cohort).preCommit(); task.call(); } @Test(expected = TransactionCommitFailedException.class) public void commitBlockingWithFail() throws Exception { - doReturn(Futures.immediateCheckedFuture(Boolean.TRUE)).when(cohort).canCommit(); - doReturn(Futures.immediateCheckedFuture(null)).when(cohort).preCommit(); - doReturn(Futures.immediateCheckedFuture(null)).when(cohort).abort(); + doReturn(FluentFutures.immediateTrueFluentFuture()).when(cohort).canCommit(); + doReturn(FluentFutures.immediateNullFluentFuture()).when(cohort).preCommit(); + doReturn(FluentFutures.immediateNullFluentFuture()).when(cohort).abort(); - doReturn(immediateFailedCheckedFuture(new InterruptedException())).when(cohort).commit(); + doReturn(Futures.immediateFailedFuture(new InterruptedException())).when(cohort).commit(); task.call(); } } \ No newline at end of file diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMTransactionChainAdapterTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMTransactionChainAdapterTest.java index 3b3e7da7af..536055eff3 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMTransactionChainAdapterTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMTransactionChainAdapterTest.java @@ -17,8 +17,8 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL; -import com.google.common.util.concurrent.Futures; import org.junit.Test; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.TransactionChainListener; import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeProducer; @@ -66,13 +66,12 @@ public class ShardedDOMTransactionChainAdapterTest { verify(cursor).delete(any()); doNothing().when(cursor).close(); - doReturn(Futures.immediateCheckedFuture(null)).when(transaction).commit(); + doReturn(CommitInfo.emptyFluentFuture()).when(transaction).commit(); doReturn(true).when(transaction).cancel(); assertTrue(writeTransaction.cancel()); transactionChainAdapter.closeWriteTransaction(FluentFutures.immediateNullFluentFuture()); - transactionChainAdapter = - new ShardedDOMTransactionChainAdapter(identifier, dataTreeService, chainListener); + transactionChainAdapter = new ShardedDOMTransactionChainAdapter(identifier, dataTreeService, chainListener); writeTransaction = transactionChainAdapter.newWriteOnlyTransaction(); writeTransaction.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME)); assertNotNull(writeTransaction.commit()); diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/TransactionChainReadTransactionTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/TransactionChainReadTransactionTest.java index f8d063a4aa..72ef31aabe 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/TransactionChainReadTransactionTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/TransactionChainReadTransactionTest.java @@ -17,7 +17,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import com.google.common.util.concurrent.FluentFuture; -import com.google.common.util.concurrent.Futures; import org.junit.Test; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -45,13 +44,13 @@ public class TransactionChainReadTransactionTest { verify(readTransaction).close(); verify(chainAdapter).closeReadTransaction(); - doReturn(Futures.immediateCheckedFuture(null)).when(readTransaction).read(any(), any()); + doReturn(FluentFutures.immediateNullFluentFuture()).when(readTransaction).read(any(), any()); assertNotNull(transactionChainReadTransaction.exists( LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.EMPTY)); transactionChainReadTransaction.read(LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.EMPTY); verify(readTransaction, atLeastOnce()).read(LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.EMPTY); - doReturn(Futures.immediateFailedCheckedFuture( + doReturn(FluentFutures.immediateFailedFluentFuture( new NullPointerException())).when(readTransaction).read(any(), any()); doNothing().when(chainAdapter).transactionFailed(any(), any()); assertNotNull(transactionChainReadTransaction.read(