From c5a2785c7ce7444de9d923c83634f24783a82cd8 Mon Sep 17 00:00:00 2001 From: Konrad Malawski Date: Mon, 22 Jan 2018 01:16:36 +0900 Subject: [PATCH] +str #24229 implement flattening of mat values, may block; SHOULD BE INTERNAL API add java documentation images --- .../paradox/images/sink-ref-animation.gif | Bin 0 -> 132465 bytes .../paradox/images/source-ref-animation.gif | Bin 79177 -> 84976 bytes .../src/main/paradox/stream/stream-refs.md | 25 ++- .../jdocs/stream/FlowStreamRefsDocTest.java | 162 ++++++++++++++++++ .../docs/stream/FlowStreamRefsDocSpec.scala | 6 +- .../akka/stream/scaladsl/StreamRefsSpec.scala | 8 +- .../main/scala/akka/stream/StreamRefs.scala | 10 +- .../impl/PhasedFusingActorMaterializer.scala | 45 ++++- .../akka/stream/impl/TraversalBuilder.scala | 28 +++ .../impl/streamref/MaterializedSinkRef.scala | 96 +++++------ .../streamref/MaterializedSourceRef.scala | 128 ++++++++------ .../stream/impl/streamref/SinkRefImpl.scala | 11 +- .../stream/impl/streamref/SourceRefImpl.scala | 11 +- .../impl/streamref/StreamRefsMaster.scala | 44 ++++- .../main/scala/akka/stream/javadsl/Flow.scala | 9 + .../main/scala/akka/stream/javadsl/Sink.scala | 10 ++ .../scala/akka/stream/javadsl/Source.scala | 8 + .../scala/akka/stream/scaladsl/Flow.scala | 17 +- .../scala/akka/stream/scaladsl/Sink.scala | 19 +- .../scala/akka/stream/scaladsl/Source.scala | 17 +- .../serialization/StreamRefSerializer.scala | 12 +- 21 files changed, 520 insertions(+), 146 deletions(-) create mode 100644 akka-docs/src/main/paradox/images/sink-ref-animation.gif create mode 100644 akka-docs/src/test/java/jdocs/stream/FlowStreamRefsDocTest.java diff --git a/akka-docs/src/main/paradox/images/sink-ref-animation.gif b/akka-docs/src/main/paradox/images/sink-ref-animation.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae572ddd13028fcd21be98cc806e52848120a2b5 GIT binary patch literal 132465 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

