diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorLifeCycleSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorLifeCycleSpec.scala
index ffbc1244c8..d151e6987d 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorLifeCycleSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorLifeCycleSpec.scala
@@ -128,7 +128,7 @@ class ActorLifeCycleSpec extends AkkaSpec("akka.actor.serialize-messages=off") w
}
"clear the behavior stack upon restart" in {
- case class Become(recv: ActorContext ⇒ Receive)
+ final case class Become(recv: ActorContext ⇒ Receive)
val a = system.actorOf(Props(new Actor {
def receive = {
case Become(beh) ⇒ { context.become(beh(context), discardOld = false); sender() ! "ok" }
diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorLookupSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorLookupSpec.scala
index a9bf0dbf6b..92a9d09f3c 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorLookupSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorLookupSpec.scala
@@ -12,13 +12,13 @@ import akka.pattern.ask
object ActorLookupSpec {
- case class Create(child: String)
+ final case class Create(child: String)
trait Query
- case class LookupElems(path: Iterable[String]) extends Query
- case class LookupString(path: String) extends Query
- case class LookupPath(path: ActorPath) extends Query
- case class GetSender(to: ActorRef) extends Query
+ final case class LookupElems(path: Iterable[String]) extends Query
+ final case class LookupString(path: String) extends Query
+ final case class LookupPath(path: ActorPath) extends Query
+ final case class GetSender(to: ActorRef) extends Query
val p = Props[Node]
diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorMailboxSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorMailboxSpec.scala
index 5cdf5010f9..583237ffaf 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorMailboxSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorMailboxSpec.scala
@@ -171,7 +171,7 @@ object ActorMailboxSpec {
classOf[BoundedDequeBasedMessageQueueSemantics])
trait MCBoundedMessageQueueSemantics extends MessageQueue with MultipleConsumerSemantics
- case class MCBoundedMailbox(val capacity: Int, val pushTimeOut: FiniteDuration)
+ final case class MCBoundedMailbox(val capacity: Int, val pushTimeOut: FiniteDuration)
extends MailboxType with ProducesMessageQueue[MCBoundedMessageQueueSemantics] {
def this(settings: ActorSystem.Settings, config: Config) = this(config.getInt("mailbox-capacity"),
diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorPerfSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorPerfSpec.scala
index 7fe54a59e3..9cc7f802b7 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorPerfSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorPerfSpec.scala
@@ -13,11 +13,11 @@ import scala.util.Try
object ActorPerfSpec {
- case class Create(number: Int, props: () ⇒ Props)
+ final case class Create(number: Int, props: () ⇒ Props)
case object Created
case object IsAlive
case object Alive
- case class WaitForChildren(number: Int)
+ final case class WaitForChildren(number: Int)
case object Waited
class EmptyActor extends Actor {
diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorRefSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorRefSpec.scala
index abe7e865a6..1afaaf2e8a 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorRefSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorRefSpec.scala
@@ -18,7 +18,7 @@ import akka.TestUtils.verifyActorTermination
object ActorRefSpec {
- case class ReplyTo(sender: ActorRef)
+ final case class ReplyTo(sender: ActorRef)
class ReplyActor extends Actor {
var replyTo: ActorRef = null
diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorSelectionSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorSelectionSpec.scala
index 577d4723e7..f45b7b5e4f 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorSelectionSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorSelectionSpec.scala
@@ -12,13 +12,13 @@ import akka.pattern.ask
object ActorSelectionSpec {
- case class Create(child: String)
+ final case class Create(child: String)
trait Query
- case class SelectString(path: String) extends Query
- case class SelectPath(path: ActorPath) extends Query
- case class GetSender(to: ActorRef) extends Query
- case class Forward(path: String, msg: Any) extends Query
+ final case class SelectString(path: String) extends Query
+ final case class SelectPath(path: ActorPath) extends Query
+ final case class GetSender(to: ActorRef) extends Query
+ final case class Forward(path: String, msg: Any) extends Query
val p = Props[Node]
diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala
index d0e3486417..5f03bc6c89 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala
@@ -71,7 +71,7 @@ object ActorSystemSpec {
}
}
- case class FastActor(latch: TestLatch, testActor: ActorRef) extends Actor {
+ final case class FastActor(latch: TestLatch, testActor: ActorRef) extends Actor {
val ref1 = context.actorOf(Props.empty)
val ref2 = context.actorFor(ref1.path.toString)
testActor ! ref2.getClass
diff --git a/akka-actor-tests/src/test/scala/akka/actor/Bench.scala b/akka-actor-tests/src/test/scala/akka/actor/Bench.scala
index 92b019492d..e5e65aeaa6 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/Bench.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/Bench.scala
@@ -8,9 +8,9 @@ package akka.actor
object Chameneos {
sealed trait ChameneosEvent
- case class Meet(from: ActorRef, colour: Colour) extends ChameneosEvent
- case class Change(colour: Colour) extends ChameneosEvent
- case class MeetingCount(count: Int) extends ChameneosEvent
+ final case class Meet(from: ActorRef, colour: Colour) extends ChameneosEvent
+ final case class Change(colour: Colour) extends ChameneosEvent
+ final case class MeetingCount(count: Int) extends ChameneosEvent
case object Exit extends ChameneosEvent
abstract class Colour
diff --git a/akka-actor-tests/src/test/scala/akka/actor/DeathWatchSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/DeathWatchSpec.scala
index ce81ed0e84..a6a1cb75fc 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/DeathWatchSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/DeathWatchSpec.scala
@@ -27,13 +27,13 @@ object DeathWatchSpec {
* Forwarding `Terminated` to non-watching testActor is not possible,
* and therefore the `Terminated` message is wrapped.
*/
- case class WrappedTerminated(t: Terminated)
+ final case class WrappedTerminated(t: Terminated)
- case class W(ref: ActorRef)
- case class U(ref: ActorRef)
- case class FF(fail: Failed)
+ final case class W(ref: ActorRef)
+ final case class U(ref: ActorRef)
+ final case class FF(fail: Failed)
- case class Latches(t1: TestLatch, t2: TestLatch) extends NoSerializationVerificationNeeded
+ final case class Latches(t1: TestLatch, t2: TestLatch) extends NoSerializationVerificationNeeded
}
trait DeathWatchSpec { this: AkkaSpec with ImplicitSender with DefaultTimeout ⇒
diff --git a/akka-actor-tests/src/test/scala/akka/actor/FSMActorSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/FSMActorSpec.scala
index 97b2ced440..0d130c220a 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/FSMActorSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/FSMActorSpec.scala
@@ -101,7 +101,7 @@ object FSMActorSpec {
private def doUnlock(): Unit = unlockedLatch.open()
}
- case class CodeState(soFar: String, code: String)
+ final case class CodeState(soFar: String, code: String)
}
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
diff --git a/akka-actor-tests/src/test/scala/akka/actor/FSMTimingSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/FSMTimingSpec.scala
index 4b2bd2a18b..1228c646c3 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/FSMTimingSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/FSMTimingSpec.scala
@@ -170,7 +170,7 @@ object FSMTimingSpec {
case object Cancel
case object SetHandler
- case class Unhandled(msg: AnyRef)
+ final case class Unhandled(msg: AnyRef)
class StateMachine(tester: ActorRef) extends Actor with FSM[State, Int] {
import FSM._
diff --git a/akka-actor-tests/src/test/scala/akka/actor/SchedulerSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/SchedulerSpec.scala
index adccd57480..b82380f1c8 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/SchedulerSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/SchedulerSpec.scala
@@ -192,7 +192,7 @@ trait SchedulerSpec extends BeforeAndAfterEach with DefaultTimeout with Implicit
"never fire prematurely" taggedAs TimingTest in {
val ticks = new TestLatch(300)
- case class Msg(ts: Long)
+ final case class Msg(ts: Long)
val actor = system.actorOf(Props(new Actor {
def receive = {
diff --git a/akka-actor-tests/src/test/scala/akka/actor/SupervisorHierarchySpec.scala b/akka-actor-tests/src/test/scala/akka/actor/SupervisorHierarchySpec.scala
index 183712d889..a2ca564e8f 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/SupervisorHierarchySpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/SupervisorHierarchySpec.scala
@@ -53,18 +53,18 @@ object SupervisorHierarchySpec {
}
}
- case class Ready(ref: ActorRef)
- case class Died(path: ActorPath)
+ final case class Ready(ref: ActorRef)
+ final case class Died(path: ActorPath)
case object Abort
case object PingOfDeath
case object PongOfDeath
- case class Event(msg: Any, identity: Long) { val time: Long = System.nanoTime }
- case class ErrorLog(msg: String, log: Vector[Event])
- case class Failure(directive: Directive, stop: Boolean, depth: Int, var failPre: Int, var failPost: Int, val failConstr: Int, stopKids: Int)
+ final case class Event(msg: Any, identity: Long) { val time: Long = System.nanoTime }
+ final case class ErrorLog(msg: String, log: Vector[Event])
+ final case class Failure(directive: Directive, stop: Boolean, depth: Int, var failPre: Int, var failPost: Int, val failConstr: Int, stopKids: Int)
extends RuntimeException("Failure") with NoStackTrace {
override def toString = productPrefix + productIterator.mkString("(", ",", ")")
}
- case class Dump(level: Int)
+ final case class Dump(level: Int)
val config = ConfigFactory.parseString("""
hierarchy {
@@ -112,7 +112,7 @@ object SupervisorHierarchySpec {
* upon Restart or would have to be managed by the highest supervisor (which
* is undesirable).
*/
- case class HierarchyState(log: Vector[Event], kids: Map[ActorPath, Int], failConstr: Failure)
+ final case class HierarchyState(log: Vector[Event], kids: Map[ActorPath, Int], failConstr: Failure)
val stateCache = new ConcurrentHashMap[ActorPath, HierarchyState]()
@volatile var ignoreFailConstr = false
@@ -320,11 +320,11 @@ object SupervisorHierarchySpec {
}
case object Work
- case class GCcheck(kids: Vector[WeakReference[ActorRef]])
+ final case class GCcheck(kids: Vector[WeakReference[ActorRef]])
sealed trait Action
- case class Ping(ref: ActorRef) extends Action
- case class Fail(ref: ActorRef, directive: Directive) extends Action
+ final case class Ping(ref: ActorRef) extends Action
+ final case class Fail(ref: ActorRef, directive: Directive) extends Action
sealed trait State
case object Idle extends State
diff --git a/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala
index 601173af0b..5ec6a34aee 100644
--- a/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala
@@ -31,35 +31,35 @@ object ActorModelSpec {
sealed trait ActorModelMessage extends NoSerializationVerificationNeeded
- case class TryReply(expect: Any) extends ActorModelMessage
+ final case class TryReply(expect: Any) extends ActorModelMessage
- case class Reply(expect: Any) extends ActorModelMessage
+ final case class Reply(expect: Any) extends ActorModelMessage
- case class Forward(to: ActorRef, msg: Any) extends ActorModelMessage
+ final case class Forward(to: ActorRef, msg: Any) extends ActorModelMessage
- case class CountDown(latch: CountDownLatch) extends ActorModelMessage
+ final case class CountDown(latch: CountDownLatch) extends ActorModelMessage
- case class Increment(counter: AtomicLong) extends ActorModelMessage
+ final case class Increment(counter: AtomicLong) extends ActorModelMessage
- case class AwaitLatch(latch: CountDownLatch) extends ActorModelMessage
+ final case class AwaitLatch(latch: CountDownLatch) extends ActorModelMessage
- case class Meet(acknowledge: CountDownLatch, waitFor: CountDownLatch) extends ActorModelMessage
+ final case class Meet(acknowledge: CountDownLatch, waitFor: CountDownLatch) extends ActorModelMessage
- case class CountDownNStop(latch: CountDownLatch) extends ActorModelMessage
+ final case class CountDownNStop(latch: CountDownLatch) extends ActorModelMessage
- case class Wait(time: Long) extends ActorModelMessage
+ final case class Wait(time: Long) extends ActorModelMessage
- case class WaitAck(time: Long, latch: CountDownLatch) extends ActorModelMessage
+ final case class WaitAck(time: Long, latch: CountDownLatch) extends ActorModelMessage
case object Interrupt extends ActorModelMessage
- case class InterruptNicely(expect: Any) extends ActorModelMessage
+ final case class InterruptNicely(expect: Any) extends ActorModelMessage
case object Restart extends ActorModelMessage
case object DoubleStop extends ActorModelMessage
- case class ThrowException(e: Throwable) extends ActorModelMessage
+ final case class ThrowException(e: Throwable) extends ActorModelMessage
val Ping = "Ping"
val Pong = "Pong"
diff --git a/akka-actor-tests/src/test/scala/akka/dispatch/FutureSpec.scala b/akka-actor-tests/src/test/scala/akka/dispatch/FutureSpec.scala
index ccff96a2cb..559e35d870 100644
--- a/akka-actor-tests/src/test/scala/akka/dispatch/FutureSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/dispatch/FutureSpec.scala
@@ -49,8 +49,8 @@ object FutureSpec {
}
}
- case class Req[T](req: T)
- case class Res[T](res: T)
+ final case class Req[T](req: T)
+ final case class Res[T](res: T)
}
class JavaFutureSpec extends JavaFutureTests with JUnitSuiteLike
@@ -704,22 +704,22 @@ class FutureSpec extends AkkaSpec with Checkers with BeforeAndAfterAll with Defa
}
sealed trait IntAction { def apply(that: Int): Int }
- case class IntAdd(n: Int) extends IntAction { def apply(that: Int) = that + n }
- case class IntSub(n: Int) extends IntAction { def apply(that: Int) = that - n }
- case class IntMul(n: Int) extends IntAction { def apply(that: Int) = that * n }
- case class IntDiv(n: Int) extends IntAction { def apply(that: Int) = that / n }
+ final case class IntAdd(n: Int) extends IntAction { def apply(that: Int) = that + n }
+ final case class IntSub(n: Int) extends IntAction { def apply(that: Int) = that - n }
+ final case class IntMul(n: Int) extends IntAction { def apply(that: Int) = that * n }
+ final case class IntDiv(n: Int) extends IntAction { def apply(that: Int) = that / n }
sealed trait FutureAction {
def /:(that: Try[Int]): Try[Int]
def /:(that: Future[Int]): Future[Int]
}
- case class MapAction(action: IntAction) extends FutureAction {
+ final case class MapAction(action: IntAction) extends FutureAction {
def /:(that: Try[Int]): Try[Int] = that map action.apply
def /:(that: Future[Int]): Future[Int] = that map action.apply
}
- case class FlatMapAction(action: IntAction) extends FutureAction {
+ final case class FlatMapAction(action: IntAction) extends FutureAction {
def /:(that: Try[Int]): Try[Int] = that map action.apply
def /:(that: Future[Int]): Future[Int] = that flatMap (n ⇒ Future.successful(action(n)))
}
diff --git a/akka-actor-tests/src/test/scala/akka/event/EventStreamSpec.scala b/akka-actor-tests/src/test/scala/akka/event/EventStreamSpec.scala
index 2b29b61375..8302d5b80e 100644
--- a/akka-actor-tests/src/test/scala/akka/event/EventStreamSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/event/EventStreamSpec.scala
@@ -33,9 +33,9 @@ object EventStreamSpec {
}
""")
- case class M(i: Int)
+ final case class M(i: Int)
- case class SetTarget(ref: ActorRef)
+ final case class SetTarget(ref: ActorRef)
class MyLog extends Actor {
var dst: ActorRef = context.system.deadLetters
diff --git a/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala b/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala
index 8fb2b6c613..fed90d381a 100644
--- a/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala
@@ -69,7 +69,7 @@ object LoggerSpec {
}
""").withFallback(AkkaSpec.testConf)
- case class SetTarget(ref: ActorRef, qualifier: Int)
+ final case class SetTarget(ref: ActorRef, qualifier: Int)
class TestLogger1 extends TestLogger(1)
class TestLogger2 extends TestLogger(2)
diff --git a/akka-actor-tests/src/test/scala/akka/io/TcpConnectionSpec.scala b/akka-actor-tests/src/test/scala/akka/io/TcpConnectionSpec.scala
index 655925e1e4..b130ead288 100644
--- a/akka-actor-tests/src/test/scala/akka/io/TcpConnectionSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/io/TcpConnectionSpec.scala
@@ -27,7 +27,7 @@ import java.util.Random
object TcpConnectionSpec {
case class Ack(i: Int) extends Event
object Ack extends Ack(0)
- case class Registration(channel: SelectableChannel, initialOps: Int) extends NoSerializationVerificationNeeded
+ final case class Registration(channel: SelectableChannel, initialOps: Int) extends NoSerializationVerificationNeeded
}
class TcpConnectionSpec extends AkkaSpec("""
diff --git a/akka-actor-tests/src/test/scala/akka/oldrouting/ConsistentHashingRouterSpec.scala b/akka-actor-tests/src/test/scala/akka/oldrouting/ConsistentHashingRouterSpec.scala
index 9444a10f32..02215b2d83 100644
--- a/akka-actor-tests/src/test/scala/akka/oldrouting/ConsistentHashingRouterSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/oldrouting/ConsistentHashingRouterSpec.scala
@@ -39,13 +39,13 @@ object ConsistentHashingRouterSpec {
}
}
- case class Msg(key: Any, data: String) extends ConsistentHashable {
+ final case class Msg(key: Any, data: String) extends ConsistentHashable {
override def consistentHashKey = key
}
- case class MsgKey(name: String)
+ final case class MsgKey(name: String)
- case class Msg2(key: Any, data: String)
+ final case class Msg2(key: Any, data: String)
}
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
diff --git a/akka-actor-tests/src/test/scala/akka/oldrouting/RoutingSpec.scala b/akka-actor-tests/src/test/scala/akka/oldrouting/RoutingSpec.scala
index 45b942aa5d..7e6e7a985b 100644
--- a/akka-actor-tests/src/test/scala/akka/oldrouting/RoutingSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/oldrouting/RoutingSpec.scala
@@ -105,7 +105,7 @@ class RoutingSpec extends AkkaSpec(RoutingSpec.config) with DefaultTimeout with
}
"be able to send their routees" in {
- case class TestRun(id: String, names: immutable.Iterable[String], actors: Int)
+ final case class TestRun(id: String, names: immutable.Iterable[String], actors: Int)
val actor = system.actorOf(Props(new Actor {
def receive = {
case TestRun(id, names, actors) ⇒
@@ -543,7 +543,7 @@ class RoutingSpec extends AkkaSpec(RoutingSpec.config) with DefaultTimeout with
Await.result(routedActor ? Broadcast(0), timeout.duration) should be(14)
}
- case class Stop(id: Option[Int] = None)
+ final case class Stop(id: Option[Int] = None)
def newActor(id: Int, shudownLatch: Option[TestLatch] = None) = system.actorOf(Props(new Actor {
def receive = {
diff --git a/akka-actor-tests/src/test/scala/akka/pattern/PatternSpec.scala b/akka-actor-tests/src/test/scala/akka/pattern/PatternSpec.scala
index a8c629d175..300f9f212d 100644
--- a/akka-actor-tests/src/test/scala/akka/pattern/PatternSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/pattern/PatternSpec.scala
@@ -13,7 +13,7 @@ import scala.concurrent.{ Future, Promise, Await }
import scala.concurrent.duration._
object PatternSpec {
- case class Work(duration: Duration)
+ final case class Work(duration: Duration)
class TargetActor extends Actor {
def receive = {
case (testLatch: TestLatch, duration: FiniteDuration) ⇒
diff --git a/akka-actor-tests/src/test/scala/akka/performance/microbench/TellLatencyPerformanceSpec.scala b/akka-actor-tests/src/test/scala/akka/performance/microbench/TellLatencyPerformanceSpec.scala
index 0f3a86af61..07ea7d5ce2 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/microbench/TellLatencyPerformanceSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/microbench/TellLatencyPerformanceSpec.scala
@@ -83,7 +83,7 @@ object TellLatencyPerformanceSpec {
val random: Random = new Random(0)
case object Run
- case class Msg(nanoTime: Long = System.nanoTime)
+ final case class Msg(nanoTime: Long = System.nanoTime)
class Waypoint(next: ActorRef) extends Actor {
def receive = {
diff --git a/akka-actor-tests/src/test/scala/akka/performance/trading/domain/Order.scala b/akka-actor-tests/src/test/scala/akka/performance/trading/domain/Order.scala
index f8919d05e7..15a73a0e36 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/trading/domain/Order.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/trading/domain/Order.scala
@@ -8,7 +8,7 @@ trait Order {
def withNanoTime: Order
}
-case class Bid(
+final case class Bid(
orderbookSymbol: String,
price: Long,
volume: Long,
@@ -22,7 +22,7 @@ case class Bid(
def withNanoTime: Bid = copy(nanoTime = System.nanoTime)
}
-case class Ask(
+final case class Ask(
orderbookSymbol: String,
price: Long,
volume: Long,
diff --git a/akka-actor-tests/src/test/scala/akka/performance/trading/system/OrderReceiver.scala b/akka-actor-tests/src/test/scala/akka/performance/trading/system/OrderReceiver.scala
index bfa8fdb54b..2dacb20c29 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/trading/system/OrderReceiver.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/trading/system/OrderReceiver.scala
@@ -46,4 +46,4 @@ class AkkaOrderReceiver extends Actor with OrderReceiver with ActorLogging {
}
}
-case class MatchingEngineRouting[ME](mapping: Map[ME, List[String]])
+final case class MatchingEngineRouting[ME](mapping: Map[ME, List[String]])
diff --git a/akka-actor-tests/src/test/scala/akka/performance/trading/system/Rsp.scala b/akka-actor-tests/src/test/scala/akka/performance/trading/system/Rsp.scala
index 3151462e33..e71625bacb 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/trading/system/Rsp.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/trading/system/Rsp.scala
@@ -2,4 +2,4 @@ package akka.performance.trading.system
import akka.performance.trading.domain.Order
-case class Rsp(order: Order, status: Boolean)
+final case class Rsp(order: Order, status: Boolean)
diff --git a/akka-actor-tests/src/test/scala/akka/performance/trading/system/TradingSystem.scala b/akka-actor-tests/src/test/scala/akka/performance/trading/system/TradingSystem.scala
index be0cd105a0..dcff294eca 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/trading/system/TradingSystem.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/trading/system/TradingSystem.scala
@@ -31,7 +31,7 @@ trait TradingSystem {
def shutdown()
- case class MatchingEngineInfo(primary: ME, standby: Option[ME], orderbooks: List[Orderbook])
+ final case class MatchingEngineInfo(primary: ME, standby: Option[ME], orderbooks: List[Orderbook])
}
class AkkaTradingSystem(val system: ActorSystem) extends TradingSystem {
diff --git a/akka-actor-tests/src/test/scala/akka/performance/workbench/BenchResultRepository.scala b/akka-actor-tests/src/test/scala/akka/performance/workbench/BenchResultRepository.scala
index 7bc3fec9d1..1e8d129860 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/workbench/BenchResultRepository.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/workbench/BenchResultRepository.scala
@@ -49,7 +49,7 @@ class FileBenchResultRepository extends BenchResultRepository {
private def htmlDirExists: Boolean = new File(htmlDir).exists
protected val maxHistorical = 7
- case class Key(name: String, load: Int)
+ final case class Key(name: String, load: Int)
def add(stats: Stats): Unit = synchronized {
val values = statsByName.getOrElseUpdate(stats.name, Vector.empty)
diff --git a/akka-actor-tests/src/test/scala/akka/performance/workbench/Stats.scala b/akka-actor-tests/src/test/scala/akka/performance/workbench/Stats.scala
index ac351ad961..7385dd5cbd 100644
--- a/akka-actor-tests/src/test/scala/akka/performance/workbench/Stats.scala
+++ b/akka-actor-tests/src/test/scala/akka/performance/workbench/Stats.scala
@@ -3,7 +3,7 @@ package akka.performance.workbench
import scala.collection.immutable.TreeMap
@SerialVersionUID(1L)
-case class Stats(
+final case class Stats(
name: String,
load: Int,
timestamp: Long = System.currentTimeMillis,
diff --git a/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala b/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala
index d8021853f9..bccc4b350b 100644
--- a/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/routing/ConfiguredLocalRoutingSpec.scala
@@ -60,12 +60,12 @@ object ConfiguredLocalRoutingSpec {
override def createRouter(system: ActorSystem): Router = Router(MyRoutingLogic(config))
}
- case class MyRoutingLogic(config: Config) extends RoutingLogic {
+ final case class MyRoutingLogic(config: Config) extends RoutingLogic {
override def select(message: Any, routees: immutable.IndexedSeq[Routee]): Routee =
MyRoutee(config.getString(message.toString))
}
- case class MyRoutee(reply: String) extends Routee {
+ final case class MyRoutee(reply: String) extends Routee {
override def send(message: Any, sender: ActorRef): Unit =
sender ! reply
}
diff --git a/akka-actor-tests/src/test/scala/akka/routing/ConsistentHashingRouterSpec.scala b/akka-actor-tests/src/test/scala/akka/routing/ConsistentHashingRouterSpec.scala
index 8e1aaddfcb..77c0b4658d 100644
--- a/akka-actor-tests/src/test/scala/akka/routing/ConsistentHashingRouterSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/routing/ConsistentHashingRouterSpec.scala
@@ -37,13 +37,13 @@ object ConsistentHashingRouterSpec {
}
}
- case class Msg(key: Any, data: String) extends ConsistentHashable {
+ final case class Msg(key: Any, data: String) extends ConsistentHashable {
override def consistentHashKey = key
}
- case class MsgKey(name: String)
+ final case class MsgKey(name: String)
- case class Msg2(key: Any, data: String)
+ final case class Msg2(key: Any, data: String)
}
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
diff --git a/akka-actor-tests/src/test/scala/akka/routing/ScatterGatherFirstCompletedSpec.scala b/akka-actor-tests/src/test/scala/akka/routing/ScatterGatherFirstCompletedSpec.scala
index b867062828..a59645a497 100644
--- a/akka-actor-tests/src/test/scala/akka/routing/ScatterGatherFirstCompletedSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/routing/ScatterGatherFirstCompletedSpec.scala
@@ -16,7 +16,7 @@ object ScatterGatherFirstCompletedSpec {
def receive = { case _ ⇒ }
}
- case class Stop(id: Option[Int] = None)
+ final case class Stop(id: Option[Int] = None)
def newActor(id: Int, shudownLatch: Option[TestLatch] = None)(implicit system: ActorSystem) =
system.actorOf(Props(new Actor {
diff --git a/akka-actor-tests/src/test/scala/akka/serialization/SerializeSpec.scala b/akka-actor-tests/src/test/scala/akka/serialization/SerializeSpec.scala
index ee25bebdb6..366cd46dc2 100644
--- a/akka-actor-tests/src/test/scala/akka/serialization/SerializeSpec.scala
+++ b/akka-actor-tests/src/test/scala/akka/serialization/SerializeSpec.scala
@@ -42,11 +42,11 @@ object SerializationTests {
"""
@BeanInfo
- case class Address(no: String, street: String, city: String, zip: String) { def this() = this("", "", "", "") }
+ final case class Address(no: String, street: String, city: String, zip: String) { def this() = this("", "", "", "") }
@BeanInfo
- case class Person(name: String, age: Int, address: Address) { def this() = this("", 0, null) }
+ final case class Person(name: String, age: Int, address: Address) { def this() = this("", 0, null) }
- case class Record(id: Int, person: Person)
+ final case class Record(id: Int, person: Person)
class SimpleMessage(s: String) extends TestSerializable
@@ -424,6 +424,6 @@ protected[akka] class TestSerializer extends Serializer {
}
@SerialVersionUID(1)
-protected[akka] case class FakeThrowable(msg: String) extends Throwable(msg) with Serializable {
+protected[akka] final case class FakeThrowable(msg: String) extends Throwable(msg) with Serializable {
override def fillInStackTrace = null
}
diff --git a/akka-actor/src/main/scala/akka/actor/Actor.scala b/akka-actor/src/main/scala/akka/actor/Actor.scala
index 55c7e2a3d0..58f891d6d9 100644
--- a/akka-actor/src/main/scala/akka/actor/Actor.scala
+++ b/akka-actor/src/main/scala/akka/actor/Actor.scala
@@ -60,7 +60,7 @@ case object Kill extends Kill {
* is returned in the `ActorIdentity` message as `correlationId`.
*/
@SerialVersionUID(1L)
-case class Identify(messageId: Any) extends AutoReceivedMessage
+final case class Identify(messageId: Any) extends AutoReceivedMessage
/**
* Reply to [[akka.actor.Identify]]. Contains
@@ -70,7 +70,7 @@ case class Identify(messageId: Any) extends AutoReceivedMessage
* the `Identify` message.
*/
@SerialVersionUID(1L)
-case class ActorIdentity(correlationId: Any, ref: Option[ActorRef]) {
+final case class ActorIdentity(correlationId: Any, ref: Option[ActorRef]) {
/**
* Java API: `ActorRef` of the actor replying to the request or
* null if no actor matched the request.
@@ -93,7 +93,7 @@ case class ActorIdentity(correlationId: Any, ref: Option[ActorRef]) {
* that the remote node hosting the watched actor was detected as unreachable
*/
@SerialVersionUID(1L)
-case class Terminated private[akka] (@BeanProperty actor: ActorRef)(
+final case class Terminated private[akka] (@BeanProperty actor: ActorRef)(
@BeanProperty val existenceConfirmed: Boolean,
@BeanProperty val addressTerminated: Boolean) extends AutoReceivedMessage with PossiblyHarmful
@@ -107,7 +107,7 @@ case class Terminated private[akka] (@BeanProperty actor: ActorRef)(
* and translates this event to [[akka.actor.Terminated]], which is sent itself.
*/
@SerialVersionUID(1L)
-private[akka] case class AddressTerminated(address: Address) extends AutoReceivedMessage with PossiblyHarmful
+private[akka] final case class AddressTerminated(address: Address) extends AutoReceivedMessage with PossiblyHarmful
abstract class ReceiveTimeout extends PossiblyHarmful
@@ -128,20 +128,20 @@ case object ReceiveTimeout extends ReceiveTimeout {
* For instance, if you try to create an Actor that doesn't extend Actor.
*/
@SerialVersionUID(1L)
-case class IllegalActorStateException private[akka] (message: String) extends AkkaException(message)
+final case class IllegalActorStateException private[akka] (message: String) extends AkkaException(message)
/**
* ActorKilledException is thrown when an Actor receives the [[akka.actor.Kill]] message
*/
@SerialVersionUID(1L)
-case class ActorKilledException private[akka] (message: String) extends AkkaException(message) with NoStackTrace
+final case class ActorKilledException private[akka] (message: String) extends AkkaException(message) with NoStackTrace
/**
* An InvalidActorNameException is thrown when you try to convert something, usually a String, to an Actor name
* which doesn't validate.
*/
@SerialVersionUID(1L)
-case class InvalidActorNameException(message: String) extends AkkaException(message)
+final case class InvalidActorNameException(message: String) extends AkkaException(message)
/**
* An ActorInitializationException is thrown when the the initialization logic for an Actor fails.
@@ -178,7 +178,7 @@ object ActorInitializationException {
* @param messageOption is the message which was optionally passed into preRestart()
*/
@SerialVersionUID(1L)
-case class PreRestartException private[akka] (actor: ActorRef, cause: Throwable, originalCause: Throwable, messageOption: Option[Any])
+final case class PreRestartException private[akka] (actor: ActorRef, cause: Throwable, originalCause: Throwable, messageOption: Option[Any])
extends ActorInitializationException(actor,
"exception in preRestart(" +
(if (originalCause == null) "null" else originalCause.getClass) + ", " +
@@ -194,7 +194,7 @@ case class PreRestartException private[akka] (actor: ActorRef, cause: Throwable,
* @param originalCause is the exception which caused the restart in the first place
*/
@SerialVersionUID(1L)
-case class PostRestartException private[akka] (actor: ActorRef, cause: Throwable, originalCause: Throwable)
+final case class PostRestartException private[akka] (actor: ActorRef, cause: Throwable, originalCause: Throwable)
extends ActorInitializationException(actor,
"exception post restart (" + (if (originalCause == null) "null" else originalCause.getClass) + ")", cause)
@@ -220,14 +220,14 @@ object OriginalRestartException {
* Currently only `null` is an invalid message.
*/
@SerialVersionUID(1L)
-case class InvalidMessageException private[akka] (message: String) extends AkkaException(message)
+final case class InvalidMessageException private[akka] (message: String) extends AkkaException(message)
/**
* A DeathPactException is thrown by an Actor that receives a Terminated(someActor) message
* that it doesn't handle itself, effectively crashing the Actor and escalating to the supervisor.
*/
@SerialVersionUID(1L)
-case class DeathPactException private[akka] (dead: ActorRef)
+final case class DeathPactException private[akka] (dead: ActorRef)
extends AkkaException("Monitored actor [" + dead + "] terminated")
with NoStackTrace
@@ -242,7 +242,7 @@ class ActorInterruptedException private[akka] (cause: Throwable) extends AkkaExc
* This message is published to the EventStream whenever an Actor receives a message it doesn't understand
*/
@SerialVersionUID(1L)
-case class UnhandledMessage(@BeanProperty message: Any, @BeanProperty sender: ActorRef, @BeanProperty recipient: ActorRef)
+final case class UnhandledMessage(@BeanProperty message: Any, @BeanProperty sender: ActorRef, @BeanProperty recipient: ActorRef)
/**
* Classes for passing status back to the sender.
@@ -255,14 +255,14 @@ object Status {
* This class/message type is preferably used to indicate success of some operation performed.
*/
@SerialVersionUID(1L)
- case class Success(status: Any) extends Status
+ final case class Success(status: Any) extends Status
/**
* This class/message type is preferably used to indicate failure of some operation performed.
* As an example, it is used to signal failure with AskSupport is used (ask/?).
*/
@SerialVersionUID(1L)
- case class Failure(cause: Throwable) extends Status
+ final case class Failure(cause: Throwable) extends Status
}
/**
diff --git a/akka-actor/src/main/scala/akka/actor/ActorRef.scala b/akka-actor/src/main/scala/akka/actor/ActorRef.scala
index db65def88a..3d1d06f3a1 100644
--- a/akka-actor/src/main/scala/akka/actor/ActorRef.scala
+++ b/akka-actor/src/main/scala/akka/actor/ActorRef.scala
@@ -394,7 +394,7 @@ private[akka] class LocalActorRef private[akka] (
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class SerializedActorRef private (path: String) {
+private[akka] final case class SerializedActorRef private (path: String) {
import akka.serialization.JavaSerializer.currentSystem
def this(actorRef: ActorRef) = {
@@ -451,7 +451,7 @@ private[akka] trait MinimalActorRef extends InternalActorRef with LocalRef {
* to the ActorSystem's EventStream
*/
@SerialVersionUID(1L)
-case class DeadLetter(message: Any, sender: ActorRef, recipient: ActorRef) {
+final case class DeadLetter(message: Any, sender: ActorRef, recipient: ActorRef) {
require(sender ne null, "DeadLetter sender may not be null")
require(recipient ne null, "DeadLetter recipient may not be null")
}
diff --git a/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala b/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
index 58658d6780..03c42250f6 100644
--- a/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
+++ b/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala
@@ -340,7 +340,7 @@ trait ActorRefFactory {
/**
* Internal Akka use only, used in implementation of system.stop(child).
*/
-private[akka] case class StopChild(child: ActorRef)
+private[akka] final case class StopChild(child: ActorRef)
/**
* INTERNAL API
diff --git a/akka-actor/src/main/scala/akka/actor/ActorSelection.scala b/akka-actor/src/main/scala/akka/actor/ActorSelection.scala
index 7d410344d4..35333e7087 100644
--- a/akka-actor/src/main/scala/akka/actor/ActorSelection.scala
+++ b/akka-actor/src/main/scala/akka/actor/ActorSelection.scala
@@ -239,7 +239,7 @@ trait ScalaActorSelection {
* message is delivered by traversing the various actor paths involved.
*/
@SerialVersionUID(1L)
-private[akka] case class ActorSelectionMessage(msg: Any, elements: immutable.Iterable[SelectionPathElement])
+private[akka] final case class ActorSelectionMessage(msg: Any, elements: immutable.Iterable[SelectionPathElement])
extends AutoReceivedMessage with PossiblyHarmful {
def identifyRequest: Option[Identify] = msg match {
@@ -258,7 +258,7 @@ private[akka] sealed trait SelectionPathElement
* INTERNAL API
*/
@SerialVersionUID(2L)
-private[akka] case class SelectChildName(name: String) extends SelectionPathElement {
+private[akka] final case class SelectChildName(name: String) extends SelectionPathElement {
override def toString: String = name
}
@@ -266,7 +266,7 @@ private[akka] case class SelectChildName(name: String) extends SelectionPathElem
* INTERNAL API
*/
@SerialVersionUID(2L)
-private[akka] case class SelectChildPattern(patternStr: String) extends SelectionPathElement {
+private[akka] final case class SelectChildPattern(patternStr: String) extends SelectionPathElement {
val pattern: Pattern = Helpers.makePattern(patternStr)
override def toString: String = patternStr
}
@@ -284,5 +284,5 @@ private[akka] case object SelectParent extends SelectionPathElement {
* `Future` is completed with this failure.
*/
@SerialVersionUID(1L)
-case class ActorNotFound(selection: ActorSelection) extends RuntimeException("Actor not found for: " + selection)
+final case class ActorNotFound(selection: ActorSelection) extends RuntimeException("Actor not found for: " + selection)
diff --git a/akka-actor/src/main/scala/akka/actor/FSM.scala b/akka-actor/src/main/scala/akka/actor/FSM.scala
index f084b42f13..3206c35023 100644
--- a/akka-actor/src/main/scala/akka/actor/FSM.scala
+++ b/akka-actor/src/main/scala/akka/actor/FSM.scala
@@ -29,26 +29,26 @@ object FSM {
* [[akka.actor.FSM.SubscribeTransitionCallBack]] before sending any
* [[akka.actor.FSM.Transition]] messages.
*/
- case class CurrentState[S](fsmRef: ActorRef, state: S)
+ final case class CurrentState[S](fsmRef: ActorRef, state: S)
/**
* Message type which is used to communicate transitions between states to
* all subscribed listeners (use [[akka.actor.FSM.SubscribeTransitionCallBack]]).
*/
- case class Transition[S](fsmRef: ActorRef, from: S, to: S)
+ final case class Transition[S](fsmRef: ActorRef, from: S, to: S)
/**
* Send this to an [[akka.actor.FSM]] to request first the [[FSM.CurrentState]]
* and then a series of [[FSM.Transition]] updates. Cancel the subscription
* using [[FSM.UnsubscribeTransitionCallBack]].
*/
- case class SubscribeTransitionCallBack(actorRef: ActorRef)
+ final case class SubscribeTransitionCallBack(actorRef: ActorRef)
/**
* Unsubscribe from [[akka.actor.FSM.Transition]] notifications which was
* effected by sending the corresponding [[akka.actor.FSM.SubscribeTransitionCallBack]].
*/
- case class UnsubscribeTransitionCallBack(actorRef: ActorRef)
+ final case class UnsubscribeTransitionCallBack(actorRef: ActorRef)
/**
* Reason why this [[akka.actor.FSM]] is shutting down.
@@ -71,7 +71,7 @@ object FSM {
* an error, e.g. if the state to transition into does not exist. You can use
* this to communicate a more precise cause to the [[akka.actor.FSM.onTermination]] block.
*/
- case class Failure(cause: Any) extends Reason
+ final case class Failure(cause: Any) extends Reason
/**
* This case object is received in case of a state timeout.
@@ -81,13 +81,13 @@ object FSM {
/**
* INTERNAL API
*/
- private case class TimeoutMarker(generation: Long)
+ private final case class TimeoutMarker(generation: Long)
/**
* INTERNAL API
*/
// FIXME: what about the cancellable?
- private[akka] case class Timer(name: String, msg: Any, repeat: Boolean, generation: Int)(context: ActorContext)
+ private[akka] final case class Timer(name: String, msg: Any, repeat: Boolean, generation: Int)(context: ActorContext)
extends NoSerializationVerificationNeeded {
private var ref: Option[Cancellable] = _
private val scheduler = context.system.scheduler
@@ -116,14 +116,14 @@ object FSM {
/**
* Log Entry of the [[akka.actor.LoggingFSM]], can be obtained by calling `getLog`.
*/
- case class LogEntry[S, D](stateName: S, stateData: D, event: Any)
+ final case class LogEntry[S, D](stateName: S, stateData: D, event: Any)
/**
* This captures all of the managed state of the [[akka.actor.FSM]]: the state
* name, the state data, possibly custom timeout, stop reason and replies
* accumulated while processing the last message.
*/
- case class State[S, D](stateName: S, stateData: D, timeout: Option[FiniteDuration] = None, stopReason: Option[Reason] = None, replies: List[Any] = Nil) {
+ final case class State[S, D](stateName: S, stateData: D, timeout: Option[FiniteDuration] = None, stopReason: Option[Reason] = None, replies: List[Any] = Nil) {
/**
* Modify state transition descriptor to include a state timeout for the
@@ -165,13 +165,13 @@ object FSM {
* All messages sent to the [[akka.actor.FSM]] will be wrapped inside an
* `Event`, which allows pattern matching to extract both state and data.
*/
- case class Event[D](event: Any, stateData: D) extends NoSerializationVerificationNeeded
+ final case class Event[D](event: Any, stateData: D) extends NoSerializationVerificationNeeded
/**
* Case class representing the state of the [[akka.actor.FSM]] whithin the
* `onTermination` block.
*/
- case class StopEvent[S, D](reason: Reason, currentState: S, stateData: D) extends NoSerializationVerificationNeeded
+ final case class StopEvent[S, D](reason: Reason, currentState: S, stateData: D) extends NoSerializationVerificationNeeded
}
diff --git a/akka-actor/src/main/scala/akka/actor/FaultHandling.scala b/akka-actor/src/main/scala/akka/actor/FaultHandling.scala
index cd31ffa7c9..b8d3ccd2ee 100644
--- a/akka-actor/src/main/scala/akka/actor/FaultHandling.scala
+++ b/akka-actor/src/main/scala/akka/actor/FaultHandling.scala
@@ -29,7 +29,7 @@ private[akka] case object ChildNameReserved extends ChildStats
* ChildRestartStats is the statistics kept by every parent Actor for every child Actor
* and is used for SupervisorStrategies to know how to deal with problems that occur for the children.
*/
-case class ChildRestartStats(child: ActorRef, var maxNrOfRetriesCount: Int = 0, var restartTimeWindowStartNanos: Long = 0L)
+final case class ChildRestartStats(child: ActorRef, var maxNrOfRetriesCount: Int = 0, var restartTimeWindowStartNanos: Long = 0L)
extends ChildStats {
def uid: Int = child.path.uid
@@ -459,4 +459,3 @@ case class OneForOneStrategy(
context.stop(child) //TODO optimization to drop child here already?
}
}
-
diff --git a/akka-actor/src/main/scala/akka/actor/Scheduler.scala b/akka-actor/src/main/scala/akka/actor/Scheduler.scala
index a4803242a4..faaadbf538 100644
--- a/akka-actor/src/main/scala/akka/actor/Scheduler.scala
+++ b/akka-actor/src/main/scala/akka/actor/Scheduler.scala
@@ -22,7 +22,7 @@ import akka.dispatch.AbstractNodeQueue
* This exception is thrown by Scheduler.schedule* when scheduling is not
* possible, e.g. after shutting down the Scheduler.
*/
-private case class SchedulerException(msg: String) extends akka.AkkaException(msg) with NoStackTrace
+private final case class SchedulerException(msg: String) extends akka.AkkaException(msg) with NoStackTrace
// The Scheduler trait is included in the documentation. KEEP THE LINES SHORT!!!
//#scheduler
diff --git a/akka-actor/src/main/scala/akka/actor/TypedActor.scala b/akka-actor/src/main/scala/akka/actor/TypedActor.scala
index 23aa97bc19..af0b41ab25 100644
--- a/akka-actor/src/main/scala/akka/actor/TypedActor.scala
+++ b/akka-actor/src/main/scala/akka/actor/TypedActor.scala
@@ -128,7 +128,7 @@ object TypedActor extends ExtensionId[TypedActorExtension] with ExtensionIdProvi
* This class represents a Method call, and has a reference to the Method to be called and the parameters to supply
* It's sent to the ActorRef backing the TypedActor and can be serialized and deserialized
*/
- case class MethodCall(method: Method, parameters: Array[AnyRef]) {
+ final case class MethodCall(method: Method, parameters: Array[AnyRef]) {
def isOneWay = method.getReturnType == java.lang.Void.TYPE
def returnsFuture = classOf[Future[_]] isAssignableFrom method.getReturnType
@@ -170,7 +170,7 @@ object TypedActor extends ExtensionId[TypedActorExtension] with ExtensionIdProvi
*
* Represents the serialized form of a MethodCall, uses readResolve and writeReplace to marshall the call
*/
- private[akka] case class SerializedMethodCall(ownerType: Class[_], methodName: String, parameterTypes: Array[Class[_]], serializedParameters: Array[(Int, Class[_], Array[Byte])]) {
+ private[akka] final case class SerializedMethodCall(ownerType: Class[_], methodName: String, parameterTypes: Array[Class[_]], serializedParameters: Array[(Int, Class[_], Array[Byte])]) {
//TODO implement writeObject and readObject to serialize
//TODO Possible optimization is to special encode the parameter-types to conserve space
@@ -442,7 +442,7 @@ object TypedActor extends ExtensionId[TypedActorExtension] with ExtensionIdProvi
/**
* INTERNAL API
*/
- private[akka] case class SerializedTypedActorInvocationHandler(val actor: ActorRef, val timeout: FiniteDuration) {
+ private[akka] final case class SerializedTypedActorInvocationHandler(val actor: ActorRef, val timeout: FiniteDuration) {
@throws(classOf[ObjectStreamException]) private def readResolve(): AnyRef = JavaSerializer.currentSystem.value match {
case null ⇒ throw new IllegalStateException("SerializedTypedActorInvocationHandler.readResolve requires that JavaSerializer.currentSystem.value is set to a non-null value")
case some ⇒ toTypedActorInvocationHandler(some)
@@ -522,7 +522,7 @@ object TypedProps {
* It's used in TypedActorFactory.typedActorOf to configure a TypedActor instance.
*/
@SerialVersionUID(1L)
-case class TypedProps[T <: AnyRef] protected[TypedProps] (
+final case class TypedProps[T <: AnyRef] protected[TypedProps] (
interfaces: immutable.Seq[Class[_]],
creator: () ⇒ T,
dispatcher: String = TypedProps.defaultDispatcherId,
@@ -626,7 +626,7 @@ case class TypedProps[T <: AnyRef] protected[TypedProps] (
* ContextualTypedActorFactory allows TypedActors to create children, effectively forming the same Actor Supervision Hierarchies
* as normal Actors can.
*/
-case class ContextualTypedActorFactory(typedActor: TypedActorExtension, actorFactory: ActorContext) extends TypedActorFactory {
+final case class ContextualTypedActorFactory(typedActor: TypedActorExtension, actorFactory: ActorContext) extends TypedActorFactory {
override def getActorRefFor(proxy: AnyRef): ActorRef = typedActor.getActorRefFor(proxy)
override def isTypedActor(proxyOrNot: AnyRef): Boolean = typedActor.isTypedActor(proxyOrNot)
}
diff --git a/akka-actor/src/main/scala/akka/actor/dsl/Inbox.scala b/akka-actor/src/main/scala/akka/actor/dsl/Inbox.scala
index 72f2a86435..38d35e3ba2 100644
--- a/akka-actor/src/main/scala/akka/actor/dsl/Inbox.scala
+++ b/akka-actor/src/main/scala/akka/actor/dsl/Inbox.scala
@@ -31,13 +31,13 @@ private[akka] object Inbox {
def withClient(c: ActorRef): Query
def client: ActorRef
}
- private case class Get(deadline: Deadline, client: ActorRef = null) extends Query {
+ private final case class Get(deadline: Deadline, client: ActorRef = null) extends Query {
def withClient(c: ActorRef) = copy(client = c)
}
- private case class Select(deadline: Deadline, predicate: PartialFunction[Any, Any], client: ActorRef = null) extends Query {
+ private final case class Select(deadline: Deadline, predicate: PartialFunction[Any, Any], client: ActorRef = null) extends Query {
def withClient(c: ActorRef) = copy(client = c)
}
- private case class StartWatch(target: ActorRef)
+ private final case class StartWatch(target: ActorRef)
private case object Kick
}
diff --git a/akka-actor/src/main/scala/akka/actor/dungeon/ChildrenContainer.scala b/akka-actor/src/main/scala/akka/actor/dungeon/ChildrenContainer.scala
index 1f4980fa97..0c9035d6e7 100644
--- a/akka-actor/src/main/scala/akka/actor/dungeon/ChildrenContainer.scala
+++ b/akka-actor/src/main/scala/akka/actor/dungeon/ChildrenContainer.scala
@@ -46,8 +46,8 @@ private[akka] object ChildrenContainer {
sealed trait SuspendReason
case object UserRequest extends SuspendReason
// careful with those system messages, all handling to be taking place in ActorCell.scala!
- case class Recreation(cause: Throwable) extends SuspendReason with WaitingForChildren
- case class Creation() extends SuspendReason with WaitingForChildren
+ final case class Recreation(cause: Throwable) extends SuspendReason with WaitingForChildren
+ final case class Creation() extends SuspendReason with WaitingForChildren
case object Termination extends SuspendReason
class ChildRestartsIterable(stats: immutable.MapLike[_, ChildStats, _]) extends PartialImmutableValuesIterable[ChildStats, ChildRestartStats] {
@@ -156,7 +156,7 @@ private[akka] object ChildrenContainer {
* type of container, depending on whether or not children are left and whether or not
* the reason was “Terminating”.
*/
- case class TerminatingChildrenContainer(c: immutable.TreeMap[String, ChildStats], toDie: Set[ActorRef], reason: SuspendReason)
+ final case class TerminatingChildrenContainer(c: immutable.TreeMap[String, ChildStats], toDie: Set[ActorRef], reason: SuspendReason)
extends ChildrenContainer {
override def add(name: String, stats: ChildRestartStats): ChildrenContainer = copy(c.updated(name, stats))
diff --git a/akka-actor/src/main/scala/akka/dispatch/CachingConfig.scala b/akka-actor/src/main/scala/akka/dispatch/CachingConfig.scala
index f7c6bdde8d..7ab8575845 100644
--- a/akka-actor/src/main/scala/akka/dispatch/CachingConfig.scala
+++ b/akka-actor/src/main/scala/akka/dispatch/CachingConfig.scala
@@ -20,8 +20,8 @@ private[akka] object CachingConfig {
val exists: Boolean
val config: Config
}
- case class ValuePathEntry(valid: Boolean, exists: Boolean, config: Config = emptyConfig) extends PathEntry
- case class StringPathEntry(valid: Boolean, exists: Boolean, config: Config, value: String) extends PathEntry
+ final case class ValuePathEntry(valid: Boolean, exists: Boolean, config: Config = emptyConfig) extends PathEntry
+ final case class StringPathEntry(valid: Boolean, exists: Boolean, config: Config, value: String) extends PathEntry
val invalidPathEntry = ValuePathEntry(false, true)
val nonExistingPathEntry = ValuePathEntry(true, false)
diff --git a/akka-actor/src/main/scala/akka/dispatch/Dispatchers.scala b/akka-actor/src/main/scala/akka/dispatch/Dispatchers.scala
index 7f2d9c0703..413658e386 100644
--- a/akka-actor/src/main/scala/akka/dispatch/Dispatchers.scala
+++ b/akka-actor/src/main/scala/akka/dispatch/Dispatchers.scala
@@ -31,7 +31,7 @@ trait DispatcherPrerequisites {
/**
* INTERNAL API
*/
-private[akka] case class DefaultDispatcherPrerequisites(
+private[akka] final case class DefaultDispatcherPrerequisites(
val threadFactory: ThreadFactory,
val eventStream: EventStream,
val scheduler: Scheduler,
diff --git a/akka-actor/src/main/scala/akka/dispatch/Mailbox.scala b/akka-actor/src/main/scala/akka/dispatch/Mailbox.scala
index 5832bb24fb..b6e481cdde 100644
--- a/akka-actor/src/main/scala/akka/dispatch/Mailbox.scala
+++ b/akka-actor/src/main/scala/akka/dispatch/Mailbox.scala
@@ -547,7 +547,7 @@ trait ProducesMessageQueue[T <: MessageQueue]
/**
* UnboundedMailbox is the default unbounded MailboxType used by Akka Actors.
*/
-case class UnboundedMailbox() extends MailboxType with ProducesMessageQueue[UnboundedMailbox.MessageQueue] {
+final case class UnboundedMailbox() extends MailboxType with ProducesMessageQueue[UnboundedMailbox.MessageQueue] {
def this(settings: ActorSystem.Settings, config: Config) = this()
@@ -566,7 +566,7 @@ object UnboundedMailbox {
* the only drawback is that you can't have multiple consumers,
* which rules out using it with BalancingPool (BalancingDispatcher) for instance.
*/
-case class SingleConsumerOnlyUnboundedMailbox() extends MailboxType with ProducesMessageQueue[NodeMessageQueue] {
+final case class SingleConsumerOnlyUnboundedMailbox() extends MailboxType with ProducesMessageQueue[NodeMessageQueue] {
def this(settings: ActorSystem.Settings, config: Config) = this()
@@ -576,7 +576,7 @@ case class SingleConsumerOnlyUnboundedMailbox() extends MailboxType with Produce
/**
* BoundedMailbox is the default bounded MailboxType used by Akka Actors.
*/
-case class BoundedMailbox(val capacity: Int, val pushTimeOut: FiniteDuration)
+final case class BoundedMailbox(val capacity: Int, val pushTimeOut: FiniteDuration)
extends MailboxType with ProducesMessageQueue[BoundedMailbox.MessageQueue] {
def this(settings: ActorSystem.Settings, config: Config) = this(config.getInt("mailbox-capacity"),
@@ -639,7 +639,7 @@ object BoundedPriorityMailbox {
/**
* UnboundedDequeBasedMailbox is an unbounded MailboxType, backed by a Deque.
*/
-case class UnboundedDequeBasedMailbox() extends MailboxType with ProducesMessageQueue[UnboundedDequeBasedMailbox.MessageQueue] {
+final case class UnboundedDequeBasedMailbox() extends MailboxType with ProducesMessageQueue[UnboundedDequeBasedMailbox.MessageQueue] {
def this(settings: ActorSystem.Settings, config: Config) = this()
diff --git a/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala b/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala
index 75aadcd81a..23fc2f85b4 100644
--- a/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala
+++ b/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala
@@ -65,12 +65,12 @@ trait ExecutorServiceFactoryProvider {
/**
* A small configuration DSL to create ThreadPoolExecutors that can be provided as an ExecutorServiceFactoryProvider to Dispatcher
*/
-case class ThreadPoolConfig(allowCorePoolTimeout: Boolean = ThreadPoolConfig.defaultAllowCoreThreadTimeout,
- corePoolSize: Int = ThreadPoolConfig.defaultCorePoolSize,
- maxPoolSize: Int = ThreadPoolConfig.defaultMaxPoolSize,
- threadTimeout: Duration = ThreadPoolConfig.defaultTimeout,
- queueFactory: ThreadPoolConfig.QueueFactory = ThreadPoolConfig.linkedBlockingQueue(),
- rejectionPolicy: RejectedExecutionHandler = ThreadPoolConfig.defaultRejectionPolicy)
+final case class ThreadPoolConfig(allowCorePoolTimeout: Boolean = ThreadPoolConfig.defaultAllowCoreThreadTimeout,
+ corePoolSize: Int = ThreadPoolConfig.defaultCorePoolSize,
+ maxPoolSize: Int = ThreadPoolConfig.defaultMaxPoolSize,
+ threadTimeout: Duration = ThreadPoolConfig.defaultTimeout,
+ queueFactory: ThreadPoolConfig.QueueFactory = ThreadPoolConfig.linkedBlockingQueue(),
+ rejectionPolicy: RejectedExecutionHandler = ThreadPoolConfig.defaultRejectionPolicy)
extends ExecutorServiceFactoryProvider {
class ThreadPoolExecutorServiceFactory(val threadFactory: ThreadFactory) extends ExecutorServiceFactory {
def createExecutorService: ExecutorService = {
@@ -102,7 +102,7 @@ case class ThreadPoolConfig(allowCorePoolTimeout: Boolean = ThreadPoolConfig.def
/**
* A DSL to configure and create a MessageDispatcher with a ThreadPoolExecutor
*/
-case class ThreadPoolConfigBuilder(config: ThreadPoolConfig) {
+final case class ThreadPoolConfigBuilder(config: ThreadPoolConfig) {
import ThreadPoolConfig._
def withNewThreadPoolWithCustomBlockingQueue(newQueueFactory: QueueFactory): ThreadPoolConfigBuilder =
@@ -176,11 +176,11 @@ object MonitorableThreadFactory {
}
}
-case class MonitorableThreadFactory(name: String,
- daemonic: Boolean,
- contextClassLoader: Option[ClassLoader],
- exceptionHandler: Thread.UncaughtExceptionHandler = MonitorableThreadFactory.doNothing,
- protected val counter: AtomicLong = new AtomicLong)
+final case class MonitorableThreadFactory(name: String,
+ daemonic: Boolean,
+ contextClassLoader: Option[ClassLoader],
+ exceptionHandler: Thread.UncaughtExceptionHandler = MonitorableThreadFactory.doNothing,
+ protected val counter: AtomicLong = new AtomicLong)
extends ThreadFactory with ForkJoinPool.ForkJoinWorkerThreadFactory {
def newThread(pool: ForkJoinPool): ForkJoinWorkerThread = {
diff --git a/akka-actor/src/main/scala/akka/dispatch/sysmsg/SystemMessage.scala b/akka-actor/src/main/scala/akka/dispatch/sysmsg/SystemMessage.scala
index da78873b0b..75e2fb0804 100644
--- a/akka-actor/src/main/scala/akka/dispatch/sysmsg/SystemMessage.scala
+++ b/akka-actor/src/main/scala/akka/dispatch/sysmsg/SystemMessage.scala
@@ -207,32 +207,32 @@ private[akka] trait StashWhenFailed
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Create(failure: Option[ActorInitializationException]) extends SystemMessage // sent to self from Dispatcher.register
+private[akka] final case class Create(failure: Option[ActorInitializationException]) extends SystemMessage // sent to self from Dispatcher.register
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Recreate(cause: Throwable) extends SystemMessage with StashWhenWaitingForChildren // sent to self from ActorCell.restart
+private[akka] final case class Recreate(cause: Throwable) extends SystemMessage with StashWhenWaitingForChildren // sent to self from ActorCell.restart
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Suspend() extends SystemMessage with StashWhenWaitingForChildren // sent to self from ActorCell.suspend
+private[akka] final case class Suspend() extends SystemMessage with StashWhenWaitingForChildren // sent to self from ActorCell.suspend
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Resume(causedByFailure: Throwable) extends SystemMessage with StashWhenWaitingForChildren // sent to self from ActorCell.resume
+private[akka] final case class Resume(causedByFailure: Throwable) extends SystemMessage with StashWhenWaitingForChildren // sent to self from ActorCell.resume
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Terminate() extends SystemMessage // sent to self from ActorCell.stop
+private[akka] final case class Terminate() extends SystemMessage // sent to self from ActorCell.stop
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Supervise(child: ActorRef, async: Boolean) extends SystemMessage // sent to supervisor ActorRef from ActorCell.start
+private[akka] final case class Supervise(child: ActorRef, async: Boolean) extends SystemMessage // sent to supervisor ActorRef from ActorCell.start
/**
* INTERNAL API
*/
@@ -242,7 +242,7 @@ private[akka] case class Watch(watchee: InternalActorRef, watcher: InternalActor
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Unwatch(watchee: ActorRef, watcher: ActorRef) extends SystemMessage // sent to tear down a DeathWatch
+private[akka] final case class Unwatch(watchee: ActorRef, watcher: ActorRef) extends SystemMessage // sent to tear down a DeathWatch
/**
* INTERNAL API
*/
@@ -253,12 +253,12 @@ private[akka] case object NoMessage extends SystemMessage // switched into the m
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class Failed(child: ActorRef, cause: Throwable, uid: Int) extends SystemMessage
+private[akka] final case class Failed(child: ActorRef, cause: Throwable, uid: Int) extends SystemMessage
with StashWhenFailed
with StashWhenWaitingForChildren
@SerialVersionUID(1L)
-private[akka] case class DeathWatchNotification(
+private[akka] final case class DeathWatchNotification(
actor: ActorRef,
existenceConfirmed: Boolean,
addressTerminated: Boolean) extends SystemMessage
diff --git a/akka-actor/src/main/scala/akka/event/Logging.scala b/akka-actor/src/main/scala/akka/event/Logging.scala
index 9d1c928564..e4023275d3 100644
--- a/akka-actor/src/main/scala/akka/event/Logging.scala
+++ b/akka-actor/src/main/scala/akka/event/Logging.scala
@@ -408,7 +408,7 @@ object Logging {
/**
* Marker trait for annotating LogLevel, which must be Int after erasure.
*/
- case class LogLevel(asInt: Int) extends AnyVal {
+ final case class LogLevel(asInt: Int) extends AnyVal {
@inline final def >=(other: LogLevel): Boolean = asInt >= other.asInt
@inline final def <=(other: LogLevel): Boolean = asInt <= other.asInt
@inline final def >(other: LogLevel): Boolean = asInt > other.asInt
@@ -684,7 +684,7 @@ object Logging {
* message. This is necessary to ensure that additional subscriptions are in
* effect when the logging system finished starting.
*/
- case class InitializeLogger(bus: LoggingBus) extends NoSerializationVerificationNeeded
+ final case class InitializeLogger(bus: LoggingBus) extends NoSerializationVerificationNeeded
/**
* Response message each logger must send within 1 second after receiving the
diff --git a/akka-actor/src/main/scala/akka/io/Inet.scala b/akka-actor/src/main/scala/akka/io/Inet.scala
index 6951cb49d5..32c9533a19 100644
--- a/akka-actor/src/main/scala/akka/io/Inet.scala
+++ b/akka-actor/src/main/scala/akka/io/Inet.scala
@@ -35,7 +35,7 @@ object Inet {
*
* For more information see [[java.net.Socket.setReceiveBufferSize]]
*/
- case class ReceiveBufferSize(size: Int) extends SocketOption {
+ final case class ReceiveBufferSize(size: Int) extends SocketOption {
require(size > 0, "ReceiveBufferSize must be > 0")
override def beforeServerSocketBind(s: ServerSocket): Unit = s.setReceiveBufferSize(size)
override def beforeDatagramBind(s: DatagramSocket): Unit = s.setReceiveBufferSize(size)
@@ -49,7 +49,7 @@ object Inet {
*
* For more information see [[java.net.Socket.setReuseAddress]]
*/
- case class ReuseAddress(on: Boolean) extends SocketOption {
+ final case class ReuseAddress(on: Boolean) extends SocketOption {
override def beforeServerSocketBind(s: ServerSocket): Unit = s.setReuseAddress(on)
override def beforeDatagramBind(s: DatagramSocket): Unit = s.setReuseAddress(on)
override def beforeConnect(s: Socket): Unit = s.setReuseAddress(on)
@@ -60,7 +60,7 @@ object Inet {
*
* For more information see [[java.net.Socket.setSendBufferSize]]
*/
- case class SendBufferSize(size: Int) extends SocketOption {
+ final case class SendBufferSize(size: Int) extends SocketOption {
require(size > 0, "SendBufferSize must be > 0")
override def afterConnect(s: Socket): Unit = s.setSendBufferSize(size)
}
@@ -72,7 +72,7 @@ object Inet {
*
* For more information see [[java.net.Socket.setTrafficClass]]
*/
- case class TrafficClass(tc: Int) extends SocketOption {
+ final case class TrafficClass(tc: Int) extends SocketOption {
require(0 <= tc && tc <= 255, "TrafficClass needs to be in the interval [0, 255]")
override def afterConnect(s: Socket): Unit = s.setTrafficClass(tc)
}
diff --git a/akka-actor/src/main/scala/akka/io/SelectionHandler.scala b/akka-actor/src/main/scala/akka/io/SelectionHandler.scala
index bd392a16ee..7cfb2c5436 100644
--- a/akka-actor/src/main/scala/akka/io/SelectionHandler.scala
+++ b/akka-actor/src/main/scala/akka/io/SelectionHandler.scala
@@ -65,10 +65,10 @@ private[io] object SelectionHandler {
def failureMessage: Any
}
- case class WorkerForCommand(apiCommand: HasFailureMessage, commander: ActorRef, childProps: ChannelRegistry ⇒ Props)
+ final case class WorkerForCommand(apiCommand: HasFailureMessage, commander: ActorRef, childProps: ChannelRegistry ⇒ Props)
extends NoSerializationVerificationNeeded
- case class Retry(command: WorkerForCommand, retriesLeft: Int) extends NoSerializationVerificationNeeded { require(retriesLeft >= 0) }
+ final case class Retry(command: WorkerForCommand, retriesLeft: Int) extends NoSerializationVerificationNeeded { require(retriesLeft >= 0) }
case object ChannelConnectable
case object ChannelAcceptable
diff --git a/akka-actor/src/main/scala/akka/io/Tcp.scala b/akka-actor/src/main/scala/akka/io/Tcp.scala
index bb7c4bfc80..32f11d0e01 100644
--- a/akka-actor/src/main/scala/akka/io/Tcp.scala
+++ b/akka-actor/src/main/scala/akka/io/Tcp.scala
@@ -55,7 +55,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
*
* For more information see [[java.net.Socket.setKeepAlive]]
*/
- case class KeepAlive(on: Boolean) extends SocketOption {
+ final case class KeepAlive(on: Boolean) extends SocketOption {
override def afterConnect(s: Socket): Unit = s.setKeepAlive(on)
}
@@ -66,7 +66,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
*
* For more information see [[java.net.Socket.setOOBInline]]
*/
- case class OOBInline(on: Boolean) extends SocketOption {
+ final case class OOBInline(on: Boolean) extends SocketOption {
override def afterConnect(s: Socket): Unit = s.setOOBInline(on)
}
@@ -80,7 +80,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
*
* For more information see [[java.net.Socket.setTcpNoDelay]]
*/
- case class TcpNoDelay(on: Boolean) extends SocketOption {
+ final case class TcpNoDelay(on: Boolean) extends SocketOption {
override def afterConnect(s: Socket): Unit = s.setTcpNoDelay(on)
}
@@ -110,11 +110,11 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* @param localAddress optionally specifies a specific address to bind to
* @param options Please refer to the [[SO]] object for a list of all supported options.
*/
- case class Connect(remoteAddress: InetSocketAddress,
- localAddress: Option[InetSocketAddress] = None,
- options: immutable.Traversable[SocketOption] = Nil,
- timeout: Option[FiniteDuration] = None,
- pullMode: Boolean = false) extends Command
+ final case class Connect(remoteAddress: InetSocketAddress,
+ localAddress: Option[InetSocketAddress] = None,
+ options: immutable.Traversable[SocketOption] = Nil,
+ timeout: Option[FiniteDuration] = None,
+ pullMode: Boolean = false) extends Command
/**
* The Bind message is send to the TCP manager actor, which is obtained via
@@ -135,11 +135,11 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
*
* @param options Please refer to the [[SO]] object for a list of all supported options.
*/
- case class Bind(handler: ActorRef,
- localAddress: InetSocketAddress,
- backlog: Int = 100,
- options: immutable.Traversable[SocketOption] = Nil,
- pullMode: Boolean = false) extends Command
+ final case class Bind(handler: ActorRef,
+ localAddress: InetSocketAddress,
+ backlog: Int = 100,
+ options: immutable.Traversable[SocketOption] = Nil,
+ pullMode: Boolean = false) extends Command
/**
* This message must be sent to a TCP connection actor after receiving the
@@ -159,7 +159,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* notification until [[ResumeWriting]] is received. This can
* be used to implement NACK-based write backpressure.
*/
- case class Register(handler: ActorRef, keepOpenOnPeerClosed: Boolean = false, useResumeWriting: Boolean = true) extends Command
+ final case class Register(handler: ActorRef, keepOpenOnPeerClosed: Boolean = false, useResumeWriting: Boolean = true) extends Command
/**
* In order to close down a listening socket, send this message to that socket’s
@@ -316,7 +316,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* or have been sent! Unfortunately there is no way to determine whether
* a particular write has been sent by the O/S.
*/
- case class Write(data: ByteString, ack: Event) extends SimpleWriteCommand
+ final case class Write(data: ByteString, ack: Event) extends SimpleWriteCommand
object Write {
/**
* The empty Write doesn't write anything and isn't acknowledged.
@@ -343,7 +343,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* or have been sent! Unfortunately there is no way to determine whether
* a particular write has been sent by the O/S.
*/
- case class WriteFile(filePath: String, position: Long, count: Long, ack: Event) extends SimpleWriteCommand {
+ final case class WriteFile(filePath: String, position: Long, count: Long, ack: Event) extends SimpleWriteCommand {
require(position >= 0, "WriteFile.position must be >= 0")
require(count > 0, "WriteFile.count must be > 0")
}
@@ -356,7 +356,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* If the sub commands contain `ack` requests they will be honored as soon as the
* respective write has been written completely.
*/
- case class CompoundWrite(override val head: SimpleWriteCommand, tailCommand: WriteCommand) extends WriteCommand
+ final case class CompoundWrite(override val head: SimpleWriteCommand, tailCommand: WriteCommand) extends WriteCommand
with immutable.Iterable[SimpleWriteCommand] {
def iterator: Iterator[SimpleWriteCommand] =
@@ -399,7 +399,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* for connection actors.
* @param batchSize The number of connections to accept before waiting for the next resume command
*/
- case class ResumeAccepting(batchSize: Int) extends Command
+ final case class ResumeAccepting(batchSize: Int) extends Command
/// EVENTS
/**
@@ -411,7 +411,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* Whenever data are read from a socket they will be transferred within this
* class to the handler actor which was designated in the [[Register]] message.
*/
- case class Received(data: ByteString) extends Event
+ final case class Received(data: ByteString) extends Event
/**
* The connection actor sends this message either to the sender of a [[Connect]]
@@ -419,13 +419,13 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* in the [[Bind]] message. The connection is characterized by the `remoteAddress`
* and `localAddress` TCP endpoints.
*/
- case class Connected(remoteAddress: InetSocketAddress, localAddress: InetSocketAddress) extends Event
+ final case class Connected(remoteAddress: InetSocketAddress, localAddress: InetSocketAddress) extends Event
/**
* Whenever a command cannot be completed, the queried actor will reply with
* this message, wrapping the original command which failed.
*/
- case class CommandFailed(cmd: Command) extends Event
+ final case class CommandFailed(cmd: Command) extends Event
/**
* When `useResumeWriting` is in effect as indicated in the [[Register]] message,
@@ -442,7 +442,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
* in this form. If the bind address indicated a 0 port number, then the contained
* `localAddress` can be used to find out which port was automatically assigned.
*/
- case class Bound(localAddress: InetSocketAddress) extends Event
+ final case class Bound(localAddress: InetSocketAddress) extends Event
/**
* The sender of an [[Unbind]] command will receive confirmation through this
@@ -507,7 +507,7 @@ object Tcp extends ExtensionId[TcpExt] with ExtensionIdProvider {
/**
* The connection has been closed due to an IO error.
*/
- case class ErrorClosed(cause: String) extends ConnectionClosed {
+ final case class ErrorClosed(cause: String) extends ConnectionClosed {
override def isErrorClosed = true
override def getErrorCause = cause
}
diff --git a/akka-actor/src/main/scala/akka/io/TcpConnection.scala b/akka-actor/src/main/scala/akka/io/TcpConnection.scala
index 92103de285..592a09f1ae 100644
--- a/akka-actor/src/main/scala/akka/io/TcpConnection.scala
+++ b/akka-actor/src/main/scala/akka/io/TcpConnection.scala
@@ -443,20 +443,20 @@ private[io] object TcpConnection {
* Used to transport information to the postStop method to notify
* interested party about a connection close.
*/
- case class CloseInformation(notificationsTo: Set[ActorRef], closedEvent: Event)
+ final case class CloseInformation(notificationsTo: Set[ActorRef], closedEvent: Event)
/**
* Groups required connection-related data that are only available once the connection has been fully established.
*/
- case class ConnectionInfo(registration: ChannelRegistration,
- handler: ActorRef,
- keepOpenOnPeerClosed: Boolean,
- useResumeWriting: Boolean)
+ final case class ConnectionInfo(registration: ChannelRegistration,
+ handler: ActorRef,
+ keepOpenOnPeerClosed: Boolean,
+ useResumeWriting: Boolean)
// INTERNAL MESSAGES
- case class UpdatePendingWrite(remainingWrite: PendingWrite) extends NoSerializationVerificationNeeded
- case class WriteFileFailed(e: IOException)
+ final case class UpdatePendingWrite(remainingWrite: PendingWrite) extends NoSerializationVerificationNeeded
+ final case class WriteFileFailed(e: IOException)
sealed abstract class PendingWrite {
def commander: ActorRef
diff --git a/akka-actor/src/main/scala/akka/io/TcpListener.scala b/akka-actor/src/main/scala/akka/io/TcpListener.scala
index e11b605d2e..fc293411e2 100644
--- a/akka-actor/src/main/scala/akka/io/TcpListener.scala
+++ b/akka-actor/src/main/scala/akka/io/TcpListener.scala
@@ -18,11 +18,11 @@ import akka.dispatch.{ UnboundedMessageQueueSemantics, RequiresMessageQueue }
*/
private[io] object TcpListener {
- case class RegisterIncoming(channel: SocketChannel) extends HasFailureMessage with NoSerializationVerificationNeeded {
+ final case class RegisterIncoming(channel: SocketChannel) extends HasFailureMessage with NoSerializationVerificationNeeded {
def failureMessage = FailedRegisterIncoming(channel)
}
- case class FailedRegisterIncoming(channel: SocketChannel) extends NoSerializationVerificationNeeded
+ final case class FailedRegisterIncoming(channel: SocketChannel) extends NoSerializationVerificationNeeded
}
diff --git a/akka-actor/src/main/scala/akka/io/Udp.scala b/akka-actor/src/main/scala/akka/io/Udp.scala
index c80e162e0c..280ab2ba17 100644
--- a/akka-actor/src/main/scala/akka/io/Udp.scala
+++ b/akka-actor/src/main/scala/akka/io/Udp.scala
@@ -77,7 +77,7 @@ object Udp extends ExtensionId[UdpExt] with ExtensionIdProvider {
* sending using this mechanism is not suitable if replies are expected, use
* [[Bind]] in that case.
*/
- case class Send(payload: ByteString, target: InetSocketAddress, ack: Event) extends Command {
+ final case class Send(payload: ByteString, target: InetSocketAddress, ack: Event) extends Command {
require(ack != null, "ack must be non-null. Use NoAck if you don't want acks.")
def wantsAck: Boolean = !ack.isInstanceOf[NoAck]
@@ -92,9 +92,9 @@ object Udp extends ExtensionId[UdpExt] with ExtensionIdProvider {
* The listener actor for the newly bound port will reply with a [[Bound]]
* message, or the manager will reply with a [[CommandFailed]] message.
*/
- case class Bind(handler: ActorRef,
- localAddress: InetSocketAddress,
- options: immutable.Traversable[SocketOption] = Nil) extends Command
+ final case class Bind(handler: ActorRef,
+ localAddress: InetSocketAddress,
+ options: immutable.Traversable[SocketOption] = Nil) extends Command
/**
* Send this message to the listener actor that previously sent a [[Bound]]
@@ -139,20 +139,20 @@ object Udp extends ExtensionId[UdpExt] with ExtensionIdProvider {
* When a listener actor receives a datagram from its socket it will send
* it to the handler designated in the [[Bind]] message using this message type.
*/
- case class Received(data: ByteString, sender: InetSocketAddress) extends Event
+ final case class Received(data: ByteString, sender: InetSocketAddress) extends Event
/**
* When a command fails it will be replied to with this message type,
* wrapping the failing command object.
*/
- case class CommandFailed(cmd: Command) extends Event
+ final case class CommandFailed(cmd: Command) extends Event
/**
* This message is sent by the listener actor in response to a [[Bind]] command.
* If the address to bind to specified a port number of zero, then this message
* can be inspected to find out which port was automatically assigned.
*/
- case class Bound(localAddress: InetSocketAddress) extends Event
+ final case class Bound(localAddress: InetSocketAddress) extends Event
/**
* The “simple sender” sends this message type in response to a [[SimpleSender]] query.
@@ -179,7 +179,7 @@ object Udp extends ExtensionId[UdpExt] with ExtensionIdProvider {
*
* For more information see [[java.net.DatagramSocket#setBroadcast]]
*/
- case class Broadcast(on: Boolean) extends SocketOption {
+ final case class Broadcast(on: Boolean) extends SocketOption {
override def beforeDatagramBind(s: DatagramSocket): Unit = s.setBroadcast(on)
}
diff --git a/akka-actor/src/main/scala/akka/io/UdpConnected.scala b/akka-actor/src/main/scala/akka/io/UdpConnected.scala
index 8260ac1ad0..54b98b0432 100644
--- a/akka-actor/src/main/scala/akka/io/UdpConnected.scala
+++ b/akka-actor/src/main/scala/akka/io/UdpConnected.scala
@@ -68,7 +68,7 @@ object UdpConnected extends ExtensionId[UdpConnectedExt] with ExtensionIdProvide
* the connection actor will reply with the given object as soon as the datagram
* has been successfully enqueued to the O/S kernel.
*/
- case class Send(payload: ByteString, ack: Any) extends Command {
+ final case class Send(payload: ByteString, ack: Any) extends Command {
require(ack
!= null, "ack must be non-null. Use NoAck if you don't want acks.")
@@ -84,10 +84,10 @@ object UdpConnected extends ExtensionId[UdpConnectedExt] with ExtensionIdProvide
* which is restricted to sending to and receiving from the given `remoteAddress`.
* All received datagrams will be sent to the designated `handler` actor.
*/
- case class Connect(handler: ActorRef,
- remoteAddress: InetSocketAddress,
- localAddress: Option[InetSocketAddress] = None,
- options: immutable.Traversable[SocketOption] = Nil) extends Command
+ final case class Connect(handler: ActorRef,
+ remoteAddress: InetSocketAddress,
+ localAddress: Option[InetSocketAddress] = None,
+ options: immutable.Traversable[SocketOption] = Nil) extends Command
/**
* Send this message to a connection actor (which had previously sent the
@@ -119,13 +119,13 @@ object UdpConnected extends ExtensionId[UdpConnectedExt] with ExtensionIdProvide
* When a connection actor receives a datagram from its socket it will send
* it to the handler designated in the [[Udp.Bind]] message using this message type.
*/
- case class Received(data: ByteString) extends Event
+ final case class Received(data: ByteString) extends Event
/**
* When a command fails it will be replied to with this message type,
* wrapping the failing command object.
*/
- case class CommandFailed(cmd: Command) extends Event
+ final case class CommandFailed(cmd: Command) extends Event
/**
* This message is sent by the connection actor to the actor which sent the
diff --git a/akka-actor/src/main/scala/akka/pattern/AskSupport.scala b/akka-actor/src/main/scala/akka/pattern/AskSupport.scala
index 75fccf240b..3291d9766c 100644
--- a/akka-actor/src/main/scala/akka/pattern/AskSupport.scala
+++ b/akka-actor/src/main/scala/akka/pattern/AskSupport.scala
@@ -322,7 +322,7 @@ private[akka] final class PromiseActorRef private (val provider: ActorRefProvide
private[akka] object PromiseActorRef {
private case object Registering
private case object Stopped
- private case class StoppedWithPath(path: ActorPath)
+ private final case class StoppedWithPath(path: ActorPath)
def apply(provider: ActorRefProvider, timeout: Timeout, targetName: String): PromiseActorRef = {
val result = Promise[Any]()
diff --git a/akka-actor/src/main/scala/akka/routing/ConsistentHashing.scala b/akka-actor/src/main/scala/akka/routing/ConsistentHashing.scala
index be8c23132d..e55d4c9912 100644
--- a/akka-actor/src/main/scala/akka/routing/ConsistentHashing.scala
+++ b/akka-actor/src/main/scala/akka/routing/ConsistentHashing.scala
@@ -414,7 +414,7 @@ final case class ConsistentHashingGroup(
* isn't a good representation, because LocalActorRef doesn't include the
* host and port.
*/
-private[akka] case class ConsistentRoutee(routee: Routee, selfAddress: Address) {
+private[akka] final case class ConsistentRoutee(routee: Routee, selfAddress: Address) {
override def toString: String = routee match {
case ActorRefRoutee(ref) ⇒ toStringWithfullAddress(ref.path)
@@ -481,7 +481,7 @@ private[akka] case class ConsistentRoutee(routee: Routee, selfAddress: Address)
*/
@SerialVersionUID(1L)
@deprecated("Use ConsistentHashingPool or ConsistentHashingGroup", "2.3")
-case class ConsistentHashingRouter(
+final case class ConsistentHashingRouter(
nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy,
@@ -561,7 +561,7 @@ case class ConsistentHashingRouter(
* host and port.
*/
@deprecated("Replaced by ConsistentRoutee", "2.3")
-private[akka] case class ConsistentActorRef(actorRef: ActorRef, selfAddress: Address) {
+private[akka] final case class ConsistentActorRef(actorRef: ActorRef, selfAddress: Address) {
override def toString: String = {
actorRef.path.address match {
case Address(_, _, None, None) ⇒ actorRef.path.toStringWithAddress(selfAddress)
diff --git a/akka-actor/src/main/scala/akka/routing/DeprecatedRouting.scala b/akka-actor/src/main/scala/akka/routing/DeprecatedRouting.scala
index 94e949605a..9250e1678e 100644
--- a/akka-actor/src/main/scala/akka/routing/DeprecatedRouting.scala
+++ b/akka-actor/src/main/scala/akka/routing/DeprecatedRouting.scala
@@ -42,7 +42,7 @@ import akka.dispatch.{ MailboxType, MessageDispatcher }
*/
@deprecated("Use GetRoutees", "2.3")
@SerialVersionUID(1L)
-case class RouterRoutees(routees: immutable.IndexedSeq[ActorRef]) {
+final case class RouterRoutees(routees: immutable.IndexedSeq[ActorRef]) {
/**
* Java API
*/
@@ -99,9 +99,9 @@ object RoundRobinRouter {
*/
@SerialVersionUID(1L)
@deprecated("Use RoundRobinPool or RoundRobinGroup", "2.3")
-case class RoundRobinRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
- val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
- val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
+final case class RoundRobinRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
+ val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
+ val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
extends DeprecatedRouterConfig with PoolOverrideUnsetConfig[RoundRobinRouter] {
/**
@@ -193,9 +193,9 @@ object RandomRouter {
*/
@SerialVersionUID(1L)
@deprecated("Use RandomPool or RandomGroup", "2.3")
-case class RandomRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
- val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
- val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
+final case class RandomRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
+ val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
+ val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
extends DeprecatedRouterConfig with PoolOverrideUnsetConfig[RandomRouter] {
/**
@@ -297,9 +297,9 @@ object SmallestMailboxRouter {
*/
@SerialVersionUID(1L)
@deprecated("Use SmallestMailboxPool", "2.3")
-case class SmallestMailboxRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
- val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
- val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
+final case class SmallestMailboxRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
+ val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
+ val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
extends DeprecatedRouterConfig with PoolOverrideUnsetConfig[SmallestMailboxRouter] {
/**
@@ -391,9 +391,9 @@ object BroadcastRouter {
*/
@SerialVersionUID(1L)
@deprecated("Use BroadcastPool or BroadcastGroup", "2.3")
-case class BroadcastRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
- val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
- val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
+final case class BroadcastRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, override val resizer: Option[Resizer] = None,
+ val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
+ val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
extends DeprecatedRouterConfig with PoolOverrideUnsetConfig[BroadcastRouter] {
/**
@@ -488,10 +488,10 @@ object ScatterGatherFirstCompletedRouter {
*/
@SerialVersionUID(1L)
@deprecated("Use ScatterGatherFirstCompletedPool or ScatterGatherFirstCompletedGroup", "2.3")
-case class ScatterGatherFirstCompletedRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, within: FiniteDuration,
- override val resizer: Option[Resizer] = None,
- val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
- val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
+final case class ScatterGatherFirstCompletedRouter(nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil, within: FiniteDuration,
+ override val resizer: Option[Resizer] = None,
+ val routerDispatcher: String = Dispatchers.DefaultDispatcherId,
+ val supervisorStrategy: SupervisorStrategy = Pool.defaultSupervisorStrategy)
extends DeprecatedRouterConfig with PoolOverrideUnsetConfig[ScatterGatherFirstCompletedRouter] {
if (within <= Duration.Zero) throw new IllegalArgumentException(
diff --git a/akka-actor/src/main/scala/akka/routing/Listeners.scala b/akka-actor/src/main/scala/akka/routing/Listeners.scala
index a77eac3727..77d2c10cde 100644
--- a/akka-actor/src/main/scala/akka/routing/Listeners.scala
+++ b/akka-actor/src/main/scala/akka/routing/Listeners.scala
@@ -8,9 +8,9 @@ import akka.actor.{ Actor, ActorRef }
import java.util.{ Set, TreeSet }
sealed trait ListenerMessage
-case class Listen(listener: ActorRef) extends ListenerMessage
-case class Deafen(listener: ActorRef) extends ListenerMessage
-case class WithListeners(f: (ActorRef) ⇒ Unit) extends ListenerMessage
+final case class Listen(listener: ActorRef) extends ListenerMessage
+final case class Deafen(listener: ActorRef) extends ListenerMessage
+final case class WithListeners(f: (ActorRef) ⇒ Unit) extends ListenerMessage
/**
* Listeners is a generic trait to implement listening capability on an Actor.
diff --git a/akka-actor/src/main/scala/akka/routing/Resizer.scala b/akka-actor/src/main/scala/akka/routing/Resizer.scala
index bfad48a107..54a505e6c0 100644
--- a/akka-actor/src/main/scala/akka/routing/Resizer.scala
+++ b/akka-actor/src/main/scala/akka/routing/Resizer.scala
@@ -24,6 +24,7 @@ import akka.actor.Props
import akka.actor.SupervisorStrategy
import akka.dispatch.Envelope
import akka.dispatch.MessageDispatcher
+import java.lang.{ Double ⇒ JDouble }
/**
* [[Pool]] routers with dynamically resizable number of routees are implemented by providing a Resizer
@@ -86,12 +87,12 @@ case class DefaultResizer(
/**
* The fewest number of routees the router should ever have.
*/
- lowerBound: Int = 1,
+ val lowerBound: Int = 1,
/**
* The most number of routees the router should ever have.
* Must be greater than or equal to `lowerBound`.
*/
- upperBound: Int = 10,
+ val upperBound: Int = 10,
/**
* Threshold to evaluate if routee is considered to be busy (under pressure).
* Implementation depends on this value (default is 1).
@@ -104,13 +105,13 @@ case class DefaultResizer(
* default UnboundedMailbox is O(N) operation.
*
*/
- pressureThreshold: Int = 1,
+ val pressureThreshold: Int = 1,
/**
* Percentage to increase capacity whenever all routees are busy.
* For example, 0.2 would increase 20% (rounded up), i.e. if current
* capacity is 6 it will request an increase of 2 more routees.
*/
- rampupRate: Double = 0.2,
+ val rampupRate: Double = 0.2,
/**
* Minimum fraction of busy routees before backing off.
* For example, if this is 0.3, then we'll remove some routees only when
@@ -120,19 +121,19 @@ case class DefaultResizer(
*
* Use 0.0 or negative to avoid removal of routees.
*/
- backoffThreshold: Double = 0.3,
+ val backoffThreshold: Double = 0.3,
/**
* Fraction of routees to be removed when the resizer reaches the
* backoffThreshold.
* For example, 0.1 would decrease 10% (rounded up), i.e. if current
* capacity is 9 it will request an decrease of 1 routee.
*/
- backoffRate: Double = 0.1,
+ val backoffRate: Double = 0.1,
/**
* Number of messages between resize operation.
* Use 1 to resize before each message.
*/
- messagesPerResize: Int = 10) extends Resizer {
+ val messagesPerResize: Int = 10) extends Resizer {
/**
* Java API constructor for default values except bounds.
@@ -240,7 +241,6 @@ case class DefaultResizer(
if (backoffThreshold > 0.0 && backoffRate > 0.0 && capacity > 0 && pressure.toDouble / capacity < backoffThreshold)
math.floor(-1.0 * backoffRate * capacity).toInt
else 0
-
}
/**
diff --git a/akka-actor/src/main/scala/akka/routing/Router.scala b/akka-actor/src/main/scala/akka/routing/Router.scala
index 06b14cc16a..d9431ab293 100644
--- a/akka-actor/src/main/scala/akka/routing/Router.scala
+++ b/akka-actor/src/main/scala/akka/routing/Router.scala
@@ -40,7 +40,7 @@ trait Routee {
/**
* [[Routee]] that sends the messages to an [[akka.actor.ActorRef]].
*/
-case class ActorRefRoutee(ref: ActorRef) extends Routee {
+final case class ActorRefRoutee(ref: ActorRef) extends Routee {
override def send(message: Any, sender: ActorRef): Unit =
ref.tell(message, sender)
}
@@ -48,7 +48,7 @@ case class ActorRefRoutee(ref: ActorRef) extends Routee {
/**
* [[Routee]] that sends the messages to an [[akka.actor.ActorSelection]].
*/
-case class ActorSelectionRoutee(selection: ActorSelection) extends Routee {
+final case class ActorSelectionRoutee(selection: ActorSelection) extends Routee {
override def send(message: Any, sender: ActorRef): Unit =
selection.tell(message, sender)
}
@@ -65,7 +65,7 @@ object NoRoutee extends Routee {
/**
* [[Routee]] that sends each message to all `routees`.
*/
-case class SeveralRoutees(routees: immutable.IndexedSeq[Routee]) extends Routee {
+final case class SeveralRoutees(routees: immutable.IndexedSeq[Routee]) extends Routee {
/**
* Java API
@@ -175,7 +175,7 @@ final case class Router(val logic: RoutingLogic, val routees: immutable.IndexedS
* envelope will be stripped off.
*/
@SerialVersionUID(1L)
-case class Broadcast(message: Any) extends RouterEnvelope
+final case class Broadcast(message: Any) extends RouterEnvelope
/**
* Only the contained message will be forwarded to the
diff --git a/akka-actor/src/main/scala/akka/routing/RouterConfig.scala b/akka-actor/src/main/scala/akka/routing/RouterConfig.scala
index b4935de954..ae6895d77e 100644
--- a/akka-actor/src/main/scala/akka/routing/RouterConfig.scala
+++ b/akka-actor/src/main/scala/akka/routing/RouterConfig.scala
@@ -376,7 +376,7 @@ case object NoRouter extends NoRouter {
* Message used to carry information about what routees the router is currently using.
*/
@SerialVersionUID(1L)
-case class Routees(routees: immutable.IndexedSeq[Routee]) {
+final case class Routees(routees: immutable.IndexedSeq[Routee]) {
/**
* Java API
*/
@@ -391,7 +391,7 @@ case class Routees(routees: immutable.IndexedSeq[Routee]) {
* It may be handled after other messages.
*/
@SerialVersionUID(1L)
-case class AddRoutee(routee: Routee) extends RouterManagementMesssage
+final case class AddRoutee(routee: Routee) extends RouterManagementMesssage
/**
* Remove a specific routee by sending this message to the router.
@@ -403,7 +403,7 @@ case class AddRoutee(routee: Routee) extends RouterManagementMesssage
*
*/
@SerialVersionUID(1L)
-case class RemoveRoutee(routee: Routee) extends RouterManagementMesssage
+final case class RemoveRoutee(routee: Routee) extends RouterManagementMesssage
/**
* Increase or decrease the number of routees in a [[Pool]].
@@ -417,4 +417,4 @@ case class RemoveRoutee(routee: Routee) extends RouterManagementMesssage
* lost.
*/
@SerialVersionUID(1L)
-case class AdjustPoolSize(change: Int) extends RouterManagementMesssage
+final case class AdjustPoolSize(change: Int) extends RouterManagementMesssage
diff --git a/akka-actor/src/main/scala/akka/routing/ScatterGatherFirstCompleted.scala b/akka-actor/src/main/scala/akka/routing/ScatterGatherFirstCompleted.scala
index 3f5877a504..fb5dbcd41d 100644
--- a/akka-actor/src/main/scala/akka/routing/ScatterGatherFirstCompleted.scala
+++ b/akka-actor/src/main/scala/akka/routing/ScatterGatherFirstCompleted.scala
@@ -39,7 +39,7 @@ final case class ScatterGatherFirstCompletedRoutingLogic(within: FiniteDuration)
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class ScatterGatherFirstCompletedRoutees(
+private[akka] final case class ScatterGatherFirstCompletedRoutees(
routees: immutable.IndexedSeq[Routee], within: FiniteDuration) extends Routee {
override def send(message: Any, sender: ActorRef): Unit = {
diff --git a/akka-actor/src/main/scala/akka/serialization/Serialization.scala b/akka-actor/src/main/scala/akka/serialization/Serialization.scala
index ce5bc8dd42..15858aa236 100644
--- a/akka-actor/src/main/scala/akka/serialization/Serialization.scala
+++ b/akka-actor/src/main/scala/akka/serialization/Serialization.scala
@@ -42,7 +42,7 @@ object Serialization {
* Serialization information needed for serializing local actor refs.
* INTERNAL API
*/
- private[akka] case class Information(address: Address, system: ActorSystem)
+ private[akka] final case class Information(address: Address, system: ActorSystem)
/**
* The serialized path of an actorRef, based on the current transport serialization information.
diff --git a/akka-actor/src/main/scala/akka/util/WildcardTree.scala b/akka-actor/src/main/scala/akka/util/WildcardTree.scala
index 054de1b8d7..5fb088bc45 100644
--- a/akka-actor/src/main/scala/akka/util/WildcardTree.scala
+++ b/akka-actor/src/main/scala/akka/util/WildcardTree.scala
@@ -11,7 +11,7 @@ private[akka] object WildcardTree {
private val empty = new WildcardTree[Nothing]()
def apply[T](): WildcardTree[T] = empty.asInstanceOf[WildcardTree[T]]
}
-private[akka] case class WildcardTree[T](data: Option[T] = None, children: Map[String, WildcardTree[T]] = HashMap[String, WildcardTree[T]]()) {
+private[akka] final case class WildcardTree[T](data: Option[T] = None, children: Map[String, WildcardTree[T]] = HashMap[String, WildcardTree[T]]()) {
def insert(elems: Iterator[String], d: T): WildcardTree[T] =
if (!elems.hasNext) {
diff --git a/akka-camel/src/main/scala/akka/camel/Producer.scala b/akka-camel/src/main/scala/akka/camel/Producer.scala
index b3ea83eb3c..cedeb6247c 100644
--- a/akka-camel/src/main/scala/akka/camel/Producer.scala
+++ b/akka-camel/src/main/scala/akka/camel/Producer.scala
@@ -158,12 +158,12 @@ trait Producer extends ProducerSupport { this: Actor ⇒
/**
* INTERNAL API
*/
-private case class MessageResult(message: CamelMessage) extends NoSerializationVerificationNeeded
+private final case class MessageResult(message: CamelMessage) extends NoSerializationVerificationNeeded
/**
* INTERNAL API
*/
-private case class FailureResult(cause: Throwable, headers: Map[String, Any] = Map.empty) extends NoSerializationVerificationNeeded
+private final case class FailureResult(cause: Throwable, headers: Map[String, Any] = Map.empty) extends NoSerializationVerificationNeeded
/**
* A one-way producer.
diff --git a/akka-camel/src/main/scala/akka/camel/internal/ActivationTracker.scala b/akka-camel/src/main/scala/akka/camel/internal/ActivationTracker.scala
index 24d6e7d1e9..6ceb85ede3 100644
--- a/akka-camel/src/main/scala/akka/camel/internal/ActivationTracker.scala
+++ b/akka-camel/src/main/scala/akka/camel/internal/ActivationTracker.scala
@@ -113,11 +113,11 @@ private[camel] class ActivationTracker extends Actor with ActorLogging {
* A request message to the ActivationTracker for the status of activation.
* @param ref the actorRef
*/
-private[camel] case class AwaitActivation(ref: ActorRef) extends ActivationMessage(ref)
+private[camel] final case class AwaitActivation(ref: ActorRef) extends ActivationMessage(ref)
/**
* INTERNAL API
* A request message to the ActivationTracker for the status of de-activation.
* @param ref the actorRef
*/
-private[camel] case class AwaitDeActivation(ref: ActorRef) extends ActivationMessage(ref)
+private[camel] final case class AwaitDeActivation(ref: ActorRef) extends ActivationMessage(ref)
diff --git a/akka-camel/src/main/scala/akka/camel/internal/CamelSupervisor.scala b/akka-camel/src/main/scala/akka/camel/internal/CamelSupervisor.scala
index e2e3f01960..1b832a18f1 100644
--- a/akka-camel/src/main/scala/akka/camel/internal/CamelSupervisor.scala
+++ b/akka-camel/src/main/scala/akka/camel/internal/CamelSupervisor.scala
@@ -49,27 +49,27 @@ private[camel] object CamelSupervisor {
* INTERNAL API
* Registers a consumer or a producer.
*/
- case class Register(actorRef: ActorRef, endpointUri: String, config: Option[ConsumerConfig] = None) extends NoSerializationVerificationNeeded
+ final case class Register(actorRef: ActorRef, endpointUri: String, config: Option[ConsumerConfig] = None) extends NoSerializationVerificationNeeded
/**
* INTERNAL API
* De-registers a producer or a consumer.
*/
@SerialVersionUID(1L)
- case class DeRegister(actorRef: ActorRef) extends CamelSupervisorMessage
+ final case class DeRegister(actorRef: ActorRef) extends CamelSupervisorMessage
/**
* INTERNAL API
* Adds a watch for the actor
*/
@SerialVersionUID(1L)
- case class AddWatch(actorRef: ActorRef) extends CamelSupervisorMessage
+ final case class AddWatch(actorRef: ActorRef) extends CamelSupervisorMessage
/**
* INTERNAL API
* Provides a Producer with the required camel objects to function.
*/
- case class CamelProducerObjects(endpoint: Endpoint, processor: SendProcessor) extends NoSerializationVerificationNeeded
+ final case class CamelProducerObjects(endpoint: Endpoint, processor: SendProcessor) extends NoSerializationVerificationNeeded
}
/**
diff --git a/akka-camel/src/test/scala/akka/camel/ConcurrentActivationTest.scala b/akka-camel/src/test/scala/akka/camel/ConcurrentActivationTest.scala
index 00ae2bf0a5..5648862c95 100644
--- a/akka-camel/src/test/scala/akka/camel/ConcurrentActivationTest.scala
+++ b/akka-camel/src/test/scala/akka/camel/ConcurrentActivationTest.scala
@@ -103,11 +103,11 @@ class ConsumerBroadcast(promise: Promise[(Future[List[List[ActorRef]]], Future[L
}
}
-case class CreateRegistrars(number: Int)
-case class RegisterConsumersAndProducers(endpointUri: String)
-case class DeRegisterConsumersAndProducers()
-case class Activations()
-case class DeActivations()
+final case class CreateRegistrars(number: Int)
+final case class RegisterConsumersAndProducers(endpointUri: String)
+final case class DeRegisterConsumersAndProducers()
+final case class Activations()
+final case class DeActivations()
class Registrar(val start: Int, val number: Int, activationsPromise: Promise[List[ActorRef]],
deActivationsPromise: Promise[List[ActorRef]]) extends Actor with ActorLogging {
diff --git a/akka-cluster/src/main/scala/akka/cluster/AutoDown.scala b/akka-cluster/src/main/scala/akka/cluster/AutoDown.scala
index deaf0c1b1a..83e7658b45 100644
--- a/akka-cluster/src/main/scala/akka/cluster/AutoDown.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/AutoDown.scala
@@ -20,7 +20,7 @@ private[cluster] object AutoDown {
def props(autoDownUnreachableAfter: FiniteDuration): Props =
Props(classOf[AutoDown], autoDownUnreachableAfter)
- case class UnreachableTimeout(node: UniqueAddress)
+ final case class UnreachableTimeout(node: UniqueAddress)
}
/**
diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala
index be5057f697..d2b91e3f12 100644
--- a/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala
@@ -35,19 +35,19 @@ private[cluster] object ClusterUserAction {
* Join will be sent to the other node.
*/
@SerialVersionUID(1L)
- case class JoinTo(address: Address)
+ final case class JoinTo(address: Address)
/**
* Command to leave the cluster.
*/
@SerialVersionUID(1L)
- case class Leave(address: Address) extends ClusterMessage
+ final case class Leave(address: Address) extends ClusterMessage
/**
* Command to mark node as temporary down.
*/
@SerialVersionUID(1L)
- case class Down(address: Address) extends ClusterMessage
+ final case class Down(address: Address) extends ClusterMessage
}
@@ -61,20 +61,20 @@ private[cluster] object InternalClusterAction {
* @param node the node that wants to join the cluster
*/
@SerialVersionUID(1L)
- case class Join(node: UniqueAddress, roles: Set[String]) extends ClusterMessage
+ final case class Join(node: UniqueAddress, roles: Set[String]) extends ClusterMessage
/**
* Reply to Join
* @param from the sender node in the cluster, i.e. the node that received the Join command
*/
@SerialVersionUID(1L)
- case class Welcome(from: UniqueAddress, gossip: Gossip) extends ClusterMessage
+ final case class Welcome(from: UniqueAddress, gossip: Gossip) extends ClusterMessage
/**
* Command to initiate the process to join the specified
* seed nodes.
*/
- case class JoinSeedNodes(seedNodes: immutable.IndexedSeq[Address])
+ final case class JoinSeedNodes(seedNodes: immutable.IndexedSeq[Address])
/**
* Start message of the process to join one of the seed nodes.
@@ -96,13 +96,13 @@ private[cluster] object InternalClusterAction {
* @see JoinSeedNode
*/
@SerialVersionUID(1L)
- case class InitJoinAck(address: Address) extends ClusterMessage
+ final case class InitJoinAck(address: Address) extends ClusterMessage
/**
* @see JoinSeedNode
*/
@SerialVersionUID(1L)
- case class InitJoinNack(address: Address) extends ClusterMessage
+ final case class InitJoinNack(address: Address) extends ClusterMessage
/**
* Marker interface for periodic tick messages
@@ -121,30 +121,30 @@ private[cluster] object InternalClusterAction {
case object PublishStatsTick extends Tick
- case class SendGossipTo(address: Address)
+ final case class SendGossipTo(address: Address)
case object GetClusterCoreRef
- case class PublisherCreated(publisher: ActorRef)
+ final case class PublisherCreated(publisher: ActorRef)
/**
* Comand to [[akka.cluster.ClusterDaemon]] to create a
* [[akka.cluster.OnMemberUpListener]].
*/
- case class AddOnMemberUpListener(callback: Runnable) extends NoSerializationVerificationNeeded
+ final case class AddOnMemberUpListener(callback: Runnable) extends NoSerializationVerificationNeeded
sealed trait SubscriptionMessage
- case class Subscribe(subscriber: ActorRef, initialStateMode: SubscriptionInitialStateMode, to: Set[Class[_]]) extends SubscriptionMessage
- case class Unsubscribe(subscriber: ActorRef, to: Option[Class[_]]) extends SubscriptionMessage
+ final case class Subscribe(subscriber: ActorRef, initialStateMode: SubscriptionInitialStateMode, to: Set[Class[_]]) extends SubscriptionMessage
+ final case class Unsubscribe(subscriber: ActorRef, to: Option[Class[_]]) extends SubscriptionMessage
/**
* @param receiver if `receiver` is defined the event will only be sent to that
* actor, otherwise it will be sent to all subscribers via the `eventStream`.
*/
- case class PublishCurrentClusterState(receiver: Option[ActorRef]) extends SubscriptionMessage
+ final case class PublishCurrentClusterState(receiver: Option[ActorRef]) extends SubscriptionMessage
sealed trait PublishMessage
- case class PublishChanges(newGossip: Gossip) extends PublishMessage
- case class PublishEvent(event: ClusterDomainEvent) extends PublishMessage
+ final case class PublishChanges(newGossip: Gossip) extends PublishMessage
+ final case class PublishEvent(event: ClusterDomainEvent) extends PublishMessage
}
/**
@@ -1134,7 +1134,7 @@ private[cluster] class OnMemberUpListener(callback: Runnable) extends Actor with
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[cluster] case class GossipStats(
+private[cluster] final case class GossipStats(
receivedGossipCount: Long = 0L,
mergeCount: Long = 0L,
sameCount: Long = 0L,
@@ -1177,7 +1177,7 @@ private[cluster] case class GossipStats(
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[cluster] case class VectorClockStats(
+private[cluster] final case class VectorClockStats(
versionSize: Int = 0,
seenLatest: Int = 0)
diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterEvent.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterEvent.scala
index a8a636f037..f90261a65a 100644
--- a/akka-cluster/src/main/scala/akka/cluster/ClusterEvent.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/ClusterEvent.scala
@@ -53,7 +53,7 @@ object ClusterEvent {
/**
* Current snapshot state of the cluster. Sent to new subscriber.
*/
- case class CurrentClusterState(
+ final case class CurrentClusterState(
members: immutable.SortedSet[Member] = immutable.SortedSet.empty,
unreachable: Set[Member] = Set.empty,
seenBy: Set[Address] = Set.empty,
@@ -122,7 +122,7 @@ object ClusterEvent {
/**
* Member status changed to Up.
*/
- case class MemberUp(member: Member) extends MemberEvent {
+ final case class MemberUp(member: Member) extends MemberEvent {
if (member.status != Up) throw new IllegalArgumentException("Expected Up status, got: " + member)
}
@@ -130,7 +130,7 @@ object ClusterEvent {
* Member status changed to [[MemberStatus.Exiting]] and will be removed
* when all members have seen the `Exiting` status.
*/
- case class MemberExited(member: Member) extends MemberEvent {
+ final case class MemberExited(member: Member) extends MemberEvent {
if (member.status != Exiting) throw new IllegalArgumentException("Expected Exiting status, got: " + member)
}
@@ -141,7 +141,7 @@ object ClusterEvent {
* When `previousStatus` is `MemberStatus.Exiting` the node was removed
* after graceful leaving and exiting.
*/
- case class MemberRemoved(member: Member, previousStatus: MemberStatus) extends MemberEvent {
+ final case class MemberRemoved(member: Member, previousStatus: MemberStatus) extends MemberEvent {
if (member.status != Removed) throw new IllegalArgumentException("Expected Removed status, got: " + member)
}
@@ -149,7 +149,7 @@ object ClusterEvent {
* Leader of the cluster members changed. Published when the state change
* is first seen on a node.
*/
- case class LeaderChanged(leader: Option[Address]) extends ClusterDomainEvent {
+ final case class LeaderChanged(leader: Option[Address]) extends ClusterDomainEvent {
/**
* Java API
* @return address of current leader, or null if none
@@ -161,7 +161,7 @@ object ClusterEvent {
* First member (leader) of the members within a role set changed.
* Published when the state change is first seen on a node.
*/
- case class RoleLeaderChanged(role: String, leader: Option[Address]) extends ClusterDomainEvent {
+ final case class RoleLeaderChanged(role: String, leader: Option[Address]) extends ClusterDomainEvent {
/**
* Java API
* @return address of current leader, or null if none
@@ -178,19 +178,19 @@ object ClusterEvent {
/**
* A member is considered as unreachable by the failure detector.
*/
- case class UnreachableMember(member: Member) extends ReachabilityEvent
+ final case class UnreachableMember(member: Member) extends ReachabilityEvent
/**
* A member is considered as reachable by the failure detector
* after having been unreachable.
* @see [[UnreachableMember]]
*/
- case class ReachableMember(member: Member) extends ReachabilityEvent
+ final case class ReachableMember(member: Member) extends ReachabilityEvent
/**
* Current snapshot of cluster node metrics. Published to subscribers.
*/
- case class ClusterMetricsChanged(nodeMetrics: Set[NodeMetrics]) extends ClusterDomainEvent {
+ final case class ClusterMetricsChanged(nodeMetrics: Set[NodeMetrics]) extends ClusterDomainEvent {
/**
* Java API
*/
@@ -202,17 +202,17 @@ object ClusterEvent {
* INTERNAL API
* The nodes that have seen current version of the Gossip.
*/
- private[cluster] case class SeenChanged(convergence: Boolean, seenBy: Set[Address]) extends ClusterDomainEvent
+ private[cluster] final case class SeenChanged(convergence: Boolean, seenBy: Set[Address]) extends ClusterDomainEvent
/**
* INTERNAL API
*/
- private[cluster] case class ReachabilityChanged(reachability: Reachability) extends ClusterDomainEvent
+ private[cluster] final case class ReachabilityChanged(reachability: Reachability) extends ClusterDomainEvent
/**
* INTERNAL API
*/
- private[cluster] case class CurrentInternalStats(
+ private[cluster] final case class CurrentInternalStats(
gossipStats: GossipStats,
vclockStats: VectorClockStats) extends ClusterDomainEvent
diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterHeartbeat.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterHeartbeat.scala
index 9fdfc819d1..8c4daddd63 100644
--- a/akka-cluster/src/main/scala/akka/cluster/ClusterHeartbeat.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/ClusterHeartbeat.scala
@@ -34,16 +34,16 @@ private[cluster] object ClusterHeartbeatSender {
/**
* Sent at regular intervals for failure detection.
*/
- case class Heartbeat(from: Address) extends ClusterMessage
+ final case class Heartbeat(from: Address) extends ClusterMessage
/**
* Sent as reply to [[Heartbeat]] messages.
*/
- case class HeartbeatRsp(from: UniqueAddress) extends ClusterMessage
+ final case class HeartbeatRsp(from: UniqueAddress) extends ClusterMessage
// sent to self only
case object HeartbeatTick
- case class ExpectedFirstHeartbeat(from: UniqueAddress)
+ final case class ExpectedFirstHeartbeat(from: UniqueAddress)
}
@@ -164,7 +164,7 @@ private[cluster] final class ClusterHeartbeatSender extends Actor with ActorLogg
* State of [[ClusterHeartbeatSender]]. Encapsulated to facilitate unit testing.
* It is immutable, but it updates the failureDetector.
*/
-private[cluster] case class ClusterHeartbeatSenderState(
+private[cluster] final case class ClusterHeartbeatSenderState(
ring: HeartbeatNodeRing,
unreachable: Set[UniqueAddress],
failureDetector: FailureDetectorRegistry[Address]) {
@@ -224,7 +224,7 @@ private[cluster] case class ClusterHeartbeatSenderState(
*
* It is immutable, i.e. the methods return new instances.
*/
-private[cluster] case class HeartbeatNodeRing(selfAddress: UniqueAddress, nodes: Set[UniqueAddress], monitoredByNrOfMembers: Int) {
+private[cluster] final case class HeartbeatNodeRing(selfAddress: UniqueAddress, nodes: Set[UniqueAddress], monitoredByNrOfMembers: Int) {
require(nodes contains selfAddress, s"nodes [${nodes.mkString(", ")}] must contain selfAddress [${selfAddress}]")
diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
index db601b14b2..3cc10bc815 100644
--- a/akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
@@ -184,7 +184,7 @@ private[cluster] object MetricsGossip {
* @param nodes metrics per node
*/
@SerialVersionUID(1L)
-private[cluster] case class MetricsGossip(nodes: Set[NodeMetrics]) {
+private[cluster] final case class MetricsGossip(nodes: Set[NodeMetrics]) {
/**
* Removes nodes if their correlating node ring members are not [[akka.cluster.MemberStatus.Up]]
@@ -224,7 +224,7 @@ private[cluster] case class MetricsGossip(nodes: Set[NodeMetrics]) {
* Envelope adding a sender address to the gossip.
*/
@SerialVersionUID(1L)
-private[cluster] case class MetricsGossipEnvelope(from: Address, gossip: MetricsGossip, reply: Boolean)
+private[cluster] final case class MetricsGossipEnvelope(from: Address, gossip: MetricsGossip, reply: Boolean)
extends ClusterMessage
private[cluster] object EWMA {
@@ -272,7 +272,7 @@ private[cluster] object EWMA {
*
*/
@SerialVersionUID(1L)
-private[cluster] case class EWMA(value: Double, alpha: Double) {
+private[cluster] final case class EWMA(value: Double, alpha: Double) {
require(0.0 <= alpha && alpha <= 1.0, "alpha must be between 0.0 and 1.0")
@@ -302,7 +302,7 @@ private[cluster] case class EWMA(value: Double, alpha: Double) {
* averages (e.g. system load average) or finite (e.g. as number of processors), are not trended.
*/
@SerialVersionUID(1L)
-case class Metric private[cluster] (name: String, value: Number, private[cluster] val average: Option[EWMA])
+final case class Metric private[cluster] (name: String, value: Number, private[cluster] val average: Option[EWMA])
extends MetricNumericConverter {
require(defined(value), s"Invalid Metric [$name] value [$value]")
@@ -385,7 +385,7 @@ object Metric extends MetricNumericConverter {
* @param metrics the set of sampled [[akka.actor.Metric]]
*/
@SerialVersionUID(1L)
-case class NodeMetrics(address: Address, timestamp: Long, metrics: Set[Metric] = Set.empty[Metric]) {
+final case class NodeMetrics(address: Address, timestamp: Long, metrics: Set[Metric] = Set.empty[Metric]) {
/**
* Returns the most recent data.
@@ -481,7 +481,7 @@ object StandardMetrics {
* Can be undefined on some OS.
*/
@SerialVersionUID(1L)
- case class HeapMemory(address: Address, timestamp: Long, used: Long, committed: Long, max: Option[Long]) {
+ final case class HeapMemory(address: Address, timestamp: Long, used: Long, committed: Long, max: Option[Long]) {
require(committed > 0L, "committed heap expected to be > 0 bytes")
require(max.isEmpty || max.get > 0L, "max heap expected to be > 0 bytes")
}
@@ -525,7 +525,7 @@ object StandardMetrics {
* @param processors the number of available processors
*/
@SerialVersionUID(1L)
- case class Cpu(
+ final case class Cpu(
address: Address,
timestamp: Long,
systemLoadAverage: Option[Double],
diff --git a/akka-cluster/src/main/scala/akka/cluster/Gossip.scala b/akka-cluster/src/main/scala/akka/cluster/Gossip.scala
index e0258cac32..d5054f3978 100644
--- a/akka-cluster/src/main/scala/akka/cluster/Gossip.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/Gossip.scala
@@ -60,7 +60,7 @@ private[cluster] object Gossip {
* removed node telling it to shut itself down.
*/
@SerialVersionUID(1L)
-private[cluster] case class Gossip(
+private[cluster] final case class Gossip(
members: immutable.SortedSet[Member], // sorted set of members with their status, sorted by address
overview: GossipOverview = GossipOverview(),
version: VectorClock = VectorClock()) { // vector clock version
@@ -212,7 +212,7 @@ private[cluster] case class Gossip(
* Represents the overview of the cluster, holds the cluster convergence table and set with unreachable nodes.
*/
@SerialVersionUID(1L)
-private[cluster] case class GossipOverview(
+private[cluster] final case class GossipOverview(
seen: Set[UniqueAddress] = Set.empty,
reachability: Reachability = Reachability.empty) {
@@ -275,4 +275,4 @@ private[cluster] class GossipEnvelope private (
* it replies with its `GossipStatus`. Same versions ends the chat immediately.
*/
@SerialVersionUID(1L)
-private[cluster] case class GossipStatus(from: UniqueAddress, version: VectorClock) extends ClusterMessage
+private[cluster] final case class GossipStatus(from: UniqueAddress, version: VectorClock) extends ClusterMessage
diff --git a/akka-cluster/src/main/scala/akka/cluster/Member.scala b/akka-cluster/src/main/scala/akka/cluster/Member.scala
index ff5cbd194b..5bc0d0cae3 100644
--- a/akka-cluster/src/main/scala/akka/cluster/Member.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/Member.scala
@@ -219,7 +219,7 @@ object MemberStatus {
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[cluster] case class UniqueAddress(address: Address, uid: Int) extends Ordered[UniqueAddress] {
+private[cluster] final case class UniqueAddress(address: Address, uid: Int) extends Ordered[UniqueAddress] {
override def hashCode = uid
def compare(that: UniqueAddress): Int = {
diff --git a/akka-cluster/src/main/scala/akka/cluster/Reachability.scala b/akka-cluster/src/main/scala/akka/cluster/Reachability.scala
index fb77c5a033..64211f488a 100644
--- a/akka-cluster/src/main/scala/akka/cluster/Reachability.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/Reachability.scala
@@ -23,7 +23,7 @@ private[cluster] object Reachability {
}
@SerialVersionUID(1L)
- case class Record(observer: UniqueAddress, subject: UniqueAddress, status: ReachabilityStatus, version: Long)
+ final case class Record(observer: UniqueAddress, subject: UniqueAddress, status: ReachabilityStatus, version: Long)
sealed trait ReachabilityStatus
@SerialVersionUID(1L) case object Reachable extends ReachabilityStatus
diff --git a/akka-cluster/src/main/scala/akka/cluster/VectorClock.scala b/akka-cluster/src/main/scala/akka/cluster/VectorClock.scala
index 75cc4329cf..b4145b227b 100644
--- a/akka-cluster/src/main/scala/akka/cluster/VectorClock.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/VectorClock.scala
@@ -70,7 +70,7 @@ private[cluster] object VectorClock {
* Based on code from the 'vlock' VectorClock library by Coda Hale.
*/
@SerialVersionUID(1L)
-case class VectorClock(
+final case class VectorClock(
versions: TreeMap[VectorClock.Node, Long] = TreeMap.empty[VectorClock.Node, Long]) {
import VectorClock._
diff --git a/akka-cluster/src/main/scala/akka/cluster/routing/AdaptiveLoadBalancing.scala b/akka-cluster/src/main/scala/akka/cluster/routing/AdaptiveLoadBalancing.scala
index 50e39290c1..9bff4aaaaf 100644
--- a/akka-cluster/src/main/scala/akka/cluster/routing/AdaptiveLoadBalancing.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/routing/AdaptiveLoadBalancing.scala
@@ -329,7 +329,7 @@ object MixMetricsSelector extends MixMetricsSelectorBase(
* [akka.cluster.routing.CpuMetricsSelector], and [akka.cluster.routing.SystemLoadAverageMetricsSelector]
*/
@SerialVersionUID(1L)
-case class MixMetricsSelector(
+final case class MixMetricsSelector(
selectors: immutable.IndexedSeq[CapacityMetricsSelector])
extends MixMetricsSelectorBase(selectors)
@@ -548,7 +548,7 @@ private[akka] class AdaptiveLoadBalancingMetricsListener(routingLogic: AdaptiveL
*/
@SerialVersionUID(1L)
@deprecated("Use AdaptiveLoadBalancingPool or AdaptiveLoadBalancingGroup", "2.3")
-case class AdaptiveLoadBalancingRouter(
+final case class AdaptiveLoadBalancingRouter(
metricsSelector: MetricsSelector = MixMetricsSelector,
nrOfInstances: Int = 0, routees: immutable.Iterable[String] = Nil,
override val resizer: Option[Resizer] = None,
diff --git a/akka-cluster/src/main/scala/akka/cluster/routing/ClusterRouterConfig.scala b/akka-cluster/src/main/scala/akka/cluster/routing/ClusterRouterConfig.scala
index cdba1accdf..93027ea6af 100644
--- a/akka-cluster/src/main/scala/akka/cluster/routing/ClusterRouterConfig.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/routing/ClusterRouterConfig.scala
@@ -55,7 +55,7 @@ object ClusterRouterGroupSettings {
* `totalInstances` of cluster router must be > 0
*/
@SerialVersionUID(1L)
-case class ClusterRouterGroupSettings(
+final case class ClusterRouterGroupSettings(
totalInstances: Int,
routeesPaths: immutable.Seq[String],
allowLocalRoutees: Boolean,
@@ -109,7 +109,7 @@ object ClusterRouterPoolSettings {
* `maxInstancesPerNode` of cluster router must be 1 when routeesPath is defined
*/
@SerialVersionUID(1L)
-case class ClusterRouterPoolSettings(
+final case class ClusterRouterPoolSettings(
totalInstances: Int,
maxInstancesPerNode: Int,
allowLocalRoutees: Boolean,
diff --git a/akka-cluster/src/main/scala/akka/cluster/routing/DeprecatedClusterRouterConfig.scala b/akka-cluster/src/main/scala/akka/cluster/routing/DeprecatedClusterRouterConfig.scala
index 635ebb58e6..7da845f184 100644
--- a/akka-cluster/src/main/scala/akka/cluster/routing/DeprecatedClusterRouterConfig.scala
+++ b/akka-cluster/src/main/scala/akka/cluster/routing/DeprecatedClusterRouterConfig.scala
@@ -81,7 +81,7 @@ object ClusterRouterSettings {
*/
@SerialVersionUID(1L)
@deprecated("Use ClusterRouterPoolSettings or ClusterRouterGroupSettings", "2.3")
-case class ClusterRouterSettings private[akka] (
+final case class ClusterRouterSettings private[akka] (
totalInstances: Int,
maxInstancesPerNode: Int,
routeesPath: String,
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala
index fbe2528285..2eb717a775 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala
@@ -10,7 +10,7 @@ import akka.testkit._
import akka.actor.Address
import scala.collection.immutable
-case class ClientDowningNodeThatIsUnreachableMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class ClientDowningNodeThatIsUnreachableMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
val second = role("second")
val third = role("third")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala
index ffe4045568..88fea2444f 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala
@@ -11,7 +11,7 @@ import akka.testkit._
import akka.actor.Address
import scala.collection.immutable
-case class ClientDowningNodeThatIsUpMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class ClientDowningNodeThatIsUpMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
val second = role("second")
val third = role("third")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/ConvergenceSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/ConvergenceSpec.scala
index 1ff1d08800..3376ed2197 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/ConvergenceSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/ConvergenceSpec.scala
@@ -12,7 +12,7 @@ import akka.testkit._
import scala.concurrent.duration._
import akka.actor.Address
-case class ConvergenceMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class ConvergenceMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
val second = role("second")
val third = role("third")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala
index 8ae8b33339..bb7ded5570 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala
@@ -13,7 +13,7 @@ import akka.actor._
import scala.concurrent.duration._
import scala.collection.immutable
-case class LeaderDowningNodeThatIsUnreachableMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class LeaderDowningNodeThatIsUnreachableMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
val second = role("second")
val third = role("third")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala
index c31e8f6ece..278cbeed44 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala
@@ -12,7 +12,7 @@ import akka.testkit._
import scala.concurrent.duration._
import scala.collection.immutable
-case class LeaderElectionMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class LeaderElectionMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val controller = role("controller")
val first = role("first")
val second = role("second")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala
index c6a35b40d8..c18edbe1db 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala
@@ -10,7 +10,7 @@ import akka.testkit._
import scala.concurrent.duration._
import scala.collection.immutable
-case class SingletonClusterMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class SingletonClusterMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
val second = role("second")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala
index a6bdd37295..beb953797c 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala
@@ -15,7 +15,7 @@ import scala.concurrent.duration._
import scala.collection.immutable
import akka.remote.transport.ThrottlerTransportAdapter.Direction
-case class SplitBrainMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
+final case class SplitBrainMultiNodeConfig(failureDetectorPuppet: Boolean) extends MultiNodeConfig {
val first = role("first")
val second = role("second")
val third = role("third")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/StressSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/StressSpec.scala
index 9dbc7d3a70..114beb6a6b 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/StressSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/StressSpec.scala
@@ -227,12 +227,12 @@ private[cluster] object StressMultiJvmSpec extends MultiNodeConfig {
def form: String = d.formatted("%.2f")
}
- case class ClusterResult(
+ final case class ClusterResult(
address: Address,
duration: Duration,
clusterStats: GossipStats)
- case class AggregatedClusterResult(title: String, duration: Duration, clusterStats: GossipStats)
+ final case class AggregatedClusterResult(title: String, duration: Duration, clusterStats: GossipStats)
/**
* Central aggregator of cluster statistics and metrics.
@@ -652,29 +652,29 @@ private[cluster] object StressMultiJvmSpec extends MultiNodeConfig {
case object RetryTick
case object ReportTick
case object PhiTick
- case class PhiResult(from: Address, phiValues: immutable.SortedSet[PhiValue])
- case class PhiValue(address: Address, countAboveOne: Int, count: Int, max: Double) extends Ordered[PhiValue] {
+ final case class PhiResult(from: Address, phiValues: immutable.SortedSet[PhiValue])
+ final case class PhiValue(address: Address, countAboveOne: Int, count: Int, max: Double) extends Ordered[PhiValue] {
import akka.cluster.Member.addressOrdering
def compare(that: PhiValue) = addressOrdering.compare(this.address, that.address)
}
- case class ReportTo(ref: Option[ActorRef])
- case class StatsResult(from: Address, stats: CurrentInternalStats)
+ final case class ReportTo(ref: Option[ActorRef])
+ final case class StatsResult(from: Address, stats: CurrentInternalStats)
type JobId = Int
trait Job { def id: JobId }
- case class SimpleJob(id: JobId, payload: Any) extends Job
- case class TreeJob(id: JobId, payload: Any, idx: Int, levels: Int, width: Int) extends Job
- case class Ack(id: JobId)
- case class JobState(deadline: Deadline, job: Job)
- case class WorkResult(duration: Duration, sendCount: Long, ackCount: Long) {
+ final case class SimpleJob(id: JobId, payload: Any) extends Job
+ final case class TreeJob(id: JobId, payload: Any, idx: Int, levels: Int, width: Int) extends Job
+ final case class Ack(id: JobId)
+ final case class JobState(deadline: Deadline, job: Job)
+ final case class WorkResult(duration: Duration, sendCount: Long, ackCount: Long) {
def retryCount: Long = sendCount - ackCount
def jobsPerSecond: Double = ackCount * 1000.0 / duration.toMillis
}
case object SendBatch
- case class CreateTree(levels: Int, width: Int)
+ final case class CreateTree(levels: Int, width: Int)
case object GetChildrenCount
- case class ChildrenCount(numberOfChildren: Int, numberOfChildRestarts: Int)
+ final case class ChildrenCount(numberOfChildren: Int, numberOfChildRestarts: Int)
case object Reset
}
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/AdaptiveLoadBalancingRouterSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/AdaptiveLoadBalancingRouterSpec.scala
index 745a5d5f43..40a882b426 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/AdaptiveLoadBalancingRouterSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/AdaptiveLoadBalancingRouterSpec.scala
@@ -50,7 +50,7 @@ object AdaptiveLoadBalancingRouterMultiJvmSpec extends MultiNodeConfig {
}
case object AllocateMemory
- case class Reply(address: Address)
+ final case class Reply(address: Address)
val first = role("first")
val second = role("second")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/ClusterRoundRobinRoutedActorSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/ClusterRoundRobinRoutedActorSpec.scala
index 6ea072412b..7afa5217b1 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/ClusterRoundRobinRoutedActorSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/oldrouting/ClusterRoundRobinRoutedActorSpec.scala
@@ -34,7 +34,7 @@ object ClusterRoundRobinRoutedActorMultiJvmSpec extends MultiNodeConfig {
}
}
- case class Reply(routeeType: RouteeType, ref: ActorRef)
+ final case class Reply(routeeType: RouteeType, ref: ActorRef)
sealed trait RouteeType extends Serializable
object DeployRoutee extends RouteeType
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/AdaptiveLoadBalancingRouterSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/AdaptiveLoadBalancingRouterSpec.scala
index 8442eab31f..cdc919846d 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/AdaptiveLoadBalancingRouterSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/AdaptiveLoadBalancingRouterSpec.scala
@@ -50,7 +50,7 @@ object AdaptiveLoadBalancingRouterMultiJvmSpec extends MultiNodeConfig {
}
case object AllocateMemory
- case class Reply(address: Address)
+ final case class Reply(address: Address)
val first = role("first")
val second = role("second")
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterConsistentHashingGroupSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterConsistentHashingGroupSpec.scala
index 7289ed8eab..53e426de91 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterConsistentHashingGroupSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterConsistentHashingGroupSpec.scala
@@ -23,7 +23,7 @@ import akka.testkit._
object ClusterConsistentHashingGroupMultiJvmSpec extends MultiNodeConfig {
case object Get
- case class Collected(messages: Set[Any])
+ final case class Collected(messages: Set[Any])
class Destination extends Actor {
var receivedMessages = Set.empty[Any]
diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala
index 1588bffcba..e3fa6e81ab 100644
--- a/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala
+++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/routing/ClusterRoundRobinSpec.scala
@@ -37,7 +37,7 @@ object ClusterRoundRobinMultiJvmSpec extends MultiNodeConfig {
}
}
- case class Reply(routeeType: RouteeType, ref: ActorRef)
+ final case class Reply(routeeType: RouteeType, ref: ActorRef)
sealed trait RouteeType extends Serializable
object PoolRoutee extends RouteeType
diff --git a/akka-cluster/src/test/scala/akka/cluster/AutoDownSpec.scala b/akka-cluster/src/test/scala/akka/cluster/AutoDownSpec.scala
index 4038a87f27..82ad48aa35 100644
--- a/akka-cluster/src/test/scala/akka/cluster/AutoDownSpec.scala
+++ b/akka-cluster/src/test/scala/akka/cluster/AutoDownSpec.scala
@@ -16,7 +16,7 @@ import akka.cluster.ClusterEvent._
import akka.testkit.AkkaSpec
object AutoDownSpec {
- case class DownCalled(address: Address)
+ final case class DownCalled(address: Address)
val memberA = TestMember(Address("akka.tcp", "sys", "a", 2552), Up)
val memberB = TestMember(Address("akka.tcp", "sys", "b", 2552), Up)
diff --git a/akka-cluster/src/test/scala/akka/cluster/ClusterSpec.scala b/akka-cluster/src/test/scala/akka/cluster/ClusterSpec.scala
index 04e53cbc47..58b5975d52 100644
--- a/akka-cluster/src/test/scala/akka/cluster/ClusterSpec.scala
+++ b/akka-cluster/src/test/scala/akka/cluster/ClusterSpec.scala
@@ -30,7 +30,7 @@ object ClusterSpec {
# akka.loglevel = DEBUG
"""
- case class GossipTo(address: Address)
+ final case class GossipTo(address: Address)
}
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
diff --git a/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterClient.scala b/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterClient.scala
index 96a83d4d37..13f3f248a3 100644
--- a/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterClient.scala
+++ b/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterClient.scala
@@ -63,16 +63,16 @@ object ClusterClient {
}
@SerialVersionUID(1L)
- case class Send(path: String, msg: Any, localAffinity: Boolean) {
+ final case class Send(path: String, msg: Any, localAffinity: Boolean) {
/**
* Convenience constructor with `localAffinity` false
*/
def this(path: String, msg: Any) = this(path, msg, localAffinity = false)
}
@SerialVersionUID(1L)
- case class SendToAll(path: String, msg: Any)
+ final case class SendToAll(path: String, msg: Any)
@SerialVersionUID(1L)
- case class Publish(topic: String, msg: Any)
+ final case class Publish(topic: String, msg: Any)
/**
* INTERNAL API
@@ -313,7 +313,7 @@ object ClusterReceptionist {
@SerialVersionUID(1L)
case object GetContacts
@SerialVersionUID(1L)
- case class Contacts(contactPoints: immutable.IndexedSeq[ActorSelection])
+ final case class Contacts(contactPoints: immutable.IndexedSeq[ActorSelection])
@SerialVersionUID(1L)
case object Ping
diff --git a/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSharding.scala b/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSharding.scala
index ac0a1aed0a..2f2c1d9ac1 100644
--- a/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSharding.scala
+++ b/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSharding.scala
@@ -338,10 +338,10 @@ class ClusterSharding(system: ExtendedActorSystem) extends Extension {
*/
private[akka] object ClusterShardingGuardian {
import ShardCoordinator.ShardAllocationStrategy
- case class Start(typeName: String, entryProps: Option[Props], idExtractor: ShardRegion.IdExtractor,
- shardResolver: ShardRegion.ShardResolver, allocationStrategy: ShardAllocationStrategy)
+ final case class Start(typeName: String, entryProps: Option[Props], idExtractor: ShardRegion.IdExtractor,
+ shardResolver: ShardRegion.ShardResolver, allocationStrategy: ShardAllocationStrategy)
extends NoSerializationVerificationNeeded
- case class Started(shardRegion: ActorRef) extends NoSerializationVerificationNeeded
+ final case class Started(shardRegion: ActorRef) extends NoSerializationVerificationNeeded
}
/**
@@ -542,7 +542,7 @@ object ShardRegion {
*
* [[akka.actor.PoisonPill]] is a perfectly fine `stopMessage`.
*/
- @SerialVersionUID(1L) case class Passivate(stopMessage: Any) extends ShardRegionCommand
+ @SerialVersionUID(1L) final case class Passivate(stopMessage: Any) extends ShardRegionCommand
private case object Retry extends ShardRegionCommand
@@ -978,24 +978,24 @@ object ShardCoordinator {
/**
* `ShardRegion` registers to `ShardCoordinator`, until it receives [[RegisterAck]].
*/
- @SerialVersionUID(1L) case class Register(shardRegion: ActorRef) extends CoordinatorCommand
+ @SerialVersionUID(1L) final case class Register(shardRegion: ActorRef) extends CoordinatorCommand
/**
* `ShardRegion` in proxy only mode registers to `ShardCoordinator`, until it receives [[RegisterAck]].
*/
- @SerialVersionUID(1L) case class RegisterProxy(shardRegionProxy: ActorRef) extends CoordinatorCommand
+ @SerialVersionUID(1L) final case class RegisterProxy(shardRegionProxy: ActorRef) extends CoordinatorCommand
/**
* Acknowledgement from `ShardCoordinator` that [[Register]] or [[RegisterProxy]] was sucessful.
*/
- @SerialVersionUID(1L) case class RegisterAck(coordinator: ActorRef) extends CoordinatorMessage
+ @SerialVersionUID(1L) final case class RegisterAck(coordinator: ActorRef) extends CoordinatorMessage
/**
* `ShardRegion` requests the location of a shard by sending this message
* to the `ShardCoordinator`.
*/
- @SerialVersionUID(1L) case class GetShardHome(shard: ShardId) extends CoordinatorCommand
+ @SerialVersionUID(1L) final case class GetShardHome(shard: ShardId) extends CoordinatorCommand
/**
* `ShardCoordinator` replies with this message for [[GetShardHome]] requests.
*/
- @SerialVersionUID(1L) case class ShardHome(shard: ShardId, ref: ActorRef) extends CoordinatorMessage
+ @SerialVersionUID(1L) final case class ShardHome(shard: ShardId, ref: ActorRef) extends CoordinatorMessage
/**
* `ShardCoordinator` initiates rebalancing process by sending this message
* to all registered `ShardRegion` actors (including proxy only). They are
@@ -1004,31 +1004,31 @@ object ShardCoordinator {
* When all have replied the `ShardCoordinator` continues by sending
* [[HandOff]] to the `ShardRegion` responsible for the shard.
*/
- @SerialVersionUID(1L) case class BeginHandOff(shard: ShardId) extends CoordinatorMessage
+ @SerialVersionUID(1L) final case class BeginHandOff(shard: ShardId) extends CoordinatorMessage
/**
* Acknowledgement of [[BeginHandOff]]
*/
- @SerialVersionUID(1L) case class BeginHandOffAck(shard: ShardId) extends CoordinatorCommand
+ @SerialVersionUID(1L) final case class BeginHandOffAck(shard: ShardId) extends CoordinatorCommand
/**
* When all `ShardRegion` actors have acknoledged the [[BeginHandOff]] the
* ShardCoordinator` sends this message to the `ShardRegion` responsible for the
* shard. The `ShardRegion` is supposed to stop all entries in that shard and when
* all entries have terminated reply with `ShardStopped` to the `ShardCoordinator`.
*/
- @SerialVersionUID(1L) case class HandOff(shard: ShardId) extends CoordinatorMessage
+ @SerialVersionUID(1L) final case class HandOff(shard: ShardId) extends CoordinatorMessage
/**
* Reply to [[HandOff]] when all entries in the shard have been terminated.
*/
- @SerialVersionUID(1L) case class ShardStopped(shard: ShardId) extends CoordinatorCommand
+ @SerialVersionUID(1L) final case class ShardStopped(shard: ShardId) extends CoordinatorCommand
// DomainEvents for the persistent state of the event sourced ShardCoordinator
sealed trait DomainEvent
- @SerialVersionUID(1L) case class ShardRegionRegistered(region: ActorRef) extends DomainEvent
- @SerialVersionUID(1L) case class ShardRegionProxyRegistered(regionProxy: ActorRef) extends DomainEvent
- @SerialVersionUID(1L) case class ShardRegionTerminated(region: ActorRef) extends DomainEvent
- @SerialVersionUID(1L) case class ShardRegionProxyTerminated(regionProxy: ActorRef) extends DomainEvent
- @SerialVersionUID(1L) case class ShardHomeAllocated(shard: ShardId, region: ActorRef) extends DomainEvent
- @SerialVersionUID(1L) case class ShardHomeDeallocated(shard: ShardId) extends DomainEvent
+ @SerialVersionUID(1L) final case class ShardRegionRegistered(region: ActorRef) extends DomainEvent
+ @SerialVersionUID(1L) final case class ShardRegionProxyRegistered(regionProxy: ActorRef) extends DomainEvent
+ @SerialVersionUID(1L) final case class ShardRegionTerminated(region: ActorRef) extends DomainEvent
+ @SerialVersionUID(1L) final case class ShardRegionProxyTerminated(regionProxy: ActorRef) extends DomainEvent
+ @SerialVersionUID(1L) final case class ShardHomeAllocated(shard: ShardId, region: ActorRef) extends DomainEvent
+ @SerialVersionUID(1L) final case class ShardHomeDeallocated(shard: ShardId) extends DomainEvent
object State {
val empty = State()
@@ -1037,7 +1037,7 @@ object ShardCoordinator {
/**
* Persistent state of the event sourced ShardCoordinator.
*/
- @SerialVersionUID(1L) case class State private (
+ @SerialVersionUID(1L) final case class State private (
// region for each shard
val shards: Map[ShardId, ActorRef] = Map.empty,
// shards for each region
@@ -1080,7 +1080,7 @@ object ShardCoordinator {
/**
* End of rebalance process performed by [[RebalanceWorker]]
*/
- private case class RebalanceDone(shard: ShardId, ok: Boolean)
+ private final case class RebalanceDone(shard: ShardId, ok: Boolean)
private case object AfterRecover
diff --git a/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSingletonManager.scala b/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSingletonManager.scala
index d5c8cd9c1c..6592e60ec7 100644
--- a/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSingletonManager.scala
+++ b/akka-contrib/src/main/scala/akka/contrib/pattern/ClusterSingletonManager.scala
@@ -105,8 +105,8 @@ object ClusterSingletonManager {
*/
case object TakeOverFromMe
- case class HandOverRetry(count: Int)
- case class TakeOverRetry(count: Int)
+ final case class HandOverRetry(count: Int)
+ final case class TakeOverRetry(count: Int)
case object Cleanup
case object StartOldestChangedBuffer
@@ -120,12 +120,12 @@ object ClusterSingletonManager {
case object End extends State
case object Uninitialized extends Data
- case class YoungerData(oldestOption: Option[Address]) extends Data
- case class BecomingOldestData(previousOldestOption: Option[Address]) extends Data
- case class OldestData(singleton: ActorRef, singletonTerminated: Boolean = false) extends Data
- case class WasOldestData(singleton: ActorRef, singletonTerminated: Boolean,
- newOldestOption: Option[Address]) extends Data
- case class HandingOverData(singleton: ActorRef, handOverTo: Option[ActorRef]) extends Data
+ final case class YoungerData(oldestOption: Option[Address]) extends Data
+ final case class BecomingOldestData(previousOldestOption: Option[Address]) extends Data
+ final case class OldestData(singleton: ActorRef, singletonTerminated: Boolean = false) extends Data
+ final case class WasOldestData(singleton: ActorRef, singletonTerminated: Boolean,
+ newOldestOption: Option[Address]) extends Data
+ final case class HandingOverData(singleton: ActorRef, handOverTo: Option[ActorRef]) extends Data
case object EndData extends Data
val HandOverRetryTimer = "hand-over-retry"
@@ -145,9 +145,9 @@ object ClusterSingletonManager {
/**
* The first event, corresponding to CurrentClusterState.
*/
- case class InitialOldestState(oldest: Option[Address], memberCount: Int)
+ final case class InitialOldestState(oldest: Option[Address], memberCount: Int)
- case class OldestChanged(oldest: Option[Address])
+ final case class OldestChanged(oldest: Option[Address])
}
/**
diff --git a/akka-contrib/src/main/scala/akka/contrib/pattern/DistributedPubSubMediator.scala b/akka-contrib/src/main/scala/akka/contrib/pattern/DistributedPubSubMediator.scala
index 6a710c6293..4e28b75bde 100644
--- a/akka-contrib/src/main/scala/akka/contrib/pattern/DistributedPubSubMediator.scala
+++ b/akka-contrib/src/main/scala/akka/contrib/pattern/DistributedPubSubMediator.scala
@@ -63,20 +63,20 @@ object DistributedPubSubMediator {
*/
def defaultProps(role: String): Props = props(Internal.roleOption(role))
- @SerialVersionUID(1L) case class Put(ref: ActorRef)
- @SerialVersionUID(1L) case class Remove(path: String)
- @SerialVersionUID(1L) case class Subscribe(topic: String, ref: ActorRef)
- @SerialVersionUID(1L) case class Unsubscribe(topic: String, ref: ActorRef)
- @SerialVersionUID(1L) case class SubscribeAck(subscribe: Subscribe)
- @SerialVersionUID(1L) case class UnsubscribeAck(unsubscribe: Unsubscribe)
- @SerialVersionUID(1L) case class Publish(topic: String, msg: Any) extends DistributedPubSubMessage
- @SerialVersionUID(1L) case class Send(path: String, msg: Any, localAffinity: Boolean) extends DistributedPubSubMessage {
+ @SerialVersionUID(1L) final case class Put(ref: ActorRef)
+ @SerialVersionUID(1L) final case class Remove(path: String)
+ @SerialVersionUID(1L) final case class Subscribe(topic: String, ref: ActorRef)
+ @SerialVersionUID(1L) final case class Unsubscribe(topic: String, ref: ActorRef)
+ @SerialVersionUID(1L) final case class SubscribeAck(subscribe: Subscribe)
+ @SerialVersionUID(1L) final case class UnsubscribeAck(unsubscribe: Unsubscribe)
+ @SerialVersionUID(1L) final case class Publish(topic: String, msg: Any) extends DistributedPubSubMessage
+ @SerialVersionUID(1L) final case class Send(path: String, msg: Any, localAffinity: Boolean) extends DistributedPubSubMessage {
/**
* Convenience constructor with `localAffinity` false
*/
def this(path: String, msg: Any) = this(path, msg, localAffinity = false)
}
- @SerialVersionUID(1L) case class SendToAll(path: String, msg: Any, allButSelf: Boolean = false) extends DistributedPubSubMessage {
+ @SerialVersionUID(1L) final case class SendToAll(path: String, msg: Any, allButSelf: Boolean = false) extends DistributedPubSubMessage {
def this(path: String, msg: Any) = this(path, msg, allButSelf = false)
}
@@ -90,20 +90,20 @@ object DistributedPubSubMediator {
case object Prune
@SerialVersionUID(1L)
- case class Bucket(
+ final case class Bucket(
owner: Address,
version: Long,
content: Map[String, ValueHolder])
@SerialVersionUID(1L)
- case class ValueHolder(version: Long, ref: Option[ActorRef]) {
+ final case class ValueHolder(version: Long, ref: Option[ActorRef]) {
@transient lazy val routee: Option[Routee] = ref map ActorRefRoutee
}
@SerialVersionUID(1L)
- case class Status(versions: Map[Address, Long]) extends DistributedPubSubMessage
+ final case class Status(versions: Map[Address, Long]) extends DistributedPubSubMessage
@SerialVersionUID(1L)
- case class Delta(buckets: immutable.Iterable[Bucket]) extends DistributedPubSubMessage
+ final case class Delta(buckets: immutable.Iterable[Bucket]) extends DistributedPubSubMessage
case object GossipTick
diff --git a/akka-contrib/src/main/scala/akka/contrib/pattern/ReliableProxy.scala b/akka-contrib/src/main/scala/akka/contrib/pattern/ReliableProxy.scala
index 63d57d2bf5..bb39a2b2cf 100644
--- a/akka-contrib/src/main/scala/akka/contrib/pattern/ReliableProxy.scala
+++ b/akka-contrib/src/main/scala/akka/contrib/pattern/ReliableProxy.scala
@@ -81,8 +81,8 @@ object ReliableProxy {
def receiver(target: ActorRef, currentSerial: Int): Props = Props(classOf[Receiver], target, currentSerial)
// Internal messages
- case class Message(msg: Any, sender: ActorRef, serial: Int)
- private case class Ack(serial: Int)
+ final case class Message(msg: Any, sender: ActorRef, serial: Int)
+ private final case class Ack(serial: Int)
private case object Tick
private case object ReconnectTick
@@ -91,14 +91,14 @@ object ReliableProxy {
* the target and when the target `ActorRef` has changed (for example, the target system
* crashed and has been restarted).
*/
- case class TargetChanged(ref: ActorRef)
+ final case class TargetChanged(ref: ActorRef)
/**
* `ProxyTerminated` is sent to transition subscribers during `postStop`. Any outstanding
* unsent messages are contained the `Unsent` object.
*/
- case class ProxyTerminated(actor: ActorRef, outstanding: Unsent)
- case class Unsent(queue: Vector[Message])
+ final case class ProxyTerminated(actor: ActorRef, outstanding: Unsent)
+ final case class Unsent(queue: Vector[Message])
sealed trait State
case object Idle extends State
diff --git a/akka-contrib/src/main/scala/akka/contrib/throttle/TimerBasedThrottler.scala b/akka-contrib/src/main/scala/akka/contrib/throttle/TimerBasedThrottler.scala
index edff9d6598..a11ef890da 100644
--- a/akka-contrib/src/main/scala/akka/contrib/throttle/TimerBasedThrottler.scala
+++ b/akka-contrib/src/main/scala/akka/contrib/throttle/TimerBasedThrottler.scala
@@ -40,7 +40,7 @@ object Throttler {
* @param duration the length of the period
* @see [[akka.contrib.throttle.Throttler]]
*/
- case class Rate(val numberOfCalls: Int, val duration: FiniteDuration) {
+ final case class Rate(val numberOfCalls: Int, val duration: FiniteDuration) {
/**
* The duration in milliseconds.
*/
@@ -60,7 +60,7 @@ object Throttler {
* and eventually be delivered when a new target is set. If `target` is not `None`, the currently queued messages
* as well as any messages received in the future will be delivered to the new target at a rate not exceeding the current throttler's rate.
*/
- case class SetTarget(target: Option[ActorRef]) {
+ final case class SetTarget(target: Option[ActorRef]) {
/**
* Java API:
* @param target if `target` is `null`, the throttler will stop delivering messages and the messages already received
@@ -79,7 +79,7 @@ object Throttler {
*
* @param rate the rate at which messages will be delivered to the target of the throttler
*/
- case class SetRate(rate: Rate)
+ final case class SetRate(rate: Rate)
import language.implicitConversions
@@ -110,12 +110,12 @@ private[throttle] object TimerBasedThrottler {
case object Active extends State
// Messages, as we queue them to be sent later
- case class Message(message: Any, sender: ActorRef)
+ final case class Message(message: Any, sender: ActorRef)
// The data of the FSM
- case class Data(target: Option[ActorRef],
- callsLeftInThisPeriod: Int,
- queue: Q[Message])
+ final case class Data(target: Option[ActorRef],
+ callsLeftInThisPeriod: Int,
+ queue: Q[Message])
}
/**
diff --git a/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/ClusterShardingSpec.scala b/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/ClusterShardingSpec.scala
index f3fc476eeb..738f3de042 100644
--- a/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/ClusterShardingSpec.scala
+++ b/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/ClusterShardingSpec.scala
@@ -67,11 +67,11 @@ object ClusterShardingSpec extends MultiNodeConfig {
//#counter-actor
case object Increment
case object Decrement
- case class Get(counterId: Long)
- case class EntryEnvelope(id: Long, payload: Any)
+ final case class Get(counterId: Long)
+ final case class EntryEnvelope(id: Long, payload: Any)
case object Stop
- case class CounterChanged(delta: Int)
+ final case class CounterChanged(delta: Int)
class Counter extends EventsourcedProcessor {
import ShardRegion.Passivate
diff --git a/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/DistributedPubSubMediatorSpec.scala b/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/DistributedPubSubMediatorSpec.scala
index 91e6eeda35..1152e902b0 100644
--- a/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/DistributedPubSubMediatorSpec.scala
+++ b/akka-contrib/src/multi-jvm/scala/akka/contrib/pattern/DistributedPubSubMediatorSpec.scala
@@ -35,10 +35,10 @@ object DistributedPubSubMediatorSpec extends MultiNodeConfig {
"""))
object TestChatUser {
- case class Whisper(path: String, msg: Any)
- case class Talk(path: String, msg: Any)
- case class TalkToOthers(path: String, msg: Any)
- case class Shout(topic: String, msg: Any)
+ final case class Whisper(path: String, msg: Any)
+ final case class Talk(path: String, msg: Any)
+ final case class TalkToOthers(path: String, msg: Any)
+ final case class Shout(topic: String, msg: Any)
}
class TestChatUser(mediator: ActorRef, testActor: ActorRef) extends Actor {
diff --git a/akka-contrib/src/test/scala/akka/contrib/pattern/AggregatorSpec.scala b/akka-contrib/src/test/scala/akka/contrib/pattern/AggregatorSpec.scala
index 9b1c51506f..574276d5f1 100644
--- a/akka-contrib/src/test/scala/akka/contrib/pattern/AggregatorSpec.scala
+++ b/akka-contrib/src/test/scala/akka/contrib/pattern/AggregatorSpec.scala
@@ -25,15 +25,15 @@ case object Checking extends AccountType
case object Savings extends AccountType
case object MoneyMarket extends AccountType
-case class GetCustomerAccountBalances(id: Long, accountTypes: Set[AccountType])
-case class GetAccountBalances(id: Long)
+final case class GetCustomerAccountBalances(id: Long, accountTypes: Set[AccountType])
+final case class GetAccountBalances(id: Long)
-case class AccountBalances(accountType: AccountType,
- balance: Option[List[(Long, BigDecimal)]])
+final case class AccountBalances(accountType: AccountType,
+ balance: Option[List[(Long, BigDecimal)]])
-case class CheckingAccountBalances(balances: Option[List[(Long, BigDecimal)]])
-case class SavingsAccountBalances(balances: Option[List[(Long, BigDecimal)]])
-case class MoneyMarketAccountBalances(balances: Option[List[(Long, BigDecimal)]])
+final case class CheckingAccountBalances(balances: Option[List[(Long, BigDecimal)]])
+final case class SavingsAccountBalances(balances: Option[List[(Long, BigDecimal)]])
+final case class MoneyMarketAccountBalances(balances: Option[List[(Long, BigDecimal)]])
case object TimedOut
case object CantUnderstand
@@ -132,11 +132,11 @@ class AccountBalanceRetriever extends Actor with Aggregator {
//#demo-code
//#chain-sample
-case class InitialRequest(name: String)
-case class Request(name: String)
-case class Response(name: String, value: String)
-case class EvaluationResults(name: String, eval: List[Int])
-case class FinalResponse(qualifiedValues: List[String])
+final case class InitialRequest(name: String)
+final case class Request(name: String)
+final case class Response(name: String, value: String)
+final case class EvaluationResults(name: String, eval: List[Int])
+final case class FinalResponse(qualifiedValues: List[String])
/**
* An actor sample demonstrating use of unexpect and chaining.
@@ -211,7 +211,7 @@ class AggregatorSpec extends TestKit(ActorSystem("test")) with ImplicitSender wi
}
}
-case class TestEntry(id: Int)
+final case class TestEntry(id: Int)
class WorkListSpec extends FunSuiteLike {
diff --git a/akka-docs/rst/additional/code/docs/faq/Faq.scala b/akka-docs/rst/additional/code/docs/faq/Faq.scala
index b2d9eb2b28..93ff432f27 100644
--- a/akka-docs/rst/additional/code/docs/faq/Faq.scala
+++ b/akka-docs/rst/additional/code/docs/faq/Faq.scala
@@ -6,12 +6,12 @@ import akka.actor.Actor
object MyActor {
// these are the messages we accept
sealed abstract trait Message
- case class FooMessage(foo: String) extends Message
- case class BarMessage(bar: Int) extends Message
+ final case class FooMessage(foo: String) extends Message
+ final case class BarMessage(bar: Int) extends Message
// these are the replies we send
sealed abstract trait Reply
- case class BazMessage(baz: String) extends Reply
+ final case class BazMessage(baz: String) extends Reply
}
class MyActor extends Actor {
diff --git a/akka-docs/rst/scala/code/docs/actor/ActorDocSpec.scala b/akka-docs/rst/scala/code/docs/actor/ActorDocSpec.scala
index 5342c1b7a5..4bfc1b5abd 100644
--- a/akka-docs/rst/scala/code/docs/actor/ActorDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/actor/ActorDocSpec.scala
@@ -31,8 +31,8 @@ class MyActor extends Actor {
}
//#my-actor
-case class DoIt(msg: ImmutableMessage)
-case class Message(s: String)
+final case class DoIt(msg: ImmutableMessage)
+final case class Message(s: String)
//#context-actorOf
class FirstActor extends Actor {
@@ -216,7 +216,7 @@ class ProducerConsumer extends Actor with ActorLogging
// protocol
case object GiveMeThings
-case class Give(thing: Any)
+final case class Give(thing: Any)
//#receive-orElse
@@ -524,7 +524,7 @@ class ActorDocSpec extends AkkaSpec(Map("akka.loglevel" -> "INFO")) {
//#ask-pipeTo
import akka.pattern.{ ask, pipe }
import system.dispatcher // The ExecutionContext that will be used
- case class Result(x: Int, s: String, d: Double)
+ final case class Result(x: Int, s: String, d: Double)
case object Request
implicit val timeout = Timeout(5 seconds) // needed for `?` below
diff --git a/akka-docs/rst/scala/code/docs/actor/FSMDocSpec.scala b/akka-docs/rst/scala/code/docs/actor/FSMDocSpec.scala
index 47168601ce..5c275539f2 100644
--- a/akka-docs/rst/scala/code/docs/actor/FSMDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/actor/FSMDocSpec.scala
@@ -21,12 +21,12 @@ class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
//#simple-imports
//#simple-events
// received events
- case class SetTarget(ref: ActorRef)
- case class Queue(obj: Any)
+ final case class SetTarget(ref: ActorRef)
+ final case class Queue(obj: Any)
case object Flush
// sent events
- case class Batch(obj: immutable.Seq[Any])
+ final case class Batch(obj: immutable.Seq[Any])
//#simple-events
//#simple-state
// states
@@ -36,7 +36,7 @@ class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
sealed trait Data
case object Uninitialized extends Data
- case class Todo(target: ActorRef, queue: immutable.Seq[Any]) extends Data
+ final case class Todo(target: ActorRef, queue: immutable.Seq[Any]) extends Data
//#simple-state
//#simple-fsm
class Buncher extends Actor with FSM[State, Data] {
diff --git a/akka-docs/rst/scala/code/docs/actor/FaultHandlingDocSample.scala b/akka-docs/rst/scala/code/docs/actor/FaultHandlingDocSample.scala
index b12cdf1126..789c65ae74 100644
--- a/akka-docs/rst/scala/code/docs/actor/FaultHandlingDocSample.scala
+++ b/akka-docs/rst/scala/code/docs/actor/FaultHandlingDocSample.scala
@@ -67,7 +67,7 @@ class Listener extends Actor with ActorLogging {
object Worker {
case object Start
case object Do
- case class Progress(percent: Double)
+ final case class Progress(percent: Double)
}
//#messages
@@ -112,9 +112,9 @@ class Worker extends Actor with ActorLogging {
//#messages
object CounterService {
- case class Increment(n: Int)
+ final case class Increment(n: Int)
case object GetCurrentCount
- case class CurrentCount(key: String, count: Long)
+ final case class CurrentCount(key: String, count: Long)
class ServiceUnavailable(msg: String) extends RuntimeException(msg)
private case object Reconnect
@@ -212,7 +212,7 @@ class CounterService extends Actor {
//#messages
object Counter {
- case class UseStorage(storage: Option[ActorRef])
+ final case class UseStorage(storage: Option[ActorRef])
}
//#messages
@@ -253,9 +253,9 @@ class Counter(key: String, initialValue: Long) extends Actor {
//#messages
object Storage {
- case class Store(entry: Entry)
- case class Get(key: String)
- case class Entry(key: String, value: Long)
+ final case class Store(entry: Entry)
+ final case class Get(key: String)
+ final case class Entry(key: String, value: Long)
class StorageException(msg: String) extends RuntimeException(msg)
}
//#messages
diff --git a/akka-docs/rst/scala/code/docs/event/EventBusDocSpec.scala b/akka-docs/rst/scala/code/docs/event/EventBusDocSpec.scala
index 96603fcbec..19caf087dc 100644
--- a/akka-docs/rst/scala/code/docs/event/EventBusDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/event/EventBusDocSpec.scala
@@ -14,7 +14,7 @@ object EventBusDocSpec {
import akka.event.EventBus
import akka.event.LookupClassification
- case class MsgEnvelope(topic: String, payload: Any)
+ final case class MsgEnvelope(topic: String, payload: Any)
/**
* Publishes the payload of the MsgEnvelope when the topic of the
@@ -124,7 +124,7 @@ object EventBusDocSpec {
import akka.event.ActorClassification
import akka.event.ActorClassifier
- case class Notification(ref: ActorRef, id: Int)
+ final case class Notification(ref: ActorRef, id: Int)
class ActorBusImpl extends ActorEventBus with ActorClassifier with ActorClassification {
type Event = Notification
diff --git a/akka-docs/rst/scala/code/docs/event/LoggingDocSpec.scala b/akka-docs/rst/scala/code/docs/event/LoggingDocSpec.scala
index 074a960f5d..6afab3d028 100644
--- a/akka-docs/rst/scala/code/docs/event/LoggingDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/event/LoggingDocSpec.scala
@@ -51,7 +51,7 @@ object LoggingDocSpec {
//#mdc-actor
import Logging.MDC
- case class Req(work: String, visitorId: Int)
+ final case class Req(work: String, visitorId: Int)
class MdcActorMixin extends Actor with akka.actor.DiagnosticActorLogging {
var reqId = 0
diff --git a/akka-docs/rst/scala/code/docs/io/EchoServer.scala b/akka-docs/rst/scala/code/docs/io/EchoServer.scala
index 4300885c63..f63008b2cb 100644
--- a/akka-docs/rst/scala/code/docs/io/EchoServer.scala
+++ b/akka-docs/rst/scala/code/docs/io/EchoServer.scala
@@ -81,7 +81,7 @@ class EchoHandler(connection: ActorRef, remote: InetSocketAddress)
import Tcp._
- case class Ack(offset: Int) extends Event
+ final case class Ack(offset: Int) extends Event
// sign death pact: this actor terminates when connection breaks
context watch connection
diff --git a/akka-docs/rst/scala/code/docs/routing/ConsistentHashingRouterDocSpec.scala b/akka-docs/rst/scala/code/docs/routing/ConsistentHashingRouterDocSpec.scala
index 77ffe70a87..262dcdd609 100644
--- a/akka-docs/rst/scala/code/docs/routing/ConsistentHashingRouterDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/routing/ConsistentHashingRouterDocSpec.scala
@@ -24,13 +24,13 @@ object ConsistentHashingRouterDocSpec {
}
}
- case class Evict(key: String)
+ final case class Evict(key: String)
- case class Get(key: String) extends ConsistentHashable {
+ final case class Get(key: String) extends ConsistentHashable {
override def consistentHashKey: Any = key
}
- case class Entry(key: String, value: String)
+ final case class Entry(key: String, value: String)
//#cache-actor
}
diff --git a/akka-docs/rst/scala/code/docs/routing/CustomRouterDocSpec.scala b/akka-docs/rst/scala/code/docs/routing/CustomRouterDocSpec.scala
index cc8c355cdf..d2d588c320 100644
--- a/akka-docs/rst/scala/code/docs/routing/CustomRouterDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/routing/CustomRouterDocSpec.scala
@@ -63,7 +63,7 @@ akka.actor.deployment {
}
//#unit-test-logic
- case class TestRoutee(n: Int) extends Routee {
+ final case class TestRoutee(n: Int) extends Routee {
override def send(message: Any, sender: ActorRef): Unit = ()
}
@@ -77,7 +77,7 @@ import akka.routing.Router
import akka.japi.Util.immutableSeq
import com.typesafe.config.Config
-case class RedundancyGroup(override val paths: immutable.Iterable[String], nbrCopies: Int) extends Group {
+final case class RedundancyGroup(override val paths: immutable.Iterable[String], nbrCopies: Int) extends Group {
def this(config: Config) = this(
paths = immutableSeq(config.getStringList("routees.paths")),
diff --git a/akka-docs/rst/scala/code/docs/routing/RouterDocSpec.scala b/akka-docs/rst/scala/code/docs/routing/RouterDocSpec.scala
index bde8090881..08bba9e7e8 100644
--- a/akka-docs/rst/scala/code/docs/routing/RouterDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/routing/RouterDocSpec.scala
@@ -200,7 +200,7 @@ akka.actor.deployment {
router-dispatcher {}
"""
- case class Work(payload: String)
+ final case class Work(payload: String)
//#router-in-actor
import akka.routing.ActorRefRoutee
diff --git a/akka-docs/rst/scala/code/docs/serialization/SerializationDocSpec.scala b/akka-docs/rst/scala/code/docs/serialization/SerializationDocSpec.scala
index 62d3e03f5e..ccbaa7b719 100644
--- a/akka-docs/rst/scala/code/docs/serialization/SerializationDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/serialization/SerializationDocSpec.scala
@@ -49,7 +49,7 @@ package docs.serialization {
//#my-own-serializer
trait MyOwnSerializable
- case class Customer(name: String) extends MyOwnSerializable
+ final case class Customer(name: String) extends MyOwnSerializable
class SerializationDocSpec extends AkkaSpec {
"demonstrate configuration of serialize messages" in {
diff --git a/akka-docs/rst/scala/code/docs/testkit/TestkitDocSpec.scala b/akka-docs/rst/scala/code/docs/testkit/TestkitDocSpec.scala
index c9f7f81a02..78d965b710 100644
--- a/akka-docs/rst/scala/code/docs/testkit/TestkitDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/testkit/TestkitDocSpec.scala
@@ -194,7 +194,7 @@ class TestkitDocSpec extends AkkaSpec with DefaultTimeout with ImplicitSender {
//#test-probe
//#test-special-probe
- case class Update(id: Int, value: String)
+ final case class Update(id: Int, value: String)
val probe = new TestProbe(system) {
def expectUpdate(x: Int) = {
diff --git a/akka-docs/rst/scala/code/docs/zeromq/ZeromqDocSpec.scala b/akka-docs/rst/scala/code/docs/zeromq/ZeromqDocSpec.scala
index 58ea081349..047b7fc124 100644
--- a/akka-docs/rst/scala/code/docs/zeromq/ZeromqDocSpec.scala
+++ b/akka-docs/rst/scala/code/docs/zeromq/ZeromqDocSpec.scala
@@ -24,8 +24,8 @@ object ZeromqDocSpec {
import java.lang.management.ManagementFactory
case object Tick
- case class Heap(timestamp: Long, used: Long, max: Long)
- case class Load(timestamp: Long, loadAverage: Double)
+ final case class Heap(timestamp: Long, used: Long, max: Long)
+ final case class Load(timestamp: Long, loadAverage: Double)
class HealthProbe extends Actor {
diff --git a/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/BrokenItemException.scala b/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/BrokenItemException.scala
index c029c98451..67ebffcf24 100644
--- a/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/BrokenItemException.scala
+++ b/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/BrokenItemException.scala
@@ -20,4 +20,4 @@ package akka.actor.mailbox.filebased.filequeue
import java.io.IOException
@deprecated("durable mailboxes are superseded by akka-persistence", "2.3")
-case class BrokenItemException(lastValidPosition: Long, cause: Throwable) extends IOException(cause)
+final case class BrokenItemException(lastValidPosition: Long, cause: Throwable) extends IOException(cause)
diff --git a/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/Journal.scala b/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/Journal.scala
index a15b78e4b9..2e7539e07a 100644
--- a/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/Journal.scala
+++ b/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/Journal.scala
@@ -27,12 +27,12 @@ import scala.util.control.NonFatal
sealed trait JournalItem
@deprecated("durable mailboxes are superseded by akka-persistence", "2.3")
object JournalItem {
- case class Add(item: QItem) extends JournalItem
+ final case class Add(item: QItem) extends JournalItem
case object Remove extends JournalItem
case object RemoveTentative extends JournalItem
- case class SavedXid(xid: Int) extends JournalItem
- case class Unremove(xid: Int) extends JournalItem
- case class ConfirmRemove(xid: Int) extends JournalItem
+ final case class SavedXid(xid: Int) extends JournalItem
+ final case class Unremove(xid: Int) extends JournalItem
+ final case class ConfirmRemove(xid: Int) extends JournalItem
case object EndOfFile extends JournalItem
}
diff --git a/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/QItem.scala b/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/QItem.scala
index 8f0412b997..f1e0a766ea 100644
--- a/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/QItem.scala
+++ b/akka-durable-mailboxes/akka-file-mailbox/src/main/scala/akka/actor/mailbox/filebased/filequeue/QItem.scala
@@ -20,7 +20,7 @@ package akka.actor.mailbox.filebased.filequeue
import java.nio.{ ByteBuffer, ByteOrder }
@deprecated("durable mailboxes are superseded by akka-persistence", "2.3")
-case class QItem(addTime: Long, expiry: Long, data: Array[Byte], var xid: Int) {
+final case class QItem(addTime: Long, expiry: Long, data: Array[Byte], var xid: Int) {
def pack(): Array[Byte] = {
val bytes = new Array[Byte](data.length + 16)
val buffer = ByteBuffer.wrap(bytes)
diff --git a/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Conductor.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Conductor.scala
index ee1ad9e06a..4b1e61bf46 100644
--- a/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Conductor.scala
+++ b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Conductor.scala
@@ -358,13 +358,13 @@ private[akka] class ServerFSM(val controller: ActorRef, val channel: Channel) ex
* INTERNAL API.
*/
private[akka] object Controller {
- case class ClientDisconnected(name: RoleName)
+ final case class ClientDisconnected(name: RoleName)
class ClientDisconnectedException(msg: String) extends AkkaException(msg) with NoStackTrace
case object GetNodes
case object GetSockAddr
- case class CreateServerFSM(channel: Channel) extends NoSerializationVerificationNeeded
+ final case class CreateServerFSM(channel: Channel) extends NoSerializationVerificationNeeded
- case class NodeInfo(name: RoleName, addr: Address, fsm: ActorRef)
+ final case class NodeInfo(name: RoleName, addr: Address, fsm: ActorRef)
}
/**
@@ -478,25 +478,25 @@ private[akka] object BarrierCoordinator {
case object Idle extends State
case object Waiting extends State
- case class RemoveClient(name: RoleName)
+ final case class RemoveClient(name: RoleName)
- case class Data(clients: Set[Controller.NodeInfo], barrier: String, arrived: List[ActorRef], deadline: Deadline)
+ final case class Data(clients: Set[Controller.NodeInfo], barrier: String, arrived: List[ActorRef], deadline: Deadline)
trait Printer { this: Product with Throwable with NoStackTrace ⇒
override def toString = productPrefix + productIterator.mkString("(", ", ", ")")
}
- case class BarrierTimeout(data: Data)
+ final case class BarrierTimeout(data: Data)
extends RuntimeException("timeout while waiting for barrier '" + data.barrier + "'") with NoStackTrace with Printer
- case class FailedBarrier(data: Data)
+ final case class FailedBarrier(data: Data)
extends RuntimeException("failing barrier '" + data.barrier + "'") with NoStackTrace with Printer
- case class DuplicateNode(data: Data, node: Controller.NodeInfo)
+ final case class DuplicateNode(data: Data, node: Controller.NodeInfo)
extends RuntimeException(node.toString) with NoStackTrace with Printer
- case class WrongBarrier(barrier: String, client: ActorRef, data: Data)
+ final case class WrongBarrier(barrier: String, client: ActorRef, data: Data)
extends RuntimeException(data.clients.find(_.fsm == client).map(_.name.toString).getOrElse(client.toString) +
" tried to enter '" + barrier + "' while we were waiting for '" + data.barrier + "'") with NoStackTrace with Printer
- case class BarrierEmpty(data: Data, msg: String) extends RuntimeException(msg) with NoStackTrace with Printer
- case class ClientLost(data: Data, client: RoleName)
+ final case class BarrierEmpty(data: Data, msg: String) extends RuntimeException(msg) with NoStackTrace with Printer
+ final case class ClientLost(data: Data, client: RoleName)
extends RuntimeException("unannounced disconnect of " + client) with NoStackTrace with Printer
}
diff --git a/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/DataTypes.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/DataTypes.scala
index f8d6e0c82c..03af7f8614 100644
--- a/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/DataTypes.scala
+++ b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/DataTypes.scala
@@ -16,10 +16,10 @@ import scala.concurrent.duration._
import akka.remote.testconductor.TestConductorProtocol.BarrierOp
import akka.remote.transport.ThrottlerTransportAdapter.Direction
-case class RoleName(name: String)
+final case class RoleName(name: String)
-private[akka] case class ToClient(msg: ClientOp with NetworkOp)
-private[akka] case class ToServer(msg: ServerOp with NetworkOp)
+private[akka] final case class ToClient(msg: ClientOp with NetworkOp)
+private[akka] final case class ToServer(msg: ServerOp with NetworkOp)
private[akka] sealed trait ClientOp // messages sent to from Conductor to Player
private[akka] sealed trait ServerOp // messages sent to from Player to Conductor
@@ -31,30 +31,30 @@ private[akka] sealed trait ConfirmedClientOp extends ClientOp
/**
* First message of connection sets names straight.
*/
-private[akka] case class Hello(name: String, addr: Address) extends NetworkOp
+private[akka] final case class Hello(name: String, addr: Address) extends NetworkOp
-private[akka] case class EnterBarrier(name: String, timeout: Option[FiniteDuration]) extends ServerOp with NetworkOp
-private[akka] case class FailBarrier(name: String) extends ServerOp with NetworkOp
-private[akka] case class BarrierResult(name: String, success: Boolean) extends UnconfirmedClientOp with NetworkOp
+private[akka] final case class EnterBarrier(name: String, timeout: Option[FiniteDuration]) extends ServerOp with NetworkOp
+private[akka] final case class FailBarrier(name: String) extends ServerOp with NetworkOp
+private[akka] final case class BarrierResult(name: String, success: Boolean) extends UnconfirmedClientOp with NetworkOp
-private[akka] case class Throttle(node: RoleName, target: RoleName, direction: Direction, rateMBit: Float) extends CommandOp
-private[akka] case class ThrottleMsg(target: Address, direction: Direction, rateMBit: Float) extends ConfirmedClientOp with NetworkOp
+private[akka] final case class Throttle(node: RoleName, target: RoleName, direction: Direction, rateMBit: Float) extends CommandOp
+private[akka] final case class ThrottleMsg(target: Address, direction: Direction, rateMBit: Float) extends ConfirmedClientOp with NetworkOp
-private[akka] case class Disconnect(node: RoleName, target: RoleName, abort: Boolean) extends CommandOp
-private[akka] case class DisconnectMsg(target: Address, abort: Boolean) extends ConfirmedClientOp with NetworkOp
+private[akka] final case class Disconnect(node: RoleName, target: RoleName, abort: Boolean) extends CommandOp
+private[akka] final case class DisconnectMsg(target: Address, abort: Boolean) extends ConfirmedClientOp with NetworkOp
-private[akka] case class Terminate(node: RoleName, exitValue: Option[Int]) extends CommandOp
-private[akka] case class TerminateMsg(exitValue: Option[Int]) extends ConfirmedClientOp with NetworkOp
+private[akka] final case class Terminate(node: RoleName, exitValue: Option[Int]) extends CommandOp
+private[akka] final case class TerminateMsg(exitValue: Option[Int]) extends ConfirmedClientOp with NetworkOp
-private[akka] case class GetAddress(node: RoleName) extends ServerOp with NetworkOp
-private[akka] case class AddressReply(node: RoleName, addr: Address) extends UnconfirmedClientOp with NetworkOp
+private[akka] final case class GetAddress(node: RoleName) extends ServerOp with NetworkOp
+private[akka] final case class AddressReply(node: RoleName, addr: Address) extends UnconfirmedClientOp with NetworkOp
private[akka] abstract class Done extends ServerOp with UnconfirmedClientOp with NetworkOp
private[akka] case object Done extends Done {
def getInstance: Done = this
}
-private[akka] case class Remove(node: RoleName) extends CommandOp
+private[akka] final case class Remove(node: RoleName) extends CommandOp
private[akka] class MsgEncoder extends OneToOneEncoder {
diff --git a/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Player.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Player.scala
index 6df149920b..d39d563654 100644
--- a/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Player.scala
+++ b/akka-multi-node-testkit/src/main/scala/akka/remote/testconductor/Player.scala
@@ -120,10 +120,10 @@ private[akka] object ClientFSM {
case object Connected extends State
case object Failed extends State
- case class Data(channel: Option[Channel], runningOp: Option[(String, ActorRef)])
+ final case class Data(channel: Option[Channel], runningOp: Option[(String, ActorRef)])
- case class Connected(channel: Channel) extends NoSerializationVerificationNeeded
- case class ConnectionFailure(msg: String) extends RuntimeException(msg) with NoStackTrace
+ final case class Connected(channel: Channel) extends NoSerializationVerificationNeeded
+ final case class ConnectionFailure(msg: String) extends RuntimeException(msg) with NoStackTrace
case object Disconnected
}
diff --git a/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala
index 89090a922f..7377e9cc14 100644
--- a/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala
+++ b/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala
@@ -386,7 +386,7 @@ abstract class MultiNodeSpec(val myself: RoleName, _system: ActorSystem, _roles:
// now add deployments, if so desired
- private case class Replacement(tag: String, role: RoleName) {
+ private final case class Replacement(tag: String, role: RoleName) {
lazy val addr = node(role).address.toString
}
private val replacements = roles map (r ⇒ Replacement("@" + r.name + "@", r))
diff --git a/akka-persistence/src/main/scala/akka/persistence/Channel.scala b/akka-persistence/src/main/scala/akka/persistence/Channel.scala
index 3a6ad1b536..13adc884cf 100644
--- a/akka-persistence/src/main/scala/akka/persistence/Channel.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/Channel.scala
@@ -27,7 +27,7 @@ import akka.persistence.JournalProtocol._
* Alternatively, it can also confirm these messages, preventing further redeliveries.
*/
@SerialVersionUID(1L)
-case class ChannelSettings(
+final case class ChannelSettings(
val redeliverMax: Int = 5,
val redeliverInterval: FiniteDuration = 5.seconds,
val redeliverFailureListener: Option[ActorRef] = None) {
@@ -187,7 +187,7 @@ object Channel {
* @param destination persistent message destination.
*/
@SerialVersionUID(1L)
-case class Deliver(persistent: Persistent, destination: ActorPath) extends Message
+final case class Deliver(persistent: Persistent, destination: ActorPath) extends Message
object Deliver {
/**
@@ -215,7 +215,7 @@ trait Delivered extends Message {
/**
* Plugin API.
*/
-case class DeliveredByChannel(
+final case class DeliveredByChannel(
processorId: String,
channelId: String,
persistentSequenceNr: Long,
@@ -270,7 +270,7 @@ private[persistence] class DeliveredByChannelBatching(journal: ActorRef, setting
* Notification message to inform channel listeners about messages that have reached the maximum
* number of redeliveries.
*/
-case class RedeliverFailure(messages: immutable.Seq[ConfirmablePersistent]) {
+final case class RedeliverFailure(messages: immutable.Seq[ConfirmablePersistent]) {
/**
* Java API.
*/
@@ -317,12 +317,12 @@ private object ReliableDelivery {
type DeliveryAttempts = immutable.SortedMap[Long, DeliveryAttempt]
type FailedAttempts = Vector[ConfirmablePersistentImpl]
- case class DeliveryAttempt(persistent: ConfirmablePersistentImpl, destination: ActorPath, sender: ActorRef, timestamp: Long = System.nanoTime) {
+ final case class DeliveryAttempt(persistent: ConfirmablePersistentImpl, destination: ActorPath, sender: ActorRef, timestamp: Long = System.nanoTime) {
def incrementRedeliveryCount =
copy(persistent.update(redeliveries = persistent.redeliveries + 1))
}
- case class Redeliver(attempts: DeliveryAttempts, redeliveryMax: Int)
+ final case class Redeliver(attempts: DeliveryAttempts, redeliveryMax: Int)
}
/**
diff --git a/akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala b/akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
index c9bfc13118..d55ee11325 100644
--- a/akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
@@ -20,39 +20,39 @@ private[persistence] object JournalProtocol {
* Request to delete messages identified by `messageIds`. If `permanent` is set to `false`,
* the persistent messages are marked as deleted, otherwise they are permanently deleted.
*/
- case class DeleteMessages(messageIds: immutable.Seq[PersistentId], permanent: Boolean, requestor: Option[ActorRef] = None)
+ final case class DeleteMessages(messageIds: immutable.Seq[PersistentId], permanent: Boolean, requestor: Option[ActorRef] = None)
/**
* Reply message to a successful [[DeleteMessages]] request.
*/
- case class DeleteMessagesSuccess(messageIds: immutable.Seq[PersistentId])
+ final case class DeleteMessagesSuccess(messageIds: immutable.Seq[PersistentId])
/**
* Reply message to a failed [[DeleteMessages]] request.
*/
- case class DeleteMessagesFailure(cause: Throwable)
+ final case class DeleteMessagesFailure(cause: Throwable)
/**
* Request to delete all persistent messages with sequence numbers up to `toSequenceNr`
* (inclusive). If `permanent` is set to `false`, the persistent messages are marked
* as deleted in the journal, otherwise they are permanently deleted from the journal.
*/
- case class DeleteMessagesTo(processorId: String, toSequenceNr: Long, permanent: Boolean)
+ final case class DeleteMessagesTo(processorId: String, toSequenceNr: Long, permanent: Boolean)
/**
* Request to write delivery confirmations.
*/
- case class WriteConfirmations(confirmations: immutable.Seq[PersistentConfirmation], requestor: ActorRef)
+ final case class WriteConfirmations(confirmations: immutable.Seq[PersistentConfirmation], requestor: ActorRef)
/**
* Reply message to a successful [[WriteConfirmations]] request.
*/
- case class WriteConfirmationsSuccess(confirmations: immutable.Seq[PersistentConfirmation])
+ final case class WriteConfirmationsSuccess(confirmations: immutable.Seq[PersistentConfirmation])
/**
* Reply message to a failed [[WriteConfirmations]] request.
*/
- case class WriteConfirmationsFailure(cause: Throwable)
+ final case class WriteConfirmationsFailure(cause: Throwable)
/**
* Request to write messages.
@@ -60,7 +60,7 @@ private[persistence] object JournalProtocol {
* @param messages messages to be written.
* @param processor write requestor.
*/
- case class WriteMessages(messages: immutable.Seq[PersistentRepr], processor: ActorRef)
+ final case class WriteMessages(messages: immutable.Seq[PersistentRepr], processor: ActorRef)
/**
* Reply message to a successful [[WriteMessages]] request. This reply is sent to the requestor
@@ -74,7 +74,7 @@ private[persistence] object JournalProtocol {
*
* @param cause failure cause.
*/
- case class WriteMessagesFailure(cause: Throwable)
+ final case class WriteMessagesFailure(cause: Throwable)
/**
* Reply message to a successful [[WriteMessages]] request. For each contained [[PersistentRepr]] message
@@ -82,7 +82,7 @@ private[persistence] object JournalProtocol {
*
* @param persistent successfully written message.
*/
- case class WriteMessageSuccess(persistent: PersistentRepr)
+ final case class WriteMessageSuccess(persistent: PersistentRepr)
/**
* Reply message to a failed [[WriteMessages]] request. For each contained [[PersistentRepr]] message
@@ -91,7 +91,7 @@ private[persistence] object JournalProtocol {
* @param message message failed to be written.
* @param cause failure cause.
*/
- case class WriteMessageFailure(message: PersistentRepr, cause: Throwable)
+ final case class WriteMessageFailure(message: PersistentRepr, cause: Throwable)
/**
* Request to loop a `message` back to `processor`, without persisting the message. Looping of messages
@@ -100,14 +100,14 @@ private[persistence] object JournalProtocol {
* @param message message to be looped through the journal.
* @param processor loop requestor.
*/
- case class LoopMessage(message: Any, processor: ActorRef)
+ final case class LoopMessage(message: Any, processor: ActorRef)
/**
* Reply message to a [[LoopMessage]] request.
*
* @param message looped message.
*/
- case class LoopMessageSuccess(message: Any)
+ final case class LoopMessageSuccess(message: Any)
/**
* Request to replay messages to `processor`.
@@ -119,7 +119,7 @@ private[persistence] object JournalProtocol {
* @param processor requesting processor.
* @param replayDeleted `true` if messages marked as deleted shall be replayed.
*/
- case class ReplayMessages(fromSequenceNr: Long, toSequenceNr: Long, max: Long, processorId: String, processor: ActorRef, replayDeleted: Boolean = false)
+ final case class ReplayMessages(fromSequenceNr: Long, toSequenceNr: Long, max: Long, processorId: String, processor: ActorRef, replayDeleted: Boolean = false)
/**
* Reply message to a [[ReplayMessages]] request. A separate reply is sent to the requestor for each
@@ -127,7 +127,7 @@ private[persistence] object JournalProtocol {
*
* @param persistent replayed message.
*/
- case class ReplayedMessage(persistent: PersistentRepr)
+ final case class ReplayedMessage(persistent: PersistentRepr)
/**
* Reply message to a successful [[ReplayMessages]] request. This reply is sent to the requestor
@@ -139,7 +139,7 @@ private[persistence] object JournalProtocol {
* Reply message to a failed [[ReplayMessages]] request. This reply is sent to the requestor
* if a replay could not be successfully completed.
*/
- case class ReplayMessagesFailure(cause: Throwable)
+ final case class ReplayMessagesFailure(cause: Throwable)
/**
* Request to read the highest stored sequence number of a given processor.
@@ -148,20 +148,20 @@ private[persistence] object JournalProtocol {
* @param processorId requesting processor id.
* @param processor requesting processor.
*/
- case class ReadHighestSequenceNr(fromSequenceNr: Long = 1L, processorId: String, processor: ActorRef)
+ final case class ReadHighestSequenceNr(fromSequenceNr: Long = 1L, processorId: String, processor: ActorRef)
/**
* Reply message to a successful [[ReadHighestSequenceNr]] request.
*
* @param highestSequenceNr read highest sequence number.
*/
- case class ReadHighestSequenceNrSuccess(highestSequenceNr: Long)
+ final case class ReadHighestSequenceNrSuccess(highestSequenceNr: Long)
/**
* Reply message to a failed [[ReadHighestSequenceNr]] request.
*
* @param cause failure cause.
*/
- case class ReadHighestSequenceNrFailure(cause: Throwable)
+ final case class ReadHighestSequenceNrFailure(cause: Throwable)
}
diff --git a/akka-persistence/src/main/scala/akka/persistence/Persistent.scala b/akka-persistence/src/main/scala/akka/persistence/Persistent.scala
index d75caba4e6..2a7bac5c19 100644
--- a/akka-persistence/src/main/scala/akka/persistence/Persistent.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/Persistent.scala
@@ -106,7 +106,7 @@ object ConfirmablePersistent {
* journal. The processor receives the written messages individually as [[Persistent]] messages.
* During recovery, they are also replayed individually.
*/
-case class PersistentBatch(persistentBatch: immutable.Seq[Persistent]) extends Message {
+final case class PersistentBatch(persistentBatch: immutable.Seq[Persistent]) extends Message {
/**
* INTERNAL API.
*/
@@ -141,7 +141,7 @@ trait PersistentId {
/**
* INTERNAL API.
*/
-private[persistence] case class PersistentIdImpl(processorId: String, sequenceNr: Long) extends PersistentId
+private[persistence] final case class PersistentIdImpl(processorId: String, sequenceNr: Long) extends PersistentId
/**
* Plugin API: representation of a persistent message in the journal plugin API.
@@ -266,7 +266,7 @@ object PersistentBatch {
/**
* INTERNAL API.
*/
-private[persistence] case class PersistentImpl(
+private[persistence] final case class PersistentImpl(
payload: Any,
sequenceNr: Long,
processorId: String,
@@ -300,7 +300,7 @@ private[persistence] case class PersistentImpl(
/**
* INTERNAL API.
*/
-private[persistence] case class ConfirmablePersistentImpl(
+private[persistence] final case class ConfirmablePersistentImpl(
payload: Any,
sequenceNr: Long,
processorId: String,
diff --git a/akka-persistence/src/main/scala/akka/persistence/PersistentChannel.scala b/akka-persistence/src/main/scala/akka/persistence/PersistentChannel.scala
index fedbc09b40..e38e0554f2 100644
--- a/akka-persistence/src/main/scala/akka/persistence/PersistentChannel.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/PersistentChannel.scala
@@ -36,7 +36,7 @@ import akka.persistence.JournalProtocol._
* made after the configured timeout.
*/
@SerialVersionUID(1L)
-case class PersistentChannelSettings(
+final case class PersistentChannelSettings(
val redeliverMax: Int = 5,
val redeliverInterval: FiniteDuration = 5.seconds,
val redeliverFailureListener: Option[ActorRef] = None,
@@ -183,7 +183,7 @@ object PersistentChannel {
/**
* Plugin API.
*/
-case class DeliveredByPersistentChannel(
+final case class DeliveredByPersistentChannel(
channelId: String,
persistentSequenceNr: Long,
deliverySequenceNr: Long = 0L,
diff --git a/akka-persistence/src/main/scala/akka/persistence/Processor.scala b/akka-persistence/src/main/scala/akka/persistence/Processor.scala
index 86e42d18f5..6106f0d2f3 100644
--- a/akka-persistence/src/main/scala/akka/persistence/Processor.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/Processor.scala
@@ -313,7 +313,7 @@ trait Processor extends Actor with Recovery {
* @param cause failure cause.
*/
@SerialVersionUID(1L)
-case class PersistenceFailure(payload: Any, sequenceNr: Long, cause: Throwable)
+final case class PersistenceFailure(payload: Any, sequenceNr: Long, cause: Throwable)
/**
* Sent to a [[Processor]] if a journal fails to replay messages or fetch that processor's
@@ -321,7 +321,7 @@ case class PersistenceFailure(payload: Any, sequenceNr: Long, cause: Throwable)
* processor.
*/
@SerialVersionUID(1L)
-case class RecoveryFailure(cause: Throwable)
+final case class RecoveryFailure(cause: Throwable)
/**
* Thrown by a [[Processor]] if a journal fails to replay messages or fetch that processor's
@@ -329,7 +329,7 @@ case class RecoveryFailure(cause: Throwable)
* [[RecoveryFailure]] messages.
*/
@SerialVersionUID(1L)
-case class RecoveryException(message: String, cause: Throwable) extends AkkaException(message, cause)
+final case class RecoveryException(message: String, cause: Throwable) extends AkkaException(message, cause)
/**
* Java API: an actor that persists (journals) messages of type [[Persistent]]. Messages of other types
diff --git a/akka-persistence/src/main/scala/akka/persistence/Recovery.scala b/akka-persistence/src/main/scala/akka/persistence/Recovery.scala
index 178d3ca91d..06886b3a68 100644
--- a/akka-persistence/src/main/scala/akka/persistence/Recovery.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/Recovery.scala
@@ -259,7 +259,7 @@ trait Recovery extends Actor with Snapshotter with Stash with StashFactory {
* @param replayMax maximum number of messages to replay. Default is no limit.
*/
@SerialVersionUID(1L)
-case class Recover(fromSnapshot: SnapshotSelectionCriteria = SnapshotSelectionCriteria.Latest, toSequenceNr: Long = Long.MaxValue, replayMax: Long = Long.MaxValue)
+final case class Recover(fromSnapshot: SnapshotSelectionCriteria = SnapshotSelectionCriteria.Latest, toSequenceNr: Long = Long.MaxValue, replayMax: Long = Long.MaxValue)
object Recover {
/**
diff --git a/akka-persistence/src/main/scala/akka/persistence/Snapshot.scala b/akka-persistence/src/main/scala/akka/persistence/Snapshot.scala
index 8421f1b052..851698dce5 100644
--- a/akka-persistence/src/main/scala/akka/persistence/Snapshot.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/Snapshot.scala
@@ -13,7 +13,7 @@ package akka.persistence
* @param timestamp time at which the snapshot was saved.
*/
@SerialVersionUID(1L) //#snapshot-metadata
-case class SnapshotMetadata(processorId: String, sequenceNr: Long, timestamp: Long = 0L)
+final case class SnapshotMetadata(processorId: String, sequenceNr: Long, timestamp: Long = 0L)
//#snapshot-metadata
/**
@@ -22,7 +22,7 @@ case class SnapshotMetadata(processorId: String, sequenceNr: Long, timestamp: Lo
* @param metadata snapshot metadata.
*/
@SerialVersionUID(1L)
-case class SaveSnapshotSuccess(metadata: SnapshotMetadata)
+final case class SaveSnapshotSuccess(metadata: SnapshotMetadata)
/**
* Sent to a [[Processor]] after failed saving of a snapshot.
@@ -31,14 +31,14 @@ case class SaveSnapshotSuccess(metadata: SnapshotMetadata)
* @param cause failure cause.
*/
@SerialVersionUID(1L)
-case class SaveSnapshotFailure(metadata: SnapshotMetadata, cause: Throwable)
+final case class SaveSnapshotFailure(metadata: SnapshotMetadata, cause: Throwable)
/**
* Offers a [[Processor]] a previously saved `snapshot` during recovery. This offer is received
* before any further replayed messages.
*/
@SerialVersionUID(1L)
-case class SnapshotOffer(metadata: SnapshotMetadata, snapshot: Any)
+final case class SnapshotOffer(metadata: SnapshotMetadata, snapshot: Any)
/**
* Selection criteria for loading and deleting snapshots.
@@ -49,7 +49,7 @@ case class SnapshotOffer(metadata: SnapshotMetadata, snapshot: Any)
* @see [[Recover]]
*/
@SerialVersionUID(1L)
-case class SnapshotSelectionCriteria(maxSequenceNr: Long = Long.MaxValue, maxTimestamp: Long = Long.MaxValue) {
+final case class SnapshotSelectionCriteria(maxSequenceNr: Long = Long.MaxValue, maxTimestamp: Long = Long.MaxValue) {
/**
* INTERNAL API.
*/
@@ -97,7 +97,7 @@ object SnapshotSelectionCriteria {
* @param metadata snapshot metadata.
* @param snapshot snapshot.
*/
-case class SelectedSnapshot(metadata: SnapshotMetadata, snapshot: Any)
+final case class SelectedSnapshot(metadata: SnapshotMetadata, snapshot: Any)
object SelectedSnapshot {
/**
@@ -120,14 +120,14 @@ private[persistence] object SnapshotProtocol {
* @param criteria criteria for selecting a snapshot from which recovery should start.
* @param toSequenceNr upper sequence number bound (inclusive) for recovery.
*/
- case class LoadSnapshot(processorId: String, criteria: SnapshotSelectionCriteria, toSequenceNr: Long)
+ final case class LoadSnapshot(processorId: String, criteria: SnapshotSelectionCriteria, toSequenceNr: Long)
/**
* Response message to a [[LoadSnapshot]] message.
*
* @param snapshot loaded snapshot, if any.
*/
- case class LoadSnapshotResult(snapshot: Option[SelectedSnapshot], toSequenceNr: Long)
+ final case class LoadSnapshotResult(snapshot: Option[SelectedSnapshot], toSequenceNr: Long)
/**
* Instructs snapshot store to save a snapshot.
@@ -135,14 +135,14 @@ private[persistence] object SnapshotProtocol {
* @param metadata snapshot metadata.
* @param snapshot snapshot.
*/
- case class SaveSnapshot(metadata: SnapshotMetadata, snapshot: Any)
+ final case class SaveSnapshot(metadata: SnapshotMetadata, snapshot: Any)
/**
* Instructs snapshot store to delete a snapshot.
*
* @param metadata snapshot metadata.
*/
- case class DeleteSnapshot(metadata: SnapshotMetadata)
+ final case class DeleteSnapshot(metadata: SnapshotMetadata)
/**
* Instructs snapshot store to delete all snapshots that match `criteria`.
@@ -150,5 +150,5 @@ private[persistence] object SnapshotProtocol {
* @param processorId processor id.
* @param criteria criteria for selecting snapshots to be deleted.
*/
- case class DeleteSnapshots(processorId: String, criteria: SnapshotSelectionCriteria)
+ final case class DeleteSnapshots(processorId: String, criteria: SnapshotSelectionCriteria)
}
diff --git a/akka-persistence/src/main/scala/akka/persistence/View.scala b/akka-persistence/src/main/scala/akka/persistence/View.scala
index 63e5e34133..2a1db64bfa 100644
--- a/akka-persistence/src/main/scala/akka/persistence/View.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/View.scala
@@ -23,7 +23,7 @@ import akka.persistence.JournalProtocol._
* to `Long.MaxValue` (i.e. no limit).
*/
@SerialVersionUID(1L)
-case class Update(await: Boolean = false, replayMax: Long = Long.MaxValue)
+final case class Update(await: Boolean = false, replayMax: Long = Long.MaxValue)
case object Update {
/**
diff --git a/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala b/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala
index bee75b89db..68e1570b24 100644
--- a/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala
@@ -117,7 +117,7 @@ trait AsyncWriteJournal extends Actor with AsyncRecovery {
* INTERNAL API.
*/
private[persistence] object AsyncWriteJournal {
- case class Desequenced(msg: Any, snr: Long, target: ActorRef, sender: ActorRef)
+ final case class Desequenced(msg: Any, snr: Long, target: ActorRef, sender: ActorRef)
class Resequencer extends Actor {
import scala.collection.mutable.Map
diff --git a/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala b/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala
index 87be670306..0cb5b8582c 100644
--- a/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala
@@ -64,7 +64,7 @@ private[persistence] trait AsyncWriteProxy extends AsyncWriteJournal with Stash
* INTERNAL API.
*/
private[persistence] object AsyncWriteProxy {
- case class SetStore(ref: ActorRef)
+ final case class SetStore(ref: ActorRef)
}
/**
@@ -72,28 +72,28 @@ private[persistence] object AsyncWriteProxy {
*/
private[persistence] object AsyncWriteTarget {
@SerialVersionUID(1L)
- case class WriteMessages(messages: immutable.Seq[PersistentRepr])
+ final case class WriteMessages(messages: immutable.Seq[PersistentRepr])
@SerialVersionUID(1L)
- case class WriteConfirmations(confirmations: immutable.Seq[PersistentConfirmation])
+ final case class WriteConfirmations(confirmations: immutable.Seq[PersistentConfirmation])
@SerialVersionUID(1L)
- case class DeleteMessages(messageIds: immutable.Seq[PersistentId], permanent: Boolean)
+ final case class DeleteMessages(messageIds: immutable.Seq[PersistentId], permanent: Boolean)
@SerialVersionUID(1L)
- case class DeleteMessagesTo(processorId: String, toSequenceNr: Long, permanent: Boolean)
+ final case class DeleteMessagesTo(processorId: String, toSequenceNr: Long, permanent: Boolean)
@SerialVersionUID(1L)
- case class ReplayMessages(processorId: String, fromSequenceNr: Long, toSequenceNr: Long, max: Long)
+ final case class ReplayMessages(processorId: String, fromSequenceNr: Long, toSequenceNr: Long, max: Long)
@SerialVersionUID(1L)
case object ReplaySuccess
@SerialVersionUID(1L)
- case class ReplayFailure(cause: Throwable)
+ final case class ReplayFailure(cause: Throwable)
@SerialVersionUID(1L)
- case class ReadHighestSequenceNr(processorId: String, fromSequenceNr: Long)
+ final case class ReadHighestSequenceNr(processorId: String, fromSequenceNr: Long)
}
/**
diff --git a/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbKey.scala b/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbKey.scala
index 3bbfaf64de..0a1f98217c 100644
--- a/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbKey.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/journal/leveldb/LeveldbKey.scala
@@ -10,7 +10,7 @@ import java.nio.ByteBuffer
/**
* LevelDB key.
*/
-private[leveldb] case class Key(
+private[leveldb] final case class Key(
processorId: Int,
sequenceNr: Long,
channelId: Int)
diff --git a/akka-persistence/src/main/scala/akka/persistence/serialization/SnapshotSerializer.scala b/akka-persistence/src/main/scala/akka/persistence/serialization/SnapshotSerializer.scala
index 407876d575..f563dd3ce5 100644
--- a/akka-persistence/src/main/scala/akka/persistence/serialization/SnapshotSerializer.scala
+++ b/akka-persistence/src/main/scala/akka/persistence/serialization/SnapshotSerializer.scala
@@ -17,13 +17,13 @@ import akka.serialization.{ Serializer, SerializationExtension }
* @see [[SnapshotSerializer]]
*/
@SerialVersionUID(1L)
-case class Snapshot(data: Any)
+final case class Snapshot(data: Any)
/**
* INTERNAL API.
*/
@SerialVersionUID(1L)
-private[serialization] case class SnapshotHeader(serializerId: Int, manifest: Option[String])
+private[serialization] final case class SnapshotHeader(serializerId: Int, manifest: Option[String])
/**
* [[Snapshot]] serializer.
diff --git a/akka-persistence/src/test/scala/akka/persistence/EventsourcedSpec.scala b/akka-persistence/src/test/scala/akka/persistence/EventsourcedSpec.scala
index 6f6da4aaab..96dbee3939 100644
--- a/akka-persistence/src/test/scala/akka/persistence/EventsourcedSpec.scala
+++ b/akka-persistence/src/test/scala/akka/persistence/EventsourcedSpec.scala
@@ -13,8 +13,8 @@ import akka.actor._
import akka.testkit.{ ImplicitSender, AkkaSpec }
object EventsourcedSpec {
- case class Cmd(data: Any)
- case class Evt(data: Any)
+ final case class Cmd(data: Any)
+ final case class Evt(data: Any)
abstract class ExampleProcessor(name: String) extends NamedProcessor(name) with EventsourcedProcessor {
var events: List[Any] = Nil
diff --git a/akka-persistence/src/test/scala/akka/persistence/FailureSpec.scala b/akka-persistence/src/test/scala/akka/persistence/FailureSpec.scala
index c850fe1fd2..d20c86a560 100644
--- a/akka-persistence/src/test/scala/akka/persistence/FailureSpec.scala
+++ b/akka-persistence/src/test/scala/akka/persistence/FailureSpec.scala
@@ -32,10 +32,10 @@ object FailureSpec {
val numMessages = 10
case object Start
- case class Done(ints: Vector[Int])
+ final case class Done(ints: Vector[Int])
- case class ProcessingFailure(i: Int)
- case class JournalingFailure(i: Int)
+ final case class ProcessingFailure(i: Int)
+ final case class JournalingFailure(i: Int)
trait ChaosSupport { this: Actor ⇒
def random = ThreadLocalRandom.current
diff --git a/akka-persistence/src/test/scala/akka/persistence/PerformanceSpec.scala b/akka-persistence/src/test/scala/akka/persistence/PerformanceSpec.scala
index fd0f22fa4f..5708ab46a3 100644
--- a/akka-persistence/src/test/scala/akka/persistence/PerformanceSpec.scala
+++ b/akka-persistence/src/test/scala/akka/persistence/PerformanceSpec.scala
@@ -19,7 +19,7 @@ object PerformanceSpec {
case object StartMeasure
case object StopMeasure
- case class FailAt(sequenceNr: Long)
+ final case class FailAt(sequenceNr: Long)
trait Measure extends { this: Actor ⇒
val NanoToSecond = 1000.0 * 1000 * 1000
diff --git a/akka-persistence/src/test/scala/akka/persistence/ProcessorSpec.scala b/akka-persistence/src/test/scala/akka/persistence/ProcessorSpec.scala
index f156ad2107..7a812bedc0 100644
--- a/akka-persistence/src/test/scala/akka/persistence/ProcessorSpec.scala
+++ b/akka-persistence/src/test/scala/akka/persistence/ProcessorSpec.scala
@@ -124,8 +124,8 @@ object ProcessorSpec {
override def receive = failOnReplayedA orElse super.receive
}
- case class Delete1(snr: Long)
- case class DeleteN(toSnr: Long)
+ final case class Delete1(snr: Long)
+ final case class DeleteN(toSnr: Long)
class DeleteMessageTestProcessor(name: String) extends RecoverTestProcessor(name) {
override def receive = {
diff --git a/akka-persistence/src/test/scala/akka/persistence/SnapshotSpec.scala b/akka-persistence/src/test/scala/akka/persistence/SnapshotSpec.scala
index fc0b884430..06256a14cd 100644
--- a/akka-persistence/src/test/scala/akka/persistence/SnapshotSpec.scala
+++ b/akka-persistence/src/test/scala/akka/persistence/SnapshotSpec.scala
@@ -29,8 +29,8 @@ object SnapshotSpec {
override def preStart() = ()
}
- case class Delete1(metadata: SnapshotMetadata)
- case class DeleteN(criteria: SnapshotSelectionCriteria)
+ final case class Delete1(metadata: SnapshotMetadata)
+ final case class DeleteN(criteria: SnapshotSelectionCriteria)
class DeleteSnapshotTestProcessor(name: String, probe: ActorRef) extends LoadSnapshotTestProcessor(name, probe) {
override def receive = {
diff --git a/akka-persistence/src/test/scala/akka/persistence/serialization/SerializerSpec.scala b/akka-persistence/src/test/scala/akka/persistence/serialization/SerializerSpec.scala
index 38c3ff0884..311c1090fb 100644
--- a/akka-persistence/src/test/scala/akka/persistence/serialization/SerializerSpec.scala
+++ b/akka-persistence/src/test/scala/akka/persistence/serialization/SerializerSpec.scala
@@ -204,8 +204,8 @@ class MessageSerializerRemotingSpec extends AkkaSpec(remote.withFallback(customS
}
}
-case class MyPayload(data: String)
-case class MySnapshot(data: String)
+final case class MyPayload(data: String)
+final case class MySnapshot(data: String)
class MyPayloadSerializer extends Serializer {
val MyPayloadClass = classOf[MyPayload]
diff --git a/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteDeliverySpec.scala b/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteDeliverySpec.scala
index 0b8a765fa5..e08073ec8b 100644
--- a/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteDeliverySpec.scala
+++ b/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteDeliverySpec.scala
@@ -25,7 +25,7 @@ object RemoteDeliveryMultiJvmSpec extends MultiNodeConfig {
commonConfig(debugConfig(on = false).withFallback(ConfigFactory.parseString("akka.loglevel=INFO")))
- case class Letter(n: Int, route: List[ActorRef])
+ final case class Letter(n: Int, route: List[ActorRef])
class Postman extends Actor {
def receive = {
diff --git a/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteNodeDeathWatchSpec.scala b/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteNodeDeathWatchSpec.scala
index f407d3c097..7b0017af80 100644
--- a/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteNodeDeathWatchSpec.scala
+++ b/akka-remote-tests/src/multi-jvm/scala/akka/remote/RemoteNodeDeathWatchSpec.scala
@@ -32,15 +32,15 @@ object RemoteNodeDeathWatchMultiJvmSpec extends MultiNodeConfig {
akka.remote.watch-failure-detector.acceptable-heartbeat-pause = 3 s
""")))
- case class WatchIt(watchee: ActorRef)
- case class UnwatchIt(watchee: ActorRef)
+ final case class WatchIt(watchee: ActorRef)
+ final case class UnwatchIt(watchee: ActorRef)
case object Ack
/**
* Forwarding `Terminated` to non-watching testActor is not possible,
* and therefore the `Terminated` message is wrapped.
*/
- case class WrappedTerminated(t: Terminated)
+ final case class WrappedTerminated(t: Terminated)
class ProbeActor(testActor: ActorRef) extends Actor {
def receive = {
diff --git a/akka-remote-tests/src/test/scala/akka/remote/testconductor/BarrierSpec.scala b/akka-remote-tests/src/test/scala/akka/remote/testconductor/BarrierSpec.scala
index c1382ebd90..f840e725df 100644
--- a/akka-remote-tests/src/test/scala/akka/remote/testconductor/BarrierSpec.scala
+++ b/akka-remote-tests/src/test/scala/akka/remote/testconductor/BarrierSpec.scala
@@ -14,7 +14,7 @@ import org.scalatest.BeforeAndAfterEach
import java.net.{ InetSocketAddress, InetAddress }
object BarrierSpec {
- case class Failed(ref: ActorRef, thr: Throwable)
+ final case class Failed(ref: ActorRef, thr: Throwable)
val config = """
akka.testconductor.barrier-timeout = 5s
akka.actor.provider = akka.remote.RemoteActorRefProvider
diff --git a/akka-remote/src/main/scala/akka/remote/AckedDelivery.scala b/akka-remote/src/main/scala/akka/remote/AckedDelivery.scala
index 6a7110a5db..c501553b2a 100644
--- a/akka-remote/src/main/scala/akka/remote/AckedDelivery.scala
+++ b/akka-remote/src/main/scala/akka/remote/AckedDelivery.scala
@@ -20,7 +20,7 @@ object SeqNo {
/**
* Implements a 64 bit sequence number with proper wrap-around ordering.
*/
-case class SeqNo(rawValue: Long) extends Ordered[SeqNo] {
+final case class SeqNo(rawValue: Long) extends Ordered[SeqNo] {
/**
* Checks if this sequence number is an immediate successor of the provided one.
@@ -65,7 +65,7 @@ trait HasSequenceNumber {
* @param cumulativeAck Represents the highest sequence number received.
* @param nacks Set of sequence numbers between the last delivered one and cumulativeAck that has been not yet received.
*/
-case class Ack(cumulativeAck: SeqNo, nacks: Set[SeqNo] = Set.empty) {
+final case class Ack(cumulativeAck: SeqNo, nacks: Set[SeqNo] = Set.empty) {
override def toString = s"ACK[$cumulativeAck, ${nacks.mkString("{", ", ", "}")}]"
}
@@ -87,7 +87,7 @@ class ResendUnfulfillableException
* @param maxSeq The maximum sequence number that has been stored in this buffer. Messages having lower sequence number
* will be not stored but rejected with [[java.lang.IllegalArgumentException]]
*/
-case class AckedSendBuffer[T <: HasSequenceNumber](
+final case class AckedSendBuffer[T <: HasSequenceNumber](
capacity: Int,
nonAcked: IndexedSeq[T] = Vector.empty[T],
nacked: IndexedSeq[T] = Vector.empty[T],
@@ -132,7 +132,7 @@ case class AckedSendBuffer[T <: HasSequenceNumber](
* @param cumulativeAck The highest sequence number received so far.
* @param buf Buffer of messages that are waiting for delivery
*/
-case class AckedReceiveBuffer[T <: HasSequenceNumber](
+final case class AckedReceiveBuffer[T <: HasSequenceNumber](
lastDelivered: SeqNo = SeqNo(-1),
cumulativeAck: SeqNo = SeqNo(-1),
buf: SortedSet[T] = TreeSet.empty[T])(implicit val seqOrdering: Ordering[T]) {
diff --git a/akka-remote/src/main/scala/akka/remote/Endpoint.scala b/akka-remote/src/main/scala/akka/remote/Endpoint.scala
index 8a43138a74..bd48e45e4c 100644
--- a/akka-remote/src/main/scala/akka/remote/Endpoint.scala
+++ b/akka-remote/src/main/scala/akka/remote/Endpoint.scala
@@ -120,21 +120,21 @@ private[remote] trait AssociationProblem
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[remote] case class ShutDownAssociation(localAddress: Address, remoteAddress: Address, cause: Throwable)
+private[remote] final case class ShutDownAssociation(localAddress: Address, remoteAddress: Address, cause: Throwable)
extends EndpointException("Shut down address: " + remoteAddress, cause) with AssociationProblem
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[remote] case class InvalidAssociation(localAddress: Address, remoteAddress: Address, cause: Throwable)
+private[remote] final case class InvalidAssociation(localAddress: Address, remoteAddress: Address, cause: Throwable)
extends EndpointException("Invalid address: " + remoteAddress, cause) with AssociationProblem
/**
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[remote] case class HopelessAssociation(localAddress: Address, remoteAddress: Address, uid: Option[Int], cause: Throwable)
+private[remote] final case class HopelessAssociation(localAddress: Address, remoteAddress: Address, uid: Option[Int], cause: Throwable)
extends EndpointException("Catastrophic association error.") with AssociationProblem
/**
@@ -161,7 +161,7 @@ private[remote] class OversizedPayloadException(msg: String) extends EndpointExc
private[remote] object ReliableDeliverySupervisor {
case object Ungate
case object AttemptSysMsgRedelivery
- case class GotUid(uid: Int)
+ final case class GotUid(uid: Int)
def props(
handleOrActive: Option[AkkaProtocolHandle],
@@ -451,17 +451,17 @@ private[remote] object EndpointWriter {
* used instead.
* @param handle Handle of the new inbound association.
*/
- case class TakeOver(handle: AkkaProtocolHandle) extends NoSerializationVerificationNeeded
- case class TookOver(writer: ActorRef, handle: AkkaProtocolHandle) extends NoSerializationVerificationNeeded
+ final case class TakeOver(handle: AkkaProtocolHandle) extends NoSerializationVerificationNeeded
+ final case class TookOver(writer: ActorRef, handle: AkkaProtocolHandle) extends NoSerializationVerificationNeeded
case object BackoffTimer
case object FlushAndStop
case object AckIdleCheckTimer
- case class StopReading(writer: ActorRef)
- case class StoppedReading(writer: ActorRef)
+ final case class StopReading(writer: ActorRef)
+ final case class StoppedReading(writer: ActorRef)
- case class Handle(handle: AkkaProtocolHandle) extends NoSerializationVerificationNeeded
+ final case class Handle(handle: AkkaProtocolHandle) extends NoSerializationVerificationNeeded
- case class OutboundAck(ack: Ack)
+ final case class OutboundAck(ack: Ack)
sealed trait State
case object Initializing extends State
diff --git a/akka-remote/src/main/scala/akka/remote/PhiAccrualFailureDetector.scala b/akka-remote/src/main/scala/akka/remote/PhiAccrualFailureDetector.scala
index e62d627210..7d33c56b7a 100644
--- a/akka-remote/src/main/scala/akka/remote/PhiAccrualFailureDetector.scala
+++ b/akka-remote/src/main/scala/akka/remote/PhiAccrualFailureDetector.scala
@@ -97,7 +97,7 @@ class PhiAccrualFailureDetector(
* Implement using optimistic lockless concurrency, all state is represented
* by this immutable case class and managed by an AtomicReference.
*/
- private case class State(history: HeartbeatHistory, timestamp: Option[Long])
+ private final case class State(history: HeartbeatHistory, timestamp: Option[Long])
private val state = new AtomicReference[State](State(history = firstHeartbeat, timestamp = None))
@@ -203,7 +203,7 @@ private[akka] object HeartbeatHistory {
* The stats (mean, variance, stdDeviation) are not defined for
* for empty HeartbeatHistory, i.e. throws AritmeticException.
*/
-private[akka] case class HeartbeatHistory private (
+private[akka] final case class HeartbeatHistory private (
maxSampleSize: Int,
intervals: immutable.IndexedSeq[Long],
intervalSum: Long,
diff --git a/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala b/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
index f305448cb5..4655aea6be 100644
--- a/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
@@ -23,7 +23,7 @@ import akka.dispatch.{ RequiresMessageQueue, UnboundedMessageQueueSemantics }
* INTERNAL API
*/
private[akka] object RemoteActorRefProvider {
- private case class Internals(transport: RemoteTransport, serialization: Serialization, remoteDaemon: InternalActorRef)
+ private final case class Internals(transport: RemoteTransport, serialization: Serialization, remoteDaemon: InternalActorRef)
extends NoSerializationVerificationNeeded
sealed trait TerminatorState
diff --git a/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala b/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala
index ca430135e1..a7e17e7687 100644
--- a/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemoteDaemon.scala
@@ -30,7 +30,7 @@ private[akka] sealed trait DaemonMsg
* INTERNAL API
*/
@SerialVersionUID(1L)
-private[akka] case class DaemonMsgCreate(props: Props, deploy: Deploy, path: String, supervisor: ActorRef) extends DaemonMsg
+private[akka] final case class DaemonMsgCreate(props: Props, deploy: Deploy, path: String, supervisor: ActorRef) extends DaemonMsg
/**
* INTERNAL API
diff --git a/akka-remote/src/main/scala/akka/remote/RemoteDeployer.scala b/akka-remote/src/main/scala/akka/remote/RemoteDeployer.scala
index 09bec28073..3b770fcb81 100644
--- a/akka-remote/src/main/scala/akka/remote/RemoteDeployer.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemoteDeployer.scala
@@ -13,7 +13,7 @@ import akka.routing.Pool
import akka.remote.routing.RemoteRouterConfig
@SerialVersionUID(1L)
-case class RemoteScope(node: Address) extends Scope {
+final case class RemoteScope(node: Address) extends Scope {
def withFallback(other: Scope): Scope = this
}
diff --git a/akka-remote/src/main/scala/akka/remote/RemoteDeploymentWatcher.scala b/akka-remote/src/main/scala/akka/remote/RemoteDeploymentWatcher.scala
index a7e7cb33ec..5a1ffeda7f 100644
--- a/akka-remote/src/main/scala/akka/remote/RemoteDeploymentWatcher.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemoteDeploymentWatcher.scala
@@ -15,7 +15,7 @@ import akka.dispatch.{ UnboundedMessageQueueSemantics, RequiresMessageQueue }
* INTERNAL API
*/
private[akka] object RemoteDeploymentWatcher {
- case class WatchRemote(actor: ActorRef, supervisor: ActorRef)
+ final case class WatchRemote(actor: ActorRef, supervisor: ActorRef)
}
/**
diff --git a/akka-remote/src/main/scala/akka/remote/RemoteWatcher.scala b/akka-remote/src/main/scala/akka/remote/RemoteWatcher.scala
index 69d84d7241..3d523c7963 100644
--- a/akka-remote/src/main/scala/akka/remote/RemoteWatcher.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemoteWatcher.scala
@@ -36,19 +36,19 @@ private[akka] object RemoteWatcher {
Props(classOf[RemoteWatcher], failureDetector, heartbeatInterval, unreachableReaperInterval,
heartbeatExpectedResponseAfter).withDeploy(Deploy.local)
- case class WatchRemote(watchee: ActorRef, watcher: ActorRef)
- case class UnwatchRemote(watchee: ActorRef, watcher: ActorRef)
- case class RewatchRemote(watchee: ActorRef, watcher: ActorRef)
+ final case class WatchRemote(watchee: ActorRef, watcher: ActorRef)
+ final case class UnwatchRemote(watchee: ActorRef, watcher: ActorRef)
+ final case class RewatchRemote(watchee: ActorRef, watcher: ActorRef)
@SerialVersionUID(1L)
class Rewatch(watchee: InternalActorRef, watcher: InternalActorRef) extends Watch(watchee, watcher)
@SerialVersionUID(1L) case object Heartbeat
- @SerialVersionUID(1L) case class HeartbeatRsp(addressUid: Int)
+ @SerialVersionUID(1L) final case class HeartbeatRsp(addressUid: Int)
// sent to self only
case object HeartbeatTick
case object ReapUnreachableTick
- case class ExpectedFirstHeartbeat(from: Address)
+ final case class ExpectedFirstHeartbeat(from: Address)
// test purpose
object Stats {
@@ -56,7 +56,7 @@ private[akka] object RemoteWatcher {
def counts(watching: Int, watchingNodes: Int): Stats =
new Stats(watching, watchingNodes)(Set.empty)
}
- case class Stats(watching: Int, watchingNodes: Int)(val watchingRefs: Set[(ActorRef, ActorRef)]) {
+ final case class Stats(watching: Int, watchingNodes: Int)(val watchingRefs: Set[(ActorRef, ActorRef)]) {
override def toString: String = {
def formatWatchingRefs: String =
if (watchingRefs.isEmpty) ""
diff --git a/akka-remote/src/main/scala/akka/remote/Remoting.scala b/akka-remote/src/main/scala/akka/remote/Remoting.scala
index 6f81a30d16..d34b486692 100644
--- a/akka-remote/src/main/scala/akka/remote/Remoting.scala
+++ b/akka-remote/src/main/scala/akka/remote/Remoting.scala
@@ -33,7 +33,7 @@ private[remote] object AddressUrlEncoder {
/**
* INTERNAL API
*/
-private[remote] case class RARP(provider: RemoteActorRefProvider) extends Extension {
+private[remote] final case class RARP(provider: RemoteActorRefProvider) extends Extension {
def configureDispatcher(props: Props): Props = provider.remoteSettings.configureDispatcher(props)
}
/**
@@ -81,7 +81,7 @@ private[remote] object Remoting {
}
}
- case class RegisterTransportActor(props: Props, name: String) extends NoSerializationVerificationNeeded
+ final case class RegisterTransportActor(props: Props, name: String) extends NoSerializationVerificationNeeded
private[Remoting] class TransportSupervisor extends Actor with RequiresMessageQueue[UnboundedMessageQueueSemantics] {
override def supervisorStrategy = OneForOneStrategy() {
@@ -233,10 +233,10 @@ private[remote] object EndpointManager {
// Messages between Remoting and EndpointManager
sealed trait RemotingCommand extends NoSerializationVerificationNeeded
- case class Listen(addressesPromise: Promise[Seq[(AkkaProtocolTransport, Address)]]) extends RemotingCommand
+ final case class Listen(addressesPromise: Promise[Seq[(AkkaProtocolTransport, Address)]]) extends RemotingCommand
case object StartupFinished extends RemotingCommand
case object ShutdownAndFlush extends RemotingCommand
- case class Send(message: Any, senderOption: Option[ActorRef], recipient: RemoteActorRef, seqOpt: Option[SeqNo] = None)
+ final case class Send(message: Any, senderOption: Option[ActorRef], recipient: RemoteActorRef, seqOpt: Option[SeqNo] = None)
extends RemotingCommand with HasSequenceNumber {
override def toString = s"Remote message $senderOption -> $recipient"
@@ -244,22 +244,22 @@ private[remote] object EndpointManager {
// acknowledged delivery buffers
def seq = seqOpt.get
}
- case class Quarantine(remoteAddress: Address, uid: Option[Int]) extends RemotingCommand
- case class ManagementCommand(cmd: Any) extends RemotingCommand
- case class ManagementCommandAck(status: Boolean)
+ final case class Quarantine(remoteAddress: Address, uid: Option[Int]) extends RemotingCommand
+ final case class ManagementCommand(cmd: Any) extends RemotingCommand
+ final case class ManagementCommandAck(status: Boolean)
// Messages internal to EndpointManager
case object Prune extends NoSerializationVerificationNeeded
- case class ListensResult(addressesPromise: Promise[Seq[(AkkaProtocolTransport, Address)]],
- results: Seq[(AkkaProtocolTransport, Address, Promise[AssociationEventListener])])
+ final case class ListensResult(addressesPromise: Promise[Seq[(AkkaProtocolTransport, Address)]],
+ results: Seq[(AkkaProtocolTransport, Address, Promise[AssociationEventListener])])
extends NoSerializationVerificationNeeded
- case class ListensFailure(addressesPromise: Promise[Seq[(AkkaProtocolTransport, Address)]], cause: Throwable)
+ final case class ListensFailure(addressesPromise: Promise[Seq[(AkkaProtocolTransport, Address)]], cause: Throwable)
extends NoSerializationVerificationNeeded
// Helper class to store address pairs
- case class Link(localAddress: Address, remoteAddress: Address)
+ final case class Link(localAddress: Address, remoteAddress: Address)
- case class ResendState(uid: Int, buffer: AckedReceiveBuffer[Message])
+ final case class ResendState(uid: Int, buffer: AckedReceiveBuffer[Message])
sealed trait EndpointPolicy {
@@ -268,13 +268,13 @@ private[remote] object EndpointManager {
*/
def isTombstone: Boolean
}
- case class Pass(endpoint: ActorRef) extends EndpointPolicy {
+ final case class Pass(endpoint: ActorRef) extends EndpointPolicy {
override def isTombstone: Boolean = false
}
- case class Gated(timeOfRelease: Deadline) extends EndpointPolicy {
+ final case class Gated(timeOfRelease: Deadline) extends EndpointPolicy {
override def isTombstone: Boolean = true
}
- case class Quarantined(uid: Int, timeOfRelease: Deadline) extends EndpointPolicy {
+ final case class Quarantined(uid: Int, timeOfRelease: Deadline) extends EndpointPolicy {
override def isTombstone: Boolean = true
}
diff --git a/akka-remote/src/main/scala/akka/remote/RemotingLifecycleEvent.scala b/akka-remote/src/main/scala/akka/remote/RemotingLifecycleEvent.scala
index 933fd07ce1..e8930ab233 100644
--- a/akka-remote/src/main/scala/akka/remote/RemotingLifecycleEvent.scala
+++ b/akka-remote/src/main/scala/akka/remote/RemotingLifecycleEvent.scala
@@ -79,7 +79,7 @@ final case class RemotingErrorEvent(cause: Throwable) extends RemotingLifecycleE
}
@SerialVersionUID(1L)
-case class QuarantinedEvent(address: Address, uid: Int) extends RemotingLifecycleEvent {
+final case class QuarantinedEvent(address: Address, uid: Int) extends RemotingLifecycleEvent {
override def logLevel: Logging.LogLevel = Logging.WarningLevel
override val toString: String =
s"Association to [$address] having UID [$uid] is irrecoverably failed. UID is now quarantined and all " +
diff --git a/akka-remote/src/main/scala/akka/remote/transport/AbstractTransportAdapter.scala b/akka-remote/src/main/scala/akka/remote/transport/AbstractTransportAdapter.scala
index 22d631977d..809661c889 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/AbstractTransportAdapter.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/AbstractTransportAdapter.scala
@@ -122,11 +122,11 @@ abstract class AbstractTransportAdapterHandle(val originalLocalAddress: Address,
object ActorTransportAdapter {
sealed trait TransportOperation extends NoSerializationVerificationNeeded
- case class ListenerRegistered(listener: AssociationEventListener) extends TransportOperation
- case class AssociateUnderlying(remoteAddress: Address, statusPromise: Promise[AssociationHandle]) extends TransportOperation
- case class ListenUnderlying(listenAddress: Address,
- upstreamListener: Future[AssociationEventListener]) extends TransportOperation
- case class DisassociateUnderlying(info: DisassociateInfo = AssociationHandle.Unknown) extends TransportOperation
+ final case class ListenerRegistered(listener: AssociationEventListener) extends TransportOperation
+ final case class AssociateUnderlying(remoteAddress: Address, statusPromise: Promise[AssociationHandle]) extends TransportOperation
+ final case class ListenUnderlying(listenAddress: Address,
+ upstreamListener: Future[AssociationEventListener]) extends TransportOperation
+ final case class DisassociateUnderlying(info: DisassociateInfo = AssociationHandle.Unknown) extends TransportOperation
implicit val AskTimeout = Timeout(5.seconds)
}
diff --git a/akka-remote/src/main/scala/akka/remote/transport/AkkaPduCodec.scala b/akka-remote/src/main/scala/akka/remote/transport/AkkaPduCodec.scala
index 24be26d447..96402403cf 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/AkkaPduCodec.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/AkkaPduCodec.scala
@@ -29,16 +29,16 @@ private[remote] object AkkaPduCodec {
* Trait that represents decoded Akka PDUs (Protocol Data Units)
*/
sealed trait AkkaPdu
- case class Associate(info: HandshakeInfo) extends AkkaPdu
- case class Disassociate(reason: AssociationHandle.DisassociateInfo) extends AkkaPdu
+ final case class Associate(info: HandshakeInfo) extends AkkaPdu
+ final case class Disassociate(reason: AssociationHandle.DisassociateInfo) extends AkkaPdu
case object Heartbeat extends AkkaPdu
- case class Payload(bytes: ByteString) extends AkkaPdu
+ final case class Payload(bytes: ByteString) extends AkkaPdu
- case class Message(recipient: InternalActorRef,
- recipientAddress: Address,
- serializedMessage: SerializedMessage,
- senderOption: Option[ActorRef],
- seqOption: Option[SeqNo]) extends HasSequenceNumber {
+ final case class Message(recipient: InternalActorRef,
+ recipientAddress: Address,
+ serializedMessage: SerializedMessage,
+ senderOption: Option[ActorRef],
+ seqOption: Option[SeqNo]) extends HasSequenceNumber {
def reliableDeliveryEnabled = seqOption.isDefined
@@ -68,7 +68,7 @@ private[remote] trait AkkaPduCodec {
* form as a [[akka.util.ByteString]].
*
* For the same effect the constructXXX methods might be called directly, taking method parameters instead of the
- * [[akka.remote.transport.AkkaPduCodec.AkkaPdu]] case classes.
+ * [[akka.remote.transport.AkkaPduCodec.AkkaPdu]] final case classes.
*
* @param pdu
* The Akka Protocol Data Unit to be encoded
diff --git a/akka-remote/src/main/scala/akka/remote/transport/AkkaProtocolTransport.scala b/akka-remote/src/main/scala/akka/remote/transport/AkkaProtocolTransport.scala
index 76fbd1a7ca..558688005b 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/AkkaProtocolTransport.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/AkkaProtocolTransport.scala
@@ -50,13 +50,13 @@ private[remote] object AkkaProtocolTransport { //Couldn't these go into the Remo
val AkkaOverhead: Int = 0 //Don't know yet
val UniqueId = new java.util.concurrent.atomic.AtomicInteger(0)
- case class AssociateUnderlyingRefuseUid(
+ final case class AssociateUnderlyingRefuseUid(
remoteAddress: Address,
statusPromise: Promise[AssociationHandle],
refuseUid: Option[Int]) extends NoSerializationVerificationNeeded
}
-case class HandshakeInfo(origin: Address, uid: Int, cookie: Option[String])
+final case class HandshakeInfo(origin: Address, uid: Int, cookie: Option[String])
/**
* Implementation of the Akka protocol as a Transport that wraps an underlying Transport instance.
@@ -213,31 +213,31 @@ private[transport] object ProtocolStateActor {
case object HeartbeatTimer extends NoSerializationVerificationNeeded
- case class Handle(handle: AssociationHandle) extends NoSerializationVerificationNeeded
+ final case class Handle(handle: AssociationHandle) extends NoSerializationVerificationNeeded
- case class HandleListenerRegistered(listener: HandleEventListener) extends NoSerializationVerificationNeeded
+ final case class HandleListenerRegistered(listener: HandleEventListener) extends NoSerializationVerificationNeeded
sealed trait ProtocolStateData
trait InitialProtocolStateData extends ProtocolStateData
// Neither the underlying, nor the provided transport is associated
- case class OutboundUnassociated(remoteAddress: Address, statusPromise: Promise[AssociationHandle], transport: Transport)
+ final case class OutboundUnassociated(remoteAddress: Address, statusPromise: Promise[AssociationHandle], transport: Transport)
extends InitialProtocolStateData
// The underlying transport is associated, but the handshake of the akka protocol is not yet finished
- case class OutboundUnderlyingAssociated(statusPromise: Promise[AssociationHandle], wrappedHandle: AssociationHandle)
+ final case class OutboundUnderlyingAssociated(statusPromise: Promise[AssociationHandle], wrappedHandle: AssociationHandle)
extends ProtocolStateData
// The underlying transport is associated, but the handshake of the akka protocol is not yet finished
- case class InboundUnassociated(associationListener: AssociationEventListener, wrappedHandle: AssociationHandle)
+ final case class InboundUnassociated(associationListener: AssociationEventListener, wrappedHandle: AssociationHandle)
extends InitialProtocolStateData
// Both transports are associated, but the handler for the handle has not yet been provided
- case class AssociatedWaitHandler(handleListener: Future[HandleEventListener], wrappedHandle: AssociationHandle,
- queue: immutable.Queue[ByteString])
+ final case class AssociatedWaitHandler(handleListener: Future[HandleEventListener], wrappedHandle: AssociationHandle,
+ queue: immutable.Queue[ByteString])
extends ProtocolStateData
- case class ListenerReady(listener: HandleEventListener, wrappedHandle: AssociationHandle)
+ final case class ListenerReady(listener: HandleEventListener, wrappedHandle: AssociationHandle)
extends ProtocolStateData
case object TimeoutReason
diff --git a/akka-remote/src/main/scala/akka/remote/transport/FailureInjectorTransportAdapter.scala b/akka-remote/src/main/scala/akka/remote/transport/FailureInjectorTransportAdapter.scala
index 98619b85b5..0e29a4ff58 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/FailureInjectorTransportAdapter.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/FailureInjectorTransportAdapter.scala
@@ -17,7 +17,7 @@ import scala.util.control.NoStackTrace
import scala.util.Try
@SerialVersionUID(1L)
-case class FailureInjectorException(msg: String) extends AkkaException(msg) with NoStackTrace
+final case class FailureInjectorException(msg: String) extends AkkaException(msg) with NoStackTrace
class FailureInjectorProvider extends TransportAdapterProvider {
@@ -34,9 +34,9 @@ private[remote] object FailureInjectorTransportAdapter {
trait FailureInjectorCommand
@SerialVersionUID(1L)
- case class All(mode: GremlinMode)
+ final case class All(mode: GremlinMode)
@SerialVersionUID(1L)
- case class One(remoteAddress: Address, mode: GremlinMode)
+ final case class One(remoteAddress: Address, mode: GremlinMode)
sealed trait GremlinMode
@SerialVersionUID(1L)
@@ -47,7 +47,7 @@ private[remote] object FailureInjectorTransportAdapter {
def getInstance = this
}
@SerialVersionUID(1L)
- case class Drop(outboundDropP: Double, inboundDropP: Double) extends GremlinMode
+ final case class Drop(outboundDropP: Double, inboundDropP: Double) extends GremlinMode
}
/**
@@ -141,8 +141,8 @@ private[remote] class FailureInjectorTransportAdapter(wrappedTransport: Transpor
/**
* INTERNAL API
*/
-private[remote] case class FailureInjectorHandle(_wrappedHandle: AssociationHandle,
- private val gremlinAdapter: FailureInjectorTransportAdapter)
+private[remote] final case class FailureInjectorHandle(_wrappedHandle: AssociationHandle,
+ private val gremlinAdapter: FailureInjectorTransportAdapter)
extends AbstractTransportAdapterHandle(_wrappedHandle, FailureInjectorSchemeIdentifier)
with HandleEventListener {
import gremlinAdapter.extendedSystem.dispatcher
diff --git a/akka-remote/src/main/scala/akka/remote/transport/TestTransport.scala b/akka-remote/src/main/scala/akka/remote/transport/TestTransport.scala
index a5e9de4200..317f0a48ca 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/TestTransport.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/TestTransport.scala
@@ -275,11 +275,11 @@ object TestTransport {
*/
sealed trait Activity
- case class ListenAttempt(boundAddress: Address) extends Activity
- case class AssociateAttempt(localAddress: Address, remoteAddress: Address) extends Activity
- case class ShutdownAttempt(boundAddress: Address) extends Activity
- case class WriteAttempt(sender: Address, recipient: Address, payload: ByteString) extends Activity
- case class DisassociateAttempt(requester: Address, remote: Address) extends Activity
+ final case class ListenAttempt(boundAddress: Address) extends Activity
+ final case class AssociateAttempt(localAddress: Address, remoteAddress: Address) extends Activity
+ final case class ShutdownAttempt(boundAddress: Address) extends Activity
+ final case class WriteAttempt(sender: Address, recipient: Address, payload: ByteString) extends Activity
+ final case class DisassociateAttempt(requester: Address, remote: Address) extends Activity
/**
* Shared state among [[akka.remote.transport.TestTransport]] instances. Coordinates the transports and the means
@@ -445,7 +445,7 @@ object AssociationRegistry {
def clear(): Unit = this.synchronized { registries.clear() }
}
-case class TestAssociationHandle(
+final case class TestAssociationHandle(
localAddress: Address,
remoteAddress: Address,
transport: TestTransport,
diff --git a/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala b/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala
index 89e05dc5e7..1f2efef29d 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala
@@ -80,7 +80,7 @@ object ThrottlerTransportAdapter {
}
@SerialVersionUID(1L)
- case class SetThrottle(address: Address, direction: Direction, mode: ThrottleMode)
+ final case class SetThrottle(address: Address, direction: Direction, mode: ThrottleMode)
@SerialVersionUID(1L)
case object SetThrottleAck {
@@ -96,7 +96,7 @@ object ThrottlerTransportAdapter {
}
@SerialVersionUID(1L)
- case class TokenBucket(capacity: Int, tokensPerSecond: Double, nanoTimeOfLastSend: Long, availableTokens: Int)
+ final case class TokenBucket(capacity: Int, tokensPerSecond: Double, nanoTimeOfLastSend: Long, availableTokens: Int)
extends ThrottleMode {
private def isAvailable(nanoTimeOfSend: Long, tokens: Int): Boolean =
@@ -148,7 +148,7 @@ object ThrottlerTransportAdapter {
* Management Command to force dissocation of an address.
*/
@SerialVersionUID(1L)
- case class ForceDisassociate(address: Address)
+ final case class ForceDisassociate(address: Address)
@SerialVersionUID(1L)
case object ForceDisassociateAck {
@@ -183,16 +183,16 @@ class ThrottlerTransportAdapter(_wrappedTransport: Transport, _system: ExtendedA
* INTERNAL API
*/
private[transport] object ThrottlerManager {
- case class Checkin(origin: Address, handle: ThrottlerHandle) extends NoSerializationVerificationNeeded
+ final case class Checkin(origin: Address, handle: ThrottlerHandle) extends NoSerializationVerificationNeeded
- case class AssociateResult(handle: AssociationHandle, statusPromise: Promise[AssociationHandle])
+ final case class AssociateResult(handle: AssociationHandle, statusPromise: Promise[AssociationHandle])
extends NoSerializationVerificationNeeded
- case class ListenerAndMode(listener: HandleEventListener, mode: ThrottleMode) extends NoSerializationVerificationNeeded
+ final case class ListenerAndMode(listener: HandleEventListener, mode: ThrottleMode) extends NoSerializationVerificationNeeded
- case class Handle(handle: ThrottlerHandle) extends NoSerializationVerificationNeeded
+ final case class Handle(handle: ThrottlerHandle) extends NoSerializationVerificationNeeded
- case class Listener(listener: HandleEventListener) extends NoSerializationVerificationNeeded
+ final case class Listener(listener: HandleEventListener) extends NoSerializationVerificationNeeded
}
/**
@@ -337,7 +337,7 @@ private[transport] object ThrottledAssociation {
sealed trait ThrottlerData
case object Uninitialized extends ThrottlerData
- case class ExposedHandle(handle: ThrottlerHandle) extends ThrottlerData
+ final case class ExposedHandle(handle: ThrottlerHandle) extends ThrottlerData
}
/**
@@ -501,7 +501,7 @@ private[transport] class ThrottledAssociation(
/**
* INTERNAL API
*/
-private[transport] case class ThrottlerHandle(_wrappedHandle: AssociationHandle, throttlerActor: ActorRef)
+private[transport] final case class ThrottlerHandle(_wrappedHandle: AssociationHandle, throttlerActor: ActorRef)
extends AbstractTransportAdapterHandle(_wrappedHandle, SchemeIdentifier) {
private[transport] val outboundThrottleMode = new AtomicReference[ThrottleMode](Unthrottled)
diff --git a/akka-remote/src/main/scala/akka/remote/transport/Transport.scala b/akka-remote/src/main/scala/akka/remote/transport/Transport.scala
index be7f0175ff..4e71b4e536 100644
--- a/akka-remote/src/main/scala/akka/remote/transport/Transport.scala
+++ b/akka-remote/src/main/scala/akka/remote/transport/Transport.scala
@@ -19,7 +19,7 @@ object Transport {
* hostname, etc.).
*/
@SerialVersionUID(1L)
- case class InvalidAssociationException(msg: String, cause: Throwable = null) extends AkkaException(msg, cause) with NoStackTrace
+ final case class InvalidAssociationException(msg: String, cause: Throwable = null) extends AkkaException(msg, cause) with NoStackTrace
/**
* Message sent to a [[akka.remote.transport.Transport.AssociationEventListener]] registered to a transport
@@ -28,7 +28,7 @@ object Transport {
* @param association
* The handle for the inbound association.
*/
- case class InboundAssociation(association: AssociationHandle) extends AssociationEvent
+ final case class InboundAssociation(association: AssociationHandle) extends AssociationEvent
/**
* An interface that needs to be implemented by the user of a transport to listen to association events
@@ -47,7 +47,7 @@ object Transport {
* forward event objects as messages to the provided ActorRef.
* @param actor
*/
- case class ActorAssociationEventListener(actor: ActorRef) extends AssociationEventListener {
+ final case class ActorAssociationEventListener(actor: ActorRef) extends AssociationEventListener {
override def notify(ev: AssociationEvent): Unit = actor ! ev
}
@@ -154,7 +154,7 @@ object AssociationHandle {
* @param payload
* The raw bytes that were sent by the remote endpoint.
*/
- case class InboundPayload(payload: ByteString) extends HandleEvent {
+ final case class InboundPayload(payload: ByteString) extends HandleEvent {
override def toString: String = s"InboundPayload(size = ${payload.length} bytes)"
}
@@ -164,7 +164,7 @@ object AssociationHandle {
* @param info
* information about the reason of disassociation
*/
- case class Disassociated(info: DisassociateInfo) extends HandleEvent
+ final case class Disassociated(info: DisassociateInfo) extends HandleEvent
/**
* Supertype of possible disassociation reasons
@@ -192,7 +192,7 @@ object AssociationHandle {
* forward event objects as messages to the provided ActorRef.
* @param actor
*/
- case class ActorHandleEventListener(actor: ActorRef) extends HandleEventListener {
+ final case class ActorHandleEventListener(actor: ActorRef) extends HandleEventListener {
override def notify(ev: HandleEvent): Unit = actor ! ev
}
}
diff --git a/akka-remote/src/test/scala/akka/remote/AckedDeliverySpec.scala b/akka-remote/src/test/scala/akka/remote/AckedDeliverySpec.scala
index 128d73b47d..d18bb9b285 100644
--- a/akka-remote/src/test/scala/akka/remote/AckedDeliverySpec.scala
+++ b/akka-remote/src/test/scala/akka/remote/AckedDeliverySpec.scala
@@ -9,7 +9,7 @@ import scala.concurrent.forkjoin.ThreadLocalRandom
object AckedDeliverySpec {
- case class Sequenced(seq: SeqNo, body: String) extends HasSequenceNumber {
+ final case class Sequenced(seq: SeqNo, body: String) extends HasSequenceNumber {
override def toString = s"MSG[${seq.rawValue}]"
}
diff --git a/akka-remote/src/test/scala/akka/remote/RemoteWatcherSpec.scala b/akka-remote/src/test/scala/akka/remote/RemoteWatcherSpec.scala
index 312c66cf2d..ac82ef97ba 100644
--- a/akka-remote/src/test/scala/akka/remote/RemoteWatcherSpec.scala
+++ b/akka-remote/src/test/scala/akka/remote/RemoteWatcherSpec.scala
@@ -45,8 +45,8 @@ object RemoteWatcherSpec {
}
object TestRemoteWatcher {
- case class AddressTerm(address: Address)
- case class Quarantined(address: Address, uid: Option[Int])
+ final case class AddressTerm(address: Address)
+ final case class Quarantined(address: Address, uid: Option[Int])
}
class TestRemoteWatcher(heartbeatExpectedResponseAfter: FiniteDuration) extends RemoteWatcher(createFailureDetector,
diff --git a/akka-remote/src/test/scala/akka/remote/RemotingSpec.scala b/akka-remote/src/test/scala/akka/remote/RemotingSpec.scala
index 56f9358a75..5e179535ab 100644
--- a/akka-remote/src/test/scala/akka/remote/RemotingSpec.scala
+++ b/akka-remote/src/test/scala/akka/remote/RemotingSpec.scala
@@ -17,8 +17,8 @@ import scala.concurrent.forkjoin.ThreadLocalRandom
object RemotingSpec {
- case class ActorForReq(s: String)
- case class ActorSelReq(s: String)
+ final case class ActorForReq(s: String)
+ final case class ActorSelReq(s: String)
class Echo1 extends Actor {
var target: ActorRef = context.system.deadLetters
diff --git a/akka-remote/src/test/scala/akka/remote/Ticket1978CommunicationSpec.scala b/akka-remote/src/test/scala/akka/remote/Ticket1978CommunicationSpec.scala
index 9585b2ae37..7bf6b3a9ae 100644
--- a/akka-remote/src/test/scala/akka/remote/Ticket1978CommunicationSpec.scala
+++ b/akka-remote/src/test/scala/akka/remote/Ticket1978CommunicationSpec.scala
@@ -54,7 +54,7 @@ object Configuration {
}
"""
- case class CipherConfig(runTest: Boolean, config: Config, cipher: String, localPort: Int, remotePort: Int)
+ final case class CipherConfig(runTest: Boolean, config: Config, cipher: String, localPort: Int, remotePort: Int)
def getCipherConfig(cipher: String, enabled: String*): CipherConfig = {
val localPort, remotePort = { val s = new java.net.ServerSocket(0); try s.getLocalPort finally s.close() }
diff --git a/akka-remote/src/test/scala/akka/remote/UntrustedSpec.scala b/akka-remote/src/test/scala/akka/remote/UntrustedSpec.scala
index 7bfcc8c8d4..2ec7090a38 100644
--- a/akka-remote/src/test/scala/akka/remote/UntrustedSpec.scala
+++ b/akka-remote/src/test/scala/akka/remote/UntrustedSpec.scala
@@ -26,8 +26,8 @@ import akka.event.Logging
import akka.testkit.EventFilter
object UntrustedSpec {
- case class IdentifyReq(path: String)
- case class StopChild(name: String)
+ final case class IdentifyReq(path: String)
+ final case class StopChild(name: String)
class Receptionist(testActor: ActorRef) extends Actor {
context.actorOf(Props(classOf[Child], testActor), "child1")
diff --git a/akka-remote/src/test/scala/akka/remote/transport/ThrottlerTransportAdapterSpec.scala b/akka-remote/src/test/scala/akka/remote/transport/ThrottlerTransportAdapterSpec.scala
index d97a2a52de..6c1cfbe39a 100644
--- a/akka-remote/src/test/scala/akka/remote/transport/ThrottlerTransportAdapterSpec.scala
+++ b/akka-remote/src/test/scala/akka/remote/transport/ThrottlerTransportAdapterSpec.scala
@@ -60,7 +60,7 @@ object ThrottlerTransportAdapterSpec {
}
}
- case class Lost(msg: String)
+ final case class Lost(msg: String)
}
class ThrottlerTransportAdapterSpec extends AkkaSpec(configA) with ImplicitSender with DefaultTimeout {
diff --git a/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/stats/StatsMessages.scala b/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/stats/StatsMessages.scala
index 916dfae294..4617a15d3b 100644
--- a/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/stats/StatsMessages.scala
+++ b/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/stats/StatsMessages.scala
@@ -1,7 +1,7 @@
package sample.cluster.stats
//#messages
-case class StatsJob(text: String)
-case class StatsResult(meanWordLength: Double)
-case class JobFailed(reason: String)
+final case class StatsJob(text: String)
+final case class StatsResult(meanWordLength: Double)
+final case class JobFailed(reason: String)
//#messages
diff --git a/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/transformation/TransformationMessages.scala b/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/transformation/TransformationMessages.scala
index 0d4ac7c02a..2ebf20f7a3 100644
--- a/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/transformation/TransformationMessages.scala
+++ b/akka-samples/akka-sample-cluster-scala/src/main/scala/sample/cluster/transformation/TransformationMessages.scala
@@ -1,8 +1,8 @@
package sample.cluster.transformation
//#messages
-case class TransformationJob(text: String)
-case class TransformationResult(text: String)
-case class JobFailed(reason: String, job: TransformationJob)
+final case class TransformationJob(text: String)
+final case class TransformationResult(text: String)
+final case class JobFailed(reason: String, job: TransformationJob)
case object BackendRegistration
//#messages
diff --git a/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/become/DiningHakkersOnBecome.scala b/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/become/DiningHakkersOnBecome.scala
index e9c3cdc17c..558c1df637 100644
--- a/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/become/DiningHakkersOnBecome.scala
+++ b/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/become/DiningHakkersOnBecome.scala
@@ -10,10 +10,10 @@ import scala.concurrent.duration._
* First we define our messages, they basically speak for themselves
*/
sealed trait DiningHakkerMessage
-case class Busy(chopstick: ActorRef) extends DiningHakkerMessage
-case class Put(hakker: ActorRef) extends DiningHakkerMessage
-case class Take(hakker: ActorRef) extends DiningHakkerMessage
-case class Taken(chopstick: ActorRef) extends DiningHakkerMessage
+final case class Busy(chopstick: ActorRef) extends DiningHakkerMessage
+final case class Put(hakker: ActorRef) extends DiningHakkerMessage
+final case class Take(hakker: ActorRef) extends DiningHakkerMessage
+final case class Taken(chopstick: ActorRef) extends DiningHakkerMessage
object Eat extends DiningHakkerMessage
object Think extends DiningHakkerMessage
diff --git a/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/fsm/DiningHakkersOnFsm.scala b/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/fsm/DiningHakkersOnFsm.scala
index 2f0e1b171e..9f93c5b836 100644
--- a/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/fsm/DiningHakkersOnFsm.scala
+++ b/akka-samples/akka-sample-fsm-scala/src/main/scala/sample/fsm/DiningHakkersOnFsm.scala
@@ -13,8 +13,8 @@ import scala.concurrent.duration._
sealed trait ChopstickMessage
object Take extends ChopstickMessage
object Put extends ChopstickMessage
-case class Taken(chopstick: ActorRef) extends ChopstickMessage
-case class Busy(chopstick: ActorRef) extends ChopstickMessage
+final case class Taken(chopstick: ActorRef) extends ChopstickMessage
+final case class Busy(chopstick: ActorRef) extends ChopstickMessage
/**
* Some states the chopstick can be in
@@ -26,7 +26,7 @@ case object Taken extends ChopstickState
/**
* Some state container for the chopstick
*/
-case class TakenBy(hakker: ActorRef)
+final case class TakenBy(hakker: ActorRef)
/*
* A chopstick is an actor, it can be taken, and put back
@@ -77,7 +77,7 @@ case object Eating extends FSMHakkerState
/**
* Some state container to keep track of which chopsticks we have
*/
-case class TakenChopsticks(left: Option[ActorRef], right: Option[ActorRef])
+final case class TakenChopsticks(left: Option[ActorRef], right: Option[ActorRef])
/*
* A fsm hakker is an awesome dude or dudette who either thinks about hacking or has to eat ;-)
diff --git a/akka-samples/akka-sample-osgi-dining-hakkers/api/src/main/scala/akka/sample/osgi/api/DiningHakkersMessages.scala b/akka-samples/akka-sample-osgi-dining-hakkers/api/src/main/scala/akka/sample/osgi/api/DiningHakkersMessages.scala
index 0a6a03b929..a7d008f3a8 100644
--- a/akka-samples/akka-sample-osgi-dining-hakkers/api/src/main/scala/akka/sample/osgi/api/DiningHakkersMessages.scala
+++ b/akka-samples/akka-sample-osgi-dining-hakkers/api/src/main/scala/akka/sample/osgi/api/DiningHakkersMessages.scala
@@ -7,13 +7,13 @@ import akka.actor.ActorRef
*/
sealed trait DiningHakkerMessage extends Serializable
-case class Busy(chopstick: ActorRef) extends DiningHakkerMessage
+final case class Busy(chopstick: ActorRef) extends DiningHakkerMessage
-case class Put(hakker: ActorRef) extends DiningHakkerMessage
+final case class Put(hakker: ActorRef) extends DiningHakkerMessage
-case class Take(hakker: ActorRef) extends DiningHakkerMessage
+final case class Take(hakker: ActorRef) extends DiningHakkerMessage
-case class Taken(chopstick: ActorRef) extends DiningHakkerMessage
+final case class Taken(chopstick: ActorRef) extends DiningHakkerMessage
case object Eat extends DiningHakkerMessage
@@ -21,14 +21,14 @@ case object Think extends DiningHakkerMessage
case object Identify extends DiningHakkerMessage
-case class Identification(name: String, busyWith: String) extends DiningHakkerMessage
+final case class Identification(name: String, busyWith: String) extends DiningHakkerMessage
case object SubscribeToHakkerStateChanges extends DiningHakkerMessage
-case class HakkerStateChange(hakkerName: String, from: String, to: String)
+final case class HakkerStateChange(hakkerName: String, from: String, to: String)
-case class TrackHakker(hakker: ActorRef) extends DiningHakkerMessage
+final case class TrackHakker(hakker: ActorRef) extends DiningHakkerMessage
-case class GetEatingCount(hakkerName: String) extends DiningHakkerMessage
+final case class GetEatingCount(hakkerName: String) extends DiningHakkerMessage
-case class EatingCount(hakkerName: String, count: Int) extends DiningHakkerMessage
+final case class EatingCount(hakkerName: String, count: Int) extends DiningHakkerMessage
diff --git a/akka-samples/akka-sample-osgi-dining-hakkers/core/src/main/scala/akka/sample/osgi/internal/HakkerTracker.scala b/akka-samples/akka-sample-osgi-dining-hakkers/core/src/main/scala/akka/sample/osgi/internal/HakkerTracker.scala
index 205b273409..7c62968b69 100644
--- a/akka-samples/akka-sample-osgi-dining-hakkers/core/src/main/scala/akka/sample/osgi/internal/HakkerTracker.scala
+++ b/akka-samples/akka-sample-osgi-dining-hakkers/core/src/main/scala/akka/sample/osgi/internal/HakkerTracker.scala
@@ -10,13 +10,13 @@ import akka.sample.osgi.api.TrackHakker
object HakkerTracker {
sealed trait DomainEvent
- case class StartedEating(name: String) extends DomainEvent
- case class StoppedEating(name: String) extends DomainEvent
+ final case class StartedEating(name: String) extends DomainEvent
+ final case class StoppedEating(name: String) extends DomainEvent
object State {
val empty: State = new State(Map.empty)
}
- case class State private (eatingCounts: Map[String, Int]) {
+ final case class State private (eatingCounts: Map[String, Int]) {
def updated(event: DomainEvent): State = event match {
case StartedEating(name) =>
val c = eatingCounts.getOrElse(name, 0) + 1
diff --git a/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/EventsourcedExample.scala b/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/EventsourcedExample.scala
index 8c6fcc796c..1064deab86 100644
--- a/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/EventsourcedExample.scala
+++ b/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/EventsourcedExample.scala
@@ -4,10 +4,10 @@ package sample.persistence
import akka.actor._
import akka.persistence._
-case class Cmd(data: String)
-case class Evt(data: String)
+final case class Cmd(data: String)
+final case class Evt(data: String)
-case class ExampleState(events: List[String] = Nil) {
+final case class ExampleState(events: List[String] = Nil) {
def update(evt: Evt) = copy(evt.data :: events)
def size = events.length
override def toString: String = events.reverse.toString
diff --git a/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/SnapshotExample.scala b/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/SnapshotExample.scala
index a3d6b08e46..0cdfa22419 100644
--- a/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/SnapshotExample.scala
+++ b/akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/SnapshotExample.scala
@@ -4,7 +4,7 @@ import akka.actor._
import akka.persistence._
object SnapshotExample extends App {
- case class ExampleState(received: List[String] = Nil) {
+ final case class ExampleState(received: List[String] = Nil) {
def update(s: String) = copy(s :: received)
override def toString = received.reverse.toString
}
diff --git a/akka-samples/akka-sample-remote-scala/src/main/scala/sample/remote/calculator/MathOp.scala b/akka-samples/akka-sample-remote-scala/src/main/scala/sample/remote/calculator/MathOp.scala
index 85d413723f..aaf02818cc 100644
--- a/akka-samples/akka-sample-remote-scala/src/main/scala/sample/remote/calculator/MathOp.scala
+++ b/akka-samples/akka-sample-remote-scala/src/main/scala/sample/remote/calculator/MathOp.scala
@@ -2,21 +2,21 @@ package sample.remote.calculator
trait MathOp
-case class Add(nbr1: Int, nbr2: Int) extends MathOp
+final case class Add(nbr1: Int, nbr2: Int) extends MathOp
-case class Subtract(nbr1: Int, nbr2: Int) extends MathOp
+final case class Subtract(nbr1: Int, nbr2: Int) extends MathOp
-case class Multiply(nbr1: Int, nbr2: Int) extends MathOp
+final case class Multiply(nbr1: Int, nbr2: Int) extends MathOp
-case class Divide(nbr1: Double, nbr2: Int) extends MathOp
+final case class Divide(nbr1: Double, nbr2: Int) extends MathOp
trait MathResult
-case class AddResult(nbr: Int, nbr2: Int, result: Int) extends MathResult
+final case class AddResult(nbr: Int, nbr2: Int, result: Int) extends MathResult
-case class SubtractResult(nbr1: Int, nbr2: Int, result: Int) extends MathResult
+final case class SubtractResult(nbr1: Int, nbr2: Int, result: Int) extends MathResult
-case class MultiplicationResult(nbr1: Int, nbr2: Int, result: Int) extends MathResult
+final case class MultiplicationResult(nbr1: Int, nbr2: Int, result: Int) extends MathResult
-case class DivisionResult(nbr1: Double, nbr2: Int, result: Double) extends MathResult
+final case class DivisionResult(nbr1: Double, nbr2: Int, result: Double) extends MathResult
diff --git a/akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala b/akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala
index 5a42241570..e7e8b57d68 100644
--- a/akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala
+++ b/akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala
@@ -41,7 +41,7 @@ object TestEvent {
object Mute {
def apply(filter: EventFilter, filters: EventFilter*): Mute = new Mute(filter +: filters.to[immutable.Seq])
}
- case class Mute(filters: immutable.Seq[EventFilter]) extends TestEvent with NoSerializationVerificationNeeded {
+ final case class Mute(filters: immutable.Seq[EventFilter]) extends TestEvent with NoSerializationVerificationNeeded {
/**
* Java API: create a Mute command from a list of filters
*/
@@ -50,7 +50,7 @@ object TestEvent {
object UnMute {
def apply(filter: EventFilter, filters: EventFilter*): UnMute = new UnMute(filter +: filters.to[immutable.Seq])
}
- case class UnMute(filters: immutable.Seq[EventFilter]) extends TestEvent with NoSerializationVerificationNeeded {
+ final case class UnMute(filters: immutable.Seq[EventFilter]) extends TestEvent with NoSerializationVerificationNeeded {
/**
* Java API: create an UnMute command from a list of filters
*/
@@ -261,7 +261,7 @@ object EventFilter {
*
* If you want to match all Error events, the most efficient is to use Left("").
*/
-case class ErrorFilter(
+final case class ErrorFilter(
throwable: Class[_],
override val source: Option[String],
override val message: Either[String, Regex],
@@ -313,7 +313,7 @@ case class ErrorFilter(
*
* If you want to match all Warning events, the most efficient is to use Left("").
*/
-case class WarningFilter(
+final case class WarningFilter(
override val source: Option[String],
override val message: Either[String, Regex],
override val complete: Boolean)(occurrences: Int) extends EventFilter(occurrences) {
@@ -356,7 +356,7 @@ case class WarningFilter(
*
* If you want to match all Info events, the most efficient is to use Left("").
*/
-case class InfoFilter(
+final case class InfoFilter(
override val source: Option[String],
override val message: Either[String, Regex],
override val complete: Boolean)(occurrences: Int) extends EventFilter(occurrences) {
@@ -399,7 +399,7 @@ case class InfoFilter(
*
* If you want to match all Debug events, the most efficient is to use Left("").
*/
-case class DebugFilter(
+final case class DebugFilter(
override val source: Option[String],
override val message: Either[String, Regex],
override val complete: Boolean)(occurrences: Int) extends EventFilter(occurrences) {
@@ -439,7 +439,7 @@ case class DebugFilter(
*
* If the partial function is defined and returns true, filter the event.
*/
-case class CustomEventFilter(test: PartialFunction[LogEvent, Boolean])(occurrences: Int) extends EventFilter(occurrences) {
+final case class CustomEventFilter(test: PartialFunction[LogEvent, Boolean])(occurrences: Int) extends EventFilter(occurrences) {
def matches(event: LogEvent) = {
test.isDefinedAt(event) && test(event)
}
@@ -453,7 +453,7 @@ object DeadLettersFilter {
* Filter which matches DeadLetter events, if the wrapped message conforms to the
* given type.
*/
-case class DeadLettersFilter(val messageClass: Class[_])(occurrences: Int) extends EventFilter(occurrences) {
+final case class DeadLettersFilter(val messageClass: Class[_])(occurrences: Int) extends EventFilter(occurrences) {
def matches(event: LogEvent) = {
event match {
diff --git a/akka-testkit/src/main/scala/akka/testkit/TestKit.scala b/akka-testkit/src/main/scala/akka/testkit/TestKit.scala
index 6bc53c432a..acb0966c9c 100644
--- a/akka-testkit/src/main/scala/akka/testkit/TestKit.scala
+++ b/akka-testkit/src/main/scala/akka/testkit/TestKit.scala
@@ -37,16 +37,16 @@ object TestActor {
def run(sender: ActorRef, msg: Any): AutoPilot = sys.error("must not call")
}
- case class SetIgnore(i: Ignore) extends NoSerializationVerificationNeeded
- case class Watch(ref: ActorRef) extends NoSerializationVerificationNeeded
- case class UnWatch(ref: ActorRef) extends NoSerializationVerificationNeeded
- case class SetAutoPilot(ap: AutoPilot) extends NoSerializationVerificationNeeded
+ final case class SetIgnore(i: Ignore) extends NoSerializationVerificationNeeded
+ final case class Watch(ref: ActorRef) extends NoSerializationVerificationNeeded
+ final case class UnWatch(ref: ActorRef) extends NoSerializationVerificationNeeded
+ final case class SetAutoPilot(ap: AutoPilot) extends NoSerializationVerificationNeeded
trait Message {
def msg: AnyRef
def sender: ActorRef
}
- case class RealMessage(msg: AnyRef, sender: ActorRef) extends Message
+ final case class RealMessage(msg: AnyRef, sender: ActorRef) extends Message
case object NullMessage extends Message {
override def msg: AnyRef = throw new IllegalActorStateException("last receive did not dequeue a message")
override def sender: ActorRef = throw new IllegalActorStateException("last receive did not dequeue a message")
diff --git a/akka-testkit/src/test/scala/akka/testkit/CoronerSpec.scala b/akka-testkit/src/test/scala/akka/testkit/CoronerSpec.scala
index 728dfa44e1..23c6dca7cd 100644
--- a/akka-testkit/src/test/scala/akka/testkit/CoronerSpec.scala
+++ b/akka-testkit/src/test/scala/akka/testkit/CoronerSpec.scala
@@ -63,7 +63,7 @@ class CoronerSpec extends WordSpec with Matchers {
// that the other wants to synchronize on. BOOM! Deadlock. Generate a
// report, then clean up and check the report contents.
- case class LockingThread(name: String, thread: Thread, ready: Semaphore, proceed: Semaphore)
+ final case class LockingThread(name: String, thread: Thread, ready: Semaphore, proceed: Semaphore)
def lockingThread(name: String, initialLocks: List[ReentrantLock]): LockingThread = {
val ready = new Semaphore(0)
diff --git a/akka-testkit/src/test/scala/akka/testkit/TestActorRefSpec.scala b/akka-testkit/src/test/scala/akka/testkit/TestActorRefSpec.scala
index 5188a804d4..c88031530a 100644
--- a/akka-testkit/src/test/scala/akka/testkit/TestActorRefSpec.scala
+++ b/akka-testkit/src/test/scala/akka/testkit/TestActorRefSpec.scala
@@ -100,7 +100,7 @@ object TestActorRefSpec {
* Forwarding `Terminated` to non-watching testActor is not possible,
* and therefore the `Terminated` message is wrapped.
*/
- case class WrappedTerminated(t: Terminated)
+ final case class WrappedTerminated(t: Terminated)
}
diff --git a/akka-transactor/src/main/scala/akka/transactor/Transactor.scala b/akka-transactor/src/main/scala/akka/transactor/Transactor.scala
index 6871746b94..c7ed6fb066 100644
--- a/akka-transactor/src/main/scala/akka/transactor/Transactor.scala
+++ b/akka-transactor/src/main/scala/akka/transactor/Transactor.scala
@@ -13,7 +13,7 @@ import scala.concurrent.stm.InTxn
* Used for specifying actor refs and messages to send to during coordination.
*/
@deprecated("akka.transactor will be removed", "2.3")
-case class SendTo(actor: ActorRef, message: Option[Any] = None)
+final case class SendTo(actor: ActorRef, message: Option[Any] = None)
/**
* An actor with built-in support for coordinated transactions.
diff --git a/akka-transactor/src/test/scala/akka/transactor/CoordinatedIncrementSpec.scala b/akka-transactor/src/test/scala/akka/transactor/CoordinatedIncrementSpec.scala
index 3ee3355f51..e59119c0f3 100644
--- a/akka-transactor/src/test/scala/akka/transactor/CoordinatedIncrementSpec.scala
+++ b/akka-transactor/src/test/scala/akka/transactor/CoordinatedIncrementSpec.scala
@@ -31,7 +31,7 @@ object CoordinatedIncrement {
}
"""
- case class Increment(friends: immutable.Seq[ActorRef])
+ final case class Increment(friends: immutable.Seq[ActorRef])
case object GetCount
class Counter(name: String) extends Actor {
diff --git a/akka-transactor/src/test/scala/akka/transactor/FickleFriendsSpec.scala b/akka-transactor/src/test/scala/akka/transactor/FickleFriendsSpec.scala
index 59a6522eff..da6c7828ff 100644
--- a/akka-transactor/src/test/scala/akka/transactor/FickleFriendsSpec.scala
+++ b/akka-transactor/src/test/scala/akka/transactor/FickleFriendsSpec.scala
@@ -22,8 +22,8 @@ import akka.pattern.{ AskTimeoutException, ask }
import akka.util.Timeout
object FickleFriends {
- case class FriendlyIncrement(friends: immutable.Seq[ActorRef], timeout: Timeout, latch: CountDownLatch)
- case class Increment(friends: immutable.Seq[ActorRef])
+ final case class FriendlyIncrement(friends: immutable.Seq[ActorRef], timeout: Timeout, latch: CountDownLatch)
+ final case class Increment(friends: immutable.Seq[ActorRef])
case object GetCount
/**
diff --git a/akka-transactor/src/test/scala/akka/transactor/TransactorSpec.scala b/akka-transactor/src/test/scala/akka/transactor/TransactorSpec.scala
index 7884440d66..38d0278a95 100644
--- a/akka-transactor/src/test/scala/akka/transactor/TransactorSpec.scala
+++ b/akka-transactor/src/test/scala/akka/transactor/TransactorSpec.scala
@@ -16,7 +16,7 @@ import akka.testkit._
import akka.pattern.{ AskTimeoutException, ask }
object TransactorIncrement {
- case class Increment(friends: immutable.Seq[ActorRef], latch: TestLatch)
+ final case class Increment(friends: immutable.Seq[ActorRef], latch: TestLatch)
case object GetCount
class Counter(name: String) extends Transactor {
@@ -63,7 +63,7 @@ object TransactorIncrement {
}
object SimpleTransactor {
- case class Set(ref: Ref[Int], value: Int, latch: TestLatch)
+ final case class Set(ref: Ref[Int], value: Int, latch: TestLatch)
class Setter extends Transactor {
def atomically = implicit txn ⇒ {
diff --git a/akka-zeromq/src/main/scala/akka/zeromq/SocketOption.scala b/akka-zeromq/src/main/scala/akka/zeromq/SocketOption.scala
index 991e27ab7f..6e4cdcaa66 100644
--- a/akka-zeromq/src/main/scala/akka/zeromq/SocketOption.scala
+++ b/akka-zeromq/src/main/scala/akka/zeromq/SocketOption.scala
@@ -54,7 +54,7 @@ sealed trait SocketOptionQuery extends Request
*
* @param endpoint URI (ex. tcp://127.0.0.1:5432)
*/
-case class Connect(endpoint: String) extends SocketConnectOption
+final case class Connect(endpoint: String) extends SocketConnectOption
/**
* Companion object for a ZeroMQ I/O thread pool
@@ -144,26 +144,26 @@ object SocketType {
* An option containing the listener for the socket
* @param listener
*/
-case class Listener(listener: ActorRef) extends SocketMeta
+final case class Listener(listener: ActorRef) extends SocketMeta
/**
* An option containing the configuration key for the poller loop dispatcher
* @param name
*/
-case class PollDispatcher(name: String) extends SocketMeta
+final case class PollDispatcher(name: String) extends SocketMeta
/**
* An option containing the duration a poll cycle should wait for a message before it loops
* @param duration
*/
-case class PollTimeoutDuration(duration: FiniteDuration = 100 millis) extends SocketMeta
+final case class PollTimeoutDuration(duration: FiniteDuration = 100 millis) extends SocketMeta
/**
* Start listening with this server socket on the specified address
*
* @param endpoint
*/
-case class Bind(endpoint: String) extends SocketConnectOption
+final case class Bind(endpoint: String) extends SocketConnectOption
/**
* The [[akka.zeromq.Subscribe]] option establishes a new message filter on a [[akka.zeromq.SocketType.Pub]] socket.
@@ -177,7 +177,7 @@ case class Bind(endpoint: String) extends SocketConnectOption
*
* @param payload the topic to subscribe to
*/
-case class Subscribe(payload: ByteString) extends PubSubOption {
+final case class Subscribe(payload: ByteString) extends PubSubOption {
def this(topic: String) = this(ByteString(topic))
}
object Subscribe {
@@ -197,7 +197,7 @@ object Subscribe {
*
* @param payload
*/
-case class Unsubscribe(payload: ByteString) extends PubSubOption {
+final case class Unsubscribe(payload: ByteString) extends PubSubOption {
def this(topic: String) = this(ByteString(topic))
}
object Unsubscribe {
@@ -208,13 +208,13 @@ object Unsubscribe {
* Send a message over the zeromq socket
* @param frames
*/
-case class Send(frames: immutable.Seq[ByteString]) extends Request
+final case class Send(frames: immutable.Seq[ByteString]) extends Request
/**
* A message received over the zeromq socket
* @param frames
*/
-case class ZMQMessage(frames: immutable.Seq[ByteString]) {
+final case class ZMQMessage(frames: immutable.Seq[ByteString]) {
def frame(frameIndex: Int): ByteString = frames(frameIndex)
}
object ZMQMessage {
@@ -260,7 +260,7 @@ object ZMQMessage {
*
* @param value The value in milliseconds for the linger option
*/
-case class Linger(value: Long) extends SocketOption
+final case class Linger(value: Long) extends SocketOption
/**
* Gets the linger option @see [[akka.zeromq.Linger]]
@@ -279,7 +279,7 @@ object Linger extends SocketOptionQuery {
*
* @param value The interval in seconds
*/
-case class ReconnectIVL(value: Long) extends SocketOption
+final case class ReconnectIVL(value: Long) extends SocketOption
/**
* Gets the recover interval @see [[akka.zeromq.ReconnectIVL]]
@@ -299,7 +299,7 @@ object ReconnectIVL extends SocketOptionQuery
*
* @param value
*/
-case class ReconnectIVLMax(value: Long) extends SocketOption
+final case class ReconnectIVLMax(value: Long) extends SocketOption
/**
* Gets the max reconnect IVL
* @see [[akka.zeromq.ReconnectIVLMax]]
@@ -313,7 +313,7 @@ object ReconnectIVLMax extends SocketOptionQuery
*
* @param value
*/
-case class Backlog(value: Long) extends SocketOption
+final case class Backlog(value: Long) extends SocketOption
/**
* Gets the backlog
* @see [[akka.zeromq.Backlog]]
@@ -329,7 +329,7 @@ object Backlog extends SocketOptionQuery
*
* @param value
*/
-case class MaxMsgSize(value: Long) extends SocketOption
+final case class MaxMsgSize(value: Long) extends SocketOption
object MaxMsgSize extends SocketOptionQuery
/**
@@ -344,7 +344,7 @@ object MaxMsgSize extends SocketOptionQuery
*
* @param value
*/
-case class SendHighWatermark(value: Long) extends SocketOption
+final case class SendHighWatermark(value: Long) extends SocketOption
/**
* Gets the SendHWM
@@ -364,7 +364,7 @@ object SendHighWatermark extends SocketOptionQuery
*
* @param value
*/
-case class ReceiveHighWatermark(value: Long) extends SocketOption
+final case class ReceiveHighWatermark(value: Long) extends SocketOption
/**
* Gets the ReceiveHighWatermark
@@ -383,7 +383,7 @@ object ReceiveHighWatermark extends SocketOptionQuery
*
* @param value
*/
-case class HighWatermark(value: Long) extends SocketOption
+final case class HighWatermark(value: Long) extends SocketOption
/**
* The [[akka.zeromq.Swap]] option shall set the disk offload (swap) size for the specified socket.
@@ -394,7 +394,7 @@ case class HighWatermark(value: Long) extends SocketOption
*
* @param value
*/
-case class Swap(value: Long) extends SocketOption
+final case class Swap(value: Long) extends SocketOption
/**
* Gets the [[akka.zeromq.Swap]]
@@ -414,7 +414,7 @@ object Swap extends SocketOptionQuery
*
* @param value
*/
-case class Affinity(value: Long) extends SocketOption
+final case class Affinity(value: Long) extends SocketOption
/**
* Gets the [[akka.zeromq.Affinity]] value
@@ -436,7 +436,7 @@ object Affinity extends SocketOptionQuery
*
* @param value The identity string for this socket
*/
-case class Identity(value: Array[Byte]) extends SocketOption
+final case class Identity(value: Array[Byte]) extends SocketOption
/**
* Gets the [[akka.zeromq.Identity]] value
@@ -448,7 +448,7 @@ object Identity extends SocketOptionQuery
*
* @param value The kilobits per second
*/
-case class Rate(value: Long) extends SocketOption
+final case class Rate(value: Long) extends SocketOption
/**
* Gets the send or receive rate for the socket
@@ -465,7 +465,7 @@ object Rate extends SocketOptionQuery
*
* @param value The interval in seconds
*/
-case class RecoveryInterval(value: Long) extends SocketOption
+final case class RecoveryInterval(value: Long) extends SocketOption
/**
* Gets the [[akka.zeromq.RecoveryInterval]]
@@ -480,7 +480,7 @@ object RecoveryInterval extends SocketOptionQuery
*
* @param value Flag indicating whether or not loopback multicast is enabled
*/
-case class MulticastLoop(value: Boolean) extends SocketOption
+final case class MulticastLoop(value: Boolean) extends SocketOption
/**
* Gets the [[akka.zeromq.MulticastLoop]]
@@ -495,7 +495,7 @@ object MulticastLoop extends SocketOptionQuery
*
* @param value
*/
-case class MulticastHops(value: Long) extends SocketOption
+final case class MulticastHops(value: Long) extends SocketOption
/**
* Gets the [[akka.zeromq.MulticastHops]]
@@ -511,7 +511,7 @@ object MulticastHops extends SocketOptionQuery
*
* @param value
*/
-case class SendBufferSize(value: Long) extends SocketOption
+final case class SendBufferSize(value: Long) extends SocketOption
/**
* Gets the [[akka.zeromq.SendBufferSize]]
@@ -524,7 +524,7 @@ object SendBufferSize extends SocketOptionQuery
* For details refer to your operating system documentation for the SO_RCVBUF socket option.
* @param value
*/
-case class ReceiveBufferSize(value: Long) extends SocketOption
+final case class ReceiveBufferSize(value: Long) extends SocketOption
/**
* Gets the [[akka.zeromq.ReceiveBufferSize]]
diff --git a/akka-zeromq/src/main/scala/akka/zeromq/ZeroMQExtension.scala b/akka-zeromq/src/main/scala/akka/zeromq/ZeroMQExtension.scala
index 3e5c8d8dd8..a37797adfb 100644
--- a/akka-zeromq/src/main/scala/akka/zeromq/ZeroMQExtension.scala
+++ b/akka-zeromq/src/main/scala/akka/zeromq/ZeroMQExtension.scala
@@ -22,7 +22,7 @@ import akka.dispatch.{ UnboundedMessageQueueSemantics, RequiresMessageQueue }
* @param minor
* @param patch
*/
-case class ZeroMQVersion(major: Int, minor: Int, patch: Int) {
+final case class ZeroMQVersion(major: Int, minor: Int, patch: Int) {
override def toString: String = "%d.%d.%d".format(major, minor, patch)
}