This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/master by this push:
new d9d8ec2 remove timer when stopping groovy extensions (#352)
d9d8ec2 is described below
commit d9d8ec2e5c63e79effe8a1f712ddff86373d2144
Author: jsinovassin <[email protected]>
AuthorDate: Mon Oct 11 10:43:03 2021 +0200
remove timer when stopping groovy extensions (#352)
---
.../actions/services/impl/GroovyActionsServiceImpl.java | 11 ++++++++++-
.../src/main/resources/OSGI-INF/blueprint/blueprint.xml | 2 +-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git
a/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
b/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
index bf4842f..fc2f62c 100644
---
a/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
+++
b/extensions/groovy-actions/services/src/main/java/org/apache/unomi/groovy/actions/services/impl/GroovyActionsServiceImpl.java
@@ -45,6 +45,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.TimerTask;
+import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -64,6 +65,8 @@ public class GroovyActionsServiceImpl implements
GroovyActionsService {
private Map<String, GroovyCodeSource> groovyCodeSourceMap;
+ private ScheduledFuture<?> scheduledFuture;
+
private static final Logger logger =
LoggerFactory.getLogger(GroovyActionsServiceImpl.class.getName());
private static final String BASE_SCRIPT_NAME = "BaseScript";
@@ -128,6 +131,11 @@ public class GroovyActionsServiceImpl implements
GroovyActionsService {
logger.info("Groovy action service initialized.");
}
+ public void onDestroy(){
+ logger.debug("onDestroy Method called");
+ scheduledFuture.cancel(true);
+ }
+
/**
* Load the Base script.
* It's a script which provides utility functions that we can use in other
groovy script
@@ -257,6 +265,7 @@ public class GroovyActionsServiceImpl implements
GroovyActionsService {
refreshGroovyActions();
}
};
-
schedulerService.getScheduleExecutorService().scheduleWithFixedDelay(task, 0,
groovyActionsRefreshInterval, TimeUnit.MILLISECONDS);
+ scheduledFuture =
schedulerService.getScheduleExecutorService().scheduleWithFixedDelay(task, 0,
groovyActionsRefreshInterval,
+ TimeUnit.MILLISECONDS);
}
}
diff --git
a/extensions/groovy-actions/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
b/extensions/groovy-actions/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 1f9bd40..433cd54 100644
---
a/extensions/groovy-actions/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++
b/extensions/groovy-actions/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -34,7 +34,7 @@
<reference id="actionExecutorDispatcher"
interface="org.apache.unomi.services.actions.ActionExecutorDispatcher"/>
<bean id="groovyActionsServiceImpl"
class="org.apache.unomi.groovy.actions.services.impl.GroovyActionsServiceImpl"
- init-method="postConstruct">
+ init-method="postConstruct" destroy-method="onDestroy">
<property name="bundleContext" ref="blueprintBundleContext"/>
<property name="definitionsService" ref="definitionsService"/>
<property name="persistenceService" ref="persistenceService"/>