diff --git a/akka-distributed-data/src/main/scala/akka/cluster/ddata/Flag.scala b/akka-distributed-data/src/main/scala/akka/cluster/ddata/Flag.scala index 183b4e5d33..f0d32945c5 100644 --- a/akka-distributed-data/src/main/scala/akka/cluster/ddata/Flag.scala +++ b/akka-distributed-data/src/main/scala/akka/cluster/ddata/Flag.scala @@ -7,12 +7,24 @@ object Flag { /** * `Flag` that is initialized to `false`. */ - val empty = new Flag(false) - def apply(): Flag = empty + val empty: Flag = new Flag(false) + + /** + * `Flag` that is initialized to `false`. + */ + val Disabled: Flag = empty + + /** + * `Flag` that is initialized to `true`. + */ + val Enabled: Flag = new Flag(true) + + def apply(): Flag = Disabled + /** * Java API: `Flag` that is initialized to `false`. */ - def create(): Flag = empty + def create(): Flag = Disabled // unapply from case class } @@ -30,7 +42,7 @@ final case class Flag(enabled: Boolean) extends ReplicatedData with ReplicatedDa def switchOn: Flag = if (enabled) this - else Flag(true) + else Flag.Enabled override def merge(that: Flag): Flag = if (that.enabled) that diff --git a/akka-distributed-data/src/main/scala/akka/cluster/ddata/protobuf/ReplicatedDataSerializer.scala b/akka-distributed-data/src/main/scala/akka/cluster/ddata/protobuf/ReplicatedDataSerializer.scala index 54636953fe..d0523bb221 100644 --- a/akka-distributed-data/src/main/scala/akka/cluster/ddata/protobuf/ReplicatedDataSerializer.scala +++ b/akka-distributed-data/src/main/scala/akka/cluster/ddata/protobuf/ReplicatedDataSerializer.scala @@ -484,7 +484,7 @@ class ReplicatedDataSerializer(val system: ExtendedActorSystem) flagFromProto(rd.Flag.parseFrom(bytes)) def flagFromProto(flag: rd.Flag): Flag = - Flag(flag.getEnabled) + if (flag.getEnabled) Flag.Enabled else Flag.Disabled def lwwRegisterToProto(lwwRegister: LWWRegister[_]): rd.LWWRegister = rd.LWWRegister.newBuilder(). diff --git a/akka-distributed-data/src/multi-jvm/scala/akka/cluster/ddata/ReplicatorSpec.scala b/akka-distributed-data/src/multi-jvm/scala/akka/cluster/ddata/ReplicatorSpec.scala index 9e1cf7e4de..2b7b802101 100644 --- a/akka-distributed-data/src/multi-jvm/scala/akka/cluster/ddata/ReplicatorSpec.scala +++ b/akka-distributed-data/src/multi-jvm/scala/akka/cluster/ddata/ReplicatorSpec.scala @@ -527,22 +527,22 @@ class ReplicatorSpec extends MultiNodeSpec(ReplicatorSpec) with STMultiNodeSpec runOn(second) { replicator ! Subscribe(KeyH, changedProbe.ref) - replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag(enabled = false))) - changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag(enabled = false))) + replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag.Disabled)) + changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag.Disabled)) } enterBarrier("update-h1") runOn(first) { - replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag(enabled = true))) + replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag.Enabled)) } runOn(second) { - changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag(enabled = true))) + changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag.Enabled)) - replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("b" → Flag(enabled = true))) + replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("b" → Flag.Enabled)) changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be( - Map("a" → Flag(enabled = true), "b" → Flag(enabled = true))) + Map("a" → Flag.Enabled, "b" → Flag.Enabled)) } enterBarrierAfterTestStep() diff --git a/akka-distributed-data/src/test/scala/akka/cluster/ddata/FlagSpec.scala b/akka-distributed-data/src/test/scala/akka/cluster/ddata/FlagSpec.scala index 94dacca799..b79622bbb6 100644 --- a/akka-distributed-data/src/test/scala/akka/cluster/ddata/FlagSpec.scala +++ b/akka-distributed-data/src/test/scala/akka/cluster/ddata/FlagSpec.scala @@ -31,7 +31,7 @@ class FlagSpec extends WordSpec with Matchers { } "have unapply extractor" in { - val f1 = Flag.empty.switchOn + val f1 = Flag.Disabled.switchOn val Flag(value1) = f1 val value2: Boolean = value1 Changed(FlagKey("key"))(f1) match { diff --git a/akka-distributed-data/src/test/scala/akka/cluster/ddata/ORMapSpec.scala b/akka-distributed-data/src/test/scala/akka/cluster/ddata/ORMapSpec.scala index 8ce6e580cb..8d6346c963 100644 --- a/akka-distributed-data/src/test/scala/akka/cluster/ddata/ORMapSpec.scala +++ b/akka-distributed-data/src/test/scala/akka/cluster/ddata/ORMapSpec.scala @@ -569,7 +569,7 @@ class ORMapSpec extends WordSpec with Matchers { "work with deltas and updated for Flag elements type" in { val m1 = ORMap.empty.put(node1, "a", Flag(false)) - val m2 = m1.resetDelta.updated(node1, "a", Flag.empty)(_.switchOn) + val m2 = m1.resetDelta.updated(node1, "a", Flag.Disabled)(_.switchOn) val m3 = ORMap().mergeDelta(m1.delta.get).mergeDelta(m2.delta.get) val Flag(d3) = m3.entries("a") d3 should be(true) diff --git a/akka-docs/src/test/scala/docs/ddata/DistributedDataDocSpec.scala b/akka-docs/src/test/scala/docs/ddata/DistributedDataDocSpec.scala index b8f608589c..6cc9012d48 100644 --- a/akka-docs/src/test/scala/docs/ddata/DistributedDataDocSpec.scala +++ b/akka-docs/src/test/scala/docs/ddata/DistributedDataDocSpec.scala @@ -123,7 +123,7 @@ class DistributedDataDocSpec extends AkkaSpec(DistributedDataDocSpec.config) { replicator ! Update(Set2Key, ORSet.empty[String], writeMajority)(_ + "hello") val writeAll = WriteAll(timeout = 5.seconds) - replicator ! Update(ActiveFlagKey, Flag.empty, writeAll)(_.switchOn) + replicator ! Update(ActiveFlagKey, Flag.Disabled, writeAll)(_.switchOn) //#update probe.expectMsgType[UpdateResponse[_]] match { @@ -347,7 +347,7 @@ class DistributedDataDocSpec extends AkkaSpec(DistributedDataDocSpec.config) { "demonstrate Flag" in { def println(o: Any): Unit = () //#flag - val f0 = Flag.empty + val f0 = Flag.Disabled val f1 = f0.switchOn println(f1.enabled) //#flag