Search in sources :

Example 71 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class ChallengeResponseToken method handleUpMessage.

public boolean handleUpMessage(Message msg) {
    ChallengeResponseHeader hdr = msg.getHeader(ID);
    if (hdr == null)
        return true;
    switch(hdr.type) {
        case ChallengeResponseHeader.CHALLENGE:
            long hash = hash(encrypt(hdr.payload));
            Message response = new Message(msg.getSrc()).setFlag(Message.Flag.OOB).putHeader(ID, new ChallengeResponseHeader(hash));
            log.trace("%s: received CHALLENGE from %s; sending RESPONSE (hash=%d)", auth.getAddress(), msg.src(), hash);
            auth.getDownProtocol().down(response);
            break;
        case ChallengeResponseHeader.RESPONSE:
            log.trace("%s: received RESPONSE from %s", auth.getAddress(), msg.getSrc());
            Entry entry = pending_requests.get(msg.getSrc());
            if (entry != null)
                entry.setResponse(hdr.hash);
            break;
    }
    // don't pass up
    return false;
}
Also used : Message(org.jgroups.Message)

Example 72 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class SaslServerContext method nextMessage.

@Override
public Message nextMessage(Address address, SaslHeader header) throws SaslException {
    Message message = new Message(address).setFlag(Message.Flag.OOB);
    byte[] challenge = server.evaluateResponse(header.getPayload());
    if (server.isComplete()) {
        latch.countDown();
    }
    if (challenge != null) {
        return message.putHeader(SASL.SASL_ID, new SaslHeader(Type.CHALLENGE, challenge));
    } else {
        return null;
    }
}
Also used : Message(org.jgroups.Message) SaslHeader(org.jgroups.protocols.SaslHeader)

Example 73 with Message

use of org.jgroups.Message in project teiid by teiid.

the class NodeTracker method viewAccepted.

@Override
public void viewAccepted(View view) {
    Map<Address, String> newMembers = new HashMap<>();
    Map<Address, String> deadMembers = null;
    if (view.getMembers() != null && !this.nodes.isEmpty()) {
        synchronized (nodes) {
            for (Address addr : view.getMembers()) {
                String name = this.nodes.remove(addr);
                if (name != null) {
                    // existing node
                    newMembers.put(addr, name);
                }
            }
            deadMembers = this.nodes;
            this.nodes = newMembers;
        }
        if (!deadMembers.isEmpty()) {
            for (String name : deadMembers.values()) {
                // node removed
                if (!this.nodeListeners.isEmpty()) {
                    for (NodeListener nl : this.nodeListeners) {
                        nl.nodeDropped(name);
                    }
                }
            }
        }
    }
    getScheduledExecutorService().schedule(new Runnable() {

        public void run() {
            Message msg = new Message(null, null, nodeName);
            try {
                channel.send(msg);
            } catch (Exception e) {
                LogManager.logError(LogConstants.CTX_RUNTIME, e, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40165));
            }
        }
    }, 2000, TimeUnit.MILLISECONDS);
}
Also used : Address(org.jgroups.Address) Message(org.jgroups.Message) HashMap(java.util.HashMap)

Example 74 with Message

use of org.jgroups.Message in project fabric8 by fabric8io.

the class KubernetesDiscovery method findMembers.

@Override
public void findMembers(List<Address> members, boolean initial_discovery, Responses responses) {
    kubernetesHosts = findKubernetesHosts();
    PhysicalAddress physical_addr = (PhysicalAddress) down(new Event(Event.GET_PHYSICAL_ADDRESS, local_addr));
    // https://issues.jboss.org/browse/JGRP-1670
    PingData data = new PingData(local_addr, false, org.jgroups.util.UUID.get(local_addr), physical_addr);
    PingHeader hdr = new PingHeader(PingHeader.GET_MBRS_REQ).clusterName(cluster_name);
    Set<PhysicalAddress> cluster_members = new HashSet<>(kubernetesHosts);
    cluster_members.addAll(dynamic_hosts);
    if (use_disk_cache) {
        // this only makes sense if we have PDC below us
        Collection<PhysicalAddress> list = (Collection<PhysicalAddress>) down_prot.down(new Event(Event.GET_PHYSICAL_ADDRESSES));
        if (list != null)
            for (PhysicalAddress phys_addr : list) if (!cluster_members.contains(phys_addr))
                cluster_members.add(phys_addr);
    }
    for (final PhysicalAddress addr : cluster_members) {
        if (// no need to send the request to myself
        physical_addr != null && addr.equals(physical_addr))
            continue;
        // the message needs to be DONT_BUNDLE, see explanation above
        final Message msg = new Message(addr).setFlag(Message.Flag.INTERNAL, Message.Flag.DONT_BUNDLE, Message.Flag.OOB).putHeader(this.id, hdr).setBuffer(marshal(data));
        log.trace("%s: sending discovery request to %s", local_addr, msg.getDest());
        down_prot.down(new Event(Event.MSG, msg));
    }
}
Also used : PingData(org.jgroups.protocols.PingData) Message(org.jgroups.Message) Event(org.jgroups.Event) PhysicalAddress(org.jgroups.PhysicalAddress) PingHeader(org.jgroups.protocols.PingHeader)

Example 75 with Message

use of org.jgroups.Message in project cayenne by apache.

the class JavaGroupsBridge method sendExternalEvent.

@Override
protected void sendExternalEvent(CayenneEvent localEvent) throws Exception {
    Message message = new Message(null, null, eventToMessageObject(localEvent));
    channel.send(message);
}
Also used : Message(org.jgroups.Message)

Aggregations

Message (org.jgroups.Message)246 Address (org.jgroups.Address)50 MessageBatch (org.jgroups.util.MessageBatch)37 BytesMessage (org.jgroups.BytesMessage)31 NioMessage (org.jgroups.NioMessage)14 ObjectMessage (org.jgroups.ObjectMessage)14 EmptyMessage (org.jgroups.EmptyMessage)12 Test (org.testng.annotations.Test)12 Event (org.jgroups.Event)11 ToaHeader (org.jgroups.protocols.tom.ToaHeader)11 Test (org.junit.Test)11 IOException (java.io.IOException)8 JChannel (org.jgroups.JChannel)8 MessageID (org.jgroups.protocols.tom.MessageID)8 DistributionMessage (org.apache.geode.distributed.internal.DistributionMessage)7 JoinRequestMessage (org.apache.geode.distributed.internal.membership.gms.messages.JoinRequestMessage)7 JoinResponseMessage (org.apache.geode.distributed.internal.membership.gms.messages.JoinResponseMessage)7 TimeoutException (java.util.concurrent.TimeoutException)6 Collectors (java.util.stream.Collectors)6 MembershipTest (org.apache.geode.test.junit.categories.MembershipTest)6