Skip to content

Commit

Permalink
Value for Configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
silentbalanceyh committed Jun 3, 2023
1 parent c7c0b2b commit 2340df1
Show file tree
Hide file tree
Showing 28 changed files with 216 additions and 209 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -317,13 +317,4 @@ interface __ {
String QR = "__" + VName.QR; /* __qr */
String CLASS = "__" + VName.CLASS; /* __class */
}

interface AOP {
String COMPONENT_TYPE = "configuration.operation";
String COMPONENT = "plugin.component";
String COMPONENT_BEFORE = "plugin.component.before";
String COMPONENT_AFTER = "plugin.component.after";
String COMPONENT_JOB = "plugin.component.job";
String COMPONENT_CONFIG = "plugin.config";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package io.modello.eon.configure;

/**
* 可扩展部分配置的标准化
* Value for Programming Configuration
*
* @author lang : 2023-06-03
*/
public interface VPC {

interface aop extends HPCAop {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package io.modello.eon.configure;

/**
* @author lang : 2023-06-03
*/
interface HPCAop {
/**
* <value>plugin.component.before</value>,AOP配置中的前置插件,数据类型为 {@link io.vertx.core.json.JsonArray}
* 配置如下:
* <pre><code>
* {
* "plugin.component.before": [
* "xxx.xxx.xxx.BeforeComponent1",
* "xxx.xxx.xxx.BeforeComponent2"
* ]
* }
* </code></pre>
* 插件执行流程会对 {@link io.vertx.core.json.JsonObject} 和 {@link io.vertx.core.json.JsonArray} 两种类型执行链式操作,串行执行
* <pre><code>
* Monad1 -> Monad2 -> Monad3
* 配置点有两部分:
* 1. 动态建模 {@see VDBC.I_SERVICE.SERVICE_CONFIG} 中配置
* 2. 全局处理 {@link io.horizon.uca.aop.AspectConfig} 中处理
* </code></pre>
*/
String PLUGIN_COMPONENT_BEFORE = "plugin.component.before";
/**
* <value>plugin.component.after</value>,AOP配置中的后置插件,数据类型为 {@link io.vertx.core.json.JsonArray}
* 配置如下:
* <pre><code>
* {
* "plugin.component.after": [
* "xxx.xxx.xxx.AfterComponent1",
* "xxx.xxx.xxx.AfterComponent2"
* ]
* }
* </code></pre>
* 插件执行流程会对 {@link io.vertx.core.json.JsonObject} 和 {@link io.vertx.core.json.JsonArray} 两种类型执行链式操作,
* <pre><code>
* Monad1 -> Monad2 -> Monad3
* 配置点有两部分:
* 1. 动态建模 {@see VDBC.I_SERVICE.SERVICE_CONFIG} 中配置
* 2. 全局处理 {@link io.horizon.uca.aop.AspectConfig} 中处理
* </code></pre>
*/
String PLUGIN_COMPONENT_AFTER = "plugin.component.after";
/**
* <value>plugin.component.job</value>, AOP配置中的后置异步回调插件,在 after 之后,{@link io.vertx.core.json.JsonArray}
* 配置如下:
* <pre><code>
* {
* "plugin.component.job": [
* "xxx.xxx.xxx.JobComponent1",
* "xxx.xxx.xxx.JobComponent2"
* ]
* }
* </code></pre>
*/
String PLUGIN_COMPONENT_JOB = "plugin.component.job";
String PLUGIN_CONFIG = "plugin.config";
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package io.horizon.spi.environment;
package io.horizon.spi.modeler;

import io.horizon.exception.web._501NotSupportException;
import io.vertx.core.Future;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.up.fn.Fn;

import java.util.concurrent.ConcurrentMap;

Expand Down Expand Up @@ -32,6 +31,6 @@ public interface Identifier {
* The default implementation is Not Support Exception throw out
*/
default Future<ConcurrentMap<String, JsonArray>> resolve(final JsonObject data, final String identifier, final JsonObject config) {
return Fn.outWeb(_501NotSupportException.class, this.getClass());
return Future.failedFuture(new _501NotSupportException(this.getClass()));
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.horizon.spi.environment;
package io.horizon.spi.modeler;

import io.vertx.core.Future;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.horizon.uca.aop;

import io.horizon.eon.VName;
import io.horizon.util.HUt;
import io.modello.eon.configure.VPC;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;

Expand Down Expand Up @@ -39,19 +39,19 @@ public class AspectConfig implements Serializable {

private AspectConfig(final JsonObject components) {
// Plugin Before
this.initialize(components, VName.AOP.COMPONENT_BEFORE, (clazz, config) -> {
this.initialize(components, VPC.aop.PLUGIN_COMPONENT_BEFORE, (clazz, config) -> {
this.nameBefore.add(clazz);
this.configMap.put(clazz, config);
}, clazz -> HUt.isImplement(clazz, Before.class) || HUt.isImplement(clazz, io.horizon.uca.aop.Around.class));

// Plugin After
this.initialize(components, VName.AOP.COMPONENT_AFTER, (clazz, config) -> {
this.initialize(components, VPC.aop.PLUGIN_COMPONENT_AFTER, (clazz, config) -> {
this.nameAfter.add(clazz);
this.configMap.put(clazz, config);
}, clazz -> HUt.isImplement(clazz, After.class) || HUt.isImplement(clazz, io.horizon.uca.aop.Around.class));

// Plugin Job
this.initialize(components, VName.AOP.COMPONENT_JOB, (clazz, config) -> {
this.initialize(components, VPC.aop.PLUGIN_COMPONENT_JOB, (clazz, config) -> {
this.nameJob.add(clazz);
this.configMap.put(clazz, config);
}, clazz -> HUt.isImplement(clazz, After.class) || HUt.isImplement(clazz, io.horizon.uca.aop.Around.class));
Expand All @@ -73,7 +73,7 @@ private void initialize(
HUt.itJArray(source, String.class, (item, index) -> {
final Class<?> clazz = HUt.clazz(item, null);
if (Objects.nonNull(clazz) && fnCheck.test(clazz)) {
final JsonObject config = HUt.valueJObject(configuration, VName.AOP.COMPONENT_CONFIG);
final JsonObject config = HUt.valueJObject(configuration, VPC.aop.PLUGIN_CONFIG);
final JsonObject valueJ = HUt.valueJObject(config, clazz.getName());
fnConsumer.accept(clazz, valueJ);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package io.horizon.uca.aop;

/**
* 「切面分流器」
* 根据既定规则对AOP部分的配置执行分流操作,分类规则
*
* @author lang : 2023-06-03
*/
public class AspectSwitcher {
}
Original file line number Diff line number Diff line change
Expand Up @@ -334,11 +334,6 @@ interface Auditor {
}


// 「AOP Specification Definition」
interface AOP extends VName.AOP {
}


// 「Date Specification Definition」
interface Moment {
String DATE = "date";
Expand Down
81 changes: 81 additions & 0 deletions vertx-gaia/vertx-co/src/main/modeler/io/modello/eon/I_SERVICE.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package io.modello.eon;

import io.modello.eon.configure.VPC;

/**
* @author lang : 2023-06-03
*/
interface I_SERVICE {
/**
* I_SERVICE / SERVICE_CONFIG 字段
*/
interface SERVICE_CONFIG extends VPC.aop {
/**
* 「动态建模专用」
* <value>configuration.operation</value>, ServiceConfig中用于配置操作类型的专用常量
* 操作类型对应到 {@link io.horizon.eon.em.typed.ChangeFlag}
* <pre><code>
* - ADD: 添加
* - UPDATE: 更新
* - DELETE:删除
* </code></pre>
*/
String CONFIGURATION_OPERATION = "configuration.operation";

/**
* 「动态建模专用」
* <value>plugin.plugin</value>,ServiceConfig中配置的标识选择插件,实现接口
* {@link io.horizon.spi.modeler.Identifier}
*/
String PLUGIN_IDENTIFIER = "plugin.identifier";
/**
* 「动态建模专用」
* <value>plugin.component</value>, ServiceConfig中标准插件,通道可配置的触发主插件
* 配置如下
* <pre><code>
* {
* "plugin.component": "cn.originx.plugin.scaffold.AspectRecord"
* }
* </code></pre>
* 插件本身可区分单记录和多记录
* <pre><code>
* 1. {@see cn.originx.scaffold.plugin.AspectRecord} 单记录处理器
* 2. {@see cn.originx.plugin.scaffold.AspectBatch} 多记录处理器
* </code></pre>
*/
String PLUGIN_COMPONENT = "plugin.component";
/**
* 「动态建模专用」
* <value>plugin.activity</value>, ServiceConfig中配置变更历史插件,对应 X_ACTIVITY 表
* 配置如下
* <pre><code>
* {
* "plugin.activity": ""
* }
* </code></pre>
*/
String PLUGIN_ACTIVITY = "plugin.activity";
/**
* 「动态建模专用」
* <value>*</value>,ServiceConfig中配置待办插件,对应 `X_TODO` 表,由于TODO是标签所以此处不写todo部分
* 配置如下
* <pre><code>
* {
* "plugin.todo": ""
* }
* </code></pre>
*/
String PLUGIN_TODO = "plugin.todo";
/**
* 「动态建模专用」
* <value>plugin.ticket</value>,ServiceConfig中配置待确认单插件,对应新表 `B_TICKET` 和 `X_TODO` 实现跨数据库Join
* 以及二次更新流程
* <pre><code>
* {
* "plugin.ticket": ""
* }
* </code></pre>
*/
String PLUGIN_TICKET = "plugin.ticket";
}
}
17 changes: 17 additions & 0 deletions vertx-gaia/vertx-co/src/main/modeler/io/modello/eon/VDBC.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package io.modello.eon;

/**
* 扩展配置部分的标准化
* High Order Database Configuration
* 存储于数据库中的相关配置,针对字段级的操作
*
* @author lang : 2023-06-03
*/
public interface VDBC {

/**
* 关联数据表:{@see I_SERVICE}
*/
interface I_SERVICE extends io.modello.eon.I_SERVICE {
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.aeon.mature.checker;
package io.horizon.hoc.checker;

import io.aeon.business._403LinkDeletionException;
import io.horizon.exception.WebException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import cn.vertxup.ambient.service.DatumService;
import cn.vertxup.ambient.service.DatumStub;
import io.horizon.eon.VValue;
import io.horizon.spi.modeler.Indent;
import io.vertx.core.Future;
import io.vertx.up.exception.web._400SigmaMissingException;
import io.vertx.up.fn.Fn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import cn.vertxup.ambient.domain.tables.daos.XActivityRuleDao;
import cn.vertxup.ambient.domain.tables.pojos.XActivityRule;
import io.horizon.spi.environment.Indent;
import io.horizon.spi.modeler.Indent;
import io.horizon.uca.qr.syntax.Ir;
import io.vertx.core.Future;
import io.vertx.core.json.JsonObject;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.vertx.mod.ambient.aop;

import cn.vertxup.ambient.domain.tables.pojos.XCategory;
import io.aeon.mature.checker.HocTrue;
import io.horizon.eon.em.typed.ChangeFlag;
import io.horizon.hoc.checker.HocTrue;
import io.horizon.specification.uca.HTrue;
import io.horizon.uca.aop.Before;
import io.vertx.core.Future;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import cn.vertxup.ambient.domain.tables.daos.XCategoryDao;
import cn.vertxup.ambient.domain.tables.pojos.XCategory;
import io.aeon.mature.checker.HocTrue;
import io.horizon.hoc.checker.HocTrue;
import io.horizon.specification.uca.HTrue;
import io.vertx.core.Future;
import io.vertx.core.json.JsonArray;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.vertx.mod.crud.uca.input;

import io.aeon.experiment.specification.KModule;
import io.horizon.spi.environment.Indent;
import io.horizon.spi.modeler.Indent;
import io.horizon.uca.log.Annal;
import io.vertx.core.Future;
import io.vertx.core.json.JsonArray;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import cn.vertxup.erp.domain.tables.daos.EEmployeeDao;
import cn.vertxup.erp.domain.tables.pojos.EEmployee;
import io.horizon.spi.business.ExUser;
import io.horizon.spi.environment.Indent;
import io.horizon.spi.feature.Trash;
import io.horizon.spi.modeler.Indent;
import io.vertx.core.Future;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.vertx.mod.ke.refine;

import io.horizon.spi.environment.Indent;
import io.horizon.spi.modeler.Indent;
import io.horizon.uca.qr.syntax.Ir;
import io.vertx.core.Future;
import io.vertx.core.json.JsonArray;
Expand Down
Loading

0 comments on commit 2340df1

Please sign in to comment.