updated workflow async resource class to be 99/110099/1
authorKalkere Ramesh, Sharan <sharan.kalkere.ramesh@att.com>
Fri, 10 Jul 2020 19:48:05 +0000 (15:48 -0400)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Fri, 10 Jul 2020 19:48:05 +0000 (15:48 -0400)
updated workflow async resource class to be configurable
updated long to String for property name
remove input parameters into get wait time method

Issue-ID: SO-3048
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: Ib35041329b8984798fe75f23c4cdf908ded42a40

bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowAsyncResource.java

index 4fb6365..2d41eb4 100644 (file)
@@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.core.env.Environment;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -68,6 +69,7 @@ public class WorkflowAsyncResource extends ProcessEngineAwareService {
     private static final WorkflowContextHolder contextHolder = WorkflowContextHolder.getInstance();
 
     long workflowPollInterval = 1000;
+    private static final String ASYNC_WAIT_TIME = "mso.workflow.async.waitTime";
 
     @Autowired
     private WorkflowProcessor processor;
@@ -75,6 +77,9 @@ public class WorkflowAsyncResource extends ProcessEngineAwareService {
     @Autowired
     private WorkflowContextHolder workflowContext;
 
+    @Autowired
+    private Environment env;
+
     public void setProcessor(WorkflowProcessor processor) {
         this.processor = processor;
     }
@@ -119,7 +124,7 @@ public class WorkflowAsyncResource extends ProcessEngineAwareService {
     protected WorkflowResponse waitForResponse(Map<String, Object> inputVariables) throws Exception {
         String requestId = getRequestId(inputVariables);
         long currentWaitTime = 0;
-        long waitTime = getWaitTime(inputVariables);
+        long waitTime = getWaitTime();
         logger.debug("WorkflowAsyncResource.waitForResponse using timeout: " + waitTime);
         while (waitTime > currentWaitTime) {
             Thread.sleep(workflowPollInterval);
@@ -185,18 +190,8 @@ public class WorkflowAsyncResource extends ProcessEngineAwareService {
      * @param inputVariables
      * @return
      */
-    private long getWaitTime(Map<String, Object> inputVariables) {
-        String timeout = inputVariables.get("mso-service-request-timeout") == null ? null
-                : inputVariables.get("mso-service-request-timeout").toString();
-
-        if (timeout != null) {
-            try {
-                return Long.parseLong(timeout) * 1000;
-            } catch (NumberFormatException nex) {
-                logger.debug("Invalid input for mso-service-request-timeout");
-            }
-        }
-        return DEFAULT_WAIT_TIME;
+    private long getWaitTime() {
+        return env.getProperty(ASYNC_WAIT_TIME, Long.class, new Long(DEFAULT_WAIT_TIME));
     }
 
 }