Add rule to cleanup onsets without Params 01/47701/1
authorJim Hahn <jrh3@att.com>
Tue, 15 May 2018 20:08:59 +0000 (16:08 -0400)
committerJim Hahn <jrh3@att.com>
Tue, 15 May 2018 20:10:06 +0000 (16:10 -0400)
Change-Id: I0040a3be47d56808e2cda8a5ab2d3c1aa8e9fbb9
Issue-ID: POLICY-796
Signed-off-by: Jim Hahn <jrh3@att.com>
controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl

index 522a8ec..fba1ee3 100644 (file)
@@ -1238,3 +1238,23 @@ rule "${policyName}.EVENT.MANAGER.TIMEOUT"
         }
     }
 end
+
+/*
+*
+* This rule will clean up any rogue onsets where there is no 
+* ControlLoopParams object corresponding to the onset event.
+*
+*/
+rule "EVENT.CLEANUP"
+    when
+        $event : VirtualControlLoopEvent( $clName: closedLoopControlName )
+        not ( Params( getClosedLoopControlName() == $clName) )
+    then
+    Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
+    logger.info("{}: {}", $clName, drools.getRule().getName());
+    logger.debug("{}: {}: orphan onset event={}", 
+                $clName, drools.getRule().getName(), $event);
+
+    retract($event);
+end