From 316178e41a6e0f9ac65b591174abef4e42598570 Mon Sep 17 00:00:00 2001 From: Andrew Shvayka Date: Thu, 14 Sep 2017 08:01:51 +0300 Subject: [PATCH 1/3] RPC Rule Action and descriptor --- .../action/rpc/ServerSideRpcCallAction.java | 88 +++++++++++++++++++ .../ServerSideRpcCallActionConfiguration.java | 32 +++++++ .../rpc/ServerSideRpcCallActionMsg.java | 20 +++++ ...erverSideRpcCallRuleToPluginActionMsg.java | 17 ++++ .../extensions/core/plugin/rpc/RpcPlugin.java | 18 ++-- .../rpc/handlers/RpcRuleMsgHandler.java | 31 +++++++ .../ServerSideRpcCallActionDescriptor.json | 45 ++++++++++ 7 files changed, 246 insertions(+), 5 deletions(-) create mode 100644 extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallAction.java create mode 100644 extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallActionConfiguration.java create mode 100644 extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallActionMsg.java create mode 100644 extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallRuleToPluginActionMsg.java create mode 100644 extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/rpc/handlers/RpcRuleMsgHandler.java create mode 100644 extensions-core/src/main/resources/ServerSideRpcCallActionDescriptor.json diff --git a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallAction.java b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallAction.java new file mode 100644 index 0000000000..679c87b0e6 --- /dev/null +++ b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/action/rpc/ServerSideRpcCallAction.java @@ -0,0 +1,88 @@ +package org.thingsboard.server.extensions.core.action.rpc; + +import lombok.extern.slf4j.Slf4j; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.runtime.parser.ParseException; +import org.springframework.util.StringUtils; +import org.thingsboard.server.common.msg.device.ToDeviceActorMsg; +import org.thingsboard.server.common.msg.session.ToDeviceMsg; +import org.thingsboard.server.extensions.api.component.Action; +import org.thingsboard.server.extensions.api.plugins.PluginAction; +import org.thingsboard.server.extensions.api.plugins.msg.PluginToRuleMsg; +import org.thingsboard.server.extensions.api.plugins.msg.ResponsePluginToRuleMsg; +import org.thingsboard.server.extensions.api.plugins.msg.RuleToPluginMsg; +import org.thingsboard.server.extensions.api.rules.RuleContext; +import org.thingsboard.server.extensions.api.rules.RuleProcessingMetaData; +import org.thingsboard.server.extensions.api.rules.SimpleRuleLifecycleComponent; +import org.thingsboard.server.extensions.core.utils.VelocityUtils; + +import java.util.Optional; + +/** + * Created by ashvayka on 14.09.17. + */ +@Action(name = "Server Side RPC Call Action", descriptor = "ServerSideRpcCallActionDescriptor.json", configuration = ServerSideRpcCallActionConfiguration.class) +@Slf4j +public class ServerSideRpcCallAction extends SimpleRuleLifecycleComponent implements PluginAction { + + private ServerSideRpcCallActionConfiguration configuration; + private Optional