当前位置: 首页>>代码示例>>Java>>正文


Java FutureConverters类代码示例

本文整理汇总了Java中scala.compat.java8.FutureConverters的典型用法代码示例。如果您正苦于以下问题:Java FutureConverters类的具体用法?Java FutureConverters怎么用?Java FutureConverters使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FutureConverters类属于scala.compat.java8包,在下文中一共展示了FutureConverters类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onProducerRemoved

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
private void onProducerRemoved(final ProducerRemoved message) {
    LOG.debug("Received ProducerRemoved: {}", message);

    final List<CompletableFuture<Object>> futures = new ArrayList<>();

    for (final String address : resolver.getShardingServicePeerActorAddresses()) {
        final ActorSelection selection = actorSystem.actorSelection(address);

        futures.add(FutureConverters.toJava(
                actorContext.executeOperationAsync(selection, new NotifyProducerRemoved(message.getSubtrees())))
                .toCompletableFuture());
    }

    final CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(
            futures.toArray(new CompletableFuture[futures.size()]));

    final ActorRef respondTo = getSender();

    combinedFuture
            .thenRun(() -> respondTo.tell(new Status.Success(null), self()))
            .exceptionally(e -> {
                respondTo.tell(new Status.Failure(null), self());
                return null;
            });

}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:27,代码来源:ShardedDataTreeActor.java

