import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import org.opendaylight.mdsal.common.api.AsyncTransaction;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
final InstanceIdentifier<D> path) {
Preconditions.checkArgument(!path.isWildcarded(), "Invalid read of wildcarded path %s", path);
- return FluentFuture.from(Futures.transform(readTx.read(store, codec.toYangInstanceIdentifierBlocking(path)),
- codec.deserializeFunction(path), MoreExecutors.directExecutor()));
+ return readTx.read(store, codec.toYangInstanceIdentifierBlocking(path))
+ .transform(Optional::fromJavaUtil, MoreExecutors.directExecutor())
+ .transform(codec.deserializeFunction(path), MoreExecutors.directExecutor());
}
}
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.javav2.api.BindingTransactionChain;
throw new UnsupportedOperationException();
}
- private <T, F extends ListenableFuture<T>> F listenForFailure(final WriteTransaction tx, final F future) {
- Futures.addCallback(future, new FutureCallback<T>() {
+ private <T, F extends FluentFuture<T>> F listenForFailure(final WriteTransaction tx, final F future) {
+ future.addCallback(new FutureCallback<T>() {
@Override
public void onFailure(final Throwable throwable) {
failTransactionChain(tx, throwable);
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.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
import javax.annotation.Nonnull;
import org.opendaylight.mdsal.binding.javav2.dom.codec.impl.BindingToNormalizedNodeCodec;
import org.opendaylight.mdsal.binding.javav2.spec.base.InstanceIdentifier;
final InstanceIdentifier<D> path) {
Preconditions.checkArgument(!path.isWildcarded(), "Invalid read of wildcarded path %s", path);
- return MappingCheckedFuture
- .create(Futures.transform(readTx.read(store, codec.toYangInstanceIdentifierBlocking(path)),
- codec.deserializeFunction(path)), ReadFailedException.MAPPER);
+ return MappingCheckedFuture.create(readTx.read(store, codec.toYangInstanceIdentifierBlocking(path))
+ .transform(Optional::fromJavaUtil, MoreExecutors.directExecutor())
+ .transform(codec.deserializeFunction(path), MoreExecutors.directExecutor()), ReadFailedException.MAPPER);
}
}
*/
package org.opendaylight.mdsal.dom.api;
+import org.opendaylight.mdsal.common.api.ReadFailedException;
+
/**
* Base exception for various causes why and {@link DOMDataTreeListener}
* may be terminated by the {@link DOMDataTreeService} implementation.
*/
-public class DOMDataTreeListeningException extends Exception {
+public class DOMDataTreeListeningException extends ReadFailedException {
private static final long serialVersionUID = 1L;
public DOMDataTreeListeningException(final String message) {
*/
package org.opendaylight.mdsal.dom.api;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.AsyncReadTransaction;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.common.api.ReadFailedException;
* @param path
* Path which uniquely identifies subtree which client want to
* read
- * @return a CheckFuture containing the result of the read. The Future blocks until the
+ * @return a FluentFuture containing the result of the read. The Future blocks until the
* commit operation is complete. Once complete:
* <ul>
* <li>If the data at the supplied path exists, the Future returns an Optional object
* {@link ReadFailedException} or an exception derived from ReadFailedException.</li>
* </ul>
*/
- CheckedFuture<Optional<NormalizedNode<?,?>>, ReadFailedException> read(
- LogicalDatastoreType store, YangInstanceIdentifier path);
+ FluentFuture<Optional<NormalizedNode<?,?>>> read(LogicalDatastoreType store, YangInstanceIdentifier path);
/**
* Checks if data is available in the logical data store located at provided path.
* @param path
* Path which uniquely identifies subtree which client want to
* check existence of
- * @return a CheckFuture containing the result of the check.
+ * @return a FluentFuture containing the result of the check.
* <ul>
* <li>If the data at the supplied path exists, the Future returns a Boolean
* whose value is true, false otherwise</li>
* {@link ReadFailedException} or an exception derived from ReadFailedException.</li>
* </ul>
*/
- CheckedFuture<Boolean, ReadFailedException> exists(
- LogicalDatastoreType store, YangInstanceIdentifier path);
-
+ FluentFuture<Boolean> exists(LogicalDatastoreType store, YangInstanceIdentifier path);
}
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.Collection;
import java.util.Map;
}
@Override
- protected FluentFuture<? extends CommitInfo> commit(DOMDataTreeWriteTransaction transaction,
- Collection<DOMStoreThreePhaseCommitCohort> cohorts) {
+ protected FluentFuture<? extends CommitInfo> commit(final DOMDataTreeWriteTransaction transaction,
+ final Collection<DOMStoreThreePhaseCommitCohort> cohorts) {
checkNotFailed();
checkNotClosed();
final FluentFuture<? extends CommitInfo> ret = broker.commit(transaction, cohorts);
COUNTER_UPDATER.incrementAndGet(this);
- Futures.addCallback(ret, new FutureCallback<CommitInfo>() {
+ ret.addCallback(new FutureCallback<CommitInfo>() {
@Override
public void onSuccess(final CommitInfo result) {
transactionCompleted();
*/
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
import java.util.Map;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?,?>>, ReadFailedException> read(
- final LogicalDatastoreType store, final YangInstanceIdentifier path) {
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
+ final YangInstanceIdentifier path) {
return getSubtransaction(store).read(path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(
- final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return getSubtransaction(store).exists(path);
}
*/
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
import java.util.Map;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final LogicalDatastoreType store,
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
return getSubtransaction(store).read(path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return getSubtransaction(store).exists(path);
}
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.SettableFuture;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import javax.annotation.Nullable;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.api.DOMDataTreeListener;
import org.opendaylight.mdsal.dom.api.DOMDataTreeListeningException;
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final LogicalDatastoreType store,
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
checkRunning();
LOG.debug("{}: Invoking read at {}:{}", txIdentifier, store, path);
}
// After data tree change future is finished, we can close the listener registration
- Futures.addCallback(initialDataTreeChangeFuture, new FutureCallback<Optional<NormalizedNode<?, ?>>>() {
+ initialDataTreeChangeFuture.addCallback(new FutureCallback<Optional<NormalizedNode<?, ?>>>() {
@Override
public void onSuccess(@Nullable final Optional<NormalizedNode<?, ?>> result) {
reg.close();
}
}, MoreExecutors.directExecutor());
- return Futures.makeChecked(initialDataTreeChangeFuture, ReadFailedException.MAPPER);
+ return initialDataTreeChangeFuture;
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
checkRunning();
LOG.debug("{}: Invoking exists at {}:{}", txIdentifier, store, path);
- final Function<Optional<NormalizedNode<?, ?>>, Boolean> transform =
- optionalNode -> optionalNode.isPresent() ? Boolean.TRUE : Boolean.FALSE;
- final ListenableFuture<Boolean> existsResult = Futures.transform(read(store, path), transform,
- MoreExecutors.directExecutor());
- return Futures.makeChecked(existsResult, ReadFailedException.MAPPER);
+ return read(store, path).transform(Optional::isPresent, MoreExecutors.directExecutor());
}
private void checkRunning() {
for (final DataTreeCandidate change : changes) {
if (change.getRootNode().getModificationType().equals(ModificationType.UNMODIFIED)) {
- readResultFuture.set(Optional.absent());
+ readResultFuture.set(Optional.empty());
return;
}
}
*/
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeService;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(LogicalDatastoreType store,
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(LogicalDatastoreType store,
YangInstanceIdentifier path) {
return readAdapter.read(store, path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(LogicalDatastoreType store, YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(LogicalDatastoreType store, YangInstanceIdentifier path) {
return readAdapter.exists(store, path);
}
import com.google.common.base.Preconditions;
import com.google.common.collect.ClassToInstanceMap;
+import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.Collection;
import java.util.Collections;
private final CachedDataTreeService cachedDataTreeService;
private TransactionChainWriteTransaction writeTx;
private TransactionChainReadTransaction readTx;
- private ListenableFuture<? extends CommitInfo> writeTxCommitFuture;
+ private FluentFuture<? extends CommitInfo> writeTxCommitFuture;
private boolean finished = false;
public ShardedDOMTransactionChainAdapter(final Object txChainIdentifier,
checkReadTxClosed();
checkWriteTxClosed();
- Futures.addCallback(writeTxCommitFuture, new FutureCallback<CommitInfo>() {
+ writeTxCommitFuture.addCallback(new FutureCallback<CommitInfo>() {
@Override
public void onSuccess(@Nullable final CommitInfo result) {
txChainListener.onTransactionChainSuccessful(ShardedDOMTransactionChainAdapter.this);
readTx = null;
}
- public void closeWriteTransaction(final ListenableFuture<? extends CommitInfo> commitFuture) {
+ public void closeWriteTransaction(final FluentFuture<? extends CommitInfo> commitFuture) {
writeTxCommitFuture = commitFuture;
writeTx = null;
}
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.SettableFuture;
+import java.util.Optional;
import javax.annotation.Nullable;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
public class TransactionChainReadTransaction implements DOMDataTreeReadTransaction {
private final DOMDataTreeReadTransaction delegateReadTx;
- private final ListenableFuture<? extends CommitInfo> previousWriteTxFuture;
+ private final FluentFuture<? extends CommitInfo> previousWriteTxFuture;
private final Object identifier;
private final ShardedDOMTransactionChainAdapter txChain;
TransactionChainReadTransaction(final Object txIdentifier, final DOMDataTreeReadTransaction delegateReadTx,
- final ListenableFuture<? extends CommitInfo> previousWriteTxFuture,
+ final FluentFuture<? extends CommitInfo> previousWriteTxFuture,
final ShardedDOMTransactionChainAdapter txChain) {
this.delegateReadTx = delegateReadTx;
this.previousWriteTxFuture = previousWriteTxFuture;
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final LogicalDatastoreType store,
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
final SettableFuture<Optional<NormalizedNode<?, ?>>> readResult = SettableFuture.create();
- Futures.addCallback(previousWriteTxFuture, new FutureCallback<CommitInfo>() {
+ previousWriteTxFuture.addCallback(new FutureCallback<CommitInfo>() {
@Override
public void onSuccess(@Nullable final CommitInfo result) {
- Futures.addCallback(delegateReadTx.read(store, path),
- new FutureCallback<Optional<NormalizedNode<?, ?>>>() {
+ delegateReadTx.read(store, path).addCallback(new FutureCallback<Optional<NormalizedNode<?, ?>>>() {
+ @Override
+ public void onSuccess(@Nullable final Optional<NormalizedNode<?, ?>> result) {
+ readResult.set(result);
+ }
- @Override
- public void onSuccess(@Nullable final Optional<NormalizedNode<?, ?>> result) {
- readResult.set(result);
- }
-
- @Override
- public void onFailure(final Throwable throwable) {
- txChain.transactionFailed(TransactionChainReadTransaction.this, throwable);
- readResult.setException(throwable);
- }
- }, MoreExecutors.directExecutor());
+ @Override
+ public void onFailure(final Throwable throwable) {
+ txChain.transactionFailed(TransactionChainReadTransaction.this, throwable);
+ readResult.setException(throwable);
+ }
+ }, MoreExecutors.directExecutor());
}
@Override
}
}, MoreExecutors.directExecutor());
- return Futures.makeChecked(readResult, ReadFailedException.MAPPER);
+ return readResult;
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
- final Function<Optional<NormalizedNode<?, ?>>, Boolean> transform =
- optionalNode -> optionalNode.isPresent() ? Boolean.TRUE : Boolean.FALSE;
- final ListenableFuture<Boolean> existsResult = Futures.transform(read(store, path), transform,
- MoreExecutors.directExecutor());
- return Futures.makeChecked(existsResult, ReadFailedException.MAPPER);
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
+ return read(store, path).transform(Optional::isPresent, MoreExecutors.directExecutor());
}
@Override
*/
package org.opendaylight.mdsal.dom.broker;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
TransactionChainReadWriteTransaction(final Object identifier,
final DOMDataTreeReadWriteTransaction delegateWriteTx, final DOMDataTreeReadTransaction delegateReadTx,
- final ListenableFuture<? extends CommitInfo> previousWriteTxFuture,
+ final FluentFuture<? extends CommitInfo> previousWriteTxFuture,
final ShardedDOMTransactionChainAdapter txChain) {
super(identifier, delegateWriteTx, txChain);
readTx = new TransactionChainReadTransaction(identifier, delegateReadTx, previousWriteTxFuture, txChain);
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(LogicalDatastoreType store,
- YangInstanceIdentifier path) {
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
+ final YangInstanceIdentifier path) {
return readTx.read(store, path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(LogicalDatastoreType store, YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return readTx.exists(store, path);
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.mdsal.dom.broker;
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import javax.annotation.Nullable;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@Override
public boolean cancel() {
- txChain.closeWriteTransaction(Futures.immediateFuture(null));
+ txChain.closeWriteTransaction(FluentFutures.immediateNullFluentFuture());
return delegateTx.cancel();
}
@Override
public @NonNull FluentFuture<? extends @NonNull CommitInfo> commit() {
final FluentFuture<? extends CommitInfo> writeResultFuture = delegateTx.commit();
- Futures.addCallback(writeResultFuture, new FutureCallback<CommitInfo>() {
+ writeResultFuture.addCallback(new FutureCallback<CommitInfo>() {
@Override
public void onSuccess(@Nullable final CommitInfo result) {
// NOOP
*/
package org.opendaylight.mdsal.dom.broker.pingpong;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.base.Verify;
-import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Map.Entry;
+import java.util.Optional;
import java.util.concurrent.CancellationException;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import javax.annotation.Nonnull;
import org.opendaylight.mdsal.common.api.AsyncTransaction;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.common.api.TransactionChain;
import org.opendaylight.mdsal.common.api.TransactionChainListener;
import org.opendaylight.mdsal.dom.api.DOMDataBroker;
return new DOMDataTreeReadTransaction() {
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(
final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return tx.getTransaction().read(store, path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return tx.getTransaction().exists(store, path);
}
import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION;
import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ForwardingExecutorService;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.Collections;
+import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
}
@Test(expected = ReadFailedException.class)
- public void basicTests() throws Exception {
+ @SuppressWarnings({"checkstyle:IllegalThrows", "checkstyle:AvoidHidingCauseException"})
+ public void basicTests() throws Throwable {
final DataContainerChild<?, ?> outerList = ImmutableNodes.mapNodeBuilder(TestModel.OUTER_LIST_QNAME)
.withChild(ImmutableNodes.mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1))
.build();
.get().toString().contains(testContainer.toString()));
readRx.close();
+
//Expected exception after close call
- readRx.read(OPERATIONAL, TestModel.TEST_PATH).checkedGet();
+
+ try {
+ readRx.read(OPERATIONAL, TestModel.TEST_PATH).get();
+ } catch (ExecutionException e) {
+ throw e.getCause();
+ }
}
@SuppressWarnings({"checkstyle:IllegalThrows", "checkstyle:IllegalCatch"})
import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION;
import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import com.google.common.base.Optional;
import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.collect.Maps;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
+import java.util.Optional;
import javax.annotation.Nonnull;
import org.junit.After;
import org.junit.Before;
return null;
}
}
-}
\ No newline at end of file
+}
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteCursor;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
import org.opendaylight.mdsal.dom.broker.util.TestModel;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
public class ShardedDOMTransactionChainAdapterTest {
doReturn(Futures.immediateCheckedFuture(null)).when(transaction).submit();
doReturn(true).when(transaction).cancel();
assertTrue(writeTransaction.cancel());
- transactionChainAdapter.closeWriteTransaction(Futures.immediateFuture(null));
+ transactionChainAdapter.closeWriteTransaction(FluentFutures.immediateNullFluentFuture());
transactionChainAdapter =
new ShardedDOMTransactionChainAdapter(identifier, dataTreeService, chainListener);
writeTransaction.put(OPERATIONAL, TestModel.TEST_PATH, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
assertNotNull(writeTransaction.commit());
assertFalse(writeTransaction.cancel());
- transactionChainAdapter.closeWriteTransaction(Futures.immediateFuture(null));
+ transactionChainAdapter.closeWriteTransaction(FluentFutures.immediateNullFluentFuture());
assertNotNull(transactionChainAdapter.newWriteOnlyTransaction().commit());
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 com.google.common.util.concurrent.ListenableFuture;
import org.junit.Test;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
public class TransactionChainReadTransactionTest {
final String identifier = "testIdent";
final DOMDataTreeReadTransaction readTransaction = mock(DOMDataTreeReadTransaction.class);
final ShardedDOMTransactionChainAdapter chainAdapter = mock(ShardedDOMTransactionChainAdapter.class);
- ListenableFuture<? extends CommitInfo> previousWriteTxFuture = Futures.immediateFuture(null);
+ FluentFuture<? extends CommitInfo> previousWriteTxFuture = FluentFutures.immediateNullFluentFuture();
TransactionChainReadTransaction transactionChainReadTransaction =
new TransactionChainReadTransaction(identifier, readTransaction, previousWriteTxFuture, chainAdapter);
doNothing().when(chainAdapter).transactionFailed(any(), any());
assertNotNull(transactionChainReadTransaction.read(
LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.EMPTY));
- previousWriteTxFuture = Futures.immediateFailedFuture(new NullPointerException());
+ previousWriteTxFuture = FluentFutures.immediateFailedFluentFuture(new NullPointerException());
transactionChainReadTransaction =
new TransactionChainReadTransaction(identifier, readTransaction, previousWriteTxFuture, chainAdapter);
assertNotNull(transactionChainReadTransaction.read(
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import com.google.common.base.Optional;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Optional;
import java.util.concurrent.ExecutionException;
import org.junit.Assert;
import org.junit.Before;
}
@Test(expected = ReadFailedException.class)
- public void testExistsThrowsReadFailedException() throws Exception {
+ @SuppressWarnings({"checkstyle:IllegalThrows", "checkstyle:AvoidHidingCauseException"})
+ public void testExistsThrowsReadFailedException() throws Throwable {
DOMStoreReadTransaction readTx = domStore.newReadOnlyTransaction();
assertNotNull(readTx);
readTx.close();
- readTx.exists(TestModel.TEST_PATH).checkedGet();
+ try {
+ readTx.exists(TestModel.TEST_PATH).get();
+ } catch (ExecutionException e) {
+ throw e.getCause();
+ }
}
*/
package org.opendaylight.mdsal.dom.spi;
-import com.google.common.base.Optional;
import com.google.common.collect.ForwardingObject;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
import javax.annotation.Nonnull;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
protected abstract DOMDataTreeReadTransaction delegate();
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>,
- ReadFailedException> read(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
+ final YangInstanceIdentifier path) {
return delegate().read(store, path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return delegate().exists(store, path);
}
*/
package org.opendaylight.mdsal.dom.spi;
-import com.google.common.base.Optional;
import com.google.common.collect.ForwardingObject;
-import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
import javax.annotation.Nonnull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
protected abstract DOMDataTreeReadWriteTransaction delegate();
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final LogicalDatastoreType store,
+ public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
return delegate().read(store, path);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
- final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
return delegate().exists(store, path);
}
*/
package org.opendaylight.mdsal.dom.spi.store;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
* @param path
* Path which uniquely identifies subtree which client want to
* read
- * @return a CheckFuture containing the result of the read. The Future blocks until the
+ * @return a FluentFuture containing the result of the read. The Future blocks until the
* commit operation is complete. Once complete:
* <ul>
* <li>If the data at the supplied path exists, the Future returns an Optional object
* {@link ReadFailedException} or an exception derived from ReadFailedException.</li>
* </ul>
*/
- CheckedFuture<Optional<NormalizedNode<?,?>>, ReadFailedException> read(YangInstanceIdentifier path);
+ FluentFuture<Optional<NormalizedNode<?,?>>> read(YangInstanceIdentifier path);
/**
* Checks if data is available in the logical data store located at provided path.
* @param path
* Path which uniquely identifies subtree which client want to
* check existence of
- * @return a CheckFuture containing the result of the check.
+ * @return a FluentFuture containing the result of the check.
* <ul>
* <li>If the data at the supplied path exists, the Future returns a Boolean
* whose value is true, false otherwise</li>
* {@link ReadFailedException} or an exception derived from ReadFailedException.</li>
* </ul>
*/
- CheckedFuture<Boolean, ReadFailedException> exists(YangInstanceIdentifier path);
+ FluentFuture<Boolean> exists(YangInstanceIdentifier path);
}
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.ReadFailedException;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
@SuppressWarnings("checkstyle:IllegalCatch")
@Override
- public CheckedFuture<Optional<NormalizedNode<?,?>>, ReadFailedException> read(final YangInstanceIdentifier path) {
+ public FluentFuture<Optional<NormalizedNode<?,?>>> read(final YangInstanceIdentifier path) {
LOG.debug("Tx: {} Read: {}", getIdentifier(), path);
requireNonNull(path, "Path must not be null.");
final DataTreeSnapshot snapshot = stableSnapshot;
if (snapshot == null) {
- return Futures.immediateFailedCheckedFuture(new ReadFailedException("Transaction is closed"));
+ return FluentFutures.immediateFailedFluentFuture(new ReadFailedException("Transaction is closed"));
}
try {
- return Futures.immediateCheckedFuture(Optional.fromJavaUtil(snapshot.readNode(path)));
+ return FluentFutures.immediateFluentFuture(snapshot.readNode(path));
} catch (Exception e) {
LOG.error("Tx: {} Failed Read of {}", getIdentifier(), path, e);
- return Futures.immediateFailedCheckedFuture(new ReadFailedException("Read failed", e));
+ return FluentFutures.immediateFailedFluentFuture(new ReadFailedException("Read failed", e));
}
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final YangInstanceIdentifier path) {
+ public FluentFuture<Boolean> exists(final YangInstanceIdentifier path) {
LOG.debug("Tx: {} Exists: {}", getIdentifier(), path);
requireNonNull(path, "Path must not be null.");
- try {
- return Futures.immediateCheckedFuture(read(path).checkedGet().isPresent());
- } catch (ReadFailedException e) {
- return Futures.immediateFailedCheckedFuture(e);
- }
+ return read(path).transform(Optional::isPresent, MoreExecutors.directExecutor());
}
@Override
import static com.google.common.base.Preconditions.checkNotNull;
import com.google.common.annotations.Beta;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Optional;
import org.opendaylight.mdsal.common.api.ReadFailedException;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
@SuppressWarnings("checkstyle:IllegalCatch")
@Override
- public CheckedFuture<Optional<NormalizedNode<?,?>>, ReadFailedException> read(final YangInstanceIdentifier path) {
+ public FluentFuture<Optional<NormalizedNode<?,?>>> read(final YangInstanceIdentifier path) {
LOG.debug("Tx: {} Read: {}", getIdentifier(), path);
checkNotNull(path, "Path must not be null.");
final Optional<NormalizedNode<?, ?>> result;
try {
- result = Optional.fromJavaUtil(readSnapshotNode(path));
+ result = readSnapshotNode(path);
} catch (Exception e) {
LOG.error("Tx: {} Failed Read of {}", getIdentifier(), path, e);
- return Futures.immediateFailedCheckedFuture(new ReadFailedException("Read failed", e));
+ return FluentFutures.immediateFailedFluentFuture(new ReadFailedException("Read failed", e));
}
if (result == null) {
- return Futures.immediateFailedCheckedFuture(new ReadFailedException("Transaction is closed"));
+ return FluentFutures.immediateFailedFluentFuture(new ReadFailedException("Transaction is closed"));
}
- return Futures.immediateCheckedFuture(result);
+ return FluentFutures.immediateFluentFuture(result);
}
@SuppressWarnings("checkstyle:IllegalCatch")
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final YangInstanceIdentifier path) {
- try {
- return Futures.immediateCheckedFuture(read(path).checkedGet().isPresent());
- } catch (ReadFailedException e) {
- return Futures.immediateFailedCheckedFuture(e);
- }
+ public FluentFuture<Boolean> exists(final YangInstanceIdentifier path) {
+ return read(path).transform(Optional::isPresent, MoreExecutors.directExecutor());
}
}
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
-import com.google.common.base.Optional;
import java.lang.reflect.Field;
+import java.util.Optional;
import org.junit.Test;
import org.opendaylight.mdsal.common.api.ReadFailedException;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
-import com.google.common.base.Optional;
+import java.util.Optional;
import java.util.concurrent.ExecutionException;
import org.junit.Before;
import org.junit.Test;