Java Code Examples for org.apache.qpid.proton.engine.Receiver#setSenderSettleMode()
The following examples show how to use
org.apache.qpid.proton.engine.Receiver#setSenderSettleMode() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AmqpConnectionSession.java From qpid-jms with Apache License 2.0 | 5 votes |
@Override protected Receiver createEndpoint(JmsSessionInfo resourceInfo) { Receiver receiver = getParent().getEndpoint().receiver(linkName); receiver.setTarget(new Target()); receiver.setSenderSettleMode(SenderSettleMode.UNSETTLED); receiver.setReceiverSettleMode(ReceiverSettleMode.FIRST); if (!hasClientID) { // We are trying to unsubscribe a 'global' shared subs using a 'null source lookup', add link // desired capabilities as hints to the peer to consider this when trying to attach the link. receiver.setDesiredCapabilities(new Symbol[] { AmqpSupport.SHARED, AmqpSupport.GLOBAL }); } return receiver; }
Example 2
Source File: LinkTest.java From qpid-proton-j with Apache License 2.0 | 4 votes |
@Test public void testMaxMessageSizeValue() throws Exception { LOGGER.fine(bold("======== About to create transports")); Transport clientTransport = Proton.transport(); getClient().setTransport(clientTransport); ProtocolTracerEnabler.setProtocolTracer(clientTransport, TestLoggingHelper.CLIENT_PREFIX); Transport serverTransport = Proton.transport(); getServer().setTransport(serverTransport); ProtocolTracerEnabler.setProtocolTracer(serverTransport, " " + TestLoggingHelper.SERVER_PREFIX); doOutputInputCycle(); Connection clientConnection = Proton.connection(); getClient().setConnection(clientConnection); clientTransport.bind(clientConnection); Connection serverConnection = Proton.connection(); getServer().setConnection(serverConnection); serverTransport.bind(serverConnection); LOGGER.fine(bold("======== About to open connections")); clientConnection.open(); serverConnection.open(); doOutputInputCycle(); LOGGER.fine(bold("======== About to open sessions")); Session clientSession = clientConnection.session(); getClient().setSession(clientSession); clientSession.open(); pumpClientToServer(); Session serverSession = serverConnection.sessionHead(of(UNINITIALIZED), of(ACTIVE)); getServer().setSession(serverSession); serverSession.open(); pumpServerToClient(); LOGGER.fine(bold("======== About to create receiver")); Source clientSource = new Source(); getClient().setSource(clientSource); clientSource.setAddress(_sourceAddress); Target clientTarget = new Target(); getClient().setTarget(clientTarget); clientTarget.setAddress(null); Receiver clientReceiver = clientSession.receiver("link1"); getClient().setReceiver(clientReceiver); clientReceiver.setTarget(clientTarget); clientReceiver.setSource(clientSource); clientReceiver.setReceiverSettleMode(ReceiverSettleMode.FIRST); clientReceiver.setSenderSettleMode(SenderSettleMode.UNSETTLED); // Set the local link max-message-size assertNull("Expected no value to be set", clientReceiver.getMaxMessageSize()); clientReceiver.setMaxMessageSize(CLIENT_MAX_MSG_SIZE); assertEquals("Expected value to be set", CLIENT_MAX_MSG_SIZE, clientReceiver.getMaxMessageSize()); clientReceiver.open(); pumpClientToServer(); LOGGER.fine(bold("======== About to set up implicitly created sender")); Sender serverSender = (Sender) getServer().getConnection().linkHead(of(UNINITIALIZED), of(ACTIVE)); getServer().setSender(serverSender); serverSender.setReceiverSettleMode(serverSender.getRemoteReceiverSettleMode()); serverSender.setSenderSettleMode(serverSender.getRemoteSenderSettleMode()); org.apache.qpid.proton.amqp.transport.Source serverRemoteSource = serverSender.getRemoteSource(); serverSender.setSource(serverRemoteSource); assertEquals("Expected value to be set", CLIENT_MAX_MSG_SIZE, serverSender.getRemoteMaxMessageSize()); // Set the local link max-message-size assertNull("Expected no value to be set", serverSender.getMaxMessageSize()); serverSender.setMaxMessageSize(SERVER_MAX_MSG_SIZE); assertEquals("Expected value to be set", SERVER_MAX_MSG_SIZE, serverSender.getMaxMessageSize()); serverSender.open(); assertNull("Expected no value to be present yet", clientReceiver.getRemoteMaxMessageSize()); pumpServerToClient(); assertEquals("Expected value to be set", SERVER_MAX_MSG_SIZE, clientReceiver.getRemoteMaxMessageSize()); }
Example 3
Source File: AmqpConsumerBuilder.java From qpid-jms with Apache License 2.0 | 4 votes |
@Override protected Receiver createEndpoint(JmsConsumerInfo resourceInfo) { JmsDestination destination = resourceInfo.getDestination(); String address = AmqpDestinationHelper.getDestinationAddress(destination, getParent().getConnection()); Source source = new Source(); source.setAddress(address); Target target = new Target(); configureSource(source); String receiverLinkName = null; String subscriptionName = resourceInfo.getSubscriptionName(); if (subscriptionName != null && !subscriptionName.isEmpty()) { AmqpConnection connection = getParent().getConnection(); if (resourceInfo.isShared() && !connection.getProperties().isSharedSubsSupported()) { validateSharedSubsLinkCapability = true; } AmqpSubscriptionTracker subTracker = connection.getSubTracker(); // Validate subscriber type allowed given existing active subscriber types. if (resourceInfo.isShared() && resourceInfo.isDurable()) { if(subTracker.isActiveExclusiveDurableSub(subscriptionName)) { // Don't allow shared sub if there is already an active exclusive durable sub throw new JMSRuntimeException("A non-shared durable subscription is already active with name '" + subscriptionName + "'"); } } else if (!resourceInfo.isShared() && resourceInfo.isDurable()) { if (subTracker.isActiveExclusiveDurableSub(subscriptionName)) { // Exclusive durable sub is already active throw new JMSRuntimeException("A non-shared durable subscription is already active with name '" + subscriptionName + "'"); } else if (subTracker.isActiveSharedDurableSub(subscriptionName)) { // Don't allow exclusive durable sub if there is already an active shared durable sub throw new JMSRuntimeException("A shared durable subscription is already active with name '" + subscriptionName + "'"); } } // Get the link name for the subscription. Throws if certain further validations fail. receiverLinkName = subTracker.reserveNextSubscriptionLinkName(subscriptionName, resourceInfo); } if (receiverLinkName == null) { receiverLinkName = "qpid-jms:receiver:" + resourceInfo.getId() + ":" + address; } Receiver receiver = getParent().getEndpoint().receiver(receiverLinkName); receiver.setSource(source); receiver.setTarget(target); if (resourceInfo.isBrowser() || resourceInfo.isPresettle()) { receiver.setSenderSettleMode(SenderSettleMode.SETTLED); } else { receiver.setSenderSettleMode(SenderSettleMode.UNSETTLED); } receiver.setReceiverSettleMode(ReceiverSettleMode.FIRST); if (validateSharedSubsLinkCapability) { receiver.setDesiredCapabilities(new Symbol[] { AmqpSupport.SHARED_SUBS }); } return receiver; }