Noone is transforming this future, use a ListenableFuture instead.
Change-Id: Icb604d275b04c6a27b0cdcd4049926364cc5a198
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION;
import static org.opendaylight.restconf.nb.rfc8040.rests.utils.PostDataTransactionUtil.checkItemDoesNotExists;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ExecutionException;
// ... finally collect existence checks and abort the transaction if any of them failed.
checkExistence(path, check);
} else {
- final FluentFuture<Boolean> isExists = verifyNotNull(rwTx).exists(CONFIGURATION, path);
- checkItemDoesNotExists(isExists, path);
+ checkItemDoesNotExists(verifyNotNull(rwTx).exists(CONFIGURATION, path), path);
TransactionUtil.ensureParentsByMerge(path, schemaContext, this);
verifyNotNull(rwTx).put(CONFIGURATION, path, data);
}
}
@Override
- public FluentFuture<? extends @NonNull CommitInfo> commit() {
- final FluentFuture<? extends @NonNull CommitInfo> ret = verifyNotNull(rwTx).commit();
+ public ListenableFuture<? extends @NonNull CommitInfo> commit() {
+ final var ret = verifyNotNull(rwTx).commit();
rwTx = null;
return ret;
}
import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION;
import com.google.common.collect.ImmutableList;
-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;
}
@Override
- public FluentFuture<? extends @NonNull CommitInfo> commit() {
+ public ListenableFuture<? extends @NonNull CommitInfo> commit() {
final SettableFuture<CommitInfo> commitResult = SettableFuture.create();
// First complete all resultsFutures and merge them ...
}
}, MoreExecutors.directExecutor());
- return FluentFuture.from(commitResult);
+ return commitResult;
}
private List<ListenableFuture<?>> discardAndUnlock() {
if (isLocked) {
return List.of(netconfService.discardChanges(), netconfService.unlock());
} else {
- return Collections.emptyList();
+ return List.of();
}
}
// Transform list of futures related to RPC operation into a single Future
private static ListenableFuture<DOMRpcResult> mergeFutures(
- final List<ListenableFuture<? extends DOMRpcResult>> futures) {
+ final List<ListenableFuture<? extends DOMRpcResult>> futures) {
return Futures.whenAllComplete(futures).call(() -> {
if (futures.size() == 1) {
// Fast path
package org.opendaylight.restconf.nb.rfc8040.rests.transactions;
import com.google.common.annotations.Beta;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
*
* @return a FluentFuture containing the result of the commit information
*/
- public abstract FluentFuture<? extends @NonNull CommitInfo> commit();
+ public abstract ListenableFuture<? extends @NonNull CommitInfo> commit();
/**
* Delete data from the datastore.
*/
package org.opendaylight.restconf.nb.rfc8040.rests.utils;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.opendaylight.mdsal.common.api.CommitInfo;
transaction.cancel();
throw e;
}
- final FluentFuture<? extends CommitInfo> future = transaction.commit();
+ final ListenableFuture<? extends CommitInfo> future = transaction.commit();
final ResponseFactory response = new ResponseFactory(Status.NO_CONTENT);
//This method will close transactionChain if any
FutureCallbackTx.addCallback(future, "DELETE", response, path);
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.Response.Status;
// if no errors then submit transaction, otherwise cancel
if (noError) {
final ResponseFactory response = new ResponseFactory(Status.OK);
- final FluentFuture<? extends CommitInfo> future = transaction.commit();
+ final ListenableFuture<? extends CommitInfo> future = transaction.commit();
try {
FutureCallbackTx.addCallback(future, PATCH_TX_TYPE, response, null);
*/
package org.opendaylight.restconf.nb.rfc8040.rests.utils;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.opendaylight.mdsal.common.api.CommitInfo;
throw new IllegalArgumentException(e);
}
- final FluentFuture<? extends CommitInfo> future = transaction.commit();
+ final ListenableFuture<? extends CommitInfo> future = transaction.commit();
final ResponseFactory response = new ResponseFactory(Status.OK);
// closes transactionChain if any, may throw
final RestconfStrategy strategy,
final EffectiveModelContext schemaContext, final WriteDataParams params) {
final YangInstanceIdentifier path = payload.getInstanceIdentifierContext().getInstanceIdentifier();
- final FluentFuture<? extends CommitInfo> future = submitData(path, payload.getData(),
+ final ListenableFuture<? extends CommitInfo> future = submitData(path, payload.getData(),
strategy, schemaContext, params);
final URI location = resolveLocation(uriInfo, path, schemaContext, payload.getData());
final ResponseFactory dataFactory = new ResponseFactory(Status.CREATED).location(location);
* @param insert query parameter
* @return {@link FluentFuture}
*/
- private static FluentFuture<? extends CommitInfo> submitData(final YangInstanceIdentifier path,
- final NormalizedNode data,
- final RestconfStrategy strategy,
- final EffectiveModelContext schemaContext,
- final WriteDataParams params) {
+ private static ListenableFuture<? extends CommitInfo> submitData(final YangInstanceIdentifier path,
+ final NormalizedNode data, final RestconfStrategy strategy, final EffectiveModelContext schemaContext,
+ final WriteDataParams params) {
final RestconfTransaction transaction = strategy.prepareWriteExecution();
final InsertParam insert = params.insert();
if (insert == null) {
*/
package org.opendaylight.restconf.nb.rfc8040.rests.utils;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
import java.util.concurrent.ExecutionException;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
final ResponseFactory responseFactory =
new ResponseFactory(exists ? Status.NO_CONTENT : Status.CREATED);
- final FluentFuture<? extends CommitInfo> submitData = submitData(path, schemaContext, strategy,
+ final ListenableFuture<? extends CommitInfo> submitData = submitData(path, schemaContext, strategy,
payload.getData(), params);
//This method will close transactionChain if any
FutureCallbackTx.addCallback(submitData, PUT_TX_TYPE, responseFactory, path);
* @param strategy object that perform the actual DS operations
* @param data data
* @param params {@link WriteDataParams}
- * @return {@link FluentFuture}
+ * @return A {@link ListenableFuture}
*/
- private static FluentFuture<? extends CommitInfo> submitData(final YangInstanceIdentifier path,
- final EffectiveModelContext schemaContext,
- final RestconfStrategy strategy,
- final NormalizedNode data,
- final WriteDataParams params) {
+ private static ListenableFuture<? extends CommitInfo> submitData(final YangInstanceIdentifier path,
+ final EffectiveModelContext schemaContext, final RestconfStrategy strategy, final NormalizedNode data,
+ final WriteDataParams params) {
final RestconfTransaction transaction = strategy.prepareWriteExecution();
final InsertParam insert = params.insert();
if (insert == null) {
}
}
- private static FluentFuture<? extends CommitInfo> makePut(final YangInstanceIdentifier path,
- final EffectiveModelContext schemaContext,
- final RestconfTransaction transaction,
- final NormalizedNode data) {
+ private static ListenableFuture<? extends CommitInfo> makePut(final YangInstanceIdentifier path,
+ final EffectiveModelContext schemaContext, final RestconfTransaction transaction,
+ final NormalizedNode data) {
transaction.replace(path, data, schemaContext);
return transaction.commit();
}