From 838b2e77c82fbd36eb75401cf8bfdc7a230fff4a Mon Sep 17 00:00:00 2001 From: "haoeliu@foxmail.com" Date: Sat, 18 Feb 2023 20:02:29 +0800 Subject: [PATCH] add DoipMessage to JsonObject conversion in JSONTool, to deal with the ret of engine is DoipMessage case --- src/main/java/org/bdware/sc/engine/JSONTool.java | 6 +++++- .../org/bdware/sc/engine/hook/DOOPBeforeExecHandler.java | 1 - src/main/java/org/bdware/sc/handler/DOOPRequestHandler.java | 2 -- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/bdware/sc/engine/JSONTool.java b/src/main/java/org/bdware/sc/engine/JSONTool.java index 5577b7d..5fec4f7 100644 --- a/src/main/java/org/bdware/sc/engine/JSONTool.java +++ b/src/main/java/org/bdware/sc/engine/JSONTool.java @@ -2,6 +2,8 @@ package org.bdware.sc.engine; import com.google.gson.*; import jdk.nashorn.internal.runtime.Context; +import org.bdware.doip.codec.doipMessage.DoipMessage; +import org.bdware.sc.util.JsonUtil; import wrp.jdk.nashorn.api.scripting.ScriptObjectMirror; import wrp.jdk.nashorn.internal.objects.NativeArray; import wrp.jdk.nashorn.internal.runtime.PropertyMap; @@ -146,7 +148,9 @@ public class JSONTool { return jsonObject; } else if (obj.getClass() == jdk.internal.dynalink.beans.StaticClass.class) { return JsonNull.INSTANCE; - } else if (obj instanceof Number) { + } else if (obj.getClass() == DoipMessage.class) { + return JsonUtil.fromJson(JsonUtil.toJson(obj), JsonObject.class); + }else if (obj instanceof Number) { return new JsonPrimitive((Number) obj); } else if (obj instanceof String) { diff --git a/src/main/java/org/bdware/sc/engine/hook/DOOPBeforeExecHandler.java b/src/main/java/org/bdware/sc/engine/hook/DOOPBeforeExecHandler.java index ee49665..456ce2f 100644 --- a/src/main/java/org/bdware/sc/engine/hook/DOOPBeforeExecHandler.java +++ b/src/main/java/org/bdware/sc/engine/hook/DOOPBeforeExecHandler.java @@ -5,7 +5,6 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.bdware.doip.codec.doipMessage.DoipMessage; import org.bdware.doip.codec.doipMessage.DoipMessageFactory; -import org.bdware.doip.codec.doipMessage.DoipResponseCode; import org.bdware.doip.codec.operations.BasicOperations; import org.bdware.sc.JSEngine; import org.bdware.sc.bean.ContractRequest; diff --git a/src/main/java/org/bdware/sc/handler/DOOPRequestHandler.java b/src/main/java/org/bdware/sc/handler/DOOPRequestHandler.java index ed734d4..bd3eaf9 100644 --- a/src/main/java/org/bdware/sc/handler/DOOPRequestHandler.java +++ b/src/main/java/org/bdware/sc/handler/DOOPRequestHandler.java @@ -1,7 +1,6 @@ package org.bdware.sc.handler; import com.google.gson.Gson; -import com.google.gson.JsonElement; import io.netty.channel.ChannelHandlerContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,7 +11,6 @@ import org.bdware.doip.endpoint.server.NettyServerHandler; import org.bdware.doip.endpoint.server.RepositoryHandler; import org.bdware.sc.ContractProcess; import org.bdware.sc.bean.ContractRequest; -import org.bdware.sc.engine.hook.DOOPBeforeExecHandler; import org.bdware.sc.entity.DoipMessagePacker; import org.bdware.sc.node.FunctionNode; import org.bdware.sc.util.JsonUtil;