Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Switching to immutable.Seq instead of Seq

  • Loading branch information...
commit 8f131c680fb089f4e1a8be78cfe4ad72b0a1123a 1 parent 2866ecf
@viktorklang viktorklang authored
Showing with 374 additions and 349 deletions.
  1. +5 −7 akka-actor-tests/src/test/scala/akka/actor/RelativeActorPathSpec.scala
  2. +7 −6 akka-actor-tests/src/test/scala/akka/actor/TypedActorSpec.scala
  3. +15 −14 akka-actor-tests/src/test/scala/akka/performance/workbench/BenchResultRepository.scala
  4. +10 −13 akka-actor-tests/src/test/scala/akka/performance/workbench/GoogleChartBuilder.scala
  5. +9 −9 akka-actor-tests/src/test/scala/akka/performance/workbench/Report.scala
  6. +1 −1  akka-actor/src/main/scala/akka/actor/ActorPath.scala
  7. +1 −1  akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
  8. +16 −18 akka-actor/src/main/scala/akka/actor/ActorSystem.scala
  9. +3 −2 akka-actor/src/main/scala/akka/actor/Address.scala
  10. +1 −1  akka-actor/src/main/scala/akka/actor/Deployer.scala
  11. +5 −5 akka-actor/src/main/scala/akka/actor/DynamicAccess.scala
  12. +1 −1  akka-actor/src/main/scala/akka/actor/Extension.scala
  13. +15 −23 akka-actor/src/main/scala/akka/actor/FaultHandling.scala
  14. +10 −9 akka-actor/src/main/scala/akka/actor/IO.scala
  15. +12 −10 akka-actor/src/main/scala/akka/actor/TypedActor.scala
  16. +2 −2 akka-actor/src/main/scala/akka/dispatch/AbstractDispatcher.scala
  17. +1 −1  akka-actor/src/main/scala/akka/dispatch/Dispatchers.scala
  18. +3 −2 akka-actor/src/main/scala/akka/event/EventBus.scala
  19. +5 −4 akka-actor/src/main/scala/akka/event/Logging.scala
  20. +4 −3 akka-actor/src/main/scala/akka/japi/JavaAPI.scala
  21. +3 −3 akka-actor/src/main/scala/akka/routing/ConsistentHash.scala
  22. +11 −10 akka-actor/src/main/scala/akka/serialization/Serialization.scala
  23. +4 −2 akka-actor/src/main/scala/akka/util/SubclassifiedIndex.scala
  24. +8 −3 akka-camel/src/test/scala/akka/camel/ConcurrentActivationTest.scala
  25. +1 −1  akka-cluster/src/main/scala/akka/cluster/Cluster.scala
  26. +1 −1  akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
  27. +3 −2 akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala
  28. +3 −2 akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala
  29. +5 −4 akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala
  30. +2 −1  akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala
  31. +15 −18 akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala
  32. +2 −1  akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala
  33. +4 −3 akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala
  34. +4 −3 akka-cluster/src/multi-jvm/scala/akka/cluster/UnreachableNodeRejoinsClusterSpec.scala
  35. +3 −3 akka-cluster/src/test/scala/akka/cluster/AccrualFailureDetectorSpec.scala
  36. +7 −6 akka-cluster/src/test/scala/akka/cluster/MetricsCollectorSpec.scala
  37. +2 −2 akka-docs/rst/java/code/docs/actor/FaultHandlingTestBase.java
  38. +2 −1  akka-docs/rst/java/code/docs/jrouting/CustomRouterDocTestBase.java
  39. +6 −5 akka-docs/rst/scala/code/docs/actor/FSMDocSpec.scala
  40. +4 −3 akka-docs/rst/scala/code/docs/testkit/TestKitUsageSpec.scala
  41. +6 −6 akka-docs/rst/scala/code/docs/zeromq/ZeromqDocSpec.scala
  42. +4 −3 akka-kernel/src/main/scala/akka/kernel/Main.scala
  43. +3 −3 akka-osgi-aries/src/test/scala/akka/osgi/aries/blueprint/NamespaceHandlerTest.scala
  44. +4 −2 akka-osgi/src/test/scala/akka/osgi/ActorSystemActivatorTest.scala
  45. +6 −10 akka-osgi/src/test/scala/akka/osgi/PojoSRTestSupport.scala
  46. +9 −9 akka-remote-tests/src/main/scala/akka/remote/testconductor/NetworkFailureInjector.scala
  47. +9 −11 akka-remote-tests/src/main/scala/akka/remote/testconductor/Player.scala
  48. +13 −11 akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala
  49. +1 −1  akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
  50. +6 −5 akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala
  51. +3 −2 akka-remote/src/main/scala/akka/remote/security/provider/InternetSeedGenerator.scala
  52. +1 −1  akka-testkit/src/main/scala/akka/testkit/TestActorRef.scala
  53. +10 −9 akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala
  54. +22 −22 akka-testkit/src/main/scala/akka/testkit/TestKit.scala
  55. +5 −3 akka-testkit/src/main/scala/akka/testkit/package.scala
  56. +2 −2 akka-transactor/src/test/java/akka/transactor/UntypedCoordinatedIncrementTest.java
  57. +2 −2 akka-transactor/src/test/java/akka/transactor/UntypedTransactorTest.java
  58. +4 −3 akka-transactor/src/test/scala/akka/transactor/CoordinatedIncrementSpec.scala
  59. +8 −7 akka-transactor/src/test/scala/akka/transactor/FickleFriendsSpec.scala
  60. +3 −2 akka-transactor/src/test/scala/akka/transactor/TransactorSpec.scala
  61. +7 −6 akka-zeromq/src/main/scala/akka/zeromq/ConcurrentSocketActor.scala
  62. +17 −15 akka-zeromq/src/main/scala/akka/zeromq/SocketOption.scala
  63. +6 −3 akka-zeromq/src/main/scala/akka/zeromq/ZMQMessageDeserializer.scala
  64. +3 −1 akka-zeromq/src/main/scala/akka/zeromq/ZeroMQExtension.scala
  65. +4 −4 akka-zeromq/src/test/scala/akka/zeromq/ConcurrentSocketActorSpec.scala
