#19333: Remove ImplicitMaterializer

This commit is contained in:
Endre Sándor Varga 2016-01-13 13:32:42 +01:00
parent b0cb922834
commit ba2373a8e4
5 changed files with 5 additions and 74 deletions

View file

@ -5,6 +5,7 @@
package docs.http.scaladsl
import akka.actor.{ ActorLogging, ActorSystem }
import akka.stream.{ ActorMaterializerSettings }
import akka.util.ByteString
import org.scalatest.{ Matchers, WordSpec }
@ -78,15 +79,17 @@ class HttpClientExampleSpec extends WordSpec with Matchers {
import akka.actor.Actor
import akka.http.scaladsl.Http
import akka.http.scaladsl.model._
import akka.stream.scaladsl.ImplicitMaterializer
import akka.stream.ActorMaterializer
import akka.stream.ActorMaterializerSettings
class Myself extends Actor
with ImplicitMaterializer
with ActorLogging {
import akka.pattern.pipe
import context.dispatcher
final implicit val materializer: ActorMaterializer = ActorMaterializer(ActorMaterializerSettings(context.system))
val http = Http(context.system)
override def preStart() = {

View file

@ -54,9 +54,6 @@ to the Actor as a message.
.. includecode:: ../../code/docs/http/scaladsl/HttpClientExampleSpec.scala
:include: single-request-in-actor-example
An ``ActorMaterializer`` instance needed for Http to perfom its duties can be obtained using the ``ImplicitMaterializer``
helper trait.
Example
-------

View file

@ -1,40 +0,0 @@
/**
* Copyright (C) 2014 Typesafe Inc. <http://www.typesafe.com>
*/
package akka.stream.scaladsl
import akka.actor.{ Actor, Props }
import akka.stream.ActorMaterializerSettings
import akka.stream.testkit.AkkaSpec
import akka.testkit._
import akka.pattern.pipe
object ImplicitMaterializerSpec {
class SomeActor(input: List[String]) extends Actor with ImplicitMaterializer {
override def materializerSettings = ActorMaterializerSettings(context.system)
.withInputBuffer(initialSize = 2, maxSize = 16)
val flow = Source(input).map(_.toUpperCase())
def receive = {
case "run"
// run takes an implicit ActorMaterializer parameter, which is provided by ImplicitMaterializer
import context.dispatcher
flow.runFold("")(_ + _) pipeTo sender()
}
}
}
class ImplicitMaterializerSpec extends AkkaSpec with ImplicitSender {
import ImplicitMaterializerSpec._
"An ImplicitMaterializer" must {
"provide implicit ActorMaterializer" in {
val actor = system.actorOf(Props(classOf[SomeActor], List("a", "b", "c")).withDispatcher("akka.test.stream-dispatcher"))
actor ! "run"
expectMsg("ABC")
}
}
}

View file

@ -1,26 +0,0 @@
/**
* Copyright (C) 2014 Typesafe Inc. <http://www.typesafe.com>
*/
package akka.stream.scaladsl
import akka.actor.Actor
import akka.stream.ActorMaterializerSettings
import akka.stream.ActorMaterializer
/**
* Mix this trait into your [[akka.actor.Actor]] if you need an implicit
* [[akka.stream.Materializer]] in scope.
*
* Subclass may override [[#materializerSettings]] to define custom
* [[akka.stream.ActorMaterializerSettings]] for the `Materializer`.
*/
trait ImplicitMaterializer { this: Actor
/**
* Subclass may override this to define custom
* [[akka.stream.ActorMaterializerSettings]] for the `Materializer`.
*/
def materializerSettings: ActorMaterializerSettings = ActorMaterializerSettings(context.system)
final implicit val materializer: ActorMaterializer = ActorMaterializer(Some(materializerSettings))
}

View file

@ -47,9 +47,6 @@ package akka.stream
* 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 [[ImplicitMaterializer]] to define an implicit [[akka.stream.Materializer]]
* inside an [[akka.actor.Actor]].
*/
package object scaladsl {
}