From b449507d1bc9336c13ef1dc6feb8c90f9566eee1 Mon Sep 17 00:00:00 2001
From: Vasileios Katopodis <vkatopodis@ubitech.eu>
Date: Mon, 3 Oct 2022 17:59:30 +0300
Subject: [PATCH] Add subcriber callback instead of thread

---
 .../eu/teraflow/policy/PolicyServiceImpl.java | 44 +++++++------------
 1 file changed, 16 insertions(+), 28 deletions(-)

diff --git a/src/policy/src/main/java/eu/teraflow/policy/PolicyServiceImpl.java b/src/policy/src/main/java/eu/teraflow/policy/PolicyServiceImpl.java
index 45e11d880..a45a4bc28 100644
--- a/src/policy/src/main/java/eu/teraflow/policy/PolicyServiceImpl.java
+++ b/src/policy/src/main/java/eu/teraflow/policy/PolicyServiceImpl.java
@@ -146,13 +146,10 @@ public class PolicyServiceImpl implements PolicyService {
         final var policyRuleBasic = policyRuleService.getPolicyRuleBasic();
         policyRuleBasic.setPolicyRuleState(INSERTED_POLICYRULE_STATE);
 
-        new Thread(
-                        () -> {
-                            validateService(policyRuleService);
-                        })
-                .start();
-
-        contextService.setPolicyRule(policyRuleBasic);
+        contextService
+                .setPolicyRule(policyRuleBasic)
+                .subscribe()
+                .with(id -> validateService(policyRuleService));
 
         return Uni.createFrom().item(policyRuleBasic.getPolicyRuleState());
     }
@@ -164,13 +161,10 @@ public class PolicyServiceImpl implements PolicyService {
         final var policyRuleBasic = policyRuleService.getPolicyRuleBasic();
         policyRuleBasic.setPolicyRuleState(UPDATED_POLICYRULE_STATE);
 
-        new Thread(
-                        () -> {
-                            validateUpdatedPolicyService(policyRuleService);
-                        })
-                .start();
-
-        contextService.setPolicyRule(policyRuleBasic);
+        contextService
+                .setPolicyRule(policyRuleBasic)
+                .subscribe()
+                .with(id -> validateUpdatedPolicyService(policyRuleService));
 
         return Uni.createFrom().item(policyRuleBasic.getPolicyRuleState());
     }
@@ -182,13 +176,10 @@ public class PolicyServiceImpl implements PolicyService {
         final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic();
         policyRuleBasic.setPolicyRuleState(INSERTED_POLICYRULE_STATE);
 
-        new Thread(
-                        () -> {
-                            validateDevice(policyRuleDevice);
-                        })
-                .start();
-
-        contextService.setPolicyRule(policyRuleBasic);
+        contextService
+                .setPolicyRule(policyRuleBasic)
+                .subscribe()
+                .with(id -> validateDevice(policyRuleDevice));
         return Uni.createFrom().item(policyRuleBasic.getPolicyRuleState());
     }
 
@@ -199,13 +190,10 @@ public class PolicyServiceImpl implements PolicyService {
         final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic();
         policyRuleBasic.setPolicyRuleState(UPDATED_POLICYRULE_STATE);
 
-        new Thread(
-                        () -> {
-                            validateUpdatedPolicyDevice(policyRuleDevice);
-                        })
-                .start();
-
-        contextService.setPolicyRule(policyRuleBasic);
+        contextService
+                .setPolicyRule(policyRuleBasic)
+                .subscribe()
+                .with(id -> validateUpdatedPolicyDevice(policyRuleDevice));
 
         return Uni.createFrom().item(policyRuleBasic.getPolicyRuleState());
     }
-- 
GitLab