diff --git a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java
index 49994eaa1f..728f715af4 100644
--- a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java
+++ b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java
@@ -127,6 +127,9 @@ public class TenantActor extends RuleChainManagerActor {
@Override
public void destroy(TbActorStopReason stopReason, Throwable cause) {
log.info("[{}] Stopping tenant actor.", tenantId);
+ if (cfActor != null) {
+ ctx.stop(cfActor.getActorId());
+ }
}
@Override
diff --git a/common/actor/src/main/java/org/thingsboard/server/actors/DefaultTbActorSystem.java b/common/actor/src/main/java/org/thingsboard/server/actors/DefaultTbActorSystem.java
index 7fad1a329c..85638763b2 100644
--- a/common/actor/src/main/java/org/thingsboard/server/actors/DefaultTbActorSystem.java
+++ b/common/actor/src/main/java/org/thingsboard/server/actors/DefaultTbActorSystem.java
@@ -23,7 +23,6 @@ import org.thingsboard.server.common.msg.TbActorMsg;
import java.util.Collections;
import java.util.List;
-import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -215,7 +214,6 @@ public class DefaultTbActorSystem implements TbActorSystem {
@Override
public void stop() {
- actors.values().forEach(mailbox -> Optional.ofNullable(mailbox).ifPresent(m -> m.destroy(null)));
dispatchers.values().forEach(dispatcher -> {
dispatcher.getExecutor().shutdown();
try {
diff --git a/common/script/script-api/pom.xml b/common/script/script-api/pom.xml
index 4b6c1ee21c..da60567814 100644
--- a/common/script/script-api/pom.xml
+++ b/common/script/script-api/pom.xml
@@ -48,10 +48,6 @@
org.thingsboard.common
util
-
- org.thingsboard.rule-engine
- rule-engine-components
-
org.javadelight
delight-nashorn-sandbox
@@ -115,6 +111,14 @@
awaitility
test
+
+ org.locationtech.spatial4j
+ spatial4j
+
+
+ org.locationtech.jts
+ jts-core
+
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/Coordinates.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/Coordinates.java
similarity index 94%
rename from rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/Coordinates.java
rename to common/script/script-api/src/main/java/org/thingsboard/script/api/Coordinates.java
index c3b91e39bb..671ab58d5c 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/Coordinates.java
+++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/Coordinates.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.rule.engine.geo;
+package org.thingsboard.script.api;
import lombok.Data;
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/GeoUtil.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/GeoUtil.java
similarity index 99%
rename from rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/GeoUtil.java
rename to common/script/script-api/src/main/java/org/thingsboard/script/api/GeoUtil.java
index f92a345362..408b051303 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/GeoUtil.java
+++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/GeoUtil.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.rule.engine.geo;
+package org.thingsboard.script.api;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/Perimeter.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/Perimeter.java
similarity index 95%
rename from rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/Perimeter.java
rename to common/script/script-api/src/main/java/org/thingsboard/script/api/Perimeter.java
index 3474683c6c..e05486bee0 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/Perimeter.java
+++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/Perimeter.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.rule.engine.geo;
+package org.thingsboard.script.api;
import lombok.Data;
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/PerimeterType.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/PerimeterType.java
similarity index 94%
rename from rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/PerimeterType.java
rename to common/script/script-api/src/main/java/org/thingsboard/script/api/PerimeterType.java
index 2df6cf796c..f6a0eea77e 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/PerimeterType.java
+++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/PerimeterType.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.rule.engine.geo;
+package org.thingsboard.script.api;
public enum PerimeterType {
CIRCLE, POLYGON
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/RangeUnit.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/RangeUnit.java
similarity index 95%
rename from rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/RangeUnit.java
rename to common/script/script-api/src/main/java/org/thingsboard/script/api/RangeUnit.java
index 090d251b33..6a594d1668 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/RangeUnit.java
+++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/RangeUnit.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.rule.engine.geo;
+package org.thingsboard.script.api;
public enum RangeUnit {
METER(1000.0), KILOMETER(1.0), FOOT(3280.84), MILE(0.62137), NAUTICAL_MILE(0.539957);
diff --git a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java
index ecb47668f3..12eb308fee 100644
--- a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java
+++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java
@@ -25,9 +25,9 @@ import org.mvel2.execution.ExecutionArrayList;
import org.mvel2.execution.ExecutionHashMap;
import org.mvel2.util.MethodStub;
import org.thingsboard.common.util.JacksonUtil;
-import org.thingsboard.rule.engine.geo.Coordinates;
-import org.thingsboard.rule.engine.geo.GeoUtil;
-import org.thingsboard.rule.engine.geo.RangeUnit;
+import org.thingsboard.script.api.Coordinates;
+import org.thingsboard.script.api.GeoUtil;
+import org.thingsboard.script.api.RangeUnit;
import org.thingsboard.server.common.data.StringUtils;
import java.io.IOException;
diff --git a/rule-engine/rule-engine-components/pom.xml b/rule-engine/rule-engine-components/pom.xml
index eb568f9cc7..4eb76727ef 100644
--- a/rule-engine/rule-engine-components/pom.xml
+++ b/rule-engine/rule-engine-components/pom.xml
@@ -53,6 +53,10 @@
transport-api
provided
+
+ org.thingsboard.common.script
+ script-api
+
ch.qos.logback
logback-core
@@ -120,14 +124,6 @@
org.bouncycastle
bcpkix-jdk18on
-
- org.locationtech.spatial4j
- spatial4j
-
-
- org.locationtech.jts
- jts-core
-
com.sun.mail
jakarta.mail
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/AbstractGeofencingNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/AbstractGeofencingNode.java
index 8025baeec7..ea0d62ebc0 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/AbstractGeofencingNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/AbstractGeofencingNode.java
@@ -26,6 +26,11 @@ import org.thingsboard.rule.engine.api.TbNode;
import org.thingsboard.rule.engine.api.TbNodeConfiguration;
import org.thingsboard.rule.engine.api.TbNodeException;
import org.thingsboard.rule.engine.api.util.TbNodeUtils;
+import org.thingsboard.script.api.Coordinates;
+import org.thingsboard.script.api.GeoUtil;
+import org.thingsboard.script.api.Perimeter;
+import org.thingsboard.script.api.PerimeterType;
+import org.thingsboard.script.api.RangeUnit;
import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.msg.TbMsg;
@@ -74,7 +79,7 @@ public abstract class AbstractGeofencingNode