public void addSender(Sender sender) throws Exception { ProtonServerSenderContext protonSender = new ProtonServerSenderContext(connection, sender, this, sessionSPI); try { protonSender.initialise(); senders.put(sender, protonSender); serverSenders.put(protonSender.getBrokerConsumer(), protonSender); sender.setContext(protonSender); sender.open(); protonSender.start(); } catch (ActiveMQAMQPException e) { senders.remove(sender); sender.setSource(null); sender.setCondition(new ErrorCondition(e.getAmqpError(), e.getMessage())); sender.close(); } }
public void addSender(Sender sender) throws Exception { // TODO: Remove this check when we have support for global link names boolean outgoing = (sender.getContext() != null && sender.getContext().equals(true)); ProtonServerSenderContext protonSender = outgoing ? new ProtonClientSenderContext(connection, sender, this, sessionSPI) : new ProtonServerSenderContext(connection, sender, this, sessionSPI); try { protonSender.initialise(); senders.put(sender, protonSender); serverSenders.put(protonSender.getBrokerConsumer(), protonSender); sender.setContext(protonSender); connection.runNow(() -> { sender.open(); connection.flush(); }); protonSender.start(); } catch (ActiveMQAMQPException e) { senders.remove(sender); sender.setSource(null); sender.setCondition(new ErrorCondition(e.getAmqpError(), e.getMessage())); connection.runNow(() -> { sender.close(); connection.flush(); }); } }
public void addSender(Sender sender) throws Exception { // TODO: Remove this check when we have support for global link names boolean outgoing = (sender.getContext() != null && sender.getContext().equals(true)); ProtonServerSenderContext protonSender = outgoing ? new ProtonClientSenderContext(connection, sender, this, sessionSPI) : new ProtonServerSenderContext(connection, sender, this, sessionSPI); try { protonSender.initialise(); senders.put(sender, protonSender); serverSenders.put(protonSender.getBrokerConsumer(), protonSender); sender.setContext(protonSender); connection.lock(); try { sender.open(); } finally { connection.unlock(); } protonSender.start(); } catch (ActiveMQAMQPException e) { senders.remove(sender); sender.setSource(null); sender.setCondition(new ErrorCondition(e.getAmqpError(), e.getMessage())); connection.lock(); try { sender.close(); } finally { connection.unlock(); } } }
sender.setSource(source); sender.setTarget(target); sender.setContext(amqpSender); sender.open();
@Override public AMQPClientSenderContext createSender(String address, boolean preSettled) throws ActiveMQAMQPException { FutureRunnable futureRunnable = new FutureRunnable(1); ProtonClientContext amqpSender; synchronized (connection.getLock()) { Sender sender = session.sender(address); sender.setSenderSettleMode(SenderSettleMode.SETTLED); Target target = new Target(); target.setAddress(address); sender.setTarget(target); amqpSender = new ProtonClientContext(connection, sender, this, sessionSPI); amqpSender.afterInit(futureRunnable); sender.setContext(amqpSender); sender.open(); } connection.flush(); waitWithTimeout(futureRunnable); return amqpSender; }
protonSender.setContext(sender);
protonSender.setContext(sender);