Search in sources :

Example 1 with SimpleSingletonElectionPolicy

use of org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy in project wildfly by wildfly.

the class SingletonServiceActivator method install.

private static void install(ServiceTarget target, SingletonServiceBuilderFactory factory, ServiceName name, String preferredNode) {
    InjectedValue<Group> group = new InjectedValue<>();
    NodeService service = new NodeService(group);
    factory.createSingletonServiceBuilder(name, service).electionPolicy(new PreferredSingletonElectionPolicy(new SimpleSingletonElectionPolicy(), new NamePreference(preferredNode))).build(target).addDependency(ServiceName.JBOSS.append("clustering", "group", "default"), Group.class, group).install();
}
Also used : InjectedValue(org.jboss.msc.value.InjectedValue) Group(org.wildfly.clustering.group.Group) NamePreference(org.wildfly.clustering.singleton.election.NamePreference) NodeService(org.jboss.as.test.clustering.cluster.singleton.service.NodeService) SimpleSingletonElectionPolicy(org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy) PreferredSingletonElectionPolicy(org.wildfly.clustering.singleton.election.PreferredSingletonElectionPolicy)

Example 2 with SimpleSingletonElectionPolicy

use of org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy in project wildfly by wildfly.

the class NodeServiceActivator method install.

private static void install(ServiceTarget target, SingletonServiceBuilderFactory factory, ServiceName name, int quorum) {
    InjectedValue<Group> group = new InjectedValue<>();
    NodeService service = new NodeService(group);
    factory.createSingletonServiceBuilder(name, service).electionPolicy(new PreferredSingletonElectionPolicy(new SimpleSingletonElectionPolicy(), new NamePreference(PREFERRED_NODE))).requireQuorum(quorum).build(target).addDependency(ServiceName.parse("org.wildfly.clustering.default-group"), Group.class, group).install();
}
Also used : InjectedValue(org.jboss.msc.value.InjectedValue) Group(org.wildfly.clustering.group.Group) NamePreference(org.wildfly.clustering.singleton.election.NamePreference) SimpleSingletonElectionPolicy(org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy) PreferredSingletonElectionPolicy(org.wildfly.clustering.singleton.election.PreferredSingletonElectionPolicy)

Example 3 with SimpleSingletonElectionPolicy

use of org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy in project wildfly by wildfly.

the class SimpleSingletonElectionPolicyTestCase method elect.

@Test
public void elect() {
    Node node1 = mock(Node.class);
    Node node2 = mock(Node.class);
    Node node3 = mock(Node.class);
    List<Node> nodes = Arrays.asList(node1, node2, node3);
    assertSame(node1, new SimpleSingletonElectionPolicy().elect(nodes));
    assertSame(node1, new SimpleSingletonElectionPolicy(0).elect(nodes));
    assertSame(node2, new SimpleSingletonElectionPolicy(1).elect(nodes));
    assertSame(node3, new SimpleSingletonElectionPolicy(2).elect(nodes));
    assertSame(node1, new SimpleSingletonElectionPolicy(3).elect(nodes));
    assertNull(new SimpleSingletonElectionPolicy().elect(Collections.<Node>emptyList()));
}
Also used : Node(org.wildfly.clustering.group.Node) SimpleSingletonElectionPolicy(org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy) Test(org.junit.Test)

Aggregations

SimpleSingletonElectionPolicy (org.wildfly.clustering.singleton.election.SimpleSingletonElectionPolicy)3 InjectedValue (org.jboss.msc.value.InjectedValue)2 Group (org.wildfly.clustering.group.Group)2 NamePreference (org.wildfly.clustering.singleton.election.NamePreference)2 PreferredSingletonElectionPolicy (org.wildfly.clustering.singleton.election.PreferredSingletonElectionPolicy)2 NodeService (org.jboss.as.test.clustering.cluster.singleton.service.NodeService)1 Test (org.junit.Test)1 Node (org.wildfly.clustering.group.Node)1