diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/EngineScriptPersistence.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/EngineScriptPersistence.java new file mode 100644 index 0000000..b0666b5 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/EngineScriptPersistence.java @@ -0,0 +1,75 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.po; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +import lombok.Data; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; + +/** + * 脚本持久化实体类 + * + * @author Rock.Yu + * @since 2019-03-18 14:22 + */ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Inheritance(strategy = InheritanceType.JOINED) +@Table(name = "SCRIPT_PERSISTENCE", uniqueConstraints = { + @UniqueConstraint(columnNames = {"ORGANIZE_CODE", "SCRIPT_NO"}) +}) +@Api("系统动态脚本") +public class EngineScriptPersistence extends BaseBean { + private static final long serialVersionUID = 7893111140559759490L; + // 脚本调用的唯一编号,例如:WMS_PDA_0001 + @Column(name = "SCRIPT_NO", length = 50) + private String scriptNo; + + // 脚本的中文名称 + @Column(name = "SCRIPT_NAME", length = 50) + private String scriptName; + + // 10=组件脚本,20=表单脚本,30=报表脚本,40=JOB脚本,50=其他脚本 + @Column(name = "SCRIPT_TYPE") + private Integer scriptType; + + // 脚本编写的语言 + // 10=Groovy, 20=Jython, 30=JavaScript, 40=Scala, 50=JRuby + @Column(name = "LANGUAGE_TYPE") + private Integer languageType; + + // 脚本的具体内容 + @Lob + @Column(name = "SCRIPT_CONTENT", columnDefinition = "TEXT") + private String scriptContent; + + // 脚本的描述,包含脚本的用法,参数说明等 + @Column(name = "SCRIPT_REMARK", length = 2000) + private String scriptRemark; + + // 编译后的脚本内容,通过预编译加快脚本的运行速度 + @Transient + private Object compiledScript; + + // 构造方法,便于批量创建数据 + public EngineScriptPersistence(Long id, String scriptNo, String scriptName, Integer scriptType, Integer languageType, + String scriptContent, String scriptRemark) { + this.id = id; + this.scriptNo = scriptNo; + this.scriptName = scriptName; + this.scriptType = scriptType; + this.languageType = languageType; + this.scriptContent = scriptContent; + this.scriptRemark = scriptRemark; + } +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/GroovyCommonUtil.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/GroovyCommonUtil.java new file mode 100644 index 0000000..ad98d80 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/GroovyCommonUtil.java @@ -0,0 +1,11 @@ +package cn.estsh.i3plus.pojo.bsp.common; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/7/22 15:38 + * @Modify: + **/ +public class GroovyCommonUtil { +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/HttpUtils.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/HttpUtils.java index f1032b0..d5be5c1 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/HttpUtils.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/HttpUtils.java @@ -1,147 +1,149 @@ -package cn.estsh.i3plus.pojo.bsp.common; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.net.ssl.*; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; - -/** - * @Description : - * @Reference : - * @Author : Castle - * @CreateDate : 2021/6/17 13:37 - * @Modify: - **/ -public class HttpUtils { - private static Logger logger = LoggerFactory.getLogger(HttpUtils.class); - - // trust-https start - private static void trustAllHosts(HttpsURLConnection connection) { - try { - SSLContext sc = SSLContext.getInstance("TLS"); - sc.init(null, trustAllCerts, new java.security.SecureRandom()); - SSLSocketFactory newFactory = sc.getSocketFactory(); - - connection.setSSLSocketFactory(newFactory); - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - connection.setHostnameVerifier(new HostnameVerifier() { - @Override - public boolean verify(String hostname, SSLSession session) { - return true; - } - }); - } - - private static final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { - @Override - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[]{}; - } - - @Override - public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { - } - }}; - // trust-https end - - - /** - * post - * - * @param url - * @param timeout - * @param requestObj - * @return - */ - public static ReturnT postBody(String url, int timeout, Object requestObj) { - HttpURLConnection connection = null; - BufferedReader bufferedReader = null; - try { - // connection - URL realUrl = new URL(url); - connection = (HttpURLConnection) realUrl.openConnection(); - - // trust-https - boolean useHttps = url.startsWith("https"); - if (useHttps) { - HttpsURLConnection https = (HttpsURLConnection) connection; - trustAllHosts(https); - } - - // connection setting - connection.setRequestMethod("POST"); - connection.setDoOutput(true); - connection.setDoInput(true); - connection.setUseCaches(false); - connection.setReadTimeout(timeout * 1000); - connection.setConnectTimeout(3 * 1000); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); - connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8"); - - // do connection - connection.connect(); - - // write requestBody - if (requestObj != null) { - String requestBody = GsonTool.toJson(requestObj); - - DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream()); - dataOutputStream.write(requestBody.getBytes("UTF-8")); - dataOutputStream.flush(); - dataOutputStream.close(); - } - - // valid StatusCode - int statusCode = connection.getResponseCode(); - if (statusCode != 200) { - - return new ReturnT(ReturnT.FAIL_CODE, "rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url); - } - - // result - bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - StringBuilder result = new StringBuilder(); - String line; - while ((line = bufferedReader.readLine()) != null) { - result.append(line); - } - String resultJson = result.toString(); - // parse returnT - try { - return GsonTool.fromJson(resultJson, ReturnT.class); - } catch (Exception e) { - logger.error("rpc remoting (url=" + url + ") response content invalid(" + resultJson + ").", e); - return new ReturnT(ReturnT.FAIL_CODE, "rpc remoting (url=" + url + ") response content invalid(" + resultJson + ")."); - } - } catch (Exception e) { - logger.error(e.getMessage(), e); - return new ReturnT(ReturnT.FAIL_CODE, "rpc remoting error(" + e.getMessage() + "), for url : " + url); - } finally { - try { - if (bufferedReader != null) { - bufferedReader.close(); - } - if (connection != null) { - connection.disconnect(); - } - } catch (Exception e2) { - logger.error(e2.getMessage(), e2); - } - } - } - -} \ No newline at end of file +//package cn.estsh.i3plus.pojo.bsp.common; +// +//import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +// +//import javax.net.ssl.*; +//import java.io.BufferedReader; +//import java.io.DataOutputStream; +//import java.io.InputStreamReader; +//import java.net.HttpURLConnection; +//import java.net.URL; +//import java.security.cert.CertificateException; +//import java.security.cert.X509Certificate; +// +///** +// * @Description : +// * @Reference : +// * @Author : Castle +// * @CreateDate : 2021/6/17 13:37 +// * @Modify: +// **/ +//public class HttpUtils { +// private static Logger logger = LoggerFactory.getLogger(HttpUtils.class); +// +// // trust-https start +// private static void trustAllHosts(HttpsURLConnection connection) { +// try { +// SSLContext sc = SSLContext.getInstance("TLS"); +// sc.init(null, trustAllCerts, new java.security.SecureRandom()); +// SSLSocketFactory newFactory = sc.getSocketFactory(); +// +// connection.setSSLSocketFactory(newFactory); +// } catch (Exception e) { +// logger.error(e.getMessage(), e); +// } +// connection.setHostnameVerifier(new HostnameVerifier() { +// @Override +// public boolean verify(String hostname, SSLSession session) { +// return true; +// } +// }); +// } +// +// private static final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { +// @Override +// public X509Certificate[] getAcceptedIssuers() { +// return new X509Certificate[]{}; +// } +// +// @Override +// public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { +// } +// +// @Override +// public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { +// } +// }}; +// // trust-https end +// +// +// /** +// * post +// * +// * @param url +// * @param timeout +// * @param requestObj +// * @return +// */ +// public static ResultBean postBody(String url, int timeout, Object requestObj) { +// HttpURLConnection connection = null; +// BufferedReader bufferedReader = null; +// try { +// // connection +// URL realUrl = new URL(url); +// connection = (HttpURLConnection) realUrl.openConnection(); +// +// // trust-https +// boolean useHttps = url.startsWith("https"); +// if (useHttps) { +// HttpsURLConnection https = (HttpsURLConnection) connection; +// trustAllHosts(https); +// } +// +// // connection setting +// connection.setRequestMethod("POST"); +// connection.setDoOutput(true); +// connection.setDoInput(true); +// connection.setUseCaches(false); +// connection.setReadTimeout(timeout * 1000); +// connection.setConnectTimeout(3 * 1000); +// connection.setRequestProperty("connection", "Keep-Alive"); +// connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); +// connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8"); +// +// // do connection +// connection.connect(); +// +// // write requestBody +// if (requestObj != null) { +// String requestBody = GsonTool.toJson(requestObj); +// +// DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream()); +// dataOutputStream.write(requestBody.getBytes("UTF-8")); +// dataOutputStream.flush(); +// dataOutputStream.close(); +// } +// +// // valid StatusCode +// int statusCode = connection.getResponseCode(); +// if (statusCode != 200) { +// return ResultBean.fail("rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url); +//// return new BaseResultBean().errorMsg("rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url); +//// return new ReturnT(ReturnT.FAIL_CODE, "rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url); +// } +// +// // result +// bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); +// StringBuilder result = new StringBuilder(); +// String line; +// while ((line = bufferedReader.readLine()) != null) { +// result.append(line); +// } +// String resultJson = result.toString(); +// // parse returnT +// try { +// return GsonTool.fromJson(resultJson, BaseResultBean.class); +// } catch (Exception e) { +// logger.error("rpc remoting (url=" + url + ") response content invalid(" + resultJson + ").", e); +// return ResultBean.fail("rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url); +// } +// } catch (Exception e) { +// logger.error(e.getMessage(), e); +// return ResultBean.fail("rpc remoting fail, error message(" + e.getMessage() + ") invalid. for url : " + url); +// } finally { +// try { +// if (bufferedReader != null) { +// bufferedReader.close(); +// } +// if (connection != null) { +// connection.disconnect(); +// } +// } catch (Exception e2) { +// logger.error(e2.getMessage(), e2); +// } +// } +// } +// +//} \ No newline at end of file diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java index 81d6e63..350078d 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java @@ -1,56 +1,56 @@ -package cn.estsh.i3plus.pojo.bsp.common; - -import java.io.Serializable; - -/** - * @author Castle - */ -public class ReturnT implements Serializable { - public static final long serialVersionUID = 42L; - - public static final int SUCCESS_CODE = 200; - public static final int FAIL_CODE = 500; - - public static final ReturnT SUCCESS = new ReturnT(null); - public static final ReturnT FAIL = new ReturnT(FAIL_CODE, null); - - private int code; - private String msg; - private T content; - - public ReturnT(){} - public ReturnT(int code, String msg) { - this.code = code; - this.msg = msg; - } - - public ReturnT(T content) { - this.code = SUCCESS_CODE; - this.content = content; - } - - public int getCode() { - return code; - } - public void setCode(int code) { - this.code = code; - } - public String getMsg() { - return msg; - } - public void setMsg(String msg) { - this.msg = msg; - } - public T getContent() { - return content; - } - public void setContent(T content) { - this.content = content; - } - - @Override - public String toString() { - return "ReturnT [code=" + code + ", msg=" + msg + ", content=" + content + "]"; - } - -} +//package cn.estsh.i3plus.pojo.bsp.common; +// +//import java.io.Serializable; +// +///** +// * @author Castle +// */ +//public class ReturnT implements Serializable { +// public static final long serialVersionUID = 42L; +// +// public static final int SUCCESS_CODE = 200; +// public static final int FAIL_CODE = 500; +// +// public static final ReturnT SUCCESS = new ReturnT(null); +// public static final ReturnT FAIL = new ReturnT(FAIL_CODE, null); +// +// private int code; +// private String msg; +// private T content; +// +// public ReturnT(){} +// public ReturnT(int code, String msg) { +// this.code = code; +// this.msg = msg; +// } +// +// public ReturnT(T content) { +// this.code = SUCCESS_CODE; +// this.content = content; +// } +// +// public int getCode() { +// return code; +// } +// public void setCode(int code) { +// this.code = code; +// } +// public String getMsg() { +// return msg; +// } +// public void setMsg(String msg) { +// this.msg = msg; +// } +// public T getContent() { +// return content; +// } +// public void setContent(T content) { +// this.content = content; +// } +// +// @Override +// public String toString() { +// return "ReturnT [code=" + code + ", msg=" + msg + ", content=" + content + "]"; +// } +// +//} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RouteParam.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RouteParam.java new file mode 100644 index 0000000..a9f2148 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RouteParam.java @@ -0,0 +1,27 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.HashMap; +import java.util.List; + +/** + * @Description :路由参数 + * @Reference : + * @Author : Castle + * @CreateDate : 2021/7/5 14:02 + * @Modify: + **/ +@Data +@ApiModel("路由参数") +public class RouteParam { + + @ApiModelProperty(value = "执行方法Id") + private Long methodId; + @ApiModelProperty(value = "路由的权重配置") + private HashMap weightConfig; + @ApiModelProperty(value = "执行器地址列表") + private List addressList; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ScriptRepository.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ScriptRepository.java new file mode 100644 index 0000000..52a88d2 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ScriptRepository.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.pojo.bsp.server.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.bsp.client.bean.po.EngineScriptPersistence; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/7/22 13:51 + * @Modify: + **/ +public interface ScriptRepository extends BaseRepository { +}