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