public void open(final OperationResult<Void, Exception> onOpen, final OperationResult<Void, Exception> onClose) { this.onOpen = onOpen; this.onClose = onClose; this.sendLink.open(); this.receiveLink.open(); }
/** * Open the Session links for session * @param session the {@link Session} endpoint. * @throws IOException if the function failed to open the links for the provided session. * @throws IllegalArgumentException if the session is {@code null}. */ public void openLinks(Session session) throws IOException, IllegalArgumentException { if (session == null) { throw new IllegalArgumentException("The session cannot be null."); } try { this.receiverLink = session.receiver(this.receiverLinkTag); this.receiverLink.setProperties(this.amqpProperties); this.receiverLink.open(); this.senderLink = session.sender(this.senderLinkTag); this.senderLink.setProperties(this.amqpProperties); this.senderLink.open(); } catch (Exception e) { throw new IOException("Proton exception", e); } }
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(); } }
snd.open(); isConnected = true;
public AmqpSender createSender(Target target, QoS qos, String name) { assertExecuting(); Sender sender = session.sender(name); attach(); // Source source = new Source(); // source.setAddress(UUID.randomUUID().toString()); // sender.setSource(source); sender.setTarget(target); configureQos(sender, qos); sender.open(); pumpOut(); return new AmqpSender(this, sender, qos); }
/** * Event handler for the connection init event * @param event The Proton Event object. */ @Override public void onConnectionInit(Event event) { // Codes_SRS_AMQPSIOTHUBCONNECTION_15_025: [The event handler shall get the Connection (Proton) object from the event handler and set the host name on the connection.] this.connection = event.getConnection(); this.connection.setHostname(this.hostName); // Codes_SRS_AMQPSIOTHUBCONNECTION_15_026: [The event handler shall create a Session (Proton) object from the connection.] this.session = this.connection.session(); // Codes_SRS_AMQPSIOTHUBCONNECTION_15_027: [The event handler shall create a Receiver and Sender (Proton) links and set the protocol tag on them to a predefined constant.] this.receiver = this.session.receiver(receiveTag); this.sender = this.session.sender(sendTag); // Codes_SRS_AMQPSIOTHUBCONNECTION_15_028: [The Receiver and Sender links shall have the properties set to client version identifier.] Map<Symbol, Object> properties = new HashMap<>(); properties.put(Symbol.getSymbol(versionIdentifierKey), TransportUtils.javaDeviceClientIdentifier + TransportUtils.clientVersion); this.receiver.setProperties(properties); this.sender.setProperties(properties); // Codes_SRS_AMQPSIOTHUBCONNECTION_15_029: [The event handler shall open the connection, session, sender and receiver objects.] this.connection.open(); this.session.open(); receiver.open(); sender.open(); }
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(); } } }
private void createSendLink(SenderLinkSettings linkSettings) { TRACE_LOGGER.info("Creating send link to '{}'", this.sendPath); final Connection connection = this.underlyingFactory.getConnection(); final Session session = connection.session(); session.setOutgoingWindow(Integer.MAX_VALUE); session.open(); BaseHandler.setHandler(session, new SessionHandler(sendPath)); final Sender sender = session.sender(linkSettings.linkName); sender.setTarget(linkSettings.target); sender.setSource(linkSettings.source); sender.setProperties(linkSettings.linkProperties); TRACE_LOGGER.debug("Send link settle mode '{}'", linkSettings.settleMode); sender.setSenderSettleMode(linkSettings.settleMode); SendLinkHandler handler = new SendLinkHandler(CoreMessageSender.this); BaseHandler.setHandler(sender, handler); sender.open(); this.sendLink = sender; this.underlyingFactory.registerForConnectionError(this.sendLink); }
private void createSender(org.apache.qpid.proton.engine.Session session) throws Exception { Sender sender = session.sender(subscriberInfo.getClientId()); Target target = new Target(); target.setAddress(subscriberInfo.getClientAddress()); sender.setTarget(target); Source source = new Source(); source.setAddress(subscriberInfo.getClientAddress()); source.setDurable(TerminusDurability.UNSETTLED_STATE); sender.setSource(source); sender.open(); } }
sender.setTarget(target); sender.setContext(amqpSender); sender.open();
sender.open(); this.underlyingFactory.registerForConnectionError(sender); TRACE_LOGGER.debug("RequestReponseLink - opening receive link to {}", this.linkPath);
@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; }
@Override public void accept(Session session) { if (MessageSender.this.getIsClosingOrClosed()) { session.close(); return; } final Sender sender = session.sender(TrackingUtil.getLinkName(session)); final Target target = new Target(); target.setAddress(sendPath); sender.setTarget(target); final Source source = new Source(); sender.setSource(source); sender.setSenderSettleMode(SenderSettleMode.UNSETTLED); final SendLinkHandler handler = new SendLinkHandler(MessageSender.this); BaseHandler.setHandler(sender, handler); if (MessageSender.this.sendLink != null) { MessageSender.this.underlyingFactory.deregisterForConnectionError(MessageSender.this.sendLink); } MessageSender.this.underlyingFactory.registerForConnectionError(sender); sender.open(); synchronized (MessageSender.this.errorConditionLock) { MessageSender.this.sendLink = sender; } } };
linkSender.setSource(source); linkSender.setTarget(target); linkSender.open(); linkOpened = true; break;
this.senderLink.open();