Search in sources :

Example 31 with Queue

use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.

the class Session_1_0Test method testReceiveAttachSharedTopicNonDurableNoContainer.

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", 1, queues.size());
    Queue<?> queue = queues.iterator().next();
    Collection<QueueConsumer<?, ?>> consumers = queue.getConsumers();
    assertEquals("Unexpected number of consumers", 2, consumers.size());
}
Also used : QueueConsumer(org.apache.qpid.server.queue.QueueConsumer) Attach(org.apache.qpid.server.protocol.v1_0.type.transport.Attach) Queue(org.apache.qpid.server.model.Queue)

Example 32 with Queue

use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.

the class Session_1_0Test method testReceiveAttachTopicDurableWithContainer.

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 ", 2, queues.size());
}
Also used : Attach(org.apache.qpid.server.protocol.v1_0.type.transport.Attach) Queue(org.apache.qpid.server.model.Queue)

Example 33 with Queue

use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.

the class Session_1_0Test method testReceiveAttachForInvalidUnsubscribe.

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", 0, queues.size());
}
Also used : Attach(org.apache.qpid.server.protocol.v1_0.type.transport.Attach) Queue(org.apache.qpid.server.model.Queue)

Example 34 with Queue

use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.

the class Session_1_0Test method testReceiveAttachSharedTopicNonDurableWithContainer.

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", 2, queues.size());
    for (Queue<?> queue : queues) {
        Collection<QueueConsumer<?, ?>> consumers = queue.getConsumers();
        assertEquals("Unexpected number of consumers on queue " + queue.getName(), 1, consumers.size());
    }
}
Also used : QueueConsumer(org.apache.qpid.server.queue.QueueConsumer) Attach(org.apache.qpid.server.protocol.v1_0.type.transport.Attach) Queue(org.apache.qpid.server.model.Queue)

Example 35 with Queue

use of org.apache.qpid.server.model.Queue in project qpid-broker-j by apache.

the class MessageConverter_1_0_to_v0_10 method getReplyTo.

private ReplyTo getReplyTo(final NamedAddressSpace addressSpace, final String origReplyTo) {
    DestinationAddress destinationAddress = new DestinationAddress(addressSpace, origReplyTo);
    MessageDestination messageDestination = destinationAddress.getMessageDestination();
    return new ReplyTo(ensureStr8("reply-to[\"exchange\"]", messageDestination instanceof Exchange ? messageDestination.getName() : ""), ensureStr8("reply-to[\"routing-key\"]", messageDestination instanceof Queue ? messageDestination.getName() : destinationAddress.getRoutingKey()));
}
Also used : ReplyTo(org.apache.qpid.server.protocol.v0_10.transport.ReplyTo) Exchange(org.apache.qpid.server.model.Exchange) MessageDestination(org.apache.qpid.server.message.MessageDestination) Queue(org.apache.qpid.server.model.Queue) DestinationAddress(org.apache.qpid.server.model.DestinationAddress)

Aggregations

Queue (org.apache.qpid.server.model.Queue)56 HashMap (java.util.HashMap)14 Exchange (org.apache.qpid.server.model.Exchange)12 MessageDestination (org.apache.qpid.server.message.MessageDestination)11 Attach (org.apache.qpid.server.protocol.v1_0.type.transport.Attach)9 DestinationAddress (org.apache.qpid.server.model.DestinationAddress)8 MessageSource (org.apache.qpid.server.message.MessageSource)6 NamedAddressSpace (org.apache.qpid.server.model.NamedAddressSpace)6 Matchers.anyString (org.mockito.Matchers.anyString)6 ConcurrentLinkedQueue (java.util.concurrent.ConcurrentLinkedQueue)5 ServerMessage (org.apache.qpid.server.message.ServerMessage)5 AbstractConfiguredObject (org.apache.qpid.server.model.AbstractConfiguredObject)5 AccessControlException (java.security.AccessControlException)4 QmfAgentData (org.apache.qpid.qmf2.agent.QmfAgentData)4 AMQShortString (org.apache.qpid.server.protocol.v0_8.AMQShortString)4 MessagePublishInfo (org.apache.qpid.server.protocol.v0_8.transport.MessagePublishInfo)4 Map (java.util.Map)3 AMQMessageHeader (org.apache.qpid.server.message.AMQMessageHeader)3 ReplyTo (org.apache.qpid.server.protocol.v0_10.transport.ReplyTo)3 Source (org.apache.qpid.server.protocol.v1_0.type.messaging.Source)3