anchor.diff:      @Override
       public void activate(ServiceActivatorContext context) {
           ServiceName name = ServiceName.parse("my.service.name");
  -        Service<?> service = new MyService();
  -        try {
  -            SingletonPolicy policy = (SingletonPolicy) context.getServiceRegistry().getRequiredService(ServiceName.parse(SingletonPolicy.CAPABILITY_NAME)).awaitValue();
  -            policy.createSingletonServiceBuilder(name, service).build(context.getServiceTarget()).install();
  -        } catch (InterruptedException e) {
  -            throw new ServiceRegistryException(e);
  -        }
  +        // Use default singleton policy
  +        Supplier<SingletonPolicy> policy = new ActiveServiceSupplier<>(context.getServiceTarget(), ServiceName.parse(SingletonDefaultRequirement.SINGLETON_POLICY.getName()));
  +        ServiceBuilder<?> builder = policy.get().createSingletonServiceConfigurator(name).build(context.getServiceTarget());
  +        Service service = new MyService();
  +        builder.setInstance(service).install();
       }
   }
   ----
  
positive.code: [[Singleton_MSC_services]]
  = Singleton MSC services
  
  WildFly allows any user MSC service to be installed as a singleton MSC
  service via a public API. Once installed, the service will only ever
  start on 1 node in the cluster at a time. If the node providing the
  service is shutdown, or fails, another node on which the service was
  installed will start automatically.
  
  [[installing-an-msc-service-using-an-existing-singleton-policy]]
  == Installing an MSC service using an existing singleton policy
  
  While singleton MSC services have been around since AS7, WildFly adds
  the ability to leverage the singleton subsystem to create singleton MSC
  services from existing singleton policies.
  
  The singleton subsystem exposes capabilities for each singleton policy
  it defines. These policies, represented via the
  `org.wildfly.clustering.singleton.SingletonPolicy` interface, can be
  referenced via the following name:
  "org.wildfly.clustering.singleton.policy" +
  e.g.
  
  [source, java]
  
negative.code: public class MyServiceActivator implements ServiceActivator {
      @Override
      public void activate(ServiceActivatorContext context) {
          String containerName = "foo";
          ElectionPolicy policy = new MySingletonElectionPolicy();
          int quorum = 3;
          ServiceName name = ServiceName.parse("my.service.name");
          // Use a SingletonServiceConfiguratorFactory backed by default cache of "foo" container
          Supplier<SingletonServiceConfiguratorFactory> factory = new ActiveServiceSupplier<>(context.getServiceTarget(), ServiceName.parse(SingletonDefaultCacheRequirement.SINGLETON_SERVICE_CONFIGURATOR_FACTORY.resolve(containerName).getName()));
          ServiceBuilder<?> builder = factory.get().createSingletonServiceConfigurator(name)
                  .electionPolicy(policy)
                  .requireQuorum(quorum)
          		.build(context.getServiceTarget());
          Service service = new MyService();
          builder.setInstance(service).install();
      }
  }
  ----
  