import org.opendaylight.controller.eos.akka.owner.checker.command.StateCheckerCommand;
import org.opendaylight.controller.eos.akka.owner.supervisor.IdleSupervisor;
import org.opendaylight.controller.eos.akka.owner.supervisor.command.OwnerSupervisorCommand;
-import org.opendaylight.controller.eos.akka.registry.candidate.CandidateRegistry;
+import org.opendaylight.controller.eos.akka.registry.candidate.CandidateRegistryInit;
import org.opendaylight.controller.eos.akka.registry.candidate.command.CandidateRegistryCommand;
import org.opendaylight.controller.eos.akka.registry.listener.type.EntityTypeListenerRegistry;
import org.opendaylight.controller.eos.akka.registry.listener.type.command.TypeListenerRegistryCommand;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingInstanceIdentifierCodec;
import org.opendaylight.yangtools.yang.common.Empty;
public final class EOSMain extends AbstractBehavior<BootstrapCommand> {
private final ActorRef<OwnerSupervisorCommand> ownerSupervisor;
private final ActorRef<StateCheckerCommand> ownerStateChecker;
- private EOSMain(final ActorContext<BootstrapCommand> context) {
+ private EOSMain(final ActorContext<BootstrapCommand> context, final BindingInstanceIdentifierCodec iidCodec) {
super(context);
final String role = Cluster.get(context.getSystem()).selfMember().getRoles().iterator().next();
listenerRegistry = context.spawn(EntityTypeListenerRegistry.create(role), "ListenerRegistry");
- candidateRegistry = context.spawn(CandidateRegistry.create(), "CandidateRegistry");
- ownerStateChecker = context.spawn(OwnerStateChecker.create(role), "OwnerStateChecker");
final ClusterSingleton clusterSingleton = ClusterSingleton.get(context.getSystem());
// start the initial sync behavior that switches to the regular one after syncing
- ownerSupervisor = clusterSingleton.init(SingletonActor.of(IdleSupervisor.create(), "OwnerSupervisor"));
+ ownerSupervisor = clusterSingleton.init(
+ SingletonActor.of(IdleSupervisor.create(iidCodec), "OwnerSupervisor"));
+
+ candidateRegistry = context.spawn(CandidateRegistryInit.create(ownerSupervisor), "CandidateRegistry");
+
+ ownerStateChecker = context.spawn(OwnerStateChecker.create(role, ownerSupervisor, iidCodec),
+ "OwnerStateChecker");
}
- public static Behavior<BootstrapCommand> create() {
- return Behaviors.setup(EOSMain::new);
+ public static Behavior<BootstrapCommand> create(final BindingInstanceIdentifierCodec iidCodec) {
+ return Behaviors.setup(context -> new EOSMain(context, iidCodec));
}
@Override
}
private Behavior<BootstrapCommand> onTerminate(final Terminate request) {
- request.getReplyTo().tell(Empty.getInstance());
+ request.getReplyTo().tell(Empty.value());
return Behaviors.stopped();
}
-}
+}
\ No newline at end of file