diff --git a/akka-docs-dev/rst/java/stream-quickstart.rst b/akka-docs-dev/rst/java/stream-quickstart.rst index 0b16788b12..5cb094d886 100644 --- a/akka-docs-dev/rst/java/stream-quickstart.rst +++ b/akka-docs-dev/rst/java/stream-quickstart.rst @@ -19,12 +19,12 @@ Here's the data model we'll be working with throughout the quickstart examples: Transforming and consuming simple streams ----------------------------------------- -In order to prepare our environment by creating an :class:`ActorSystem` and :class:`FlowMaterializer`, +In order to prepare our environment by creating an :class:`ActorSystem` and :class:`ActorFlowMaterializer`, which will be responsible for materializing and running the streams we are about to create: .. includecode:: ../../../akka-samples/akka-docs-java-lambda/src/test/java/docs/stream/TwitterStreamQuickstartDocTest.java#materializer-setup -The :class:`FlowMaterializer` can optionally take :class:`MaterializerSettings` which can be used to define +The :class:`ActorFlowMaterializer` can optionally take :class:`ActorFlowMaterializerSettings` which can be used to define materialization properties, such as default buffer sizes (see also :ref:`stream-buffering-explained-scala`), the dispatcher to be used by the pipeline etc. These can be overridden on an element-by-element basis or for an entire section, but this will be discussed in depth in :ref:`stream-section-configuration`. @@ -55,8 +55,8 @@ or by using the shorthand version (which are defined only for the most popular s .. includecode:: ../../../akka-samples/akka-docs-java-lambda/src/test/java/docs/stream/TwitterStreamQuickstartDocTest.java#authors-foreach-println -Materializing and running a stream always requires a :class:`FlowMaterializer` to be in implicit scope (or passed in explicitly, -like this: ``.run(mat)``). +Materializing and running a stream always requires a :class:`FlowMaterializer` to be passed in explicitly, +like this: ``.run(mat)``. Flattening sequences in streams ------------------------------- @@ -141,7 +141,7 @@ First, we prepare the :class:`FoldSink` which will be used to sum all ``Integer` Next we connect the ``tweets`` stream though a ``map`` step which converts each tweet into the number ``1``, finally we connect the flow ``to`` the previously prepared Sink. Notice that this step does *not* yet materialize the processing pipeline, it merely prepares the description of the Flow, which is now connected to a Sink, and therefore can -be ``run()``, as indicated by its type: :class:`RunnableFlow`. Next we call ``run()`` which uses the implicit :class:`FlowMaterializer` +be ``run()``, as indicated by its type: :class:`RunnableFlow`. Next we call ``run()`` which uses the implicit :class:`ActorFlowMaterializer` to materialize and run the flow. The value returned by calling ``run()`` on a ``RunnableFlow`` or ``FlowGraph`` is ``MaterializedMap``, which can be used to retrieve materialized values from the running stream. diff --git a/akka-docs-dev/rst/scala/code/docs/http/HttpServerExampleSpec.scala b/akka-docs-dev/rst/scala/code/docs/http/HttpServerExampleSpec.scala index 5a6a37e1a0..1ca71c90c5 100644 --- a/akka-docs-dev/rst/scala/code/docs/http/HttpServerExampleSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/http/HttpServerExampleSpec.scala @@ -16,10 +16,10 @@ class HttpServerExampleSpec "binding example" in { //#bind-example import akka.http.Http - import akka.stream.FlowMaterializer + import akka.stream.ActorFlowMaterializer implicit val system = ActorSystem() - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val serverBinding = Http(system).bind(interface = "localhost", port = 8080) serverBinding.connections.foreach { connection => // foreach materializes the source @@ -30,10 +30,10 @@ class HttpServerExampleSpec "full-server-example" in { import akka.http.Http - import akka.stream.FlowMaterializer + import akka.stream.ActorFlowMaterializer implicit val system = ActorSystem() - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val serverBinding = Http(system).bind(interface = "localhost", port = 8080) diff --git a/akka-docs-dev/rst/scala/code/docs/http/server/ExceptionHandlerExamplesSpec.scala b/akka-docs-dev/rst/scala/code/docs/http/server/ExceptionHandlerExamplesSpec.scala index 4ccbf5d277..c5735933a5 100644 --- a/akka-docs-dev/rst/scala/code/docs/http/server/ExceptionHandlerExamplesSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/http/server/ExceptionHandlerExamplesSpec.scala @@ -6,7 +6,7 @@ package docs.http.server import akka.actor.ActorSystem import akka.http.server.Route -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer object MyHandler { //# example-1 @@ -27,7 +27,7 @@ object MyHandler { object MyApp { implicit val system = ActorSystem() import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() def handler = Route.handlerFlow(``) } diff --git a/akka-docs-dev/rst/scala/code/docs/http/server/RejectionHandlerExamplesSpec.scala b/akka-docs-dev/rst/scala/code/docs/http/server/RejectionHandlerExamplesSpec.scala index 5c77a82888..b56c569a3f 100644 --- a/akka-docs-dev/rst/scala/code/docs/http/server/RejectionHandlerExamplesSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/http/server/RejectionHandlerExamplesSpec.scala @@ -5,7 +5,7 @@ package docs.http.server import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.http.server.{ Route, MissingCookieRejection } @@ -26,7 +26,7 @@ object MyRejectionHandler { object MyApp { implicit val system = ActorSystem() import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() def handler = Route.handlerFlow(``) } diff --git a/akka-docs-dev/rst/scala/code/docs/stream/ActorPublisherDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/ActorPublisherDocSpec.scala index b1d49778c9..58c929c145 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/ActorPublisherDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/ActorPublisherDocSpec.scala @@ -5,7 +5,7 @@ package docs.stream import scala.annotation.tailrec import akka.actor.Props -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.actor.ActorPublisher import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Source @@ -70,7 +70,7 @@ object ActorPublisherDocSpec { class ActorPublisherDocSpec extends AkkaSpec { import ActorPublisherDocSpec._ - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "illustrate usage of ActorPublisher" in { def println(s: String): Unit = diff --git a/akka-docs-dev/rst/scala/code/docs/stream/ActorSubscriberDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/ActorSubscriberDocSpec.scala index fc4a8ef46d..bb5dccde98 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/ActorSubscriberDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/ActorSubscriberDocSpec.scala @@ -9,7 +9,7 @@ import akka.actor.Props import akka.routing.ActorRefRoutee import akka.routing.RoundRobinRoutingLogic import akka.routing.Router -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.actor.ActorSubscriber import akka.stream.actor.ActorSubscriberMessage import akka.stream.actor.MaxInFlightRequestStrategy @@ -72,7 +72,7 @@ object ActorSubscriberDocSpec { class ActorSubscriberDocSpec extends AkkaSpec { import ActorSubscriberDocSpec._ - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "illustrate usage of ActorSubscriber" in { val replyTo = testActor diff --git a/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala index df20a65c2b..5c6570b4f1 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/FlexiDocSpec.scala @@ -3,7 +3,7 @@ */ package docs.stream -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl._ import akka.stream.testkit.AkkaSpec @@ -15,7 +15,7 @@ import scala.util.control.NoStackTrace class FlexiDocSpec extends AkkaSpec { implicit val ec = system.dispatcher - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "implement zip using readall" in { //#fleximerge-zip-readall diff --git a/akka-docs-dev/rst/scala/code/docs/stream/FlowDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/FlowDocSpec.scala index 07982dd809..f312b9da72 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/FlowDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/FlowDocSpec.scala @@ -14,10 +14,10 @@ class FlowDocSpec extends AkkaSpec { implicit val ec = system.dispatcher //#imports - import akka.stream.FlowMaterializer + import akka.stream.ActorFlowMaterializer //#imports - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "source is immutable" in { //#source-immutable diff --git a/akka-docs-dev/rst/scala/code/docs/stream/FlowGraphDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/FlowGraphDocSpec.scala index 2dddeee33e..00d0dafb34 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/FlowGraphDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/FlowGraphDocSpec.scala @@ -3,7 +3,7 @@ */ package docs.stream -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Broadcast import akka.stream.scaladsl.Flow import akka.stream.scaladsl.FlowGraph @@ -22,7 +22,7 @@ class FlowGraphDocSpec extends AkkaSpec { implicit val ec = system.dispatcher - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "build simple graph" in { //format: OFF diff --git a/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala index 4561a43509..99bc1fd714 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/FlowStagesSpec.scala @@ -1,6 +1,6 @@ package docs.stream -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.{ RunnableFlow, Sink, Source, Flow } import akka.stream.stage.PushPullStage import akka.stream.testkit.AkkaSpec @@ -14,7 +14,7 @@ class FlowStagesSpec extends AkkaSpec { import akka.stream.stage._ //#import-stage - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "stages demo" must { diff --git a/akka-docs-dev/rst/scala/code/docs/stream/GraphCyclesSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/GraphCyclesSpec.scala index 09585244cc..f349d78e77 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/GraphCyclesSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/GraphCyclesSpec.scala @@ -1,12 +1,12 @@ package docs.stream -import akka.stream.{ OverflowStrategy, FlowMaterializer } +import akka.stream.{ OverflowStrategy, ActorFlowMaterializer } import akka.stream.scaladsl._ import akka.stream.testkit.AkkaSpec class GraphCyclesSpec extends AkkaSpec { - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "Cycle demonstration" must { val source = Source(() => Iterator.from(0)) diff --git a/akka-docs-dev/rst/scala/code/docs/stream/IntegrationDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/IntegrationDocSpec.scala index f5a602f57e..6414f6e480 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/IntegrationDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/IntegrationDocSpec.scala @@ -7,7 +7,7 @@ import scala.concurrent.duration._ import akka.stream.testkit.AkkaSpec import akka.stream.scaladsl.Source import java.util.Date -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import scala.concurrent.Future import akka.stream.scaladsl.RunnableFlow import akka.stream.scaladsl.Sink @@ -20,7 +20,7 @@ import akka.pattern.ask import akka.util.Timeout import akka.stream.scaladsl.OperationAttributes import scala.concurrent.ExecutionContext -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import java.util.concurrent.atomic.AtomicInteger object IntegrationDocSpec { @@ -117,7 +117,7 @@ class IntegrationDocSpec extends AkkaSpec(IntegrationDocSpec.config) { import TwitterStreamQuickstartDocSpec._ import IntegrationDocSpec._ - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "calling external service with mapAsync" in { val probe = TestProbe() @@ -301,8 +301,8 @@ class IntegrationDocSpec extends AkkaSpec(IntegrationDocSpec.config) { implicit val blockingExecutionContext = system.dispatchers.lookup("blocking-dispatcher") val service = new SometimesSlowService - implicit val mat = FlowMaterializer( - MaterializerSettings(system).withInputBuffer(initialSize = 4, maxSize = 4)) + implicit val mat = ActorFlowMaterializer( + ActorFlowMaterializerSettings(system).withInputBuffer(initialSize = 4, maxSize = 4)) Source(List("a", "B", "C", "D", "e", "F", "g", "H", "i", "J")) .map(elem => { println(s"before: $elem"); elem }) @@ -333,8 +333,8 @@ class IntegrationDocSpec extends AkkaSpec(IntegrationDocSpec.config) { implicit val blockingExecutionContext = system.dispatchers.lookup("blocking-dispatcher") val service = new SometimesSlowService - implicit val mat = FlowMaterializer( - MaterializerSettings(system).withInputBuffer(initialSize = 4, maxSize = 4)) + implicit val mat = ActorFlowMaterializer( + ActorFlowMaterializerSettings(system).withInputBuffer(initialSize = 4, maxSize = 4)) Source(List("a", "B", "C", "D", "e", "F", "g", "H", "i", "J")) .map(elem => { println(s"before: $elem"); elem }) diff --git a/akka-docs-dev/rst/scala/code/docs/stream/ReactiveStreamsDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/ReactiveStreamsDocSpec.scala index 81c290502f..7b5d82cbbc 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/ReactiveStreamsDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/ReactiveStreamsDocSpec.scala @@ -3,7 +3,7 @@ */ package docs.stream -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Flow import akka.stream.testkit.AkkaSpec import akka.stream.scaladsl.Sink @@ -13,7 +13,7 @@ import akka.stream.scaladsl.Source class ReactiveStreamsDocSpec extends AkkaSpec { import TwitterStreamQuickstartDocSpec._ - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() //#imports import org.reactivestreams.Publisher diff --git a/akka-docs-dev/rst/scala/code/docs/stream/StreamBuffersRateSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/StreamBuffersRateSpec.scala index 0b0da58add..3e21feb995 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/StreamBuffersRateSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/StreamBuffersRateSpec.scala @@ -1,11 +1,11 @@ package docs.stream -import akka.stream.{ OverflowStrategy, MaterializerSettings, FlowMaterializer } +import akka.stream.{ OverflowStrategy, ActorFlowMaterializerSettings, ActorFlowMaterializer } import akka.stream.scaladsl._ import akka.stream.testkit.AkkaSpec class StreamBuffersRateSpec extends AkkaSpec { - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "Demonstrate pipelining" in { def println(s: Any) = () @@ -20,8 +20,8 @@ class StreamBuffersRateSpec extends AkkaSpec { "Demonstrate buffer sizes" in { //#materializer-buffer - val materializer = FlowMaterializer( - MaterializerSettings(system) + val materializer = ActorFlowMaterializer( + ActorFlowMaterializerSettings(system) .withInputBuffer( initialSize = 64, maxSize = 64)) diff --git a/akka-docs-dev/rst/scala/code/docs/stream/StreamPartialFlowGraphDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/StreamPartialFlowGraphDocSpec.scala index 4d5194e838..1bd7f605e8 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/StreamPartialFlowGraphDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/StreamPartialFlowGraphDocSpec.scala @@ -3,7 +3,7 @@ */ package docs.stream -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Broadcast import akka.stream.scaladsl.Flow import akka.stream.scaladsl.FlowGraph @@ -25,7 +25,7 @@ class StreamPartialFlowGraphDocSpec extends AkkaSpec { implicit val ec = system.dispatcher - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "build with open ports" in { // format: OFF diff --git a/akka-docs-dev/rst/scala/code/docs/stream/StreamTcpDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/StreamTcpDocSpec.scala index dea4949424..15040bd56c 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/StreamTcpDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/StreamTcpDocSpec.scala @@ -21,12 +21,12 @@ class StreamTcpDocSpec extends AkkaSpec { implicit val ec = system.dispatcher //#setup - import akka.stream.FlowMaterializer + import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.StreamTcp import akka.stream.scaladsl.StreamTcp._ implicit val sys = ActorSystem("stream-tcp-system") - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() //#setup val localhost = new InetSocketAddress("127.0.0.1", 8888) diff --git a/akka-docs-dev/rst/scala/code/docs/stream/TwitterStreamQuickstartDocSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/TwitterStreamQuickstartDocSpec.scala index 1e8f346c61..9e31402211 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/TwitterStreamQuickstartDocSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/TwitterStreamQuickstartDocSpec.scala @@ -6,7 +6,7 @@ package docs.stream //#imports import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.OverflowStrategy import akka.stream.scaladsl.Broadcast import akka.stream.scaladsl.Flow @@ -66,11 +66,11 @@ class TwitterStreamQuickstartDocSpec extends AkkaSpec { trait Example1 { //#materializer-setup implicit val system = ActorSystem("reactive-tweets") - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() //#materializer-setup } - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "filter and map" in { //#authors-filter-map diff --git a/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeCollectingMetrics.scala b/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeCollectingMetrics.scala index 55638d809f..aac448b04f 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeCollectingMetrics.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeCollectingMetrics.scala @@ -1,6 +1,6 @@ package docs.stream.cookbook -import akka.stream.{ MaterializerSettings, FlowMaterializer } +import akka.stream.{ ActorFlowMaterializerSettings, ActorFlowMaterializer } import akka.stream.scaladsl._ import akka.stream.testkit.StreamTestKit import akka.stream.testkit.StreamTestKit.{ SubscriberProbe, PublisherProbe } @@ -11,7 +11,7 @@ import scala.concurrent.duration._ class RecipeCollectingMetrics extends RecipeSpec { import HoldOps._ - implicit val m2 = FlowMaterializer(MaterializerSettings(system).withInputBuffer(1, 1)) + implicit val m2 = ActorFlowMaterializer(ActorFlowMaterializerSettings(system).withInputBuffer(1, 1)) "Recipe for periodically collecting metrics" must { diff --git a/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeSpec.scala b/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeSpec.scala index 4f0f7273be..c7056390db 100644 --- a/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeSpec.scala +++ b/akka-docs-dev/rst/scala/code/docs/stream/cookbook/RecipeSpec.scala @@ -1,11 +1,11 @@ package docs.stream.cookbook -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec trait RecipeSpec extends AkkaSpec { - implicit val m = FlowMaterializer() + implicit val m = ActorFlowMaterializer() type Message = String type Trigger = Unit type Job = String diff --git a/akka-docs-dev/rst/scala/stream-flows-and-basics.rst b/akka-docs-dev/rst/scala/stream-flows-and-basics.rst index 9f3d10f81a..f961d89e84 100644 --- a/akka-docs-dev/rst/scala/stream-flows-and-basics.rst +++ b/akka-docs-dev/rst/scala/stream-flows-and-basics.rst @@ -190,7 +190,7 @@ well-known sinks, such as ``foreach(el => )`` (being an alias to ``runWith(Sink. Materialization is currently performed synchronously on the materializing thread. Tha actual stream processing is handled by :ref:`Actors actor-scala` started up during the streams materialization, which will be running on the thread pools they have been configured to run on - which defaults to the dispatcher set in -:class:`MaterializationSettings` while constructing the :class:`FlowMaterializer`. +:class:`MaterializationSettings` while constructing the :class:`ActorFlowMaterializer`. .. note:: Reusing *instances* of linear computation stages (Source, Sink, Flow) inside FlowGraphs is legal, diff --git a/akka-docs-dev/rst/scala/stream-integrations.rst b/akka-docs-dev/rst/scala/stream-integrations.rst index e6af709ced..2ae029b74a 100644 --- a/akka-docs-dev/rst/scala/stream-integrations.rst +++ b/akka-docs-dev/rst/scala/stream-integrations.rst @@ -254,7 +254,7 @@ is ``completed`` before ``g``, but still emitted afterwards. The numbers in parenthesis illustrates how many calls that are in progress at the same time. Here the downstream demand and thereby the number of concurrent -calls are limited by the buffer size (4) of the :class:`MaterializerSettings`. +calls are limited by the buffer size (4) of the :class:`ActorFlowMaterializerSettings`. Here is how we can use the same service with ``mapAsyncUnordered``: @@ -310,7 +310,7 @@ Note that ``after`` lines are not in the same order as the ``before`` lines. For The numbers in parenthesis illustrates how many calls that are in progress at the same time. Here the downstream demand and thereby the number of concurrent -calls are limited by the buffer size (4) of the :class:`MaterializerSettings`. +calls are limited by the buffer size (4) of the :class:`ActorFlowMaterializerSettings`. .. _reactive-streams-integration-scala: diff --git a/akka-docs-dev/rst/scala/stream-quickstart.rst b/akka-docs-dev/rst/scala/stream-quickstart.rst index 5a2bb97b3c..6b33a2e6e5 100644 --- a/akka-docs-dev/rst/scala/stream-quickstart.rst +++ b/akka-docs-dev/rst/scala/stream-quickstart.rst @@ -19,12 +19,12 @@ Here's the data model we'll be working with throughout the quickstart examples: Transforming and consuming simple streams ----------------------------------------- -In order to prepare our environment by creating an :class:`ActorSystem` and :class:`FlowMaterializer`, +In order to prepare our environment by creating an :class:`ActorSystem` and :class:`ActorFlowMaterializer`, which will be responsible for materializing and running the streams we are about to create: .. includecode:: code/docs/stream/TwitterStreamQuickstartDocSpec.scala#materializer-setup -The :class:`FlowMaterializer` can optionally take :class:`MaterializerSettings` which can be used to define +The :class:`ActorFlowMaterializer` can optionally take :class:`ActorFlowMaterializerSettings` which can be used to define materialization properties, such as default buffer sizes (see also :ref:`stream-buffering-explained-scala`), the dispatcher to be used by the pipeline etc. These can be overridden on an element-by-element basis or for an entire section, but this will be discussed in depth in :ref:`stream-section-configuration`. @@ -146,7 +146,7 @@ First, we prepare the :class:`FoldSink` which will be used to sum all ``Int`` el Next we connect the ``tweets`` stream though a ``map`` step which converts each tweet into the number ``1``, finally we connect the flow ``to`` the previously prepared Sink. Notice that this step does *not* yet materialize the processing pipeline, it merely prepares the description of the Flow, which is now connected to a Sink, and therefore can -be ``run()``, as indicated by its type: :class:`RunnableFlow`. Next we call ``run()`` which uses the implicit :class:`FlowMaterializer` +be ``run()``, as indicated by its type: :class:`RunnableFlow`. Next we call ``run()`` which uses the implicit :class:`ActorFlowMaterializer` to materialize and run the flow. The value returned by calling ``run()`` on a ``RunnableFlow`` or ``FlowGraph`` is ``MaterializedMap``, which can be used to retrieve materialized values from the running stream. diff --git a/akka-docs-dev/rst/scala/stream-rate.rst b/akka-docs-dev/rst/scala/stream-rate.rst index 5402dcb4d1..d59cb82c68 100644 --- a/akka-docs-dev/rst/scala/stream-rate.rst +++ b/akka-docs-dev/rst/scala/stream-rate.rst @@ -62,7 +62,7 @@ to a level that throughput requirements of the application require. Default buff akka.stream.materializer.max-input-buffer-size = 16 -Alternatively they can be set by passing a :class:`MaterializerSettings` to the materializer: +Alternatively they can be set by passing a :class:`ActorFlowMaterializerSettings` to the materializer: .. includecode:: code/docs/stream/StreamBuffersRateSpec.scala#materializer-buffer diff --git a/akka-http-core/src/main/java/akka/http/model/japi/Http.java b/akka-http-core/src/main/java/akka/http/model/japi/Http.java index e7ed550547..aa44a8a968 100644 --- a/akka-http-core/src/main/java/akka/http/model/japi/Http.java +++ b/akka-http-core/src/main/java/akka/http/model/japi/Http.java @@ -6,7 +6,6 @@ package akka.http.model.japi; import akka.actor.ActorSystem; import akka.http.HttpExt; -import akka.stream.MaterializerSettings; public final class Http { private Http(){} diff --git a/akka-http-core/src/main/scala/akka/http/engine/rendering/RenderSupport.scala b/akka-http-core/src/main/scala/akka/http/engine/rendering/RenderSupport.scala index baa990302c..1bc94bb29e 100644 --- a/akka-http-core/src/main/scala/akka/http/engine/rendering/RenderSupport.scala +++ b/akka-http-core/src/main/scala/akka/http/engine/rendering/RenderSupport.scala @@ -5,7 +5,7 @@ package akka.http.engine.rendering import akka.parboiled2.CharUtils -import akka.stream.impl.ActorBasedFlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.util.ByteString import akka.event.LoggingAdapter import akka.stream.scaladsl._ @@ -34,7 +34,7 @@ private object RenderSupport { // allows us to not take a FlowMaterializer but delegate the cancellation to the point when the whole stream // materializes private case class CancelSecond[T](first: Source[T], second: Source[T]) extends SimpleActorFlowSource[T] { - override def attach(flowSubscriber: Subscriber[T], materializer: ActorBasedFlowMaterializer, flowName: String): Unit = { + override def attach(flowSubscriber: Subscriber[T], materializer: ActorFlowMaterializer, flowName: String): Unit = { first.to(Sink(flowSubscriber)).run()(materializer) second.to(Sink.cancelled).run()(materializer) } diff --git a/akka-http-core/src/main/scala/akka/http/model/japi/Accessors.scala b/akka-http-core/src/main/scala/akka/http/model/japi/Accessors.scala index a80599a646..422fad8363 100644 --- a/akka-http-core/src/main/scala/akka/http/model/japi/Accessors.scala +++ b/akka-http-core/src/main/scala/akka/http/model/japi/Accessors.scala @@ -5,7 +5,6 @@ package akka.http.model.japi import akka.http.model -import akka.stream.MaterializerSettings /** * INTERNAL API diff --git a/akka-http-core/src/main/scala/akka/http/util/StreamUtils.scala b/akka-http-core/src/main/scala/akka/http/util/StreamUtils.scala index c3c9b8e4cb..7307d89ae7 100644 --- a/akka-http-core/src/main/scala/akka/http/util/StreamUtils.scala +++ b/akka-http-core/src/main/scala/akka/http/util/StreamUtils.scala @@ -14,6 +14,7 @@ import scala.concurrent.{ ExecutionContext, Future } import scala.util.Try import akka.actor.Props import akka.http.model.RequestEntity +import akka.stream.ActorFlowMaterializer import akka.stream.FlowMaterializer import akka.stream.impl.Ast.AstNode import akka.stream.impl.Ast.StageFactory @@ -162,7 +163,7 @@ private[http] object StreamUtils { def fromInputStreamSource(inputStream: InputStream, defaultChunkSize: Int = 65536): Source[ByteString] = { import akka.stream.impl._ - def props(materializer: ActorBasedFlowMaterializer): Props = { + def props(materializer: ActorFlowMaterializer): Props = { val iterator = new Iterator[ByteString] { var finished = false def hasNext: Boolean = !finished @@ -182,11 +183,11 @@ private[http] object StreamUtils { } new AtomicBoolean(false) with SimpleActorFlowSource[ByteString] { - override def attach(flowSubscriber: Subscriber[ByteString], materializer: ActorBasedFlowMaterializer, flowName: String): Unit = + override def attach(flowSubscriber: Subscriber[ByteString], materializer: ActorFlowMaterializer, flowName: String): Unit = create(materializer, flowName)._1.subscribe(flowSubscriber) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String): (Publisher[ByteString], Unit) = + override def create(materializer: ActorFlowMaterializer, flowName: String): (Publisher[ByteString], Unit) = if (!getAndSet(true)) { val ref = materializer.actorOf(props(materializer), name = s"$flowName-0-InputStream-source") val publisher = ActorPublisher[ByteString](ref) @@ -204,10 +205,10 @@ private[http] object StreamUtils { import akka.stream.impl._ val original = other.asInstanceOf[ActorFlowSource[T]] new AtomicBoolean(false) with SimpleActorFlowSource[T] { - override def attach(flowSubscriber: Subscriber[T], materializer: ActorBasedFlowMaterializer, flowName: String): Unit = + override def attach(flowSubscriber: Subscriber[T], materializer: ActorFlowMaterializer, flowName: String): Unit = create(materializer, flowName)._1.subscribe(flowSubscriber) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String): (Publisher[T], Unit) = + override def create(materializer: ActorFlowMaterializer, flowName: String): (Publisher[T], Unit) = if (!getAndSet(true)) (original.create(materializer, flowName)._1, ()) else (ErrorPublisher(new IllegalStateException("One time source can only be instantiated once"), "failed").asInstanceOf[Publisher[T]], ()) } diff --git a/akka-http-core/src/test/scala/akka/http/ClientServerSpec.scala b/akka-http-core/src/test/scala/akka/http/ClientServerSpec.scala index c27fb5c429..745a59b192 100644 --- a/akka-http-core/src/test/scala/akka/http/ClientServerSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/ClientServerSpec.scala @@ -14,7 +14,7 @@ import org.scalatest.{ BeforeAndAfterAll, Matchers, WordSpec } import akka.actor.ActorSystem import akka.stream.scaladsl.StreamTcp import akka.stream.BindFailedException -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.StreamTestKit import akka.stream.testkit.StreamTestKit.{ PublisherProbe, SubscriberProbe } import akka.stream.scaladsl._ @@ -34,7 +34,7 @@ class ClientServerSpec extends WordSpec with Matchers with BeforeAndAfterAll { implicit val system = ActorSystem(getClass.getSimpleName, testConf) import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "The low-level HTTP infrastructure" should { diff --git a/akka-http-core/src/test/scala/akka/http/TestClient.scala b/akka-http-core/src/test/scala/akka/http/TestClient.scala index f42aaed86b..4bfeac002e 100644 --- a/akka-http-core/src/test/scala/akka/http/TestClient.scala +++ b/akka-http-core/src/test/scala/akka/http/TestClient.scala @@ -7,7 +7,7 @@ package akka.http import com.typesafe.config.{ Config, ConfigFactory } import scala.util.{ Failure, Success } import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.{ Sink, Source } import akka.http.model._ @@ -17,7 +17,7 @@ object TestClient extends App { akka.log-dead-letters = off """) implicit val system = ActorSystem("ServerTest", testConf) - implicit val fm = FlowMaterializer() + implicit val fm = ActorFlowMaterializer() import system.dispatcher val host = "spray.io" diff --git a/akka-http-core/src/test/scala/akka/http/TestServer.scala b/akka-http-core/src/test/scala/akka/http/TestServer.scala index 645c15f47d..15fc6bc8b5 100644 --- a/akka-http-core/src/test/scala/akka/http/TestServer.scala +++ b/akka-http-core/src/test/scala/akka/http/TestServer.scala @@ -6,7 +6,7 @@ package akka.http import akka.actor.ActorSystem import akka.http.model._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Flow import com.typesafe.config.{ ConfigFactory, Config } import HttpMethods._ @@ -17,7 +17,7 @@ object TestServer extends App { akka.log-dead-letters = off """) implicit val system = ActorSystem("ServerTest", testConf) - implicit val fm = FlowMaterializer() + implicit val fm = ActorFlowMaterializer() val binding = Http().bind(interface = "localhost", port = 8080) diff --git a/akka-http-core/src/test/scala/akka/http/engine/client/HttpClientSpec.scala b/akka-http-core/src/test/scala/akka/http/engine/client/HttpClientSpec.scala index 510b3b9490..d257a2741b 100644 --- a/akka-http-core/src/test/scala/akka/http/engine/client/HttpClientSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/engine/client/HttpClientSpec.scala @@ -8,7 +8,7 @@ import java.net.InetSocketAddress import org.scalatest.Inside import akka.util.ByteString import akka.event.NoLogging -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.stream.scaladsl._ import akka.http.model.HttpEntity._ @@ -18,7 +18,7 @@ import akka.http.model.headers._ import akka.http.util._ class HttpClientSpec extends AkkaSpec("akka.loggers = []\n akka.loglevel = OFF") with Inside { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "The client implementation" should { diff --git a/akka-http-core/src/test/scala/akka/http/engine/parsing/RequestParserSpec.scala b/akka-http-core/src/test/scala/akka/http/engine/parsing/RequestParserSpec.scala index ad92cd0ea1..8a3caba0f5 100644 --- a/akka-http-core/src/test/scala/akka/http/engine/parsing/RequestParserSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/engine/parsing/RequestParserSpec.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.Matcher import akka.stream.scaladsl._ import akka.stream.scaladsl.OperationAttributes._ import akka.stream.FlattenStrategy -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.util.ByteString import akka.actor.ActorSystem import akka.http.util._ @@ -37,7 +37,7 @@ class RequestParserSpec extends FreeSpec with Matchers with BeforeAndAfterAll { import system.dispatcher val BOLT = HttpMethod.custom("BOLT", safe = false, idempotent = true, entityAccepted = true) - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "The request parsing logic should" - { "properly parse a request" - { diff --git a/akka-http-core/src/test/scala/akka/http/engine/parsing/ResponseParserSpec.scala b/akka-http-core/src/test/scala/akka/http/engine/parsing/ResponseParserSpec.scala index eb067d749d..22091e39bc 100644 --- a/akka-http-core/src/test/scala/akka/http/engine/parsing/ResponseParserSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/engine/parsing/ResponseParserSpec.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.Matcher import akka.stream.scaladsl._ import akka.stream.scaladsl.OperationAttributes._ import akka.stream.FlattenStrategy -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.util.ByteString import akka.actor.ActorSystem import akka.http.util._ @@ -34,7 +34,7 @@ class ResponseParserSpec extends FreeSpec with Matchers with BeforeAndAfterAll { implicit val system = ActorSystem(getClass.getSimpleName, testConf) import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val ServerOnTheMove = StatusCodes.custom(331, "Server on the move") "The response parsing logic should" - { diff --git a/akka-http-core/src/test/scala/akka/http/engine/rendering/RequestRendererSpec.scala b/akka-http-core/src/test/scala/akka/http/engine/rendering/RequestRendererSpec.scala index b6eb5deace..263e4ac119 100644 --- a/akka-http-core/src/test/scala/akka/http/engine/rendering/RequestRendererSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/engine/rendering/RequestRendererSpec.scala @@ -17,7 +17,7 @@ import akka.http.model.headers._ import akka.http.util._ import akka.stream.scaladsl._ import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.impl.SynchronousIterablePublisher import HttpEntity._ import HttpMethods._ @@ -29,7 +29,7 @@ class RequestRendererSpec extends FreeSpec with Matchers with BeforeAndAfterAll implicit val system = ActorSystem(getClass.getSimpleName, testConf) import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "The request preparation logic should" - { "properly render an unchunked" - { diff --git a/akka-http-core/src/test/scala/akka/http/engine/rendering/ResponseRendererSpec.scala b/akka-http-core/src/test/scala/akka/http/engine/rendering/ResponseRendererSpec.scala index 9ca918b5de..4041050693 100644 --- a/akka-http-core/src/test/scala/akka/http/engine/rendering/ResponseRendererSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/engine/rendering/ResponseRendererSpec.scala @@ -17,7 +17,7 @@ import akka.http.util._ import akka.util.ByteString import akka.stream.scaladsl._ import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import HttpEntity._ class ResponseRendererSpec extends FreeSpec with Matchers with BeforeAndAfterAll { @@ -28,7 +28,7 @@ class ResponseRendererSpec extends FreeSpec with Matchers with BeforeAndAfterAll import system.dispatcher val ServerOnTheMove = StatusCodes.custom(330, "Server on the move") - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "The response preparation logic should properly render" - { "a response with no body," - { diff --git a/akka-http-core/src/test/scala/akka/http/engine/server/HttpServerSpec.scala b/akka-http-core/src/test/scala/akka/http/engine/server/HttpServerSpec.scala index 8b1fca0fe6..b1e921fb7d 100644 --- a/akka-http-core/src/test/scala/akka/http/engine/server/HttpServerSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/engine/server/HttpServerSpec.scala @@ -11,7 +11,7 @@ import org.scalatest.Inside import akka.event.NoLogging import akka.util.ByteString import akka.stream.scaladsl._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.http.model._ import akka.http.util._ @@ -21,7 +21,7 @@ import MediaTypes._ import HttpMethods._ class HttpServerSpec extends AkkaSpec("akka.loggers = []\n akka.loglevel = OFF") with Inside { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "The server implementation" should { diff --git a/akka-http-core/src/test/scala/akka/http/model/HttpEntitySpec.scala b/akka-http-core/src/test/scala/akka/http/model/HttpEntitySpec.scala index 9a0ce78c77..3e31b8b6e9 100644 --- a/akka-http-core/src/test/scala/akka/http/model/HttpEntitySpec.scala +++ b/akka-http-core/src/test/scala/akka/http/model/HttpEntitySpec.scala @@ -15,7 +15,7 @@ import org.scalatest.matchers.Matcher import akka.util.ByteString import akka.actor.ActorSystem import akka.stream.scaladsl._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.http.model.HttpEntity._ import akka.http.util.StreamUtils @@ -32,7 +32,7 @@ class HttpEntitySpec extends FreeSpec with MustMatchers with BeforeAndAfterAll { implicit val system = ActorSystem(getClass.getSimpleName, testConf) import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() override def afterAll() = system.shutdown() "HttpEntity" - { diff --git a/akka-http-core/src/test/scala/akka/http/model/MultipartSpec.scala b/akka-http-core/src/test/scala/akka/http/model/MultipartSpec.scala index bf599243bc..c3de649a23 100644 --- a/akka-http-core/src/test/scala/akka/http/model/MultipartSpec.scala +++ b/akka-http-core/src/test/scala/akka/http/model/MultipartSpec.scala @@ -8,7 +8,7 @@ import com.typesafe.config.{ Config, ConfigFactory } import scala.concurrent.Await import scala.concurrent.duration._ import org.scalatest.{ BeforeAndAfterAll, Inside, Matchers, WordSpec } -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Source import akka.util.ByteString import akka.actor.ActorSystem @@ -21,7 +21,7 @@ class MultipartSpec extends WordSpec with Matchers with Inside with BeforeAndAft akka.loglevel = WARNING""") implicit val system = ActorSystem(getClass.getSimpleName, testConf) import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() override def afterAll() = system.shutdown() "Multipart.General" should { diff --git a/akka-http-core/src/test/scala/io/akka/integrationtest/http/HttpModelIntegrationSpec.scala b/akka-http-core/src/test/scala/io/akka/integrationtest/http/HttpModelIntegrationSpec.scala index 400021445f..4f198f7573 100644 --- a/akka-http-core/src/test/scala/io/akka/integrationtest/http/HttpModelIntegrationSpec.scala +++ b/akka-http-core/src/test/scala/io/akka/integrationtest/http/HttpModelIntegrationSpec.scala @@ -14,7 +14,7 @@ import akka.http.model.parser.HeaderParser import akka.http.model._ import akka.stream.scaladsl._ import headers._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer /** * Integration test for external HTTP libraries that are built on top of @@ -43,7 +43,7 @@ class HttpModelIntegrationSpec extends WordSpec with Matchers with BeforeAndAfte override def afterAll() = system.shutdown() - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "External HTTP libraries" should { diff --git a/akka-http-testkit/src/main/scala/akka/http/testkit/RouteTest.scala b/akka-http-testkit/src/main/scala/akka/http/testkit/RouteTest.scala index 9d95fd9be7..18ffef268e 100644 --- a/akka-http-testkit/src/main/scala/akka/http/testkit/RouteTest.scala +++ b/akka-http-testkit/src/main/scala/akka/http/testkit/RouteTest.scala @@ -11,6 +11,7 @@ import scala.concurrent.duration._ import scala.util.DynamicVariable import scala.reflect.ClassTag import akka.actor.ActorSystem +import akka.stream.ActorFlowMaterializer import akka.stream.FlowMaterializer import akka.http.client.RequestBuilding import akka.http.util.FastFuture @@ -41,7 +42,7 @@ trait RouteTest extends RequestBuilding with RouteTestResultComponent with Marsh } implicit val system = createActorSystem() implicit def executor = system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() def cleanUp(): Unit = system.shutdown() @@ -141,4 +142,4 @@ trait RouteTest extends RequestBuilding with RouteTestResultComponent with Marsh } } -//FIXME: trait Specs2RouteTest extends RouteTest with Specs2Interface \ No newline at end of file +//FIXME: trait Specs2RouteTest extends RouteTest with Specs2Interface diff --git a/akka-http-tests/src/test/scala/akka/http/FormDataSpec.scala b/akka-http-tests/src/test/scala/akka/http/FormDataSpec.scala index 81b2efb471..249117464e 100644 --- a/akka-http-tests/src/test/scala/akka/http/FormDataSpec.scala +++ b/akka-http-tests/src/test/scala/akka/http/FormDataSpec.scala @@ -8,14 +8,14 @@ import scala.concurrent.duration._ import org.scalatest.{ BeforeAndAfterAll, Matchers, WordSpec } import org.scalatest.concurrent.ScalaFutures import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.http.unmarshalling.Unmarshal import akka.http.marshalling.Marshal import akka.http.model._ class FormDataSpec extends WordSpec with Matchers with ScalaFutures with BeforeAndAfterAll { implicit val system = ActorSystem(getClass.getSimpleName) - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() import system.dispatcher val formData = FormData(Map("surname" -> "Smith", "age" -> "42")) diff --git a/akka-http-tests/src/test/scala/akka/http/coding/CodecSpecSupport.scala b/akka-http-tests/src/test/scala/akka/http/coding/CodecSpecSupport.scala index ee2c9e04dc..6ac91df52e 100644 --- a/akka-http-tests/src/test/scala/akka/http/coding/CodecSpecSupport.scala +++ b/akka-http-tests/src/test/scala/akka/http/coding/CodecSpecSupport.scala @@ -9,7 +9,7 @@ import org.scalatest.{ Suite, BeforeAndAfterAll, Matchers } import scala.concurrent.duration._ import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.util.ByteString trait CodecSpecSupport extends Matchers with BeforeAndAfterAll { self: Suite ⇒ @@ -70,10 +70,10 @@ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita ka est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy e""".replace("\r\n", "\n") implicit val system = ActorSystem(getClass.getSimpleName) - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() override def afterAll() = { system.shutdown() system.awaitTermination(10.seconds) } -} \ No newline at end of file +} diff --git a/akka-http-tests/src/test/scala/akka/http/marshalling/MarshallingSpec.scala b/akka-http-tests/src/test/scala/akka/http/marshalling/MarshallingSpec.scala index b43ba8047d..2334a12ac8 100644 --- a/akka-http-tests/src/test/scala/akka/http/marshalling/MarshallingSpec.scala +++ b/akka-http-tests/src/test/scala/akka/http/marshalling/MarshallingSpec.scala @@ -10,7 +10,7 @@ import akka.http.marshallers.xml.ScalaXmlSupport._ import scala.collection.immutable.ListMap import org.scalatest.{ BeforeAndAfterAll, FreeSpec, Matchers } import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Source import akka.http.util._ import akka.http.model._ @@ -20,7 +20,7 @@ import MediaTypes._ class MarshallingSpec extends FreeSpec with Matchers with BeforeAndAfterAll with MultipartMarshallers with MarshallingTestUtils { implicit val system = ActorSystem(getClass.getSimpleName) - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() import system.dispatcher "The PredefinedToEntityMarshallers." - { diff --git a/akka-http-tests/src/test/scala/akka/http/server/TestServer.scala b/akka-http-tests/src/test/scala/akka/http/server/TestServer.scala index 5d0c625962..b2ba0aa7ca 100644 --- a/akka-http-tests/src/test/scala/akka/http/server/TestServer.scala +++ b/akka-http-tests/src/test/scala/akka/http/server/TestServer.scala @@ -8,7 +8,7 @@ import akka.http.marshallers.xml.ScalaXmlSupport import akka.http.server.directives.AuthenticationDirectives._ import com.typesafe.config.{ ConfigFactory, Config } import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.http.Http object TestServer extends App { @@ -17,7 +17,7 @@ object TestServer extends App { akka.log-dead-letters = off""") implicit val system = ActorSystem("ServerTest", testConf) import system.dispatcher - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() import ScalaXmlSupport._ import Directives._ diff --git a/akka-http-tests/src/test/scala/akka/http/unmarshalling/UnmarshallingSpec.scala b/akka-http-tests/src/test/scala/akka/http/unmarshalling/UnmarshallingSpec.scala index b71a6f648d..337763f283 100644 --- a/akka-http-tests/src/test/scala/akka/http/unmarshalling/UnmarshallingSpec.scala +++ b/akka-http-tests/src/test/scala/akka/http/unmarshalling/UnmarshallingSpec.scala @@ -12,7 +12,7 @@ import scala.concurrent.{ Future, Await } import org.scalatest.matchers.Matcher import org.scalatest.{ BeforeAndAfterAll, FreeSpec, Matchers } import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl._ import akka.http.model._ import akka.http.util._ @@ -22,7 +22,7 @@ import FastFuture._ class UnmarshallingSpec extends FreeSpec with Matchers with BeforeAndAfterAll with ScalatestUtils { implicit val system = ActorSystem(getClass.getSimpleName) - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() import system.dispatcher "The PredefinedFromEntityUnmarshallers." - { diff --git a/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaIdentityProcessorVerification.scala b/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaIdentityProcessorVerification.scala index b06288e53f..9ef9547e77 100644 --- a/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaIdentityProcessorVerification.scala +++ b/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaIdentityProcessorVerification.scala @@ -7,7 +7,7 @@ import akka.event.Logging import scala.collection.{ mutable, immutable } import akka.actor.ActorSystem -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Source import akka.stream.testkit.AkkaSpec @@ -40,7 +40,7 @@ abstract class AkkaIdentityProcessorVerification[T](val system: ActorSystem, env override def createErrorStatePublisher(): Publisher[T] = StreamTestKit.errorPublisher(new Exception("Unable to serve subscribers right now!")) - def createSimpleIntPublisher(elements: Long)(implicit mat: FlowMaterializer): Publisher[Int] = { + def createSimpleIntPublisher(elements: Long)(implicit mat: ActorFlowMaterializer): Publisher[Int] = { val iterable: immutable.Iterable[Int] = if (elements == Long.MaxValue) 1 to Int.MaxValue else 0 until elements.toInt diff --git a/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaPublisherVerification.scala b/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaPublisherVerification.scala index 17b38b2f9b..fa19c428aa 100644 --- a/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaPublisherVerification.scala +++ b/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaPublisherVerification.scala @@ -8,8 +8,8 @@ import akka.event.Logging import scala.concurrent.duration._ import akka.actor.ActorSystem -import akka.stream.MaterializerSettings -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializerSettings +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit import org.reactivestreams.Publisher @@ -33,7 +33,7 @@ abstract class AkkaPublisherVerification[T](val system: ActorSystem, env: TestEn this(false) } - implicit val materializer = FlowMaterializer(MaterializerSettings(system).copy(maxInputBufferSize = 512))(system) + implicit val materializer = ActorFlowMaterializer(ActorFlowMaterializerSettings(system).copy(maxInputBufferSize = 512))(system) @AfterClass def shutdownActorSystem(): Unit = { diff --git a/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaSubscriberVerification.scala b/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaSubscriberVerification.scala index 5fb4e009e7..d7c6ad538e 100644 --- a/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaSubscriberVerification.scala +++ b/akka-stream-tck/src/test/scala/akka/stream/tck/AkkaSubscriberVerification.scala @@ -8,8 +8,8 @@ import akka.event.Logging import scala.collection.immutable import scala.concurrent.duration._ import akka.actor.ActorSystem -import akka.stream.MaterializerSettings -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializerSettings +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Source import akka.stream.testkit.AkkaSpec @@ -57,7 +57,7 @@ abstract class AkkaSubscriberWhiteboxVerification[T](val system: ActorSystem, en trait AkkaSubscriberVerificationLike { implicit def system: ActorSystem - implicit val materializer = FlowMaterializer(MaterializerSettings(system)) + implicit val materializer = ActorFlowMaterializer(ActorFlowMaterializerSettings(system)) def createSimpleIntPublisher(elements: Long): Publisher[Int] = { val iterable: immutable.Iterable[Int] = diff --git a/akka-stream-tck/src/test/scala/akka/stream/tck/FusableProcessorTest.scala b/akka-stream-tck/src/test/scala/akka/stream/tck/FusableProcessorTest.scala index 54b5534658..2e3850887b 100644 --- a/akka-stream-tck/src/test/scala/akka/stream/tck/FusableProcessorTest.scala +++ b/akka-stream-tck/src/test/scala/akka/stream/tck/FusableProcessorTest.scala @@ -4,10 +4,10 @@ package akka.stream.tck import java.util.concurrent.atomic.AtomicInteger -import akka.stream.impl.{ Ast, ActorBasedFlowMaterializer } +import akka.stream.impl.{ Ast, ActorFlowMaterializerImpl } import akka.stream.scaladsl.MaterializedMap import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.{ FlowMaterializer, MaterializerSettings } +import akka.stream.{ ActorFlowMaterializer, ActorFlowMaterializerSettings } import org.reactivestreams.{ Publisher, Processor } import akka.stream.impl.fusing.Map @@ -18,21 +18,21 @@ class FusableProcessorTest extends AkkaIdentityProcessorVerification[Int] { val processorCounter = new AtomicInteger override def createIdentityProcessor(maxBufferSize: Int): Processor[Int, Int] = { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = maxBufferSize / 2, maxSize = maxBufferSize) - implicit val materializer = FlowMaterializer(settings)(system) + implicit val materializer = ActorFlowMaterializer(settings)(system) val flowName = getClass.getSimpleName + "-" + processorCounter.incrementAndGet() - val (processor, _ns) = materializer.asInstanceOf[ActorBasedFlowMaterializer].processorForNode( + val (processor, _ns) = materializer.asInstanceOf[ActorFlowMaterializerImpl].processorForNode( Ast.Fused(List(Map[Int, Int](identity)), name("identity")), flowName, 1) processor.asInstanceOf[Processor[Int, Int]] } override def createHelperPublisher(elements: Long): Publisher[Int] = { - implicit val mat = FlowMaterializer()(system) + implicit val mat = ActorFlowMaterializer()(system) createSimpleIntPublisher(elements)(mat) } diff --git a/akka-stream-tck/src/test/scala/akka/stream/tck/TransformProcessorTest.scala b/akka-stream-tck/src/test/scala/akka/stream/tck/TransformProcessorTest.scala index 46233f5d16..397891e7a2 100644 --- a/akka-stream-tck/src/test/scala/akka/stream/tck/TransformProcessorTest.scala +++ b/akka-stream-tck/src/test/scala/akka/stream/tck/TransformProcessorTest.scala @@ -4,10 +4,10 @@ package akka.stream.tck import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.MaterializerSettings -import akka.stream.impl.ActorBasedFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings +import akka.stream.impl.ActorFlowMaterializerImpl import akka.stream.impl.Ast -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import java.util.concurrent.atomic.AtomicInteger import akka.stream.scaladsl.MaterializedMap import org.reactivestreams.Processor @@ -22,10 +22,10 @@ class TransformProcessorTest extends AkkaIdentityProcessorVerification[Int] { val processorCounter = new AtomicInteger override def createIdentityProcessor(maxBufferSize: Int): Processor[Int, Int] = { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = maxBufferSize / 2, maxSize = maxBufferSize) - implicit val materializer = FlowMaterializer(settings)(system) + implicit val materializer = ActorFlowMaterializer(settings)(system) val flowName = getClass.getSimpleName + "-" + processorCounter.incrementAndGet() @@ -34,14 +34,14 @@ class TransformProcessorTest extends AkkaIdentityProcessorVerification[Int] { override def onPush(in: Any, ctx: Context[Any]) = ctx.push(in) } - val (processor, _) = materializer.asInstanceOf[ActorBasedFlowMaterializer].processorForNode( + val (processor, _) = materializer.asInstanceOf[ActorFlowMaterializerImpl].processorForNode( Ast.StageFactory(mkStage, name("transform")), flowName, 1) processor.asInstanceOf[Processor[Int, Int]] } override def createHelperPublisher(elements: Long): Publisher[Int] = { - implicit val mat = FlowMaterializer()(system) + implicit val mat = ActorFlowMaterializer()(system) createSimpleIntPublisher(elements)(mat) } diff --git a/akka-stream-testkit/src/test/resources/reference.conf b/akka-stream-testkit/src/test/resources/reference.conf index 7421093be9..8a0398eed1 100644 --- a/akka-stream-testkit/src/test/resources/reference.conf +++ b/akka-stream-testkit/src/test/resources/reference.conf @@ -1,11 +1,11 @@ -# The StreamTestDefaultMailbox verifies that stream actors are using the dispatcher defined in MaterializerSettings. +# The StreamTestDefaultMailbox verifies that stream actors are using the dispatcher defined in ActorFlowMaterializerSettings. # # All stream tests should use the dedicated `akka.test.stream-dispatcher` or disable this validation by defining: # akka.actor.default-mailbox.mailbox-type = "akka.dispatch.UnboundedMailbox" akka.actor.default-mailbox.mailbox-type = "akka.stream.testkit.StreamTestDefaultMailbox" # Dispatcher for stream actors. Specified in tests with -# MaterializerSettings(dispatcher = "akka.test.stream-dispatcher") +# ActorFlowMaterializerSettings(dispatcher = "akka.test.stream-dispatcher") akka.test.stream-dispatcher { type = Dispatcher executor = "fork-join-executor" diff --git a/akka-stream-testkit/src/test/scala/akka/stream/testkit/ChainSetup.scala b/akka-stream-testkit/src/test/scala/akka/stream/testkit/ChainSetup.scala index f5e5cc5cc6..aeff75341b 100644 --- a/akka-stream-testkit/src/test/scala/akka/stream/testkit/ChainSetup.scala +++ b/akka-stream-testkit/src/test/scala/akka/stream/testkit/ChainSetup.scala @@ -1,21 +1,21 @@ package akka.stream.testkit import akka.actor.{ ActorRefFactory, ActorSystem } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl._ import org.reactivestreams.Publisher -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer class ChainSetup[In, Out]( stream: Flow[In, In] ⇒ Flow[In, Out], - val settings: MaterializerSettings, - materializer: FlowMaterializer, - toPublisher: (Source[Out], FlowMaterializer) ⇒ Publisher[Out])(implicit val system: ActorSystem) { + val settings: ActorFlowMaterializerSettings, + materializer: ActorFlowMaterializer, + toPublisher: (Source[Out], ActorFlowMaterializer) ⇒ Publisher[Out])(implicit val system: ActorSystem) { - def this(stream: Flow[In, In] ⇒ Flow[In, Out], settings: MaterializerSettings, toPublisher: (Source[Out], FlowMaterializer) ⇒ Publisher[Out])(implicit system: ActorSystem) = - this(stream, settings, FlowMaterializer(settings)(system), toPublisher)(system) + def this(stream: Flow[In, In] ⇒ Flow[In, Out], settings: ActorFlowMaterializerSettings, toPublisher: (Source[Out], ActorFlowMaterializer) ⇒ Publisher[Out])(implicit system: ActorSystem) = + this(stream, settings, ActorFlowMaterializer(settings)(system), toPublisher)(system) - def this(stream: Flow[In, In] ⇒ Flow[In, Out], settings: MaterializerSettings, materializerCreator: (MaterializerSettings, ActorRefFactory) ⇒ FlowMaterializer, toPublisher: (Source[Out], FlowMaterializer) ⇒ Publisher[Out])(implicit system: ActorSystem) = + def this(stream: Flow[In, In] ⇒ Flow[In, Out], settings: ActorFlowMaterializerSettings, materializerCreator: (ActorFlowMaterializerSettings, ActorRefFactory) ⇒ ActorFlowMaterializer, toPublisher: (Source[Out], ActorFlowMaterializer) ⇒ Publisher[Out])(implicit system: ActorSystem) = this(stream, settings, materializerCreator(settings, system), toPublisher)(system) val upstream = StreamTestKit.PublisherProbe[In]() diff --git a/akka-stream-testkit/src/test/scala/akka/stream/testkit/ScriptedTest.scala b/akka-stream-testkit/src/test/scala/akka/stream/testkit/ScriptedTest.scala index f6c5ca182c..db72e99244 100644 --- a/akka-stream-testkit/src/test/scala/akka/stream/testkit/ScriptedTest.scala +++ b/akka-stream-testkit/src/test/scala/akka/stream/testkit/ScriptedTest.scala @@ -4,7 +4,7 @@ package akka.stream.testkit import akka.actor.ActorSystem -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl.{ Sink, Source, Flow } import akka.stream.testkit.StreamTestKit._ import org.reactivestreams.Publisher @@ -12,13 +12,13 @@ import org.scalatest.Matchers import scala.annotation.tailrec import scala.concurrent.duration._ import scala.concurrent.forkjoin.ThreadLocalRandom -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer trait ScriptedTest extends Matchers { class ScriptException(msg: String) extends RuntimeException(msg) - def toPublisher[In, Out]: (Source[Out], FlowMaterializer) ⇒ Publisher[Out] = + def toPublisher[In, Out]: (Source[Out], ActorFlowMaterializer) ⇒ Publisher[Out] = (f, m) ⇒ f.runWith(Sink.publisher)(m) object Script { @@ -82,7 +82,7 @@ trait ScriptedTest extends Matchers { class ScriptRunner[In, Out]( op: Flow[In, In] ⇒ Flow[In, Out], - settings: MaterializerSettings, + settings: ActorFlowMaterializerSettings, script: Script[In, Out], maximumOverrun: Int, maximumRequest: Int, @@ -190,7 +190,7 @@ trait ScriptedTest extends Matchers { } - def runScript[In, Out](script: Script[In, Out], settings: MaterializerSettings, maximumOverrun: Int = 3, maximumRequest: Int = 3, maximumBuffer: Int = 3)( + def runScript[In, Out](script: Script[In, Out], settings: ActorFlowMaterializerSettings, maximumOverrun: Int = 3, maximumRequest: Int = 3, maximumBuffer: Int = 3)( op: Flow[In, In] ⇒ Flow[In, Out])(implicit system: ActorSystem): Unit = { new ScriptRunner(op, settings, script, maximumOverrun, maximumRequest, maximumBuffer).run() } diff --git a/akka-stream-testkit/src/test/scala/akka/stream/testkit/StreamTestDefaultMailbox.scala b/akka-stream-testkit/src/test/scala/akka/stream/testkit/StreamTestDefaultMailbox.scala index 2589a57830..dbf4030d9d 100644 --- a/akka-stream-testkit/src/test/scala/akka/stream/testkit/StreamTestDefaultMailbox.scala +++ b/akka-stream-testkit/src/test/scala/akka/stream/testkit/StreamTestDefaultMailbox.scala @@ -14,7 +14,7 @@ import akka.actor.Actor /** * INTERNAL API * This mailbox is only used in tests to verify that stream actors are using - * the dispatcher defined in MaterializerSettings. + * the dispatcher defined in ActorFlowMaterializerSettings. */ private[akka] final case class StreamTestDefaultMailbox() extends MailboxType with ProducesMessageQueue[UnboundedMailbox.MessageQueue] { @@ -31,7 +31,7 @@ private[akka] final case class StreamTestDefaultMailbox() extends MailboxType wi s"$r with actor class [${actorClass.getName}] must not run on default dispatcher in tests. " + "Did you forget to define `props.withDispatcher` when creating the actor? " + "Or did you forget to configure the `akka.stream.materializer` setting accordingly or force the " + - """dispatcher using `MaterializerSettings(sys).withDispatcher("akka.test.stream-dispatcher")` in the test?""") + """dispatcher using `ActorFlowMaterializerSettings(sys).withDispatcher("akka.test.stream-dispatcher")` in the test?""") } catch { // this logging should not be needed when issue #15947 has been fixed case e: AssertionError ⇒ diff --git a/akka-stream-testkit/src/test/scala/akka/stream/testkit/TwoStreamsSetup.scala b/akka-stream-testkit/src/test/scala/akka/stream/testkit/TwoStreamsSetup.scala index 5bfda96307..fa44c5fc60 100644 --- a/akka-stream-testkit/src/test/scala/akka/stream/testkit/TwoStreamsSetup.scala +++ b/akka-stream-testkit/src/test/scala/akka/stream/testkit/TwoStreamsSetup.scala @@ -1,18 +1,18 @@ package akka.stream.testkit -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl._ import org.reactivestreams.Publisher import scala.collection.immutable import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer abstract class TwoStreamsSetup extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) val TestException = new RuntimeException("test") with NoStackTrace diff --git a/akka-stream-tests/src/test/java/akka/stream/StreamTest.java b/akka-stream-tests/src/test/java/akka/stream/StreamTest.java index b09f2b04bb..e7746c39a1 100644 --- a/akka-stream-tests/src/test/java/akka/stream/StreamTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/StreamTest.java @@ -9,11 +9,11 @@ import akka.stream.javadsl.AkkaJUnitActorSystemResource; public abstract class StreamTest { final protected ActorSystem system; - final protected FlowMaterializer materializer; + final protected ActorFlowMaterializer materializer; protected StreamTest(AkkaJUnitActorSystemResource actorSystemResource) { system = actorSystemResource.getSystem(); - MaterializerSettings settings = MaterializerSettings.create(system); - materializer = FlowMaterializer.create(settings, system); + ActorFlowMaterializerSettings settings = ActorFlowMaterializerSettings.create(system); + materializer = ActorFlowMaterializer.create(settings, system); } } diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiMergeTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiMergeTest.java index 44233e82a8..d73c4b5cf4 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiMergeTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiMergeTest.java @@ -14,7 +14,7 @@ import static org.junit.Assert.assertEquals; import java.util.concurrent.TimeUnit; import org.reactivestreams.Publisher; import akka.actor.ActorSystem; -import akka.stream.FlowMaterializer; +import akka.stream.ActorFlowMaterializer; import akka.stream.testkit.AkkaSpec; import akka.stream.javadsl.FlexiMerge; import scala.concurrent.Await; @@ -30,7 +30,7 @@ public class FlexiMergeTest { final ActorSystem system = actorSystemResource.getSystem(); - final FlowMaterializer materializer = FlowMaterializer.create(system); + final ActorFlowMaterializer materializer = ActorFlowMaterializer.create(system); final Source in1 = Source.from(Arrays.asList("a", "b", "c", "d")); final Source in2 = Source.from(Arrays.asList("e", "f")); diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiRouteTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiRouteTest.java index 5c552a58d7..84dc6912fb 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiRouteTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlexiRouteTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertEquals; import java.util.concurrent.TimeUnit; import akka.actor.ActorSystem; -import akka.stream.FlowMaterializer; +import akka.stream.ActorFlowMaterializer; import akka.stream.testkit.AkkaSpec; import akka.stream.javadsl.FlexiRoute; import akka.japi.Pair; @@ -29,7 +29,7 @@ public class FlexiRouteTest { final ActorSystem system = actorSystemResource.getSystem(); - final FlowMaterializer materializer = FlowMaterializer.create(system); + final ActorFlowMaterializer materializer = ActorFlowMaterializer.create(system); final Source in = Source.from(Arrays.asList("a", "b", "c", "d", "e")); diff --git a/akka-stream-tests/src/test/scala/akka/stream/DslConsistencySpec.scala b/akka-stream-tests/src/test/scala/akka/stream/DslConsistencySpec.scala index bdcdd91a39..6aa7edba25 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/DslConsistencySpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/DslConsistencySpec.scala @@ -50,7 +50,7 @@ class DslConsistencySpec extends WordSpec with Matchers { jFlowGraphClass → Set("graph", "cyclesAllowed"), jPartialFlowGraphClass → Set("graph", "cyclesAllowed", "disconnectedAllowed")) - def materializing(m: Method): Boolean = m.getParameterTypes.contains(classOf[FlowMaterializer]) + def materializing(m: Method): Boolean = m.getParameterTypes.contains(classOf[ActorFlowMaterializer]) def assertHasMethod(c: Class[_], name: String): Unit = { // include class name to get better error message diff --git a/akka-stream-tests/src/test/scala/akka/stream/actor/ActorPublisherSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/actor/ActorPublisherSpec.scala index afce4b7654..378adae4a2 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/actor/ActorPublisherSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/actor/ActorPublisherSpec.scala @@ -11,7 +11,7 @@ import akka.stream.scaladsl.Flow import akka.stream.scaladsl.FlowGraph import akka.stream.scaladsl.FlowGraphImplicits import akka.stream.scaladsl.Merge -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Source import akka.stream.testkit.AkkaSpec @@ -256,7 +256,7 @@ class ActorPublisherSpec extends AkkaSpec with ImplicitSender { } "work together with Flow and ActorSubscriber" in { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val probe = TestProbe() val source = Source[Int](senderProps) @@ -285,7 +285,7 @@ class ActorPublisherSpec extends AkkaSpec with ImplicitSender { } "work in a FlowGraph" in { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val probe1 = TestProbe() val probe2 = TestProbe() @@ -325,7 +325,7 @@ class ActorPublisherSpec extends AkkaSpec with ImplicitSender { } "be able to define a subscription-timeout, after which it should shut down" in { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val timeout = 150.millis val a = system.actorOf(timeoutingProps(testActor, timeout)) val pub = ActorPublisher(a) @@ -345,7 +345,7 @@ class ActorPublisherSpec extends AkkaSpec with ImplicitSender { } "be able to define a subscription-timeout, which is cancelled by the first incoming Subscriber" in { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val timeout = 500.millis val sub = StreamTestKit.SubscriberProbe[Int]() diff --git a/akka-stream-tests/src/test/scala/akka/stream/actor/ActorSubscriberSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/actor/ActorSubscriberSpec.scala index 082d34575b..3c8277fa66 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/actor/ActorSubscriberSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/actor/ActorSubscriberSpec.scala @@ -5,7 +5,7 @@ package akka.stream.actor import akka.actor.{ Actor, ActorRef, Props } import akka.routing.{ ActorRefRoutee, RoundRobinRoutingLogic, Router } -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.Sink import akka.stream.scaladsl.Source import akka.stream.testkit.AkkaSpec @@ -95,7 +95,7 @@ class ActorSubscriberSpec extends AkkaSpec with ImplicitSender { import ActorSubscriberMessage._ import ActorSubscriberSpec._ - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "An ActorSubscriber" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/extra/FlowTimedSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/extra/FlowTimedSpec.scala index 796b1617bf..35957cbe61 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/extra/FlowTimedSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/extra/FlowTimedSpec.scala @@ -3,7 +3,7 @@ */ package akka.stream.extra -import akka.stream.{ MaterializerSettings, FlowMaterializer } +import akka.stream.{ ActorFlowMaterializerSettings, ActorFlowMaterializer } import akka.stream.scaladsl.{ Source, Flow } import akka.stream.scaladsl.Sink import akka.stream.testkit.{ AkkaSpec, ScriptedTest, StreamTestKit } @@ -14,10 +14,10 @@ class FlowTimedSpec extends AkkaSpec with ScriptedTest { import scala.concurrent.duration._ - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "Timed Source" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/io/TcpHelper.scala b/akka-stream-tests/src/test/scala/akka/stream/io/TcpHelper.scala index 69073aee9b..74bdadb532 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/io/TcpHelper.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/io/TcpHelper.scala @@ -6,7 +6,7 @@ package akka.stream.io import akka.actor.{ Actor, ActorRef, Props } import akka.io.{ IO, Tcp } import akka.stream.testkit.StreamTestKit -import akka.stream.{ FlowMaterializer, MaterializerSettings } +import akka.stream.{ ActorFlowMaterializer, ActorFlowMaterializerSettings } import akka.testkit.{ TestKitBase, TestProbe } import akka.util.ByteString import java.net.InetSocketAddress @@ -102,10 +102,10 @@ object TcpHelper { trait TcpHelper { this: TestKitBase ⇒ import akka.stream.io.TcpHelper._ - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 4, maxSize = 4) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) class Server(val address: InetSocketAddress = temporaryServerAddress()) { val serverProbe = TestProbe() diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowAppendSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowAppendSpec.scala index fa3a203f24..8e933c38f6 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowAppendSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowAppendSpec.scala @@ -4,16 +4,16 @@ package akka.stream.scaladsl import akka.actor.ActorSystem -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import org.reactivestreams.Subscriber import org.scalatest.Matchers class FlowAppendSpec extends AkkaSpec with River { - val settings = MaterializerSettings(system) - implicit val materializer = FlowMaterializer(settings) + val settings = ActorFlowMaterializerSettings(system) + implicit val materializer = ActorFlowMaterializer(settings) "Flow" should { "append Flow" in riverOf[String] { subscriber ⇒ diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowBufferSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowBufferSpec.scala index 33ca652d67..de91daf699 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowBufferSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowBufferSpec.scala @@ -7,18 +7,18 @@ import scala.concurrent.Await import scala.concurrent.Future import scala.concurrent.duration._ -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.OverflowStrategy import akka.stream.OverflowStrategy.Error.BufferOverflowException import akka.stream.testkit.{ AkkaSpec, StreamTestKit } class FlowBufferSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 1, maxSize = 1) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "Buffer" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCollectSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCollectSpec.scala index d84b8fa8f3..4eed282cae 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCollectSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCollectSpec.scala @@ -7,13 +7,13 @@ import java.io.{ File, FileInputStream } import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.ScriptedTest class FlowCollectSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) "A Collect" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCompileSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCompileSpec.scala index 7e17389e98..cbd5362096 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCompileSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowCompileSpec.scala @@ -6,8 +6,8 @@ package akka.stream.scaladsl import scala.collection.immutable.Seq import scala.concurrent.Future -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec class FlowCompileSpec extends AkkaSpec { @@ -17,7 +17,7 @@ class FlowCompileSpec extends AkkaSpec { import scala.concurrent.ExecutionContext.Implicits.global val intFut = Source(Future { 3 }) - implicit val materializer = FlowMaterializer(MaterializerSettings(system)) + implicit val materializer = ActorFlowMaterializer(ActorFlowMaterializerSettings(system)) "Flow" should { "should not run" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala index db2f634c93..a10d91e7da 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConcatAllSpec.scala @@ -6,16 +6,16 @@ package akka.stream.scaladsl import scala.concurrent.duration._ import scala.util.control.NoStackTrace import akka.stream.FlattenStrategy -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ StreamTestKit, AkkaSpec } class FlowConcatAllSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "ConcatAll" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConflateSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConflateSpec.scala index 484be8ab1f..5ace917472 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConflateSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowConflateSpec.scala @@ -6,15 +6,15 @@ package akka.stream.scaladsl import scala.concurrent.Await import scala.concurrent.duration._ import scala.concurrent.forkjoin.ThreadLocalRandom -import akka.stream.{ OverflowStrategy, FlowMaterializer, MaterializerSettings } +import akka.stream.{ OverflowStrategy, ActorFlowMaterializer, ActorFlowMaterializerSettings } import akka.stream.testkit.{ StreamTestKit, AkkaSpec } class FlowConflateSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "Conflate" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDispatcherSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDispatcherSpec.scala index 9aa211b3fd..aa5191b92a 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDispatcherSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDispatcherSpec.scala @@ -5,16 +5,16 @@ package akka.stream.scaladsl import akka.testkit.TestProbe import akka.stream.testkit.AkkaSpec -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings class FlowDispatcherSpec extends AkkaSpec("my-dispatcher = ${akka.test.stream-dispatcher}") { - val defaultSettings = MaterializerSettings(system) + val defaultSettings = ActorFlowMaterializerSettings(system) - def testDispatcher(settings: MaterializerSettings = defaultSettings, dispatcher: String = "akka.test.stream-dispatcher") = { + def testDispatcher(settings: ActorFlowMaterializerSettings = defaultSettings, dispatcher: String = "akka.test.stream-dispatcher") = { - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) val probe = TestProbe() val p = Source(List(1, 2, 3)).map(i ⇒ diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropSpec.scala index 6c2122daa2..e3e2179c2a 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropSpec.scala @@ -5,18 +5,18 @@ package akka.stream.scaladsl import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.ScriptedTest import akka.stream.testkit.StreamTestKit class FlowDropSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Drop" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropWithinSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropWithinSpec.scala index f2b8d364c1..4a9b85fec7 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropWithinSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowDropWithinSpec.scala @@ -5,13 +5,13 @@ package akka.stream.scaladsl import scala.concurrent.duration._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit class FlowDropWithinSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A DropWithin" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowExpandSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowExpandSpec.scala index fb7dde14e9..2a77b00339 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowExpandSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowExpandSpec.scala @@ -7,17 +7,17 @@ import scala.concurrent.Await import scala.concurrent.duration._ import scala.concurrent.forkjoin.ThreadLocalRandom -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ StreamTestKit, AkkaSpec } class FlowExpandSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "Expand" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFilterSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFilterSpec.scala index bc7dc515c4..de387f770a 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFilterSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFilterSpec.scala @@ -5,14 +5,14 @@ package akka.stream.scaladsl import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.stream.testkit.ScriptedTest class FlowFilterSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) "A Filter" must { @@ -23,9 +23,9 @@ class FlowFilterSpec extends AkkaSpec with ScriptedTest { } "not blow up with high request counts" in { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 1, maxSize = 1) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) val probe = StreamTestKit.SubscriberProbe[Int]() Source(List.fill(1000)(0) ::: List(1)).filter(_ != 0).runWith(Sink(probe)) diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFoldSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFoldSpec.scala index f4699229a3..8df51c1abe 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFoldSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFoldSpec.scala @@ -6,12 +6,12 @@ package akka.stream.scaladsl import scala.concurrent.Await import scala.util.control.NoStackTrace -import akka.stream.{ OverflowStrategy, FlowMaterializer } +import akka.stream.{ OverflowStrategy, ActorFlowMaterializer } import akka.stream.testkit.AkkaSpec import akka.testkit.DefaultTimeout class FlowFoldSpec extends AkkaSpec with DefaultTimeout { - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "A Fold" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowForeachSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowForeachSpec.scala index 35654b5198..1866251b80 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowForeachSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowForeachSpec.scala @@ -5,12 +5,12 @@ package akka.stream.scaladsl import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.{ AkkaSpec, StreamTestKit } class FlowForeachSpec extends AkkaSpec { - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() import system.dispatcher "A Foreach" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFromFutureSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFromFutureSpec.scala index 3f38ba53a6..cec36d0e3f 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFromFutureSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowFromFutureSpec.scala @@ -7,16 +7,16 @@ import scala.concurrent.{ Future, Promise } import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } class FlowFromFutureSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Flow based on a Future" must { "produce one element from already successful Future" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphCompileSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphCompileSpec.scala index 405920a9ec..8ee54a103d 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphCompileSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphCompileSpec.scala @@ -4,7 +4,7 @@ package akka.stream.scaladsl import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.OverflowStrategy import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit.{ PublisherProbe, SubscriberProbe } @@ -18,7 +18,7 @@ object FlowGraphCompileSpec { class FlowGraphCompileSpec extends AkkaSpec { import FlowGraphCompileSpec._ - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() def op[In, Out]: () ⇒ PushStage[In, Out] = { () ⇒ new PushStage[In, Out] { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphInitSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphInitSpec.scala index 2888c416ff..7b9e889342 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphInitSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGraphInitSpec.scala @@ -3,7 +3,7 @@ */ package akka.stream.scaladsl -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import scala.concurrent.Await @@ -13,7 +13,7 @@ import scala.concurrent.duration._ class FlowGraphInitSpec extends AkkaSpec { import system.dispatcher - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "Initialization of FlowGraph" should { "be thread safe" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupBySpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupBySpec.scala index d5c9c59999..5aa04019cb 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupBySpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupBySpec.scala @@ -6,17 +6,17 @@ package akka.stream.scaladsl import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit._ import org.reactivestreams.Publisher class FlowGroupBySpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) case class StreamPuppet(p: Publisher[Int]) { val probe = StreamTestKit.SubscriberProbe[Int]() diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedSpec.scala index 8c087d42a2..a8651e99f5 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedSpec.scala @@ -6,13 +6,13 @@ package akka.stream.scaladsl import scala.collection.immutable import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.ScriptedTest class FlowGroupedSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) "A Grouped" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedWithinSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedWithinSpec.scala index 66bd3ebeae..63021e2dbd 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedWithinSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowGroupedWithinSpec.scala @@ -7,17 +7,17 @@ import scala.collection.immutable import scala.concurrent.duration._ import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.ScriptedTest import akka.stream.testkit.StreamTestKit class FlowGroupedWithinSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A GroupedWithin" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowIteratorSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowIteratorSpec.scala index 69294a127e..4420f367c4 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowIteratorSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowIteratorSpec.scala @@ -6,8 +6,8 @@ package akka.stream.scaladsl import scala.collection.immutable import scala.concurrent.duration._ -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit import akka.stream.testkit.StreamTestKit.OnComplete @@ -28,10 +28,10 @@ class FlowIterableSpec extends AbstractFlowIteratorSpec { abstract class AbstractFlowIteratorSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) def testName: String diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowJoinSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowJoinSpec.scala index d740f40c3d..baf4653f1a 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowJoinSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowJoinSpec.scala @@ -3,7 +3,7 @@ */ package akka.stream.scaladsl -import akka.stream.{ FlowMaterializer, MaterializerSettings } +import akka.stream.{ ActorFlowMaterializer, ActorFlowMaterializerSettings } import akka.stream.testkit.{ StreamTestKit, AkkaSpec } import com.typesafe.config.ConfigFactory import scala.concurrent.Await @@ -11,10 +11,10 @@ import scala.concurrent.duration._ class FlowJoinSpec extends AkkaSpec(ConfigFactory.parseString("akka.loglevel=INFO")) { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val mat = FlowMaterializer(settings) + implicit val mat = ActorFlowMaterializer(settings) "A Flow using join" must { "allow for cycles" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncSpec.scala index 8567ee4149..dd022e2226 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncSpec.scala @@ -9,7 +9,7 @@ import scala.concurrent.duration._ import scala.concurrent.forkjoin.ThreadLocalRandom import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit import akka.testkit.TestLatch @@ -17,7 +17,7 @@ import akka.testkit.TestProbe class FlowMapAsyncSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A Flow with mapAsync" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncUnorderedSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncUnorderedSpec.scala index f21615a96c..e22dcf807d 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncUnorderedSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapAsyncUnorderedSpec.scala @@ -8,7 +8,7 @@ import scala.concurrent.Future import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit import akka.testkit.TestLatch @@ -16,7 +16,7 @@ import akka.testkit.TestProbe class FlowMapAsyncUnorderedSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A Flow with mapAsyncUnordered" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapConcatSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapConcatSpec.scala index f55b14ae27..70ae8b4dc6 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapConcatSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapConcatSpec.scala @@ -4,15 +4,15 @@ package akka.stream.scaladsl import scala.concurrent.duration._ -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.ScriptedTest import akka.stream.testkit.StreamTestKit.SubscriberProbe -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer class FlowMapConcatSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) "A MapConcat" must { @@ -29,9 +29,9 @@ class FlowMapConcatSpec extends AkkaSpec with ScriptedTest { } "map and concat grouping with slow downstream" in { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) val s = SubscriberProbe[Int] val input = (1 to 20).grouped(5).toList Source(input).mapConcat(identity).map(x ⇒ { Thread.sleep(10); x }).runWith(Sink(s)) diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapSpec.scala index 70410c5563..58e96321e7 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowMapSpec.scala @@ -5,17 +5,17 @@ package akka.stream.scaladsl import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.stream.testkit.ScriptedTest class FlowMapSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Map" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowOnCompleteSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowOnCompleteSpec.scala index 1782de54ab..1fd2e7acb2 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowOnCompleteSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowOnCompleteSpec.scala @@ -7,8 +7,8 @@ import scala.concurrent.duration._ import scala.util.{ Failure, Success } import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.stream.testkit.AkkaSpec import akka.stream.testkit.ScriptedTest @@ -16,10 +16,10 @@ import akka.testkit.TestProbe class FlowOnCompleteSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Flow with onComplete" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowPrefixAndTailSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowPrefixAndTailSpec.scala index 503a074ac9..e86fdb79e2 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowPrefixAndTailSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowPrefixAndTailSpec.scala @@ -8,17 +8,17 @@ import scala.concurrent.Await import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.stream.testkit.StreamTestKit.SubscriberProbe class FlowPrefixAndTailSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "PrefixAndTail" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowScanSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowScanSpec.scala index 0429c61efc..7bf0ad6f85 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowScanSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowScanSpec.scala @@ -9,16 +9,16 @@ import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } import scala.collection.immutable -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec class FlowScanSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Scan" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSectionSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSectionSpec.scala index 80f0eb27a5..84dfd208c3 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSectionSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSectionSpec.scala @@ -4,7 +4,7 @@ package akka.stream.scaladsl import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.actor.ActorRef import akka.testkit.TestProbe @@ -15,7 +15,7 @@ object FlowSectionSpec { class FlowSectionSpec extends AkkaSpec(FlowSectionSpec.config) { - implicit val mat = FlowMaterializer() + implicit val mat = ActorFlowMaterializer() "A flow" can { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSpec.scala index cd36a1c474..445ea59ca8 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSpec.scala @@ -9,8 +9,8 @@ import akka.stream.stage.Stage import scala.collection.immutable import scala.concurrent.duration._ import akka.actor._ -import akka.stream.MaterializerSettings -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializerSettings +import akka.stream.ActorFlowMaterializer import akka.stream.impl._ import akka.stream.impl.Ast._ import akka.stream.testkit.{ StreamTestKit, AkkaSpec } @@ -32,7 +32,7 @@ object FlowSpec { case class BrokenMessage(msg: String) class BrokenActorInterpreter( - _settings: MaterializerSettings, + _settings: ActorFlowMaterializerSettings, _ops: Seq[Stage[_, _]], brokenMessage: Any) extends ActorInterpreter(_settings, _ops) { @@ -48,14 +48,13 @@ object FlowSpec { } } - class BrokenFlowMaterializer( - settings: MaterializerSettings, + class BrokenActorFlowMaterializer( + settings: ActorFlowMaterializerSettings, dispatchers: Dispatchers, supervisor: ActorRef, flowNameCounter: AtomicLong, namePrefix: String, - optimizations: Optimizations, - brokenMessage: Any) extends ActorBasedFlowMaterializer(settings, dispatchers, supervisor, flowNameCounter, namePrefix, optimizations) { + brokenMessage: Any) extends ActorFlowMaterializerImpl(settings, dispatchers, supervisor, flowNameCounter, namePrefix) { override def processorForNode[In, Out](op: AstNode, flowName: String, n: Int): (Processor[In, Out], MaterializedMap) = { val props = op match { @@ -78,8 +77,8 @@ object FlowSpec { } - def createBrokenFlowMaterializer(settings: MaterializerSettings, brokenMessage: Any)(implicit context: ActorRefFactory): BrokenFlowMaterializer = { - new BrokenFlowMaterializer( + def createBrokenActorFlowMaterializer(settings: ActorFlowMaterializerSettings, brokenMessage: Any)(implicit context: ActorRefFactory): BrokenActorFlowMaterializer = { + new BrokenActorFlowMaterializer( settings, { context match { @@ -93,7 +92,6 @@ object FlowSpec { context.actorOf(StreamSupervisor.props(settings).withDispatcher(settings.dispatcher)), flowNameCounter, "brokenflow", - Optimizations.none, brokenMessage) } } @@ -101,17 +99,17 @@ object FlowSpec { class FlowSpec extends AkkaSpec(ConfigFactory.parseString("akka.actor.debug.receive=off\nakka.loglevel=INFO")) { import FlowSpec._ - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val mat = FlowMaterializer(settings) + implicit val mat = ActorFlowMaterializer(settings) val identity: Flow[Any, Any] ⇒ Flow[Any, Any] = in ⇒ in.map(e ⇒ e) val identity2: Flow[Any, Any] ⇒ Flow[Any, Any] = in ⇒ identity(in) - val toPublisher: (Source[Any], FlowMaterializer) ⇒ Publisher[Any] = + val toPublisher: (Source[Any], ActorFlowMaterializer) ⇒ Publisher[Any] = (f, m) ⇒ f.runWith(Sink.publisher)(m) - def toFanoutPublisher[In, Out](initialBufferSize: Int, maximumBufferSize: Int): (Source[Out], FlowMaterializer) ⇒ Publisher[Out] = + def toFanoutPublisher[In, Out](initialBufferSize: Int, maximumBufferSize: Int): (Source[Out], ActorFlowMaterializer) ⇒ Publisher[Out] = (f, m) ⇒ f.runWith(Sink.fanoutPublisher(initialBufferSize, maximumBufferSize))(m) def materializeIntoSubscriberAndPublisher[In, Out](flow: Flow[In, Out]): (Subscriber[In], Publisher[Out]) = { @@ -572,7 +570,7 @@ class FlowSpec extends AkkaSpec(ConfigFactory.parseString("akka.actor.debug.rece "A broken Flow" must { "cancel upstream and call onError on current and future downstream subscribers if an internal error occurs" in { - new ChainSetup(identity, settings.copy(initialInputBufferSize = 1), (s, f) ⇒ createBrokenFlowMaterializer(s, "a3")(f), + new ChainSetup(identity, settings.copy(initialInputBufferSize = 1), (s, f) ⇒ createBrokenActorFlowMaterializer(s, "a3")(f), toFanoutPublisher(initialBufferSize = 1, maximumBufferSize = 16)) { def checkError(sprobe: StreamTestKit.SubscriberProbe[Any]): Unit = { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSplitWhenSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSplitWhenSpec.scala index d21ba4642a..009847027c 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSplitWhenSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowSplitWhenSpec.scala @@ -5,18 +5,18 @@ package akka.stream.scaladsl import scala.concurrent.duration._ -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit import org.reactivestreams.Publisher class FlowSplitWhenSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) case class StreamPuppet(p: Publisher[Int]) { val probe = StreamTestKit.SubscriberProbe[Int]() diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowStageSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowStageSpec.scala index f6e6a35bca..e7e5c19770 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowStageSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowStageSpec.scala @@ -6,8 +6,8 @@ package akka.stream.scaladsl import scala.collection.immutable.Seq import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.testkit.{ EventFilter, TestProbe } import com.typesafe.config.ConfigFactory @@ -15,10 +15,10 @@ import akka.stream.stage._ class FlowStageSpec extends AkkaSpec(ConfigFactory.parseString("akka.actor.debug.receive=off\nakka.loglevel=INFO")) { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Flow with transform operations" must { "produce one-to-one transformation as expected" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeSpec.scala index 16ca928fc8..b94889ae92 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeSpec.scala @@ -5,8 +5,8 @@ package akka.stream.scaladsl import scala.concurrent.forkjoin.ThreadLocalRandom.{ current ⇒ random } -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.actor.ActorSubscriberMessage.OnComplete import akka.stream.actor.ActorSubscriberMessage.OnNext import akka.stream.impl.RequestMore @@ -16,10 +16,10 @@ import akka.stream.testkit.StreamTestKit class FlowTakeSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) muteDeadLetters(classOf[OnNext], OnComplete.getClass, classOf[RequestMore])() diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeWithinSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeWithinSpec.scala index 7d4da581ef..03825588b2 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeWithinSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTakeWithinSpec.scala @@ -5,13 +5,13 @@ package akka.stream.scaladsl import scala.concurrent.duration._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit class FlowTakeWithinSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A TakeWithin" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTimerTransformerSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTimerTransformerSpec.scala index e0f15adff2..e9bfdc65ac 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTimerTransformerSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FlowTimerTransformerSpec.scala @@ -6,14 +6,14 @@ package akka.stream.scaladsl import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.TimerTransformer import akka.stream.testkit.{ AkkaSpec, StreamTestKit } class FlowTimerTransformerSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A Flow with TimerTransformer operations" must { "produce scheduled ticks as expected" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FutureSinkSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FutureSinkSpec.scala index b51192d48b..c05edb4ccd 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FutureSinkSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/FutureSinkSpec.scala @@ -8,17 +8,17 @@ import scala.concurrent.Future import scala.concurrent.duration._ import scala.util.Failure -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } import akka.stream.testkit.ScriptedTest class HeadSinkSpec extends AkkaSpec with ScriptedTest { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Flow with Sink.head" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBalanceSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBalanceSpec.scala index a88d70ff5b..ba20ec7949 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBalanceSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBalanceSpec.scala @@ -4,17 +4,17 @@ import scala.concurrent.Await import scala.concurrent.duration._ import FlowGraphImplicits._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.{ AkkaSpec, StreamTestKit } class GraphBalanceSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A balance" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBroadcastSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBroadcastSpec.scala index 712a4a050b..85096bf5ef 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBroadcastSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphBroadcastSpec.scala @@ -4,16 +4,16 @@ import scala.concurrent.Await import scala.concurrent.duration._ import FlowGraphImplicits._ -import akka.stream.{ OverflowStrategy, MaterializerSettings } -import akka.stream.FlowMaterializer +import akka.stream.{ OverflowStrategy, ActorFlowMaterializerSettings } +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.{ StreamTestKit, AkkaSpec } class GraphBroadcastSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A broadcast" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiMergeSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiMergeSpec.scala index 4856e44e9e..be5f42d108 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiMergeSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiMergeSpec.scala @@ -1,7 +1,7 @@ package akka.stream.scaladsl import FlowGraphImplicits._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit.AutoPublisher import akka.stream.testkit.StreamTestKit.OnNext @@ -271,7 +271,7 @@ class TestMerge extends FlexiMerge[String] { class GraphFlexiMergeSpec extends AkkaSpec { import GraphFlexiMergeSpec._ - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val in1 = Source(List("a", "b", "c", "d")) val in2 = Source(List("e", "f")) diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiRouteSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiRouteSpec.scala index f64b71d131..2b3f579b9a 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiRouteSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlexiRouteSpec.scala @@ -3,7 +3,7 @@ package akka.stream.scaladsl import scala.concurrent.duration._ import scala.util.control.NoStackTrace import FlowGraphImplicits._ -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit.AutoPublisher import akka.stream.testkit.StreamTestKit.OnNext @@ -147,7 +147,7 @@ object GraphFlexiRouteSpec { } } - class TestFixture(implicit val system: ActorSystem, implicit val materializer: FlowMaterializer) { + class TestFixture(implicit val system: ActorSystem, implicit val materializer: ActorFlowMaterializer) { val publisher = PublisherProbe[String] val s1 = SubscriberProbe[String] val s2 = SubscriberProbe[String] @@ -172,7 +172,7 @@ object GraphFlexiRouteSpec { class GraphFlexiRouteSpec extends AkkaSpec { import GraphFlexiRouteSpec._ - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() val in = Source(List("a", "b", "c", "d", "e")) diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlowSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlowSpec.scala index 9f13893a2f..be62c9ac47 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlowSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphFlowSpec.scala @@ -3,8 +3,8 @@ */ package akka.stream.scaladsl -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit.SubscriberProbe import akka.stream.testkit.StreamTestKit @@ -35,10 +35,10 @@ class GraphFlowSpec extends AkkaSpec { import GraphFlowSpec._ - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) def validateProbe(probe: SubscriberProbe[Int], requests: Int, result: Set[Int]): Unit = { val subscription = probe.expectSubscription() diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphJunctionAttributesSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphJunctionAttributesSpec.scala index f38a39817b..c81fbc4a7f 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphJunctionAttributesSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphJunctionAttributesSpec.scala @@ -4,8 +4,8 @@ package akka.stream.scaladsl import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit import scala.concurrent.duration._ @@ -13,8 +13,8 @@ import scala.concurrent.Await class GraphJunctionAttributesSpec extends AkkaSpec { - implicit val set = MaterializerSettings(system).withInputBuffer(4, 4) - implicit val mat = FlowMaterializer(set) + implicit val set = ActorFlowMaterializerSettings(system).withInputBuffer(4, 4) + implicit val mat = ActorFlowMaterializer(set) "A zip" should { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphOpsIntegrationSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphOpsIntegrationSpec.scala index 62179192ba..ed60a0d4e0 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphOpsIntegrationSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphOpsIntegrationSpec.scala @@ -3,8 +3,8 @@ package akka.stream.scaladsl import scala.concurrent.Await import scala.concurrent.duration._ -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl.FlowGraphImplicits._ import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit.{ OnNext, SubscriberProbe } @@ -43,7 +43,7 @@ object GraphOpsIntegrationSpec { new Lego(this.in, that.out, newGraph) } - def run(source: Source[String], sink: Sink[ByteString])(implicit materializer: FlowMaterializer): Unit = + def run(source: Source[String], sink: Sink[ByteString])(implicit materializer: ActorFlowMaterializer): Unit = FlowGraph(graph) { builder ⇒ builder.attachSource(in, source) builder.attachSink(out, sink) @@ -55,10 +55,10 @@ object GraphOpsIntegrationSpec { class GraphOpsIntegrationSpec extends AkkaSpec { import akka.stream.scaladsl.GraphOpsIntegrationSpec._ - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "FlowGraphs" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphUnzipSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphUnzipSpec.scala index cce5d195ab..47534769a4 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphUnzipSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/GraphUnzipSpec.scala @@ -2,17 +2,17 @@ package akka.stream.scaladsl import scala.concurrent.duration._ -import akka.stream.{ OverflowStrategy, MaterializerSettings } -import akka.stream.FlowMaterializer +import akka.stream.{ OverflowStrategy, ActorFlowMaterializerSettings } +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.FlowGraphImplicits._ import akka.stream.testkit.{ StreamTestKit, AkkaSpec } class GraphUnzipSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A unzip" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/ImplicitFlowMaterializerSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/ImplicitFlowMaterializerSpec.scala index 504c8b790d..bbf8703f62 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/ImplicitFlowMaterializerSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/ImplicitFlowMaterializerSpec.scala @@ -4,7 +4,7 @@ package akka.stream.scaladsl import akka.actor.{ Actor, Props } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.testkit._ import akka.pattern.pipe @@ -12,14 +12,14 @@ import akka.pattern.pipe object ImplicitFlowMaterializerSpec { class SomeActor(input: List[String]) extends Actor with ImplicitFlowMaterializer { - override def flowMaterializerSettings = MaterializerSettings(context.system) + override def flowMaterializerSettings = ActorFlowMaterializerSettings(context.system) .withInputBuffer(initialSize = 2, maxSize = 16) val flow = Source(input).map(_.toUpperCase()) def receive = { case "run" ⇒ - // run takes an implicit FlowMaterializer parameter, which is provided by ImplicitFlowMaterializer + // run takes an implicit ActorFlowMaterializer parameter, which is provided by ImplicitFlowMaterializer import context.dispatcher flow.fold("")(_ + _) pipeTo sender() } @@ -31,7 +31,7 @@ class ImplicitFlowMaterializerSpec extends AkkaSpec with ImplicitSender { "An ImplicitFlowMaterializer" must { - "provide implicit FlowMaterializer" in { + "provide implicit ActorFlowMaterializer" in { val actor = system.actorOf(Props(classOf[SomeActor], List("a", "b", "c")).withDispatcher("akka.test.stream-dispatcher")) actor ! "run" expectMsg("ABC") diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/OptimizingActorBasedFlowMaterializerSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/OptimizingActorBasedFlowMaterializerSpec.scala index 12660a6343..5285698bb7 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/OptimizingActorBasedFlowMaterializerSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/OptimizingActorBasedFlowMaterializerSpec.scala @@ -4,20 +4,19 @@ package akka.stream.scaladsl import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.{ FlowMaterializer, MaterializerSettings } -import akka.stream.impl.{ Optimizations, ActorBasedFlowMaterializer } +import akka.stream.{ ActorFlowMaterializer, ActorFlowMaterializerSettings, Optimizations } import akka.stream.testkit.AkkaSpec import akka.testkit._ import scala.concurrent.duration._ import scala.concurrent.Await -class OptimizingActorBasedFlowMaterializerSpec extends AkkaSpec with ImplicitSender { +class OptimizingActorFlowMaterializerSpec extends AkkaSpec with ImplicitSender { - "ActorBasedFlowMaterializer" must { + "ActorFlowMaterializer" must { //FIXME Add more and meaningful tests to verify that optimizations occur and have the same semantics as the non-optimized code "optimize filter + map" in { - implicit val mat = FlowMaterializer().asInstanceOf[ActorBasedFlowMaterializer].copy(optimizations = Optimizations.all) + implicit val mat = ActorFlowMaterializer(ActorFlowMaterializerSettings(system).withOptimizations(Optimizations.all)) val f = Source(1 to 100). drop(4). drop(5). @@ -42,7 +41,7 @@ class OptimizingActorBasedFlowMaterializerSpec extends AkkaSpec with ImplicitSen } "optimize map + map" in { - implicit val mat = FlowMaterializer().asInstanceOf[ActorBasedFlowMaterializer].copy(optimizations = Optimizations.all) + implicit val mat = ActorFlowMaterializer(ActorFlowMaterializerSettings(system).withOptimizations(Optimizations.all)) val fl = Source(1 to 100).map(_ + 2).map(_ * 2).fold(0)(_ + _) val expected = (1 to 100).map(_ + 2).map(_ * 2).fold(0)(_ + _) diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/PublisherSinkSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/PublisherSinkSpec.scala index 957848316e..347c86829c 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/PublisherSinkSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/PublisherSinkSpec.scala @@ -3,14 +3,14 @@ */ package akka.stream.scaladsl -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import org.scalatest.concurrent.ScalaFutures._ class PublisherSinkSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A PublisherSink" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SourceSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SourceSpec.scala index cfc3e830d7..7d18a04dff 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SourceSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SourceSpec.scala @@ -6,13 +6,13 @@ package akka.stream.scaladsl import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit class SourceSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "Singleton Source" must { "produce element" in { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubscriberSinkSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubscriberSinkSpec.scala index f746293a58..ad6ce26c49 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubscriberSinkSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubscriberSinkSpec.scala @@ -3,17 +3,17 @@ */ package akka.stream.scaladsl -import akka.stream.FlowMaterializer -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializer +import akka.stream.ActorFlowMaterializerSettings import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit class SubscriberSinkSpec extends AkkaSpec { - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 16) - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "A Flow with SubscriberSink" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubstreamSubscriptionTimeoutSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubstreamSubscriptionTimeoutSpec.scala index 1f671d3599..59fba6a5c0 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubstreamSubscriptionTimeoutSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/SubstreamSubscriptionTimeoutSpec.scala @@ -4,7 +4,7 @@ package akka.stream.scaladsl import akka.actor.{ ExtendedActorSystem, ActorIdentity, ActorRef, Identify } -import akka.stream.{ FlowMaterializer, MaterializerSettings } +import akka.stream.{ ActorFlowMaterializer, ActorFlowMaterializerSettings } import akka.stream.impl.SubscriptionTimeoutException import akka.stream.testkit._ import akka.util.Timeout @@ -30,11 +30,11 @@ class SubstreamSubscriptionTimeoutSpec(conf: String) extends AkkaSpec(conf) { this(300.millis) } - val settings = MaterializerSettings(system) + val settings = ActorFlowMaterializerSettings(system) .withInputBuffer(initialSize = 2, maxSize = 2) implicit val dispatcher = system.dispatcher - implicit val materializer = FlowMaterializer(settings) + implicit val materializer = ActorFlowMaterializer(settings) "groupBy" must { diff --git a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/TickSourceSpec.scala b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/TickSourceSpec.scala index 3573031604..c50ca62e40 100644 --- a/akka-stream-tests/src/test/scala/akka/stream/scaladsl/TickSourceSpec.scala +++ b/akka-stream-tests/src/test/scala/akka/stream/scaladsl/TickSourceSpec.scala @@ -5,14 +5,14 @@ package akka.stream.scaladsl import scala.concurrent.duration._ import scala.util.control.NoStackTrace -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.testkit.AkkaSpec import akka.stream.testkit.StreamTestKit -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings class TickSourceSpec extends AkkaSpec { - implicit val materializer = FlowMaterializer() + implicit val materializer = ActorFlowMaterializer() "A Flow based on tick publisher" must { "produce ticks" in { diff --git a/akka-stream/src/main/boilerplate/akka/stream/impl/ZipWith.scala.template b/akka-stream/src/main/boilerplate/akka/stream/impl/ZipWith.scala.template index 584a656a74..76ae73aaaf 100644 --- a/akka-stream/src/main/boilerplate/akka/stream/impl/ZipWith.scala.template +++ b/akka-stream/src/main/boilerplate/akka/stream/impl/ZipWith.scala.template @@ -4,7 +4,7 @@ package akka.stream.impl import akka.actor.Props -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings /** * INTERNAL API @@ -12,18 +12,18 @@ import akka.stream.MaterializerSettings private[akka] object ZipWith { /** @param f MUST be a FunctionN type. */ - def props(settings: MaterializerSettings, f: Any): Props = f match { + def props(settings: ActorFlowMaterializerSettings, f: Any): Props = f match { [2..#case f1: Function1[[#Any#], Any] => Props(new Zip1With(settings, f1))# ] } - [2..#def props(settings: MaterializerSettings, f: Function1[[#Any#], Any]): Props = + [2..#def props(settings: ActorFlowMaterializerSettings, f: Function1[[#Any#], Any]): Props = Props(new Zip1With(settings, f))# ] } [2..#/** INTERNAL API */ -private[akka] final class Zip1With(_settings: MaterializerSettings, f: Function1[[#Any#], Any]) extends FanIn(_settings, inputPorts = 1) { +private[akka] final class Zip1With(_settings: ActorFlowMaterializerSettings, f: Function1[[#Any#], Any]) extends FanIn(_settings, inputPorts = 1) { inputBunch.markAllInputs() nextPhase(TransferPhase(inputBunch.AllOfMarkedInputs && primaryOutputs.NeedsDemand) { () ⇒ diff --git a/akka-stream/src/main/scala/akka/stream/FlowMaterializer.scala b/akka-stream/src/main/scala/akka/stream/FlowMaterializer.scala index 6b6ca80ac5..da6479b043 100644 --- a/akka-stream/src/main/scala/akka/stream/FlowMaterializer.scala +++ b/akka-stream/src/main/scala/akka/stream/FlowMaterializer.scala @@ -5,12 +5,9 @@ package akka.stream import java.util.Locale import java.util.concurrent.TimeUnit - import akka.stream.impl._ import akka.stream.scaladsl.Key - import scala.collection.immutable - import akka.actor.ActorContext import akka.actor.ActorRefFactory import akka.actor.ActorSystem @@ -18,33 +15,34 @@ import akka.actor.ExtendedActorSystem import com.typesafe.config.Config import org.reactivestreams.Publisher import org.reactivestreams.Subscriber - import scala.concurrent.duration._ +import akka.actor.Props +import akka.actor.ActorRef -object FlowMaterializer { +object ActorFlowMaterializer { /** - * Scala API: Creates a FlowMaterializer which will execute every step of a transformation + * Scala API: Creates a ActorFlowMaterializer which will execute every step of a transformation * pipeline within its own [[akka.actor.Actor]]. The required [[akka.actor.ActorRefFactory]] * (which can be either an [[akka.actor.ActorSystem]] or an [[akka.actor.ActorContext]]) * will be used to create one actor that in turn creates actors for the transformation steps. * - * The materializer's [[akka.stream.MaterializerSettings]] will be obtained from the + * The materializer's [[akka.stream.ActorFlowMaterializerSettings]] will be obtained from the * configuration of the `context`'s underlying [[akka.actor.ActorSystem]]. * * The `namePrefix` is used as the first part of the names of the actors running * the processing steps. The default `namePrefix` is `"flow"`. The actor names are built up of * `namePrefix-flowNumber-flowStepNumber-stepName`. */ - def apply(materializerSettings: Option[MaterializerSettings] = None, namePrefix: Option[String] = None)(implicit context: ActorRefFactory): FlowMaterializer = { + def apply(materializerSettings: Option[ActorFlowMaterializerSettings] = None, namePrefix: Option[String] = None)(implicit context: ActorRefFactory): ActorFlowMaterializer = { val system = actorSystemOf(context) - val settings = materializerSettings getOrElse MaterializerSettings(system) + val settings = materializerSettings getOrElse ActorFlowMaterializerSettings(system) apply(settings, namePrefix.getOrElse("flow"))(context) } /** - * Scala API: Creates a FlowMaterializer which will execute every step of a transformation + * Scala API: Creates a ActorFlowMaterializer which will execute every step of a transformation * pipeline within its own [[akka.actor.Actor]]. The required [[akka.actor.ActorRefFactory]] * (which can be either an [[akka.actor.ActorSystem]] or an [[akka.actor.ActorContext]]) * will be used to create these actors, therefore it is *forbidden* to pass this object @@ -54,20 +52,19 @@ object FlowMaterializer { * the processing steps. The default `namePrefix` is `"flow"`. The actor names are built up of * `namePrefix-flowNumber-flowStepNumber-stepName`. */ - def apply(materializerSettings: MaterializerSettings, namePrefix: String)(implicit context: ActorRefFactory): FlowMaterializer = { + def apply(materializerSettings: ActorFlowMaterializerSettings, namePrefix: String)(implicit context: ActorRefFactory): ActorFlowMaterializer = { val system = actorSystemOf(context) - new ActorBasedFlowMaterializer( + new ActorFlowMaterializerImpl( materializerSettings, system.dispatchers, context.actorOf(StreamSupervisor.props(materializerSettings).withDispatcher(materializerSettings.dispatcher)), FlowNameCounter(system).counter, - namePrefix, - optimizations = Optimizations.none) + namePrefix) } /** - * Scala API: Creates a FlowMaterializer which will execute every step of a transformation + * Scala API: Creates a ActorFlowMaterializer which will execute every step of a transformation * pipeline within its own [[akka.actor.Actor]]. The required [[akka.actor.ActorRefFactory]] * (which can be either an [[akka.actor.ActorSystem]] or an [[akka.actor.ActorContext]]) * will be used to create these actors, therefore it is *forbidden* to pass this object @@ -77,11 +74,11 @@ object FlowMaterializer { * the processing steps. The default `namePrefix` is `"flow"`. The actor names are built up of * `namePrefix-flowNumber-flowStepNumber-stepName`. */ - def apply(materializerSettings: MaterializerSettings)(implicit context: ActorRefFactory): FlowMaterializer = + def apply(materializerSettings: ActorFlowMaterializerSettings)(implicit context: ActorRefFactory): ActorFlowMaterializer = apply(Some(materializerSettings), None) /** - * Java API: Creates a FlowMaterializer which will execute every step of a transformation + * Java API: Creates a ActorFlowMaterializer which will execute every step of a transformation * pipeline within its own [[akka.actor.Actor]]. The required [[akka.actor.ActorRefFactory]] * (which can be either an [[akka.actor.ActorSystem]] or an [[akka.actor.ActorContext]]) * will be used to create these actors, therefore it is *forbidden* to pass this object @@ -90,20 +87,20 @@ object FlowMaterializer { * Defaults the actor name prefix used to name actors running the processing steps to `"flow"`. * The actor names are built up of `namePrefix-flowNumber-flowStepNumber-stepName`. */ - def create(context: ActorRefFactory): FlowMaterializer = + def create(context: ActorRefFactory): ActorFlowMaterializer = apply()(context) /** - * Java API: Creates a FlowMaterializer which will execute every step of a transformation + * Java API: Creates a ActorFlowMaterializer which will execute every step of a transformation * pipeline within its own [[akka.actor.Actor]]. The required [[akka.actor.ActorRefFactory]] * (which can be either an [[akka.actor.ActorSystem]] or an [[akka.actor.ActorContext]]) * will be used to create one actor that in turn creates actors for the transformation steps. */ - def create(settings: MaterializerSettings, context: ActorRefFactory): FlowMaterializer = + def create(settings: ActorFlowMaterializerSettings, context: ActorRefFactory): ActorFlowMaterializer = apply(Option(settings), None)(context) /** - * Java API: Creates a FlowMaterializer which will execute every step of a transformation + * Java API: Creates a ActorFlowMaterializer which will execute every step of a transformation * pipeline within its own [[akka.actor.Actor]]. The required [[akka.actor.ActorRefFactory]] * (which can be either an [[akka.actor.ActorSystem]] or an [[akka.actor.ActorContext]]) * will be used to create these actors, therefore it is *forbidden* to pass this object @@ -113,7 +110,7 @@ object FlowMaterializer { * the processing steps. The default `namePrefix` is `"flow"`. The actor names are built up of * `namePrefix-flowNumber-flowStepNumber-stepName`. */ - def create(settings: MaterializerSettings, context: ActorRefFactory, namePrefix: String): FlowMaterializer = + def create(settings: ActorFlowMaterializerSettings, context: ActorRefFactory, namePrefix: String): ActorFlowMaterializer = apply(Option(settings), Option(namePrefix))(context) private def actorSystemOf(context: ActorRefFactory): ActorSystem = { @@ -130,13 +127,24 @@ object FlowMaterializer { } /** - * A FlowMaterializer takes the list of transformations comprising a + * A ActorFlowMaterializer takes the list of transformations comprising a * [[akka.stream.scaladsl.Flow]] and materializes them in the form of * [[org.reactivestreams.Processor]] instances. How transformation * steps are split up into asynchronous regions is implementation * dependent. */ -abstract class FlowMaterializer(val settings: MaterializerSettings) { +abstract class ActorFlowMaterializer extends FlowMaterializer { + + def settings: ActorFlowMaterializerSettings + + /** + * INTERNAL API + */ + private[akka] def actorOf(props: Props, name: String): ActorRef + +} + +abstract class FlowMaterializer { /** * The `namePrefix` shall be used for deriving the names of processing @@ -161,69 +169,71 @@ abstract class FlowMaterializer(val settings: MaterializerSettings) { } -object MaterializerSettings { - /** - * Create [[MaterializerSettings]]. - * - * You can refine the configuration based settings using [[MaterializerSettings#withInputBuffer]], - * [[MaterializerSettings#withDispatcher]] - */ - def apply(system: ActorSystem): MaterializerSettings = - apply(system.settings.config.getConfig("akka.stream.materializer")) - - /** - * Create [[MaterializerSettings]]. - * - * You can refine the configuration based settings using [[MaterializerSettings#withInputBuffer]], - * [[MaterializerSettings#withDispatcher]] - */ - def apply(config: Config): MaterializerSettings = - MaterializerSettings( - config.getInt("initial-input-buffer-size"), - config.getInt("max-input-buffer-size"), - config.getString("dispatcher"), - StreamSubscriptionTimeoutSettings(config), - config.getString("file-io-dispatcher"), - config.getBoolean("debug-logging")) - - /** - * Java API - * - * You can refine the configuration based settings using [[MaterializerSettings#withInputBuffer]], - * [[MaterializerSettings#withDispatcher]] - */ - def create(system: ActorSystem): MaterializerSettings = - apply(system) - - /** - * Java API - * - * You can refine the configuration based settings using [[MaterializerSettings#withInputBuffer]], - * [[MaterializerSettings#withDispatcher]] - */ - def create(config: Config): MaterializerSettings = - apply(config) -} - /** * This exception or subtypes thereof should be used to signal materialization * failures. */ class MaterializationException(msg: String, cause: Throwable = null) extends RuntimeException(msg, cause) +object ActorFlowMaterializerSettings { + /** + * Create [[ActorFlowMaterializerSettings]]. + * + * You can refine the configuration based settings using [[ActorFlowMaterializerSettings#withInputBuffer]], + * [[ActorFlowMaterializerSettings#withDispatcher]] + */ + def apply(system: ActorSystem): ActorFlowMaterializerSettings = + apply(system.settings.config.getConfig("akka.stream.materializer")) + + /** + * Create [[ActorFlowMaterializerSettings]]. + * + * You can refine the configuration based settings using [[ActorFlowMaterializerSettings#withInputBuffer]], + * [[ActorFlowMaterializerSettings#withDispatcher]] + */ + def apply(config: Config): ActorFlowMaterializerSettings = + ActorFlowMaterializerSettings( + initialInputBufferSize = config.getInt("initial-input-buffer-size"), + maxInputBufferSize = config.getInt("max-input-buffer-size"), + dispatcher = config.getString("dispatcher"), + subscriptionTimeoutSettings = StreamSubscriptionTimeoutSettings(config), + fileIODispatcher = config.getString("file-io-dispatcher"), + debugLogging = config.getBoolean("debug-logging"), + optimizations = Optimizations.none) + + /** + * Java API + * + * You can refine the configuration based settings using [[ActorFlowMaterializerSettings#withInputBuffer]], + * [[ActorFlowMaterializerSettings#withDispatcher]] + */ + def create(system: ActorSystem): ActorFlowMaterializerSettings = + apply(system) + + /** + * Java API + * + * You can refine the configuration based settings using [[ActorFlowMaterializerSettings#withInputBuffer]], + * [[ActorFlowMaterializerSettings#withDispatcher]] + */ + def create(config: Config): ActorFlowMaterializerSettings = + apply(config) +} + /** * The buffers employed by the generated Processors can be configured by * creating an appropriate instance of this class. * * This will likely be replaced in the future by auto-tuning these values at runtime. */ -final case class MaterializerSettings( +final case class ActorFlowMaterializerSettings( initialInputBufferSize: Int, maxInputBufferSize: Int, dispatcher: String, subscriptionTimeoutSettings: StreamSubscriptionTimeoutSettings, fileIODispatcher: String, // FIXME Why does this exist?! - debugLogging: Boolean) { + debugLogging: Boolean, + optimizations: Optimizations) { require(initialInputBufferSize > 0, "initialInputBufferSize must be > 0") @@ -231,15 +241,18 @@ final case class MaterializerSettings( require(isPowerOfTwo(maxInputBufferSize), "maxInputBufferSize must be a power of two") require(initialInputBufferSize <= maxInputBufferSize, s"initialInputBufferSize($initialInputBufferSize) must be <= maxInputBufferSize($maxInputBufferSize)") - def withInputBuffer(initialSize: Int, maxSize: Int): MaterializerSettings = + def withInputBuffer(initialSize: Int, maxSize: Int): ActorFlowMaterializerSettings = copy(initialInputBufferSize = initialSize, maxInputBufferSize = maxSize) - def withDispatcher(dispatcher: String): MaterializerSettings = + def withDispatcher(dispatcher: String): ActorFlowMaterializerSettings = copy(dispatcher = dispatcher) - def withDebugLogging(enable: Boolean): MaterializerSettings = + def withDebugLogging(enable: Boolean): ActorFlowMaterializerSettings = copy(debugLogging = enable) + def withOptimizations(optimizations: Optimizations): ActorFlowMaterializerSettings = + copy(optimizations = optimizations) + private def isPowerOfTwo(n: Integer): Boolean = (n & (n - 1)) == 0 // FIXME this considers 0 a power of 2 } @@ -278,3 +291,12 @@ object StreamSubscriptionTimeoutTerminationMode { def cancel = CancelTermination } + +final object Optimizations { + val none: Optimizations = Optimizations(collapsing = false, elision = false, simplification = false, fusion = false) + val all: Optimizations = Optimizations(collapsing = true, elision = true, simplification = true, fusion = true) +} + +final case class Optimizations(collapsing: Boolean, elision: Boolean, simplification: Boolean, fusion: Boolean) { + def isEnabled: Boolean = collapsing || elision || simplification || fusion +} diff --git a/akka-stream/src/main/scala/akka/stream/impl/ActorBasedFlowMaterializer.scala b/akka-stream/src/main/scala/akka/stream/impl/ActorFlowMaterializerImpl.scala similarity index 94% rename from akka-stream/src/main/scala/akka/stream/impl/ActorBasedFlowMaterializer.scala rename to akka-stream/src/main/scala/akka/stream/impl/ActorFlowMaterializerImpl.scala index 158a7e4df1..55a64b73cf 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/ActorBasedFlowMaterializer.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/ActorFlowMaterializerImpl.scala @@ -4,7 +4,6 @@ package akka.stream.impl import java.util.concurrent.atomic.AtomicLong - import akka.dispatch.Dispatchers import akka.event.Logging import akka.stream.impl.fusing.ActorInterpreter @@ -13,13 +12,16 @@ import scala.annotation.tailrec import scala.collection.immutable import scala.concurrent.{ Promise, ExecutionContext, Await, Future } import akka.actor._ -import akka.stream.{ FlowMaterializer, MaterializerSettings, OverflowStrategy, TimerTransformer } +import akka.stream.{ ActorFlowMaterializer, ActorFlowMaterializerSettings, OverflowStrategy, TimerTransformer } import akka.stream.MaterializationException import akka.stream.actor.ActorSubscriber import akka.stream.scaladsl._ import akka.stream.stage._ import akka.pattern.ask import org.reactivestreams.{ Processor, Publisher, Subscriber } +import akka.stream.Optimizations + +// FIXME move Ast things to separate file /** * INTERNAL API @@ -222,34 +224,17 @@ private[akka] object Ast { final case class FlexiRouteNode(factory: FlexiRouteImpl.RouteLogicFactory[Any], attributes: OperationAttributes) extends FanOutAstNode } -/** - * INTERNAL API - */ -final object Optimizations { - val none: Optimizations = Optimizations(collapsing = false, elision = false, simplification = false, fusion = false) - val all: Optimizations = Optimizations(collapsing = true, elision = true, simplification = true, fusion = true) -} -/** - * INTERNAL API - */ -final case class Optimizations(collapsing: Boolean, elision: Boolean, simplification: Boolean, fusion: Boolean) { - def isEnabled: Boolean = collapsing || elision || simplification || fusion -} - -/** - * INTERNAL API - */ -case class ActorBasedFlowMaterializer(override val settings: MaterializerSettings, - dispatchers: Dispatchers, // FIXME is this the right choice for loading an EC? - supervisor: ActorRef, - flowNameCounter: AtomicLong, - namePrefix: String, - optimizations: Optimizations) - extends FlowMaterializer(settings) { +case class ActorFlowMaterializerImpl( + override val settings: ActorFlowMaterializerSettings, + dispatchers: Dispatchers, // FIXME is this the right choice for loading an EC? + supervisor: ActorRef, + flowNameCounter: AtomicLong, + namePrefix: String) + extends ActorFlowMaterializer { import Ast.AstNode - def withNamePrefix(name: String): FlowMaterializer = this.copy(namePrefix = name) + override def withNamePrefix(name: String): ActorFlowMaterializerImpl = this.copy(namePrefix = name) private[this] def nextFlowNameCount(): Long = flowNameCounter.incrementAndGet() @@ -272,6 +257,8 @@ case class ActorBasedFlowMaterializer(override val settings: MaterializerSetting //FIXME Optimize the implementation of the optimizer (no joke) // AstNodes are in reverse order, Fusable Ops are in order private[this] final def optimize(ops: List[Ast.AstNode], mmFuture: Future[MaterializedMap]): (List[Ast.AstNode], Int) = { + import settings.optimizations + @tailrec def analyze(rest: List[Ast.AstNode], optimized: List[Ast.AstNode], fuseCandidates: List[Stage[_, _]]): (List[Ast.AstNode], Int) = { //The `verify` phase @@ -418,7 +405,7 @@ case class ActorBasedFlowMaterializer(override val settings: MaterializerSetting (attachSource(id, flowName), attachSink(id, flowName), empty) } } else { - val (ops, opsSize) = if (optimizations.isEnabled) optimize(rawOps, mmFuture) else (rawOps, rawOps.length) + val (ops, opsSize) = if (settings.optimizations.isEnabled) optimize(rawOps, mmFuture) else (rawOps, rawOps.length) val (last, lastMap) = processorForNode[Any, Out](ops.head, flowName, opsSize) val (first, map) = processorChain(last, ops.tail, flowName, opsSize - 1, lastMap) (attachSource(first.asInstanceOf[Processor[In, Any]], flowName), attachSink(last, flowName), map) @@ -451,7 +438,7 @@ case class ActorBasedFlowMaterializer(override val settings: MaterializerSetting (ActorProcessorFactory[In, Out](actorOf(ActorProcessorFactory.props(this, op), s"$flowName-$n-${op.attributes.name}", op)), MaterializedMap.empty) } - private[akka] def actorOf(props: Props, name: String): ActorRef = + override private[akka] def actorOf(props: Props, name: String): ActorRef = actorOf(props, name, settings.dispatcher) private[akka] def actorOf(props: Props, name: String, ast: Ast.JunctionAstNode): ActorRef = @@ -542,12 +529,12 @@ private[akka] class FlowNameCounter extends Extension { * INTERNAL API */ private[akka] object StreamSupervisor { - def props(settings: MaterializerSettings): Props = Props(new StreamSupervisor(settings)) + def props(settings: ActorFlowMaterializerSettings): Props = Props(new StreamSupervisor(settings)) final case class Materialize(props: Props, name: String) extends DeadLetterSuppression } -private[akka] class StreamSupervisor(settings: MaterializerSettings) extends Actor { +private[akka] class StreamSupervisor(settings: ActorFlowMaterializerSettings) extends Actor { import StreamSupervisor._ override def supervisorStrategy = SupervisorStrategy.stoppingStrategy @@ -565,7 +552,7 @@ private[akka] class StreamSupervisor(settings: MaterializerSettings) extends Act private[akka] object ActorProcessorFactory { import Ast._ - def props(materializer: FlowMaterializer, op: AstNode): Props = { + def props(materializer: ActorFlowMaterializer, op: AstNode): Props = { val settings = materializer.settings // USE THIS TO AVOID CLOSING OVER THE MATERIALIZER BELOW op match { case Fused(ops, _) ⇒ ActorInterpreter.props(settings, ops) diff --git a/akka-stream/src/main/scala/akka/stream/impl/ActorProcessor.scala b/akka-stream/src/main/scala/akka/stream/impl/ActorProcessor.scala index 31f6739a6d..6f1f5852f7 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/ActorProcessor.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/ActorProcessor.scala @@ -6,7 +6,7 @@ package akka.stream.impl import java.util.Arrays import akka.actor._ -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.actor.ActorSubscriber.OnSubscribe import akka.stream.actor.ActorSubscriberMessage.{ OnNext, OnComplete, OnError } import org.reactivestreams.{ Subscriber, Subscription, Processor } @@ -220,7 +220,7 @@ private[akka] class SimpleOutputs(val actor: ActorRef, val pump: Pump) extends D /** * INTERNAL API */ -private[akka] abstract class ActorProcessorImpl(val settings: MaterializerSettings) +private[akka] abstract class ActorProcessorImpl(val settings: ActorFlowMaterializerSettings) extends Actor with ActorLogging with Pump diff --git a/akka-stream/src/main/scala/akka/stream/impl/ActorPublisher.scala b/akka-stream/src/main/scala/akka/stream/impl/ActorPublisher.scala index a17372bd2a..fb06c53dfe 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/ActorPublisher.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/ActorPublisher.scala @@ -8,7 +8,7 @@ import scala.annotation.tailrec import scala.collection.immutable import scala.util.control.{ NoStackTrace, NonFatal } import akka.actor.{ Actor, ActorLogging, ActorRef, Props, Terminated } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import org.reactivestreams.{ Publisher, Subscriber } import org.reactivestreams.Subscription diff --git a/akka-stream/src/main/scala/akka/stream/impl/ConcatAllImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/ConcatAllImpl.scala index bd1e057bb7..fd9cf38960 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/ConcatAllImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/ConcatAllImpl.scala @@ -3,22 +3,22 @@ */ package akka.stream.impl -import akka.stream.FlowMaterializer import akka.stream.scaladsl.Sink import akka.actor.Props +import akka.stream.ActorFlowMaterializer /** * INTERNAL API */ private[akka] object ConcatAllImpl { - def props(materializer: FlowMaterializer): Props = + def props(materializer: ActorFlowMaterializer): Props = Props(new ConcatAllImpl(materializer)) } /** * INTERNAL API */ -private[akka] class ConcatAllImpl(materializer: FlowMaterializer) +private[akka] class ConcatAllImpl(materializer: ActorFlowMaterializer) extends MultiStreamInputProcessor(materializer.settings) { import akka.stream.impl.MultiStreamInputProcessor._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/FanIn.scala b/akka-stream/src/main/scala/akka/stream/impl/FanIn.scala index 72863adb81..8217fe6d98 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/FanIn.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/FanIn.scala @@ -5,7 +5,7 @@ package akka.stream.impl import akka.actor.{ ActorRef, ActorLogging, Actor } import akka.actor.Props -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.actor.{ ActorSubscriberMessage, ActorSubscriber } import org.reactivestreams.{ Subscription, Subscriber } import akka.actor.DeadLetterSuppression @@ -197,7 +197,7 @@ private[akka] object FanIn { /** * INTERNAL API */ -private[akka] abstract class FanIn(val settings: MaterializerSettings, val inputPorts: Int) extends Actor with ActorLogging with Pump { +private[akka] abstract class FanIn(val settings: ActorFlowMaterializerSettings, val inputPorts: Int) extends Actor with ActorLogging with Pump { import FanIn._ protected val primaryOutputs: Outputs = new SimpleOutputs(self, this) @@ -240,14 +240,14 @@ private[akka] abstract class FanIn(val settings: MaterializerSettings, val input * INTERNAL API */ private[akka] object FairMerge { - def props(settings: MaterializerSettings, inputPorts: Int): Props = + def props(settings: ActorFlowMaterializerSettings, inputPorts: Int): Props = Props(new FairMerge(settings, inputPorts)) } /** * INTERNAL API */ -private[akka] final class FairMerge(_settings: MaterializerSettings, _inputPorts: Int) extends FanIn(_settings, _inputPorts) { +private[akka] final class FairMerge(_settings: ActorFlowMaterializerSettings, _inputPorts: Int) extends FanIn(_settings, _inputPorts) { inputBunch.markAllInputs() nextPhase(TransferPhase(inputBunch.AnyOfMarkedInputs && primaryOutputs.NeedsDemand) { () ⇒ @@ -263,14 +263,14 @@ private[akka] final class FairMerge(_settings: MaterializerSettings, _inputPorts private[akka] object UnfairMerge { val DefaultPreferred = 0 - def props(settings: MaterializerSettings, inputPorts: Int): Props = + def props(settings: ActorFlowMaterializerSettings, inputPorts: Int): Props = Props(new UnfairMerge(settings, inputPorts, DefaultPreferred)) } /** * INTERNAL API */ -private[akka] final class UnfairMerge(_settings: MaterializerSettings, +private[akka] final class UnfairMerge(_settings: ActorFlowMaterializerSettings, _inputPorts: Int, val preferred: Int) extends FanIn(_settings, _inputPorts) { inputBunch.markAllInputs() @@ -285,13 +285,13 @@ private[akka] final class UnfairMerge(_settings: MaterializerSettings, * INTERNAL API */ private[akka] object Concat { - def props(settings: MaterializerSettings): Props = Props(new Concat(settings)) + def props(settings: ActorFlowMaterializerSettings): Props = Props(new Concat(settings)) } /** * INTERNAL API */ -private[akka] final class Concat(_settings: MaterializerSettings) extends FanIn(_settings, inputPorts = 2) { +private[akka] final class Concat(_settings: ActorFlowMaterializerSettings) extends FanIn(_settings, inputPorts = 2) { val First = 0 val Second = 1 diff --git a/akka-stream/src/main/scala/akka/stream/impl/FanOut.scala b/akka-stream/src/main/scala/akka/stream/impl/FanOut.scala index 5dc77ecdc9..c70f4754a8 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/FanOut.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/FanOut.scala @@ -8,7 +8,7 @@ import akka.actor.Actor import akka.actor.ActorLogging import akka.actor.ActorRef import akka.actor.Props -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import org.reactivestreams.Subscription import akka.actor.DeadLetterSuppression @@ -227,7 +227,7 @@ private[akka] object FanOut { /** * INTERNAL API */ -private[akka] abstract class FanOut(val settings: MaterializerSettings, val outputPorts: Int) extends Actor with ActorLogging with Pump { +private[akka] abstract class FanOut(val settings: ActorFlowMaterializerSettings, val outputPorts: Int) extends Actor with ActorLogging with Pump { import FanOut._ protected val outputBunch = new OutputBunch(outputPorts, self, this) @@ -270,14 +270,14 @@ private[akka] abstract class FanOut(val settings: MaterializerSettings, val outp * INTERNAL API */ private[akka] object Broadcast { - def props(settings: MaterializerSettings, outputPorts: Int): Props = + def props(settings: ActorFlowMaterializerSettings, outputPorts: Int): Props = Props(new Broadcast(settings, outputPorts)) } /** * INTERNAL API */ -private[akka] class Broadcast(_settings: MaterializerSettings, _outputPorts: Int) extends FanOut(_settings, _outputPorts) { +private[akka] class Broadcast(_settings: ActorFlowMaterializerSettings, _outputPorts: Int) extends FanOut(_settings, _outputPorts) { outputBunch.markAllOutputs() nextPhase(TransferPhase(primaryInputs.NeedsInput && outputBunch.AllOfMarkedOutputs) { () ⇒ @@ -290,14 +290,14 @@ private[akka] class Broadcast(_settings: MaterializerSettings, _outputPorts: Int * INTERNAL API */ private[akka] object Balance { - def props(settings: MaterializerSettings, outputPorts: Int, waitForAllDownstreams: Boolean): Props = + def props(settings: ActorFlowMaterializerSettings, outputPorts: Int, waitForAllDownstreams: Boolean): Props = Props(new Balance(settings, outputPorts, waitForAllDownstreams)) } /** * INTERNAL API */ -private[akka] class Balance(_settings: MaterializerSettings, _outputPorts: Int, waitForAllDownstreams: Boolean) extends FanOut(_settings, _outputPorts) { +private[akka] class Balance(_settings: ActorFlowMaterializerSettings, _outputPorts: Int, waitForAllDownstreams: Boolean) extends FanOut(_settings, _outputPorts) { outputBunch.markAllOutputs() val runningPhase = TransferPhase(primaryInputs.NeedsInput && outputBunch.AnyOfMarkedOutputs) { () ⇒ @@ -317,14 +317,14 @@ private[akka] class Balance(_settings: MaterializerSettings, _outputPorts: Int, * INTERNAL API */ private[akka] object Unzip { - def props(settings: MaterializerSettings): Props = + def props(settings: ActorFlowMaterializerSettings): Props = Props(new Unzip(settings)) } /** * INTERNAL API */ -private[akka] class Unzip(_settings: MaterializerSettings) extends FanOut(_settings, outputPorts = 2) { +private[akka] class Unzip(_settings: ActorFlowMaterializerSettings) extends FanOut(_settings, outputPorts = 2) { outputBunch.markAllOutputs() nextPhase(TransferPhase(primaryInputs.NeedsInput && outputBunch.AllOfMarkedOutputs) { () ⇒ diff --git a/akka-stream/src/main/scala/akka/stream/impl/FanoutProcessor.scala b/akka-stream/src/main/scala/akka/stream/impl/FanoutProcessor.scala index ccff0f8bd6..c0db401758 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/FanoutProcessor.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/FanoutProcessor.scala @@ -1,7 +1,7 @@ package akka.stream.impl import akka.actor.{ Actor, ActorRef } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import org.reactivestreams.Subscriber /** @@ -91,7 +91,7 @@ private[akka] abstract class FanoutOutputs(val maxBufferSize: Int, val initialBu * INTERNAL API */ private[akka] class FanoutProcessorImpl( - _settings: MaterializerSettings, + _settings: ActorFlowMaterializerSettings, initialFanoutBufferSize: Int, maximumFanoutBufferSize: Int) extends ActorProcessorImpl(_settings) { diff --git a/akka-stream/src/main/scala/akka/stream/impl/FlexiMergeImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/FlexiMergeImpl.scala index c84fe9f789..8dc7ccbfd0 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/FlexiMergeImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/FlexiMergeImpl.scala @@ -4,7 +4,7 @@ package akka.stream.impl import akka.actor.Props -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl.OperationAttributes import akka.stream.scaladsl.FlexiMerge import scala.collection.breakOut @@ -14,7 +14,7 @@ import scala.util.control.NonFatal * INTERNAL API */ private[akka] object FlexiMergeImpl { - def props(settings: MaterializerSettings, inputCount: Int, mergeLogic: FlexiMerge.MergeLogic[Any]): Props = + def props(settings: ActorFlowMaterializerSettings, inputCount: Int, mergeLogic: FlexiMerge.MergeLogic[Any]): Props = Props(new FlexiMergeImpl(settings, inputCount, mergeLogic)) trait MergeLogicFactory[Out] { @@ -26,7 +26,7 @@ private[akka] object FlexiMergeImpl { /** * INTERNAL API */ -private[akka] class FlexiMergeImpl(_settings: MaterializerSettings, +private[akka] class FlexiMergeImpl(_settings: ActorFlowMaterializerSettings, inputCount: Int, mergeLogic: FlexiMerge.MergeLogic[Any]) extends FanIn(_settings, inputCount) { diff --git a/akka-stream/src/main/scala/akka/stream/impl/FlexiRouteImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/FlexiRouteImpl.scala index 02773cffd3..cf136fcd03 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/FlexiRouteImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/FlexiRouteImpl.scala @@ -7,7 +7,7 @@ import akka.stream.scaladsl.OperationAttributes import scala.collection.breakOut import akka.actor.Props import akka.stream.scaladsl.FlexiRoute -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.impl.FanOut.OutputBunch import scala.util.control.NonFatal @@ -15,7 +15,7 @@ import scala.util.control.NonFatal * INTERNAL API */ private[akka] object FlexiRouteImpl { - def props(settings: MaterializerSettings, outputCount: Int, routeLogic: FlexiRoute.RouteLogic[Any]): Props = + def props(settings: ActorFlowMaterializerSettings, outputCount: Int, routeLogic: FlexiRoute.RouteLogic[Any]): Props = Props(new FlexiRouteImpl(settings, outputCount, routeLogic)) trait RouteLogicFactory[In] { @@ -27,7 +27,7 @@ private[akka] object FlexiRouteImpl { /** * INTERNAL API */ -private[akka] class FlexiRouteImpl(_settings: MaterializerSettings, +private[akka] class FlexiRouteImpl(_settings: ActorFlowMaterializerSettings, outputCount: Int, routeLogic: FlexiRoute.RouteLogic[Any]) extends FanOut(_settings, outputCount) { diff --git a/akka-stream/src/main/scala/akka/stream/impl/FuturePublisher.scala b/akka-stream/src/main/scala/akka/stream/impl/FuturePublisher.scala index 6a7f6b21b8..da37bbd9aa 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/FuturePublisher.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/FuturePublisher.scala @@ -12,7 +12,7 @@ import akka.actor.ActorRef import akka.actor.Props import akka.actor.Status import akka.actor.SupervisorStrategy -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.pattern.pipe import org.reactivestreams.Subscriber import org.reactivestreams.Subscription @@ -22,7 +22,7 @@ import akka.actor.DeadLetterSuppression * INTERNAL API */ private[akka] object FuturePublisher { - def props(future: Future[Any], settings: MaterializerSettings): Props = + def props(future: Future[Any], settings: ActorFlowMaterializerSettings): Props = Props(new FuturePublisher(future, settings)).withDispatcher(settings.dispatcher) object FutureSubscription { @@ -42,7 +42,7 @@ private[akka] object FuturePublisher { * INTERNAL API */ // FIXME why do we need to have an actor to drive a Future? -private[akka] class FuturePublisher(future: Future[Any], settings: MaterializerSettings) extends Actor with SoftShutdown { +private[akka] class FuturePublisher(future: Future[Any], settings: ActorFlowMaterializerSettings) extends Actor with SoftShutdown { import akka.stream.impl.FuturePublisher.FutureSubscription import akka.stream.impl.FuturePublisher.FutureSubscription.Cancel import akka.stream.impl.FuturePublisher.FutureSubscription.RequestMore diff --git a/akka-stream/src/main/scala/akka/stream/impl/GroupByProcessorImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/GroupByProcessorImpl.scala index 4c43f174c3..b3f1ad0663 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/GroupByProcessorImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/GroupByProcessorImpl.scala @@ -3,7 +3,7 @@ */ package akka.stream.impl -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl.Source import akka.actor.Props @@ -11,14 +11,14 @@ import akka.actor.Props * INTERNAL API */ private[akka] object GroupByProcessorImpl { - def props(settings: MaterializerSettings, keyFor: Any ⇒ Any): Props = + def props(settings: ActorFlowMaterializerSettings, keyFor: Any ⇒ Any): Props = Props(new GroupByProcessorImpl(settings, keyFor)) } /** * INTERNAL API */ -private[akka] class GroupByProcessorImpl(settings: MaterializerSettings, val keyFor: Any ⇒ Any) +private[akka] class GroupByProcessorImpl(settings: ActorFlowMaterializerSettings, val keyFor: Any ⇒ Any) extends MultiStreamOutputProcessor(settings) { import MultiStreamOutputProcessor._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/IteratorPublisher.scala b/akka-stream/src/main/scala/akka/stream/impl/IteratorPublisher.scala index 0a2b69298f..f351a0e3dd 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/IteratorPublisher.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/IteratorPublisher.scala @@ -8,7 +8,7 @@ import scala.util.control.NonFatal import akka.actor.Actor import akka.actor.Props import akka.event.Logging -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import org.reactivestreams.Subscriber @@ -16,7 +16,7 @@ import org.reactivestreams.Subscriber * INTERNAL API */ private[akka] object IteratorPublisher { - def props(iterator: Iterator[Any], settings: MaterializerSettings): Props = + def props(iterator: Iterator[Any], settings: ActorFlowMaterializerSettings): Props = Props(new IteratorPublisher(iterator, settings)).withDispatcher(settings.dispatcher) private case object PushMore @@ -34,7 +34,7 @@ private[akka] object IteratorPublisher { * INTERNAL API * Elements are produced from the iterator. */ -private[akka] class IteratorPublisher(iterator: Iterator[Any], settings: MaterializerSettings) extends Actor { +private[akka] class IteratorPublisher(iterator: Iterator[Any], settings: ActorFlowMaterializerSettings) extends Actor { import IteratorPublisher._ import ReactiveStreamsCompliance._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/MapAsyncProcessorImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/MapAsyncProcessorImpl.scala index 65d5150739..3925c158fe 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/MapAsyncProcessorImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/MapAsyncProcessorImpl.scala @@ -8,7 +8,7 @@ import scala.collection.immutable import scala.collection.immutable.TreeSet import scala.concurrent.Future import scala.util.control.NonFatal -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.pattern.pipe import scala.annotation.tailrec import akka.actor.Props @@ -19,7 +19,7 @@ import akka.actor.DeadLetterSuppression */ private[akka] object MapAsyncProcessorImpl { - def props(settings: MaterializerSettings, f: Any ⇒ Future[Any]): Props = + def props(settings: ActorFlowMaterializerSettings, f: Any ⇒ Future[Any]): Props = Props(new MapAsyncProcessorImpl(settings, f)) object FutureElement { @@ -37,7 +37,7 @@ private[akka] object MapAsyncProcessorImpl { /** * INTERNAL API */ -private[akka] class MapAsyncProcessorImpl(_settings: MaterializerSettings, f: Any ⇒ Future[Any]) +private[akka] class MapAsyncProcessorImpl(_settings: ActorFlowMaterializerSettings, f: Any ⇒ Future[Any]) extends ActorProcessorImpl(_settings) { import MapAsyncProcessorImpl._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/MapAsyncUnorderedProcessorImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/MapAsyncUnorderedProcessorImpl.scala index fa51c8e588..f9cf698c4d 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/MapAsyncUnorderedProcessorImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/MapAsyncUnorderedProcessorImpl.scala @@ -5,8 +5,8 @@ package akka.stream.impl import scala.concurrent.Future import scala.util.control.NonFatal -import akka.stream.MaterializerSettings -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.pattern.pipe import akka.actor.Props import akka.actor.DeadLetterSuppression @@ -15,7 +15,7 @@ import akka.actor.DeadLetterSuppression * INTERNAL API */ private[akka] object MapAsyncUnorderedProcessorImpl { - def props(settings: MaterializerSettings, f: Any ⇒ Future[Any]): Props = + def props(settings: ActorFlowMaterializerSettings, f: Any ⇒ Future[Any]): Props = Props(new MapAsyncUnorderedProcessorImpl(settings, f)) final case class FutureElement(element: Any) extends DeadLetterSuppression @@ -25,7 +25,7 @@ private[akka] object MapAsyncUnorderedProcessorImpl { /** * INTERNAL API */ -private[akka] class MapAsyncUnorderedProcessorImpl(_settings: MaterializerSettings, f: Any ⇒ Future[Any]) +private[akka] class MapAsyncUnorderedProcessorImpl(_settings: ActorFlowMaterializerSettings, f: Any ⇒ Future[Any]) extends ActorProcessorImpl(_settings) { import MapAsyncUnorderedProcessorImpl._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/PrefixAndTailImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/PrefixAndTailImpl.scala index 94432ba0f2..8028bebf29 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/PrefixAndTailImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/PrefixAndTailImpl.scala @@ -4,7 +4,7 @@ package akka.stream.impl import scala.collection.immutable -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl.Source import akka.actor.Props @@ -12,14 +12,14 @@ import akka.actor.Props * INTERNAL API */ private[akka] object PrefixAndTailImpl { - def props(settings: MaterializerSettings, takeMax: Int): Props = + def props(settings: ActorFlowMaterializerSettings, takeMax: Int): Props = Props(new PrefixAndTailImpl(settings, takeMax)) } /** * INTERNAL API */ -private[akka] class PrefixAndTailImpl(_settings: MaterializerSettings, val takeMax: Int) +private[akka] class PrefixAndTailImpl(_settings: ActorFlowMaterializerSettings, val takeMax: Int) extends MultiStreamOutputProcessor(_settings) { import MultiStreamOutputProcessor._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/SplitWhenProcessorImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/SplitWhenProcessorImpl.scala index 375b677c69..aee6bdcbcb 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/SplitWhenProcessorImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/SplitWhenProcessorImpl.scala @@ -3,7 +3,7 @@ */ package akka.stream.impl -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.scaladsl.Source import akka.actor.Props @@ -11,14 +11,14 @@ import akka.actor.Props * INTERNAL API */ private[akka] object SplitWhenProcessorImpl { - def props(settings: MaterializerSettings, splitPredicate: Any ⇒ Boolean): Props = + def props(settings: ActorFlowMaterializerSettings, splitPredicate: Any ⇒ Boolean): Props = Props(new SplitWhenProcessorImpl(settings, splitPredicate)) } /** * INTERNAL API */ -private[akka] class SplitWhenProcessorImpl(_settings: MaterializerSettings, val splitPredicate: Any ⇒ Boolean) +private[akka] class SplitWhenProcessorImpl(_settings: ActorFlowMaterializerSettings, val splitPredicate: Any ⇒ Boolean) extends MultiStreamOutputProcessor(_settings) { import MultiStreamOutputProcessor._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/StreamOfStreamProcessors.scala b/akka-stream/src/main/scala/akka/stream/impl/StreamOfStreamProcessors.scala index ed2fe7f66c..cd0ae089f5 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/StreamOfStreamProcessors.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/StreamOfStreamProcessors.scala @@ -7,7 +7,7 @@ import java.util.concurrent.atomic.AtomicReference import akka.actor.ActorLogging import akka.actor.Cancellable import akka.actor.{ Actor, ActorRef } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import org.reactivestreams.{ Publisher, Subscriber, Subscription } import scala.collection.mutable import scala.concurrent.duration.FiniteDuration @@ -175,7 +175,7 @@ private[akka] trait MultiStreamOutputProcessorLike extends Pump with StreamSubsc /** * INTERNAL API */ -private[akka] abstract class MultiStreamOutputProcessor(_settings: MaterializerSettings) extends ActorProcessorImpl(_settings) with MultiStreamOutputProcessorLike { +private[akka] abstract class MultiStreamOutputProcessor(_settings: ActorFlowMaterializerSettings) extends ActorProcessorImpl(_settings) with MultiStreamOutputProcessorLike { private var _nextId = 0L protected def nextId(): Long = { _nextId += 1; _nextId } @@ -214,7 +214,7 @@ private[akka] object TwoStreamInputProcessor { /** * INTERNAL API */ -private[akka] abstract class TwoStreamInputProcessor(_settings: MaterializerSettings, val other: Publisher[Any]) +private[akka] abstract class TwoStreamInputProcessor(_settings: ActorFlowMaterializerSettings, val other: Publisher[Any]) extends ActorProcessorImpl(_settings) { import akka.stream.impl.TwoStreamInputProcessor._ @@ -341,7 +341,7 @@ private[akka] trait MultiStreamInputProcessorLike extends Pump { this: Actor ⇒ /** * INTERNAL API */ -private[akka] abstract class MultiStreamInputProcessor(_settings: MaterializerSettings) extends ActorProcessorImpl(_settings) with MultiStreamInputProcessorLike { +private[akka] abstract class MultiStreamInputProcessor(_settings: ActorFlowMaterializerSettings) extends ActorProcessorImpl(_settings) with MultiStreamInputProcessorLike { private var _nextId = 0L protected def nextId(): Long = { _nextId += 1; _nextId } diff --git a/akka-stream/src/main/scala/akka/stream/impl/TickPublisher.scala b/akka-stream/src/main/scala/akka/stream/impl/TickPublisher.scala index be6130121a..96f1bb5eec 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/TickPublisher.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/TickPublisher.scala @@ -5,7 +5,7 @@ package akka.stream.impl import java.util.concurrent.atomic.AtomicBoolean import akka.actor.{ Actor, ActorRef, Cancellable, Props, SupervisorStrategy } -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import org.reactivestreams.{ Subscriber, Subscription } import scala.collection.mutable import scala.concurrent.duration.FiniteDuration @@ -17,7 +17,7 @@ import akka.actor.DeadLetterSuppression */ private[akka] object TickPublisher { def props(initialDelay: FiniteDuration, interval: FiniteDuration, tick: Any, - settings: MaterializerSettings, cancelled: AtomicBoolean): Props = + settings: ActorFlowMaterializerSettings, cancelled: AtomicBoolean): Props = Props(new TickPublisher(initialDelay, interval, tick, settings, cancelled)).withDispatcher(settings.dispatcher) object TickPublisherSubscription { @@ -43,7 +43,7 @@ private[akka] object TickPublisher { * otherwise the tick element is dropped. */ private[akka] class TickPublisher(initialDelay: FiniteDuration, interval: FiniteDuration, tick: Any, - settings: MaterializerSettings, cancelled: AtomicBoolean) extends Actor with SoftShutdown { + settings: ActorFlowMaterializerSettings, cancelled: AtomicBoolean) extends Actor with SoftShutdown { import akka.stream.impl.TickPublisher.TickPublisherSubscription._ import akka.stream.impl.TickPublisher._ import ReactiveStreamsCompliance._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/TimerTransformerProcessorsImpl.scala b/akka-stream/src/main/scala/akka/stream/impl/TimerTransformerProcessorsImpl.scala index 8f0accdde6..f812fdf7a2 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/TimerTransformerProcessorsImpl.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/TimerTransformerProcessorsImpl.scala @@ -4,13 +4,13 @@ package akka.stream.impl import java.util.LinkedList -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.TimerTransformer import scala.util.control.NonFatal import akka.actor.Props private[akka] object TimerTransformerProcessorsImpl { - def props(settings: MaterializerSettings, transformer: TimerTransformer[Any, Any]): Props = + def props(settings: ActorFlowMaterializerSettings, transformer: TimerTransformer[Any, Any]): Props = Props(new TimerTransformerProcessorsImpl(settings, transformer)) } @@ -18,7 +18,7 @@ private[akka] object TimerTransformerProcessorsImpl { * INTERNAL API */ private[akka] class TimerTransformerProcessorsImpl( - _settings: MaterializerSettings, + _settings: ActorFlowMaterializerSettings, transformer: TimerTransformer[Any, Any]) extends ActorProcessorImpl(_settings) with Emit { import TimerTransformer._ diff --git a/akka-stream/src/main/scala/akka/stream/impl/fusing/ActorInterpreter.scala b/akka-stream/src/main/scala/akka/stream/impl/fusing/ActorInterpreter.scala index 30327ffd90..2bd44f2eea 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/fusing/ActorInterpreter.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/fusing/ActorInterpreter.scala @@ -6,7 +6,7 @@ package akka.stream.impl.fusing import java.util.Arrays import akka.actor.{ Actor, ActorRef } import akka.event.Logging -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.actor.ActorSubscriber.OnSubscribe import akka.stream.actor.ActorSubscriberMessage.{ OnNext, OnError, OnComplete } import akka.stream.impl._ @@ -255,14 +255,14 @@ private[akka] class ActorOutputBoundary(val actor: ActorRef, debugLogging: Boole * INTERNAL API */ private[akka] object ActorInterpreter { - def props(settings: MaterializerSettings, ops: Seq[Stage[_, _]]): Props = + def props(settings: ActorFlowMaterializerSettings, ops: Seq[Stage[_, _]]): Props = Props(new ActorInterpreter(settings, ops)) } /** * INTERNAL API */ -private[akka] class ActorInterpreter(val settings: MaterializerSettings, val ops: Seq[Stage[_, _]]) +private[akka] class ActorInterpreter(val settings: ActorFlowMaterializerSettings, val ops: Seq[Stage[_, _]]) extends Actor with ActorLogging { private val upstream = new BatchingActorInputBoundary(settings.initialInputBufferSize) diff --git a/akka-stream/src/main/scala/akka/stream/impl/io/StreamTcpManager.scala b/akka-stream/src/main/scala/akka/stream/impl/io/StreamTcpManager.scala index af0e663c75..af8254d65d 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/io/StreamTcpManager.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/io/StreamTcpManager.scala @@ -13,7 +13,7 @@ import scala.concurrent.duration.FiniteDuration import akka.actor.Actor import akka.io.Inet.SocketOption import akka.io.Tcp -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.impl.ActorProcessor import akka.stream.impl.ActorPublisher import akka.stream.scaladsl.StreamTcp @@ -80,13 +80,13 @@ private[akka] class StreamTcpManager extends Actor { } val processorActor = context.actorOf(TcpStreamActor.outboundProps(processorPromise, localAddressPromise, Tcp.Connect(remoteAddress, localAddress, options, connTimeout, pullMode = true), - materializerSettings = MaterializerSettings(context.system)), name = encName("client", remoteAddress)) + materializerSettings = ActorFlowMaterializerSettings(context.system)), name = encName("client", remoteAddress)) processorActor ! ExposedProcessor(ActorProcessor[ByteString, ByteString](processorActor)) case Bind(localAddressPromise, unbindPromise, flowSubscriber, endpoint, backlog, options, _) ⇒ val publisherActor = context.actorOf(TcpListenStreamActor.props(localAddressPromise, unbindPromise, flowSubscriber, Tcp.Bind(context.system.deadLetters, endpoint, backlog, options, pullMode = true), - MaterializerSettings(context.system)), name = encName("server", endpoint)) + ActorFlowMaterializerSettings(context.system)), name = encName("server", endpoint)) // this sends the ExposedPublisher message to the publisher actor automatically ActorPublisher[Any](publisherActor) } diff --git a/akka-stream/src/main/scala/akka/stream/impl/io/TcpConnectionStream.scala b/akka-stream/src/main/scala/akka/stream/impl/io/TcpConnectionStream.scala index 2a131f232f..b0894cee24 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/io/TcpConnectionStream.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/io/TcpConnectionStream.scala @@ -10,7 +10,7 @@ import scala.util.control.NoStackTrace import akka.actor.{ ActorRefFactory, Actor, Props, ActorRef, Status } import akka.util.ByteString import akka.io.Tcp._ -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.StreamTcpException import org.reactivestreams.Processor import akka.actor.Stash @@ -26,18 +26,18 @@ private[akka] object TcpStreamActor { def outboundProps(processorPromise: Promise[Processor[ByteString, ByteString]], localAddressPromise: Promise[InetSocketAddress], connectCmd: Connect, - materializerSettings: MaterializerSettings): Props = + materializerSettings: ActorFlowMaterializerSettings): Props = Props(new OutboundTcpStreamActor(processorPromise, localAddressPromise, connectCmd, materializerSettings)).withDispatcher(materializerSettings.dispatcher) - def inboundProps(connection: ActorRef, settings: MaterializerSettings): Props = + def inboundProps(connection: ActorRef, settings: ActorFlowMaterializerSettings): Props = Props(new InboundTcpStreamActor(connection, settings)).withDispatcher(settings.dispatcher) } /** * INTERNAL API */ -private[akka] abstract class TcpStreamActor(val settings: MaterializerSettings) extends Actor with Stash +private[akka] abstract class TcpStreamActor(val settings: ActorFlowMaterializerSettings) extends Actor with Stash with ActorLogging { import TcpStreamActor._ @@ -201,7 +201,7 @@ private[akka] abstract class TcpStreamActor(val settings: MaterializerSettings) * INTERNAL API */ private[akka] class InboundTcpStreamActor( - val connection: ActorRef, _settings: MaterializerSettings) + val connection: ActorRef, _settings: ActorFlowMaterializerSettings) extends TcpStreamActor(_settings) { connection ! Register(self, keepOpenOnPeerClosed = true, useResumeWriting = false) @@ -214,7 +214,7 @@ private[akka] class InboundTcpStreamActor( */ private[akka] class OutboundTcpStreamActor(processorPromise: Promise[Processor[ByteString, ByteString]], localAddressPromise: Promise[InetSocketAddress], - val connectCmd: Connect, _settings: MaterializerSettings) + val connectCmd: Connect, _settings: ActorFlowMaterializerSettings) extends TcpStreamActor(_settings) { import TcpStreamActor._ import context.system diff --git a/akka-stream/src/main/scala/akka/stream/impl/io/TcpListenStreamActor.scala b/akka-stream/src/main/scala/akka/stream/impl/io/TcpListenStreamActor.scala index 86d49677e2..c7742a4814 100644 --- a/akka-stream/src/main/scala/akka/stream/impl/io/TcpListenStreamActor.scala +++ b/akka-stream/src/main/scala/akka/stream/impl/io/TcpListenStreamActor.scala @@ -11,7 +11,7 @@ import akka.actor.Props import akka.actor.Stash import akka.io.{ IO, Tcp } import akka.io.Tcp._ -import akka.stream.{ FlowMaterializer, MaterializerSettings } +import akka.stream.{ FlowMaterializer, ActorFlowMaterializerSettings } import akka.stream.impl._ import akka.stream.scaladsl.{ Flow, Pipe } import akka.stream.scaladsl.StreamTcp @@ -28,7 +28,7 @@ private[akka] object TcpListenStreamActor { def props(localAddressPromise: Promise[InetSocketAddress], unbindPromise: Promise[() ⇒ Future[Unit]], flowSubscriber: Subscriber[StreamTcp.IncomingConnection], - bindCmd: Tcp.Bind, materializerSettings: MaterializerSettings): Props = { + bindCmd: Tcp.Bind, materializerSettings: ActorFlowMaterializerSettings): Props = { Props(new TcpListenStreamActor(localAddressPromise, unbindPromise, flowSubscriber, bindCmd, materializerSettings)) } } @@ -39,7 +39,7 @@ private[akka] object TcpListenStreamActor { private[akka] class TcpListenStreamActor(localAddressPromise: Promise[InetSocketAddress], unbindPromise: Promise[() ⇒ Future[Unit]], flowSubscriber: Subscriber[StreamTcp.IncomingConnection], - bindCmd: Tcp.Bind, settings: MaterializerSettings) extends Actor + bindCmd: Tcp.Bind, settings: ActorFlowMaterializerSettings) extends Actor with Pump with Stash with ActorLogging { import context.system diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSink.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSink.scala index db1ee1864d..64083dafa9 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSink.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSink.scala @@ -10,8 +10,9 @@ import scala.annotation.unchecked.uncheckedVariance import scala.concurrent.{ Future, Promise } import scala.util.{ Failure, Success, Try } import org.reactivestreams.{ Publisher, Subscriber, Subscription } +import akka.stream.ActorFlowMaterializer import akka.stream.scaladsl.OperationAttributes._ -import akka.stream.impl.{ ActorBasedFlowMaterializer, ActorProcessorFactory, FanoutProcessorImpl, BlackholeSubscriber } +import akka.stream.impl.{ ActorProcessorFactory, FanoutProcessorImpl, BlackholeSubscriber } import akka.stream.stage._ import java.util.concurrent.atomic.AtomicReference @@ -19,22 +20,22 @@ sealed trait ActorFlowSink[-In] extends Sink[In] { /** * Attach this sink to the given [[org.reactivestreams.Publisher]]. Using the given - * [[FlowMaterializer]] is completely optional, especially if this sink belongs to + * [[ActorFlowMaterializer]] is completely optional, especially if this sink belongs to * a different Reactive Streams implementation. It is the responsibility of the - * caller to provide a suitable FlowMaterializer that can be used for running + * caller to provide a suitable ActorFlowMaterializer that can be used for running * Flows if necessary. * * @param flowPublisher the Publisher to consume elements from - * @param materializer a FlowMaterializer that may be used for creating flows + * @param materializer a ActorFlowMaterializer that may be used for creating flows * @param flowName the name of the current flow, which should be used in log statements or error messages */ - def attach(flowPublisher: Publisher[In @uncheckedVariance], materializer: ActorBasedFlowMaterializer, flowName: String): MaterializedType + def attach(flowPublisher: Publisher[In @uncheckedVariance], materializer: ActorFlowMaterializer, flowName: String): MaterializedType /** * This method is only used for Sinks that return true from [[#isActive]], which then must * implement it. */ - def create(materializer: ActorBasedFlowMaterializer, flowName: String): (Subscriber[In] @uncheckedVariance, MaterializedType) = + def create(materializer: ActorFlowMaterializer, flowName: String): (Subscriber[In] @uncheckedVariance, MaterializedType) = throw new UnsupportedOperationException(s"forgot to implement create() for $getClass that says isActive==true") /** @@ -77,14 +78,14 @@ object PublisherSink { */ class PublisherSink[In] extends KeyedActorFlowSink[In, Publisher[In]] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = flowPublisher + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = flowPublisher override def toString: String = "PublisherSink" } final case class FanoutPublisherSink[In](initialBufferSize: Int, maximumBufferSize: Int) extends KeyedActorFlowSink[In, Publisher[In]] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = { val fanoutActor = materializer.actorOf( Props(new FanoutProcessorImpl(materializer.settings, initialBufferSize, maximumBufferSize)), s"$flowName-fanoutPublisher") val fanoutProcessor = ActorProcessorFactory[In, In](fanoutActor) @@ -119,13 +120,13 @@ object HeadSink { */ class HeadSink[In] extends KeyedActorFlowSink[In, Future[In]] { - def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = { + def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = { val (sub, f) = create(materializer, flowName) flowPublisher.subscribe(sub) f } override def isActive = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def create(materializer: ActorFlowMaterializer, flowName: String) = { val p = Promise[In]() val sub = new HeadSink.HeadSinkSubscriber[In](p) (sub, p.future) @@ -139,10 +140,10 @@ class HeadSink[In] extends KeyedActorFlowSink[In, Future[In]] { * elements. */ final case object BlackholeSink extends SimpleActorFlowSink[Any] { - override def attach(flowPublisher: Publisher[Any], materializer: ActorBasedFlowMaterializer, flowName: String): Unit = + override def attach(flowPublisher: Publisher[Any], materializer: ActorFlowMaterializer, flowName: String): Unit = flowPublisher.subscribe(create(materializer, flowName)._1) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = + override def create(materializer: ActorFlowMaterializer, flowName: String) = (new BlackholeSubscriber[Any](materializer.settings.maxInputBufferSize), ()) } @@ -150,10 +151,10 @@ final case object BlackholeSink extends SimpleActorFlowSink[Any] { * Attaches a subscriber to this stream. */ final case class SubscriberSink[In](subscriber: Subscriber[In]) extends SimpleActorFlowSink[In] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = flowPublisher.subscribe(subscriber) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = (subscriber, ()) + override def create(materializer: ActorFlowMaterializer, flowName: String) = (subscriber, ()) } object OnCompleteSink { @@ -167,7 +168,7 @@ object OnCompleteSink { */ final case class OnCompleteSink[In](callback: Try[Unit] ⇒ Unit) extends SimpleActorFlowSink[In] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = { val section = (s: Source[In]) ⇒ s.transform(() ⇒ new PushStage[In, Unit] { override def onPush(elem: In, ctx: Context[Unit]): Directive = ctx.pull() override def onUpstreamFailure(cause: Throwable, ctx: Context[Unit]): TerminationDirective = { @@ -194,7 +195,7 @@ final case class OnCompleteSink[In](callback: Try[Unit] ⇒ Unit) extends Simple */ final case class ForeachSink[In](f: In ⇒ Unit) extends KeyedActorFlowSink[In, Future[Unit]] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = { val promise = Promise[Unit]() val section = (s: Source[In]) ⇒ s.transform(() ⇒ new PushStage[In, Unit] { override def onPush(elem: In, ctx: Context[Unit]): Directive = { @@ -228,7 +229,7 @@ final case class ForeachSink[In](f: In ⇒ Unit) extends KeyedActorFlowSink[In, */ final case class FoldSink[U, In](zero: U)(f: (U, In) ⇒ U) extends KeyedActorFlowSink[In, Future[U]] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String) = { val promise = Promise[U]() val section = (s: Source[In]) ⇒ s.transform(() ⇒ new PushStage[In, U] { private var aggregator = zero @@ -262,7 +263,7 @@ final case class FoldSink[U, In](zero: U)(f: (U, In) ⇒ U) extends KeyedActorFl */ final case object CancelSink extends SimpleActorFlowSink[Any] { - override def attach(flowPublisher: Publisher[Any], materializer: ActorBasedFlowMaterializer, flowName: String): Unit = { + override def attach(flowPublisher: Publisher[Any], materializer: ActorFlowMaterializer, flowName: String): Unit = { flowPublisher.subscribe(new Subscriber[Any] { override def onError(t: Throwable): Unit = () override def onSubscribe(s: Subscription): Unit = s.cancel() @@ -278,14 +279,14 @@ final case object CancelSink extends SimpleActorFlowSink[Any] { */ final case class PropsSink[In](props: Props) extends KeyedActorFlowSink[In, ActorRef] { - override def attach(flowPublisher: Publisher[In], materializer: ActorBasedFlowMaterializer, flowName: String): ActorRef = { + override def attach(flowPublisher: Publisher[In], materializer: ActorFlowMaterializer, flowName: String): ActorRef = { val (subscriber, subscriberRef) = create(materializer, flowName) flowPublisher.subscribe(subscriber) subscriberRef } override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def create(materializer: ActorFlowMaterializer, flowName: String) = { val subscriberRef = materializer.actorOf(props, name = s"$flowName-props") (akka.stream.actor.ActorSubscriber[In](subscriberRef), subscriberRef) } diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSource.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSource.scala index df091d1072..33902aba92 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSource.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/ActorFlowSource.scala @@ -4,13 +4,12 @@ package akka.stream.scaladsl import java.util.concurrent.atomic.AtomicBoolean - import akka.actor.{ PoisonPill, Cancellable, Props, ActorRef } +import akka.stream.ActorFlowMaterializer import akka.stream.impl._ import akka.stream.impl.Ast.AstNode import org.reactivestreams.Publisher import org.reactivestreams.Subscriber - import scala.annotation.unchecked.uncheckedVariance import scala.annotation.tailrec import scala.collection.immutable @@ -23,22 +22,22 @@ sealed trait ActorFlowSource[+Out] extends Source[Out] { /** * Attach this source to the given [[org.reactivestreams.Subscriber]]. Using the given - * [[FlowMaterializer]] is completely optional, especially if this source belongs to + * [[ActorFlowMaterializer]] is completely optional, especially if this source belongs to * a different Reactive Streams implementation. It is the responsibility of the - * caller to provide a suitable FlowMaterializer that can be used for running + * caller to provide a suitable ActorFlowMaterializer that can be used for running * Flows if necessary. * * @param flowSubscriber the Subscriber to produce elements to - * @param materializer a FlowMaterializer that may be used for creating flows + * @param materializer a ActorFlowMaterializer that may be used for creating flows * @param flowName the name of the current flow, which should be used in log statements or error messages */ - def attach(flowSubscriber: Subscriber[Out] @uncheckedVariance, materializer: ActorBasedFlowMaterializer, flowName: String): MaterializedType + def attach(flowSubscriber: Subscriber[Out] @uncheckedVariance, materializer: ActorFlowMaterializer, flowName: String): MaterializedType /** * This method is only used for Sources that return true from [[#isActive]], which then must * implement it. */ - def create(materializer: ActorBasedFlowMaterializer, flowName: String): (Publisher[Out] @uncheckedVariance, MaterializedType) = + def create(materializer: ActorFlowMaterializer, flowName: String): (Publisher[Out] @uncheckedVariance, MaterializedType) = throw new UnsupportedOperationException(s"forgot to implement create() for $getClass that says isActive==true") /** @@ -69,7 +68,7 @@ sealed trait ActorFlowSource[+Out] extends Source[Out] { /** * A source that does not need to create a user-accessible object during materialization. */ -trait SimpleActorFlowSource[+Out] extends ActorFlowSource[Out] { // FIXME Tightly couples XSources with ActorBasedFlowMaterializer (wrong!) +trait SimpleActorFlowSource[+Out] extends ActorFlowSource[Out] { // FIXME Tightly couples XSources with ActorFlowMaterializer (wrong!) override type MaterializedType = Unit } @@ -85,7 +84,7 @@ trait KeyedActorFlowSource[+Out, M] extends ActorFlowSource[Out] with KeyedSourc * The `Subscriber` can later be connected to an upstream `Publisher`. */ final case class SubscriberSource[Out]() extends KeyedActorFlowSource[Out, Subscriber[Out]] { // FIXME Why does this have anything to do with Actors? - override def attach(flowSubscriber: Subscriber[Out], materializer: ActorBasedFlowMaterializer, flowName: String): Subscriber[Out] = + override def attach(flowSubscriber: Subscriber[Out], materializer: ActorFlowMaterializer, flowName: String): Subscriber[Out] = flowSubscriber } @@ -97,20 +96,20 @@ final case class SubscriberSource[Out]() extends KeyedActorFlowSource[Out, Subsc * back-pressure upstream. */ final case class PublisherSource[Out](p: Publisher[Out]) extends SimpleActorFlowSource[Out] { // FIXME Why does this have anything to do with Actors? - override def attach(flowSubscriber: Subscriber[Out], materializer: ActorBasedFlowMaterializer, flowName: String) = + override def attach(flowSubscriber: Subscriber[Out], materializer: ActorFlowMaterializer, flowName: String) = p.subscribe(flowSubscriber) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = (p, ()) + override def create(materializer: ActorFlowMaterializer, flowName: String) = (p, ()) } /** * Starts a new `Source` from the given `Iterable`. */ final case class IterableSource[Out](iterable: immutable.Iterable[Out]) extends SimpleActorFlowSource[Out] { // FIXME Why does this have anything to do with Actors? - override def attach(flowSubscriber: Subscriber[Out], materializer: ActorBasedFlowMaterializer, flowName: String) = + override def attach(flowSubscriber: Subscriber[Out], materializer: ActorFlowMaterializer, flowName: String) = create(materializer, flowName)._1.subscribe(flowSubscriber) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def create(materializer: ActorFlowMaterializer, flowName: String) = { val publisher = try ActorPublisher[Out]( materializer.actorOf(IteratorPublisher.props(iterable.iterator, materializer.settings), @@ -135,10 +134,10 @@ final class FuncIterable[Out](f: () ⇒ Iterator[Out]) extends immutable.Iterabl * The stream terminates with an error if the `Future` is completed with a failure. */ final case class FutureSource[Out](future: Future[Out]) extends SimpleActorFlowSource[Out] { // FIXME Why does this have anything to do with Actors? - override def attach(flowSubscriber: Subscriber[Out], materializer: ActorBasedFlowMaterializer, flowName: String) = + override def attach(flowSubscriber: Subscriber[Out], materializer: ActorFlowMaterializer, flowName: String) = create(materializer, flowName)._1.subscribe(flowSubscriber) override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = + override def create(materializer: ActorFlowMaterializer, flowName: String) = future.value match { case Some(Success(element)) ⇒ (SynchronousIterablePublisher(List(element), s"$flowName-0-synciterable"), ()) // Option is not Iterable. sigh @@ -158,14 +157,14 @@ final case class FutureSource[Out](future: Future[Out]) extends SimpleActorFlowS * receive new tick elements as soon as it has requested more elements. */ final case class TickSource[Out](initialDelay: FiniteDuration, interval: FiniteDuration, tick: Out) extends KeyedActorFlowSource[Out, Cancellable] { // FIXME Why does this have anything to do with Actors? - override def attach(flowSubscriber: Subscriber[Out], materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def attach(flowSubscriber: Subscriber[Out], materializer: ActorFlowMaterializer, flowName: String) = { val (pub, cancellable) = create(materializer, flowName) pub.subscribe(flowSubscriber) cancellable } override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def create(materializer: ActorFlowMaterializer, flowName: String) = { val cancelled = new AtomicBoolean(false) val ref = materializer.actorOf(TickPublisher.props(initialDelay, interval, tick, materializer.settings, cancelled), @@ -186,13 +185,13 @@ final case class TickSource[Out](initialDelay: FiniteDuration, interval: FiniteD */ final case class PropsSource[Out](props: Props) extends KeyedActorFlowSource[Out, ActorRef] { - override def attach(flowSubscriber: Subscriber[Out], materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def attach(flowSubscriber: Subscriber[Out], materializer: ActorFlowMaterializer, flowName: String) = { val (publisher, publisherRef) = create(materializer, flowName) publisher.subscribe(flowSubscriber) publisherRef } override def isActive: Boolean = true - override def create(materializer: ActorBasedFlowMaterializer, flowName: String) = { + override def create(materializer: ActorFlowMaterializer, flowName: String) = { val publisherRef = materializer.actorOf(props, name = s"$flowName-0-props") (akka.stream.actor.ActorPublisher[Out](publisherRef), publisherRef) } diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/ImplicitFlowMaterializer.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/ImplicitFlowMaterializer.scala index 5bfda089fd..07a3fcdd34 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/ImplicitFlowMaterializer.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/ImplicitFlowMaterializer.scala @@ -4,23 +4,23 @@ package akka.stream.scaladsl import akka.actor.Actor -import akka.stream.MaterializerSettings -import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializerSettings +import akka.stream.ActorFlowMaterializer /** * Mix this trait into your [[akka.actor.Actor]] if you need an implicit - * [[akka.stream.FlowMaterializer]] in scope. + * [[akka.stream.ActorFlowMaterializer]] in scope. * * Subclass may override [[#flowMaterializerSettings]] to define custom - * [[akka.stream.MaterializerSettings]] for the `FlowMaterializer`. + * [[akka.stream.ActorFlowMaterializerSettings]] for the `ActorFlowMaterializer`. */ trait ImplicitFlowMaterializer { this: Actor ⇒ /** * Subclass may override this to define custom - * [[akka.stream.MaterializerSettings]] for the `FlowMaterializer`. + * [[akka.stream.ActorFlowMaterializerSettings]] for the `ActorFlowMaterializer`. */ - def flowMaterializerSettings: MaterializerSettings = MaterializerSettings(context.system) + def flowMaterializerSettings: ActorFlowMaterializerSettings = ActorFlowMaterializerSettings(context.system) - final implicit val flowMaterializer: FlowMaterializer = FlowMaterializer(Some(flowMaterializerSettings)) + final implicit val flowMaterializer: ActorFlowMaterializer = ActorFlowMaterializer(Some(flowMaterializerSettings)) } diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/OperationAttributes.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/OperationAttributes.scala index 946cf60eca..efab3f5287 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/OperationAttributes.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/OperationAttributes.scala @@ -3,7 +3,7 @@ */ package akka.stream.scaladsl -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.impl.Ast.AstNode /** @@ -33,10 +33,10 @@ final case class OperationAttributes private (private val attributes: List[Opera case _ ⇒ "unknown-operation" } - private[akka] def settings: MaterializerSettings ⇒ MaterializerSettings = + private[akka] def settings: ActorFlowMaterializerSettings ⇒ ActorFlowMaterializerSettings = attributes.collect { - case InputBuffer(initial, max) ⇒ (s: MaterializerSettings) ⇒ s.withInputBuffer(initial, max) - case Dispatcher(dispatcher) ⇒ (s: MaterializerSettings) ⇒ s.withDispatcher(dispatcher) + case InputBuffer(initial, max) ⇒ (s: ActorFlowMaterializerSettings) ⇒ s.withInputBuffer(initial, max) + case Dispatcher(dispatcher) ⇒ (s: ActorFlowMaterializerSettings) ⇒ s.withDispatcher(dispatcher) }.reduceOption(_ andThen _).getOrElse(identity) // FIXME is this the optimal way of encoding this? private[akka] def transform(node: AstNode): AstNode = diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/StreamTcp.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/StreamTcp.scala index 59ca81255f..ad4bd418f7 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/StreamTcp.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/StreamTcp.scala @@ -18,12 +18,12 @@ import akka.actor.ExtensionIdProvider import akka.actor.Props import akka.io.Inet.SocketOption import akka.io.Tcp -import akka.stream.{ FlowMaterializer, MaterializerSettings } +import akka.stream.FlowMaterializer +import akka.stream.ActorFlowMaterializer import akka.stream.impl._ import akka.stream.scaladsl._ import akka.util.ByteString import org.reactivestreams.{ Processor, Subscriber, Subscription } -import akka.actor.actorRef2Scala import akka.stream.impl.io.TcpStreamActor import akka.stream.impl.io.TcpListenStreamActor import akka.stream.impl.io.DelayedInitProcessor @@ -155,7 +155,7 @@ class StreamTcp(system: ExtendedActorSystem) extends akka.actor.Extension { idleTimeout: Duration = Duration.Inf): ServerBinding = { val connectionSource = new KeyedActorFlowSource[IncomingConnection, (Future[InetSocketAddress], Future[() ⇒ Future[Unit]])] { override def attach(flowSubscriber: Subscriber[IncomingConnection], - materializer: ActorBasedFlowMaterializer, + materializer: ActorFlowMaterializer, flowName: String): MaterializedType = { val localAddressPromise = Promise[InetSocketAddress]() val unbindPromise = Promise[() ⇒ Future[Unit]]() diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/package.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/package.scala index 1a8fdc9114..04c2c9a9fd 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/package.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/package.scala @@ -43,12 +43,12 @@ package akka.stream * * By default every operation is executed within its own [[akka.actor.Actor]] * to enable full pipelining of the chained set of computations. This behavior - * is determined by the [[akka.stream.FlowMaterializer]] which is required + * is determined by the [[akka.stream.ActorFlowMaterializer]] which is required * by those methods that materialize the Flow into a series of * [[org.reactivestreams.Processor]] instances. The returned reactive stream * is fully started and active. * - * Use [[ImplicitFlowMaterializer]] to define an implicit [[akka.stream.FlowMaterializer]] + * Use [[ImplicitFlowMaterializer]] to define an implicit [[akka.stream.ActorFlowMaterializer]] * inside an [[akka.actor.Actor]]. */ package object scaladsl { diff --git a/akka-stream/src/main/scala/akka/stream/ssl/SslTlsCipher.scala b/akka-stream/src/main/scala/akka/stream/ssl/SslTlsCipher.scala index 067dd749a1..6857f719b8 100644 --- a/akka-stream/src/main/scala/akka/stream/ssl/SslTlsCipher.scala +++ b/akka-stream/src/main/scala/akka/stream/ssl/SslTlsCipher.scala @@ -17,7 +17,7 @@ import javax.net.ssl.SSLSession import akka.actor.Actor import akka.actor.ActorLogging import akka.actor.ActorRef -import akka.stream.MaterializerSettings +import akka.stream.ActorFlowMaterializerSettings import akka.stream.impl._ import akka.util.ByteString import akka.util.ByteStringBuilder @@ -97,7 +97,7 @@ class SslTlsCipherActor(val requester: ActorRef, val sessionNegotioation: SslTls with MultiStreamOutputProcessorLike with MultiStreamInputProcessorLike { - override val subscriptionTimeoutSettings = MaterializerSettings(context.system).subscriptionTimeoutSettings + override val subscriptionTimeoutSettings = ActorFlowMaterializerSettings(context.system).subscriptionTimeoutSettings def this(requester: ActorRef, sessionNegotioation: SslTlsCipher.SessionNegotiation) = this(requester, sessionNegotioation, false)