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;
}
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;
}
}
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);
}
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));
}
}
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);
}
Aggregations