ARTEMIS-1848 auto-delete auto-created queue for OpenWire

This commit is contained in:
Justin Bertram 2018-05-03 12:18:51 -05:00
parent 893f219919
commit 3016db699d
2 changed files with 15 additions and 2 deletions

View File

@ -249,7 +249,7 @@ public class AMQSession implements SessionCallback {
routingTypeToUse = as.getDefaultAddressRoutingType();
}
}
coreSession.createQueue(addressToUse, queueNameToUse, routingTypeToUse, null, isTemporary, true);
coreSession.createQueue(addressToUse, queueNameToUse, routingTypeToUse, null, isTemporary, true, true);
connection.addKnownDestination(queueName);
} else {
hasQueue = false;

View File

@ -919,10 +919,12 @@ public class SimpleOpenWireTest extends BasicOpenWireTest {
}
@Test
public void testAutoDestinationCreationOnConsumer() throws JMSException {
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);
@ -935,11 +937,22 @@ public class SimpleOpenWireTest extends BasicOpenWireTest {
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