Jelajahi Sumber

update for ali 属性上报

(cherry picked from commit 30d85e6cb5e5fbd84f1febab9a0aab41ffe85246)
jay 2 tahun lalu
induk
melakukan
7331a9d8ed

+ 0 - 7
iot-components/iot-component-converter/src/main/java/cc/iotkit/converter/GraalJsScriptConverter.java

@@ -14,13 +14,7 @@ import cc.iotkit.common.utils.JsonUtil;
 import cc.iotkit.model.device.message.ThingModelMessage;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.beanutils.BeanUtils;
 
-import javax.script.Invocable;
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineManager;
-import javax.script.ScriptException;
-import java.util.Map;
 import org.graalvm.polyglot.*;
 
 @Slf4j
@@ -30,7 +24,6 @@ public class GraalJsScriptConverter implements IConverter {
 
     private final Context context = Context.newBuilder("js").allowHostAccess(true).build();
 
-    private Object scriptObj;
 
     private Value decoder;
     private Value encoder;

+ 18 - 0
iot-components/iot-components-engine/pom.xml

@@ -17,4 +17,22 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
+    <dependencies>
+        <!--javascript运行环境-->
+        <dependency>
+            <groupId>org.graalvm.sdk</groupId>
+            <artifactId>graal-sdk</artifactId>
+
+        </dependency>
+        <dependency>
+            <groupId>org.graalvm.js</groupId>
+            <artifactId>js</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.graalvm.js</groupId>
+            <artifactId>js-scriptengine</artifactId>
+
+        </dependency>
+    </dependencies>
+
 </project>

+ 25 - 0
iot-components/iot-components-engine/src/main/java/cc/iotkit/engine/JsGraalJsScriptEngine.java

@@ -0,0 +1,25 @@
+package cc.iotkit.engine;
+
+import org.graalvm.polyglot.*;
+public class JsGraalJsScriptEngine implements IScriptEngine{
+
+    private final Context context = Context.newBuilder("js").allowHostAccess(true).build();
+
+    private Value jsScript;
+
+    @Override
+    public void setScript(String script) {
+         jsScript = context.eval("js", String.format("new (function () {\n%s})()", script));
+
+    }
+
+    @Override
+    public void putScriptEnv(String key, Object value) {
+        context.getBindings("js").putMember(key, value);
+    }
+
+    @Override
+    public Object invokeMethod(String methodName, Object... args) throws IScriptException {
+        return jsScript.getMember(methodName).execute(args);
+    }
+}

+ 3 - 0
iot-data/iot-model/src/main/java/cc/iotkit/model/protocol/ProtocolConverter.java

@@ -29,4 +29,7 @@ public class ProtocolConverter implements Owned<String> {
     private String desc;
 
     private Long createAt;
+
+    // 脚本类型
+    private String type;
 }