This is an automated email from the ASF dual-hosted git repository.
fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/main by this push:
new ad1ddf04c9 remove deprecated stream future operators (#2012)
ad1ddf04c9 is described below
commit ad1ddf04c9b5446041602762276bbe13ca4d23b8
Author: PJ Fanning <[email protected]>
AuthorDate: Thu Aug 7 09:35:25 2025 +0100
remove deprecated stream future operators (#2012)
* remove deprecated stream future operators
* Update maybe.md
---
.../stream/operators/Source/fromCompletionStage.md | 29 ----------------
.../paradox/stream/operators/Source/fromFuture.md | 27 ---------------
.../stream/operators/Source/fromFutureSource.md | 28 ---------------
.../operators/Source/fromSourceCompletionStage.md | 25 --------------
.../main/paradox/stream/operators/Source/maybe.md | 4 +--
docs/src/main/paradox/stream/operators/index.md | 7 ----
.../pekko/stream/scaladsl/FlowCompileSpec.scala | 2 +-
.../pekko/stream/scaladsl/FlowFromFutureSpec.scala | 14 ++++----
.../remove-deprecated-methods.excludes | 8 +++++
.../org/apache/pekko/stream/javadsl/Source.scala | 40 ----------------------
.../org/apache/pekko/stream/scaladsl/Source.scala | 40 ----------------------
11 files changed, 18 insertions(+), 206 deletions(-)
diff --git
a/docs/src/main/paradox/stream/operators/Source/fromCompletionStage.md
b/docs/src/main/paradox/stream/operators/Source/fromCompletionStage.md
deleted file mode 100644
index 7ef5d554ef..0000000000
--- a/docs/src/main/paradox/stream/operators/Source/fromCompletionStage.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Source.fromCompletionStage
-
-Deprecated by @ref:[`Source.completionStage`](completionStage.md).
-
-@ref[Source operators](../index.md#source-operators)
-
-## Signature
-
-@apidoc[Source.fromCompletionStage](Source$) {
scala="#fromCompletionStage[T](future:java.util.concurrent.CompletionStage[T]):org.apache.pekko.stream.scaladsl.Source[T,org.apache.pekko.NotUsed]"
java="#fromCompletionStage(java.util.concurrent.CompletionStage)" }
-
-
-## Description
-
-`fromCompletionStage` is deprecated, please use
@ref:[completionStage](completionStage.md) instead.
-
-Send the single value of the `CompletionStage` when it completes and there is
demand.
-If the `CompletionStage` completes with `null` stage is completed without
emitting a value.
-If the `CompletionStage` fails the stream is failed with that exception.
-
-## Reactive Streams semantics
-
-@@@div { .callout }
-
-**emits** the future completes
-
-**completes** after the future has completed
-
-@@@
-
diff --git a/docs/src/main/paradox/stream/operators/Source/fromFuture.md
b/docs/src/main/paradox/stream/operators/Source/fromFuture.md
deleted file mode 100644
index 25541a2f7f..0000000000
--- a/docs/src/main/paradox/stream/operators/Source/fromFuture.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Source.fromFuture
-
-Deprecated by @ref[`Source.future`](future.md).
-
-@ref[Source operators](../index.md#source-operators)
-
-## Signature
-
-@apidoc[Source.fromFuture](Source$) {
scala="#fromFuture[T](future:scala.concurrent.Future[T]):org.apache.pekko.stream.scaladsl.Source[T,org.apache.pekko.NotUsed]"
}
-
-
-## Description
-
-`fromFuture` is deprecated, please use @ref:[future](future.md) instead.
-
-Send the single value of the `Future` when it completes and there is demand.
-If the future fails the stream is failed with that exception.
-
-## Reactive Streams semantics
-
-@@@div { .callout }
-
-**emits** the future completes
-
-**completes** after the future has completed
-
-@@@
diff --git a/docs/src/main/paradox/stream/operators/Source/fromFutureSource.md
b/docs/src/main/paradox/stream/operators/Source/fromFutureSource.md
deleted file mode 100644
index a920c57739..0000000000
--- a/docs/src/main/paradox/stream/operators/Source/fromFutureSource.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Source.fromFutureSource
-
-Deprecated by @ref:[`Source.futureSource`](futureSource.md).
-
-@ref[Source operators](../index.md#source-operators)
-
-## Signature
-
-@apidoc[Source.fromFutureSource](Source$) {
scala="#fromFutureSource[T,M](future:scala.concurrent.Future[org.apache.pekko.stream.Graph[org.apache.pekko.stream.SourceShape[T],M]]):org.apache.pekko.stream.scaladsl.Source[T,scala.concurrent.Future[M]]"
}
-
-
-## Description
-
-`fromFutureSource` is deprecated, please use
@ref:[futureSource](futureSource.md) instead.
-
-Streams the elements of the given future source once it successfully completes.
-If the future fails the stream is failed.
-
-## Reactive Streams semantics
-
-@@@div { .callout }
-
-**emits** the next value from the *future* source, once it has completed
-
-**completes** after the *future* source completes
-
-@@@
-
diff --git
a/docs/src/main/paradox/stream/operators/Source/fromSourceCompletionStage.md
b/docs/src/main/paradox/stream/operators/Source/fromSourceCompletionStage.md
deleted file mode 100644
index cf3740a824..0000000000
--- a/docs/src/main/paradox/stream/operators/Source/fromSourceCompletionStage.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# Source.fromSourceCompletionStage
-
-Deprecated by @ref:[`Source.completionStageSource`](completionStageSource.md).
-
-@ref[Source operators](../index.md#source-operators)
-
-## Signature
-
-## Description
-
-`fromSourceCompletionStage` is deprecated, please use
@ref:[completionStageSource](completionStageSource.md) instead.
-
-Streams the elements of an asynchronous source once its given *completion*
operator completes.
-If the *completion* fails the stream is failed with that exception.
-
-## Reactive Streams semantics
-
-@@@div { .callout }
-
-**emits** the next value from the asynchronous source, once its *completion
operator* has completed
-
-**completes** after the asynchronous source completes
-
-@@@
-
diff --git a/docs/src/main/paradox/stream/operators/Source/maybe.md
b/docs/src/main/paradox/stream/operators/Source/maybe.md
index 4d08319d14..00f819c1e5 100644
--- a/docs/src/main/paradox/stream/operators/Source/maybe.md
+++ b/docs/src/main/paradox/stream/operators/Source/maybe.md
@@ -23,10 +23,10 @@ after creation.
* If the downstream of this source cancels or fails before the promise has
been completed, then the promise will be completed
with @scala[`None`]@java[empty `Optional`].
-`Source.maybe` has some similarities with
@scala[@ref:[`Source.fromFuture`](fromFuture.md)]@java[@ref:[`Source.fromCompletionStage`](fromCompletionStage.md)].
+`Source.maybe` has some similarities with
@scala[@ref:[`Source.future`](future.md)]@java[@ref:[`Source.completionStageSource`](completionStageSource.md)].
One difference is that a new @scala[`Promise`]@java[`CompletableFuture`] is
materialized from `Source.maybe` each time
the stream is run while the @scala[`Future`]@java[`CompletionStage`] given to
-@scala[`Source.fromFuture`]@java[`Source.fromCompletionStage`] can only be
completed once.
+@scala[`Source.future`]@java[`Source.completionStageSource`] can only be
completed once.
@ref:[`Source.queue`](queue.md) is an alternative for emitting more than one
element.
diff --git a/docs/src/main/paradox/stream/operators/index.md
b/docs/src/main/paradox/stream/operators/index.md
index 61ed694db6..1ebecd5b48 100644
--- a/docs/src/main/paradox/stream/operators/index.md
+++ b/docs/src/main/paradox/stream/operators/index.md
@@ -18,12 +18,9 @@ These built-in sources are available from
@scala[`org.apache.pekko.stream.scalad
|Source|<a
name="from"></a>@ref[@scala[apply]@java[from]](Source/from.md)|Stream the
values of an @scala[`immutable.Seq`]@java[`Iterable`].|
|Source|<a name="fromarray"></a>@ref[fromArray](Source/fromArray.md)|Stream
the values of an `array`.|
|Source|<a
name="fromcompletionstage"></a>@ref[fromCompletionStage](Source/fromCompletionStage.md)|Deprecated
by @ref[`Source.completionStage`](Source/completionStage.md).|
-|Source|<a
name="fromfuture"></a>@ref[fromFuture](Source/fromFuture.md)|Deprecated by
@ref[`Source.future`](Source/future.md).|
-|Source|<a
name="fromfuturesource"></a>@ref[fromFutureSource](Source/fromFutureSource.md)|Deprecated
by @ref[`Source.futureSource`](Source/futureSource.md).|
|Source|<a
name="fromiterator"></a>@ref[fromIterator](Source/fromIterator.md)|Stream the
values from an `Iterator`, requesting the next value when there is demand.|
|Source|<a
name="fromjavastream"></a>@ref[fromJavaStream](Source/fromJavaStream.md)|Stream
the values from a Java 8 `Stream`, requesting the next value when there is
demand.|
|Source|<a
name="frompublisher"></a>@ref[fromPublisher](Source/fromPublisher.md)|Integration
with Reactive Streams, subscribes to a
@javadoc[Publisher](java.util.concurrent.Flow.Publisher).|
-|Source|<a
name="fromsourcecompletionstage"></a>@ref[fromSourceCompletionStage](Source/fromSourceCompletionStage.md)|Deprecated
by @ref[`Source.completionStageSource`](Source/completionStageSource.md).|
|Source|<a name="future"></a>@ref[future](Source/future.md)|Send the single
value of the `Future` when it completes and there is demand.|
|Source|<a
name="futuresource"></a>@ref[futureSource](Source/futureSource.md)|Streams the
elements of the given future source once it successfully completes.|
|Source|<a name="iterate"></a>@ref[iterate](Source/iterate.md)|Creates a
sequential `Source` by iterating with the given predicate, function and seed.|
@@ -468,9 +465,6 @@ For more background see the @ref[Error Handling in
Streams](../stream-error.md)
* [foreachAsync](Sink/foreachAsync.md)
* [from](Source/from.md)
* [fromArray](Source/fromArray.md)
-* [fromCompletionStage](Source/fromCompletionStage.md)
-* [fromFuture](Source/fromFuture.md)
-* [fromFutureSource](Source/fromFutureSource.md)
* [fromInputStream](StreamConverters/fromInputStream.md)
* [fromIterator](Source/fromIterator.md)
* [fromJavaStream](Source/fromJavaStream.md)
@@ -482,7 +476,6 @@ For more background see the @ref[Error Handling in
Streams](../stream-error.md)
* [fromPublisher](Source/fromPublisher.md)
* [fromSinkAndSource](Flow/fromSinkAndSource.md)
* [fromSinkAndSourceCoupled](Flow/fromSinkAndSourceCoupled.md)
-* [fromSourceCompletionStage](Source/fromSourceCompletionStage.md)
* [fromSubscriber](Sink/fromSubscriber.md)
* [future](Source/future.md)
* [futureFlow](Flow/futureFlow.md)
diff --git
a/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowCompileSpec.scala
b/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowCompileSpec.scala
index 21ae42a0e4..78a5820212 100644
---
a/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowCompileSpec.scala
+++
b/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowCompileSpec.scala
@@ -30,7 +30,7 @@ class FlowCompileSpec extends StreamSpec {
val strSeq = Source(Seq("a", "b", "c"))
import scala.concurrent.ExecutionContext.Implicits.global
- val intFut = Source.fromFuture(Future { 3 })
+ val intFut = Source.future(Future { 3 })
"Flow" should {
"not run" in {
diff --git
a/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowFromFutureSpec.scala
b/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowFromFutureSpec.scala
index 54709e4b07..475101faf5 100644
---
a/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowFromFutureSpec.scala
+++
b/stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/FlowFromFutureSpec.scala
@@ -28,7 +28,7 @@ class FlowFromFutureSpec extends StreamSpec {
"A Flow based on a Future" must {
"produce one element from already successful Future" in {
val c = TestSubscriber.manualProbe[Int]()
-
Source.fromFuture(Future.successful(1)).runWith(Sink.asPublisher(true)).subscribe(c)
+
Source.future(Future.successful(1)).runWith(Sink.asPublisher(true)).subscribe(c)
val sub = c.expectSubscription()
c.expectNoMessage(100.millis)
sub.request(1)
@@ -39,13 +39,13 @@ class FlowFromFutureSpec extends StreamSpec {
"produce error from already failed Future" in {
val ex = new RuntimeException("test") with NoStackTrace
val c = TestSubscriber.manualProbe[Int]()
-
Source.fromFuture(Future.failed[Int](ex)).runWith(Sink.asPublisher(false)).subscribe(c)
+
Source.future(Future.failed[Int](ex)).runWith(Sink.asPublisher(false)).subscribe(c)
c.expectSubscriptionAndError(ex)
}
"fails flow from already failed Future even no demands" in {
val ex = new RuntimeException("test") with NoStackTrace
- val sub = Source.fromFuture(Future.failed[Int](ex))
+ val sub = Source.future(Future.failed[Int](ex))
.runWith(TestSink.probe)
sub.expectSubscriptionAndError(ex)
}
@@ -53,7 +53,7 @@ class FlowFromFutureSpec extends StreamSpec {
"produce one element when Future is completed" in {
val promise = Promise[Int]()
val c = TestSubscriber.manualProbe[Int]()
-
Source.fromFuture(promise.future).runWith(Sink.asPublisher(true)).subscribe(c)
+
Source.future(promise.future).runWith(Sink.asPublisher(true)).subscribe(c)
val sub = c.expectSubscription()
sub.request(1)
c.expectNoMessage(100.millis)
@@ -66,7 +66,7 @@ class FlowFromFutureSpec extends StreamSpec {
"produce one element when Future is completed but not before request" in {
val promise = Promise[Int]()
val c = TestSubscriber.manualProbe[Int]()
-
Source.fromFuture(promise.future).runWith(Sink.asPublisher(true)).subscribe(c)
+
Source.future(promise.future).runWith(Sink.asPublisher(true)).subscribe(c)
val sub = c.expectSubscription()
promise.success(1)
c.expectNoMessage(200.millis)
@@ -77,7 +77,7 @@ class FlowFromFutureSpec extends StreamSpec {
"produce elements with multiple subscribers" in {
val promise = Promise[Int]()
- val p = Source.fromFuture(promise.future).runWith(Sink.asPublisher(true))
+ val p = Source.future(promise.future).runWith(Sink.asPublisher(true))
val c1 = TestSubscriber.manualProbe[Int]()
val c2 = TestSubscriber.manualProbe[Int]()
p.subscribe(c1)
@@ -95,7 +95,7 @@ class FlowFromFutureSpec extends StreamSpec {
"allow cancel before receiving element" in {
val promise = Promise[Int]()
- val p = Source.fromFuture(promise.future).runWith(Sink.asPublisher(true))
+ val p = Source.future(promise.future).runWith(Sink.asPublisher(true))
val keepAlive = TestSubscriber.manualProbe[Int]()
val c = TestSubscriber.manualProbe[Int]()
p.subscribe(keepAlive)
diff --git
a/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
b/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
index c594dec626..6c9dc6e523 100644
---
a/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
+++
b/stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
@@ -61,6 +61,10 @@
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.java
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.lazilyAsync")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.lazily")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.tick")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.fromSourceCompletionStage")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.fromFutureSource")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.fromCompletionStage")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.fromFuture")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.groupedWithin")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.groupedWeightedWithin")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.javadsl.Source.delay")
@@ -131,6 +135,10 @@
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scal
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.actorRefWithAck")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.lazilyAsync")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.lazily")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.fromFutureSource")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.fromCompletionStage")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.fromFuture")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.fromSourceCompletionStage")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.setup")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.Source.throttleEven")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.stream.scaladsl.ZipWithN.inSeq")
diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala
b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala
index 4fc62dcd8e..e39320e5d1 100755
--- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Source.scala
@@ -223,46 +223,6 @@ object Source {
def range(start: Int, end: Int, step: Int): javadsl.Source[Integer, NotUsed]
=
new Source(scaladsl.Source(Range.inclusive(start, end,
step).asInstanceOf[immutable.Iterable[Integer]]))
- /**
- * Start a new `Source` from the given `Future`. The stream will consist of
- * one element when the `Future` is completed with a successful value, which
- * may happen before or after materializing the `Flow`.
- * The stream terminates with a failure if the `Future` is completed with a
failure.
- */
- @deprecated("Use 'Source.future' instead", "Akka 2.6.0")
- def fromFuture[O](future: Future[O]): javadsl.Source[O, NotUsed] =
- new Source(scaladsl.Source.future(future))
-
- /**
- * Starts a new `Source` from the given `CompletionStage`. The stream will
consist of
- * one element when the `CompletionStage` is completed with a successful
value, which
- * may happen before or after materializing the `Flow`.
- * The stream terminates with a failure if the `CompletionStage` is
completed with a failure.
- */
- @deprecated("Use 'Source.completionStage' instead", "Akka 2.6.0")
- def fromCompletionStage[O](future: CompletionStage[O]): javadsl.Source[O,
NotUsed] =
- new Source(scaladsl.Source.completionStage(future))
-
- /**
- * Streams the elements of the given future source once it successfully
completes.
- * If the [[Future]] fails the stream is failed with the exception from the
future. If downstream cancels before the
- * stream completes the materialized [[Future]] will be failed with a
[[StreamDetachedException]].
- */
- @deprecated("Use 'Source.futureSource' (potentially together with
`Source.fromGraph`) instead", "Akka 2.6.0")
- def fromFutureSource[T, M](future: Future[_ <: Graph[SourceShape[T], M]]):
javadsl.Source[T, Future[M]] =
- new Source(scaladsl.Source.fromFutureSource(future))
-
- /**
- * Streams the elements of an asynchronous source once its given
[[CompletionStage]] completes.
- * If the [[CompletionStage]] fails the stream is failed with the exception
from the future.
- * If downstream cancels before the stream completes the materialized
[[CompletionStage]] will be failed
- * with a [[StreamDetachedException]]
- */
- @deprecated("Use 'Source.completionStageSource' (potentially together with
`Source.fromGraph`) instead", "Akka 2.6.0")
- def fromSourceCompletionStage[T, M](
- completion: CompletionStage[_ <: Graph[SourceShape[T], M]]):
javadsl.Source[T, CompletionStage[M]] =
- completionStageSource(completion.thenApply(fromGraph[T, M]))
-
/**
* Elements are emitted periodically with the specified interval.
* The tick element will be delivered to downstream consumers that has
requested any elements.
diff --git
a/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Source.scala
b/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Source.scala
index ac9cadf6e2..1fbc52c462 100644
--- a/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Source.scala
+++ b/stream/src/main/scala/org/apache/pekko/stream/scaladsl/Source.scala
@@ -398,46 +398,6 @@ object Source {
def apply[T](iterable: immutable.Iterable[T]): Source[T, NotUsed] =
fromGraph(new
IterableSource[T](iterable)).withAttributes(DefaultAttributes.iterableSource)
- /**
- * Starts a new `Source` from the given `Future`. The stream will consist of
- * one element when the `Future` is completed with a successful value, which
- * may happen before or after materializing the `Flow`.
- * The stream terminates with a failure if the `Future` is completed with a
failure.
- */
- @deprecated("Use 'Source.future' instead", "Akka 2.6.0")
- def fromFuture[T](future: Future[T]): Source[T, NotUsed] =
- fromGraph(new FutureSource(future))
-
- /**
- * Starts a new `Source` from the given `Future`. The stream will consist of
- * one element when the `Future` is completed with a successful value, which
- * may happen before or after materializing the `Flow`.
- * The stream terminates with a failure if the `Future` is completed with a
failure.
- */
- @deprecated("Use 'Source.completionStage' instead", "Akka 2.6.0")
- def fromCompletionStage[T](future: CompletionStage[T]): Source[T, NotUsed] =
- fromGraph(new FutureSource(future.asScala))
-
- /**
- * Streams the elements of the given future source once it successfully
completes.
- * If the [[Future]] fails the stream is failed with the exception from the
future. If downstream cancels before the
- * stream completes the materialized `Future` will be failed with a
[[StreamDetachedException]]
- */
- @deprecated("Use 'Source.futureSource' (potentially together with
`Source.fromGraph`) instead", "Akka 2.6.0")
- def fromFutureSource[T, M](future: Future[Graph[SourceShape[T], M]]):
Source[T, Future[M]] =
- fromGraph(new FutureFlattenSource(future))
-
- /**
- * Streams the elements of an asynchronous source once its given
`completion` operator completes.
- * If the [[CompletionStage]] fails the stream is failed with the exception
from the future.
- * If downstream cancels before the stream completes the materialized
`Future` will be failed
- * with a [[StreamDetachedException]]
- */
- @deprecated("Use scala-compat CompletionStage to future converter and
'Source.futureSource' instead", "Akka 2.6.0")
- def fromSourceCompletionStage[T, M](
- completion: CompletionStage[_ <: Graph[SourceShape[T], M]]): Source[T,
CompletionStage[M]] =
- fromFutureSource(completion.asScala).mapMaterializedValue(_.asJava)
-
/**
* Elements are emitted periodically with the specified interval.
* The tick element will be delivered to downstream consumers that has
requested any elements.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]