diff --git a/akka-docs/src/main/paradox/stream/operators/Source/completionStage.md b/akka-docs/src/main/paradox/stream/operators/Source/completionStage.md index 4c4358eb83..c95230ffe7 100644 --- a/akka-docs/src/main/paradox/stream/operators/Source/completionStage.md +++ b/akka-docs/src/main/paradox/stream/operators/Source/completionStage.md @@ -30,3 +30,9 @@ For the corresponding operator for the Scala standard library `Future` see @ref: @@@ +## Example + +Java +: @@snip [SourceFromCompletionStage.java](/akka-docs/src/test/java/jdocs/stream/operators/source/FromCompletionStage.java) { #sourceFromCompletionStage } + +For the corresponding operator for the Scala standard library `Future` see @ref:[future](future.md). diff --git a/akka-docs/src/main/paradox/stream/operators/Source/future.md b/akka-docs/src/main/paradox/stream/operators/Source/future.md index 8cd087ecd9..f39bb5ca37 100644 --- a/akka-docs/src/main/paradox/stream/operators/Source/future.md +++ b/akka-docs/src/main/paradox/stream/operators/Source/future.md @@ -1,4 +1,4 @@ -# fromFuture +# future Send the single value of the `Future` when it completes and there is demand. @@ -20,6 +20,7 @@ If the future fails the stream is failed with that exception. For the corresponding operator for the Java standard library `CompletionStage` see @ref:[completionStage](completionStage.md). ## Example + Scala : @@snip [SourceFromFuture.scala](/akka-docs/src/test/scala/docs/stream/operators/SourceOperators.scala) { #sourceFromFuture } diff --git a/akka-docs/src/test/java/jdocs/stream/operators/source/FromCompletionStage.java b/akka-docs/src/test/java/jdocs/stream/operators/source/FromCompletionStage.java new file mode 100644 index 0000000000..7623b8b693 --- /dev/null +++ b/akka-docs/src/test/java/jdocs/stream/operators/source/FromCompletionStage.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2018-2020 Lightbend Inc. + */ + +package jdocs.stream.operators.source; + +// #sourceFromCompletionStage +import java.util.concurrent.CompletionStage; +import java.util.concurrent.CompletableFuture; + +import akka.NotUsed; +import akka.Done; +import akka.actor.typed.ActorSystem; +import akka.stream.javadsl.*; + +// #sourceFromCompletionStage + +class FromCompletionStage { + + public static void sourceFromCompletionStage() { + // Use one ActorSystem per application + ActorSystem system = null; + + // #sourceFromCompletionStage + CompletionStage stage = CompletableFuture.completedFuture(10); + + Source source = Source.completionStage(stage); + + Sink> sink = Sink.foreach(i -> System.out.println(i.toString())); + + source.runWith(sink, system); // 10 + // #sourceFromCompletionStage + } +}