Varibles Name Changed 65/74565/1
authorroot <akansha.dua@amdocs.com>
Tue, 27 Nov 2018 03:42:20 +0000 (03:42 +0000)
committerMatthieu Geerebaert <matthieu.geerebaert@orange.com>
Wed, 12 Dec 2018 10:02:51 +0000 (10:02 +0000)
Issue-ID: EXTAPI-172

Change-Id: I5839dc1ae011d3da55a31a4816c1e6d5d3ec71cb
Signed-off-by: root <akansha.dua@amdocs.com>
(cherry picked from commit 7535125f2ddf5dc492d8b93a8e3ae2311e8d6ee1)

src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java

index eb95792..be8bdc0 100644 (file)
-/**
- * Copyright (c) 2018 Orange
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package org.onap.nbi.apis.serviceorder.workflow;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import org.onap.nbi.apis.serviceorder.model.OrderItemRelationship;
-import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
-import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;
-import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask;
-import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo;
-import org.onap.nbi.apis.serviceorder.repositories.ExecutionTaskRepository;
-import org.onap.nbi.apis.serviceorder.utils.JsonEntityConverter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Service;
-
-@Service
-@EnableScheduling
-public class SOTaskManager {
-
-    @Autowired
-    private ExecutionTaskRepository executionTaskRepository;
-
-    @Autowired
-    private SOTaskProcessor soTaskProcessor;
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(SOTaskManager.class);
-
-    /**
-     * @param orderItems
-     * @param serviceOrderInfoJson
-     */
-    private void registerOrderItemExecutionPlan(List<ServiceOrderItem> orderItems,
-        String serviceOrderInfoJson) {
-        List<ExecutionTask> executionTasksSaved = new ArrayList<>();
-        Map<String, Long> internalIdOrderItemsMap = new HashMap<>();
-        if (orderItems != null) {
-            // first we save create all the execution tasks with order item id in relied tasks
-            for (ServiceOrderItem orderItem : orderItems) {
-                ExecutionTask task = new ExecutionTask();
-                task.setOrderItemId(orderItem.getId());
-                task.setCreateDate(new Date());
-                StringBuilder sb = new StringBuilder();
-                for (OrderItemRelationship orderItemRelationship : orderItem.getOrderItemRelationship()) {
-                    sb.append(orderItemRelationship.getId()).append(" ");
-                }
-                task.setReliedTasks(sb.toString());
-                task.setServiceOrderInfoJson(serviceOrderInfoJson);
-                ExecutionTask savedTask = executionTaskRepository.save(task);
-                executionTasksSaved.add(savedTask);
-
-                internalIdOrderItemsMap.put(savedTask.getOrderItemId(), savedTask.getInternalId());
-            }
-            // then we replace all orderitem ids in reliedtasks field with internalid of the tasks
-            for (ExecutionTask executionTask : executionTasksSaved) {
-                for (Entry<String, Long> entry : internalIdOrderItemsMap.entrySet()) {
-                    String replace = executionTask.getReliedTasks().replace(entry.getKey(),
-                        String.valueOf(entry.getValue()));
-                    executionTask.setReliedTasks(replace);
-                }
-                if(LOGGER.isDebugEnabled()) {
-                    LOGGER.debug("saving task with id {} , orderItemId {} , reliedtasks {}", executionTask.getInternalId(),
-                        executionTask.getOrderItemId(), executionTask.getReliedTasks());
-                }
-                executionTaskRepository.save(executionTask);
-            }
-        }
-    }
-
-    /**
-     *
-     * @param serviceOrder
-     * @param serviceOrderInfo
-     */
-    public void registerServiceOrder(ServiceOrder serviceOrder, ServiceOrderInfo serviceOrderInfo) {
-        String serviceOrderInfoJson = JsonEntityConverter.convertServiceOrderInfoToJson(serviceOrderInfo);
-        registerOrderItemExecutionPlan(serviceOrder.getOrderItem(), serviceOrderInfoJson);
-    }
-
-    // Using fixedDelay to mitigate against Scheduler queue backlog with fixedRate 
-    @Scheduled(fixedDelay = 2000)
-    private void processExecutionPlan() throws InterruptedException {
-        List<ExecutionTask> taskToExecute = executionTaskRepository.findByReliedTasksIsEmpty();
-        for (ExecutionTask executionTask : taskToExecute) {
-            soTaskProcessor.processOrderItem(executionTask);
-        }
-    }
-}
+/**\r
+ * Copyright (c) 2018 Orange\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with\r
+ * the License. You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r
+ * specific language governing permissions and limitations under the License.\r
+ */\r
+package org.onap.nbi.apis.serviceorder.workflow;\r
+\r
+import java.util.*;\r
+import java.util.Map.Entry;\r
+import org.onap.nbi.apis.serviceorder.model.OrderItemRelationship;\r
+import org.onap.nbi.apis.serviceorder.model.ServiceOrder;\r
+import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;\r
+import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask;\r
+import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo;\r
+import org.onap.nbi.apis.serviceorder.repositories.ExecutionTaskRepository;\r
+import org.onap.nbi.apis.serviceorder.utils.JsonEntityConverter;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.scheduling.annotation.EnableScheduling;\r
+import org.springframework.scheduling.annotation.Scheduled;\r
+import org.springframework.stereotype.Service;\r
+\r
+@Service\r
+@EnableScheduling\r
+public class SOTaskManager {\r
+\r
+    @Autowired\r
+    private ExecutionTaskRepository executionTaskRepository;\r
+\r
+    @Autowired\r
+    private SOTaskProcessor soTaskProcessor;\r
+\r
+    private static final Logger LOGGER = LoggerFactory.getLogger(SOTaskManager.class);\r
+\r
+    /**\r
+     * @param orderItems\r
+     * @param serviceOrderInfoJson\r
+     */\r
+    private void registerOrderItemExecutionPlan(List<ServiceOrderItem> orderItems,\r
+        String serviceOrderInfoJson) {\r
+        List<ExecutionTask> executionTasksSaved = new ArrayList<>();\r
+        Map<String, Long> internalIdOrderItemsMap = new HashMap<>();\r
+        if (orderItems != null) {\r
+            // first we save create all the execution tasks with order item id in relied tasks\r
+            for (ServiceOrderItem orderItem : orderItems) {\r
+                ExecutionTask task = new ExecutionTask();\r
+                task.setOrderItemId(orderItem.getId());\r
+                task.setCreateDate(new Date());\r
+                StringBuilder sb = new StringBuilder();\r
+                for (OrderItemRelationship orderItemRelationship : orderItem.getOrderItemRelationship()) {\r
+                    sb.append(orderItemRelationship.getId()).append(" ");\r
+                }\r
+                task.setReliedTasks(sb.toString());\r
+                task.setServiceOrderInfoJson(serviceOrderInfoJson);\r
+                ExecutionTask savedTask = executionTaskRepository.save(task);\r
+                executionTasksSaved.add(savedTask);\r
+\r
+                internalIdOrderItemsMap.put(savedTask.getOrderItemId(), savedTask.getInternalId());\r
+            }\r
+            // then we replace all orderitem ids in reliedtasks field with internalid of the tasks\r
+            for (ExecutionTask executionTask : executionTasksSaved) {\r
+                List<String> reliedOrderItemsIds = new ArrayList<String>(Arrays.asList(executionTask.getReliedTasks().split(" ")));\r
+                List<String> reliedTasksInternalIds = new ArrayList<String>();\r
+                for (Entry<String, Long> entry : internalIdOrderItemsMap.entrySet()){\r
+                   if(reliedOrderItemsIds.contains(entry.getKey())) {\r
+                       reliedTasksInternalIds.add(entry.getValue().toString());\r
+                    }\r
+                }\r
+            String reliedTasksString = String.join(" ", reliedTasksInternalIds);\r
+            executionTask.setReliedTasks(reliedTasksString);\r
+                if(LOGGER.isDebugEnabled()) {\r
+                    LOGGER.debug("saving task with id {} , orderItemId {} , reliedtasks {}", executionTask.getInternalId(), executionTask.getOrderItemId(), executionTask.getReliedTasks());\r
+                }\r
+                executionTaskRepository.save(executionTask);\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     *\r
+     * @param serviceOrder\r
+     * @param serviceOrderInfo\r
+     */\r
+    public void registerServiceOrder(ServiceOrder serviceOrder, ServiceOrderInfo serviceOrderInfo) {\r
+        String serviceOrderInfoJson = JsonEntityConverter.convertServiceOrderInfoToJson(serviceOrderInfo);\r
+        registerOrderItemExecutionPlan(serviceOrder.getOrderItem(), serviceOrderInfoJson);\r
+    }\r
+\r
+    // Using fixedDelay to mitigate against Scheduler queue backlog with fixedRate \r
+    @Scheduled(fixedDelay = 2000)\r
+    private void processExecutionPlan() throws InterruptedException {\r
+        List<ExecutionTask> taskToExecute = executionTaskRepository.findByReliedTasksIsEmpty();\r
+        for (ExecutionTask executionTask : taskToExecute) {\r
+            soTaskProcessor.processOrderItem(executionTask);\r
+        }\r
+    }\r
+}\r