@Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { // Not for us. if (!envelope.getRoutingKey().equalsIgnoreCase(id)) return; String message = new String(body); try { Object newMsg = filter(message); // if newSgw == null, that means the message has been filtered. if (newMsg != null) { deliverPush(new Deliver(newMsg, new BroadcasterFuture<Object>(newMsg), message), true); } } catch (Throwable t) { logger.error("failed to push message: " + message, t); } } };
public void run() { Entry msg = null; try { msg = messages.take(); // Leader/follower bc.getExecutorService().submit(this); if (msg.eventsToPush == null) { for (ContainerResponse r : containerResponses) { synchronized (r) { r.reset(); r.setEntity(msg.message); broadcast(r); } } } } catch (InterruptedException ex) { LoggerUtils.getLogger().log(Level.SEVERE, null, ex); } finally { if (msg != null){ msg.f.done(); } } } });
} finally { if (msg != null){ msg.f.done();
/** * {@inheritDoc} */ public BroadcasterFuture<Object> broadcast(Object msg) { start(); msg = bc.filter(msg); if (msg == null) { return null; } BroadcasterFuture<Object> f = new BroadcasterFuture<Object>(msg); messages.offer(new Entry(msg, null,f)); return f; }
/** * {@inheritDoc} */ public BroadcasterFuture<Object> broadcast(Object msg, AtmosphereEvent event) { start(); msg = bc.filter(msg); if (msg == null) { return null; } BroadcasterFuture<Object> f = new BroadcasterFuture<Object>(msg); messages.offer(new Entry(msg, event,f)); return f; }
/** * {@inheritDoc} */ public BroadcasterFuture<String> broadcast(String msg, AtmosphereEvent event) { start(); msg = (String) bc.filter(msg); if (msg == null) { return null; } BroadcasterFuture<String> f = new BroadcasterFuture<String>(msg); messages.offer(new Entry(msg, event,f)); return f; }
/** * {@inheritDoc} */ public BroadcasterFuture<String> broadcast(String msg, Set<AtmosphereEvent> subset) { start(); msg = (String) bc.filter(msg); if (msg == null) { return null; } BroadcasterFuture<String> f = new BroadcasterFuture<String>(msg); messages.offer(new Entry(msg, subset,f)); return f; }
/** * {@inheritDoc} */ public BroadcasterFuture<Object> broadcast(Object msg, Set<AtmosphereEvent> subset) { start(); msg = bc.filter(msg); if (msg == null) { return null; } BroadcasterFuture<Object> f = new BroadcasterFuture<Object>(msg); messages.offer(new Entry(msg, subset,f)); return f; }
/** * {@inheritDoc} */ public BroadcasterFuture<String> broadcast(String msg) { start(); msg = (String) bc.filter(msg); if (msg == null) { return null; } BroadcasterFuture<String> f = new BroadcasterFuture<String>(msg); messages.offer(new Entry(msg, null,f)); return f; }