Search in sources :

Example 16 with Queue

use of org.apache.activemq.artemis.core.server.Queue in project activemq-artemis by apache.

the class ActiveMQServerImpl method createQueue.

@Override
public Queue createQueue(final SimpleString address, final RoutingType routingType, final SimpleString queueName, final SimpleString filterString, final SimpleString user, final boolean durable, final boolean temporary, final boolean ignoreIfExists, final boolean transientQueue, final boolean autoCreated, final int maxConsumers, final boolean purgeOnNoConsumers, final boolean exclusive, final boolean lastValue, final boolean autoCreateAddress) throws Exception {
    final QueueBinding binding = (QueueBinding) postOffice.getBinding(queueName);
    if (binding != null) {
        if (ignoreIfExists) {
            return binding.getQueue();
        } else {
            throw ActiveMQMessageBundle.BUNDLE.queueAlreadyExists(queueName, binding.getAddress());
        }
    }
    final Filter filter = FilterImpl.createFilter(filterString);
    final long txID = storageManager.generateID();
    final long queueID = storageManager.generateID();
    final QueueConfig.Builder queueConfigBuilder;
    final SimpleString addressToUse = address == null ? queueName : address;
    queueConfigBuilder = QueueConfig.builderWith(queueID, queueName, addressToUse);
    AddressInfo info = postOffice.getAddressInfo(addressToUse);
    if (autoCreateAddress) {
        RoutingType rt = (routingType == null ? ActiveMQDefaultConfiguration.getDefaultRoutingType() : routingType);
        if (info == null) {
            final AddressInfo addressInfo = new AddressInfo(addressToUse, rt);
            addressInfo.setAutoCreated(true);
            addAddressInfo(addressInfo);
        } else if (!info.getRoutingTypes().contains(routingType)) {
            EnumSet<RoutingType> routingTypes = EnumSet.copyOf(info.getRoutingTypes());
            routingTypes.add(routingType);
            updateAddressInfo(info.getName(), routingTypes);
        }
    } else if (info == null) {
        throw ActiveMQMessageBundle.BUNDLE.addressDoesNotExist(addressToUse);
    } else if (!info.getRoutingTypes().contains(routingType)) {
        throw ActiveMQMessageBundle.BUNDLE.invalidRoutingTypeForAddress(routingType, info.getName().toString(), info.getRoutingTypes());
    }
    final QueueConfig queueConfig = queueConfigBuilder.filter(filter).pagingManager(pagingManager).user(user).durable(durable).temporary(temporary).autoCreated(autoCreated).routingType(routingType).maxConsumers(maxConsumers).purgeOnNoConsumers(purgeOnNoConsumers).exclusive(exclusive).lastValue(lastValue).build();
    callBrokerPlugins(hasBrokerPlugins() ? plugin -> plugin.beforeCreateQueue(queueConfig) : null);
    final Queue queue = queueFactory.createQueueWith(queueConfig);
    if (transientQueue) {
        queue.setConsumersRefCount(new TransientQueueManagerImpl(this, queue.getName()));
    } else {
        queue.setConsumersRefCount(new QueueManagerImpl(this, queue.getName()));
    }
    final QueueBinding localQueueBinding = new LocalQueueBinding(queue.getAddress(), queue, nodeManager.getNodeId());
    if (queue.isDurable()) {
        storageManager.addQueueBinding(txID, localQueueBinding);
    }
    try {
        postOffice.addBinding(localQueueBinding);
        if (queue.isDurable()) {
            storageManager.commitBindings(txID);
        }
    } catch (Exception e) {
        try {
            if (durable) {
                storageManager.rollbackBindings(txID);
            }
            final PageSubscription pageSubscription = queue.getPageSubscription();
            try {
                queue.close();
            } finally {
                if (pageSubscription != null) {
                    pageSubscription.destroy();
                }
            }
        } catch (Throwable ignored) {
            logger.debug(ignored.getMessage(), ignored);
        }
        throw e;
    }
    managementService.registerQueue(queue, queue.getAddress(), storageManager);
    callBrokerPlugins(hasBrokerPlugins() ? plugin -> plugin.afterCreateQueue(queue) : null);
    callPostQueueCreationCallbacks(queue.getName());
    return queue;
}
Also used : SequentialFile(org.apache.activemq.artemis.core.io.SequentialFile) OrderedExecutorFactory(org.apache.activemq.artemis.utils.actors.OrderedExecutorFactory) Binding(org.apache.activemq.artemis.core.postoffice.Binding) ProtocolManagerFactory(org.apache.activemq.artemis.spi.core.protocol.ProtocolManagerFactory) ConfigurationImpl(org.apache.activemq.artemis.core.config.impl.ConfigurationImpl) RemotingServiceImpl(org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl) ActiveMQThreadPoolExecutor(org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor) JDBCJournalStorageManager(org.apache.activemq.artemis.core.persistence.impl.journal.JDBCJournalStorageManager) ActiveMQException(org.apache.activemq.artemis.api.core.ActiveMQException) ActiveMQComponent(org.apache.activemq.artemis.core.server.ActiveMQComponent) Map(java.util.Map) PagingStoreFactoryNIO(org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryNIO) EnumSet(java.util.EnumSet) StoreConfiguration(org.apache.activemq.artemis.core.config.StoreConfiguration) ConfigurationUtils(org.apache.activemq.artemis.core.config.ConfigurationUtils) ActiveMQServerPlugin(org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin) PrintWriter(java.io.PrintWriter) AddressSettings(org.apache.activemq.artemis.core.settings.impl.AddressSettings) DivertBinding(org.apache.activemq.artemis.core.postoffice.impl.DivertBinding) BackupManager(org.apache.activemq.artemis.core.server.cluster.BackupManager) ActivateCallback(org.apache.activemq.artemis.core.server.ActivateCallback) Set(java.util.Set) JournalStorageManager(org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager) HAPolicy(org.apache.activemq.artemis.core.server.cluster.ha.HAPolicy) ResourceManager(org.apache.activemq.artemis.core.transaction.ResourceManager) ReloadManager(org.apache.activemq.artemis.core.server.reload.ReloadManager) LocalQueueBinding(org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding) PageSubscription(org.apache.activemq.artemis.core.paging.cursor.PageSubscription) StorageManager(org.apache.activemq.artemis.core.persistence.StorageManager) PostQueueCreationCallback(org.apache.activemq.artemis.core.server.PostQueueCreationCallback) LocalGroupingHandler(org.apache.activemq.artemis.core.server.group.impl.LocalGroupingHandler) DeletionPolicy(org.apache.activemq.artemis.core.settings.impl.DeletionPolicy) AccessController(java.security.AccessController) Bindable(org.apache.activemq.artemis.core.server.Bindable) QueueQueryResult(org.apache.activemq.artemis.core.server.QueueQueryResult) Configuration(org.apache.activemq.artemis.core.config.Configuration) PagingManager(org.apache.activemq.artemis.core.paging.PagingManager) ActiveMQDefaultConfiguration(org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration) Version(org.apache.activemq.artemis.core.version.Version) ReusableLatch(org.apache.activemq.artemis.utils.ReusableLatch) ReplicationEndpoint(org.apache.activemq.artemis.core.replication.ReplicationEndpoint) Pair(org.apache.activemq.artemis.api.core.Pair) ActiveMQSecurityManager(org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) CompositeAddress(org.apache.activemq.artemis.utils.CompositeAddress) AddressQueryResult(org.apache.activemq.artemis.core.server.AddressQueryResult) RemotingConnection(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection) QueueBinding(org.apache.activemq.artemis.core.postoffice.QueueBinding) ArrayList(java.util.ArrayList) VersionLoader(org.apache.activemq.artemis.utils.VersionLoader) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) CriticalAnalyzerImpl(org.apache.activemq.artemis.utils.critical.CriticalAnalyzerImpl) ManagementFactory(java.lang.management.ManagementFactory) BindingQueryResult(org.apache.activemq.artemis.core.server.BindingQueryResult) ServerSession(org.apache.activemq.artemis.core.server.ServerSession) StringWriter(java.io.StringWriter) PostOfficeImpl(org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl) IOException(java.io.IOException) File(java.io.File) PersistedRoles(org.apache.activemq.artemis.core.persistence.config.PersistedRoles) OperationContext(org.apache.activemq.artemis.core.persistence.OperationContext) HAPolicyConfiguration(org.apache.activemq.artemis.core.config.HAPolicyConfiguration) ServiceRegistry(org.apache.activemq.artemis.core.server.ServiceRegistry) ActiveMQPluginRunnable(org.apache.activemq.artemis.core.server.plugin.ActiveMQPluginRunnable) QueueConfig(org.apache.activemq.artemis.core.server.QueueConfig) ReloadManagerImpl(org.apache.activemq.artemis.core.server.reload.ReloadManagerImpl) OperationContextImpl(org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl) HierarchicalObjectRepository(org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository) DivertConfiguration(org.apache.activemq.artemis.core.config.DivertConfiguration) ClientSessionFactoryImpl(org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl) URL(java.net.URL) Date(java.util.Date) JournalType(org.apache.activemq.artemis.core.server.JournalType) RemoteGroupingHandler(org.apache.activemq.artemis.core.server.group.impl.RemoteGroupingHandler) CheckType(org.apache.activemq.artemis.core.security.CheckType) GroupingHandler(org.apache.activemq.artemis.core.server.group.GroupingHandler) ManagementServiceImpl(org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl) SecurityStore(org.apache.activemq.artemis.core.security.SecurityStore) LargeServerMessage(org.apache.activemq.artemis.core.server.LargeServerMessage) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) FilterImpl(org.apache.activemq.artemis.core.filter.impl.FilterImpl) PersistedAddressSetting(org.apache.activemq.artemis.core.persistence.config.PersistedAddressSetting) ThreadFactory(java.util.concurrent.ThreadFactory) ThreadDumpUtil(org.apache.activemq.artemis.utils.ThreadDumpUtil) PagingStoreFactoryDatabase(org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryDatabase) ResourceLimitSettings(org.apache.activemq.artemis.core.settings.impl.ResourceLimitSettings) Role(org.apache.activemq.artemis.core.security.Role) CriticalAnalyzerPolicy(org.apache.activemq.artemis.utils.critical.CriticalAnalyzerPolicy) BindingType(org.apache.activemq.artemis.core.postoffice.BindingType) IOCriticalErrorListener(org.apache.activemq.artemis.core.io.IOCriticalErrorListener) ConcurrentHashSet(org.apache.activemq.artemis.utils.collections.ConcurrentHashSet) SynchronousQueue(java.util.concurrent.SynchronousQueue) Collection(java.util.Collection) ActiveMQServer(org.apache.activemq.artemis.core.server.ActiveMQServer) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) MemoryManager(org.apache.activemq.artemis.core.server.MemoryManager) Queue(org.apache.activemq.artemis.core.server.Queue) HierarchicalRepository(org.apache.activemq.artemis.core.settings.HierarchicalRepository) SessionCallback(org.apache.activemq.artemis.spi.core.protocol.SessionCallback) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) ClusterManager(org.apache.activemq.artemis.core.server.cluster.ClusterManager) ExecutorFactory(org.apache.activemq.artemis.utils.ExecutorFactory) PrivilegedAction(java.security.PrivilegedAction) Collectors(java.util.stream.Collectors) CriticalComponent(org.apache.activemq.artemis.utils.critical.CriticalComponent) ReloadCallback(org.apache.activemq.artemis.core.server.reload.ReloadCallback) TimeUtils(org.apache.activemq.artemis.utils.TimeUtils) List(java.util.List) JdbcNodeManager(org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager) SecurityAuth(org.apache.activemq.artemis.core.security.SecurityAuth) PostQueueDeletionCallback(org.apache.activemq.artemis.core.server.PostQueueDeletionCallback) QueueBindingInfo(org.apache.activemq.artemis.core.persistence.QueueBindingInfo) Divert(org.apache.activemq.artemis.core.server.Divert) GroupingHandlerConfiguration(org.apache.activemq.artemis.core.server.group.impl.GroupingHandlerConfiguration) PagingStoreFactory(org.apache.activemq.artemis.core.paging.PagingStoreFactory) Entry(java.util.Map.Entry) NetworkHealthCheck(org.apache.activemq.artemis.core.server.NetworkHealthCheck) PostOffice(org.apache.activemq.artemis.core.postoffice.PostOffice) ActivationFailureListener(org.apache.activemq.artemis.core.server.ActivationFailureListener) ActiveMQServerLogger(org.apache.activemq.artemis.core.server.ActiveMQServerLogger) FileStoreMonitor(org.apache.activemq.artemis.core.server.files.FileStoreMonitor) Filter(org.apache.activemq.artemis.core.filter.Filter) ActiveMQMessageBundle(org.apache.activemq.artemis.core.server.ActiveMQMessageBundle) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) CriticalAnalyzer(org.apache.activemq.artemis.utils.critical.CriticalAnalyzer) Logger(org.jboss.logging.Logger) DatabaseStorageConfiguration(org.apache.activemq.artemis.core.config.storage.DatabaseStorageConfiguration) RemotingService(org.apache.activemq.artemis.core.remoting.server.RemotingService) HashMap(java.util.HashMap) PageCountPending(org.apache.activemq.artemis.core.persistence.impl.PageCountPending) ManagementService(org.apache.activemq.artemis.core.server.management.ManagementService) SecurityStoreImpl(org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl) SecurityFormatter(org.apache.activemq.artemis.utils.SecurityFormatter) ConcurrentMap(java.util.concurrent.ConcurrentMap) HashSet(java.util.HashSet) EmptyCriticalAnalyzer(org.apache.activemq.artemis.utils.critical.EmptyCriticalAnalyzer) CriticalAction(org.apache.activemq.artemis.utils.critical.CriticalAction) ActiveMQServerControlImpl(org.apache.activemq.artemis.core.management.impl.ActiveMQServerControlImpl) MBeanServer(javax.management.MBeanServer) SecuritySettingPlugin(org.apache.activemq.artemis.core.server.SecuritySettingPlugin) NodeManager(org.apache.activemq.artemis.core.server.NodeManager) LinkedList(java.util.LinkedList) ResourceManagerImpl(org.apache.activemq.artemis.core.transaction.impl.ResourceManagerImpl) FileConfigurationParser(org.apache.activemq.artemis.core.deployers.impl.FileConfigurationParser) ExecutorService(java.util.concurrent.ExecutorService) Transformer(org.apache.activemq.artemis.core.server.transformer.Transformer) BridgeConfiguration(org.apache.activemq.artemis.core.config.BridgeConfiguration) ActiveMQQueueExistsException(org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException) FileMoveManager(org.apache.activemq.artemis.core.server.files.FileMoveManager) Semaphore(java.util.concurrent.Semaphore) GroupingInfo(org.apache.activemq.artemis.core.persistence.GroupingInfo) CoreAddressConfiguration(org.apache.activemq.artemis.core.config.CoreAddressConfiguration) AddressBindingInfo(org.apache.activemq.artemis.core.persistence.AddressBindingInfo) ReplicationManager(org.apache.activemq.artemis.core.replication.ReplicationManager) AIOSequentialFileFactory(org.apache.activemq.artemis.core.io.aio.AIOSequentialFileFactory) CoreQueueConfiguration(org.apache.activemq.artemis.core.config.CoreQueueConfiguration) QueueFactory(org.apache.activemq.artemis.core.server.QueueFactory) ActiveMQDeleteAddressException(org.apache.activemq.artemis.api.core.ActiveMQDeleteAddressException) TimeUnit(java.util.concurrent.TimeUnit) RoutingType(org.apache.activemq.artemis.api.core.RoutingType) ServiceComponent(org.apache.activemq.artemis.core.server.ServiceComponent) JournalLoadInformation(org.apache.activemq.artemis.core.journal.JournalLoadInformation) NullStorageManager(org.apache.activemq.artemis.core.persistence.impl.nullpm.NullStorageManager) PagingManagerImpl(org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl) Bindings(org.apache.activemq.artemis.core.postoffice.Bindings) ActiveMQThreadFactory(org.apache.activemq.artemis.utils.ActiveMQThreadFactory) LocalQueueBinding(org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding) QueueBinding(org.apache.activemq.artemis.core.postoffice.QueueBinding) QueueConfig(org.apache.activemq.artemis.core.server.QueueConfig) EnumSet(java.util.EnumSet) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) PageSubscription(org.apache.activemq.artemis.core.paging.cursor.PageSubscription) ActiveMQException(org.apache.activemq.artemis.api.core.ActiveMQException) IOException(java.io.IOException) ActiveMQQueueExistsException(org.apache.activemq.artemis.api.core.ActiveMQQueueExistsException) ActiveMQDeleteAddressException(org.apache.activemq.artemis.api.core.ActiveMQDeleteAddressException) LocalQueueBinding(org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding) Filter(org.apache.activemq.artemis.core.filter.Filter) SynchronousQueue(java.util.concurrent.SynchronousQueue) Queue(org.apache.activemq.artemis.core.server.Queue) RoutingType(org.apache.activemq.artemis.api.core.RoutingType)