View
12 akka-actor-tests/src/test/scala/akka/actor/RelativeActorPathSpec.scala
@@ -6,24 +6,22 @@ package akka.actor
import org.scalatest.WordSpec
import org.scalatest.matchers.MustMatchers
import java.net.URLEncoder
+import scala.collection.immutable
class RelativeActorPathSpec extends WordSpec with MustMatchers {
- def elements(path: String): Seq[String] = path match {
- case RelativeActorPath(elem) elem.toSeq
- case _ Nil
- }
+ def elements(path: String): immutable.Seq[String] = RelativeActorPath.unapply(path).getOrElse(Nil)
"RelativeActorPath" must {
"match single name" in {
- elements("foo") must be(Seq("foo"))
+ elements("foo") must be(List("foo"))
}
"match path separated names" in {
- elements("foo/bar/baz") must be(Seq("foo", "bar", "baz"))
+ elements("foo/bar/baz") must be(List("foo", "bar", "baz"))
}
"match url encoded name" in {
val name = URLEncoder.encode("akka://ClusterSystem@127.0.0.1:2552", "UTF-8")
- elements(name) must be(Seq(name))
+ elements(name) must be(List(name))
}
}
}
View
13 akka-actor-tests/src/test/scala/akka/actor/TypedActorSpec.scala
@@ -5,18 +5,19 @@ package akka.actor
import language.postfixOps
import org.scalatest.{ BeforeAndAfterAll, BeforeAndAfterEach }
-import akka.util.Timeout
+import scala.annotation.tailrec
+import scala.collection.immutable
import scala.concurrent.{ Await, Future, Promise }
import scala.concurrent.duration._
-import java.util.concurrent.atomic.AtomicReference
-import annotation.tailrec
import akka.testkit.{ EventFilter, filterEvents, AkkaSpec }
+import akka.util.Timeout
import akka.japi.{ Option JOption }
import akka.testkit.DefaultTimeout
-import akka.dispatch.{ Dispatchers }
+import akka.dispatch.Dispatchers
import akka.pattern.ask
import akka.serialization.JavaSerializer
import akka.actor.TypedActor._
+import java.util.concurrent.atomic.AtomicReference
import java.lang.IllegalStateException
import java.util.concurrent.{ TimeoutException, TimeUnit, CountDownLatch }
@@ -35,9 +36,9 @@ object TypedActorSpec {
}
"""
- class CyclicIterator[T](val items: Seq[T]) extends Iterator[T] {
+ class CyclicIterator[T](val items: immutable.Seq[T]) extends Iterator[T] {
- private[this] val current: AtomicReference[Seq[T]] = new AtomicReference(items)
+ private[this] val current = new AtomicReference(items)
def hasNext = items != Nil
View
29 akka-actor-tests/src/test/scala/akka/performance/workbench/BenchResultRepository.scala
@@ -12,17 +12,18 @@ import java.io.PrintWriter
import java.text.SimpleDateFormat
import java.util.Date
import scala.collection.mutable.{ Map MutableMap }
+import scala.collection.immutable
import akka.actor.ActorSystem
import akka.event.Logging
trait BenchResultRepository {
def add(stats: Stats)
- def get(name: String): Seq[Stats]
+ def get(name: String): immutable.Seq[Stats]
def get(name: String, load: Int): Option[Stats]
- def getWithHistorical(name: String, load: Int): Seq[Stats]
+ def getWithHistorical(name: String, load: Int): immutable.Seq[Stats]
def isBaseline(stats: Stats): Boolean
@@ -38,9 +39,9 @@ object BenchResultRepository {
}
class FileBenchResultRepository extends BenchResultRepository {
- private val statsByName = MutableMap[String, Seq[Stats]]()
+ private val statsByName = MutableMap[String, immutable.Seq[Stats]]()
private val baselineStats = MutableMap[Key, Stats]()
- private val historicalStats = MutableMap[Key, Seq[Stats]]()
+ private val historicalStats = MutableMap[Key, immutable.Seq[Stats]]()
private def resultDir = BenchmarkConfig.config.getString("benchmark.resultDir")
private val serDir = resultDir + "/ser"
private def serDirExists: Boolean = new File(serDir).exists
@@ -51,13 +52,13 @@ class FileBenchResultRepository extends BenchResultRepository {
case class Key(name: String, load: Int)
def add(stats: Stats): Unit = synchronized {
- val values = statsByName.getOrElseUpdate(stats.name, IndexedSeq.empty)
+ val values = statsByName.getOrElseUpdate(stats.name, Vector.empty)
statsByName(stats.name) = values :+ stats
save(stats)
}
- def get(name: String): Seq[Stats] = synchronized {
- statsByName.getOrElse(name, IndexedSeq.empty)
+ def get(name: String): immutable.Seq[Stats] = synchronized {
+ statsByName.getOrElse(name, Vector.empty)
}
def get(name: String, load: Int): Option[Stats] = synchronized {
@@ -68,13 +69,13 @@ class FileBenchResultRepository extends BenchResultRepository {
baselineStats.get(Key(stats.name, stats.load)) == Some(stats)
}
- def getWithHistorical(name: String, load: Int): Seq[Stats] = synchronized {
+ def getWithHistorical(name: String, load: Int): immutable.Seq[Stats] = synchronized {
val key = Key(name, load)
- val historical = historicalStats.getOrElse(key, IndexedSeq.empty)
+ val historical = historicalStats.getOrElse(key, Vector.empty)
val baseline = baselineStats.get(key)
val current = get(name, load)
- val limited = (IndexedSeq.empty ++ historical ++ baseline ++ current).takeRight(maxHistorical)
+ val limited = (Vector.empty ++ historical ++ baseline ++ current).takeRight(maxHistorical)
limited.sortBy(_.timestamp)
}
@@ -94,7 +95,7 @@ class FileBenchResultRepository extends BenchResultRepository {
}
val historical = load(historicalFiles)
for (h historical) {
- val values = historicalStats.getOrElseUpdate(Key(h.name, h.load), IndexedSeq.empty)
+ val values = historicalStats.getOrElseUpdate(Key(h.name, h.load), Vector.empty)
historicalStats(Key(h.name, h.load)) = values :+ h
}
}
@@ -120,7 +121,7 @@ class FileBenchResultRepository extends BenchResultRepository {
}
}
- private def load(files: Iterable[File]): Seq[Stats] = {
+ private def load(files: Iterable[File]): immutable.Seq[Stats] = {
val result =
for (f files) yield {
var in: ObjectInputStream = null
@@ -132,11 +133,11 @@ class FileBenchResultRepository extends BenchResultRepository {
case e: Throwable
None
} finally {
- if (in ne null) try { in.close() } catch { case ignore: Exception }
+ if (in ne null) try in.close() catch { case ignore: Exception }
}
}
- result.flatten.toSeq.sortBy(_.timestamp)
+ result.flatten.toVector.sortBy(_.timestamp)
}
loadFiles()
View
23 akka-actor-tests/src/test/scala/akka/performance/workbench/GoogleChartBuilder.scala
@@ -3,7 +3,7 @@ package akka.performance.workbench
import java.io.UnsupportedEncodingException
import java.net.URLEncoder
-import scala.collection.immutable.TreeMap
+import scala.collection.immutable
/**
* Generates URLs to Google Chart API http://code.google.com/apis/chart/
@@ -16,7 +16,7 @@ object GoogleChartBuilder {
/**
* Builds a bar chart for tps in the statistics.
*/
- def tpsChartUrl(statsByTimestamp: TreeMap[Long, Seq[Stats]], title: String, legend: Stats String): String = {
+ def tpsChartUrl(statsByTimestamp: immutable.TreeMap[Long, Seq[Stats]], title: String, legend: Stats String): String = {
if (statsByTimestamp.isEmpty) ""
else {
val loads = statsByTimestamp.values.head.map(_.load)
@@ -46,7 +46,7 @@ object GoogleChartBuilder {
//sb.append("&")
// legend
- val legendStats = statsByTimestamp.values.map(_.head).toSeq
+ val legendStats = statsByTimestamp.values.toVector.map(_.head)
appendLegend(legendStats, sb, legend)
sb.append("&")
// bar spacing
@@ -60,10 +60,7 @@ object GoogleChartBuilder {
val loadStr = loads.mkString(",")
sb.append("chd=t:")
val maxValue = allStats.map(_.tps).max
- val tpsSeries: Iterable[String] =
- for (statsSeq statsByTimestamp.values) yield {
- statsSeq.map(_.tps).mkString(",")
- }
+ val tpsSeries: Iterable[String] = for (statsSeq statsByTimestamp.values) yield statsSeq.map(_.tps).mkString(",")
sb.append(tpsSeries.mkString("|"))
// y range
@@ -83,7 +80,7 @@ object GoogleChartBuilder {
/**
* Builds a bar chart for all percentiles and the mean in the statistics.
*/
- def percentilesAndMeanChartUrl(statistics: Seq[Stats], title: String, legend: Stats String): String = {
+ def percentilesAndMeanChartUrl(statistics: immutable.Seq[Stats], title: String, legend: Stats String): String = {
if (statistics.isEmpty) ""
else {
val current = statistics.last
@@ -146,13 +143,13 @@ object GoogleChartBuilder {
}
}
- private def percentileLabels(percentiles: TreeMap[Int, Long], sb: StringBuilder) {
+ private def percentileLabels(percentiles: immutable.TreeMap[Int, Long], sb: StringBuilder) {
sb.append("chxl=1:|")
val s = percentiles.keys.toList.map(_ + "%").mkString("|")
sb.append(s)
}
- private def appendLegend(statistics: Seq[Stats], sb: StringBuilder, legend: Stats String) {
+ private def appendLegend(statistics: immutable.Seq[Stats], sb: StringBuilder, legend: Stats String) {
val legends = statistics.map(legend(_))
sb.append("chdl=")
val s = legends.map(urlEncode(_)).mkString("|")
@@ -166,7 +163,7 @@ object GoogleChartBuilder {
sb.append(s)
}
- private def dataSeries(allPercentiles: Seq[TreeMap[Int, Long]], meanValues: Seq[Double], sb: StringBuilder) {
+ private def dataSeries(allPercentiles: immutable.Seq[immutable.TreeMap[Int, Long]], meanValues: immutable.Seq[Double], sb: StringBuilder) {
val percentileSeries =
for {
percentiles allPercentiles
@@ -181,7 +178,7 @@ object GoogleChartBuilder {
sb.append(series.mkString("|"))
}
- private def dataSeries(values: Seq[Double], sb: StringBuilder) {
+ private def dataSeries(values: immutable.Seq[Double], sb: StringBuilder) {
val series = values.map(formatDouble(_))
sb.append(series.mkString("|"))
}
@@ -198,7 +195,7 @@ object GoogleChartBuilder {
}
}
- def latencyAndThroughputChartUrl(statistics: Seq[Stats], title: String): String = {
+ def latencyAndThroughputChartUrl(statistics: immutable.Seq[Stats], title: String): String = {
if (statistics.isEmpty) ""
else {
val sb = new StringBuilder
View
18 akka-actor-tests/src/test/scala/akka/performance/workbench/Report.scala
@@ -5,7 +5,7 @@ import java.text.SimpleDateFormat
import java.util.Date
import akka.actor.ActorSystem
import akka.event.Logging
-import scala.collection.immutable.TreeMap
+import scala.collection.immutable
class Report(
system: ActorSystem,
@@ -19,7 +19,7 @@ class Report(
val legendTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm")
val fileTimestampFormat = new SimpleDateFormat("yyyyMMddHHmmss")
- def html(statistics: Seq[Stats]) {
+ def html(statistics: immutable.Seq[Stats]) {
val current = statistics.last
val sb = new StringBuilder
@@ -80,13 +80,13 @@ class Report(
chartUrl
}
- def comparePercentilesAndMeanChart(stats: Stats): Seq[String] = {
+ def comparePercentilesAndMeanChart(stats: Stats): immutable.Seq[String] = {
for {
- compareName compareResultWith.toSeq
+ compareName compareResultWith.to[immutable.Seq]
compareStats resultRepository.get(compareName, stats.load)
} yield {
val chartTitle = stats.name + " vs. " + compareName + ", " + stats.load + " clients" + ", Percentiles and Mean (microseconds)"
- val chartUrl = GoogleChartBuilder.percentilesAndMeanChartUrl(Seq(compareStats, stats), chartTitle, _.name)
+ val chartUrl = GoogleChartBuilder.percentilesAndMeanChartUrl(List(compareStats, stats), chartTitle, _.name)
chartUrl
}
}
@@ -102,17 +102,17 @@ class Report(
}
}
- def compareWithHistoricalTpsChart(statistics: Seq[Stats]): Option[String] = {
+ def compareWithHistoricalTpsChart(statistics: immutable.Seq[Stats]): Option[String] = {
if (statistics.isEmpty) {
None
} else {
val histTimestamps = resultRepository.getWithHistorical(statistics.head.name, statistics.head.load).map(_.timestamp)
- val statsByTimestamp = TreeMap[Long, Seq[Stats]]() ++
+ val statsByTimestamp = immutable.TreeMap[Long, Seq[Stats]]() ++
(for (ts histTimestamps) yield {
val seq =
for (stats statistics) yield {
- val withHistorical: Seq[Stats] = resultRepository.getWithHistorical(stats.name, stats.load)
+ val withHistorical: immutable.Seq[Stats] = resultRepository.getWithHistorical(stats.name, stats.load)
val cell = withHistorical.find(_.timestamp == ts)
cell.getOrElse(Stats(stats.name, stats.load, ts))
}
@@ -131,7 +131,7 @@ class Report(
chartUrl
}
- def formatResultsTable(statsSeq: Seq[Stats]): String = {
+ def formatResultsTable(statsSeq: immutable.Seq[Stats]): String = {
val name = statsSeq.head.name
View
2  akka-actor/src/main/scala/akka/actor/ActorPath.scala
@@ -121,7 +121,7 @@ final case class RootActorPath(address: Address, name: String = "/") extends Act
else addr + name
override def compareTo(other: ActorPath): Int = other match {
- case r: RootActorPath toString compareTo r.toString
+ case r: RootActorPath toString compareTo r.toString // FIXME make this cheaper by comparing address and name in isolation
case c: ChildActorPath 1
}
}
View
2  akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
@@ -480,7 +480,7 @@ class LocalActorRefProvider(
def registerExtraNames(_extras: Map[String, InternalActorRef]): Unit = extraNames ++= _extras
private def guardianSupervisorStrategyConfigurator =
- dynamicAccess.createInstanceFor[SupervisorStrategyConfigurator](settings.SupervisorStrategyClass, Seq()).get
+ dynamicAccess.createInstanceFor[SupervisorStrategyConfigurator](settings.SupervisorStrategyClass, Nil).get
/**
* Overridable supervision strategy to be used by the “/user” guardian.
View
34 akka-actor/src/main/scala/akka/actor/ActorSystem.scala
@@ -9,17 +9,17 @@ import akka.dispatch._
import akka.pattern.ask
import com.typesafe.config.{ Config, ConfigFactory }
import scala.annotation.tailrec
-import scala.concurrent.duration.Duration
-import java.io.Closeable
+import scala.collection.immutable
+import scala.concurrent.duration.{ FiniteDuration, Duration }
import scala.concurrent.{ Await, Awaitable, CanAwait, Future }
+import scala.util.{ Failure, Success }
import scala.util.control.NonFatal
import akka.util._
+import java.io.Closeable
import akka.util.internal.{ HashedWheelTimer, ConcurrentIdentityHashMap }
import java.util.concurrent.{ ThreadFactory, CountDownLatch, TimeoutException, RejectedExecutionException }
import java.util.concurrent.TimeUnit.MILLISECONDS
import akka.actor.dungeon.ChildrenContainer
-import scala.concurrent.duration.FiniteDuration
-import util.{ Failure, Success }
object ActorSystem {
@@ -144,7 +144,7 @@ object ActorSystem {
final val LogLevel: String = getString("akka.loglevel")
final val StdoutLogLevel: String = getString("akka.stdout-loglevel")
- final val EventHandlers: Seq[String] = getStringList("akka.event-handlers").asScala
+ final val EventHandlers: immutable.Seq[String] = getStringList("akka.event-handlers").asScala.to[Vector]
final val EventHandlerStartTimeout: Timeout = Timeout(Duration(getMilliseconds("akka.event-handler-startup-timeout"), MILLISECONDS))
final val LogConfigOnStart: Boolean = config.getBoolean("akka.log-config-on-start")
@@ -273,10 +273,8 @@ abstract class ActorSystem extends ActorRefFactory {
/**
* ''Java API'': Recursively create a descendant’s path by appending all child names.
*/
- def descendant(names: java.lang.Iterable[String]): ActorPath = {
- import scala.collection.JavaConverters._
- /(names.asScala)
- }
+ def descendant(names: java.lang.Iterable[String]): ActorPath =
+ /(scala.collection.JavaConverters.iterableAsScalaIterableConverter(names).asScala)
/**
* Start-up time in milliseconds since the epoch.
@@ -536,7 +534,7 @@ private[akka] class ActorSystemImpl(val name: String, applicationConfig: Config,
val scheduler: Scheduler = createScheduler()
val provider: ActorRefProvider = {
- val arguments = Seq(
+ val arguments = Vector(
classOf[String] -> name,
classOf[Settings] -> settings,
classOf[EventStream] -> eventStream,
@@ -676,15 +674,15 @@ private[akka] class ActorSystemImpl(val name: String, applicationConfig: Config,
def hasExtension(ext: ExtensionId[_ <: Extension]): Boolean = findExtension(ext) != null
private def loadExtensions() {
- import scala.collection.JavaConverters.collectionAsScalaIterableConverter
- settings.config.getStringList("akka.extensions").asScala foreach { fqcn
- dynamicAccess.getObjectFor[AnyRef](fqcn) recoverWith { case _ dynamicAccess.createInstanceFor[AnyRef](fqcn, Seq()) } match {
- case Success(p: ExtensionIdProvider) registerExtension(p.lookup())
- case Success(p: ExtensionId[_]) registerExtension(p)
- case Success(other) log.error("[{}] is not an 'ExtensionIdProvider' or 'ExtensionId', skipping...", fqcn)
- case Failure(problem) log.error(problem, "While trying to load extension [{}], skipping...", fqcn)
+ scala.collection.JavaConverters.collectionAsScalaIterableConverter(
+ settings.config.getStringList("akka.extensions")).asScala foreach { fqcn
+ dynamicAccess.getObjectFor[AnyRef](fqcn) recoverWith { case _ dynamicAccess.createInstanceFor[AnyRef](fqcn, Nil) } match {
+ case Success(p: ExtensionIdProvider) registerExtension(p.lookup())
+ case Success(p: ExtensionId[_]) registerExtension(p)
+ case Success(other) log.error("[{}] is not an 'ExtensionIdProvider' or 'ExtensionId', skipping...", fqcn)
+ case Failure(problem) log.error(problem, "While trying to load extension [{}], skipping...", fqcn)
+ }
}
- }
}
override def toString: String = lookupRoot.path.root.address.toString
View
5 akka-actor/src/main/scala/akka/actor/Address.scala
@@ -5,7 +5,8 @@ package akka.actor
import java.net.URI
import java.net.URISyntaxException
import java.net.MalformedURLException
-import annotation.tailrec
+import scala.annotation.tailrec
+import scala.collection.immutable
/**
* The address specifies the physical location under which an Actor can be
@@ -71,7 +72,7 @@ private[akka] trait PathUtils {
}
object RelativeActorPath extends PathUtils {
- def unapply(addr: String): Option[Iterable[String]] = {
+ def unapply(addr: String): Option[immutable.Seq[String]] = {
try {
val uri = new URI(addr)
if (uri.isAbsolute) None
View
2  akka-actor/src/main/scala/akka/actor/Deployer.scala
@@ -160,7 +160,7 @@ private[akka] class Deployer(val settings: ActorSystem.Settings, val dynamicAcce
val vnodes = deployment.getInt("virtual-nodes-factor")
ConsistentHashingRouter(nrOfInstances, routees, resizer, virtualNodesFactor = vnodes)
case fqn
- val args = Seq(classOf[Config] -> deployment)
+ val args = List(classOf[Config] -> deployment)
dynamicAccess.createInstanceFor[RouterConfig](fqn, args).recover({
case exception throw new IllegalArgumentException(
("Cannot instantiate router [%s], defined in [%s], " +
View
10 akka-actor/src/main/scala/akka/actor/DynamicAccess.scala
@@ -3,7 +3,7 @@
*/
package akka.actor
-import scala.util.control.NonFatal
+import scala.collection.immutable
import java.lang.reflect.InvocationTargetException
import scala.reflect.ClassTag
import scala.util.Try
@@ -25,7 +25,7 @@ abstract class DynamicAccess {
* val obj = DynamicAccess.createInstanceFor(clazz, Seq(classOf[Config] -> config, classOf[String] -> name))
* }}}
*/
- def createInstanceFor[T: ClassTag](clazz: Class[_], args: Seq[(Class[_], AnyRef)]): Try[T]
+ def createInstanceFor[T: ClassTag](clazz: Class[_], args: immutable.Seq[(Class[_], AnyRef)]): Try[T]
/**
* Obtain a `Class[_]` object loaded with the right class loader (i.e. the one
@@ -40,7 +40,7 @@ abstract class DynamicAccess {
* `args` argument. The exact usage of args depends on which type is requested,
* see the relevant requesting code for details.
*/
- def createInstanceFor[T: ClassTag](fqcn: String, args: Seq[(Class[_], AnyRef)]): Try[T]
+ def createInstanceFor[T: ClassTag](fqcn: String, args: immutable.Seq[(Class[_], AnyRef)]): Try[T]
/**
* Obtain the Scala “object” instance for the given fully-qualified class name, if there is one.
@@ -70,7 +70,7 @@ class ReflectiveDynamicAccess(val classLoader: ClassLoader) extends DynamicAcces
if (t.isAssignableFrom(c)) c else throw new ClassCastException(t + " is not assignable from " + c)
})
- override def createInstanceFor[T: ClassTag](clazz: Class[_], args: Seq[(Class[_], AnyRef)]): Try[T] =
+ override def createInstanceFor[T: ClassTag](clazz: Class[_], args: immutable.Seq[(Class[_], AnyRef)]): Try[T] =
Try {
val types = args.map(_._1).toArray
val values = args.map(_._2).toArray
@@ -81,7 +81,7 @@ class ReflectiveDynamicAccess(val classLoader: ClassLoader) extends DynamicAcces
if (t.isInstance(obj)) obj.asInstanceOf[T] else throw new ClassCastException(clazz.getName + " is not a subtype of " + t)
} recover { case i: InvocationTargetException if i.getTargetException ne null throw i.getTargetException }
- override def createInstanceFor[T: ClassTag](fqcn: String, args: Seq[(Class[_], AnyRef)]): Try[T] =
+ override def createInstanceFor[T: ClassTag](fqcn: String, args: immutable.Seq[(Class[_], AnyRef)]): Try[T] =
getClassFor(fqcn) flatMap { c createInstanceFor(c, args) }
override def getObjectFor[T: ClassTag](fqcn: String): Try[T] = {
View
2  akka-actor/src/main/scala/akka/actor/Extension.scala
@@ -98,5 +98,5 @@ abstract class ExtensionKey[T <: Extension](implicit m: ClassTag[T]) extends Ext
def this(clazz: Class[T]) = this()(ClassTag(clazz))
override def lookup(): ExtensionId[T] = this
- def createExtension(system: ExtendedActorSystem): T = system.dynamicAccess.createInstanceFor[T](m.runtimeClass, Seq(classOf[ExtendedActorSystem] -> system)).get
+ def createExtension(system: ExtendedActorSystem): T = system.dynamicAccess.createInstanceFor[T](m.runtimeClass, List(classOf[ExtendedActorSystem] -> system)).get
}
View
38 akka-actor/src/main/scala/akka/actor/FaultHandling.scala
@@ -5,9 +5,10 @@ package akka.actor
import language.implicitConversions
+import java.lang.{ Iterable JIterable }
import java.util.concurrent.TimeUnit
import scala.collection.mutable.ArrayBuffer
-import java.lang.{ Iterable JIterable }
+import scala.collection.immutable
import scala.concurrent.duration.Duration
/**
* INTERNAL API
@@ -170,7 +171,7 @@ object SupervisorStrategy extends SupervisorStrategyLowPriorityImplicits {
* Implicit conversion from `Seq` of Throwables to a `Decider`.
* This maps the given Throwables to restarts, otherwise escalates.
*/
- implicit def seqThrowable2Decider(trapExit: Seq[Class[_ <: Throwable]]): Decider = makeDecider(trapExit)
+ implicit def seqThrowable2Decider(trapExit: immutable.Seq[Class[_ <: Throwable]]): Decider = makeImmutableDecider(trapExit)
type Decider = PartialFunction[Throwable, Directive]
type JDecider = akka.japi.Function[Throwable, Directive]
@@ -180,23 +181,21 @@ object SupervisorStrategy extends SupervisorStrategyLowPriorityImplicits {
* Decider builder which just checks whether one of
* the given Throwables matches the cause and restarts, otherwise escalates.
*/
- def makeDecider(trapExit: Array[Class[_]]): Decider =
- { case x if (trapExit exists (_ isInstance x)) Restart else Escalate }
-
+ def makeDecider(trapExit: immutable.Seq[Class[_ <: Throwable]]): Decider = makeImmutableDecider(trapExit)
/**
* Decider builder which just checks whether one of
* the given Throwables matches the cause and restarts, otherwise escalates.
*/
- def makeDecider(trapExit: Seq[Class[_ <: Throwable]]): Decider =
- { case x if (trapExit exists (_ isInstance x)) Restart else Escalate }
+ def makeDecider(trapExit: JIterable[Class[_ <: Throwable]]): Decider =
+ makeImmutableDecider(scala.collection.JavaConverters.iterableAsScalaIterableConverter(trapExit).asScala)
- /**
- * Decider builder which just checks whether one of
- * the given Throwables matches the cause and restarts, otherwise escalates.
- */
- def makeDecider(trapExit: JIterable[Class[_ <: Throwable]]): Decider = {
- import scala.collection.JavaConverters.iterableAsScalaIterableConverter
- makeDecider(trapExit.asScala.toSeq)
+ private[this] def makeImmutableDecider(trapExit: Iterable[Class[_]]): Decider = {
+ val traps = trapExit match { // This is the sad, awkward, truth
+ case s: immutable.Seq[_] s.asInstanceOf[immutable.Seq[Class[_]]]
+ case other other.to[immutable.Seq]
+ }
+
+ { case x if (traps exists (_ isInstance x)) Restart else Escalate }
}
/**
@@ -222,14 +221,14 @@ object SupervisorStrategy extends SupervisorStrategyLowPriorityImplicits {
*
* INTERNAL API
*/
- private[akka] def sort(in: Iterable[CauseDirective]): Seq[CauseDirective] =
+ private[akka] def sort(in: Iterable[CauseDirective]): immutable.Seq[CauseDirective] =
(new ArrayBuffer[CauseDirective](in.size) /: in) { (buf, ca)
buf.indexWhere(_._1 isAssignableFrom ca._1) match {
case -1 buf append ca
case x buf insert (x, ca)
}
buf
- }
+ }.to[immutable.Seq]
private[akka] def withinTimeRangeOption(withinTimeRange: Duration): Option[Duration] =
if (withinTimeRange.isFinite && withinTimeRange >= Duration.Zero) Some(withinTimeRange) else None
@@ -338,10 +337,6 @@ case class AllForOneStrategy(maxNrOfRetries: Int = -1, withinTimeRange: Duration
def this(maxNrOfRetries: Int, withinTimeRange: Duration, trapExit: JIterable[Class[_ <: Throwable]]) =
this(maxNrOfRetries, withinTimeRange)(SupervisorStrategy.makeDecider(trapExit))
-
- def this(maxNrOfRetries: Int, withinTimeRange: Duration, trapExit: Array[Class[_]]) =
- this(maxNrOfRetries, withinTimeRange)(SupervisorStrategy.makeDecider(trapExit))
-
/*
* this is a performance optimization to avoid re-allocating the pairs upon
* every call to requestRestartPermission, assuming that strategies are shared
@@ -380,9 +375,6 @@ case class OneForOneStrategy(maxNrOfRetries: Int = -1, withinTimeRange: Duration
def this(maxNrOfRetries: Int, withinTimeRange: Duration, trapExit: JIterable[Class[_ <: Throwable]]) =
this(maxNrOfRetries, withinTimeRange)(SupervisorStrategy.makeDecider(trapExit))
- def this(maxNrOfRetries: Int, withinTimeRange: Duration, trapExit: Array[Class[_]]) =
- this(maxNrOfRetries, withinTimeRange)(SupervisorStrategy.makeDecider(trapExit))
-
/*
* this is a performance optimization to avoid re-allocating the pairs upon
* every call to requestRestartPermission, assuming that strategies are shared
View
19 akka-actor/src/main/scala/akka/actor/IO.scala
@@ -6,6 +6,7 @@ package akka.actor
import language.higherKinds
import language.postfixOps
+import scala.collection.immutable
import scala.concurrent.{ ExecutionContext, Future }
import scala.concurrent.duration.Duration
import scala.util.control.NonFatal
@@ -122,7 +123,7 @@ object IO {
* @return a new SocketHandle that can be used to perform actions on the
* new connection's SocketChannel.
*/
- def accept(options: Seq[SocketOption] = Seq.empty)(implicit socketOwner: ActorRef): SocketHandle = {
+ def accept(options: immutable.Seq[SocketOption] = Nil)(implicit socketOwner: ActorRef): SocketHandle = {
val socket = SocketHandle(socketOwner, ioManager)
ioManager ! Accept(socket, this, options)
socket
@@ -250,7 +251,7 @@ object IO {
*
* Normally sent using IOManager.listen()
*/
- case class Listen(server: ServerHandle, address: SocketAddress, options: Seq[ServerSocketOption] = Seq.empty) extends IOMessage
+ case class Listen(server: ServerHandle, address: SocketAddress, options: immutable.Seq[ServerSocketOption] = Nil) extends IOMessage
/**
* Message from an [[akka.actor.IOManager]] that the ServerSocketChannel is
@@ -272,7 +273,7 @@ object IO {
*
* Normally sent using [[akka.actor.IO.ServerHandle]].accept()
*/
- case class Accept(socket: SocketHandle, server: ServerHandle, options: Seq[SocketOption] = Seq.empty) extends IOMessage
+ case class Accept(socket: SocketHandle, server: ServerHandle, options: immutable.Seq[SocketOption] = Nil) extends IOMessage
/**
* Message to an [[akka.actor.IOManager]] to create a SocketChannel connected
@@ -280,7 +281,7 @@ object IO {
*
* Normally sent using IOManager.connect()
*/
- case class Connect(socket: SocketHandle, address: SocketAddress, options: Seq[SocketOption] = Seq.empty) extends IOMessage
+ case class Connect(socket: SocketHandle, address: SocketAddress, options: immutable.Seq[SocketOption] = Nil) extends IOMessage
/**
* Message from an [[akka.actor.IOManager]] that the SocketChannel has
@@ -832,7 +833,7 @@ final class IOManager private (system: ExtendedActorSystem) extends Extension {
* @param option Seq of [[akka.actor.IO.ServerSocketOptions]] to setup on socket
* @return a [[akka.actor.IO.ServerHandle]] to uniquely identify the created socket
*/
- def listen(address: SocketAddress, options: Seq[IO.ServerSocketOption])(implicit owner: ActorRef): IO.ServerHandle = {
+ def listen(address: SocketAddress, options: immutable.Seq[IO.ServerSocketOption])(implicit owner: ActorRef): IO.ServerHandle = {
val server = IO.ServerHandle(owner, actor)
actor ! IO.Listen(server, address, options)
server
@@ -847,7 +848,7 @@ final class IOManager private (system: ExtendedActorSystem) extends Extension {
* @param owner the ActorRef that will receive messages from the IOManagerActor
* @return a [[akka.actor.IO.ServerHandle]] to uniquely identify the created socket
*/
- def listen(address: SocketAddress)(implicit owner: ActorRef): IO.ServerHandle = listen(address, Seq.empty)
+ def listen(address: SocketAddress)(implicit owner: ActorRef): IO.ServerHandle = listen(address, Nil)
/**
* Create a ServerSocketChannel listening on a host and port. Messages will
@@ -860,7 +861,7 @@ final class IOManager private (system: ExtendedActorSystem) extends Extension {
* @param owner the ActorRef that will receive messages from the IOManagerActor
* @return a [[akka.actor.IO.ServerHandle]] to uniquely identify the created socket
*/
- def listen(host: String, port: Int, options: Seq[IO.ServerSocketOption] = Seq.empty)(implicit owner: ActorRef): IO.ServerHandle =
+ def listen(host: String, port: Int, options: immutable.Seq[IO.ServerSocketOption] = Nil)(implicit owner: ActorRef): IO.ServerHandle =
listen(new InetSocketAddress(host, port), options)(owner)
/**
@@ -873,7 +874,7 @@ final class IOManager private (system: ExtendedActorSystem) extends Extension {
* @param owner the ActorRef that will receive messages from the IOManagerActor
* @return a [[akka.actor.IO.SocketHandle]] to uniquely identify the created socket
*/
- def connect(address: SocketAddress, options: Seq[IO.SocketOption] = Seq.empty)(implicit owner: ActorRef): IO.SocketHandle = {
+ def connect(address: SocketAddress, options: immutable.Seq[IO.SocketOption] = Nil)(implicit owner: ActorRef): IO.SocketHandle = {
val socket = IO.SocketHandle(owner, actor)
actor ! IO.Connect(socket, address, options)
socket
@@ -991,7 +992,7 @@ final class IOManagerActor(val settings: Settings) extends Actor with ActorLoggi
private def forwardFailure(f: Unit): Unit = try f catch { case NonFatal(e) sender ! Status.Failure(e) }
- private def setSocketOptions(socket: java.net.Socket, options: Seq[IO.SocketOption]) {
+ private def setSocketOptions(socket: java.net.Socket, options: immutable.Seq[IO.SocketOption]) {
options foreach {
case IO.KeepAlive(on) forwardFailure(socket.setKeepAlive(on))
case IO.OOBInline(on) forwardFailure(socket.setOOBInline(on))
View
22 akka-actor/src/main/scala/akka/actor/TypedActor.scala
@@ -4,22 +4,24 @@
package akka.actor
import language.existentials
-import akka.japi.{ Creator, Option JOption }
-import java.lang.reflect.{ InvocationTargetException, Method, InvocationHandler, Proxy }
-import akka.util.Timeout
+
import scala.util.control.NonFatal
+import scala.util.{ Try, Success, Failure }
+import scala.collection.immutable
+import scala.concurrent.duration.FiniteDuration
import scala.concurrent.duration.Duration
+import scala.reflect.ClassTag
import scala.concurrent.{ Await, Future }
+import akka.japi.{ Creator, Option JOption }
+import akka.util.Timeout
import akka.util.Reflect.instantiator
+import akka.serialization.{ JavaSerializer, SerializationExtension }
import akka.dispatch._
import java.util.concurrent.atomic.{ AtomicReference AtomVar }
import java.util.concurrent.TimeoutException
import java.util.concurrent.TimeUnit.MILLISECONDS
-import scala.reflect.ClassTag
-import akka.serialization.{ JavaSerializer, SerializationExtension }
import java.io.ObjectStreamException
-import scala.util.{ Try, Success, Failure }
-import scala.concurrent.duration.FiniteDuration
+import java.lang.reflect.{ InvocationTargetException, Method, InvocationHandler, Proxy }
/**
* A TypedActorFactory is something that can created TypedActor instances.
@@ -439,8 +441,8 @@ object TypedProps {
* @return a sequence of interfaces that the specified class implements,
* or a sequence containing only itself, if itself is an interface.
*/
- def extractInterfaces(clazz: Class[_]): Seq[Class[_]] =
- if (clazz.isInterface) Seq[Class[_]](clazz) else clazz.getInterfaces.toList
+ def extractInterfaces(clazz: Class[_]): immutable.Seq[Class[_]] =
+ if (clazz.isInterface) List[Class[_]](clazz) else clazz.getInterfaces.to[List]
/**
* Uses the supplied class as the factory for the TypedActor implementation,
@@ -489,7 +491,7 @@ object TypedProps {
*/
@SerialVersionUID(1L)
case class TypedProps[T <: AnyRef] protected[TypedProps] (
- interfaces: Seq[Class[_]],
+ interfaces: immutable.Seq[Class[_]],
creator: () T,
dispatcher: String = TypedProps.defaultDispatcherId,
deploy: Deploy = Props.defaultDeploy,
View
4 akka-actor/src/main/scala/akka/dispatch/AbstractDispatcher.scala
@@ -420,7 +420,7 @@ abstract class MessageDispatcherConfigurator(val config: Config, val prerequisit
case "unbounded" UnboundedMailbox()
case "bounded" new BoundedMailbox(prerequisites.settings, config)
case fqcn
- val args = Seq(classOf[ActorSystem.Settings] -> prerequisites.settings, classOf[Config] -> config)
+ val args = List(classOf[ActorSystem.Settings] -> prerequisites.settings, classOf[Config] -> config)
prerequisites.dynamicAccess.createInstanceFor[MailboxType](fqcn, args).recover({
case exception
throw new IllegalArgumentException(
@@ -436,7 +436,7 @@ abstract class MessageDispatcherConfigurator(val config: Config, val prerequisit
case null | "" | "fork-join-executor" new ForkJoinExecutorConfigurator(config.getConfig("fork-join-executor"), prerequisites)
case "thread-pool-executor" new ThreadPoolExecutorConfigurator(config.getConfig("thread-pool-executor"), prerequisites)
case fqcn
- val args = Seq(
+ val args = List(
classOf[Config] -> config,
classOf[DispatcherPrerequisites] -> prerequisites)
prerequisites.dynamicAccess.createInstanceFor[ExecutorServiceConfigurator](fqcn, args).recover({
View
2  akka-actor/src/main/scala/akka/dispatch/Dispatchers.scala
@@ -147,7 +147,7 @@ class Dispatchers(val settings: ActorSystem.Settings, val prerequisites: Dispatc
case "BalancingDispatcher" new BalancingDispatcherConfigurator(cfg, prerequisites)
case "PinnedDispatcher" new PinnedDispatcherConfigurator(cfg, prerequisites)
case fqn
- val args = Seq(classOf[Config] -> cfg, classOf[DispatcherPrerequisites] -> prerequisites)
+ val args = List(classOf[Config] -> cfg, classOf[DispatcherPrerequisites] -> prerequisites)
prerequisites.dynamicAccess.createInstanceFor[MessageDispatcherConfigurator](fqn, args).recover({
case exception
throw new IllegalArgumentException(
View
5 akka-actor/src/main/scala/akka/event/EventBus.scala
@@ -10,6 +10,7 @@ import java.util.concurrent.ConcurrentSkipListSet
import java.util.Comparator
import akka.util.{ Subclassification, SubclassifiedIndex }
import scala.collection.immutable.TreeSet
+import scala.collection.immutable
/**
* Represents the base type for EventBuses
@@ -167,12 +168,12 @@ trait SubchannelClassification { this: EventBus ⇒
recv foreach (publish(event, _))
}
- private def removeFromCache(changes: Seq[(Classifier, Set[Subscriber])]): Unit =
+ private def removeFromCache(changes: immutable.Seq[(Classifier, Set[Subscriber])]): Unit =
cache = (cache /: changes) {
case (m, (c, cs)) m.updated(c, m.getOrElse(c, Set.empty[Subscriber]) -- cs)
}
- private def addToCache(changes: Seq[(Classifier, Set[Subscriber])]): Unit =
+ private def addToCache(changes: immutable.Seq[(Classifier, Set[Subscriber])]): Unit =
cache = (cache /: changes) {
case (m, (c, cs)) m.updated(c, m.getOrElse(c, Set.empty[Subscriber]) ++ cs)
}
View
9 akka-actor/src/main/scala/akka/event/Logging.scala
@@ -9,12 +9,13 @@ import akka.actor._
import akka.{ ConfigurationException, AkkaException }
import akka.actor.ActorSystem.Settings
import akka.util.{ Timeout, ReentrantGuard }
-import scala.concurrent.duration._
import java.util.concurrent.atomic.AtomicInteger
-import scala.util.control.NoStackTrace
import java.util.concurrent.TimeoutException
+import scala.annotation.implicitNotFound
+import scala.collection.immutable
+import scala.concurrent.duration._
import scala.concurrent.Await
-import annotation.implicitNotFound
+import scala.util.control.NoStackTrace
/**
* This trait brings log level handling to the EventStream: it reads the log
@@ -448,7 +449,7 @@ object Logging {
}
// these type ascriptions/casts are necessary to avoid CCEs during construction while retaining correct type
- val AllLogLevels: Seq[LogLevel] = Seq(ErrorLevel, WarningLevel, InfoLevel, DebugLevel)
+ val AllLogLevels: immutable.Seq[LogLevel] = Vector(ErrorLevel, WarningLevel, InfoLevel, DebugLevel)
/**
* Obtain LoggingAdapter for the given actor system and source object. This
View
7 akka-actor/src/main/scala/akka/japi/JavaAPI.scala
@@ -5,7 +5,8 @@
package akka.japi
import language.implicitConversions
-import scala.Some
+
+import scala.collection.immutable
import scala.reflect.ClassTag
import scala.util.control.NoStackTrace
import scala.runtime.AbstractPartialFunction
@@ -176,7 +177,7 @@ object Option {
object Util {
def classTag[T](clazz: Class[T]): ClassTag[T] = ClassTag(clazz)
- def arrayToSeq[T](arr: Array[T]): Seq[T] = arr.toSeq
+ def arrayToSeq[T](arr: Array[T]): immutable.Seq[T] = arr.to[immutable.Seq]
- def arrayToSeq(classes: Array[Class[_]]): Seq[Class[_]] = classes.toSeq
+ def arrayToSeq(classes: Array[Class[_]]): immutable.Seq[Class[_]] = classes.to[immutable.Seq]
}
View
6 akka-actor/src/main/scala/akka/routing/ConsistentHash.scala
@@ -4,7 +4,7 @@
package akka.routing
-import scala.collection.immutable.SortedMap
+import scala.collection.immutable
import scala.reflect.ClassTag
import java.util.Arrays
@@ -18,7 +18,7 @@ import java.util.Arrays
* hash, i.e. make sure it is different for different nodes.
*
*/
-class ConsistentHash[T: ClassTag] private (nodes: SortedMap[Int, T], val virtualNodesFactor: Int) {
+class ConsistentHash[T: ClassTag] private (nodes: immutable.SortedMap[Int, T], val virtualNodesFactor: Int) {
import ConsistentHash._
@@ -106,7 +106,7 @@ class ConsistentHash[T: ClassTag] private (nodes: SortedMap[Int, T], val virtual
object ConsistentHash {
def apply[T: ClassTag](nodes: Iterable[T], virtualNodesFactor: Int): ConsistentHash[T] = {
- new ConsistentHash(SortedMap.empty[Int, T] ++
+ new ConsistentHash(immutable.SortedMap.empty[Int, T] ++
(for (node nodes; vnode 1 to virtualNodesFactor) yield (nodeHashFor(node, vnode) -> node)),
virtualNodesFactor)
}
View
21 akka-actor/src/main/scala/akka/serialization/Serialization.scala
@@ -4,14 +4,15 @@
package akka.serialization
-import akka.AkkaException
import com.typesafe.config.Config
+import akka.AkkaException
import akka.actor.{ Extension, ExtendedActorSystem, Address, DynamicAccess }
import akka.event.Logging
import java.util.concurrent.ConcurrentHashMap
import scala.collection.mutable.ArrayBuffer
import java.io.NotSerializableException
-import util.{ Try, DynamicVariable }
+import scala.util.{ Try, DynamicVariable }
+import scala.collection.immutable
object Serialization {
@@ -97,7 +98,7 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
serializerMap.get(clazz) match {
case null
// bindings are ordered from most specific to least specific
- def unique(possibilities: Seq[(Class[_], Serializer)]): Boolean =
+ def unique(possibilities: immutable.Seq[(Class[_], Serializer)]): Boolean =
possibilities.size == 1 ||
(possibilities forall (_._1 isAssignableFrom possibilities(0)._1)) ||
(possibilities forall (_._2 == possibilities(0)._2))
@@ -122,8 +123,8 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
* loading is performed by the system’s [[akka.actor.DynamicAccess]].
*/
def serializerOf(serializerFQN: String): Try[Serializer] =
- system.dynamicAccess.createInstanceFor[Serializer](serializerFQN, Seq(classOf[ExtendedActorSystem] -> system)) recoverWith {
- case _ system.dynamicAccess.createInstanceFor[Serializer](serializerFQN, Seq())
+ system.dynamicAccess.createInstanceFor[Serializer](serializerFQN, List(classOf[ExtendedActorSystem] -> system)) recoverWith {
+ case _ system.dynamicAccess.createInstanceFor[Serializer](serializerFQN, Nil)
}
/**
@@ -137,21 +138,21 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
* bindings is a Seq of tuple representing the mapping from Class to Serializer.
* It is primarily ordered by the most specific classes first, and secondly in the configured order.
*/
- private[akka] val bindings: Seq[ClassSerializer] =
- sort(for ((k: String, v: String) settings.SerializationBindings if v != "none") yield (system.dynamicAccess.getClassFor[Any](k).get, serializers(v)))
+ private[akka] val bindings: immutable.Seq[ClassSerializer] =
+ sort(for ((k: String, v: String) settings.SerializationBindings if v != "none") yield (system.dynamicAccess.getClassFor[Any](k).get, serializers(v))).to[immutable.Seq]
/**
* Sort so that subtypes always precede their supertypes, but without
* obeying any order between unrelated subtypes (insert sort).
*/
- private def sort(in: Iterable[ClassSerializer]): Seq[ClassSerializer] =
- (new ArrayBuffer[ClassSerializer](in.size) /: in) { (buf, ca)
+ private def sort(in: Iterable[ClassSerializer]): immutable.Seq[ClassSerializer] =
+ ((new ArrayBuffer[ClassSerializer](in.size) /: in) { (buf, ca)
buf.indexWhere(_._1 isAssignableFrom ca._1) match {
case -1 buf append ca
case x buf insert (x, ca)
}
buf
- }
+ }).to[immutable.Seq]
/**
* serializerMap is a Map whose keys is the class that is serializable and values is the serializer
View
6 akka-actor/src/main/scala/akka/util/SubclassifiedIndex.scala
@@ -3,6 +3,8 @@
*/
package akka.util
+import scala.collection.immutable
+
/**
* Typeclass which describes a classification hierarchy. Observe the contract between `isEqual` and `isSubclass`!
*/
@@ -74,7 +76,7 @@ private[akka] class SubclassifiedIndex[K, V] private (private var values: Set[V]
import SubclassifiedIndex._
- type Changes = Seq[(K, Set[V])]
+ type Changes = immutable.Seq[(K, Set[V])]
protected var subkeys = Vector.empty[Nonroot[K, V]]
@@ -208,5 +210,5 @@ private[akka] class SubclassifiedIndex[K, V] private (private var values: Set[V]
private def mergeChangesByKey(changes: Changes): Changes =
(emptyMergeMap[K, V] /: changes) {
case (m, (k, s)) m.updated(k, m(k) ++ s)
- }.toSeq
+ }.to[immutable.Seq]
}
View
11 akka-camel/src/test/scala/akka/camel/ConcurrentActivationTest.scala
@@ -1,13 +1,18 @@
+/**
+ * Copyright (C) 2009-2012 Typesafe Inc. <http://www.typesafe.com>
+ */
package akka.camel
+import language.postfixOps
+
import org.scalatest.WordSpec
import org.scalatest.matchers.MustMatchers
+import scala.concurrent.{ Promise, Await, Future }
+import scala.collection.immutable
import akka.camel.TestSupport.NonSharedCamelSystem
import akka.actor.{ ActorRef, Props, Actor }
import akka.routing.BroadcastRouter
-import concurrent.{ Promise, Await, Future }
import scala.concurrent.duration._
-import language.postfixOps
import akka.testkit._
import akka.util.Timeout
import org.apache.camel.model.RouteDefinition
@@ -58,7 +63,7 @@ class ConcurrentActivationTest extends WordSpec with MustMatchers with NonShared
activations.size must be(2 * number * number)
// must be the size of the activated activated producers and consumers
deactivations.size must be(2 * number * number)
- def partitionNames(refs: Seq[ActorRef]) = refs.map(_.path.name).partition(_.startsWith("concurrent-test-echo-consumer"))
+ def partitionNames(refs: immutable.Seq[ActorRef]) = refs.map(_.path.name).partition(_.startsWith("concurrent-test-echo-consumer"))
def assertContainsSameElements(lists: (Seq[_], Seq[_])) {
val (a, b) = lists
a.intersect(b).size must be(a.size)
View
2  akka-cluster/src/main/scala/akka/cluster/Cluster.scala
@@ -75,7 +75,7 @@ class Cluster(val system: ExtendedActorSystem) extends Extension {
val failureDetector: FailureDetector = {
import settings.{ FailureDetectorImplementationClass fqcn }
system.dynamicAccess.createInstanceFor[FailureDetector](
- fqcn, Seq(classOf[ActorSystem] -> system, classOf[ClusterSettings] -> settings)).recover({
+ fqcn, List(classOf[ActorSystem] -> system, classOf[ClusterSettings] -> settings)).recover({
case e throw new ConfigurationException("Could not create custom failure detector [" + fqcn + "] due to:" + e.toString)
}).get
}
View
2  akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
@@ -557,7 +557,7 @@ private[cluster] class MetricsCollector private (private val sigar: Option[AnyRe
*/
private[cluster] object MetricsCollector {
def apply(address: Address, log: LoggingAdapter, dynamicAccess: DynamicAccess): MetricsCollector =
- dynamicAccess.createInstanceFor[AnyRef]("org.hyperic.sigar.Sigar", Seq.empty) match {
+ dynamicAccess.createInstanceFor[AnyRef]("org.hyperic.sigar.Sigar", Nil) match {
case Success(identity) new MetricsCollector(Some(identity), address)
case Failure(e)
log.debug(e.toString)
View
5 akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala
@@ -8,6 +8,7 @@ import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
import akka.actor.Address
+import scala.collection.immutable
case class ClientDowningNodeThatIsUnreachableMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
@@ -51,7 +52,7 @@ abstract class ClientDowningNodeThatIsUnreachableSpec(multiNodeConfig: ClientDow
cluster.down(thirdAddress)
enterBarrier("down-third-node")
- awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = Seq(thirdAddress))
+ awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = List(thirdAddress))
clusterView.members.exists(_.address == thirdAddress) must be(false)
}
@@ -62,7 +63,7 @@ abstract class ClientDowningNodeThatIsUnreachableSpec(multiNodeConfig: ClientDow
runOn(second, fourth) {
enterBarrier("down-third-node")
- awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = Seq(thirdAddress))
+ awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = List(thirdAddress))
}
enterBarrier("await-completion")
View
5 akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala
@@ -8,6 +8,7 @@ import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
import akka.actor.Address
+import scala.collection.immutable
case class ClientDowningNodeThatIsUpMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
@@ -49,7 +50,7 @@ abstract class ClientDowningNodeThatIsUpSpec(multiNodeConfig: ClientDowningNodeT
markNodeAsUnavailable(thirdAddress)
- awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = Seq(thirdAddress))
+ awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = List(thirdAddress))
clusterView.members.exists(_.address == thirdAddress) must be(false)
}
@@ -60,7 +61,7 @@ abstract class ClientDowningNodeThatIsUpSpec(multiNodeConfig: ClientDowningNodeT
runOn(second, fourth) {
enterBarrier("down-third-node")
- awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = Seq(thirdAddress))
+ awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = List(thirdAddress))
}
enterBarrier("await-completion")
View
9 akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala
@@ -11,6 +11,7 @@ import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
import akka.actor._
import scala.concurrent.duration._
+import scala.collection.immutable
case class LeaderDowningNodeThatIsUnreachableMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
@@ -59,7 +60,7 @@ abstract class LeaderDowningNodeThatIsUnreachableSpec(multiNodeConfig: LeaderDow
// --- HERE THE LEADER SHOULD DETECT FAILURE AND AUTO-DOWN THE UNREACHABLE NODE ---
- awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = Seq(fourthAddress), 30.seconds)
+ awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = List(fourthAddress), 30.seconds)
}
runOn(fourth) {
@@ -69,7 +70,7 @@ abstract class LeaderDowningNodeThatIsUnreachableSpec(multiNodeConfig: LeaderDow
runOn(second, third) {
enterBarrier("down-fourth-node")
- awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = Seq(fourthAddress), 30.seconds)
+ awaitUpConvergence(numberOfMembers = 3, canNotBePartOfMemberRing = List(fourthAddress), 30.seconds)
}
enterBarrier("await-completion-1")
@@ -89,7 +90,7 @@ abstract class LeaderDowningNodeThatIsUnreachableSpec(multiNodeConfig: LeaderDow
// --- HERE THE LEADER SHOULD DETECT FAILURE AND AUTO-DOWN THE UNREACHABLE NODE ---
- awaitUpConvergence(numberOfMembers = 2, canNotBePartOfMemberRing = Seq(secondAddress), 30.seconds)
+ awaitUpConvergence(numberOfMembers = 2, canNotBePartOfMemberRing = List(secondAddress), 30.seconds)
}
runOn(second) {
@@ -99,7 +100,7 @@ abstract class LeaderDowningNodeThatIsUnreachableSpec(multiNodeConfig: LeaderDow
runOn(third) {
enterBarrier("down-second-node")
- awaitUpConvergence(numberOfMembers = 2, canNotBePartOfMemberRing = Seq(secondAddress), 30 seconds)
+ awaitUpConvergence(numberOfMembers = 2, canNotBePartOfMemberRing = List(secondAddress), 30 seconds)
}
enterBarrier("await-completion-2")
View
3  akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala
@@ -10,6 +10,7 @@ import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
import scala.concurrent.duration._
+import scala.collection.immutable
case class LeaderElectionMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val controller = role("controller")
@@ -42,7 +43,7 @@ abstract class LeaderElectionSpec(multiNodeConfig: LeaderElectionMultiNodeConfig
import multiNodeConfig._
// sorted in the order used by the cluster
- lazy val sortedRoles = Seq(first, second, third, fourth).sorted
+ lazy val sortedRoles = List(first, second, third, fourth).sorted
"A cluster of four nodes" must {
View
33 akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala
@@ -4,21 +4,21 @@
package akka.cluster
import language.implicitConversions
+
+import org.scalatest.Suite
+import org.scalatest.exceptions.TestFailedException
+
import com.typesafe.config.Config
import com.typesafe.config.ConfigFactory
-import akka.actor.{ Address, ExtendedActorSystem }
import akka.remote.testconductor.RoleName
import akka.remote.testkit.{ STMultiNodeSpec, MultiNodeSpec }
import akka.testkit._
import akka.testkit.TestEvent._
+import akka.actor.{ ActorSystem, Address }
+import akka.event.Logging.ErrorLevel
import scala.concurrent.duration._
-import org.scalatest.Suite
-import org.scalatest.exceptions.TestFailedException
+import scala.collection.immutable
import java.util.concurrent.ConcurrentHashMap
-import akka.actor.ActorPath
-import akka.actor.RootActorPath
-import akka.event.Logging.ErrorLevel
-import akka.actor.ActorSystem
object MultiNodeClusterSpec {
@@ -158,7 +158,7 @@ trait MultiNodeClusterSpec extends Suite with STMultiNodeSpec { self: MultiNodeS
* nodes (roles). First node will be started first
* and others will join the first.
*/
- def startCluster(roles: RoleName*): Unit = awaitStartCluster(false, roles.toSeq)
+ def startCluster(roles: RoleName*): Unit = awaitStartCluster(false, roles.to[immutable.Seq])
/**
* Initialize the cluster of the specified member
@@ -166,11 +166,9 @@ trait MultiNodeClusterSpec extends Suite with STMultiNodeSpec { self: MultiNodeS
* First node will be started first and others will join
* the first.
*/
- def awaitClusterUp(roles: RoleName*): Unit = {
- awaitStartCluster(true, roles.toSeq)
- }
+ def awaitClusterUp(roles: RoleName*): Unit = awaitStartCluster(true, roles.to[immutable.Seq])
- private def awaitStartCluster(upConvergence: Boolean = true, roles: Seq[RoleName]): Unit = {
+ private def awaitStartCluster(upConvergence: Boolean = true, roles: immutable.Seq[RoleName]): Unit = {
runOn(roles.head) {
// make sure that the node-to-join is started before other join
startClusterNode()
@@ -196,16 +194,15 @@ trait MultiNodeClusterSpec extends Suite with STMultiNodeSpec { self: MultiNodeS
expectedAddresses.sorted.zipWithIndex.foreach { case (a, i) members(i).address must be(a) }
}
- def assertLeader(nodesInCluster: RoleName*): Unit = if (nodesInCluster.contains(myself)) {
- assertLeaderIn(nodesInCluster)
- }
+ def assertLeader(nodesInCluster: RoleName*): Unit =
+ if (nodesInCluster.contains(myself)) assertLeaderIn(nodesInCluster.to[immutable.Seq])
/**
* Assert that the cluster has elected the correct leader
* out of all nodes in the cluster. First
* member in the cluster ring is expected leader.
*/
- def assertLeaderIn(nodesInCluster: Seq[RoleName]): Unit = if (nodesInCluster.contains(myself)) {
+ def assertLeaderIn(nodesInCluster: immutable.Seq[RoleName]): Unit = if (nodesInCluster.contains(myself)) {
nodesInCluster.length must not be (0)
val expectedLeader = roleOfLeader(nodesInCluster)
val leader = clusterView.leader
@@ -221,7 +218,7 @@ trait MultiNodeClusterSpec extends Suite with STMultiNodeSpec { self: MultiNodeS
*/
def awaitUpConvergence(
numberOfMembers: Int,
- canNotBePartOfMemberRing: Seq[Address] = Seq.empty[Address],
+ canNotBePartOfMemberRing: immutable.Seq[Address] = Nil,
timeout: FiniteDuration = 20.seconds): Unit = {
within(timeout) {
awaitCond(clusterView.members.size == numberOfMembers)
@@ -239,7 +236,7 @@ trait MultiNodeClusterSpec extends Suite with STMultiNodeSpec { self: MultiNodeS
def awaitSeenSameState(addresses: Address*): Unit =
awaitCond((addresses.toSet -- clusterView.seenBy).isEmpty)
- def roleOfLeader(nodesInCluster: Seq[RoleName] = roles): RoleName = {
+ def roleOfLeader(nodesInCluster: immutable.Seq[RoleName] = roles): RoleName = {
nodesInCluster.length must not be (0)
nodesInCluster.sorted.head
}
View
3  akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala
@@ -8,6 +8,7 @@ import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
import scala.concurrent.duration._
+import scala.collection.immutable
case class SingletonClusterMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
@@ -65,7 +66,7 @@ abstract class SingletonClusterSpec(multiNodeConfig: SingletonClusterMultiNodeCo
markNodeAsUnavailable(secondAddress)
- awaitUpConvergence(numberOfMembers = 1, canNotBePartOfMemberRing = Seq(secondAddress), 30.seconds)
+ awaitUpConvergence(numberOfMembers = 1, canNotBePartOfMemberRing = List(secondAddress), 30.seconds)
clusterView.isSingletonCluster must be(true)
awaitCond(clusterView.isLeader)
}
View
7 akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala
@@ -9,9 +9,10 @@ import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
-import scala.concurrent.duration._
import akka.actor.Address
import akka.remote.testconductor.Direction
+import scala.concurrent.duration._
+import scala.collection.immutable
case class SplitBrainMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
@@ -53,8 +54,8 @@ abstract class SplitBrainSpec(multiNodeConfig: SplitBrainMultiNodeConfig)
muteMarkingAsUnreachable()
- val side1 = IndexedSeq(first, second)
- val side2 = IndexedSeq(third, fourth, fifth)
+ val side1 = Vector(first, second)
+ val side2 = Vector(third, fourth, fifth)
"A cluster of 5 members" must {
View
7 akka-cluster/src/multi-jvm/scala/akka/cluster/UnreachableNodeRejoinsClusterSpec.scala
@@ -6,13 +6,14 @@ package akka.cluster
import language.postfixOps
import org.scalatest.BeforeAndAfter
+import com.typesafe.config.ConfigFactory
import akka.remote.testkit.MultiNodeConfig
import akka.remote.testkit.MultiNodeSpec
import akka.testkit._
-import com.typesafe.config.ConfigFactory
import akka.actor.Address
import akka.remote.testconductor.{ RoleName, Direction }
import scala.concurrent.duration._
+import scala.collection.immutable
case class UnreachableNodeRejoinsClusterMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
@@ -45,7 +46,7 @@ abstract class UnreachableNodeRejoinsClusterSpec(multiNodeConfig: UnreachableNod
muteMarkingAsUnreachable()
- def allBut(role: RoleName, roles: Seq[RoleName] = roles): Seq[RoleName] = {
+ def allBut(role: RoleName, roles: immutable.Seq[RoleName] = roles): immutable.Seq[RoleName] = {
roles.filterNot(_ == role)
}
@@ -125,7 +126,7 @@ abstract class UnreachableNodeRejoinsClusterSpec(multiNodeConfig: UnreachableNod
}
runOn(allBut(victim): _*) {
- awaitUpConvergence(roles.size - 1, Seq(victim))
+ awaitUpConvergence(roles.size - 1, List(victim))
}
endBarrier
View
6 akka-cluster/src/test/scala/akka/cluster/AccrualFailureDetectorSpec.scala
@@ -7,7 +7,7 @@ package akka.cluster
import akka.actor.Address
import akka.testkit._
import akka.testkit.TestEvent._
-import scala.collection.immutable.TreeMap
+import scala.collection.immutable
import scala.concurrent.duration._
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
@@ -27,7 +27,7 @@ class AccrualFailureDetectorSpec extends AkkaSpec("""
val conn = Address("akka", "", "localhost", 2552)
val conn2 = Address("akka", "", "localhost", 2553)
- def fakeTimeGenerator(timeIntervals: Seq[Long]): () Long = {
+ def fakeTimeGenerator(timeIntervals: immutable.Seq[Long]): () Long = {
var times = timeIntervals.tail.foldLeft(List[Long](timeIntervals.head))((acc, c) acc ::: List[Long](acc.last + c))
def timeGenerator(): Long = {
val currentTime = times.head
@@ -73,7 +73,7 @@ class AccrualFailureDetectorSpec extends AkkaSpec("""
"return realistic phi values" in {
val fd = createFailureDetector()
- val test = TreeMap(0 -> 0.0, 500 -> 0.1, 1000 -> 0.3, 1200 -> 1.6, 1400 -> 4.7, 1600 -> 10.8, 1700 -> 15.3)
+ val test = immutable.TreeMap(0 -> 0.0, 500 -> 0.1, 1000 -> 0.3, 1200 -> 1.6, 1400 -> 4.7, 1600 -> 10.8, 1700 -> 15.3)
for ((timeDiff, expectedPhi) test) {
fd.phi(timeDiff = timeDiff, mean = 1000.0, stdDeviation = 100.0) must be(expectedPhi plusOrMinus (0.1))
}
View
13 akka-cluster/src/test/scala/akka/cluster/MetricsCollectorSpec.scala
@@ -5,14 +5,16 @@
package akka.cluster
import scala.language.postfixOps
+
+import scala.collection.immutable
import scala.concurrent.duration._
import scala.concurrent.Await
+import scala.util.{ Success, Try, Failure }
import akka.actor._
import akka.testkit._
import org.scalatest.WordSpec
import org.scalatest.matchers.MustMatchers
-import util.{ Success, Try, Failure }
object MetricsEnabledSpec {
val config = """
@@ -207,11 +209,10 @@ trait MetricSpec extends WordSpec with MustMatchers {
if (decay > 0) metrics.collect { case m if m.trendable && (!m.initializable) m }.foreach(_.average.isDefined must be(true))
}
- def collectNodeMetrics(nodes: Set[NodeMetrics]): Seq[Metric] = {
- var r: Seq[Metric] = Seq.empty
- nodes.foreach(n r ++= n.metrics.filter(_.isDefined))
- r
- }
+ def collectNodeMetrics(nodes: Set[NodeMetrics]): immutable.Seq[Metric] =
+ nodes.foldLeft(Vector[Metric]()) {
+ case (r, n) r ++ n.metrics.filter(_.isDefined)
+ }
}
trait AbstractClusterMetricsSpec extends DefaultTimeout {
View
4 akka-docs/rst/java/code/docs/actor/FaultHandlingTestBase.java
@@ -30,7 +30,7 @@
import akka.japi.Function;
import scala.Option;
import scala.collection.JavaConverters;
-import scala.collection.Seq;
+import scala.collection.immutable.Seq;
import org.junit.Test;
import org.junit.BeforeClass;
@@ -220,7 +220,7 @@ public void mustEmploySupervisorStrategy() throws Exception {
//#testkit
public <A> Seq<A> seq(A... args) {
return JavaConverters.collectionAsScalaIterableConverter(
- java.util.Arrays.asList(args)).asScala().toSeq();
+ java.util.Arrays.asList(args)).asScala().toList();
}
//#testkit
}
View
3  akka-docs/rst/java/code/docs/jrouting/CustomRouterDocTestBase.java
@@ -11,6 +11,7 @@
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.junit.After;
@@ -69,7 +70,7 @@ public void demonstrateSupervisor() {
//#supervision
final SupervisorStrategy strategy =
new OneForOneStrategy(5, Duration.create("1 minute"),
- new Class<?>[] { Exception.class });
+ Collections.<Class<? extends Throwable>>singletonList(Exception.class));
final ActorRef router = system.actorOf(new Props(MyActor.class)
.withRouter(new RoundRobinRouter(5).withSupervisorStrategy(strategy)));
//#supervision
View
11 akka-docs/rst/scala/code/docs/actor/FSMDocSpec.scala
@@ -8,6 +8,7 @@ import language.postfixOps
import akka.testkit.{ AkkaSpec MyFavoriteTestFrameWorkPlusAkkaTestKit }
//#test-code
import akka.actor.Props
+import scala.collection.immutable
class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
@@ -24,7 +25,7 @@ class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
case object Flush
// sent events
- case class Batch(obj: Seq[Any])
+ case class Batch(obj: immutable.Seq[Any])
//#simple-events
//#simple-state
// states
@@ -34,7 +35,7 @@ class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
sealed trait Data
case object Uninitialized extends Data
- case class Todo(target: ActorRef, queue: Seq[Any]) extends Data
+ case class Todo(target: ActorRef, queue: immutable.Seq[Any]) extends Data
//#simple-state
//#simple-fsm
class Buncher extends Actor with FSM[State, Data] {
@@ -193,12 +194,12 @@ class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
buncher ! SetTarget(testActor)
buncher ! Queue(42)
buncher ! Queue(43)
- expectMsg(Batch(Seq(42, 43)))
+ expectMsg(Batch(immutable.Seq(42, 43)))
buncher ! Queue(44)
buncher ! Flush
buncher ! Queue(45)
- expectMsg(Batch(Seq(44)))
- expectMsg(Batch(Seq(45)))
+ expectMsg(Batch(immutable.Seq(44)))
+ expectMsg(Batch(immutable.Seq(45)))
}
"batch not if uninitialized" in {
View
7 akka-docs/rst/scala/code/docs/testkit/TestKitUsageSpec.scala
@@ -22,6 +22,7 @@ import akka.testkit.DefaultTimeout
import akka.testkit.ImplicitSender
import akka.testkit.TestKit
import scala.concurrent.duration._
+import scala.collection.immutable
/**
* a Test to show some TestKit examples
@@ -38,8 +39,8 @@ class TestKitUsageSpec
val filterRef = system.actorOf(Props(new FilteringActor(testActor)))
val randomHead = Random.nextInt(6)
val randomTail = Random.nextInt(10)
- val headList = Seq().padTo(randomHead, "0")
- val tailList = Seq().padTo(randomTail, "1")
+ val headList = immutable.Seq().padTo(randomHead, "0")
+ val tailList = immutable.Seq().padTo(randomTail, "1")
val seqRef =
system.actorOf(Props(new SequencingActor(testActor, headList, tailList)))
@@ -145,7 +146,7 @@ object TestKitUsageSpec {
* like to test that the interesting value is received and that you cant
* be bothered with the rest
*/
- class SequencingActor(next: ActorRef, head: Seq[String], tail: Seq[String])
+ class SequencingActor(next: ActorRef, head: immutable.Seq[String], tail: immutable.Seq[String])
extends Actor {
def receive = {
case msg {
View
12 akka-docs/rst/scala/code/docs/zeromq/ZeromqDocSpec.scala
@@ -5,13 +5,13 @@ package docs.zeromq
import language.postfixOps
-import akka.actor.{ Actor, Props }
import scala.concurrent.duration._
+import scala.collection.immutable
+import akka.actor.{ Actor, Props }
import akka.testkit._
-import akka.zeromq.{ ZeroMQVersion, ZeroMQExtension }
+import akka.zeromq.{ ZeroMQVersion, ZeroMQExtension, SocketType, Bind }
import java.text.SimpleDateFormat
import java.util.Date
-import akka.zeromq.{ SocketType, Bind }
object ZeromqDocSpec {
@@ -52,12 +52,12 @@ object ZeromqDocSpec {
val heapPayload = ser.serialize(Heap(timestamp, currentHeap.getUsed,
currentHeap.getMax)).get
// the first frame is the topic, second is the message
- pubSocket ! ZMQMessage(Seq(Frame("health.heap"), Frame(heapPayload)))
+ pubSocket ! ZMQMessage(immutable.Seq(Frame("health.heap"), Frame(heapPayload)))
// use akka SerializationExtension to convert to bytes
val loadPayload = ser.serialize(Load(timestamp, os.getSystemLoadAverage)).get
// the first frame is the topic, second is the message
- pubSocket ! ZMQMessage(Seq(Frame("health.load"), Frame(loadPayload)))
+ pubSocket ! ZMQMessage(immutable.Seq(Frame("health.load"), Frame(loadPayload)))
}
}
//#health
@@ -146,7 +146,7 @@ class ZeromqDocSpec extends AkkaSpec("akka.loglevel=INFO") {
val payload = Array.empty[Byte]
//#pub-topic
- pubSocket ! ZMQMessage(Seq(Frame("foo.bar"), Frame(payload)))
+ pubSocket ! ZMQMessage(Frame("foo.bar"), Frame(payload))
//#pub-topic
system.stop(subSocket)
View
7 akka-kernel/src/main/scala/akka/kernel/Main.scala
@@ -9,6 +9,7 @@ import java.io.File
import java.lang.Boolean.getBoolean
import java.net.URLClassLoader
import java.util.jar.JarFile
+import scala.collection.immutable
import scala.collection.JavaConverters._
/**
@@ -77,8 +78,8 @@ object Main {
Thread.currentThread.setContextClassLoader(classLoader)
- val bootClasses: Seq[String] = args.toSeq
- val bootables: Seq[Bootable] = bootClasses map { c classLoader.loadClass(c).newInstance.asInstanceOf[Bootable] }
+ val bootClasses: immutable.Seq[String] = args.to[immutable.Seq]
+ val bootables: immutable.Seq[Bootable] = bootClasses map { c classLoader.loadClass(c).newInstance.asInstanceOf[Bootable] }
for (bootable bootables) {
log("Starting up " + bootable.getClass.getName)
@@ -122,7 +123,7 @@ object Main {
new URLClassLoader(urls, Thread.currentThread.getContextClassLoader)
}
- private def addShutdownHook(bootables: Seq[Bootable]): Unit = {
+ private def addShutdownHook(bootables: immutable.Seq[Bootable]): Unit = {
Runtime.getRuntime.addShutdownHook(new Thread(new Runnable {
def run = {
log("")
View
6 akka-osgi-aries/src/test/scala/akka/osgi/aries/blueprint/NamespaceHandlerTest.scala
@@ -32,7 +32,7 @@ class SimpleNamespaceHandlerTest extends WordSpec with MustMatchers with PojoSRT
import NamespaceHandlerTest._
- val testBundles: Seq[BundleDescriptor] = buildTestBundles(Seq(
+ val testBundles = buildTestBundles(List(
AKKA_OSGI_BLUEPRINT,
bundle(TEST_BUNDLE_NAME).withBlueprintFile(getClass.getResource("simple.xml"))))
@@ -62,7 +62,7 @@ class ConfigNamespaceHandlerTest extends WordSpec with MustMatchers with PojoSRT
import NamespaceHandlerTest._
- val testBundles: Seq[BundleDescriptor] = buildTestBundles(Seq(
+ val testBundles = buildTestBundles(List(
AKKA_OSGI_BLUEPRINT,
bundle(TEST_BUNDLE_NAME).withBlueprintFile(getClass.getResource("config.xml"))))
@@ -94,7 +94,7 @@ class DependencyInjectionNamespaceHandlerTest extends WordSpec with MustMatchers
import NamespaceHandlerTest._
- val testBundles: Seq[BundleDescriptor] = buildTestBundles(Seq(
+ val testBundles = buildTestBundles(List(
AKKA_OSGI_BLUEPRINT,
bundle(TEST_BUNDLE_NAME).withBlueprintFile(getClass.getResource("injection.xml"))))
View
6 akka-osgi/src/test/scala/akka/osgi/ActorSystemActivatorTest.scala
@@ -10,6 +10,7 @@ import akka.actor.ActorSystem
import akka.pattern.ask
import scala.concurrent.Await
import scala.concurrent.duration._
+import scala.collection.immutable
import akka.util.Timeout
import de.kalpatec.pojosr.framework.launch.BundleDescriptor
import test.{ RuntimeNameActorSystemActivator, TestActivators, PingPongActorSystemActivator }
@@ -32,7 +33,7 @@ class PingPongActorSystemActivatorTest extends WordSpec with MustMatchers with P
import ActorSystemActivatorTest._
- val testBundles: Seq[BundleDescriptor] = buildTestBundles(Seq(
+ val testBundles: immutable.Seq[BundleDescriptor] = buildTestBundles(List(
bundle(TEST_BUNDLE_NAME).withActivator(classOf[PingPongActorSystemActivator])))
"PingPongActorSystemActivator" must {
@@ -65,7 +66,8 @@ class RuntimeNameActorSystemActivatorTest extends WordSpec with MustMatchers wit
import ActorSystemActivatorTest._
- val testBundles: Seq[BundleDescriptor] = buildTestBundles(Seq(bundle(TEST_BUNDLE_NAME).withActivator(classOf[RuntimeNameActorSystemActivator])))
+ val testBundles: immutable.Seq[BundleDescriptor] =
+ buildTestBundles(List(bundle(TEST_BUNDLE_NAME).withActivator(classOf[RuntimeNameActorSystemActivator])))
"RuntimeNameActorSystemActivator" must {
View
16 akka-osgi/src/test/scala/akka/osgi/PojoSRTestSupport.scala
@@ -17,7 +17,7 @@ import java.io._
import org.scalatest.{ BeforeAndAfterAll, Suite }
import java.util.{ UUID, Date, ServiceLoader, HashMap }
import scala.reflect.ClassTag
-import scala.Some
+import scala.collection.immutable
/**