示例2: close

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
@Override
public CompletionStage<Void> close() {
    // first despawn on the local node
    distributedShardedDOMDataTree.despawnShardFrontend(prefix);
    // update the config so the remote nodes are updated
    final Future<Object> ask =
            Patterns.ask(shardedDataTreeActor, new PrefixShardRemovalLookup(prefix), SHARD_FUTURE_TIMEOUT);

    final Future<Void> closeFuture = ask.transform(
            new Mapper<Object, Void>() {
                @Override
                public Void apply(final Object parameter) {
                    return null;
                }
            },
            new Mapper<Throwable, Throwable>() {
                @Override
                public Throwable apply(final Throwable throwable) {
                    return throwable;
                }
            }, actorSystem.dispatcher());

    return FutureConverters.toJava(closeFuture);
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:25,代码来源:DistributedShardedDOMDataTree.java

示例3: channelsRegistry

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
@Bean
public ChannelsRegistry channelsRegistry() {
    ChannelsActors channelsActors = channelsActors();
    return tempo -> {
        Future<Object> result = Patterns.ask(channelsActors.get(tempo), ListChannels.instance(), 1000);
        CompletionStage<Object> stage = FutureConverters.toJava(result);
        return stage.thenCompose(o -> {
            if (o instanceof Channels) {
                return CompletableFuture.completedFuture(((Channels) o).getChannels());
            }
            else {
                CompletableFuture<List<Channel>> f = new CompletableFuture<>();
                f.completeExceptionally(new IllegalStateException());
                return f;
            }
        });
    };
}
 
开发者ID:nosceon,项目名称:tenorite,代码行数:19,代码来源:ChannelsConfig.java

示例4: createRoute

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
private Route createRoute(ActorRef streamActor) {
    return route(
            path(segment("services").slash(longSegment()), id ->
                    get(() -> {
                        Promise<HttpResponse> promise = Futures.promise();
                        streamActor.tell(new Pair(id, promise), ActorRef.noSender());
                        return completeWithFuture(FutureConverters.toJava(promise.future()));
                    })));
}
 
开发者ID:henrikengstrom,项目名称:ujug2017,代码行数:10,代码来源:StreamMain.java

示例5: resolveBackendInfo

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
protected final ShardState resolveBackendInfo(final String shardName, final long cookie) {
    LOG.debug("Resolving cookie {} to shard {}", cookie, shardName);

    final CompletableFuture<ShardBackendInfo> future = new CompletableFuture<>();
    FutureConverters.toJava(actorContext.findPrimaryShardAsync(shardName)).whenComplete((info, failure) -> {
        if (failure == null) {
            connectShard(shardName, cookie, info, future);
            return;
        }

        LOG.debug("Shard {} failed to resolve", shardName, failure);
        if (failure instanceof NoShardLeaderException) {
            future.completeExceptionally(wrap("Shard has no current leader", failure));
        } else if (failure instanceof NotInitializedException) {
            // FIXME: this actually is an exception we can retry on
            LOG.info("Shard {} has not initialized yet", shardName);
            future.completeExceptionally(failure);
        } else if (failure instanceof PrimaryNotFoundException) {
            LOG.info("Failed to find primary for shard {}", shardName);
            future.completeExceptionally(failure);
        } else {
            future.completeExceptionally(failure);
        }
    });

    return new ShardState(future);
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:28,代码来源:AbstractShardBackendResolver.java

示例6: connectShard

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
private void connectShard(final String shardName, final long cookie, final PrimaryShardInfo info,
        final CompletableFuture<ShardBackendInfo> future) {
    LOG.debug("Shard {} resolved to {}, attempting to connect", shardName, info);

    FutureConverters.toJava(ExplicitAsk.ask(info.getPrimaryShardActor(), connectFunction, CONNECT_TIMEOUT))
        .whenComplete((response, failure) -> {
            onConnectResponse(shardName, cookie, future, response, failure);
        });
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:10,代码来源:AbstractShardBackendResolver.java

示例7: onProducerCreated

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
private void onProducerCreated(final ProducerCreated message) {
    LOG.debug("Received ProducerCreated: {}", message);

    // fastpath if we have no peers
    if (resolver.getShardingServicePeerActorAddresses().isEmpty()) {
        getSender().tell(new Status.Success(null), noSender());
    }

    final ActorRef sender = getSender();
    final Collection<DOMDataTreeIdentifier> subtrees = message.getSubtrees();

    final List<CompletableFuture<Object>> futures = new ArrayList<>();

    for (final String address : resolver.getShardingServicePeerActorAddresses()) {
        final ActorSelection actorSelection = actorSystem.actorSelection(address);
        futures.add(
                FutureConverters.toJava(
                        actorContext.executeOperationAsync(
                                actorSelection, new NotifyProducerCreated(subtrees), DEFAULT_ASK_TIMEOUT))
                .toCompletableFuture());
    }

    final CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(
            futures.toArray(new CompletableFuture[futures.size()]));

    combinedFuture
            .thenRun(() -> sender.tell(new Success(null), noSender()))
            .exceptionally(throwable -> {
                sender.tell(new Status.Failure(throwable), self());
                return null;
            });
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:33,代码来源:ShardedDataTreeActor.java

示例8: dispatchHttpRequest

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
private CompletionStage<HttpResponse> dispatchHttpRequest(final HttpRequest request, final String actorName) {
    final Future<ActorRef> refFuture = _actorSystem.actorSelection(actorName)
            .resolveOne(FiniteDuration.create(1, TimeUnit.SECONDS));
    return FutureConverters.toJava(refFuture).thenCompose(
            ref -> {
                final CompletableFuture<HttpResponse> response = new CompletableFuture<>();
                ref.tell(new RequestReply(request, response), ActorRef.noSender());
                return response;
            })
            // We return 404 here since actor startup is controlled by config and
            // the actors may not be running.
            .exceptionally(err -> HttpResponse.create().withStatus(404));
}
 
开发者ID:ArpNetworking,项目名称:metrics-aggregator-daemon,代码行数:14,代码来源:Routes.java

示例9: ask

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private <T> CompletionStage<T> ask(final String actorPath, final Object request, final T defaultValue) {
    return FutureConverters.toJava(
            (Future<T>) Patterns.ask(
                    _actorSystem.actorSelection(actorPath),
                    request,
                    Timeout.apply(1, TimeUnit.SECONDS)))
            .exceptionally(throwable -> defaultValue);
}
 
开发者ID:ArpNetworking,项目名称:metrics-aggregator-daemon,代码行数:10,代码来源:Routes.java

示例10: createUserActor

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
public CompletionStage<ActorRef> createUserActor(String id, ActorRef webSocketOut) {
    // Use guice assisted injection to instantiate and configure the child actor.
    long timeoutMillis = 100L;
    return FutureConverters.toJava(
            ask(userParentActor, new UserParentActor.Create(id, webSocketOut), timeoutMillis)
    ).thenApply(stageObj -> (ActorRef) stageObj);
}
 
开发者ID:play2-maven-plugin,项目名称:play2-maven-test-projects,代码行数:8,代码来源:HomeController.java

示例11: waitOnAsyncTask

import scala.compat.java8.FutureConverters; //导入依赖的package包/类
protected static <T> T waitOnAsyncTask(final CompletionStage<T> completionStage, final Duration timeout)
        throws Exception {
    return Await.result(FutureConverters.toScala(completionStage), timeout);
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:5,代码来源:AbstractTest.java


注:本文中的scala.compat.java8.FutureConverters类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。