@Test public void testAutoDeleteNegative() throws Exception { server.getAddressSettingsRepository().addMatch("trash", new AddressSettings().setAutoDeleteQueues(false).setAutoDeleteAddresses(false)); Connection connection = null; try { connection = factory.createConnection("admin", "password"); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue trash = session.createQueue("trash"); final MessageProducer producer = session.createProducer(trash); producer.send(session.createTextMessage("foo")); Assert.assertNotNull(server.locateQueue(new SimpleString("trash"))); MessageConsumer consumer = session.createConsumer(trash); connection.start(); assertNotNull(consumer.receive(1000)); } finally { if (connection != null) { connection.close(); } } assertNotNull(server.locateQueue(new SimpleString("trash"))); assertNotNull(server.getAddressInfo(new SimpleString("trash"))); } }
addressSettings.setAutoCreateQueues(XMLUtil.parseBoolean(child)); } else if (AUTO_DELETE_QUEUES.equalsIgnoreCase(name)) { addressSettings.setAutoDeleteQueues(XMLUtil.parseBoolean(child)); } else if (AUTO_DELETE_QUEUES_DELAY.equalsIgnoreCase(name)) { long autoDeleteQueuesDelay = XMLUtil.parseLong(child);
@Test public void testAutoDeleteNegative() throws Exception { server.getAddressSettingsRepository().addMatch("#", new AddressSettings().setAutoDeleteQueues(false)); Connection connection = cf.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
@Override public void configureBroker() throws Exception { super.configureBroker(); server.registerBrokerPlugin(verifier); AddressSettings addressSettings = new AddressSettings(); addressSettings.setAutoDeleteQueues(true).setAutoDeleteAddresses(true); server.getAddressSettingsRepository().addMatch("#", addressSettings); }
@Override protected ActiveMQServer createServer(boolean realFiles, Configuration configuration, long pageSize, long maxAddressSize, Map<String, AddressSettings> settings) { ActiveMQServer server = super.createServer(realFiles, configuration, pageSize, maxAddressSize, settings); server.registerBrokerPlugin(verifier); server.registerBrokerPlugin(new ActiveMQServerPlugin() { @Override public void afterCreateConnection(RemotingConnection connection) throws ActiveMQException { try { //Verify that calling getClientID() before initialized doesn't cause an error //Test for ARTEMIS-1713 connection.getClientID(); } catch (Exception e) { throw new ActiveMQException(e.getMessage()); } } }); configuration.getAddressesSettings().put("autoCreated", new AddressSettings().setAutoDeleteAddresses(true) .setAutoDeleteQueues(true).setAutoCreateQueues(true).setAutoCreateAddresses(true)); return server; }
addressSettings.setAutoDeleteJmsTopics(autoDeleteJmsTopics); addressSettings.setAutoCreateQueues(autoCreateQueues); addressSettings.setAutoDeleteQueues(autoDeleteQueues); addressSettings.setAutoCreateAddresses(autoCreateAddresses); addressSettings.setAutoDeleteAddresses(autoDeleteAddresses);
@Test public void testAutoDestinationCreationAndDeletionOnConsumer() throws Exception { AddressSettings addressSetting = new AddressSettings(); addressSetting.setAutoCreateQueues(true); addressSetting.setAutoCreateAddresses(true); addressSetting.setAutoDeleteQueues(true); addressSetting.setAutoDeleteAddresses(true); String address = "foo"; server.getAddressSettingsRepository().addMatch(address, addressSetting); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); TextMessage message = session.createTextMessage("bar"); Queue queue = new ActiveMQQueue(address); MessageConsumer consumer = session.createConsumer(queue); assertTrue(Wait.waitFor(() -> (server.locateQueue(SimpleString.toSimpleString("foo")) != null), 2000, 100)); assertTrue(Wait.waitFor(() -> (server.getAddressInfo(SimpleString.toSimpleString("foo")) != null), 2000, 100)); MessageProducer producer = session.createProducer(null); producer.send(queue, message); TextMessage message1 = (TextMessage) consumer.receive(1000); assertTrue(message1.getText().equals(message.getText())); assertNotNull(server.locateQueue(SimpleString.toSimpleString("foo"))); consumer.close(); connection.close(); assertTrue(Wait.waitFor(() -> (server.locateQueue(SimpleString.toSimpleString("foo")) == null), 2000, 100)); assertTrue(Wait.waitFor(() -> (server.getAddressInfo(SimpleString.toSimpleString("foo")) == null), 2000, 100)); }
@Test public void testNegativeAutoDeleteAutoCreatedQueue() throws Exception { server.getAddressSettingsRepository().addMatch(addressA.toString(), new AddressSettings().setAutoDeleteQueues(false)); server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true); assertNotNull(server.locateQueue(queueA)); cf.createSession().createConsumer(queueA).close(); assertNotNull(server.locateQueue(queueA)); } }
@Test public void testTwoConcurrentSubscribers() throws Exception { server.getAddressSettingsRepository().addMatch("#", new AddressSettings().setAutoDeleteAddresses(false).setAutoDeleteQueues(false)); server.getRemotingService().createAcceptor("test", "tcp://localhost:61614?protocols=STOMP&anycastPrefix=/queue/").start(); int nThreads = 2; SomeConsumer[] consumers = new SomeConsumer[nThreads]; for (int j = 0; j < 1000; j++) { for (int i = 0; i < nThreads; i++) { consumers[i] = new SomeConsumer(); } for (int i = 0; i < nThreads; i++) { consumers[i].start(); } for (SomeConsumer consumer : consumers) { consumer.join(); Assert.assertFalse(consumer.failed); } // delete queue here so it can be auto-created again during the next loop iteration server.locateQueue(QUEUE).deleteQueue(); } } }
settings.setAutoDeleteJmsQueues(AddressSettingDefinition.AUTO_DELETE_JMS_QUEUES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoCreateQueues(AddressSettingDefinition.AUTO_CREATE_QUEUES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoDeleteQueues(AddressSettingDefinition.AUTO_DELETE_QUEUES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoCreateAddresses(AddressSettingDefinition.AUTO_CREATE_ADDRESSES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoDeleteAddresses(AddressSettingDefinition.AUTO_DELETE_ADDRESSES.resolveModelAttribute(context, config).asBoolean());
settings.setAutoDeleteJmsQueues(AddressSettingDefinition.AUTO_DELETE_JMS_QUEUES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoCreateQueues(AddressSettingDefinition.AUTO_CREATE_QUEUES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoDeleteQueues(AddressSettingDefinition.AUTO_DELETE_QUEUES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoCreateAddresses(AddressSettingDefinition.AUTO_CREATE_ADDRESSES.resolveModelAttribute(context, config).asBoolean()); settings.setAutoDeleteAddresses(AddressSettingDefinition.AUTO_DELETE_ADDRESSES.resolveModelAttribute(context, config).asBoolean());