This closes #3004
This commit is contained in:
commit
a38d58618b
|
@ -466,7 +466,7 @@ public class PostOfficeImpl implements PostOffice, NotificationListener, Binding
|
|||
server.callBrokerAddressPlugins(plugin -> plugin.afterAddAddress(addressInfo, reload));
|
||||
}
|
||||
long retroactiveMessageCount = addressSettingsRepository.getMatch(addressInfo.getName().toString()).getRetroactiveMessageCount();
|
||||
if (retroactiveMessageCount > 0) {
|
||||
if (retroactiveMessageCount > 0 && !addressInfo.isInternal() && !ResourceNames.isRetroactiveResource(server.getInternalNamingPrefix(), addressInfo.getName())) {
|
||||
createRetroactiveResources(addressInfo.getName(), retroactiveMessageCount, reload);
|
||||
}
|
||||
if (ResourceNames.isRetroactiveResource(server.getInternalNamingPrefix(), addressInfo.getName())) {
|
||||
|
|
|
@ -100,13 +100,22 @@ public class RetroactiveAddressTest extends ActiveMQTestBase {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testRetroactiveResourceCreation() throws Exception {
|
||||
final SimpleString addressName = SimpleString.toSimpleString("myAddress");
|
||||
public void testRetroactiveResourceCreationWithExactMatch() throws Exception {
|
||||
internalTestRetroactiveResourceCreation("myAddress", "myAddress");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRetroactiveResourceCreationWithWildcardMatch() throws Exception {
|
||||
internalTestRetroactiveResourceCreation("myAddress", "#");
|
||||
}
|
||||
|
||||
private void internalTestRetroactiveResourceCreation(String address, String match) throws Exception {
|
||||
final SimpleString addressName = SimpleString.toSimpleString(address);
|
||||
final SimpleString divertAddress = ResourceNames.getRetroactiveResourceAddressName(internalNamingPrefix, delimiter, addressName);
|
||||
final SimpleString divertMulticastQueue = ResourceNames.getRetroactiveResourceQueueName(internalNamingPrefix, delimiter, addressName, RoutingType.MULTICAST);
|
||||
final SimpleString divertAnycastQueue = ResourceNames.getRetroactiveResourceQueueName(internalNamingPrefix, delimiter, addressName, RoutingType.ANYCAST);
|
||||
final SimpleString divert = ResourceNames.getRetroactiveResourceDivertName(internalNamingPrefix, delimiter, addressName);
|
||||
server.getAddressSettingsRepository().addMatch(addressName.toString(), new AddressSettings().setRetroactiveMessageCount(10));
|
||||
server.getAddressSettingsRepository().addMatch(match, new AddressSettings().setRetroactiveMessageCount(10));
|
||||
server.addAddressInfo(new AddressInfo(addressName));
|
||||
assertNotNull(server.getAddressInfo(divertAddress));
|
||||
assertNotNull(server.locateQueue(divertMulticastQueue));
|
||||
|
|
Loading…
Reference in New Issue