From f0bfea12c0cf404741c44610f500eaf4407a5771 Mon Sep 17 00:00:00 2001 From: IrynaMatveieva Date: Thu, 20 Mar 2025 16:06:56 +0200 Subject: [PATCH] moved geoutils to script api --- .../server/actors/tenant/TenantActor.java | 3 +++ .../server/actors/DefaultTbActorSystem.java | 2 -- common/script/script-api/pom.xml | 12 ++++++--- .../thingsboard/script/api}/Coordinates.java | 2 +- .../org/thingsboard/script/api}/GeoUtil.java | 2 +- .../thingsboard/script/api}/Perimeter.java | 2 +- .../script/api}/PerimeterType.java | 2 +- .../thingsboard/script/api}/RangeUnit.java | 2 +- .../thingsboard/script/api/tbel/TbUtils.java | 6 ++--- rule-engine/rule-engine-components/pom.xml | 12 +++------ .../engine/geo/AbstractGeofencingNode.java | 7 ++++- ...bGpsGeofencingActionNodeConfiguration.java | 1 + ...bGpsGeofencingFilterNodeConfiguration.java | 2 ++ .../rule/engine/geo/GeoUtilTest.java | 26 ++++++++++--------- .../geo/TbGpsGeofencingFilterNodeTest.java | 3 +++ 15 files changed, 49 insertions(+), 35 deletions(-) rename {rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo => common/script/script-api/src/main/java/org/thingsboard/script/api}/Coordinates.java (94%) rename {rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo => common/script/script-api/src/main/java/org/thingsboard/script/api}/GeoUtil.java (99%) rename {rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo => common/script/script-api/src/main/java/org/thingsboard/script/api}/Perimeter.java (95%) rename {rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo => common/script/script-api/src/main/java/org/thingsboard/script/api}/PerimeterType.java (94%) rename {rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo => common/script/script-api/src/main/java/org/thingsboard/script/api}/RangeUnit.java (95%) 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