This is an automated email from the ASF dual-hosted git repository.
He-Pin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/main by this push:
new 7f1a1b9140 refactor: replace deprecated `extends App` with explicit
main method (#3299)
7f1a1b9140 is described below
commit 7f1a1b9140f76431f549cafbf74d89aff0f2841d
Author: He-Pin(kerr) <[email protected]>
AuthorDate: Mon Jul 6 16:26:43 2026 +0800
refactor: replace deprecated `extends App` with explicit main method (#3299)
Motivation:
`extends App` is deprecated in Scala 3. Replace with explicit `def main`
method for forward compatibility.
Modification:
Replace `object X extends App { ... }` with
`object X { def main(args: Array[String]): Unit = { ... } }`
in 16 doc example files.
Result:
No more usage of deprecated `scala.App` trait. Code is compatible with
Scala 3.
Tests:
Not run - docs only
References:
None - Scala 3 compatibility
---
docs/src/test/scala/docs/actor/ActorDocSpec.scala | 20 ++--
.../scala/docs/actor/FaultHandlingDocSample.scala | 38 +++----
docs/src/test/scala/docs/io/EchoServer.scala | 18 ++--
.../docs/persistence/PersistentActorExample.scala | 22 ++--
.../test/scala/docs/stream/QuickStartDocSpec.scala | 8 +-
.../docs/stream/operators/source/Restart.scala | 112 +++++++++++----------
.../sourceorflow/ExtrapolateAndExpand.scala | 8 +-
.../docs/stream/operators/sourceorflow/Fold.scala | 34 ++++---
.../stream/operators/sourceorflow/FoldAsync.scala | 24 +++--
.../stream/operators/sourceorflow/FoldWhile.scala | 20 ++--
.../operators/sourceorflow/Intersperse.scala | 20 ++--
.../stream/operators/sourceorflow/MapAsyncs.scala | 78 +++++++-------
.../stream/operators/sourceorflow/MapError.scala | 44 ++++----
.../operators/sourceorflow/MergeLatest.scala | 42 ++++----
.../stream/operators/sourceorflow/Throttle.scala | 56 ++++++-----
.../tutorial_1/ActorHierarchyExperiments.scala | 8 +-
16 files changed, 294 insertions(+), 258 deletions(-)
diff --git a/docs/src/test/scala/docs/actor/ActorDocSpec.scala
b/docs/src/test/scala/docs/actor/ActorDocSpec.scala
index 0e0c30865f..463aa0745c 100644
--- a/docs/src/test/scala/docs/actor/ActorDocSpec.scala
+++ b/docs/src/test/scala/docs/actor/ActorDocSpec.scala
@@ -278,15 +278,17 @@ class Swapper extends Actor {
}
}
-object SwapperApp extends App {
- val system = ActorSystem("SwapperSystem")
- val swap = system.actorOf(Props[Swapper](), name = "swapper")
- swap ! Swap // logs Hi
- swap ! Swap // logs Ho
- swap ! Swap // logs Hi
- swap ! Swap // logs Ho
- swap ! Swap // logs Hi
- swap ! Swap // logs Ho
+object SwapperApp {
+ def main(args: Array[String]): Unit = {
+ val system = ActorSystem("SwapperSystem")
+ val swap = system.actorOf(Props[Swapper](), name = "swapper")
+ swap ! Swap // logs Hi
+ swap ! Swap // logs Ho
+ swap ! Swap // logs Hi
+ swap ! Swap // logs Ho
+ swap ! Swap // logs Hi
+ swap ! Swap // logs Ho
+ }
}
//#swapper
diff --git a/docs/src/test/scala/docs/actor/FaultHandlingDocSample.scala
b/docs/src/test/scala/docs/actor/FaultHandlingDocSample.scala
index e1da631b88..08db47715b 100644
--- a/docs/src/test/scala/docs/actor/FaultHandlingDocSample.scala
+++ b/docs/src/test/scala/docs/actor/FaultHandlingDocSample.scala
@@ -28,24 +28,26 @@ import com.typesafe.config.ConfigFactory
/**
* Runs the sample
*/
-object FaultHandlingDocSample extends App {
- import Worker._
-
- val config = ConfigFactory.parseString("""
- pekko.loglevel = "DEBUG"
- pekko.actor.debug {
- receive = on
- lifecycle = on
- }
- """)
-
- val system = ActorSystem("FaultToleranceSample", config)
- val worker = system.actorOf(Props[Worker](), name = "worker")
- val listener = system.actorOf(Props[Listener](), name = "listener")
- // start the work and listen on progress
- // note that the listener is used as sender of the tell,
- // i.e. it will receive replies from the worker
- worker.tell(Start, sender = listener)
+object FaultHandlingDocSample {
+ def main(args: Array[String]): Unit = {
+ import Worker._
+
+ val config = ConfigFactory.parseString("""
+ pekko.loglevel = "DEBUG"
+ pekko.actor.debug {
+ receive = on
+ lifecycle = on
+ }
+ """)
+
+ val system = ActorSystem("FaultToleranceSample", config)
+ val worker = system.actorOf(Props[Worker](), name = "worker")
+ val listener = system.actorOf(Props[Listener](), name = "listener")
+ // start the work and listen on progress
+ // note that the listener is used as sender of the tell,
+ // i.e. it will receive replies from the worker
+ worker.tell(Start, sender = listener)
+ }
}
/**
diff --git a/docs/src/test/scala/docs/io/EchoServer.scala
b/docs/src/test/scala/docs/io/EchoServer.scala
index 8382a21e2b..ff51c15349 100644
--- a/docs/src/test/scala/docs/io/EchoServer.scala
+++ b/docs/src/test/scala/docs/io/EchoServer.scala
@@ -24,17 +24,19 @@ import pekko.util.ByteString
import scala.io.StdIn
-object EchoServer extends App {
+object EchoServer {
+ def main(args: Array[String]): Unit = {
- val config = ConfigFactory.parseString("pekko.loglevel = DEBUG")
- implicit val system: ActorSystem = ActorSystem("EchoServer", config)
+ val config = ConfigFactory.parseString("pekko.loglevel = DEBUG")
+ implicit val system: ActorSystem = ActorSystem("EchoServer", config)
- system.actorOf(Props(classOf[EchoManager], classOf[EchoHandler]), "echo")
- system.actorOf(Props(classOf[EchoManager], classOf[SimpleEchoHandler]),
"simple")
+ system.actorOf(Props(classOf[EchoManager], classOf[EchoHandler]), "echo")
+ system.actorOf(Props(classOf[EchoManager], classOf[SimpleEchoHandler]),
"simple")
- println("Press enter to exit...")
- StdIn.readLine()
- system.terminate()
+ println("Press enter to exit...")
+ StdIn.readLine()
+ system.terminate()
+ }
}
class EchoManager(handlerClass: Class[?]) extends Actor with ActorLogging {
diff --git a/docs/src/test/scala/docs/persistence/PersistentActorExample.scala
b/docs/src/test/scala/docs/persistence/PersistentActorExample.scala
index e6b0216e0e..7199edb9ad 100644
--- a/docs/src/test/scala/docs/persistence/PersistentActorExample.scala
+++ b/docs/src/test/scala/docs/persistence/PersistentActorExample.scala
@@ -58,17 +58,19 @@ class ExamplePersistentActor extends PersistentActor {
}
//#persistent-actor-example
-object PersistentActorExample extends App {
+object PersistentActorExample {
+ def main(args: Array[String]): Unit = {
- val system = ActorSystem("example")
- val persistentActor = system.actorOf(Props[ExamplePersistentActor](),
"persistentActor-4-scala")
+ val system = ActorSystem("example")
+ val persistentActor = system.actorOf(Props[ExamplePersistentActor](),
"persistentActor-4-scala")
- persistentActor ! Cmd("foo")
- persistentActor ! Cmd("baz")
- persistentActor ! Cmd("bar")
- persistentActor ! Cmd("buzz")
- persistentActor ! "print"
+ persistentActor ! Cmd("foo")
+ persistentActor ! Cmd("baz")
+ persistentActor ! Cmd("bar")
+ persistentActor ! Cmd("buzz")
+ persistentActor ! "print"
- Thread.sleep(10000)
- system.terminate()
+ Thread.sleep(10000)
+ system.terminate()
+ }
}
diff --git a/docs/src/test/scala/docs/stream/QuickStartDocSpec.scala
b/docs/src/test/scala/docs/stream/QuickStartDocSpec.scala
index c1b25e924c..08820251b9 100644
--- a/docs/src/test/scala/docs/stream/QuickStartDocSpec.scala
+++ b/docs/src/test/scala/docs/stream/QuickStartDocSpec.scala
@@ -33,9 +33,11 @@ import org.scalatest.wordspec.AnyWordSpec
import org.scalatest.concurrent._
//#main-app
-object Main extends App {
- implicit val system: ActorSystem = ActorSystem("QuickStart")
- // Code here
+object Main {
+ def main(args: Array[String]): Unit = {
+ implicit val system: ActorSystem = ActorSystem("QuickStart")
+ // Code here
+ }
}
//#main-app
diff --git a/docs/src/test/scala/docs/stream/operators/source/Restart.scala
b/docs/src/test/scala/docs/stream/operators/source/Restart.scala
index d427c92b7a..a6ea9d27fe 100644
--- a/docs/src/test/scala/docs/stream/operators/source/Restart.scala
+++ b/docs/src/test/scala/docs/stream/operators/source/Restart.scala
@@ -26,67 +26,69 @@ import scala.util.control.NoStackTrace
import org.apache.pekko.stream.scaladsl.Source
// #imports
-object Restart extends App {
- implicit val system: ActorSystem = ActorSystem()
+object Restart {
+ def main(args: Array[String]): Unit = {
+ implicit val system: ActorSystem = ActorSystem()
- onRestartWitFailureKillSwitch()
+ onRestartWitFailureKillSwitch()
- case class CantConnectToDatabase(msg: String) extends RuntimeException(msg)
with NoStackTrace
+ case class CantConnectToDatabase(msg: String) extends
RuntimeException(msg) with NoStackTrace
- def onRestartWithBackoffInnerFailure(): Unit = {
- // #restart-failure-inner-failure
- // could throw if for example it used a database connection to get rows
- val flakySource: Source[() => Int, NotUsed] =
- Source(List(() => 1, () => 2, () => 3, () => throw
CantConnectToDatabase("darn")))
- val forever =
- RestartSource.onFailuresWithBackoff(
- RestartSettings(minBackoff = 1.second, maxBackoff = 10.seconds,
randomFactor = 0.1))(() => flakySource)
- forever.runWith(Sink.foreach(nr => system.log.info("{}", nr())))
- // logs
- // [INFO] [12/10/2019 13:51:58.300]
[default-pekko.test.stream-dispatcher-7] [pekko.actor.ActorSystemImpl(default)]
1
- // [INFO] [12/10/2019 13:51:58.301]
[default-pekko.test.stream-dispatcher-7] [pekko.actor.ActorSystemImpl(default)]
2
- // [INFO] [12/10/2019 13:51:58.302]
[default-pekko.test.stream-dispatcher-7] [pekko.actor.ActorSystemImpl(default)]
3
- // [WARN] [12/10/2019 13:51:58.310]
[default-pekko.test.stream-dispatcher-7]
[RestartWithBackoffSource(pekko://default)] Restarting graph due to failure.
stack_trace: (docs.stream.operators.source.Restart$CantConnectToDatabase: darn)
- // --> 1 second gap
- // [INFO] [12/10/2019 13:51:59.379]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
1
- // [INFO] [12/10/2019 13:51:59.382]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
2
- // [INFO] [12/10/2019 13:51:59.383]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
3
- // [WARN] [12/10/2019 13:51:59.386]
[default-pekko.test.stream-dispatcher-8]
[RestartWithBackoffSource(pekko://default)] Restarting graph due to failure.
stack_trace: (docs.stream.operators.source.Restart$CantConnectToDatabase: darn)
- // --> 2 second gap
- // [INFO] [12/10/2019 13:52:01.594]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
1
- // [INFO] [12/10/2019 13:52:01.595]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
2
- // [INFO] [12/10/2019 13:52:01.595]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
3
- // [WARN] [12/10/2019 13:52:01.596]
[default-pekko.test.stream-dispatcher-8]
[RestartWithBackoffSource(pekko://default)] Restarting graph due to failure.
stack_trace: (docs.stream.operators.source.Restart$CantConnectToDatabase: darn)
- // #restart-failure-inner-failure
+ def onRestartWithBackoffInnerFailure(): Unit = {
+ // #restart-failure-inner-failure
+ // could throw if for example it used a database connection to get rows
+ val flakySource: Source[() => Int, NotUsed] =
+ Source(List(() => 1, () => 2, () => 3, () => throw
CantConnectToDatabase("darn")))
+ val forever =
+ RestartSource.onFailuresWithBackoff(
+ RestartSettings(minBackoff = 1.second, maxBackoff = 10.seconds,
randomFactor = 0.1))(() => flakySource)
+ forever.runWith(Sink.foreach(nr => system.log.info("{}", nr())))
+ // logs
+ // [INFO] [12/10/2019 13:51:58.300]
[default-pekko.test.stream-dispatcher-7] [pekko.actor.ActorSystemImpl(default)]
1
+ // [INFO] [12/10/2019 13:51:58.301]
[default-pekko.test.stream-dispatcher-7] [pekko.actor.ActorSystemImpl(default)]
2
+ // [INFO] [12/10/2019 13:51:58.302]
[default-pekko.test.stream-dispatcher-7] [pekko.actor.ActorSystemImpl(default)]
3
+ // [WARN] [12/10/2019 13:51:58.310]
[default-pekko.test.stream-dispatcher-7]
[RestartWithBackoffSource(pekko://default)] Restarting graph due to failure.
stack_trace: (docs.stream.operators.source.Restart$CantConnectToDatabase: darn)
+ // --> 1 second gap
+ // [INFO] [12/10/2019 13:51:59.379]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
1
+ // [INFO] [12/10/2019 13:51:59.382]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
2
+ // [INFO] [12/10/2019 13:51:59.383]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
3
+ // [WARN] [12/10/2019 13:51:59.386]
[default-pekko.test.stream-dispatcher-8]
[RestartWithBackoffSource(pekko://default)] Restarting graph due to failure.
stack_trace: (docs.stream.operators.source.Restart$CantConnectToDatabase: darn)
+ // --> 2 second gap
+ // [INFO] [12/10/2019 13:52:01.594]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
1
+ // [INFO] [12/10/2019 13:52:01.595]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
2
+ // [INFO] [12/10/2019 13:52:01.595]
[default-pekko.test.stream-dispatcher-8] [pekko.actor.ActorSystemImpl(default)]
3
+ // [WARN] [12/10/2019 13:52:01.596]
[default-pekko.test.stream-dispatcher-8]
[RestartWithBackoffSource(pekko://default)] Restarting graph due to failure.
stack_trace: (docs.stream.operators.source.Restart$CantConnectToDatabase: darn)
+ // #restart-failure-inner-failure
- }
+ }
- def onRestartWithBackoffInnerComplete(): Unit = {
+ def onRestartWithBackoffInnerComplete(): Unit = {
- // #restart-failure-inner-complete
- val finiteSource = Source.tick(1.second, 1.second, "tick").take(3)
- val forever =
RestartSource.onFailuresWithBackoff(RestartSettings(1.second, 10.seconds,
0.1))(() => finiteSource)
- forever.runWith(Sink.foreach(println))
- // prints
- // tick
- // tick
- // tick
- // #restart-failure-inner-complete
- }
+ // #restart-failure-inner-complete
+ val finiteSource = Source.tick(1.second, 1.second, "tick").take(3)
+ val forever =
RestartSource.onFailuresWithBackoff(RestartSettings(1.second, 10.seconds,
0.1))(() => finiteSource)
+ forever.runWith(Sink.foreach(println))
+ // prints
+ // tick
+ // tick
+ // tick
+ // #restart-failure-inner-complete
+ }
- def onRestartWitFailureKillSwitch(): Unit = {
- // #restart-failure-inner-complete-kill-switch
- val flakySource: Source[() => Int, NotUsed] =
- Source(List(() => 1, () => 2, () => 3, () => throw
CantConnectToDatabase("darn")))
- val stopRestarting: UniqueKillSwitch =
- RestartSource
- .onFailuresWithBackoff(RestartSettings(1.second, 10.seconds, 0.1))(()
=> flakySource)
- .viaMat(KillSwitches.single)(Keep.right)
- .toMat(Sink.foreach(nr => println(s"Nr ${nr()}")))(Keep.left)
- .run()
- // ... from some where else
- // stop the source from restarting
- stopRestarting.shutdown()
- // #restart-failure-inner-complete-kill-switch
+ def onRestartWitFailureKillSwitch(): Unit = {
+ // #restart-failure-inner-complete-kill-switch
+ val flakySource: Source[() => Int, NotUsed] =
+ Source(List(() => 1, () => 2, () => 3, () => throw
CantConnectToDatabase("darn")))
+ val stopRestarting: UniqueKillSwitch =
+ RestartSource
+ .onFailuresWithBackoff(RestartSettings(1.second, 10.seconds,
0.1))(() => flakySource)
+ .viaMat(KillSwitches.single)(Keep.right)
+ .toMat(Sink.foreach(nr => println(s"Nr ${nr()}")))(Keep.left)
+ .run()
+ // ... from some where else
+ // stop the source from restarting
+ stopRestarting.shutdown()
+ // #restart-failure-inner-complete-kill-switch
+ }
}
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/ExtrapolateAndExpand.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/ExtrapolateAndExpand.scala
index 92deb1edda..73cf5eb859 100644
---
a/docs/src/test/scala/docs/stream/operators/sourceorflow/ExtrapolateAndExpand.scala
+++
b/docs/src/test/scala/docs/stream/operators/sourceorflow/ExtrapolateAndExpand.scala
@@ -32,10 +32,12 @@ import scala.util.Random
/**
*/
-object ExtrapolateAndExpandMain extends App {
- implicit val sys: ActorSystem = ActorSystem("25fps-stream")
- videoAt25Fps.map(_.pixels.utf8String).map(frame => s"$nowInSeconds -
$frame").to(Sink.foreach(println)).run()
+object ExtrapolateAndExpandMain {
+ def main(args: Array[String]): Unit = {
+ implicit val sys: ActorSystem = ActorSystem("25fps-stream")
+ videoAt25Fps.map(_.pixels.utf8String).map(frame => s"$nowInSeconds -
$frame").to(Sink.foreach(println)).run()
+ }
}
object ExtrapolateAndExpand {
diff --git a/docs/src/test/scala/docs/stream/operators/sourceorflow/Fold.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/Fold.scala
index d3d3c7a0a6..8f17f84bed 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/Fold.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/Fold.scala
@@ -19,25 +19,27 @@ import pekko.actor.ActorSystem
import pekko.stream.scaladsl.Source
//#imports
-object Fold extends App {
+object Fold {
+ def main(args: Array[String]): Unit = {
- // #histogram
- case class Histogram(low: Long = 0, high: Long = 0) {
- def add(i: Int): Histogram = if (i < 100) copy(low = low + 1) else
copy(high = high + 1)
- }
- // #histogram
+ // #histogram
+ case class Histogram(low: Long = 0, high: Long = 0) {
+ def add(i: Int): Histogram = if (i < 100) copy(low = low + 1) else
copy(high = high + 1)
+ }
+ // #histogram
- implicit val sys: ActorSystem = ActorSystem()
+ implicit val sys: ActorSystem = ActorSystem()
- // #fold
- Source(1 to 150).fold(Histogram())((acc, n) =>
acc.add(n)).runForeach(println)
+ // #fold
+ Source(1 to 150).fold(Histogram())((acc, n) =>
acc.add(n)).runForeach(println)
- // Prints: Histogram(99,51)
- // #fold
+ // Prints: Histogram(99,51)
+ // #fold
- // #foldWhile
- Source(1 to 100)
- .foldWhile(0)(elem => elem < 100)(_ + _)
- .runForeach(println)
- // #foldWhile
+ // #foldWhile
+ Source(1 to 100)
+ .foldWhile(0)(elem => elem < 100)(_ + _)
+ .runForeach(println)
+ // #foldWhile
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldAsync.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldAsync.scala
index dfc6476e8a..0de5d53861 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldAsync.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldAsync.scala
@@ -21,19 +21,21 @@ import pekko.stream.scaladsl.Source
import scala.concurrent.{ ExecutionContext, Future }
//#imports
-object FoldAsync extends App {
+object FoldAsync {
+ def main(args: Array[String]): Unit = {
- implicit val system: ActorSystem = ActorSystem()
- implicit val ec: ExecutionContext = system.dispatcher
+ implicit val system: ActorSystem = ActorSystem()
+ implicit val ec: ExecutionContext = system.dispatcher
- // #foldAsync
- case class Histogram(low: Long = 0, high: Long = 0) {
- def add(i: Int): Future[Histogram] =
- if (i < 100) Future { copy(low = low + 1) } else Future { copy(high =
high + 1) }
- }
+ // #foldAsync
+ case class Histogram(low: Long = 0, high: Long = 0) {
+ def add(i: Int): Future[Histogram] =
+ if (i < 100) Future { copy(low = low + 1) } else Future { copy(high =
high + 1) }
+ }
- Source(1 to 150).foldAsync(Histogram())((acc, n) =>
acc.add(n)).runForeach(println)
+ Source(1 to 150).foldAsync(Histogram())((acc, n) =>
acc.add(n)).runForeach(println)
- // Prints: Histogram(99,51)
- // #foldAsync
+ // Prints: Histogram(99,51)
+ // #foldAsync
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldWhile.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldWhile.scala
index ce041e39ad..ed6b2d4001 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldWhile.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/FoldWhile.scala
@@ -23,15 +23,17 @@ import pekko.actor.ActorSystem
import pekko.stream.scaladsl.Source
//#imports
-object FoldWhile extends App {
+object FoldWhile {
+ def main(args: Array[String]): Unit = {
- implicit val sys: ActorSystem = ActorSystem()
+ implicit val sys: ActorSystem = ActorSystem()
- // #foldWhile
- Source(1 to 10)
- .foldWhile(0)(_ < 10)(_ + _)
- .runForeach(println)
- // Expect prints:
- // 10
- // #foldWhile
+ // #foldWhile
+ Source(1 to 10)
+ .foldWhile(0)(_ < 10)(_ + _)
+ .runForeach(println)
+ // Expect prints:
+ // 10
+ // #foldWhile
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/Intersperse.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/Intersperse.scala
index ea31ed2c0b..eef5cad4fb 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/Intersperse.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/Intersperse.scala
@@ -16,16 +16,18 @@ package docs.stream.operators.sourceorflow
import org.apache.pekko.stream.scaladsl.Sink
import org.apache.pekko.stream.scaladsl.Source
-object Intersperse extends App {
- import org.apache.pekko.actor.ActorSystem
+object Intersperse {
+ def main(args: Array[String]): Unit = {
+ import org.apache.pekko.actor.ActorSystem
- implicit val system: ActorSystem = ActorSystem()
+ implicit val system: ActorSystem = ActorSystem()
- // #intersperse
- Source(1 to 4).map(_.toString).intersperse("[", ", ",
"]").runWith(Sink.foreach(print))
- // prints
- // [1, 2, 3, 4]
- // #intersperse
+ // #intersperse
+ Source(1 to 4).map(_.toString).intersperse("[", ", ",
"]").runWith(Sink.foreach(print))
+ // prints
+ // [1, 2, 3, 4]
+ // #intersperse
- system.terminate()
+ system.terminate()
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/MapAsyncs.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/MapAsyncs.scala
index 4d4542bd06..00197c25e4 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/MapAsyncs.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/MapAsyncs.scala
@@ -76,50 +76,56 @@ object CommonMapAsync {
}
-object MapAsyncStrictOrder extends App {
- import CommonMapAsync._
- // #mapasync-strict-order
-
- events
- .mapAsync(1) { in =>
- eventHandler(in)
- }
- .map { in =>
- println(s"`mapAsync` emitted event number: $in")
- }
+object MapAsyncStrictOrder {
+ def main(args: Array[String]): Unit = {
+ import CommonMapAsync._
// #mapasync-strict-order
- .runWith(Sink.ignore)
-}
+ events
+ .mapAsync(1) { in =>
+ eventHandler(in)
+ }
+ .map { in =>
+ println(s"`mapAsync` emitted event number: $in")
+ }
+ // #mapasync-strict-order
+ .runWith(Sink.ignore)
-object MapAsync extends App {
- import CommonMapAsync._
- // #mapasync-concurrent
+ }
+}
- events
- .mapAsync(3) { in =>
- eventHandler(in)
- }
- .map { in =>
- println(s"`mapAsync` emitted event number: $in")
- }
+object MapAsync {
+ def main(args: Array[String]): Unit = {
+ import CommonMapAsync._
// #mapasync-concurrent
- .runWith(Sink.ignore)
-}
+ events
+ .mapAsync(3) { in =>
+ eventHandler(in)
+ }
+ .map { in =>
+ println(s"`mapAsync` emitted event number: $in")
+ }
+ // #mapasync-concurrent
+ .runWith(Sink.ignore)
-object MapAsyncUnordered extends App {
- import CommonMapAsync._
- // #mapasyncunordered
+ }
+}
- events
- .mapAsyncUnordered(3) { in =>
- eventHandler(in)
- }
- .map { in =>
- println(s"`mapAsyncUnordered` emitted event number: $in")
- }
+object MapAsyncUnordered {
+ def main(args: Array[String]): Unit = {
+ import CommonMapAsync._
// #mapasyncunordered
- .runWith(Sink.ignore)
+ events
+ .mapAsyncUnordered(3) { in =>
+ eventHandler(in)
+ }
+ .map { in =>
+ println(s"`mapAsyncUnordered` emitted event number: $in")
+ }
+ // #mapasyncunordered
+ .runWith(Sink.ignore)
+
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/MapError.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/MapError.scala
index 78aa1c479b..5ada0d3bf5 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/MapError.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/MapError.scala
@@ -20,25 +20,27 @@ import scala.concurrent.ExecutionContext
import scala.util.control.NoStackTrace
import scala.util.{ Failure, Success }
-object MapError extends App {
-
- implicit val system: ActorSystem = ActorSystem()
- implicit val ec: ExecutionContext = system.dispatcher
-
- // #map-error
- Source(-1 to 1)
- .map(1 / _)
- .mapError {
- case _: ArithmeticException =>
- new UnsupportedOperationException("Divide by Zero Operation is not
supported.") with NoStackTrace
- }
- .runWith(Sink.seq)
- .onComplete {
- case Success(value) => println(value.mkString)
- case Failure(ex) => println(ex.getMessage)
- }
-
- // prints "Divide by Zero Operation is not supported."
- // #map-error
-
+object MapError {
+ def main(args: Array[String]): Unit = {
+
+ implicit val system: ActorSystem = ActorSystem()
+ implicit val ec: ExecutionContext = system.dispatcher
+
+ // #map-error
+ Source(-1 to 1)
+ .map(1 / _)
+ .mapError {
+ case _: ArithmeticException =>
+ new UnsupportedOperationException("Divide by Zero Operation is not
supported.") with NoStackTrace
+ }
+ .runWith(Sink.seq)
+ .onComplete {
+ case Success(value) => println(value.mkString)
+ case Failure(ex) => println(ex.getMessage)
+ }
+
+ // prints "Divide by Zero Operation is not supported."
+ // #map-error
+
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/MergeLatest.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/MergeLatest.scala
index b29b9f6097..5d7fe86ff9 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/MergeLatest.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/MergeLatest.scala
@@ -15,27 +15,29 @@ package docs.stream.operators.sourceorflow
import org.apache.pekko.actor.ActorSystem
import org.apache.pekko.stream.scaladsl.Source
-object MergeLatest extends App {
- implicit val system: ActorSystem = ActorSystem()
+object MergeLatest {
+ def main(args: Array[String]): Unit = {
+ implicit val system: ActorSystem = ActorSystem()
- // #mergeLatest
- val prices = Source(List(100, 101, 99, 103))
- val quantity = Source(List(1, 3, 4, 2))
+ // #mergeLatest
+ val prices = Source(List(100, 101, 99, 103))
+ val quantity = Source(List(1, 3, 4, 2))
- prices
- .mergeLatest(quantity)
- .map {
- case price :: quantity :: Nil => price * quantity
- }
- .runForeach(println)
+ prices
+ .mergeLatest(quantity)
+ .map {
+ case price :: quantity :: Nil => price * quantity
+ }
+ .runForeach(println)
- // prints something like:
- // 100
- // 101
- // 303
- // 297
- // 396
- // 412
- // 206
- // #mergeLatest
+ // prints something like:
+ // 100
+ // 101
+ // 303
+ // 297
+ // 396
+ // 412
+ // 206
+ // #mergeLatest
+ }
}
diff --git
a/docs/src/test/scala/docs/stream/operators/sourceorflow/Throttle.scala
b/docs/src/test/scala/docs/stream/operators/sourceorflow/Throttle.scala
index d321e61b18..bb6dafbbe6 100644
--- a/docs/src/test/scala/docs/stream/operators/sourceorflow/Throttle.scala
+++ b/docs/src/test/scala/docs/stream/operators/sourceorflow/Throttle.scala
@@ -23,33 +23,35 @@ import scala.concurrent.duration._
/**
*/
-object Throttle extends App {
-
- implicit val sys: ActorSystem = ActorSystem("25fps-stream")
-
- val frameSource: Source[Int, NotUsed] =
- Source.fromIterator(() => Iterator.from(0))
-
- // #throttle
- val framesPerSecond = 24
-
- // val frameSource: Source[Frame,_]
- val videoThrottling = frameSource.throttle(framesPerSecond, 1.second)
- // serialize `Frame` and send over the network.
- // #throttle
-
- // #throttle-with-burst
- // val frameSource: Source[Frame,_]
- val videoThrottlingWithBurst = frameSource.throttle(
- framesPerSecond,
- 1.second,
- framesPerSecond * 30, // maximumBurst
- ThrottleMode.Shaping)
- // serialize `Frame` and send over the network.
- // #throttle-with-burst
-
- videoThrottling.take(1000).to(Sink.foreach(println)).run()
- videoThrottlingWithBurst.take(1000).to(Sink.foreach(println)).run()
+object Throttle {
+ def main(args: Array[String]): Unit = {
+
+ implicit val sys: ActorSystem = ActorSystem("25fps-stream")
+
+ val frameSource: Source[Int, NotUsed] =
+ Source.fromIterator(() => Iterator.from(0))
+
+ // #throttle
+ val framesPerSecond = 24
+
+ // val frameSource: Source[Frame,_]
+ val videoThrottling = frameSource.throttle(framesPerSecond, 1.second)
+ // serialize `Frame` and send over the network.
+ // #throttle
+
+ // #throttle-with-burst
+ // val frameSource: Source[Frame,_]
+ val videoThrottlingWithBurst = frameSource.throttle(
+ framesPerSecond,
+ 1.second,
+ framesPerSecond * 30, // maximumBurst
+ ThrottleMode.Shaping)
+ // serialize `Frame` and send over the network.
+ // #throttle-with-burst
+
+ videoThrottling.take(1000).to(Sink.foreach(println)).run()
+ videoThrottlingWithBurst.take(1000).to(Sink.foreach(println)).run()
+ }
}
object ThrottleCommon {
diff --git
a/docs/src/test/scala/typed/tutorial_1/ActorHierarchyExperiments.scala
b/docs/src/test/scala/typed/tutorial_1/ActorHierarchyExperiments.scala
index d76b9bfd3a..0048df1e23 100644
--- a/docs/src/test/scala/typed/tutorial_1/ActorHierarchyExperiments.scala
+++ b/docs/src/test/scala/typed/tutorial_1/ActorHierarchyExperiments.scala
@@ -162,9 +162,11 @@ class Main(context: ActorContext[String]) extends
AbstractBehavior[String](conte
}
}
-object ActorHierarchyExperiments extends App {
- val testSystem = ActorSystem(Main(), "testSystem")
- testSystem ! "start"
+object ActorHierarchyExperiments {
+ def main(args: Array[String]): Unit = {
+ val testSystem = ActorSystem(Main(), "testSystem")
+ testSystem ! "start"
+ }
}
//#print-refs
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]