Skip to content

Commit 3be0535

Browse files
1 parent 871184f commit 3be0535

File tree

35 files changed

+129
-113
lines changed

35 files changed

+129
-113
lines changed

akka-actor-tests/src/test/scala/akka/actor/SupervisorHierarchySpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,11 @@ object SupervisorHierarchySpec {
160160
val sizes = s / kids
161161
var rest = s % kids
162162
val propsTemplate = Props.empty.withDispatcher("hierarchy")
163-
(1 to kids).map { (id)
163+
(1 to kids).iterator.map { (id)
164164
val kidSize = if (rest > 0) { rest -= 1; sizes + 1 } else sizes
165165
val props = Props(new Hierarchy(kidSize, breadth, listener, myLevel + 1, random)).withDeploy(propsTemplate.deploy)
166166
(context.watch(context.actorOf(props, id.toString)).path, kidSize)
167-
}(collection.breakOut)
167+
}.toMap
168168
} else Map()
169169
stateCache.put(self.path, HierarchyState(log, kidInfo, null))
170170
}

akka-actor/src/main/scala/akka/actor/ActorSelection.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import akka.util.{ Helpers, JavaDurationConverters, Timeout }
2222
import akka.dispatch.ExecutionContexts
2323

2424
import scala.compat.java8.FutureConverters
25+
import scala.collection.compat._
2526

