org.apache.activemq.artemis.api.core.client.TopologyMember

Here are the examples of the java api class org.apache.activemq.artemis.api.core.client.TopologyMember taken from open source projects.

1. ClusterConnectionImpl#onConnection()

Project: activemq-artemis
File: ClusterConnectionImpl.java
@Override
public void onConnection(ClientSessionFactoryInternal sf) {
    TopologyMember localMember = getLocalMember();
    if (localMember != null) {
        ClusterControl clusterControl = manager.getClusterController().connectToNodeInCluster(sf);
        try {
            clusterControl.authorize();
            clusterControl.sendNodeAnnounce(localMember.getUniqueEventID(), manager.getNodeId(), manager.getBackupGroupName(), manager.getScaleDownGroupName(), false, localMember.getLive(), localMember.getBackup());
        } catch (ActiveMQException e) {
            ActiveMQServerLogger.LOGGER.clusterControlAuthfailure();
        }
    } else {
        ActiveMQServerLogger.LOGGER.noLocalMemborOnClusterConnection(this);
    }
// TODO: shouldn't we send the current time here? and change the current topology?
// sf.sendNodeAnnounce(System.currentTimeMillis(),
// manager.getNodeId(),
// false,
// localMember.getConnector().a,
// localMember.getConnector().b);
}

2. BridgeImpl#reconnectOnOriginalNode()

Project: activemq-artemis
File: BridgeImpl.java
private ClientSessionFactoryInternal reconnectOnOriginalNode() throws Exception {
    String targetNodeIdUse = targetNodeID;
    TopologyMember nodeUse = targetNode;
    if (targetNodeIdUse != null && nodeUse != null) {
        // live and backup
        TransportConfiguration[] configs = new TransportConfiguration[2];
        int numberOfConfigs = 0;
        if (nodeUse.getLive() != null) {
            configs[numberOfConfigs++] = nodeUse.getLive();
        }
        if (nodeUse.getBackup() != null) {
            configs[numberOfConfigs++] = nodeUse.getBackup();
        }
        if (numberOfConfigs > 0) {
            // It will bounce between all the available configs
            int nodeTry = (retryCount - 1) % numberOfConfigs;
            return (ClientSessionFactoryInternal) serverLocator.createSessionFactory(configs[nodeTry]);
        }
    }
    return null;
}

3. ServerLocatorImpl#notifyNodeUp()

Project: activemq-artemis
File: ServerLocatorImpl.java
@Override
public void notifyNodeUp(long uniqueEventID, final String nodeID, final String backupGroupName, final String scaleDownGroupName, final Pair<TransportConfiguration, TransportConfiguration> connectorPair, final boolean last) {
    if (logger.isTraceEnabled()) {
        logger.trace("NodeUp " + this + "::nodeID=" + nodeID + ", connectorPair=" + connectorPair, new Exception("trace"));
    }
    TopologyMemberImpl member = new TopologyMemberImpl(nodeID, backupGroupName, scaleDownGroupName, connectorPair.getA(), connectorPair.getB());
    topology.updateMember(uniqueEventID, nodeID, member);
    TopologyMember actMember = topology.getMember(nodeID);
    if (actMember != null && actMember.getLive() != null && actMember.getBackup() != null) {
        HashSet<ClientSessionFactory> clonedFactories = new HashSet<>();
        synchronized (factories) {
            clonedFactories.addAll(factories);
        }
        for (ClientSessionFactory factory : clonedFactories) {
            ((ClientSessionFactoryInternal) factory).setBackupConnector(actMember.getLive(), actMember.getBackup());
        }
    }
    updateArraysAndPairs();
    if (last) {
        receivedTopology = true;
    }
}

4. ServerLocatorImpl#createSessionFactory()

Project: activemq-artemis
File: ServerLocatorImpl.java
@Override
public ClientSessionFactory createSessionFactory(String nodeID) throws Exception {
    TopologyMember topologyMember = topology.getMember(nodeID);
    if (logger.isTraceEnabled()) {
        logger.trace("Creating connection factory towards " + nodeID + " = " + topologyMember + ", topology=" + topology.describe());
    }
    if (topologyMember == null) {
        return null;
    }
    if (topologyMember.getLive() != null) {
        ClientSessionFactoryInternal factory = (ClientSessionFactoryInternal) createSessionFactory(topologyMember.getLive());
        if (topologyMember.getBackup() != null) {
            factory.setBackupConnector(topologyMember.getLive(), topologyMember.getBackup());
        }
        return factory;
    }
    if (topologyMember.getLive() == null && topologyMember.getBackup() != null) {
        // This shouldn't happen, however I wanted this to consider all possible cases
        ClientSessionFactoryInternal factory = (ClientSessionFactoryInternal) createSessionFactory(topologyMember.getBackup());
        return factory;
    }
    // it shouldn't happen
    return null;
}