提交 a29b47ef 编写于 作者: Z zhourui

修复ScriptObject解析的bug

上级 dd38f3d1
......@@ -19,7 +19,7 @@
"###agentId": "agentId###",
"###appKey": "应用的key,唯一标识###",
"###appSecret": "应用的密钥###",
"###syncCron": "组织同步cron,默认每10分钟同步一次.###",
"###syncCron": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有钉钉回调信号接收到,那么触发同步任务进行人员同步.###",
"###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
"###oapiAddress": "oapi服务器地址###",
"###workUrl": "钉钉消息打开工作的url地址,如:http://dev.o2oa.net/x_desktop/###",
......
......@@ -108,7 +108,7 @@
"###excludes": "在此节点上不存储的类,和includes一起设置实际存储的类,可以使用通配符*###",
"###jmxEnable": "是否启动jmx,如果启用,可以通过本地的jmx客户端进行访问,不支持远程jmx客户端.###",
"###cacheSize": "H2数据库缓存大小,设置H2用于作为缓存的内存大小,以M作为单位,这里默认为512M.###",
"###logLevel": "默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完的配置为DefaultLevel\u003dWARN, Tool\u003dTRACE, Enhance\u003dTRACE, METADATA\u003dTRACE, Runtime\u003dTRACE, Query\u003dTRACE, DataCache\u003dTRACE, JDBC\u003dTRACE, SQL\u003dTRACE###",
"###logLevel": "默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完的配置为DefaultLevel\u003dWARN, Tool\u003dTRACE, Enhance\u003dTRACE, METADATA\u003dTRACE, Runtime\u003dTRACE, Query\u003dTRACE, DataCache\u003dTRACE, JDBC\u003dTRACE, SQL\u003dTRACE###",
"###maxTotal": "最大使用连接数###",
"###maxIdle": "最大空闲连接数###",
"###statEnable": "启用统计,默认启用###",
......
......@@ -17,7 +17,7 @@
"attendanceSyncAgentId": "",
"attendanceSyncSecret": "",
"###enable": "是否启用.###",
"###syncCron": "拉入同步cron,默认每10分钟同步一次.###",
"###syncCron": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有企业微信回调信号接收到,那么触发同步任务进行人员同步.###",
"###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
"###apiAddress": "api服务器地址###",
"###corpId": "企业微信corpId###",
......
......@@ -21,7 +21,7 @@
"###appId": "政务钉钉appId###",
"###appSecret": "政务钉钉appSecret###",
"###agentId": "政务钉钉agentId###",
"###syncCron": "拉入同步cron,默认每10分钟同步一次.###",
"###syncCron": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有政务钉钉回调信号接收到,那么触发同步任务进行人员同步.###",
"###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
"###oapiAddress": "oapi服务器地址###",
"###corpId": "政务钉钉corpId###",
......
......@@ -57,7 +57,7 @@ public class DataServer extends ConfigObject {
private Boolean jmxEnable;
@FieldDescribe("H2数据库缓存大小,设置H2用于作为缓存的内存大小,以M作为单位,这里默认为512M.")
private Integer cacheSize;
@FieldDescribe("默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完的配置为DefaultLevel=WARN, Tool=TRACE, Enhance=TRACE, METADATA=TRACE, Runtime=TRACE, Query=TRACE, DataCache=TRACE, JDBC=TRACE, SQL=TRACE")
@FieldDescribe("默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完的配置为DefaultLevel=WARN, Tool=TRACE, Enhance=TRACE, METADATA=TRACE, Runtime=TRACE, Query=TRACE, DataCache=TRACE, JDBC=TRACE, SQL=TRACE")
private String logLevel;
@FieldDescribe("最大使用连接数")
private Integer maxTotal;
......
......@@ -3,30 +3,26 @@ package com.x.base.core.project.script;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.regex.Matcher;
import javax.script.Compilable;
import javax.script.CompiledScript;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleScriptContext;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringEscapeUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.tools.StringTools;
import com.x.base.core.project.tools.PropertyTools;
import jdk.nashorn.api.scripting.ScriptObjectMirror;
import jdk.nashorn.internal.runtime.ScriptObject;
public class ScriptFactory {
......@@ -242,10 +238,7 @@ public class ScriptFactory {
if (obj instanceof CharSequence) {
list.add(Objects.toString(obj, ""));
} else {
Object d = PropertyUtils.getProperty(obj, JpaObject.DISTINGUISHEDNAME);
if (null != d) {
list.add(Objects.toString(d, ""));
}
list.add(PropertyTools.getOrElse(obj, JpaObject.DISTINGUISHEDNAME, String.class, ""));
}
}
}
......@@ -258,18 +251,20 @@ public class ScriptFactory {
if (obj instanceof CharSequence) {
list.add(Objects.toString(obj, ""));
} else {
Object d = PropertyUtils.getProperty(obj, JpaObject.DISTINGUISHEDNAME);
if (null != d) {
list.add(Objects.toString(d, ""));
if (obj instanceof ScriptObject) {
ScriptObject so = (ScriptObject) obj;
if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
}
} else {
list.add(PropertyTools.getOrElse(obj, JpaObject.DISTINGUISHEDNAME, String.class,
""));
}
}
}
}
} else {
Object d = PropertyUtils.getProperty(o, JpaObject.DISTINGUISHEDNAME);
if (null != d) {
list.add(Objects.toString(d, ""));
}
list.add(PropertyTools.getOrElse(som, JpaObject.DISTINGUISHEDNAME, String.class, ""));
}
}
}
......
package com.x.base.core.project.tools;
import java.lang.reflect.Field;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
public class PropertyTools {
@SuppressWarnings("unchecked")
public static <T> T getOrElse(Object bean, String name, Class<T> cls, T defaultObject) throws Exception {
if ((null != bean) && PropertyUtils.isReadable(bean, name)) {
Object o = PropertyUtils.getProperty(bean, name);
if (null != o) {
return (T) o;
if (null != bean) {
if (PropertyUtils.isReadable(bean, name)) {
Object o = PropertyUtils.getProperty(bean, name);
if (null != o) {
return (T) o;
}
} else {
Field field = FieldUtils.getField(bean.getClass(), name, true);
if (null != field) {
Object o = FieldUtils.readField(field, bean, true);
if (null != o) {
return (T) o;
}
}
}
}
return defaultObject;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册