2627
/**
2728
* An ActorSelection is a logical view of a section of an ActorSystem's tree of Actors,
@@ -189,12 +190,12 @@ object ActorSelection {
189190
* intention is to send messages frequently.
190191
*/
191192
def apply(anchorRef: ActorRef, elements: Iterable[String]): ActorSelection = {
192-
val compiled: immutable.IndexedSeq[SelectionPathElement] = elements.collect({
193+
val compiled: immutable.IndexedSeq[SelectionPathElement] = elements.iterator.collect({
193194
case x if !x.isEmpty
194195
if ((x.indexOf('?') != -1) || (x.indexOf('*') != -1)) SelectChildPattern(x)
195196
else if (x == "..") SelectParent
196197
else SelectChildName(x)
197-
})(scala.collection.breakOut)
198+
}).to(scala.collection.immutable.IndexedSeq)
198199
new ActorSelection with ScalaActorSelection {
199200
override val anchor = anchorRef
200201
override val path = compiled

akka-actor/src/main/scala/akka/io/Dns.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import akka.actor._
1010
import akka.routing.ConsistentHashingRouter.ConsistentHashable
1111
import com.typesafe.config.Config
1212

13-
import scala.collection.{ breakOut, immutable }
13+
import scala.collection.immutable
14+
import scala.collection.compat._
1415

1516
abstract class Dns {
1617
def cached(name: String): Option[Dns.Resolved] = None
@@ -41,12 +42,12 @@ object Dns extends ExtensionId[DnsExt] with ExtensionIdProvider {
4142

4243
object Resolved {
4344
def apply(name: String, addresses: Iterable[InetAddress]): Resolved = {
44-
val ipv4: immutable.Seq[Inet4Address] = addresses.collect({
45+
val ipv4: immutable.Seq[Inet4Address] = addresses.iterator.collect({
4546
case a: Inet4Address a
46-
})(breakOut)
47-
val ipv6: immutable.Seq[Inet6Address] = addresses.collect({
47+
}).to(scala.collection.immutable.IndexedSeq)
48+
val ipv6: immutable.Seq[Inet6Address] = addresses.iterator.collect({
4849
case a: Inet6Address a
49-
})(breakOut)
50+
}).to(scala.collection.immutable.IndexedSeq)
5051
Resolved(name, ipv4, ipv6)
5152
}
5253
}

akka-actor/src/main/scala/akka/io/dns/DnsSettings.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ import akka.util.JavaDurationConverters._
1414
import com.typesafe.config.Config
1515

1616
import scala.collection.JavaConverters._
17-
import scala.collection.{ breakOut, immutable }
17+
import scala.collection.immutable
1818
import scala.concurrent.duration.FiniteDuration
1919
import scala.util.Try
20+
import scala.collection.compat._
2021

2122
/** INTERNAL API */
2223
@InternalApi
@@ -31,7 +32,7 @@ private[dns] final class DnsSettings(system: ExtendedActorSystem, c: Config) {
3132
case address parseNameserverAddress(address) :: Nil
3233
}
3334
if (addrs.nonEmpty) addrs
34-
else c.getStringList("nameservers").asScala.map(parseNameserverAddress)(breakOut)
35+
else c.getStringList("nameservers").asScala.iterator.map(parseNameserverAddress).to(scala.collection.immutable.List)
3536
}
3637

3738
val ResolveTimeout: FiniteDuration = c.getDuration("resolve-timeout").asScala

akka-actor/src/main/scala/akka/io/dns/internal/AsyncDnsResolver.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import akka.pattern.{ ask, pipe }
1515
import akka.util.{ Helpers, Timeout }
1616

1717
import scala.collection.immutable.Seq
18-
import scala.collection.{ breakOut, immutable }
18+
import scala.collection.immutable
1919
import scala.concurrent.Future
2020
import scala.util.control.NonFatal
2121

akka-actor/src/main/scala/akka/routing/RoutedActorCell.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import akka.dispatch.MessageDispatcher
2020

2121
import scala.collection.immutable
2222
import scala.concurrent.duration._
23+
import scala.collection.compat._
2324

2425
/**
2526
* INTERNAL API
@@ -109,7 +110,7 @@ private[akka] class RoutedActorCell(
109110
case group: Group
110111
val paths = group.paths(system)
111112
if (paths.nonEmpty)
112-
addRoutees(paths.map(p group.routeeFor(p, this))(collection.breakOut))
113+
addRoutees(paths.iterator.map(p group.routeeFor(p, this)).to(scala.collection.immutable.IndexedSeq))
113114
case _
114115
}
115116
preSuperStart()

akka-actor/src/main/scala/akka/serialization/Serialization.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
401401
private val serializers: Map[String, Serializer] = {
402402
val fromConfig = for ((k: String, v: String) settings.Serializers) yield k serializerOf(v).get
403403
val result = fromConfig ++ serializerDetails.map(d d.alias d.serializer)
404-
ensureOnlyAllowedSerializers(result.map { case (_, ser) ser }(collection.breakOut))
404+
ensureOnlyAllowedSerializers(result.iterator.map { case (_, ser) ser })
405405
result
406406
}
407407

@@ -420,7 +420,7 @@ class Serialization(val system: ExtendedActorSystem) extends Extension {
420420
}
421421

422422
val result = sort(fromConfig ++ fromSettings)
423-
ensureOnlyAllowedSerializers(result.map { case (_, ser) ser }(collection.breakOut))
423+
ensureOnlyAllowedSerializers(result.iterator.map { case (_, ser) ser })
424424
result
425425
}
426426

akka-actor/src/main/scala/akka/util/ByteIterator.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import scala.annotation.tailrec
1010
import scala.collection.LinearSeq
1111
import scala.collection.mutable.ListBuffer
1212
import scala.reflect.ClassTag
13+
import scala.collection.compat._
1314

1415
object ByteIterator {
1516
object ByteArrayIterator {
@@ -229,7 +230,7 @@ object ByteIterator {
229230
}
230231

231232
final override def clone: MultiByteArrayIterator = {
232-
val clonedIterators: List[ByteArrayIterator] = iterators.map(_.clone)(collection.breakOut)
233+
val clonedIterators: List[ByteArrayIterator] = iterators.iterator.map(_.clone).to(scala.collection.immutable.List)
233234
new MultiByteArrayIterator(clonedIterators)
234235
}
235236

akka-actor/src/main/scala/akka/util/ByteString.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import scala.collection.immutable.{ IndexedSeq, VectorBuilder }
1616
import scala.collection.generic.CanBuildFrom
1717
import scala.reflect.ClassTag
1818
import java.nio.charset.{ Charset, StandardCharsets }
19+
import scala.collection.compat._
1920

2021
object ByteString {
2122

@@ -844,7 +845,7 @@ object CompactByteString {
844845
*/
845846
def apply[T](bytes: T*)(implicit num: Integral[T]): CompactByteString = {
846847
if (bytes.isEmpty) empty
847-
else ByteString.ByteString1C(bytes.map(x num.toInt(x).toByte)(collection.breakOut))
848+
else ByteString.ByteString1C(bytes.iterator.map(x num.toInt(x).toByte).to(scala.Array))
848849
}
849850

850851
/**

akka-cluster-metrics/src/main/scala/akka/cluster/metrics/protobuf/MessageSerializer.scala

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import scala.collection.JavaConverters.{ asJavaIterableConverter, asScalaBufferC
2020
import java.io.NotSerializableException
2121

2222
import akka.dispatch.Dispatchers
23+
import scala.collection.compat._
2324

2425
/**
2526
* Protobuf serializer for [[akka.cluster.metrics.ClusterMetricsMessage]] types.
@@ -170,9 +171,8 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS
170171
}
171172

172173
private def metricsGossipEnvelopeToProto(envelope: MetricsGossipEnvelope): cm.MetricsGossipEnvelope = {
173-
import scala.collection.breakOut
174174
val allNodeMetrics = envelope.gossip.nodes
175-
val allAddresses: Vector[Address] = allNodeMetrics.map(_.address)(breakOut)
175+
val allAddresses: Vector[Address] = allNodeMetrics.iterator.map(_.address).to(scala.collection.immutable.Vector)
176176
val addressMapping = allAddresses.zipWithIndex.toMap
177177
val allMetricNames: Vector[String] = allNodeMetrics.foldLeft(Set.empty[String])((s, n) s ++ n.metrics.iterator.map(_.name)).toVector
178178
val metricNamesMapping = allMetricNames.zipWithIndex.toMap
@@ -221,9 +221,8 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS
221221
metricsGossipEnvelopeFromProto(cm.MetricsGossipEnvelope.parseFrom(decompress(bytes)))
222222

223223
private def metricsGossipEnvelopeFromProto(envelope: cm.MetricsGossipEnvelope): MetricsGossipEnvelope = {
224-
import scala.collection.breakOut
225224
val mgossip = envelope.getGossip
226-
val addressMapping: Vector[Address] = mgossip.getAllAddressesList.asScala.map(addressFromProto)(breakOut)
225+
val addressMapping: Vector[Address] = mgossip.getAllAddressesList.asScala.iterator.map(addressFromProto).to(scala.collection.immutable.Vector)
227226
val metricNameMapping: Vector[String] = mgossip.getAllMetricNamesList.asScala.toVector
228227

229228
def ewmaFromProto(ewma: cm.NodeMetrics.EWMA): Option[EWMA] =
@@ -252,9 +251,9 @@ class MessageSerializer(val system: ExtendedActorSystem) extends SerializerWithS
252251

253252
def nodeMetricsFromProto(nodeMetrics: cm.NodeMetrics): NodeMetrics =
254253
NodeMetrics(addressMapping(nodeMetrics.getAddressIndex), nodeMetrics.getTimestamp,
255-
nodeMetrics.getMetricsList.asScala.map(metricFromProto)(breakOut))
254+
nodeMetrics.getMetricsList.asScala.iterator.map(metricFromProto).to(scala.collection.immutable.Set))
256255

257-
val nodeMetrics: Set[NodeMetrics] = mgossip.getNodeMetricsList.asScala.map(nodeMetricsFromProto)(breakOut)
256+
val nodeMetrics: Set[NodeMetrics] = mgossip.getNodeMetricsList.asScala.iterator.map(nodeMetricsFromProto).to(scala.collection.immutable.Set)
258257

259258
MetricsGossipEnvelope(addressFromProto(envelope.getFrom), MetricsGossip(nodeMetrics), envelope.getReply)
260259
}

akka-cluster-sharding/src/main/scala/akka/cluster/sharding/protobuf/ClusterShardingMessageSerializer.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import java.util.zip.GZIPOutputStream
1010

1111
import scala.annotation.tailrec
1212
import scala.collection.JavaConverters._
13-
import scala.collection.breakOut
1413
import akka.actor.ActorRef
1514
import akka.actor.ExtendedActorSystem
1615
import akka.cluster.sharding.Shard
@@ -23,6 +22,7 @@ import akka.protobuf.MessageLite
2322
import java.io.NotSerializableException
2423

2524
import akka.cluster.sharding.ShardRegion.{ StartEntity, StartEntityAck }
25+
import scala.collection.compat._
2626

2727
/**
2828
* INTERNAL API: Protobuf serializer of ClusterSharding messages.
@@ -206,16 +206,16 @@ private[akka] class ClusterShardingMessageSerializer(val system: ExtendedActorSy
206206

207207
private def coordinatorStateFromProto(state: sm.CoordinatorState): State = {
208208
val shards: Map[String, ActorRef] =
209-
state.getShardsList.asScala.toVector.map { entry
209+
state.getShardsList.asScala.toVector.iterator.map { entry
210210
entry.getShardId resolveActorRef(entry.getRegionRef)
211-
}(breakOut)
211+
}.toMap
212212

213213
val regionsZero: Map[ActorRef, Vector[String]] =
214-
state.getRegionsList.asScala.toVector.map(resolveActorRef(_) Vector.empty[String])(breakOut)
214+
state.getRegionsList.asScala.toVector.iterator.map(resolveActorRef(_) Vector.empty[String]).toMap
215215
val regions: Map[ActorRef, Vector[String]] =
216216
shards.foldLeft(regionsZero) { case (acc, (shardId, regionRef)) acc.updated(regionRef, acc(regionRef) :+ shardId) }
217217

218-
val proxies: Set[ActorRef] = state.getRegionProxiesList.asScala.map { resolveActorRef }(breakOut)
218+
val proxies: Set[ActorRef] = state.getRegionProxiesList.asScala.iterator.map { resolveActorRef }.to(scala.collection.immutable.Set)
219219
val unallocatedShards: Set[String] = state.getUnallocatedShardsList.asScala.toSet
220220

221221
State(shards, regions, proxies, unallocatedShards)

akka-cluster-tools/src/main/scala/akka/cluster/client/ClusterClient.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,7 @@ final class ClusterReceptionist(pubSubMediator: ActorRef, settings: ClusterRecep
952952
// is the same from all nodes (most of the time) and it also
953953
// load balances the client connections among the nodes in the cluster.
954954
if (numberOfContacts >= nodes.size) {
955-
val contacts = Contacts(nodes.map(a self.path.toStringWithAddress(a))(collection.breakOut))
955+
val contacts = Contacts(nodes.iterator.map(a self.path.toStringWithAddress(a)).to(scala.collection.immutable.IndexedSeq))
956956
if (log.isDebugEnabled)
957957
log.debug("Client [{}] gets contactPoints [{}] (all nodes)", sender().path, contacts.contactPoints.mkString(","))
958958
sender() ! contacts
@@ -965,7 +965,7 @@ final class ClusterReceptionist(pubSubMediator: ActorRef, settings: ClusterRecep
965965
if (first.size == numberOfContacts) first
966966
else first union nodes.take(numberOfContacts - first.size)
967967
}
968-
val contacts = Contacts(slice.map(a self.path.toStringWithAddress(a))(collection.breakOut))
968+
val contacts = Contacts(slice.iterator.map(a self.path.toStringWithAddress(a)).to(scala.collection.immutable.IndexedSeq))
969969
if (log.isDebugEnabled)
970970
log.debug("Client [{}] gets contactPoints [{}]", sender().path, contacts.contactPoints.mkString(","))
971971
sender() ! contacts

akka-cluster-tools/src/main/scala/akka/cluster/pubsub/protobuf/DistributedPubSubMessageSerializer.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package akka.cluster.pubsub.protobuf
66

77
import akka.serialization._
8-
import scala.collection.breakOut
98
import akka.actor.{ Address, ExtendedActorSystem }
109
import java.io.{ ByteArrayInputStream, ByteArrayOutputStream }
1110
import akka.protobuf.{ ByteString, MessageLite }
@@ -19,6 +18,7 @@ import akka.cluster.pubsub.DistributedPubSubMediator.Internal._
1918
import akka.actor.ActorRef
2019
import scala.collection.immutable.TreeMap
2120
import java.io.NotSerializableException
21+
import scala.collection.compat._
2222

2323
/**
2424
* INTERNAL API: Protobuf serializer of DistributedPubSubMediator messages.
@@ -127,8 +127,8 @@ private[akka] class DistributedPubSubMessageSerializer(val system: ExtendedActor
127127

128128
private def statusFromProto(status: dm.Status): Status = {
129129
val isReplyToStatus = if (status.hasReplyToStatus) status.getReplyToStatus else false
130-
Status(status.getVersionsList.asScala.map(v
131-
addressFromProto(v.getAddress) v.getTimestamp)(breakOut), isReplyToStatus)
130+
Status(status.getVersionsList.asScala.iterator.map(v
131+
addressFromProto(v.getAddress) v.getTimestamp).toMap, isReplyToStatus)
132132
}
133133

134134
private def deltaToProto(delta: Delta): dm.Delta = {
@@ -154,9 +154,9 @@ private[akka] class DistributedPubSubMessageSerializer(val system: ExtendedActor
154154

155155
private def deltaFromProto(delta: dm.Delta): Delta =
156156
Delta(delta.getBucketsList.asScala.toVector.map { b
157-
val content: TreeMap[String, ValueHolder] = b.getContentList.asScala.map { entry
157+
val content: TreeMap[String, ValueHolder] = b.getContentList.asScala.iterator.map { entry
158158
entry.getKey ValueHolder(entry.getVersion, if (entry.hasRef) Some(resolveActorRef(entry.getRef)) else None)
159-
}(breakOut)
159+
}.toImmutableTreeMap
160160
Bucket(addressFromProto(b.getOwner), b.getVersion, content)
161161
})
162162

akka-cluster/src/main/scala/akka/cluster/ClusterEvent.scala

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import akka.dispatch.{ RequiresMessageQueue, UnboundedMessageQueueSemantics }
1616
import akka.actor.DeadLetterSuppression
1717
import akka.annotation.{ DoNotInherit, InternalApi }
1818

19-
import scala.collection.breakOut
2019
import scala.runtime.AbstractFunction5
20+
import scala.collection.compat._
2121

2222
/**
2323
* Domain events published to the event bus.
@@ -162,7 +162,7 @@ object ClusterEvent {
162162
/**
163163
* All data centers in the cluster
164164
*/
165-
def allDataCenters: Set[String] = members.map(_.dataCenter)(breakOut)
165+
def allDataCenters: Set[String] = members.iterator.map(_.dataCenter).to(scala.collection.immutable.Set)
166166

167167
/**
168168
* Java API: All data centers in the cluster
@@ -372,10 +372,10 @@ object ClusterEvent {
372372
else {
373373
val newGossip = newState.latestGossip
374374
val oldUnreachableNodes = oldState.dcReachabilityNoOutsideNodes.allUnreachableOrTerminated
375-
newState.dcReachabilityNoOutsideNodes.allUnreachableOrTerminated.collect {
375+
newState.dcReachabilityNoOutsideNodes.allUnreachableOrTerminated.iterator.collect {
376376
case node if !oldUnreachableNodes.contains(node) && node != newState.selfUniqueAddress
377377
UnreachableMember(newGossip.member(node))
378-
}(collection.breakOut)
378+
}.to(scala.collection.immutable.IndexedSeq)
379379
}
380380

381381
/**
@@ -385,10 +385,10 @@ object ClusterEvent {
385385
if (newState eq oldState) Nil
386386
else {
387387
val newGossip = newState.latestGossip
388-
oldState.dcReachabilityNoOutsideNodes.allUnreachable.collect {
388+
oldState.dcReachabilityNoOutsideNodes.allUnreachable.iterator.collect {
389389
case node if newGossip.hasMember(node) && newState.dcReachabilityNoOutsideNodes.isReachable(node) && node != newState.selfUniqueAddress
390390
ReachableMember(newGossip.member(node))
391-
}(collection.breakOut)
391+
}.to(scala.collection.immutable.IndexedSeq)
392392
}
393393

394394
/**
@@ -410,7 +410,7 @@ object ClusterEvent {
410410
if (newState eq oldState) Nil
411411
else {
412412
val otherDcs = (oldState.latestGossip.allDataCenters union newState.latestGossip.allDataCenters) - newState.selfDc
413-
otherDcs.filterNot(isReachable(newState, oldState.dcReachability.allUnreachableOrTerminated)).map(UnreachableDataCenter)(collection.breakOut)
413+
otherDcs.filterNot(isReachable(newState, oldState.dcReachability.allUnreachableOrTerminated)).iterator.map(UnreachableDataCenter).to(scala.collection.immutable.IndexedSeq)
414414
}
415415
}
416416

@@ -425,7 +425,7 @@ object ClusterEvent {
425425
val oldUnreachableDcs = otherDcs.filterNot(isReachable(oldState, Set()))
426426
val currentUnreachableDcs = otherDcs.filterNot(isReachable(newState, Set()))
427427

428-
(oldUnreachableDcs diff currentUnreachableDcs).map(ReachableDataCenter)(collection.breakOut)
428+
(oldUnreachableDcs diff currentUnreachableDcs).iterator.map(ReachableDataCenter).to(scala.collection.immutable.IndexedSeq)
429429
}
430430
}
431431

@@ -563,8 +563,8 @@ private[cluster] final class ClusterDomainEventPublisher extends Actor with Acto
563563
unreachable = unreachable,
564564
seenBy = membershipState.latestGossip.seenBy.map(_.address),
565565
leader = membershipState.leader.map(_.address),
566-
roleLeaderMap = membershipState.latestGossip.allRoles.map(r
567-
r membershipState.roleLeader(r).map(_.address))(collection.breakOut),
566+
roleLeaderMap = membershipState.latestGossip.allRoles.iterator.map(r
567+
r membershipState.roleLeader(r).map(_.address)).toMap,
568568
unreachableDataCenters)
569569
receiver ! state
570570
}

0 commit comments

Comments
 (0)