From 6cd3b17854985ebc511df902f135801af9878fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Andr=C3=A9n?= Date: Wed, 26 Jul 2017 10:42:13 +0200 Subject: [PATCH] Annotated extendable cluster tool actors with DoNotInherit (#23335) --- .../akka/cluster/pubsub/DistributedPubSubMediator.scala | 6 ++++++ .../akka/cluster/singleton/ClusterSingletonManager.scala | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/akka-cluster-tools/src/main/scala/akka/cluster/pubsub/DistributedPubSubMediator.scala b/akka-cluster-tools/src/main/scala/akka/cluster/pubsub/DistributedPubSubMediator.scala index 9fd4e50bb7..6410a544a3 100644 --- a/akka-cluster-tools/src/main/scala/akka/cluster/pubsub/DistributedPubSubMediator.scala +++ b/akka-cluster-tools/src/main/scala/akka/cluster/pubsub/DistributedPubSubMediator.scala @@ -10,7 +10,9 @@ import scala.concurrent.duration._ import java.util.concurrent.ThreadLocalRandom import java.net.URLEncoder import java.net.URLDecoder + import akka.actor._ +import akka.annotation.DoNotInherit import akka.cluster.Cluster import akka.cluster.ClusterEvent._ import akka.cluster.Member @@ -24,6 +26,7 @@ import akka.routing.RouterEnvelope import akka.routing.RoundRobinRoutingLogic import akka.routing.ConsistentHashingRoutingLogic import akka.routing.BroadcastRoutingLogic + import scala.collection.immutable.TreeMap import com.typesafe.config.Config import akka.dispatch.Dispatchers @@ -475,7 +478,10 @@ trait DistributedPubSubMessage extends Serializable * Successful `Subscribe` and `Unsubscribe` is acknowledged with * [[DistributedPubSubMediator.SubscribeAck]] and [[DistributedPubSubMediator.UnsubscribeAck]] * replies. + * + * Not intended for subclassing by user code. */ +@DoNotInherit class DistributedPubSubMediator(settings: DistributedPubSubSettings) extends Actor with ActorLogging with PerGroupingBuffer { import DistributedPubSubMediator._ diff --git a/akka-cluster-tools/src/main/scala/akka/cluster/singleton/ClusterSingletonManager.scala b/akka-cluster-tools/src/main/scala/akka/cluster/singleton/ClusterSingletonManager.scala index 1e5f81c304..4cc8f27d29 100644 --- a/akka-cluster-tools/src/main/scala/akka/cluster/singleton/ClusterSingletonManager.scala +++ b/akka-cluster-tools/src/main/scala/akka/cluster/singleton/ClusterSingletonManager.scala @@ -5,6 +5,7 @@ package akka.cluster.singleton import com.typesafe.config.Config + import scala.concurrent.duration._ import scala.collection.immutable import akka.actor.Actor @@ -25,9 +26,11 @@ import akka.AkkaException import akka.actor.NoSerializationVerificationNeeded import akka.cluster.UniqueAddress import akka.cluster.ClusterEvent + import scala.concurrent.Promise import akka.Done import akka.actor.CoordinatedShutdown +import akka.annotation.DoNotInherit import akka.pattern.ask import akka.util.Timeout @@ -394,6 +397,8 @@ class ClusterSingletonManagerIsStuck(message: String) extends AkkaException(mess * Use factory method [[ClusterSingletonManager#props]] to create the * [[akka.actor.Props]] for the actor. * + * Not intended for subclassing by user code. + * * * @param singletonProps [[akka.actor.Props]] of the singleton actor instance. * @@ -407,6 +412,7 @@ class ClusterSingletonManagerIsStuck(message: String) extends AkkaException(mess * * @param settings see [[ClusterSingletonManagerSettings]] */ +@DoNotInherit class ClusterSingletonManager( singletonProps: Props, terminationMessage: Any,