提交 59448d05 编写于 作者: O o2null

Merge branch 'fix/scriptengine/new' into 'release'

修复scriptEngine新实例的问题

See merge request o2oa/o2oa!409
......@@ -23,8 +23,8 @@ import jdk.nashorn.api.scripting.ScriptObjectMirror;
public class ScriptFactory {
private ScriptFactory(){
private ScriptFactory() {
}
public static final ScriptEngine scriptEngine = (new ScriptEngineManager())
......@@ -62,6 +62,10 @@ public class ScriptFactory {
public static final String BINDING_NAME_SERIAL = "serial";
public static final String BINDING_NAME_PROCESS = "process";
public static ScriptEngine newScriptEngine() {
return (new ScriptEngineManager()).getEngineByName(Config.SCRIPTING_ENGINE_NAME);
}
public static CompiledScript initialServiceScriptText() throws Exception {
if (COMPILEDSCRIPT_INITIALSERVICESCRIPTTEXT == null) {
synchronized (ScriptFactory.class) {
......
package com.x.program.center.jaxrs.center;
import java.util.Date;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WrapString;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
......@@ -16,32 +13,13 @@ class ActionVersion extends BaseAction {
ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
ActionResult<Wo> result = new ActionResult<>();
Wo wo = XGsonBuilder.instance().fromJson(Config.version(), Wo.class);
Wo wo = new Wo();
wo.setValue(Config.version());
result.setData(wo);
return result;
}
public static class Wo extends GsonPropertyObject {
private String version;
private Date date;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public static class Wo extends WrapString {
}
......
......@@ -9,7 +9,6 @@ import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.persistence.EntityManager;
......@@ -19,11 +18,7 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import org.apache.commons.collections4.list.TreeList;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import javax.script.ScriptException;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
......@@ -38,6 +33,10 @@ import com.x.base.core.project.tools.ListTools;
import com.x.query.core.entity.Item;
import com.x.query.core.entity.Item_;
import org.apache.commons.collections4.list.TreeList;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
public abstract class Plan extends GsonPropertyObject {
// private static Logger logger = LoggerFactory.getLogger(Plan.class);
......@@ -88,6 +87,8 @@ public abstract class Plan extends GsonPropertyObject {
public Integer count;
private ScriptEngine scriptEngine;
private Table order(Table table) {
Comparator<Row> comparator = new Comparator<Row>() {
@SuppressWarnings({ "rawtypes", "unchecked" })
......@@ -231,7 +232,6 @@ public abstract class Plan extends GsonPropertyObject {
if (!this.selectList.emptyColumnCode()) {
ScriptEngine engine = this.getScriptEngine();
engine.put("gird", table);
engine.eval(Config.mooToolsScriptText());
for (SelectEntry selectEntry : this.selectList) {
if (StringUtils.isNotBlank(selectEntry.code)) {
List<ExtractObject> extractObjects = new TreeList<>();
......@@ -536,11 +536,15 @@ public abstract class Plan extends GsonPropertyObject {
}
/* 有两个地方用到了 */
private ScriptEngine getScriptEngine() {
private ScriptEngine getScriptEngine() throws ScriptException, Exception {
// ScriptEngineManager manager = new ScriptEngineManager();
// ScriptEngine scriptEngine = manager.getEngineByName("JavaScript");
// return scriptEngine;
return ScriptFactory.scriptEngine;
if (null == this.scriptEngine) {
scriptEngine = ScriptFactory.newScriptEngine();
scriptEngine.eval(Config.mooToolsScriptText());
}
return scriptEngine;
}
public static class ExtractObject {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册