Example 17 with Queue

use of org.apache.activemq.artemis.core.server.Queue in project activemq-artemis by apache.

the class ActiveMQServerImpl method undeployAddressesAndQueueNotInConfiguration.

private void undeployAddressesAndQueueNotInConfiguration(Configuration configuration) throws Exception {
    Set<String> addressesInConfig = configuration.getAddressConfigurations().stream().map(CoreAddressConfiguration::getName).collect(Collectors.toSet());
    Set<String> queuesInConfig = configuration.getAddressConfigurations().stream().map(CoreAddressConfiguration::getQueueConfigurations).flatMap(List::stream).map(CoreQueueConfiguration::getName).collect(Collectors.toSet());
    for (SimpleString addressName : listAddressNames()) {
        AddressSettings addressSettings = getAddressSettingsRepository().getMatch(addressName.toString());
        if (!addressesInConfig.contains(addressName.toString()) && addressSettings.getConfigDeleteAddresses() == DeletionPolicy.FORCE) {
            for (Queue queue : listQueues(addressName)) {
                ActiveMQServerLogger.LOGGER.undeployQueue(queue.getName());
                queue.deleteQueue(true);
            }
            ActiveMQServerLogger.LOGGER.undeployAddress(addressName);
            removeAddressInfo(addressName, null);
        } else if (addressSettings.getConfigDeleteQueues() == DeletionPolicy.FORCE) {
            for (Queue queue : listConfiguredQueues(addressName)) {
                if (!queuesInConfig.contains(queue.getName().toString())) {
                    ActiveMQServerLogger.LOGGER.undeployQueue(queue.getName());
                    queue.deleteQueue(true);
                }
            }
        }
    }
}
Also used : AddressSettings(org.apache.activemq.artemis.core.settings.impl.AddressSettings) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) SynchronousQueue(java.util.concurrent.SynchronousQueue) Queue(org.apache.activemq.artemis.core.server.Queue)

