diff --git a/modules/i3plus-pojo-bsp/pom.xml b/modules/i3plus-pojo-bsp/pom.xml new file mode 100644 index 0000000..faedcff --- /dev/null +++ b/modules/i3plus-pojo-bsp/pom.xml @@ -0,0 +1,57 @@ + + + + i3plus-pojo + i3plus.pojo + 1.0-DEV-SNAPSHOT + ../../pom.xml + + 4.0.0 + + i3plus-pojo-bsp + + + + i3plus.pojo + i3plus-pojo-base + + + com.google.code.gson + gson + + + + + dev + + DEV + + + true + + + + test + + TEST + + + + docker + + DOCKER + + + + prod + + PROD + + + + + ${project.artifactId}-${project.version} + + \ No newline at end of file diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/MethodDescription.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/MethodDescription.java new file mode 100644 index 0000000..67c23e3 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/MethodDescription.java @@ -0,0 +1,28 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.model; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.ToString; + +import java.io.Serializable; +import java.lang.reflect.Method; +import java.util.List; + +/** + * @author ns + * @create 2021/5/24 0024 上午 11:08 + */ +@Getter +@ToString +@AllArgsConstructor +@Api("方法信息") +public class MethodDescription implements Serializable { + @ApiParam("方法的代理对象") + private final Method method; + @ApiParam("方法参数的长度") + private final int ParamLength; + @ApiParam("方法参数的详细信息") + private final List paramInfoList; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/MethodExcuteParam.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/MethodExcuteParam.java new file mode 100644 index 0000000..7e14ece --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/MethodExcuteParam.java @@ -0,0 +1,28 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.model; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Map; + +/** + * @author ns + * @create 2021/5/26 0026 下午 13:24 + * 方法执行所需要的参数 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Api("方法执行所需要的参数") +public class MethodExcuteParam implements Serializable { + @ApiParam("调用方法的key") + private String methodHandlerKey; + @ApiParam(value = "调用方法的参数map", allowEmptyValue = true) + private Map jsonParamMap; + @ApiParam(value = "调用方法参数列表", allowEmptyValue = true) + private Object[] jsonParamArray; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/ParamInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/ParamInfo.java new file mode 100644 index 0000000..a067e04 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/model/ParamInfo.java @@ -0,0 +1,24 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.model; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author ns + * @create 2021/5/26 0026 下午 17:41 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Api("参数的信息") +public class ParamInfo { + @ApiParam("参数名") + private String name; + @ApiParam("参数类型名") + private String typeName; + @ApiParam("参数类信息") + private Class clzz; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/MethodRegistryParam.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/MethodRegistryParam.java new file mode 100644 index 0000000..6d5bddf --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/MethodRegistryParam.java @@ -0,0 +1,40 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.po; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ns + * @create 2021/5/26 0026 下午 14:39 + * 注册的方法信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Api("方法注册的参数列表") +public class MethodRegistryParam implements Serializable { + + @ApiParam("方法名") + private String methodName; + @ApiParam("方法所在bean的名字") + private String beanName; + @ApiParam("方法调用所需要的key") + private String methodHandlerKey; + @ApiParam("方法参数列表") + private List parameterList; + @ApiParam("方法的版本") + private String version; + @ApiParam("方法影响了那些表") + private String[] affectTableClassName; + @ApiParam("方法的处理逻辑") + private String[] systemProcess; + @ApiParam("方法参数的验证逻辑") + private String[] validation; + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/ParamDescription.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/ParamDescription.java new file mode 100644 index 0000000..f37c059 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/ParamDescription.java @@ -0,0 +1,42 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.po; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author ns + * @create 2021/5/24 0024 上午 11:08 + * 注册的参数信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Api("参数的注册信息") +public class ParamDescription implements Serializable { + @ApiParam("参数名") + private String name; + @ApiParam(value = "参数类型",defaultValue ="1" ,allowableValues = "0 或者 1") + private Integer type; //出参还是入参 + @ApiParam("参数类型名") + private String typeName; //类型 + //默认值 + @ApiParam("参数默认值") + private String defaultValue; + //允许的值 + @ApiParam("参数可选值") + private String[] allowableValues; + //是否必填 + @ApiParam("参数是否必填") + private Boolean required; + //例子 + @ApiParam("参数的例子") + private String example; + //是否可以为空 + @ApiParam("参数是否可以为空") + private Boolean allowEmptyValue; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/RegistryParam.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/RegistryParam.java new file mode 100644 index 0000000..faf16b6 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/client/bean/po/RegistryParam.java @@ -0,0 +1,28 @@ +package cn.estsh.i3plus.pojo.bsp.client.bean.po; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ns + * @create 2021/5/26 0026 下午 14:33 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Api("执行器注册的信息") +public class RegistryParam implements Serializable { + @ApiParam("执行器的名称") + private String appname; + @ApiParam("执行器的地址") + private String address; + @ApiParam("执行器注册的方法信息") + private List methodRegistryParamList; + +} 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 new file mode 100644 index 0000000..81d6e63 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java @@ -0,0 +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 + "]"; + } + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/util/GsonTool.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/util/GsonTool.java new file mode 100644 index 0000000..8fddf3a --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/util/GsonTool.java @@ -0,0 +1,98 @@ +package cn.estsh.i3plus.pojo.bsp.common.util; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/17 13:40 + * @Modify: + **/ +public class GsonTool { + private static Gson gson = null; + + static { + gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); + } + + /** + * Object 转成 json + * + * @param src + * @return String + */ + public static String toJson(Object src) { + return gson.toJson(src); + } + + /** + * json 转成 特定的cls的Object + * + * @param json + * @param classOfT + * @return + */ + public static T fromJson(String json, Class classOfT) { + return gson.fromJson(json, classOfT); + } + + /** + * json 转成 特定的 rawClass 的Object + * + * @param json + * @param classOfT + * @param argClassOfT + * @return + */ + public static T fromJson(String json, Class classOfT, Class argClassOfT) { + Type type = new ParameterizedType4ReturnT(classOfT, new Class[]{argClassOfT}); + return gson.fromJson(json, type); + } + + public static class ParameterizedType4ReturnT implements ParameterizedType { + private final Class raw; + private final Type[] args; + + public ParameterizedType4ReturnT(Class raw, Type[] args) { + this.raw = raw; + this.args = args != null ? args : new Type[0]; + } + + @Override + public Type[] getActualTypeArguments() { + return args; + } + + @Override + public Type getRawType() { + return raw; + } + + @Override + public Type getOwnerType() { + return null; + } + } + + /** + * json 转成 特定的cls的list + * + * @param json + * @param classOfT + * @return + */ + public static List fromJsonList(String json, Class classOfT) { + return gson.fromJson( + json, + new TypeToken>() { + }.getType() + ); + } +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/util/HttpUtils.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/util/HttpUtils.java new file mode 100644 index 0000000..2d28014 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/util/HttpUtils.java @@ -0,0 +1,149 @@ +package cn.estsh.i3plus.pojo.bsp.common.util; + +import cn.estsh.i3plus.pojo.bsp.common.ReturnT; +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 + * @param returnTargClassOfT + * @return + */ + public static ReturnT postBody(String url, int timeout, Object requestObj, Class returnTargClassOfT) { + 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 diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMessageInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMessageInfo.java new file mode 100644 index 0000000..420f335 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMessageInfo.java @@ -0,0 +1,32 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.model; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @Description :执行器注册参数 + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/11 16:57 + * @Modify: + **/ +@Data +@AllArgsConstructor +@Api("注册/心跳") +public class RegistryMessageInfo { + + @ApiParam("appName,根据appName分执行器组") + private String appName; + + @ApiParam("执行器地址") + private String address; + + @ApiParam("方法列表") + private List methodRegistryParamList; + + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMethodInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMethodInfo.java new file mode 100644 index 0000000..bac52b3 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMethodInfo.java @@ -0,0 +1,51 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.model; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/15 9:33 + * @Modify: + **/ +@Data +@AllArgsConstructor +@Api("注册方法信息") +public class RegistryMethodInfo { + + @ApiParam("方法名") + private String methodName; + + @ApiParam("调用方法时的key") + private String methodHandlerKey; + + @ApiParam("参数列表") + private List methodParamList; + + /*-----------------------------------文档------------------------------------------------*/ + + @ApiParam("beanName") + private String beanName; + @ApiParam("方法版本号") + private String version; + + @ApiParam("受影响的表名,update/insert") + private List affectTableClassName; + + @ApiParam("系统要执行的逻辑") + private List systemProcess; + /** + * 参数验证 + */ + @ApiParam("参数验证") + private List validation; + + + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMethodParamInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMethodParamInfo.java new file mode 100644 index 0000000..4bac2c0 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RegistryMethodParamInfo.java @@ -0,0 +1,30 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.model; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/15 9:35 + * @Modify: + **/ +@Data +@AllArgsConstructor +@Api("方法祖册参数") +public class RegistryMethodParamInfo { + + @ApiParam("参数名") + private String name; + + @ApiParam("参数类型,入参1,出参0") + private Integer type; + + @ApiParam("数据类型,基本数据类型") + private String typeName; + + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorGroupRegistryInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorGroupRegistryInfo.java new file mode 100644 index 0000000..77de389 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorGroupRegistryInfo.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.po; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.io.Serializable; +import java.util.Date; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 13:21 + * @Modify: + **/ +@Entity +@Table(name = "EXECUTOR_GROUP_REGISTRY_INFO") +@Data +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel("执行器组") +public class ExecutorGroupRegistryInfo extends BaseBean implements Serializable { + + private static final long serialVersionUID = -3871002350228229604L; + + @Column(name = "APP_NAME") + @ApiModelProperty("执行器组的applicationName") + private String appName; + + @Column(name = "ADDRESS_STR") + @ApiModelProperty("注册地址字符串,地址用逗号间隔") + private String addressStr; + + @Column(name = "TYPE",columnDefinition = "int default 0") + @ApiModelProperty("自动注册 0,手动注册 1") + private String type; + + @Column + @ApiModelProperty("执行器组路由策略") + private String routeStrategy; + + @Column(name = "UPDATE_TIME") + @ApiModelProperty("更新时间") + private Date updateTime; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java new file mode 100644 index 0000000..dc7a4f9 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java @@ -0,0 +1,43 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.po; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.io.Serializable; +import java.util.Date; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 13:33 + * @Modify: + **/ +@Entity +@Table(name = "EXECUTOR_REGISTRY_INFO") +@Data +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel("执行器") +public class ExecutorRegistryInfo extends BaseBean implements Serializable { + private static final long serialVersionUID = -736085114778936163L; + + @Column(name = "APP_NAME") + @ApiModelProperty("执行器application Name") + private String appName; + + @Column(name = "ADDRESS") + @ApiModelProperty("执行器地址,包含ip:port") + private String address; + + @Column(name = "UPDATE_TIME") + @ApiModelProperty("最近一次心跳时间") + private Date updateTime; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodDocInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodDocInfo.java new file mode 100644 index 0000000..d798c1e --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodDocInfo.java @@ -0,0 +1,57 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.po; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.io.Serializable; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 13:43 + * @Modify: + **/ +@Entity +@Table(name = "EXECUTOR_REGISTRY_METHOD_DOC_INFO") +@Data +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel("方法doc") +public class ExecutorRegistryMethodDocInfo extends BaseBean implements Serializable { + private static final long serialVersionUID = 2770821289940006535L; + + @Column(name = "BEAN_NAME") + @ApiModelProperty("beanName") + private String beanName; + + @Column(name = "VERSION") + @ApiModelProperty("方法版本") + private String version; + + @Column(name = "AFFECT_TABLE_STR") + @ApiModelProperty("受影响的表名,逗号分割,原来为数组") + private String affectTableClassNameStr; + + @Column(name = "SYSTEM_PROCESS_STR") + @ApiModelProperty("系统要执行的逻辑 逗号分割,原来为数组") + private String systemProcessStr; + /** + * 参数验证 逗号分割,原来为数组 + */ + @Column(name = "VALIDATION") + @ApiModelProperty("参数验证 逗号分割,原来为数组") + private String validation; + + @Column(name = "METHOD_ID") + @ApiModelProperty("方法ID") + private Long methodId; + //todo 缺少参数信息 +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java new file mode 100644 index 0000000..b18a7f7 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java @@ -0,0 +1,51 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.po; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.io.Serializable; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 13:39 + * @Modify: + **/ +@Table(name = "EXECUTOR_REGISTRY_METHOD_INFO") +@Entity +@Data +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel("方法注册信息") +public class ExecutorRegistryMethodInfo extends BaseBean implements Serializable { + private static final long serialVersionUID = 2096630767822598366L; + + @Column(name = "METHOD_NAME") + @ApiModelProperty("方法名") + private String methodName; + + @Column(name = "METHOD_HANDLER_KEY") + @ApiModelProperty("调用方法需要的key") + private String methodHandlerKey; + + @Column(name = "BEAN_NAME") + @ApiModelProperty("beanName") + private String beanName; + + @Column(name = "VERSION") + @ApiModelProperty("方法的版本号") + private String version; + + @Column(name = "APP_NAME") + @ApiModelProperty("所属执行器的appName") + private String appName; + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryParamInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryParamInfo.java new file mode 100644 index 0000000..4c9ada9 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryParamInfo.java @@ -0,0 +1,48 @@ +package cn.estsh.i3plus.pojo.bsp.server.bean.po; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.io.Serializable; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 13:36 + * @Modify: + **/ +@Entity +@Table(name = "EXECUTOR_REGISTRY_PARAM_INFO") +@Data +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel("方法注册参数信息") +public class ExecutorRegistryParamInfo extends BaseBean implements Serializable { + private static final long serialVersionUID = 7346454749822492424L; + + + @Column(name = "NAME") + @ApiModelProperty("参数名") + private String name; + + @Column(name = "TYPE") + @ApiModelProperty("入参 1 ,出参 0") + private Integer type; + + @Column(name = "TYPE_NAME") + @ApiModelProperty("数据类型,基本数据类型") + private String typeName; + + @Column(name = "METHOD_ID") + @ApiModelProperty("所属方法的ID") + private Long methodId; + +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorGroupRegistryInfoRepository.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorGroupRegistryInfoRepository.java new file mode 100644 index 0000000..66029a7 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorGroupRegistryInfoRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.bsp.server.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorGroupRegistryInfo; +import org.springframework.stereotype.Repository; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 14:49 + * @Modify: + **/ +@Repository +public interface ExecutorGroupRegistryInfoRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryInfoRepository.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryInfoRepository.java new file mode 100644 index 0000000..fc8abb5 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryInfoRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.bsp.server.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryInfo; +import org.springframework.stereotype.Repository; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 14:51 + * @Modify: + **/ +@Repository +public interface ExecutorRegistryInfoRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryMethodDocInfoRepository.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryMethodDocInfoRepository.java new file mode 100644 index 0000000..988b14d --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryMethodDocInfoRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.bsp.server.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryMethodDocInfo; +import org.springframework.stereotype.Repository; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 14:53 + * @Modify: + **/ +@Repository +public interface ExecutorRegistryMethodDocInfoRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryMethodInfoRepository.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryMethodInfoRepository.java new file mode 100644 index 0000000..80395db --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryMethodInfoRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.bsp.server.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryMethodInfo; +import org.springframework.stereotype.Repository; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 14:55 + * @Modify: + **/ +@Repository +public interface ExecutorRegistryMethodInfoRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryParamInfoRepository.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryParamInfoRepository.java new file mode 100644 index 0000000..57854e5 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/repository/ExecutorRegistryParamInfoRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.bsp.server.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryParamInfo; +import org.springframework.stereotype.Repository; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2021/6/16 14:58 + * @Modify: + **/ +@Repository +public interface ExecutorRegistryParamInfoRepository extends BaseRepository { +} diff --git a/pom.xml b/pom.xml index f250672..47ef7ef 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,7 @@ modules/i3plus-pojo-ics modules/i3plus-pojo-mdm modules/i3plus-pojo-screen + modules/i3plus-pojo-bsp @@ -179,6 +180,11 @@ xstream 1.4.11.1 + + com.google.code.gson + gson + 2.8.6 +