Minor fixes. Update rule node UI
This commit is contained in:
		
							parent
							
								
									4ea96fa289
								
							
						
					
					
						commit
						bfdc4a0801
					
				@ -128,7 +128,7 @@ public class RuleNodeMvelScriptEngine extends RuleNodeScriptEngine<MvelInvokeSer
 | 
			
		||||
        } else {
 | 
			
		||||
            args[0] = new HashMap<>();
 | 
			
		||||
        }
 | 
			
		||||
        args[1] = msg.getMetaData().getData();
 | 
			
		||||
        args[1] = new HashMap<>(msg.getMetaData().getData());
 | 
			
		||||
        args[2] = msg.getType();
 | 
			
		||||
        return args;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,59 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright © 2016-2022 The Thingsboard Authors
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
package org.thingsboard.script.api.mvel;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonNode;
 | 
			
		||||
import org.thingsboard.common.util.JacksonUtil;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
public class TbJson {
 | 
			
		||||
 | 
			
		||||
    public static String stringify(Object value) {
 | 
			
		||||
        return value != null ? JacksonUtil.toString(value) : "null";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Object parse(String value) throws IOException {
 | 
			
		||||
        if (value != null) {
 | 
			
		||||
            JsonNode node = JacksonUtil.toJsonNode(value);
 | 
			
		||||
            if (node.isObject()) {
 | 
			
		||||
                return JacksonUtil.convertValue(node, Map.class);
 | 
			
		||||
            } else if (node.isArray()) {
 | 
			
		||||
                return JacksonUtil.convertValue(node, List.class);
 | 
			
		||||
            } else if (node.isDouble()) {
 | 
			
		||||
                return node.doubleValue();
 | 
			
		||||
            } else if (node.isLong()) {
 | 
			
		||||
                return node.longValue();
 | 
			
		||||
            } else if (node.isInt()) {
 | 
			
		||||
                return node.intValue();
 | 
			
		||||
            } else if (node.isBoolean()) {
 | 
			
		||||
                return node.booleanValue();
 | 
			
		||||
            } else if (node.isTextual()) {
 | 
			
		||||
                return node.asText();
 | 
			
		||||
            } else if (node.isBinary()) {
 | 
			
		||||
                return node.binaryValue();
 | 
			
		||||
            } else if (node.isNull()) {
 | 
			
		||||
                return null;
 | 
			
		||||
            } else {
 | 
			
		||||
                return node.asText();
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -46,6 +46,8 @@ public class TbMvelClassLoader extends URLClassLoader {
 | 
			
		||||
        AbstractParser.CLASS_LITERALS.remove("Compiler");
 | 
			
		||||
        AbstractParser.CLASS_LITERALS.remove("ThreadLocal");
 | 
			
		||||
        AbstractParser.CLASS_LITERALS.remove("SecurityManager");
 | 
			
		||||
        AbstractParser.CLASS_LITERALS.put("JSON", TbJson.class);
 | 
			
		||||
        AbstractParser.LITERALS.put("JSON", TbJson.class);
 | 
			
		||||
 | 
			
		||||
        AbstractParser.CLASS_LITERALS.values().forEach(val -> allowedClasses.add(((Class) val).getName()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -35,10 +35,10 @@ public abstract class TbAbstractAlarmNodeConfiguration {
 | 
			
		||||
 | 
			
		||||
    static final String ALARM_DETAILS_BUILD_MVEL_TEMPLATE = "" +
 | 
			
		||||
            "var details = {};\n" +
 | 
			
		||||
            "if (metadata.prevAlarmDetails) {\n" +
 | 
			
		||||
            "if (metadata.prevAlarmDetails != null) {\n" +
 | 
			
		||||
            "    details = JSON.parse(metadata.prevAlarmDetails);\n" +
 | 
			
		||||
            "    //remove prevAlarmDetails from metadata\n" +
 | 
			
		||||
            "    delete metadata.prevAlarmDetails;\n" +
 | 
			
		||||
            "    metadata.remove('prevAlarmDetails');\n" +
 | 
			
		||||
            "    //now metadata is the same as it comes IN this rule node\n" +
 | 
			
		||||
            "}\n" +
 | 
			
		||||
            "\n" +
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user