Example 18 with Queue

use of org.apache.activemq.artemis.core.server.Queue in project activemq-artemis by apache.

the class DeadLetterAddressTest method testBasicSendWithDLAButNoBinding.

// HORNETQ- 1084
@Test
public void testBasicSendWithDLAButNoBinding() throws Exception {
    SimpleString dla = new SimpleString("DLA");
    SimpleString qName = new SimpleString("q1");
    AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1).setDeadLetterAddress(dla);
    server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
    // SimpleString dlq = new SimpleString("DLQ1");
    // clientSession.createQueue(dla, dlq, null, false);
    clientSession.createQueue(qName, qName, null, false);
    ClientProducer producer = clientSession.createProducer(qName);
    producer.send(createTextMessage(clientSession, "heyho!"));
    clientSession.start();
    ClientConsumer clientConsumer = clientSession.createConsumer(qName);
    ClientMessage m = clientConsumer.receive(500);
    m.acknowledge();
    Assert.assertNotNull(m);
    Assert.assertEquals(m.getBodyBuffer().readString(), "heyho!");
    // force a cancel
    clientSession.rollback();
    m = clientConsumer.receiveImmediate();
    Assert.assertNull(m);
    clientConsumer.close();
    Queue q = (Queue) server.getPostOffice().getBinding(qName).getBindable();
    Assert.assertEquals(0, q.getDeliveringCount());
}
Also used : AddressSettings(org.apache.activemq.artemis.core.settings.impl.AddressSettings) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) ClientMessage(org.apache.activemq.artemis.api.core.client.ClientMessage) ClientConsumer(org.apache.activemq.artemis.api.core.client.ClientConsumer) ClientProducer(org.apache.activemq.artemis.api.core.client.ClientProducer) Queue(org.apache.activemq.artemis.core.server.Queue) Test(org.junit.Test)

