public void channelConnected(Channel channel) {
   for (ChannelListener l : channel_listeners) {
     try {
       l.channelConnected(channel);
     } catch (Throwable t) {
       log.warn("notifying channel listener " + l + " failed", t);
     }
   }
 }
Beispiel #2
0
  public void channelConnected(Channel channel) {

    synchronized (additionalChannelListeners) {
      for (Iterator i = additionalChannelListeners.iterator(); i.hasNext(); ) {
        ChannelListener l = (ChannelListener) i.next();
        try {
          l.channelConnected(channel);
        } catch (Throwable t) {
          log.warn("channel listener failed", t);
        }
      }
    }
  }
  @Override
  public String amqpRegister(User user) throws Exception {

    try {
      Channel rabbitMqChannel = rabbitMqConnection.createChannel();

      // create or get user queue
      AMQP.Queue.DeclareOk queue =
          rabbitMqChannel.queueDeclare(
              "USER_".concat(String.valueOf(user.hashCode())),
              true, // durable
              false, // exclusive
              false, // auto delete
              null // no arguments
              );

      Map<String, Object> bindParams = new HashMap<>();
      bindParams.put(ARGUMENT_TO_ID, user.getId());
      rabbitMqChannel.queueBind(queue.getQueue(), amqpExchange, "", bindParams);
      channelListener.registerChannel(rabbitMqChannel, queue.getQueue(), false);

      // add user channel to active channels
      USER_CHANNEL.put(user, rabbitMqChannel);
      return queue.getQueue();

    } catch (Exception e) {
      logger.info("### Couldn't create user queue .. -> {" + e.getMessage() + "}");
      throw e;
    }
  }
  @Override
  public void unregisterChannelListener(ChannelListener channelListener) {
    lock.lock();

    try {
      List<ChannelListener> channelListeners = _getChannelListeners();

      channelListeners.remove(channelListener);
    } finally {
      lock.unlock();
    }

    channelListener.channelListenerRemoved(_userId);
  }
Beispiel #5
0
 @SuppressWarnings({"unchecked"})
 public void handleDone(final Channel channel, final ChannelListener channelListener) {
   channelListener.handleEvent(channel);
 }
 protected void notifyChannelListeners() {
   for (ChannelListener channelListener : _getChannelListeners()) {
     channelListener.notificationEventsAvailable(_userId);
   }
 }