uM>W%ENA3b}D++IG>c>G~n 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 diff --git a/akka-docs/src/main/paradox/stream/stream-refs.md b/akka-docs/src/main/paradox/stream/stream-refs.md index 90f1a35b79..8540a61955 100644 --- a/akka-docs/src/main/paradox/stream/stream-refs.md +++ b/akka-docs/src/main/paradox/stream/stream-refs.md @@ -69,12 +69,18 @@ That sink materializes the `SourceRef` that you can then send to other nodes. Pl Scala : @@snip [FlowStreamRefsDocSpec.scala]($code$/scala/docs/stream/FlowStreamRefsDocSpec.scala) { #offer-source } +Java +: @@snip [FlowStreamRefsDocTest.java]($code$/java/jdocs/stream/FlowStreamRefsDocTest.java) { #offer-source } + The origin actor which creates and owns the Source could also perform some validation or additional setup when preparing the source. Once it has handed out the `SourceRef` the remote side can run it like this: Scala : @@snip [FlowStreamRefsDocSpec.scala]($code$/scala/docs/stream/FlowStreamRefsDocSpec.scala) { #offer-source-use } +Java +: @@snip [FlowStreamRefsDocTest.java]($code$/java/jdocs/stream/FlowStreamRefsDocTest.java) { #offer-source-use } + The process of preparing and running a `SourceRef` powered distributed stream is shown by the animation below: ![SourceRef usage animation](../images/source-ref-animation.gif) @@ -104,15 +110,22 @@ into various other systems (e.g. any of the Alpakka provided Sinks). Scala : @@snip [FlowStreamRefsDocSpec.scala]($code$/scala/docs/stream/FlowStreamRefsDocSpec.scala) { #offer-sink } +Java +: @@snip [FlowStreamRefsDocTest.java]($code$/java/jdocs/stream/FlowStreamRefsDocTest.java) { #offer-sink } + Using the offered `SinkRef` to send data to the origin of the Sink is also simple, as we can treat the SinkRef just as any other Sink and directly `runWith` or `run` with it. Scala : @@snip [FlowStreamRefsDocSpec.scala]($code$/scala/docs/stream/FlowStreamRefsDocSpec.scala) { #offer-sink-use } +Java +: @@snip [FlowStreamRefsDocTest.java]($code$/java/jdocs/stream/FlowStreamRefsDocTest.java) { #offer-sink-use } +The process of preparing and running a `SinkRef` powered distributed stream is shown by the animation below: + +![SourceRef usage animation](../images/sink-ref-animation.gif) -![simple-graph-example.png](../images/sink-ref-dance.png) @@@ warning A `SinkeRef` is *by design* "single-shot". i.e. it may only be materialized once. @@ -127,15 +140,13 @@ Scala ## Bulk Stream References @@@ warning - Not yet implemented. See ticket ...... FIXME, ticket number + Bulk stream references are not implemented yet. + See ticket [Bulk Transfer Stream Refs #24276](https://github.com/akka/akka/issues/24276) to track progress or signal demand for this feature. @@@ -Bulk stream references can be used to create simple to use side-channels to transfer humongous amounts +Bulk stream refs can be used to create simple to use side-channels to transfer humongous amounts of data such as huge log files, messages or even media, with as much ease as if it was a trivial local stream. -Connections for each stream ref bulk stream ref are established independently, and do not utilise -actor messaging (which is not designed for such bulk transfers, but rather small messages). - ## Configuration ### Stream reference subscription timeouts @@ -156,6 +167,8 @@ globally (`akka.stream.materializer.stream-ref.subscription-timeout`), but also Scala : @@snip [FlowStreamRefsDocSpec.scala]($code$/scala/docs/stream/FlowStreamRefsDocSpec.scala) { #attr-sub-timeout } +Java +: @@snip [FlowStreamRefsDocTest.java]($code$/java/jdocs/stream/FlowStreamRefsDocTest.java) { #attr-sub-timeout } ## General configuration diff --git a/akka-docs/src/test/java/jdocs/stream/FlowStreamRefsDocTest.java b/akka-docs/src/test/java/jdocs/stream/FlowStreamRefsDocTest.java new file mode 100644 index 0000000000..2428c4a694 --- /dev/null +++ b/akka-docs/src/test/java/jdocs/stream/FlowStreamRefsDocTest.java @@ -0,0 +1,162 @@ +/** + * Copyright (C) 2015-2018 Lightbend Inc. + */ +package jdocs.stream; + +import akka.NotUsed; +import akka.actor.AbstractActor; +import akka.actor.ActorRef; +import akka.actor.ActorSystem; +import akka.actor.Props; +import akka.remote.WireFormats; +import akka.stream.*; +import akka.stream.javadsl.*; +import akka.testkit.TestProbe; +import akka.testkit.javadsl.TestKit; +import jdocs.AbstractJavaTest; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import scala.concurrent.duration.Duration; +import scala.concurrent.duration.FiniteDuration; + +import java.util.concurrent.TimeUnit; + +import static org.junit.Assert.assertEquals; + +public class FlowStreamRefsDocTest extends AbstractJavaTest { + + static ActorSystem system = null; + static Materializer mat = null; + + @Test + public void compileOnlySpec() { + // do nothing + } + + //#offer-source + static class RequestLogs { + public final long streamId; + + public RequestLogs(long streamId) { + this.streamId = streamId; + } + } + + static class LogsOffer { + final SourceRef sourceRef; + + public LogsOffer(SourceRef sourceRef) { + this.sourceRef = sourceRef; + } + } + + static class DataSource extends AbstractActor { + @Override + public Receive createReceive() { + return receiveBuilder() + .match(RequestLogs.class, this::handleRequestLogs) + .build(); + } + + private void handleRequestLogs(RequestLogs requestLogs) { + Source logs = streamLogs(requestLogs.streamId); + SourceRef logsRef = logs.runWith(Sink.sourceRef(), mat); + LogsOffer offer = new LogsOffer(logsRef); + sender().tell(offer, self()); + } + + private Source streamLogs(long streamId) { + return Source.repeat("[INFO] some interesting logs here (for id: " + streamId + ")"); + } + } + //#offer-source + + public void offerSource() { + new TestKit(system) {{ + + //#offer-source-use + ActorRef sourceActor = system.actorOf(Props.create(DataSource.class), "dataSource"); + + sourceActor.tell(new RequestLogs(1337), getTestActor()); + LogsOffer offer = expectMsgClass(LogsOffer.class); + + offer.sourceRef.getSource() + .runWith(Sink.foreach(log -> System.out.println(log)), mat); + + //#offer-source-use + }}; + } + + //#offer-sink + class PrepareUpload { + final String id; + + public PrepareUpload(String id) { + this.id = id; + } + } + class MeasurementsSinkReady { + final String id; + final SinkRef sinkRef; + + public PrepareUpload(String id, SinkRef ref) { + this.id = id; + this.sinkRef = ref; + } + } + + static class DataReceiver extends AbstractActor { + @Override + public Receive createReceive() { + return receiveBuilder() + .match(PrepareUpload.class, prepare -> { + Sink sink = logsSinkFor(prepare.id); + SinkRef sinkRef = Source.sinkRef().to(sink).run(mat); + + sender().tell(new MeasurementsSinkReady(sinkRef), self()); + }) + .create(); + } + + private Sink logsSinkFor(String id) { + return Sink.ignore(); // would be actual useful Sink in reality + } + } + //#offer-sink + + public void offerSink() { + new TestKit(system) {{ + + //#offer-sink-use + ActorRef receiver = system.actorOf(Props.create(DataReceiver.class), "dataReceiver"); + + receiver.tell(new PrepareUpload("system-42-tmp"), getTestActor()); + MeasurementsSinkReady ready = expectMsgClass(LogsOffer.class); + + Source.repeat("hello") + .runWith(ready.sinkRef, mat); + //#offer-sink-use + }}; + } + + public void configureTimeouts() { + new TestKit(system) {{ + + //#attr-sub-timeout + FiniteDuration timeout = FiniteDuration.create(5, TimeUnit.SECONDS); + Attributes timeoutAttributes = StreamRefAttributes.subscriptionTimeout(timeout); + + // configuring Sink.sourceRef (notice that we apply the attributes to the Sink!): + Source.repeat("hello") + .runWith(Sink.sourceRef().addAttributes(timeoutAttributes), mat); + + // configuring SinkRef.source: + Source.sinkRef().addAttributes(timeoutAttributes) + .runWith(Sink.ignore(), mat); // not very interesting sink, just an example + + //#attr-sub-timeout + }}; + } + +} diff --git a/akka-docs/src/test/scala/docs/stream/FlowStreamRefsDocSpec.scala b/akka-docs/src/test/scala/docs/stream/FlowStreamRefsDocSpec.scala index bc674df352..3dd8f5be05 100644 --- a/akka-docs/src/test/scala/docs/stream/FlowStreamRefsDocSpec.scala +++ b/akka-docs/src/test/scala/docs/stream/FlowStreamRefsDocSpec.scala @@ -62,8 +62,8 @@ class FlowStreamRefsDocSpec extends AkkaSpec with CompileOnlySpec { import akka.pattern._ import akka.stream.SinkRef - case class PrepareUpload(sourceId: String) - case class MeasurementsSinkReady(sourceId: String, sinkRef: SinkRef[String]) + case class PrepareUpload(id: String) + case class MeasurementsSinkReady(id: String, sinkRef: SinkRef[String]) class DataReceiver extends Actor { @@ -112,7 +112,7 @@ class FlowStreamRefsDocSpec extends AkkaSpec with CompileOnlySpec { import scala.concurrent.duration._ import akka.stream.StreamRefAttributes - // configuring SourceRef.sink (notice that we apply the attributes to the Sink!): + // configuring Sink.sourceRef (notice that we apply the attributes to the Sink!): Source.repeat("hello") .runWith(Sink.sourceRef().addAttributes(StreamRefAttributes.subscriptionTimeout(5.seconds))) diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/StreamRefsSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/StreamRefsSpec.scala index 217b16e741..60a9339d1c 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/StreamRefsSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/StreamRefsSpec.scala @@ -43,7 +43,7 @@ object StreamRefsSpec { case "give-infinite" ⇒ val source: Source[String, NotUsed] = Source.fromIterator(() ⇒ Iterator.from(1)).map("ping-" + _) - val ref: SourceRef[String] = source.runWith(Sink.sourceRef()) + val (r: NotUsed, ref: SourceRef[String]) = source.toMat(Sink.sourceRef())(Keep.both).run() sender() ! ref @@ -85,14 +85,14 @@ object StreamRefsSpec { * For them it's a Sink; for us it's a Source. */ val sink: SinkRef[String] = - Source.sinkRef[String] + Source.sinkRef[String]() .to(Sink.actorRef(probe, "")) .run() sender() ! sink case "receive-subscribe-timeout" ⇒ - val sink = Source.sinkRef[String] + val sink = Source.sinkRef[String]() .withAttributes(StreamRefAttributes.subscriptionTimeout(500.millis)) .to(Sink.actorRef(probe, "")) .run() @@ -100,7 +100,7 @@ object StreamRefsSpec { sender() ! sink case "receive-32" ⇒ - val (sink, driver) = Source.sinkRef[String] + val (sink, driver) = Source.sinkRef[String]() .toMat(TestSink.probe(context.system))(Keep.both) .run() diff --git a/akka-stream/src/main/scala/akka/stream/StreamRefs.scala b/akka-stream/src/main/scala/akka/stream/StreamRefs.scala index e2e6871170..7a208e511a 100644 --- a/akka-stream/src/main/scala/akka/stream/StreamRefs.scala +++ b/akka-stream/src/main/scala/akka/stream/StreamRefs.scala @@ -4,7 +4,7 @@ package akka.stream import akka.NotUsed -import akka.actor.ActorRef +import akka.actor.{ ActorRef, ActorSystem } import akka.stream.scaladsl.{ Sink, Source } import scala.language.implicitConversions @@ -14,7 +14,7 @@ import scala.language.implicitConversions */ object SinkRef { /** Implicitly converts a [[SinkRef]] to a [[Sink]]. The same can be achieved by calling `.sink` on the reference. */ - implicit def convertRefToSink[T](sinkRef: SinkRef[T]): Sink[T, NotUsed] = sinkRef.sink + implicit def convertRefToSink[T](sinkRef: SinkRef[T]): Sink[T, NotUsed] = sinkRef.sink() } /** @@ -33,9 +33,9 @@ object SinkRef { trait SinkRef[In] { /** Scala API: Get [[Sink]] underlying to this source ref. */ - def sink: Sink[In, NotUsed] + def sink(): Sink[In, NotUsed] /** Java API: Get [[javadsl.Sink]] underlying to this source ref. */ - def getSink: javadsl.Sink[In, NotUsed] + final def getSink(): javadsl.Sink[In, NotUsed] = sink().asJava } /** @@ -63,7 +63,7 @@ trait SourceRef[T] { /** Scala API: Get [[Source]] underlying to this source ref. */ def source: Source[T, NotUsed] /** Java API: Get [[javadsl.Source]] underlying to this source ref. */ - def getSource: javadsl.Source[T, NotUsed] + final def getSource: javadsl.Source[T, NotUsed] = source.asJava } // --- exceptions --- diff --git a/akka-stream/src/main/scala/akka/stream/impl/PhasedFusingActorMaterializer.scala b/akka-stream/src/main/scala/akka/stream/impl/PhasedFusingActorMaterializer.scala index 588cfb787a..25e3791dd8 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/PhasedFusingActorMaterializer.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/PhasedFusingActorMaterializer.scala @@ -24,9 +24,11 @@ import org.reactivestreams.{ Processor, Publisher, Subscriber } import scala.collection.immutable.Map import scala.concurrent.duration.FiniteDuration -import scala.concurrent.ExecutionContextExecutor +import scala.concurrent.{ Await, ExecutionContextExecutor, Future } import scala.annotation.tailrec -import akka.util.OptionVal +import akka.util.{ OptionVal, PrettyDuration } + +import scala.util.{ Failure, Success } /** * INTERNAL API @@ -431,6 +433,7 @@ private final case class SavedIslandData(islandGlobalOffset: Int, lastVisitedOff val traversalStack = new java.util.ArrayDeque[Traversal](16) traversalStack.addLast(current) + var needsFlattening = false val matValueStack = new java.util.ArrayDeque[Any](8) if (Debug) { @@ -478,7 +481,18 @@ private final case class SavedIslandData(islandGlobalOffset: Int, lastVisitedOff case compose: Compose ⇒ val second = matValueStack.removeLast() val first = matValueStack.removeLast() - val result = compose(first, second) + + val result = + if (needsFlattening && (first.isInstanceOf[FlattenMatHolder[_]] || second.isInstanceOf[FlattenMatHolder[_]])) { + (first, second) match { + case (FlattenMatHolder(f1, t1), FlattenMatHolder(f2, t2)) ⇒ + FlattenMatHolder[Any](f1.zip(f2).map({ case (left, right) ⇒ compose(left, right) })(system.dispatcher), t1) // FIXME dedicate a dispatcher thread? + case (FlattenMatHolder(f1, t1), v2) ⇒ + FlattenMatHolder(f1.map(compose(_, v2))(system.dispatcher), t1) // FIXME dedicate a dispatcher thread? + case (v1, FlattenMatHolder(f2, t2)) ⇒ + FlattenMatHolder(f2.map(compose(v1, _))(system.dispatcher), t2) // FIXME dedicate a dispatcher thread? + } + } else compose(first, second) matValueStack.addLast(result) if (Debug) println(s"COMP: $matValueStack") case PushAttributes(attr) ⇒ @@ -491,6 +505,13 @@ private final case class SavedIslandData(islandGlobalOffset: Int, lastVisitedOff islandTracking.enterIsland(tag, attributesStack.getLast) case ExitIsland ⇒ islandTracking.exitIsland() + case flatten: FlattenMat ⇒ + val prev = matValueStack.removeLast() + if (!prev.isInstanceOf[Future[_]]) throw new IllegalArgumentException("flattenMaterializedValue MUST be applied immediately after a materialized value ") + val result = FlattenMatHolder(prev.asInstanceOf[Future[Mat]], flatten.timeout) + needsFlattening = true + matValueStack.addLast(result) + if (Debug) println(s"FLTN: $matValueStack") case _ ⇒ } current = nextStep @@ -504,7 +525,23 @@ private final case class SavedIslandData(islandGlobalOffset: Int, lastVisitedOff islandTracking.allNestedIslandsReady() if (Debug) println("--- Finished materialization") - matValueStack.peekLast().asInstanceOf[Mat] + matValueStack.peekLast() match { + case FlattenMatHolder(f: Future[Mat @unchecked], t) ⇒ + f.value match { + case Some(Success(m)) ⇒ m + case Some(Failure(ex)) ⇒ throw new Exception("Flattened materialized value failed!", ex) + case None ⇒ + // last resort, await + val start = System.currentTimeMillis() + val mat = Await.result(f, t) + val stop = System.currentTimeMillis() + import scala.concurrent.duration._ + println(s"Waiting took: >>> ${PrettyDuration.format((stop - start).millis)} <<<") + mat + } + + case mat: Mat ⇒ mat + } } finally { if (isShutdown) throw shutdownWhileMaterializingFailure diff --git a/akka-stream/src/main/scala/akka/stream/impl/TraversalBuilder.scala b/akka-stream/src/main/scala/akka/stream/impl/TraversalBuilder.scala index a9f99c9f6c..601265c8ac 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/TraversalBuilder.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/TraversalBuilder.scala @@ -13,6 +13,8 @@ import akka.util.OptionVal import scala.language.existentials import scala.collection.immutable.Map.Map1 +import scala.concurrent.duration.FiniteDuration +import scala.concurrent.{ Await, Future } /** * INTERNAL API @@ -154,6 +156,12 @@ import scala.collection.immutable.Map.Map1 @InternalApi private[akka] final case class Transform(mapper: AnyFunction1) extends MaterializedValueOp { def apply(arg: Any): Any = mapper.asInstanceOf[Any ⇒ Any](arg) } +/** + * INTERNAL API + */ +@InternalApi private[akka] final case class FlattenMat(timeout: FiniteDuration) extends MaterializedValueOp +/** INTERNAL API */ +@InternalApi private[akka] final case class FlattenMatHolder[M](f: Future[M], timeout: FiniteDuration) /** * INTERNAL API @@ -365,6 +373,8 @@ import scala.collection.immutable.Map.Map1 */ def transformMat(f: AnyFunction1): TraversalBuilder + def flattenMat(timeout: FiniteDuration): TraversalBuilder + protected def internalSetAttributes(attributes: Attributes): TraversalBuilder def setAttributes(attributes: Attributes): TraversalBuilder = { @@ -480,6 +490,9 @@ import scala.collection.immutable.Map.Map1 override def transformMat(f: AnyFunction1): TraversalBuilder = copy(traversalSoFar = traversalSoFar.concat(Transform(f))) + override def flattenMat(timeout: FiniteDuration): TraversalBuilder = + copy(traversalSoFar = traversalSoFar.concat(FlattenMat(timeout))) + override def offsetOf(in: InPort): Int = inToOffset(in) override def isTraversalComplete: Boolean = true @@ -532,6 +545,9 @@ import scala.collection.immutable.Map.Map1 override def transformMat(f: AnyFunction1): TraversalBuilder = TraversalBuilder.empty().add(this, module.shape, Keep.right).transformMat(f) + override def flattenMat(timeout: FiniteDuration): TraversalBuilder = + TraversalBuilder.empty().add(this, module.shape, Keep.right).flattenMat(timeout) + override val inSlots: Int = module.shape.inlets.size override def offsetOfModule(out: OutPort): Int = 0 @@ -1050,6 +1066,15 @@ import scala.collection.immutable.Map.Map1 copy(traversalSoFar = traversalSoFar.concat(Transform(f))) } + /** + * UNSAFE API: May cause blocking DURING MATERIALIZATION. + * Use this API only in places where it is KNOWN that the flattened Future will be completed ASAP (less than a few ms, zero at best). + * WITH GREAT POWER, COMES GREAT RESPONSIBILITY. + */ + override def flattenMat(timeout: FiniteDuration): LinearTraversalBuilder = { + copy(traversalSoFar = traversalSoFar.concat(FlattenMat(timeout))) + } + /** * Wraps the builder in an island that can be materialized differently, using async boundaries to bridge * between islands. @@ -1301,6 +1326,9 @@ import scala.collection.immutable.Map.Map1 override def transformMat(f: AnyFunction1): TraversalBuilder = { copy(finalSteps = finalSteps.concat(Transform(f))) } + override def flattenMat(timeout: FiniteDuration): TraversalBuilder = { + copy(finalSteps = finalSteps.concat(FlattenMat(timeout))) + } override def makeIsland(islandTag: IslandTag): TraversalBuilder = { this.islandTag match { diff --git a/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSinkRef.scala b/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSinkRef.scala index b0b2f9eade..ecbb496012 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSinkRef.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSinkRef.scala @@ -1,49 +1,47 @@ -/** - * Copyright (C) 2018 Lightbend Inc. - */ -package akka.stream.impl.streamref - -import akka.NotUsed -import akka.annotation.InternalApi -import akka.stream.{ SinkRef, javadsl } -import akka.stream.scaladsl.Sink - -import scala.concurrent.Future -import scala.util.{ Failure, Success } - -/** - * INTERNAL API - * Allows users to directly use the SinkRef, even though we do have to go through the Future in order to be able - * to materialize it. Since we initialize the ref from within the GraphStageLogic. See [[SinkRefStageImpl]] for usage. - */ -@InternalApi -private[akka] final case class MaterializedSinkRef[In](futureSink: Future[SinkRefImpl[In]]) extends SinkRef[In] { - - override def sink: Sink[In, NotUsed] = - futureSink.value match { - - case Some(Success(ready)) ⇒ - // the normal case, since once materialization finishes, the future is guaranteed to have been completed - ready.sink - - case Some(Failure(cause)) ⇒ - // materialization failed - Sink.cancelled - - case None ⇒ - throw new Exception(s"This should not be possible! We guarantee to complete the materialized Future value when materialization finishes! Sink was: $futureSink") - // // not yet materialized -- in reality this case should not happen, since once materialization is finished, this Future is already completed - // // this impl is kept in case materialization semantics would change for some reason - // Source.fromFutureSource(futureSource.map(ref => ref.source)(ex)).mapMaterializedValue(_ ⇒ NotUsed) - } - - override def getSink: javadsl.Sink[In, NotUsed] = sink.asJava - - override def toString: String = - futureSink.value match { - case None ⇒ s"SinkRef()" - case Some(Success(ready)) ⇒ ready.toString - case Some(Failure(ex)) ⇒ s"SinkRef()" - } - -} +///** +// * Copyright (C) 2018 Lightbend Inc. +// */ +//package akka.stream.impl.streamref +// +//import akka.NotUsed +//import akka.annotation.InternalApi +//import akka.stream.{ SinkRef, javadsl } +//import akka.stream.scaladsl.{ Sink, Source } +// +//import scala.concurrent.{ Await, Future } +//import scala.util.{ Failure, Success } +//import scala.concurrent.duration._ +// +///** +// * INTERNAL API +// * Allows users to directly use the SinkRef, even though we do have to go through the Future in order to be able +// * to materialize it. Since we initialize the ref from within the GraphStageLogic. See [[SinkRefStageImpl]] for usage. +// */ +//@InternalApi +//private[akka] final case class MaterializedSinkRef[In](futureSink: Future[SinkRefImpl[In]]) extends SinkRef[In] { +// +// override def sink: Sink[In, NotUsed] = +// futureSink.value match { +// +// case Some(Success(ready)) ⇒ +// // the normal case, since once materialization finishes, the future is guaranteed to have been completed +// ready.sink +// +// case Some(Failure(cause)) ⇒ +// // materialization failed +// Sink.cancelled +// +// case None ⇒ +// ??? +// // not yet materialized, awaiting the preStart to be run... +// // Source.fromFutureSource(futureSource.map(ref => ref.source)(ex)).mapMaterializedValue(_ ⇒ NotUsed) +// } +// +// override def toString: String = +// futureSink.value match { +// case None ⇒ s"SinkRef()" +// case Some(Success(ready)) ⇒ ready.toString +// case Some(Failure(ex)) ⇒ s"SinkRef()" +// } +// +//} diff --git a/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSourceRef.scala b/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSourceRef.scala index 64d45152c4..8d606c4011 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSourceRef.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/streamref/MaterializedSourceRef.scala @@ -1,49 +1,79 @@ -/** - * Copyright (C) 2018 Lightbend Inc. - */ -package akka.stream.impl.streamref - -import akka.NotUsed -import akka.annotation.InternalApi -import akka.stream.scaladsl.Source -import akka.stream.{ SourceRef, javadsl } - -import scala.concurrent.{ ExecutionContext, Future } -import scala.util.{ Failure, Success } - -/** - * INTERNAL API - * Allows users to directly use the SourceRef, even though we do have to go through the Future in order to be able - * to materialize it. Since we initialize the ref from within the GraphStageLogic. See [[SourceRefStageImpl]] for usage. - */ -@InternalApi -private[akka] final case class MaterializedSourceRef[Out](futureSource: Future[SourceRefImpl[Out]]) extends SourceRef[Out] { - - override def source: Source[Out, NotUsed] = - futureSource.value match { - - case Some(Success(ready)) ⇒ - // the normal case, since once materialization finishes, the future is guaranteed to have been completed - ready.source - - case Some(Failure(cause)) ⇒ - // materialization failed - Source.failed(cause).named("SourceRef") - - case None ⇒ - throw new Exception(s"This should not be possible! We guarantee to complete the materialized Future value when materialization finishes! Source was: $futureSource") - // // not yet materialized -- in reality this case should not happen, since once materialization is finished, this Future is already completed - // // this impl is kept in case materialization semantics would change for some reason - // Source.fromFutureSource(futureSource.map(ref => ref.source)(ex)).mapMaterializedValue(_ ⇒ NotUsed) - } - - override def getSource: javadsl.Source[Out, NotUsed] = source.asJava - - override def toString: String = - futureSource.value match { - case None ⇒ s"SourceRef()" - case Some(Success(ready)) ⇒ ready.toString - case Some(Failure(ex)) ⇒ s"SourceRef()" - } - -} +///** +// * Copyright (C) 2018 Lightbend Inc. +// */ +//package akka.stream.impl.streamref +// +//import java.util.concurrent.atomic.AtomicReference +// +//import akka.NotUsed +//import akka.actor.ActorRef +//import akka.annotation.InternalApi +//import akka.stream.scaladsl.Source +//import akka.stream.{ OverflowStrategy, SourceRef, javadsl } +// +//import scala.concurrent.{ ExecutionContext, Future } +//import scala.util.{ Failure, Success } +// +///** +// * INTERNAL API +// * Allows users to directly use the SourceRef, even though we do have to go through the Future in order to be able +// * to materialize it. Since we initialize the ref from within the GraphStageLogic. See [[SourceRefStageImpl]] for usage. +// */ +//@InternalApi +//private[akka] final case class MaterializedSourceRef[Out](futureSource: Future[SourceRefImpl[Out]]) extends SourceRef[Out] { +// +// class State +// final case class Initializing(buffer: Vector[Out]) extends State +// final case class Initialized(ref: SourceRefImpl[Out]) extends State +// +// val it = new AtomicReference[State](Initializing(Vector.empty)) +// +// // the advanced logic here is in order to allow RUNNING a stream locally ASAP even while materialization is still in-flight (preStart has not completed futureSource) +// override def source: Source[Out, NotUsed] = +// futureSource.value match { +// +// case Some(Success(ready)) ⇒ +// // the normal case, since once materialization finishes, the future is guaranteed to have been completed +// ready.source +// +// case Some(Failure(cause)) ⇒ +// // materialization failed +// Source.failed(cause).named("SourceRef") +// +// case None ⇒ +// // not yet materialized -- in reality this case should not happen, since once materialization is finished, this Future is already completed +// // this impl is kept in case materialization semantics would change for some reason +// Source.fromFutureSource(futureSource.map(ref ⇒ ref.source)(akka.dispatch.ExecutionContexts.sameThreadExecutionContext)).mapMaterializedValue(_ ⇒ NotUsed) +// } +// +// // def forSerializationRef: SourceRef[Out] = +// // futureSource.value match { +// // case Some(Success(ready)) ⇒ +// // // the normal case, since once materialization finishes, the future is guaranteed to have been completed +// // ready +// // +// // case Some(Failure(cause)) ⇒ +// // throw new IllegalStateException("Illegal serialization attempt, this stream has never materialized the SourceRef!", cause) +// // +// // case None ⇒ +// // // preStart has not finished yet, so we need to create and serialize a proxy ref +// // val proxy = mkProxy() +// // +// // new SourceRef[Out] { +// // override def source: Source[Out, NotUsed] = +// // ??? +// // } +// // } +// +// override def toString: String = +// futureSource.value match { +// case None ⇒ s"SourceRef()" +// case Some(Success(ready)) ⇒ ready.toString +// case Some(Failure(ex)) ⇒ s"SourceRef()" +// } +// +//} +// +//case class BufferedRef() { +// +//} diff --git a/akka-stream/src/main/scala/akka/stream/impl/streamref/SinkRefImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/streamref/SinkRefImpl.scala index a4c925a252..575de4eb4c 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/streamref/SinkRefImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/streamref/SinkRefImpl.scala @@ -6,7 +6,7 @@ package akka.stream.impl.streamref import scala.language.implicitConversions import akka.Done import akka.NotUsed -import akka.actor.{ ActorRef, Terminated } +import akka.actor.{ ActorRef, ActorSystem, Terminated } import akka.annotation.InternalApi import akka.event.Logging import akka.stream._ @@ -20,10 +20,8 @@ import scala.util.Try /** INTERNAL API: Implementation class, not intended to be touched directly by end-users */ @InternalApi private[stream] final case class SinkRefImpl[In](initialPartnerRef: ActorRef) extends SinkRef[In] { - override def sink: Sink[In, NotUsed] = + override def sink(): Sink[In, NotUsed] = Sink.fromGraph(new SinkRefStageImpl[In](OptionVal.Some(initialPartnerRef))).mapMaterializedValue(_ ⇒ NotUsed) - - override def getSink: javadsl.Sink[In, NotUsed] = sink.asJava } /** @@ -35,7 +33,7 @@ private[stream] final case class SinkRefImpl[In](initialPartnerRef: ActorRef) ex @InternalApi private[stream] final class SinkRefStageImpl[In] private[akka] ( val initialPartnerRef: OptionVal[ActorRef] -) extends GraphStageWithMaterializedValue[SinkShape[In], SourceRef[In]] { +) extends GraphStageWithMaterializedValue[SinkShape[In], Future[SourceRef[In]]] { val in: Inlet[In] = Inlet[In](s"${Logging.simpleName(getClass)}($initialRefName).in") override def shape: SinkShape[In] = SinkShape.of(in) @@ -199,10 +197,9 @@ private[stream] final class SinkRefStageImpl[In] private[akka] ( } setHandler(in, this) - } - (logic, MaterializedSourceRef[In](promise.future)) + (logic, promise.future) } override def toString = s"${Logging.simpleName(getClass)}($initialRefName)" diff --git a/akka-stream/src/main/scala/akka/stream/impl/streamref/SourceRefImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/streamref/SourceRefImpl.scala index cf7a954059..a5e62d7c8b 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/streamref/SourceRefImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/streamref/SourceRefImpl.scala @@ -14,7 +14,7 @@ import akka.stream.scaladsl.Source import akka.stream.stage._ import akka.util.{ OptionVal, PrettyDuration } -import scala.concurrent.Promise +import scala.concurrent.{ Future, Promise } import scala.language.implicitConversions /** INTERNAL API: Implementation class, not intended to be touched directly by end-users */ @@ -22,8 +22,6 @@ import scala.language.implicitConversions private[stream] final case class SourceRefImpl[T](initialPartnerRef: ActorRef) extends SourceRef[T] { def source: Source[T, NotUsed] = Source.fromGraph(new SourceRefStageImpl(OptionVal.Some(initialPartnerRef))).mapMaterializedValue(_ ⇒ NotUsed) - - def getSource: javadsl.Source[T, NotUsed] = source.asJava } /** @@ -35,7 +33,7 @@ private[stream] final case class SourceRefImpl[T](initialPartnerRef: ActorRef) e @InternalApi private[stream] final class SourceRefStageImpl[Out]( val initialPartnerRef: OptionVal[ActorRef] -) extends GraphStageWithMaterializedValue[SourceShape[Out], SinkRef[Out]] { +) extends GraphStageWithMaterializedValue[SourceShape[Out], Future[SinkRef[Out]]] { stage ⇒ val out: Outlet[Out] = Outlet[Out](s"${Logging.simpleName(getClass)}.out") override def shape = SourceShape.of(out) @@ -46,7 +44,7 @@ private[stream] final class SourceRefStageImpl[Out]( case _ ⇒ "" } - override def createLogicAndMaterializedValue(inheritedAttributes: Attributes): (GraphStageLogic, SinkRef[Out]) = { + override def createLogicAndMaterializedValue(inheritedAttributes: Attributes): (GraphStageLogic, Future[SinkRef[Out]]) = { val promise = Promise[SinkRefImpl[Out]]() val logic = new TimerGraphStageLogic(shape) with StageLogging with OutHandler { @@ -226,7 +224,8 @@ private[stream] final class SourceRefStageImpl[Out]( setHandler(out, this) } - (logic, MaterializedSinkRef[Out](promise.future)) + // (logic, MaterializedSinkRef[Out](promise.future)) + (logic, promise.future) } override def toString: String = diff --git a/akka-stream/src/main/scala/akka/stream/impl/streamref/StreamRefsMaster.scala b/akka-stream/src/main/scala/akka/stream/impl/streamref/StreamRefsMaster.scala index 3d4299ea18..c6d4079050 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/streamref/StreamRefsMaster.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/streamref/StreamRefsMaster.scala @@ -3,10 +3,14 @@ */ package akka.stream.impl.streamref -import akka.actor.{ ActorSystem, ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider } +import akka.actor.{ Actor, ActorLogging, ActorPath, ActorRef, ActorRefProvider, ActorSystem, ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider, MinimalActorRef, Props, RepointableActorRef, Stash } import akka.annotation.InternalApi +import akka.event.Logging +import akka.stream.SourceRef import akka.stream.impl.SeqActorName +import scala.concurrent.Future + /** INTERNAL API */ @InternalApi private[stream] object StreamRefsMaster extends ExtensionId[StreamRefsMaster] with ExtensionIdProvider { @@ -23,9 +27,21 @@ private[stream] object StreamRefsMaster extends ExtensionId[StreamRefsMaster] wi @InternalApi private[stream] final class StreamRefsMaster(system: ExtendedActorSystem) extends Extension { + private val log = Logging(system, getClass) + private[this] val sourceRefStageNames = SeqActorName("SourceRef") // "local target" private[this] val sinkRefStageNames = SeqActorName("SinkRef") // "remote sender" + // // needed because serialization may want to serialize a ref, before we have finished materialization + // def bufferedRefFor[T](allocatedName: String, future: Future[SourceRefImpl[T]]): SourceRef[T] = { + // def mkProxyOnDemand(): ActorRef = { + // log.warning("HAVE TO CREATE PROXY!!!") + // val proxyName = allocatedName + "Proxy" + // system.actorOf(Props(new ProxyRefFor(future)), proxyName) + // } + // MaterializedSourceRef[T](future) + // } + // TODO introduce a master with which all stages running the streams register themselves? def nextSourceRefStageName(): String = @@ -35,3 +51,29 @@ private[stream] final class StreamRefsMaster(system: ExtendedActorSystem) extend sinkRefStageNames.next() } + +/** INTERNAL API */ +@InternalApi +private[akka] final class ProxyRefFor[T](futureRef: Future[SourceRefImpl[T]]) extends Actor with Stash with ActorLogging { + import context.dispatcher + import akka.pattern.pipe + + override def preStart(): Unit = { + futureRef.pipeTo(self) + } + + override def receive: Receive = { + case ref: SourceRefImpl[T] ⇒ + log.warning("REF:::: initial = " + ref.initialPartnerRef) + context become initialized(ref) + unstashAll() + + case msg ⇒ + log.warning("Stashing [{}], since target reference is still not initialized...", msg.getClass) + stash() + } + + def initialized(ref: SourceRefImpl[T]): Receive = { + case any ⇒ ??? + } +} diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala b/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala index 680acfbced..63cb82ba1d 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/Flow.scala @@ -16,6 +16,8 @@ import akka.japi.Util import java.util.Comparator import java.util.concurrent.CompletionStage +import akka.annotation.InternalApi + import scala.compat.java8.FutureConverters._ object Flow { @@ -219,6 +221,13 @@ final class Flow[-In, +Out, +Mat](delegate: scaladsl.Flow[In, Out, Mat]) extends def mapMaterializedValue[Mat2](f: function.Function[Mat, Mat2]): Flow[In, Out, Mat2] = new Flow(delegate.mapMaterializedValue(f.apply _)) + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] def flattenMaterializedValue[Mat2](timeout: FiniteDuration): Flow[In, Out, Mat2] = + new Flow(delegate.flattenMaterializedValue(timeout)) + /** * Transform this [[Flow]] by appending the given processing steps. * {{{ diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/Sink.scala b/akka-stream/src/main/scala/akka/stream/javadsl/Sink.scala index 04965e1891..a060c6be21 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/Sink.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/Sink.scala @@ -18,7 +18,10 @@ import scala.concurrent.ExecutionContext import scala.util.Try import java.util.concurrent.CompletionStage +import akka.annotation.InternalApi + import scala.compat.java8.FutureConverters._ +import scala.concurrent.duration.FiniteDuration /** Java API */ object Sink { @@ -333,6 +336,13 @@ final class Sink[-In, +Mat](delegate: scaladsl.Sink[In, Mat]) extends Graph[Sink def mapMaterializedValue[Mat2](f: function.Function[Mat, Mat2]): Sink[In, Mat2] = new Sink(delegate.mapMaterializedValue(f.apply _)) + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] def flattenMaterializedValue[Mat2](timeout: FiniteDuration): Sink[In, Mat2] = + new Sink(delegate.flattenMaterializedValue[Mat2](timeout)) + /** * Replace the attributes of this [[Sink]] with the given ones. If this Sink is a composite * of multiple graphs, new attributes on the composite will be less specific than attributes diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala b/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala index 6fccfcf3e4..f94555de2a 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/Source.scala @@ -25,6 +25,7 @@ import scala.compat.java8.OptionConverters._ import java.util.concurrent.CompletionStage import java.util.concurrent.CompletableFuture +import akka.annotation.InternalApi import akka.stream.scaladsl.Sink import scala.compat.java8.FutureConverters._ @@ -484,6 +485,13 @@ final class Source[+Out, +Mat](delegate: scaladsl.Source[Out, Mat]) extends Grap def mapMaterializedValue[Mat2](f: function.Function[Mat, Mat2]): Source[Out, Mat2] = new Source(delegate.mapMaterializedValue(f.apply _)) + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] def flattenMaterializedValue[Mat2](timeout: FiniteDuration): Source[Out, Mat2] = + new Source(delegate.flattenMaterializedValue[Mat2](timeout)) + /** * Transform this [[Source]] by appending the given processing stages. * {{{ diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala index 47b749bd68..405e5cdf19 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/Flow.scala @@ -19,7 +19,7 @@ import scala.concurrent.duration.FiniteDuration import scala.language.higherKinds import akka.stream.impl.fusing.FlattenMerge import akka.NotUsed -import akka.annotation.DoNotInherit +import akka.annotation.{ DoNotInherit, InternalApi } /** * A `Flow` is a set of stream processing steps that has one open input and one open output. @@ -114,6 +114,15 @@ final class Flow[-In, +Out, +Mat]( traversalBuilder.transformMat(f), shape) + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] override def flattenMaterializedValue[Mat2](timeout: FiniteDuration): ReprMat[Out, Mat2] = + new Flow( + traversalBuilder.flattenMat(timeout), + shape) + /** * Join this [[Flow]] to another [[Flow]], by cross connecting the inputs and outputs, creating a [[RunnableGraph]]. * {{{ @@ -2556,6 +2565,12 @@ trait FlowOpsMat[+Out, +Mat] extends FlowOps[Out, Mat] { */ def mapMaterializedValue[Mat2](f: Mat ⇒ Mat2): ReprMat[Out, Mat2] + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] def flattenMaterializedValue[Mat2](timeout: FiniteDuration): ReprMat[Out, Mat2] + /** * Materializes to `FlowMonitor[Out]` that allows monitoring of the current flow. All events are propagated * by the monitor unchanged. Note that the monitor inserts a memory barrier every time it processes an diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/Sink.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/Sink.scala index 299410b6cc..b6dae63914 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/Sink.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/Sink.scala @@ -6,6 +6,7 @@ package akka.stream.scaladsl import akka.{ Done, NotUsed } import akka.dispatch.ExecutionContexts import akka.actor.{ ActorRef, Props, Status } +import akka.annotation.InternalApi import akka.stream.actor.ActorSubscriber import akka.stream.impl.Stages.DefaultAttributes import akka.stream.impl._ @@ -19,6 +20,7 @@ import org.reactivestreams.{ Publisher, Subscriber } import scala.annotation.tailrec import scala.collection.generic.CanBuildFrom import scala.collection.immutable +import scala.concurrent.duration.FiniteDuration import scala.concurrent.{ ExecutionContext, Future } import scala.util.{ Failure, Success, Try } @@ -59,6 +61,15 @@ final class Sink[-In, +Mat]( traversalBuilder.transformMat(f.asInstanceOf[Any ⇒ Any]), shape) + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] def flattenMaterializedValue[Mat2](timeout: FiniteDuration): Sink[In, Mat2] = + new Sink( + traversalBuilder.flattenMat(timeout), + shape) + /** * Replace the attributes of this [[Sink]] with the given ones. If this Sink is a composite * of multiple graphs, new attributes on the composite will be less specific than attributes @@ -461,6 +472,10 @@ object Sink { * * See more detailed documentation on [[SourceRef]]. */ - def sourceRef[T](): Sink[T, SourceRef[T]] = - Sink.fromGraph(new SinkRefStageImpl[T](OptionVal.None)) + def sourceRef[T](): Sink[T, SourceRef[T]] = { + import scala.concurrent.duration._ + val sink = Sink.fromGraph(new SinkRefStageImpl[T](OptionVal.None)) + sink.flattenMaterializedValue[SourceRef[T]](10.seconds) + } + } diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala index b9bd8a29c2..007b0d6048 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala @@ -4,9 +4,11 @@ package akka.stream.scaladsl import java.util.concurrent.CompletionStage + import akka.util.ConstantFun import akka.{ Done, NotUsed } import akka.actor.{ ActorRef, Cancellable, Props } +import akka.annotation.InternalApi import akka.stream.actor.ActorPublisher import akka.stream.impl.Stages.DefaultAttributes import akka.stream.impl.fusing.GraphStages @@ -24,7 +26,6 @@ import scala.collection.immutable import scala.compat.java8.FutureConverters._ import scala.concurrent.duration.FiniteDuration import scala.concurrent.{ Future, Promise } - import akka.stream.impl.streamref.SourceRefStageImpl import akka.stream.stage.{ GraphStage, GraphStageWithMaterializedValue } import akka.util.OptionVal @@ -92,6 +93,13 @@ final class Source[+Out, +Mat]( override def mapMaterializedValue[Mat2](f: Mat ⇒ Mat2): ReprMat[Out, Mat2] = new Source[Out, Mat2](traversalBuilder.transformMat(f.asInstanceOf[Any ⇒ Any]), shape) + /** + * INTERNAL API: Unsafe BLOCKING flattening if current materialized value is a Future. + */ + @InternalApi + private[akka] override def flattenMaterializedValue[Mat2](timeout: FiniteDuration): ReprMat[Out, Mat2] = + new Source[Out, Mat2](traversalBuilder.flattenMat(timeout), shape) + /** * Connect this `Source` to a `Sink` and run it. The returned value is the materialized value * of the `Sink`, e.g. the `Publisher` of a [[akka.stream.scaladsl.Sink#publisher]]. @@ -617,6 +625,9 @@ object Source { * * See more detailed documentation on [[SinkRef]]. */ - def sinkRef[T](): Source[T, SinkRef[T]] = - Source.fromGraph(new SourceRefStageImpl[T](OptionVal.None)) + def sinkRef[T](): Source[T, SinkRef[T]] = { + import scala.concurrent.duration._ + val value: Source[T, Future[SinkRef[T]]] = Source.fromGraph(new SourceRefStageImpl[T](OptionVal.None)) + value.flattenMaterializedValue[SinkRef[T]](1.second) + } } diff --git a/akka-stream/src/main/scala/akka/stream/serialization/StreamRefSerializer.scala b/akka-stream/src/main/scala/akka/stream/serialization/StreamRefSerializer.scala index 05eee88723..021f2d14da 100644 --- a/akka-stream/src/main/scala/akka/stream/serialization/StreamRefSerializer.scala +++ b/akka-stream/src/main/scala/akka/stream/serialization/StreamRefSerializer.scala @@ -7,10 +7,10 @@ import akka.protobuf.ByteString import akka.actor.ExtendedActorSystem import akka.annotation.InternalApi import akka.serialization.{ BaseSerializer, Serialization, SerializationExtension, SerializerWithStringManifest } -import akka.stream.StreamRefMessages +import akka.stream.{ SourceRef, StreamRefMessages } import akka.stream.impl.streamref._ -import scala.concurrent.duration._ +import scala.concurrent.duration._ import scala.concurrent.Await /** INTERNAL API */ @@ -39,9 +39,9 @@ private[akka] final class StreamRefSerializer(val system: ExtendedActorSystem) e case _: StreamRefsProtocol.RemoteStreamCompleted ⇒ RemoteSinkCompletedManifest // refs case _: SourceRefImpl[_] ⇒ SourceRefManifest - case _: MaterializedSourceRef[_] ⇒ SourceRefManifest + // case _: MaterializedSourceRef[_] ⇒ SourceRefManifest case _: SinkRefImpl[_] ⇒ SinkRefManifest - case _: MaterializedSinkRef[_] ⇒ SinkRefManifest + // case _: MaterializedSinkRef[_] ⇒ SinkRefManifest } override def toBinary(o: AnyRef): Array[Byte] = o match { @@ -55,9 +55,9 @@ private[akka] final class StreamRefSerializer(val system: ExtendedActorSystem) e case d: StreamRefsProtocol.RemoteStreamCompleted ⇒ serializeRemoteSinkCompleted(d).toByteArray // refs case ref: SinkRefImpl[_] ⇒ serializeSinkRef(ref).toByteArray - case ref: MaterializedSinkRef[_] ⇒ serializeSinkRef(Await.result(ref.futureSink, 100.millis)).toByteArray + // case ref: MaterializedSinkRef[_] ⇒ ??? // serializeSinkRef(ref).toByteArray case ref: SourceRefImpl[_] ⇒ serializeSourceRef(ref).toByteArray - case ref: MaterializedSourceRef[_] ⇒ serializeSourceRef(Await.result(ref.futureSource, 100.millis)).toByteArray + // case ref: MaterializedSourceRef[_] ⇒ serializeSourceRef(ref.).toByteArray } override def fromBinary(bytes: Array[Byte], manifest: String): AnyRef = manifest match {