Example 19 with Queue

use of org.apache.activemq.artemis.core.server.Queue in project activemq-artemis by apache.

the class JMSTransactionTest method testRollbackSomeThenReceiveAndCommit.

@Test(timeout = 60000)
public void testRollbackSomeThenReceiveAndCommit() throws Exception {
    final int MSG_COUNT = 5;
    final int consumeBeforeRollback = 2;
    Connection connection = createConnection();
    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    javax.jms.Queue queue = session.createQueue(getQueueName());
    MessageProducer p = session.createProducer(queue);
    for (int i = 0; i < MSG_COUNT; i++) {
        TextMessage message = session.createTextMessage();
        message.setText("Message:" + i);
        message.setIntProperty("MESSAGE_NUMBER", i + 1);
        p.send(message);
    }
    session.commit();
    Queue queueView = getProxyToQueue(getQueueName());
    Wait.assertEquals(MSG_COUNT, queueView::getMessageCount);
    MessageConsumer consumer = session.createConsumer(queue);
    for (int i = 1; i <= consumeBeforeRollback; i++) {
        Message message = consumer.receive(1000);
        assertNotNull(message);
        assertEquals("Unexpected message number", i, message.getIntProperty("MESSAGE_NUMBER"));
    }
    session.rollback();
    Wait.assertEquals(MSG_COUNT, queueView::getMessageCount);
    // Consume again..check we receive all the messages.
    Set<Integer> messageNumbers = new HashSet<>();
    for (int i = 1; i <= MSG_COUNT; i++) {
        messageNumbers.add(i);
    }
    for (int i = 1; i <= MSG_COUNT; i++) {
        Message message = consumer.receive(1000);
        assertNotNull(message);
        int msgNum = message.getIntProperty("MESSAGE_NUMBER");
        messageNumbers.remove(msgNum);
    }
    session.commit();
    assertTrue("Did not consume all expected messages, missing messages: " + messageNumbers, messageNumbers.isEmpty());
    assertEquals("Queue should have no messages left after commit", 0, queueView.getMessageCount());
}
Also used : MessageConsumer(javax.jms.MessageConsumer) TextMessage(javax.jms.TextMessage) Message(javax.jms.Message) Connection(javax.jms.Connection) MessageProducer(javax.jms.MessageProducer) Queue(org.apache.activemq.artemis.core.server.Queue) TextMessage(javax.jms.TextMessage) Session(javax.jms.Session) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 20 with Queue

