NettyFutureConverter.java
/*
* SPDX-FileCopyrightText: 2023-2025 Lucimber UG
* SPDX-License-Identifier: Apache-2.0
*/
package com.lucimber.dbus.netty;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.GenericFutureListener;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
class NettyFutureConverter {
static <T> CompletionStage<T> toCompletionStage(Future<T> nettyFuture) {
CompletableFuture<T> completableFuture = new CompletableFuture<>();
nettyFuture.addListener(
(GenericFutureListener<Future<T>>)
future -> {
if (future.isSuccess()) {
completableFuture.complete(future.getNow());
} else {
completableFuture.completeExceptionally(future.cause());
}
});
return completableFuture;
}
}