From f308261b4d8349cea8fe788b6e820ffc29265cb5 Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Tue, 28 Aug 2018 13:27:07 +0200 Subject: [PATCH] SSDM-6859: Add prefix 'concurrent-operation-limiter.' also to limit definitions --- .../ConcurrentOperationLimiterConfig.java | 14 +++++++---- .../ConcurrentOperationLimiterConfigTest.java | 24 +++++++++---------- .../ConcurrentOperationLimiterTest.java | 20 ++++++++-------- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfig.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfig.java index 3aed6a64fbb..5c87ee1c01f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfig.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfig.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Component; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.properties.PropertyParametersUtil; import ch.systemsx.cisd.common.properties.PropertyUtils; import ch.systemsx.cisd.common.spring.ExposablePropertyPlaceholderConfigurer; @@ -40,14 +41,16 @@ import ch.systemsx.cisd.common.spring.ExposablePropertyPlaceholderConfigurer; @Component public class ConcurrentOperationLimiterConfig { + private static final String CONCURRENT_OPERATION_LIMITER_PROPERTY_PREFIX = "concurrent-operation-limiter"; + private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, ConcurrentOperationLimiter.class); - private static final String TIMEOUT_PROPERTY = "concurrent-operation-limiter.timeout"; + private static final String TIMEOUT_PROPERTY = "timeout"; - private static final String TIMEOUT_ASYNC_PROPERTY = "concurrent-operation-limiter.timeout-async"; + private static final String TIMEOUT_ASYNC_PROPERTY = "timeout-async"; - private static final String LIMITS_PROPERTY = "concurrent-operation-limiter.limits"; + private static final String LIMITS_PROPERTY = "limits"; private static final String OPERATION_PROPERTY_SUFFIX = ".operation"; @@ -84,10 +87,11 @@ public class ConcurrentOperationLimiterConfig init(configurer.getResolvedProps()); } - private void init(Properties properties) + private void init(Properties allProperties) { List<ConcurrentOperationLimit> limits = new ArrayList<ConcurrentOperationLimit>(); - + Properties properties = PropertyParametersUtil.extractSingleSectionProperties(allProperties, + CONCURRENT_OPERATION_LIMITER_PROPERTY_PREFIX, false).getProperties(); for (String limitKey : PropertyUtils.getList(properties, LIMITS_PROPERTY)) { String operation = PropertyUtils.getProperty(properties, limitKey + OPERATION_PROPERTY_SUFFIX); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfigTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfigTest.java index 221076e1f11..a45a397cf1f 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfigTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterConfigTest.java @@ -88,12 +88,12 @@ public class ConcurrentOperationLimiterConfigTest { Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.limits", "limit-1, limit-2"); - properties.setProperty("limit-1.operation", "test-1"); - properties.setProperty("limit-1.limit", "1"); - properties.setProperty("limit-2.operation", "test-2"); - properties.setProperty("limit-2.limit", "2"); - properties.setProperty("limit-3.operation", "test-3"); - properties.setProperty("limit-3.limit", "3"); + properties.setProperty("concurrent-operation-limiter.limit-1.operation", "test-1"); + properties.setProperty("concurrent-operation-limiter.limit-1.limit", "1"); + properties.setProperty("concurrent-operation-limiter.limit-2.operation", "test-2"); + properties.setProperty("concurrent-operation-limiter.limit-2.limit", "2"); + properties.setProperty("concurrent-operation-limiter.limit-3.operation", "test-3"); + properties.setProperty("concurrent-operation-limiter.limit-3.limit", "3"); ConcurrentOperationLimiterConfig config = new ConcurrentOperationLimiterConfig(properties); assertEquals(config.getLimits().get(0).getOperation(), "test-1"); @@ -127,8 +127,8 @@ public class ConcurrentOperationLimiterConfigTest { Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.limits", "limit"); - properties.setProperty("limit.operation", "test"); - properties.setProperty("limit.limit", "-1"); + properties.setProperty("concurrent-operation-limiter.limit.operation", "test"); + properties.setProperty("concurrent-operation-limiter.limit.limit", "-1"); ConcurrentOperationLimiterConfig config = new ConcurrentOperationLimiterConfig(properties); assertEquals(config.getLimits(), Collections.emptyList()); @@ -139,8 +139,8 @@ public class ConcurrentOperationLimiterConfigTest { Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.limits", "limit"); - properties.setProperty("limit.operation", "test"); - properties.setProperty("limit.limit", " "); + properties.setProperty("concurrent-operation-limiter.limit.operation", "test"); + properties.setProperty("concurrent-operation-limiter.limit.limit", " "); ConcurrentOperationLimiterConfig config = new ConcurrentOperationLimiterConfig(properties); assertEquals(config.getLimits(), Collections.emptyList()); @@ -151,8 +151,8 @@ public class ConcurrentOperationLimiterConfigTest { Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.limits", "limit"); - properties.setProperty("limit.operation", " "); - properties.setProperty("limit.limit", "1"); + properties.setProperty("concurrent-operation-limiter.limit.operation", " "); + properties.setProperty("concurrent-operation-limiter.limit.limit", "1"); ConcurrentOperationLimiterConfig config = new ConcurrentOperationLimiterConfig(properties); assertEquals(config.getLimits(), Collections.emptyList()); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterTest.java index 017e5bcd2c3..fc55bd9e630 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ConcurrentOperationLimiterTest.java @@ -44,8 +44,8 @@ public class ConcurrentOperationLimiterTest Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.timeout", "1000"); properties.setProperty("concurrent-operation-limiter.limits", "test-limit"); - properties.setProperty("test-limit.operation", "test"); - properties.setProperty("test-limit.limit", "1"); + properties.setProperty("concurrent-operation-limiter.test-limit.operation", "test"); + properties.setProperty("concurrent-operation-limiter.test-limit.limit", "1"); ConcurrentOperationLimiter limiter = new ConcurrentOperationLimiter(new ConcurrentOperationLimiterConfig(properties)); @@ -93,10 +93,10 @@ public class ConcurrentOperationLimiterTest Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.timeout", "1000"); properties.setProperty("concurrent-operation-limiter.limits", "test-limit-1, test-limit-2"); - properties.setProperty("test-limit-1.operation", "test-1"); - properties.setProperty("test-limit-1.limit", "1"); - properties.setProperty("test-limit-2.operation", "test-2"); - properties.setProperty("test-limit-2.limit", "1"); + properties.setProperty("concurrent-operation-limiter.test-limit-1.operation", "test-1"); + properties.setProperty("concurrent-operation-limiter.test-limit-1.limit", "1"); + properties.setProperty("concurrent-operation-limiter.test-limit-2.operation", "test-2"); + properties.setProperty("concurrent-operation-limiter.test-limit-2.limit", "1"); ConcurrentOperationLimiter limiter = new ConcurrentOperationLimiter(new ConcurrentOperationLimiterConfig(properties)); @@ -113,8 +113,8 @@ public class ConcurrentOperationLimiterTest Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.timeout", "1000"); properties.setProperty("concurrent-operation-limiter.limits", "test-limit"); - properties.setProperty("test-limit.operation", "test"); - properties.setProperty("test-limit.limit", "1"); + properties.setProperty("concurrent-operation-limiter.test-limit.operation", "test"); + properties.setProperty("concurrent-operation-limiter.test-limit.limit", "1"); ConcurrentOperationLimiter limiter = new ConcurrentOperationLimiter(new ConcurrentOperationLimiterConfig(properties)); @@ -147,8 +147,8 @@ public class ConcurrentOperationLimiterTest Properties properties = new Properties(); properties.setProperty("concurrent-operation-limiter.timeout", "1000"); properties.setProperty("concurrent-operation-limiter.limits", "test-limit"); - properties.setProperty("test-limit.operation", "test"); - properties.setProperty("test-limit.limit", "1"); + properties.setProperty("concurrent-operation-limiter.test-limit.operation", "test"); + properties.setProperty("concurrent-operation-limiter.test-limit.limit", "1"); MessageChannel mainChannel = new MessageChannelBuilder(1000).name("main").getChannel(); MessageChannel threadsChannel = new MessageChannelBuilder(1000).name("threads").getChannel(); -- GitLab