use of org.apache.activemq.artemis.core.server.Queue in project activemq-artemis by apache.

the class QueueCommandTest method testCreateCoreQueueAddressExists.

@Test
public void testCreateCoreQueueAddressExists() throws Exception {
    String queueName = "queue";
    String address = "address";
    CreateQueue command = new CreateQueue();
    command.setName(queueName);
    command.setAutoCreateAddress(false);
    command.setMulticast(true);
    command.setAnycast(false);
    command.setAddress(address);
    server.addOrUpdateAddressInfo(new AddressInfo(new SimpleString(address), RoutingType.MULTICAST));
    command.execute(new ActionContext(System.in, new PrintStream(output), new PrintStream(error)));
    checkExecutionPassed(command);
    assertNotNull(server.getAddressInfo(new SimpleString(address)));
    Queue queue = server.locateQueue(new SimpleString(queueName));
    assertEquals(-1, queue.getMaxConsumers());
    assertEquals(false, queue.isPurgeOnNoConsumers());
    assertTrue(server.queueQuery(new SimpleString(queueName)).isExists());
}
Also used : PrintStream(java.io.PrintStream) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) CreateQueue(org.apache.activemq.artemis.cli.commands.queue.CreateQueue) ActionContext(org.apache.activemq.artemis.cli.commands.ActionContext) UpdateQueue(org.apache.activemq.artemis.cli.commands.queue.UpdateQueue) Queue(org.apache.activemq.artemis.core.server.Queue) DeleteQueue(org.apache.activemq.artemis.cli.commands.queue.DeleteQueue) CreateQueue(org.apache.activemq.artemis.cli.commands.queue.CreateQueue) AddressInfo(org.apache.activemq.artemis.core.server.impl.AddressInfo) Test(org.junit.Test)

Aggregations

Queue (org.apache.activemq.artemis.core.server.Queue)275 Test (org.junit.Test)193 SimpleString (org.apache.activemq.artemis.api.core.SimpleString)128 ClientSession (org.apache.activemq.artemis.api.core.client.ClientSession)89 ClientProducer (org.apache.activemq.artemis.api.core.client.ClientProducer)85 ClientMessage (org.apache.activemq.artemis.api.core.client.ClientMessage)75 AmqpClient (org.apache.activemq.transport.amqp.client.AmqpClient)70 AmqpConnection (org.apache.activemq.transport.amqp.client.AmqpConnection)70 AmqpSession (org.apache.activemq.transport.amqp.client.AmqpSession)70 ClientConsumer (org.apache.activemq.artemis.api.core.client.ClientConsumer)64 AmqpReceiver (org.apache.activemq.transport.amqp.client.AmqpReceiver)59 AmqpMessage (org.apache.activemq.transport.amqp.client.AmqpMessage)56 ClientSessionFactory (org.apache.activemq.artemis.api.core.client.ClientSessionFactory)49 AmqpSender (org.apache.activemq.transport.amqp.client.AmqpSender)47 Session (javax.jms.Session)36 Connection (javax.jms.Connection)32 Configuration (org.apache.activemq.artemis.core.config.Configuration)31 ActiveMQServer (org.apache.activemq.artemis.core.server.ActiveMQServer)30 AddressSettings (org.apache.activemq.artemis.core.settings.impl.AddressSettings)27 TextMessage (javax.jms.TextMessage)25