sergehuber commented on code in PR #720:
URL: https://github.com/apache/unomi/pull/720#discussion_r2216017644


##########
extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/GroovyActionDispatcher.java:
##########
@@ -54,30 +57,52 @@ public void setGroovyActionsService(GroovyActionsService 
groovyActionsService) {
         this.groovyActionsService = groovyActionsService;
     }
 
+    @Reference
+    public void setDefinitionsService(DefinitionsService definitionsService) {
+        this.definitionsService = definitionsService;
+    }
+
+    @Reference
+    public void setActionExecutorDispatcher(ActionExecutorDispatcher 
actionExecutorDispatcher) {
+        this.actionExecutorDispatcher = actionExecutorDispatcher;
+    }
+
     public String getPrefix() {
         return GROOVY_PREFIX;
     }
 
     public Integer execute(Action action, Event event, String actionName) {
-        GroovyCodeSource groovyCodeSource = 
groovyActionsService.getGroovyCodeSource(actionName);
-        if (groovyCodeSource == null) {
-            LOGGER.warn("Couldn't find a Groovy action with name {}, action 
will not execute !", actionName);
-        } else {
-            GroovyShell groovyShell = groovyActionsService.getGroovyShell();
-            groovyShell.setVariable("action", action);
-            groovyShell.setVariable("event", event);
-            Script script = groovyShell.parse(groovyCodeSource);
-            try {
-                return new MetricAdapter<Integer>(metricsService, 
this.getClass().getName() + ".action.groovy." + actionName) {
-                    @Override
-                    public Integer execute(Object... args) throws Exception {
-                        return (Integer) script.invokeMethod("execute", null);
-                    }
-                }.runWithTimer();
-            } catch (Exception e) {
-                LOGGER.error("Error executing Groovy action with key={}", 
actionName, e);
-            }
+        Class<? extends Script> scriptClass = 
groovyActionsService.getCompiledScript(actionName);
+        if (scriptClass == null) {
+            LOGGER.warn("Couldn't find a Groovy action with name {}, action 
will not execute!", actionName);
+            return 0;
+        }
+        
+        try {
+            Script script = scriptClass.newInstance();

Review Comment:
   I have changed this to the suggested modification.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@unomi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to