ARTEMIS-3178 Fixing validation on PagingStoreImpl for parameters set
This commit is contained in:
parent
764db34e9b
commit
bbf1baf3b2
|
@ -254,14 +254,15 @@ public class PagingStoreImpl implements PagingStore {
|
||||||
pageLimitMessages = null;
|
pageLimitMessages = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (pageLimitBytes == null && pageLimitMessages == null && pageFullMessagePolicy != null) {
|
if (pageLimitBytes == null && pageLimitMessages == null && pageFullMessagePolicy != null) {
|
||||||
ActiveMQServerLogger.LOGGER.noPageLimitsSet(address, pageFullMessagePolicy);
|
ActiveMQServerLogger.LOGGER.noPageLimitsSet(address, pageFullMessagePolicy);
|
||||||
this.pageFullMessagePolicy = null;
|
this.pageFullMessagePolicy = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pageLimitBytes != null && pageLimitMessages != null && pageFullMessagePolicy == null) {
|
if (pageFullMessagePolicy == null) {
|
||||||
|
if (pageLimitBytes != null || pageLimitMessages != null) {
|
||||||
ActiveMQServerLogger.LOGGER.noPagefullPolicySet(address, pageLimitBytes, pageLimitMessages);
|
ActiveMQServerLogger.LOGGER.noPagefullPolicySet(address, pageLimitBytes, pageLimitMessages);
|
||||||
|
}
|
||||||
this.pageFullMessagePolicy = null;
|
this.pageFullMessagePolicy = null;
|
||||||
this.pageLimitMessages = null;
|
this.pageLimitMessages = null;
|
||||||
this.pageLimitBytes = null;
|
this.pageLimitBytes = null;
|
||||||
|
|
|
@ -1051,27 +1051,28 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
|
|
||||||
String randomString = RandomUtil.randomString();
|
String randomString = RandomUtil.randomString();
|
||||||
|
|
||||||
|
// not setting pageFullMessagePolicy
|
||||||
properties.put("addressSettings.#.expiryAddress", randomString);
|
properties.put("addressSettings.#.expiryAddress", randomString);
|
||||||
properties.put("addressSettings.#.pageLimitMessages", "300");
|
properties.put("addressSettings.#.pageLimitMessages", "300");
|
||||||
properties.put("addressSettings.#.pageLimitBytes", "300000");
|
properties.put("addressSettings.#.pageLimitBytes", "300000");
|
||||||
//properties.put("addressSettings.#.pageFullMessagePolicy", "DROP"); // removing the pageFull on purpose
|
|
||||||
|
|
||||||
configuration.parsePrefixedProperties(properties, null);
|
configuration.parsePrefixedProperties(properties, null);
|
||||||
|
|
||||||
Assert.assertEquals(1, configuration.getAddressSettings().size());
|
Assert.assertEquals(1, configuration.getAddressSettings().size());
|
||||||
Assert.assertEquals(SimpleString.toSimpleString(randomString), configuration.getAddressSettings().get("#").getExpiryAddress());
|
Assert.assertEquals(SimpleString.toSimpleString(randomString), configuration.getAddressSettings().get("#").getExpiryAddress());
|
||||||
Assert.assertEquals(300L, configuration.getAddressSettings().get("#").getPageLimitMessages().longValue());
|
Assert.assertEquals((Long)300L, configuration.getAddressSettings().get("#").getPageLimitMessages());
|
||||||
Assert.assertEquals(300000L, configuration.getAddressSettings().get("#").getPageLimitBytes().longValue());
|
Assert.assertEquals((Long)300000L, configuration.getAddressSettings().get("#").getPageLimitBytes());
|
||||||
Assert.assertEquals(null, configuration.getAddressSettings().get("#").getPageFullMessagePolicy());
|
Assert.assertEquals(null, configuration.getAddressSettings().get("#").getPageFullMessagePolicy());
|
||||||
|
|
||||||
PagingStore storeImpl = new PagingStoreImpl(new SimpleString("Test"), (ScheduledExecutorService) null, 100L, Mockito.mock(PagingManager.class), Mockito.mock(StorageManager.class), Mockito.mock(SequentialFileFactory.class), Mockito.mock(PagingStoreFactory.class), new SimpleString("Test"), configuration.getAddressSettings().get("#"), null, null, true);
|
PagingStore storeImpl = new PagingStoreImpl(new SimpleString("Test"), (ScheduledExecutorService) null, 100L, Mockito.mock(PagingManager.class), Mockito.mock(StorageManager.class), Mockito.mock(SequentialFileFactory.class), Mockito.mock(PagingStoreFactory.class), new SimpleString("Test"), configuration.getAddressSettings().get("#"), null, null, true);
|
||||||
Assert.assertTrue(AssertionLoggerHandler.findText("AMQ224125"));
|
|
||||||
|
|
||||||
Assert.assertEquals(null, storeImpl.getPageLimitMessages());
|
Assert.assertEquals(null, storeImpl.getPageLimitMessages());
|
||||||
Assert.assertEquals(null, storeImpl.getPageLimitBytes());
|
Assert.assertEquals(null, storeImpl.getPageLimitBytes());
|
||||||
Assert.assertEquals(null, storeImpl.getPageFullMessagePolicy());
|
Assert.assertEquals(null, storeImpl.getPageFullMessagePolicy());
|
||||||
|
Assert.assertTrue(AssertionLoggerHandler.findText("AMQ224125"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddressSettingsPageLimitInvalidConfiguration2() throws Throwable {
|
public void testAddressSettingsPageLimitInvalidConfiguration2() throws Throwable {
|
||||||
AssertionLoggerHandler.startCapture();
|
AssertionLoggerHandler.startCapture();
|
||||||
|
@ -1082,10 +1083,69 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
|
|
||||||
String randomString = RandomUtil.randomString();
|
String randomString = RandomUtil.randomString();
|
||||||
|
|
||||||
|
// pageLimitBytes and pageFullMessagePolicy not set on purpose
|
||||||
properties.put("addressSettings.#.expiryAddress", randomString);
|
properties.put("addressSettings.#.expiryAddress", randomString);
|
||||||
//properties.put("addressSettings.#.pageLimitMessages", "300"); // removing this on purpose
|
properties.put("addressSettings.#.pageLimitMessages", "300");
|
||||||
//properties.put("addressSettings.#.pageLimitBytes", "300000"); // removing this on purpose
|
|
||||||
properties.put("addressSettings.#.pageFullMessagePolicy", "DROP"); // keeping this on purpose
|
configuration.parsePrefixedProperties(properties, null);
|
||||||
|
|
||||||
|
Assert.assertEquals(1, configuration.getAddressSettings().size());
|
||||||
|
Assert.assertEquals(SimpleString.toSimpleString(randomString), configuration.getAddressSettings().get("#").getExpiryAddress());
|
||||||
|
Assert.assertEquals((Long)300L, configuration.getAddressSettings().get("#").getPageLimitMessages());
|
||||||
|
Assert.assertEquals(null, configuration.getAddressSettings().get("#").getPageLimitBytes());
|
||||||
|
Assert.assertEquals(null, configuration.getAddressSettings().get("#").getPageFullMessagePolicy());
|
||||||
|
|
||||||
|
PagingStore storeImpl = new PagingStoreImpl(new SimpleString("Test"), (ScheduledExecutorService) null, 100L, Mockito.mock(PagingManager.class), Mockito.mock(StorageManager.class), Mockito.mock(SequentialFileFactory.class), Mockito.mock(PagingStoreFactory.class), new SimpleString("Test"), configuration.getAddressSettings().get("#"), null, null, true);
|
||||||
|
|
||||||
|
Assert.assertEquals(null, storeImpl.getPageLimitMessages());
|
||||||
|
Assert.assertEquals(null, storeImpl.getPageLimitBytes());
|
||||||
|
Assert.assertEquals(null, storeImpl.getPageFullMessagePolicy());
|
||||||
|
Assert.assertTrue(AssertionLoggerHandler.findText("AMQ224125"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAddressSettingsPageLimitInvalidConfiguration3() throws Throwable {
|
||||||
|
AssertionLoggerHandler.startCapture();
|
||||||
|
runAfter(AssertionLoggerHandler::stopCapture);
|
||||||
|
ConfigurationImpl configuration = new ConfigurationImpl();
|
||||||
|
|
||||||
|
Properties properties = new Properties();
|
||||||
|
|
||||||
|
String randomString = RandomUtil.randomString();
|
||||||
|
|
||||||
|
// pageLimitMessages and pageFullMessagePolicy not set on purpose
|
||||||
|
properties.put("addressSettings.#.expiryAddress", randomString);
|
||||||
|
properties.put("addressSettings.#.pageLimitBytes", "300000"); // removing this on purpose
|
||||||
|
|
||||||
|
configuration.parsePrefixedProperties(properties, null);
|
||||||
|
|
||||||
|
Assert.assertEquals(1, configuration.getAddressSettings().size());
|
||||||
|
Assert.assertEquals(SimpleString.toSimpleString(randomString), configuration.getAddressSettings().get("#").getExpiryAddress());
|
||||||
|
Assert.assertEquals(null, configuration.getAddressSettings().get("#").getPageLimitMessages());
|
||||||
|
Assert.assertEquals((Long)300000L, configuration.getAddressSettings().get("#").getPageLimitBytes());
|
||||||
|
Assert.assertEquals(null, configuration.getAddressSettings().get("#").getPageFullMessagePolicy());
|
||||||
|
|
||||||
|
PagingStore storeImpl = new PagingStoreImpl(new SimpleString("Test"), (ScheduledExecutorService) null, 100L, Mockito.mock(PagingManager.class), Mockito.mock(StorageManager.class), Mockito.mock(SequentialFileFactory.class), Mockito.mock(PagingStoreFactory.class), new SimpleString("Test"), configuration.getAddressSettings().get("#"), null, null, true);
|
||||||
|
|
||||||
|
Assert.assertEquals(null, storeImpl.getPageLimitMessages());
|
||||||
|
Assert.assertEquals(null, storeImpl.getPageLimitBytes());
|
||||||
|
Assert.assertEquals(null, storeImpl.getPageFullMessagePolicy());
|
||||||
|
Assert.assertTrue(AssertionLoggerHandler.findText("AMQ224125"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAddressSettingsPageLimitInvalidConfiguration4() throws Throwable {
|
||||||
|
AssertionLoggerHandler.startCapture();
|
||||||
|
runAfter(AssertionLoggerHandler::stopCapture);
|
||||||
|
ConfigurationImpl configuration = new ConfigurationImpl();
|
||||||
|
|
||||||
|
Properties properties = new Properties();
|
||||||
|
|
||||||
|
String randomString = RandomUtil.randomString();
|
||||||
|
|
||||||
|
// leaving out pageLimitMessages and pageLimitBytes
|
||||||
|
properties.put("addressSettings.#.expiryAddress", randomString);
|
||||||
|
properties.put("addressSettings.#.pageFullMessagePolicy", "DROP");
|
||||||
|
|
||||||
configuration.parsePrefixedProperties(properties, null);
|
configuration.parsePrefixedProperties(properties, null);
|
||||||
|
|
||||||
|
@ -1096,16 +1156,16 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
Assert.assertEquals("DROP", configuration.getAddressSettings().get("#").getPageFullMessagePolicy().toString());
|
Assert.assertEquals("DROP", configuration.getAddressSettings().get("#").getPageFullMessagePolicy().toString());
|
||||||
|
|
||||||
PagingStore storeImpl = new PagingStoreImpl(new SimpleString("Test"), (ScheduledExecutorService) null, 100L, Mockito.mock(PagingManager.class), Mockito.mock(StorageManager.class), Mockito.mock(SequentialFileFactory.class), Mockito.mock(PagingStoreFactory.class), new SimpleString("Test"), configuration.getAddressSettings().get("#"), null, null, true);
|
PagingStore storeImpl = new PagingStoreImpl(new SimpleString("Test"), (ScheduledExecutorService) null, 100L, Mockito.mock(PagingManager.class), Mockito.mock(StorageManager.class), Mockito.mock(SequentialFileFactory.class), Mockito.mock(PagingStoreFactory.class), new SimpleString("Test"), configuration.getAddressSettings().get("#"), null, null, true);
|
||||||
Assert.assertTrue(AssertionLoggerHandler.findText("AMQ224124"));
|
|
||||||
|
|
||||||
Assert.assertEquals(null, storeImpl.getPageLimitMessages());
|
Assert.assertEquals(null, storeImpl.getPageLimitMessages());
|
||||||
Assert.assertEquals(null, storeImpl.getPageLimitBytes());
|
Assert.assertEquals(null, storeImpl.getPageLimitBytes());
|
||||||
Assert.assertEquals(null, storeImpl.getPageFullMessagePolicy());
|
Assert.assertEquals(null, storeImpl.getPageFullMessagePolicy());
|
||||||
|
Assert.assertTrue(AssertionLoggerHandler.findText("AMQ224124"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddressSettingsPageLimitInvalidConfiguration3() throws Throwable {
|
public void testAddressSettingsPageLimitInvalidConfiguration5() throws Throwable {
|
||||||
ConfigurationImpl configuration = new ConfigurationImpl();
|
ConfigurationImpl configuration = new ConfigurationImpl();
|
||||||
|
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
|
@ -1113,9 +1173,9 @@ public class ConfigurationImplTest extends ActiveMQTestBase {
|
||||||
String randomString = RandomUtil.randomString();
|
String randomString = RandomUtil.randomString();
|
||||||
|
|
||||||
properties.put("addressSettings.#.expiryAddress", randomString);
|
properties.put("addressSettings.#.expiryAddress", randomString);
|
||||||
properties.put("addressSettings.#.pageLimitMessages", "-1"); // -1 on purpose, to make it null on final parsing
|
properties.put("addressSettings.#.pageLimitMessages", "-1"); // this should make the PagingStore to parse it as null
|
||||||
properties.put("addressSettings.#.pageLimitBytes", "-1"); // -1 on purpose, to make it null on final parsing
|
properties.put("addressSettings.#.pageLimitBytes", "-1"); // this should make the PagingStore to parse it as null
|
||||||
properties.put("addressSettings.#.pageFullMessagePolicy", "DROP"); // keeping this on purpose
|
properties.put("addressSettings.#.pageFullMessagePolicy", "DROP");
|
||||||
|
|
||||||
configuration.parsePrefixedProperties(properties, null);
|
configuration.parsePrefixedProperties(properties, null);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue