/** * Copyright (C) 2015-2018 Lightbend Inc. */ package jdocs.cluster.singleton; import akka.actor.AbstractActor; import akka.actor.ActorRef; import akka.actor.Props; import akka.actor.SupervisorStrategy; //#singleton-supervisor-actor-usage-imports import akka.actor.PoisonPill; import akka.actor.Props; import akka.cluster.singleton.ClusterSingletonManager; import akka.cluster.singleton.ClusterSingletonManagerSettings; //#singleton-supervisor-actor-usage-imports abstract class ClusterSingletonSupervision extends AbstractActor { public ActorRef createSingleton(String name, Props props, SupervisorStrategy supervisorStrategy) { //#singleton-supervisor-actor-usage return getContext().system().actorOf( ClusterSingletonManager.props( Props.create(SupervisorActor.class, () -> new SupervisorActor(props, supervisorStrategy)), PoisonPill.getInstance(), ClusterSingletonManagerSettings.create(getContext().system())), name = name); //#singleton-supervisor-actor-usage } }