use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.
the class MessageConverter_Internal_to_v0_8 method getReplyTo.
private String getReplyTo(final InternalMessage serverMsg, final NamedAddressSpace addressSpace) {
String replyTo = serverMsg.getMessageHeader().getReplyTo();
if (replyTo != null) {
DestinationAddress destinationAddress = new DestinationAddress(addressSpace, replyTo);
MessageDestination messageDestination = destinationAddress.getMessageDestination();
final String replyToBindingUrl;
if (messageDestination instanceof Exchange) {
Exchange<?> exchange = (Exchange<?>) messageDestination;
final String routingKeyOption = "".equals(destinationAddress.getRoutingKey()) ? "" : String.format("?routingkey='%s'", destinationAddress.getRoutingKey());
replyToBindingUrl = String.format("%s://%s//%s", exchange.getType(), exchange.getName(), routingKeyOption);
} else if (messageDestination instanceof Queue) {
replyToBindingUrl = String.format("%s:////%s", ExchangeDefaults.DIRECT_EXCHANGE_CLASS, messageDestination.getName());
} else {
replyToBindingUrl = String.format("%s:////?routingkey='%s'", ExchangeDefaults.DIRECT_EXCHANGE_CLASS, destinationAddress.getRoutingKey());
}
return replyToBindingUrl;
}
return null;
}
use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachTopicDurableWithContainer.
@Test
public void testReceiveAttachTopicDurableWithContainer() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach attach = createTopicAttach(true, linkName + "|1", address, false);
_session.receiveAttach(attach);
assertAttachSent(_connection, _session, attach);
assertQueues(TOPIC_NAME, LifetimePolicy.PERMANENT);
AMQPConnection_1_0 secondConnection = createAmqpConnection_1_0("testContainerId2");
Session_1_0 secondSession = createSession_1_0(secondConnection, 0);
Attach attach2 = createTopicAttach(true, linkName + "|2", address, false);
secondSession.receiveAttach(attach2);
assertAttachSent(secondConnection, secondSession, attach2);
Collection<Queue> queues = _virtualHost.getChildren(Queue.class);
assertEquals("Unexpected number of queues after second subscription with the same subscription name but different " + "container id ", (long) 2, (long) queues.size());
}
use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachSharedTopicNonDurableNoContainer.
@Test
public void testReceiveAttachSharedTopicNonDurableNoContainer() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach attach = createSharedTopicAttach(false, linkName, address, true);
Attach attach2 = createSharedTopicAttach(false, linkName, address, true);
_session.receiveAttach(attach);
assertAttachSent(_connection, _session, attach);
assertQueues(TOPIC_NAME, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
AMQPConnection_1_0 secondConnection = createAmqpConnection_1_0();
Session_1_0 secondSession = createSession_1_0(secondConnection, 0);
secondSession.receiveAttach(attach2);
assertAttachSent(secondConnection, secondSession, attach2);
assertQueues(TOPIC_NAME, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
final Collection<Queue> queues = _virtualHost.getChildren(Queue.class);
assertEquals("Unexpected number of queues after attach", (long) 1, (long) queues.size());
Queue<?> queue = queues.iterator().next();
Collection<QueueConsumer<?, ?>> consumers = queue.getConsumers();
assertEquals("Unexpected number of consumers", (long) 2, (long) consumers.size());
}
use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachForInvalidUnsubscribe.
@Test
public void testReceiveAttachForInvalidUnsubscribe() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach unsubscribeAttach = createTopicAttach(true, linkName, address, false);
unsubscribeAttach.setSource(null);
_session.receiveAttach(unsubscribeAttach);
assertAttachFailed(_connection, _session, unsubscribeAttach);
Collection<Queue> queues = _virtualHost.getChildren(Queue.class);
assertEquals("Unexpected number of queues after unsubscribe", (long) 0, (long) queues.size());
}
use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.
the class Session_1_0Test method testReceiveAttachSharedTopicNonDurableWithContainer.
@Test
public void testReceiveAttachSharedTopicNonDurableWithContainer() throws Exception {
final String linkName = "testLink";
final String address = "amq.direct/" + TOPIC_NAME;
Attach attach = createSharedTopicAttach(false, linkName, address, false);
Attach attach2 = createSharedTopicAttach(false, linkName, address, false);
_session.receiveAttach(attach);
assertAttachSent(_connection, _session, attach);
assertQueues(TOPIC_NAME, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);
AMQPConnection_1_0 secondConnection = createAmqpConnection_1_0("testContainerId2");
Session_1_0 secondSession = createSession_1_0(secondConnection, 0);
secondSession.receiveAttach(attach2);
assertAttachSent(secondConnection, secondSession, attach2);
final Collection<Queue> queues = _virtualHost.getChildren(Queue.class);
assertEquals("Unexpected number of queues after attach", (long) 2, (long) queues.size());
for (Queue<?> queue : queues) {
Collection<QueueConsumer<?, ?>> consumers = queue.getConsumers();
assertEquals("Unexpected number of consumers on queue " + queue.getName(), (long) 1, (long) consumers.size());
}
}
Aggregations