diff --git a/policies/service/src/main/java/org/eclipse/ditto/policies/service/starter/PoliciesRootActor.java b/policies/service/src/main/java/org/eclipse/ditto/policies/service/starter/PoliciesRootActor.java index 0c6d5db0f7..41a1953dc7 100755 --- a/policies/service/src/main/java/org/eclipse/ditto/policies/service/starter/PoliciesRootActor.java +++ b/policies/service/src/main/java/org/eclipse/ditto/policies/service/starter/PoliciesRootActor.java @@ -84,6 +84,8 @@ private PoliciesRootActor(final PoliciesConfig policiesConfig, final BlockedNamespaces blockedNamespaces = BlockedNamespaces.of(actorSystem); // start cluster singleton that writes to the distributed cache of blocked namespaces + // this must only be started for one service in the cluster - which "policies" was chosen for ... + // this BlockedNamespacesUpdater updates the DData "BlockedNamespaces" data structure final Props blockedNamespacesUpdaterProps = BlockedNamespacesUpdater.props(blockedNamespaces, pubSubMediator); ClusterUtil.startSingleton(actorSystem, getContext(), PoliciesMessagingConstants.CLUSTER_ROLE, BlockedNamespacesUpdater.ACTOR_NAME, blockedNamespacesUpdaterProps); diff --git a/things/service/src/main/java/org/eclipse/ditto/things/service/starter/ThingsRootActor.java b/things/service/src/main/java/org/eclipse/ditto/things/service/starter/ThingsRootActor.java index 1fc1cd2977..9c2802f390 100755 --- a/things/service/src/main/java/org/eclipse/ditto/things/service/starter/ThingsRootActor.java +++ b/things/service/src/main/java/org/eclipse/ditto/things/service/starter/ThingsRootActor.java @@ -21,7 +21,6 @@ import org.eclipse.ditto.internal.utils.aggregator.ThingsAggregatorActor; import org.eclipse.ditto.internal.utils.aggregator.ThingsAggregatorConfig; import org.eclipse.ditto.internal.utils.akka.logging.DittoLoggerFactory; -import org.eclipse.ditto.internal.utils.cluster.ClusterUtil; import org.eclipse.ditto.internal.utils.cluster.DistPubSubAccess; import org.eclipse.ditto.internal.utils.cluster.RetrieveStatisticsDetailsResponseSupplier; import org.eclipse.ditto.internal.utils.cluster.ShardRegionExtractor; @@ -30,7 +29,6 @@ import org.eclipse.ditto.internal.utils.health.DefaultHealthCheckingActorFactory; import org.eclipse.ditto.internal.utils.health.HealthCheckingActorOptions; import org.eclipse.ditto.internal.utils.namespaces.BlockedNamespaces; -import org.eclipse.ditto.internal.utils.namespaces.BlockedNamespacesUpdater; import org.eclipse.ditto.internal.utils.persistence.mongo.MongoClientWrapper; import org.eclipse.ditto.internal.utils.persistence.mongo.MongoHealthChecker; import org.eclipse.ditto.internal.utils.persistence.mongo.config.MongoDbConfig; @@ -40,8 +38,8 @@ import org.eclipse.ditto.internal.utils.pubsub.DistributedPub; import org.eclipse.ditto.internal.utils.pubsubthings.LiveSignalPub; import org.eclipse.ditto.internal.utils.pubsubthings.ThingEventPubSubFactory; -import org.eclipse.ditto.policies.enforcement.PolicyEnforcerProvider; import org.eclipse.ditto.policies.enforcement.DefaultPolicyEnforcerProvider; +import org.eclipse.ditto.policies.enforcement.PolicyEnforcerProvider; import org.eclipse.ditto.things.api.ThingsMessagingConstants; import org.eclipse.ditto.things.model.signals.events.ThingEvent; import org.eclipse.ditto.things.service.common.config.ThingsConfig; @@ -90,10 +88,6 @@ private ThingsRootActor(final ThingsConfig thingsConfig, final LiveSignalPub liveSignalPub = LiveSignalPub.of(getContext(), distributedAcks); final BlockedNamespaces blockedNamespaces = BlockedNamespaces.of(actorSystem); - // start cluster singleton that writes to the distributed cache of blocked namespaces - final Props blockedNamespacesUpdaterProps = BlockedNamespacesUpdater.props(blockedNamespaces, pubSubMediator); - ClusterUtil.startSingleton(actorSystem, getContext(), CLUSTER_ROLE, - BlockedNamespacesUpdater.ACTOR_NAME, blockedNamespacesUpdaterProps); final PolicyEnforcerProvider policyEnforcerProvider = DefaultPolicyEnforcerProvider.getInstance(actorSystem); final Props thingSupervisorActorProps = getThingSupervisorActorProps(pubSubMediator, distributedPubThingEventsForTwin,