diff --git a/CHANGELOG.md b/CHANGELOG.md
index a8635cefa..c609211d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,2 +1,4 @@
# 更新日志
+## 变更 2023-08-19
+* 重构项目结构,将meta文件保存到独立的meta模块中。已经生成的代码需要按照NopMigrateTask中的做法进行迁移
\ No newline at end of file
diff --git a/docs/dev-guide/graphql/connection.md b/docs/dev-guide/graphql/connection.md
index 7563b20d8..951280f23 100644
--- a/docs/dev-guide/graphql/connection.md
+++ b/docs/dev-guide/graphql/connection.md
@@ -16,7 +16,7 @@
-
+
io.nop.api.core.beans.graphql.GraphQLConnectionInput
{
$toLocalDate是扩展类型转换函数。所有的表达式最后都可以通过$toLocalDate/$toInt()等方式调用ConvertHelper上的类型转换函数。
对于一些常见的可复用转换函数等,我们可以利用Nop平台内置的`x:gen-extends`、`x:post-extends`等元编程机制自动生成属性定义。
-参见[biz-gen.xlib](https://gitee.com/canonical-entropy/nop-entropy/blob/master/nop-biz/src/main/resources/_vfs/nop/biz/xlib/biz-gen.xlib)
+参见[biz-gen.xlib](https://gitee.com/canonical-entropy/nop-entropy/blob/master/nop-biz/src/main/resources/_vfs/nop/core/xlib/biz-gen.xlib)
diff --git a/docs/theory/advantage-of-lowcode.md b/docs/theory/advantage-of-lowcode.md
new file mode 100644
index 000000000..44f98bbbe
--- /dev/null
+++ b/docs/theory/advantage-of-lowcode.md
@@ -0,0 +1,8 @@
+# 低代码开发的优势体现在哪里?
+
+很多人对低代码开发的理解局限在可视化拖拉拽,坦率的说,如果仅仅是一种辅助开发的可视化界面,它很难说有什么本质上的优势。从生产效率上说,熟练一些的程序员手工编写代码的速度一般会超越可视化设计界面(很多人有可视化设计器也不使用),而且编写代码还可以利用函数、组件等抽象手段进行封装,持续减少需要重复编写的代码量。而使用可视化设计工具,一般情况下会绑定到某种组件结构,使用者完全被束缚在一定的抽象层次上,无法在此基础上进行再次封装,大量类似的设置不得不在多个页面上重复又重复。可视化界面会在初期方便那些对组件属性不熟悉、对一般编程概念缺乏了解的人员,除此以外的作用可以说乏善可陈。
+
+> 有些相对完善的低代码平台会提供丰富的组件库,使用这些精心设计和调制好的组件可以大大加快开发速度。但本质上这种开发优势不是由低代码开发平台带来的,而是由组件库带来的。如果组件库直接开源,那么直接编写代码引用这些组件库同样可以极大的加快开发速度。
+
+如果仅仅把低代码看作是一种工具类产品,那它既有优势又有很明显的劣势,比如可调试性、可扩展性等一般都大大落后于传统开发模式。但是,如果从更广泛的编程范式演化的角度上说,低代码开发意味着新一轮的编程范式的迁移和转换,描述式编程借着低代码的东风正在不断蚕食命令式编程的传统领地,呼唤着新的融合式的编程范式。
+
diff --git a/docs/theory/xdsl-design.md b/docs/theory/xdsl-design.md
index d91b63e20..f34d6f130 100644
--- a/docs/theory/xdsl-design.md
+++ b/docs/theory/xdsl-design.md
@@ -51,7 +51,7 @@ Nop平台提供了一个IDEA插件[nop-idea-plugin](https://gitee.com/canonical-
x:schema="/nop/schema/xmeta.xdef" xmlns:x="/nop/schema/xdsl.xdef" >
-
+
```
diff --git a/nop-api-core/src/main/java/io/nop/api/core/beans/graphql/GraphQLConnectionInput.java b/nop-api-core/src/main/java/io/nop/api/core/beans/graphql/GraphQLConnectionInput.java
index ae0182a19..b8a7eb68e 100644
--- a/nop-api-core/src/main/java/io/nop/api/core/beans/graphql/GraphQLConnectionInput.java
+++ b/nop-api-core/src/main/java/io/nop/api/core/beans/graphql/GraphQLConnectionInput.java
@@ -8,6 +8,7 @@
package io.nop.api.core.beans.graphql;
import io.nop.api.core.annotations.data.DataBean;
+import io.nop.api.core.annotations.graphql.GraphQLInput;
import io.nop.api.core.beans.TreeBean;
import io.nop.api.core.beans.query.OrderFieldBean;
@@ -17,6 +18,7 @@
* 针对关联子表的查询条件,属性命名与GraphQL标准的Connection保持一致
*/
@DataBean
+@GraphQLInput
public class GraphQLConnectionInput {
/**
* first表示从afterCursor开始向后取n条数据
diff --git a/nop-auth/nop-auth-app/src/main/resources/nop-vfs-index.txt b/nop-auth/nop-auth-app/src/main/resources/nop-vfs-index.txt
index cf746f6cc..c58ecd982 100644
--- a/nop-auth/nop-auth-app/src/main/resources/nop-vfs-index.txt
+++ b/nop-auth/nop-auth-app/src/main/resources/nop-vfs-index.txt
@@ -186,7 +186,7 @@
/nop/biz/beans/biz-defaults.beans.xml
/nop/biz/xlib/biz!check.xlib
/nop/biz/xlib/biz!filter.xlib
-/nop/biz/xlib/biz-gen.xlib
+/nop/core/xlib/biz-gen.xlib
/nop/codegen/xlib/gen.xlib
/nop/codegen/xlib/meta-gen.xlib
/nop/codegen/xlib/web-gen.xlib
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthDept.json b/nop-auth/nop-auth-meta/_templates/_NopAuthDept.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthDept.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthDept.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthExtLogin.json b/nop-auth/nop-auth-meta/_templates/_NopAuthExtLogin.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthExtLogin.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthExtLogin.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthOpLog.json b/nop-auth/nop-auth-meta/_templates/_NopAuthOpLog.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthOpLog.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthOpLog.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthPosition.json b/nop-auth/nop-auth-meta/_templates/_NopAuthPosition.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthPosition.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthPosition.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthResource.json b/nop-auth/nop-auth-meta/_templates/_NopAuthResource.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthResource.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthResource.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthRole.json b/nop-auth/nop-auth-meta/_templates/_NopAuthRole.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthRole.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthRole.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthRoleDataAuth.json b/nop-auth/nop-auth-meta/_templates/_NopAuthRoleDataAuth.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthRoleDataAuth.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthRoleDataAuth.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthRoleResource.json b/nop-auth/nop-auth-meta/_templates/_NopAuthRoleResource.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthRoleResource.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthRoleResource.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthSession.json b/nop-auth/nop-auth-meta/_templates/_NopAuthSession.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthSession.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthSession.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthSite.json b/nop-auth/nop-auth-meta/_templates/_NopAuthSite.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthSite.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthSite.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthTenant.json b/nop-auth/nop-auth-meta/_templates/_NopAuthTenant.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthTenant.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthTenant.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthUser.json b/nop-auth/nop-auth-meta/_templates/_NopAuthUser.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthUser.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthUser.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthUserRole.json b/nop-auth/nop-auth-meta/_templates/_NopAuthUserRole.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthUserRole.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthUserRole.json
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthUserSubstitution.json b/nop-auth/nop-auth-meta/_templates/_NopAuthUserSubstitution.json
similarity index 100%
rename from nop-auth/nop-auth-service/_templates/_NopAuthUserSubstitution.json
rename to nop-auth/nop-auth-meta/_templates/_NopAuthUserSubstitution.json
diff --git a/nop-auth/nop-auth-meta/pom.xml b/nop-auth/nop-auth-meta/pom.xml
new file mode 100644
index 000000000..7b6e726e9
--- /dev/null
+++ b/nop-auth/nop-auth-meta/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ nop-auth
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-auth-meta
+
+
+
+ nop-auth-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-auth-dao
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/postcompile/gen-i18n.xgen b/nop-auth/nop-auth-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-auth/nop-auth-service/postcompile/gen-i18n.xgen
rename to nop-auth/nop-auth-meta/postcompile/gen-i18n.xgen
diff --git a/nop-auth/nop-auth-meta/precompile/gen-meta.xgen b/nop-auth/nop-auth-meta/precompile/gen-meta.xgen
new file mode 100644
index 000000000..e1b9ced20
--- /dev/null
+++ b/nop-auth/nop-auth-meta/precompile/gen-meta.xgen
@@ -0,0 +1,4 @@
+
+
+codeGenerator.renderModel('/nop/auth/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
+
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/en/_nop-auth.i18n.yaml b/nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/en/_nop-auth.i18n.yaml
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/en/_nop-auth.i18n.yaml
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/en/_nop-auth.i18n.yaml
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/en/nop-auth.i18n.yaml b/nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/en/nop-auth.i18n.yaml
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/en/nop-auth.i18n.yaml
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/en/nop-auth.i18n.yaml
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/zh-CN/_nop-auth.i18n.yaml b/nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-auth.i18n.yaml
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/zh-CN/_nop-auth.i18n.yaml
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-auth.i18n.yaml
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/zh-CN/nop-auth.i18n.yaml b/nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/zh-CN/nop-auth.i18n.yaml
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/i18n/zh-CN/nop-auth.i18n.yaml
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/i18n/zh-CN/nop-auth.i18n.yaml
diff --git a/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/_module b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/NopAuthDept.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthDept/NopAuthDept.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/NopAuthDept.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthDept/NopAuthDept.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xmeta
similarity index 94%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xmeta
index 78558730d..30c4b5d1a 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xmeta
@@ -10,7 +10,7 @@
deptName
-
+
@@ -77,7 +77,7 @@
-
+
@@ -86,7 +86,9 @@
-
+
+
+
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/NopAuthExtLogin.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/NopAuthExtLogin.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/NopAuthExtLogin.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/NopAuthExtLogin.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xmeta
similarity index 95%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xmeta
index f12b0bc51..deced7526 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xmeta
@@ -8,7 +8,7 @@
userId,loginType
-
+
@@ -57,7 +57,7 @@
-
+
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/NopAuthOpLog.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/NopAuthOpLog.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/NopAuthOpLog.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/NopAuthOpLog.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xmeta
similarity index 96%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xmeta
index a7c03ff03..c91601399 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xmeta
@@ -8,7 +8,7 @@
logId
-
+
@@ -69,7 +69,7 @@
-
+
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/NopAuthPosition.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/NopAuthPosition.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/NopAuthPosition.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/NopAuthPosition.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xmeta
similarity index 97%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xmeta
index fdd164abc..cfe504a92 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xmeta
@@ -10,7 +10,7 @@
name
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/NopAuthResource.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthResource/NopAuthResource.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/NopAuthResource.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthResource/NopAuthResource.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xmeta
similarity index 94%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xmeta
index 8fbf7ac2d..36ea1e33e 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xmeta
@@ -10,7 +10,7 @@
displayName
-
+
@@ -136,7 +136,7 @@
ext:kind="to-one" internal="true" queryable="true" ext:joinLeftProp="parentId"
ext:joinRightProp="resourceId" ext:joinRightDisplayProp="displayName" insertable="false" updatable="false"
lazy="true">
-
+
@@ -146,7 +146,7 @@
tagSet="pub,ref-pub,cascade-delete,ref-connection,queryable,sortable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="siteId" ext:joinRightProp="siteId"
ext:joinRightDisplayProp="displayName" insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
@@ -155,15 +155,17 @@
-
+
+
+
-
+
+
+
@@ -175,7 +177,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/NopAuthRole.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRole/NopAuthRole.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/NopAuthRole.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRole/NopAuthRole.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xmeta
similarity index 91%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xmeta
index 2891ae9b9..6dbacee2d 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xmeta
@@ -10,7 +10,7 @@
roleName
-
+
@@ -65,18 +65,20 @@
-
+
+
+
-
+
+
+
-
+
@@ -91,7 +93,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/NopAuthRoleDataAuth.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/NopAuthRoleDataAuth.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/NopAuthRoleDataAuth.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/NopAuthRoleDataAuth.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xmeta
similarity index 96%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xmeta
index c4dc034e6..35d68e8d6 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -70,7 +70,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="roleId" ext:joinRightProp="roleId" ext:joinRightDisplayProp="roleName"
insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/NopAuthRoleResource.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/NopAuthRoleResource.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/NopAuthRoleResource.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/NopAuthRoleResource.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xmeta
similarity index 94%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xmeta
index 88f02ef35..0aac14657 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -58,7 +58,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="roleId" ext:joinRightProp="roleId" ext:joinRightDisplayProp="roleName"
insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
@@ -68,7 +68,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="resourceId" ext:joinRightProp="resourceId"
ext:joinRightDisplayProp="displayName" insertable="false" updatable="false" lazy="true">
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/NopAuthSession.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSession/NopAuthSession.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/NopAuthSession.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSession/NopAuthSession.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xmeta
similarity index 98%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xmeta
index 08a2ad29a..17c3da310 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xmeta
@@ -8,7 +8,7 @@
sessionId
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/NopAuthSite.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSite/NopAuthSite.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/NopAuthSite.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSite/NopAuthSite.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xmeta
similarity index 95%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xmeta
index d9384e304..1381c6be4 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xmeta
@@ -10,7 +10,7 @@
displayName
-
+
@@ -71,8 +71,9 @@
-
+
+
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/NopAuthTenant.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/NopAuthTenant.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/NopAuthTenant.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/NopAuthTenant.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xmeta
similarity index 97%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xmeta
index 0fb49e889..be5f8e857 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xmeta
@@ -10,7 +10,7 @@
name
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/NopAuthUser.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUser/NopAuthUser.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/NopAuthUser.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUser/NopAuthUser.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xmeta
similarity index 95%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xmeta
index 759e60efd..5012c0169 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xmeta
@@ -10,7 +10,7 @@
userName
-
+
@@ -155,7 +155,7 @@
-
+
@@ -164,7 +164,7 @@
-
+
@@ -173,14 +173,16 @@
-
+
+
+
-
+
+
+
@@ -188,7 +190,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/NopAuthUserRole.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/NopAuthUserRole.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/NopAuthUserRole.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/NopAuthUserRole.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xmeta
similarity index 94%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xmeta
index a197cb58a..fc3a7bd8b 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xmeta
@@ -8,7 +8,7 @@
userId,roleId
-
+
@@ -50,7 +50,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="userId" ext:joinRightProp="userId" ext:joinRightDisplayProp="userName"
insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
@@ -60,7 +60,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="roleId" ext:joinRightProp="roleId" ext:joinRightDisplayProp="roleName"
insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/NopAuthUserSubstitution.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/NopAuthUserSubstitution.xmeta
similarity index 100%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/NopAuthUserSubstitution.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/NopAuthUserSubstitution.xmeta
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xmeta b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xmeta
similarity index 94%
rename from nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xmeta
rename to nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xmeta
index 7dea908d2..e7c076027 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xmeta
+++ b/nop-auth/nop-auth-meta/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -61,7 +61,7 @@
-
+
@@ -71,7 +71,7 @@
ext:kind="to-one" internal="true" queryable="true" ext:joinLeftProp="substitutedUserId"
ext:joinRightProp="userId" ext:joinRightDisplayProp="userName" insertable="false" updatable="false"
mandatory="true" lazy="true">
-
+
diff --git a/nop-auth/nop-auth-service/_templates/_NopAuthSystem.json b/nop-auth/nop-auth-service/_templates/_NopAuthSystem.json
deleted file mode 100644
index e1a367859..000000000
--- a/nop-auth/nop-auth-service/_templates/_NopAuthSystem.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "sid": "",
- "displayName": "",
- "orderNo": 0,
- "url": "",
- "status": 0,
- "status_label": "",
- "extConfig": "",
- "configVersion": "",
- "version": 0,
- "createdBy": "",
- "createTime": "2000-01-01 14:00:00",
- "updatedBy": "",
- "updateTime": "2000-01-01 14:00:00",
- "remark": ""
-}
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/pom.xml b/nop-auth/nop-auth-service/pom.xml
index 331fe303d..941e61b13 100644
--- a/nop-auth/nop-auth-service/pom.xml
+++ b/nop-auth/nop-auth-service/pom.xml
@@ -24,6 +24,11 @@
nop-auth-core
+
+ io.github.entropy-cloud
+ nop-auth-meta
+
+
io.github.entropy-cloud
nop-file-dao
@@ -76,12 +81,12 @@
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/precompile/gen-meta.xgen b/nop-auth/nop-auth-service/precompile/gen-meta.xgen
deleted file mode 100644
index 4079846b0..000000000
--- a/nop-auth/nop-auth-service/precompile/gen-meta.xgen
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-// 根据ORM模型生成xmeta
-codeGenerator.renderModel('/nop/auth/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
-// 从xmeta中抽取i18n配置
-codeGenerator.withTplDir('/nop/templates/i18n').execute("/",{ moduleId: "nop/auth" },$scope);
-
\ No newline at end of file
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/beans/app-service.beans.xml b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/beans/app-service.beans.xml
index 538b788a4..91d8d02c9 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/beans/app-service.beans.xml
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/beans/app-service.beans.xml
@@ -14,7 +14,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthDept/_NopAuthDept.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthExtLogin/_NopAuthExtLogin.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthOpLog/_NopAuthOpLog.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthPosition/_NopAuthPosition.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthResource/_NopAuthResource.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRole/_NopAuthRole.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleDataAuth/_NopAuthRoleDataAuth.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthRoleResource/_NopAuthRoleResource.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSession/_NopAuthSession.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthSite/_NopAuthSite.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthTenant/_NopAuthTenant.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUser/_NopAuthUser.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserRole/_NopAuthUserRole.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xbiz b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xbiz
+++ b/nop-auth/nop-auth-service/src/main/resources/_vfs/nop/auth/model/NopAuthUserSubstitution/_NopAuthUserSubstitution.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-auth/nop-auth-service/src/test/resources/_vfs/_delta/default/nop/auth/model/NopAuthSite/NopAuthSite.xmeta b/nop-auth/nop-auth-service/src/test/resources/_vfs/_delta/default/nop/auth/model/NopAuthSite/NopAuthSite.xmeta
index 2ac4d3509..c45db3dd6 100644
--- a/nop-auth/nop-auth-service/src/test/resources/_vfs/_delta/default/nop/auth/model/NopAuthSite/NopAuthSite.xmeta
+++ b/nop-auth/nop-auth-service/src/test/resources/_vfs/_delta/default/nop/auth/model/NopAuthSite/NopAuthSite.xmeta
@@ -1,4 +1,4 @@
-
+
diff --git a/nop-auth/pom.xml b/nop-auth/pom.xml
index b70625e11..45778793e 100644
--- a/nop-auth/pom.xml
+++ b/nop-auth/pom.xml
@@ -27,5 +27,6 @@
nop-auth-service
nop-auth-web
nop-auth-app
+ nop-auth-meta
\ No newline at end of file
diff --git a/nop-batch/model/nop-batch.orm.xlsx b/nop-batch/model/nop-batch.orm.xlsx
index 76ca0548d..f6cfb2d59 100644
Binary files a/nop-batch/model/nop-batch.orm.xlsx and b/nop-batch/model/nop-batch.orm.xlsx differ
diff --git a/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/jni-config.json b/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/jni-config.json
new file mode 100644
index 000000000..dd55f5bac
--- /dev/null
+++ b/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/jni-config.json
@@ -0,0 +1,43 @@
+[
+ {
+ "name": "java.lang.ClassLoader",
+ "methods": [
+ {
+ "name": "getPlatformClassLoader",
+ "parameterTypes": []
+ }
+ ]
+ },
+ {
+ "name": "java.lang.NoSuchMethodError"
+ },
+ {
+ "name": "sun.management.VMManagementImpl",
+ "fields": [
+ {
+ "name": "compTimeMonitoringSupport"
+ },
+ {
+ "name": "currentThreadCpuTimeSupport"
+ },
+ {
+ "name": "objectMonitorUsageSupport"
+ },
+ {
+ "name": "otherThreadCpuTimeSupport"
+ },
+ {
+ "name": "remoteDiagnosticCommandsSupport"
+ },
+ {
+ "name": "synchronizerUsageSupport"
+ },
+ {
+ "name": "threadAllocatedMemorySupport"
+ },
+ {
+ "name": "threadContentionMonitoringSupport"
+ }
+ ]
+ }
+]
diff --git a/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/native-image.properties b/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/native-image.properties
new file mode 100644
index 000000000..2e39c02f2
--- /dev/null
+++ b/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/native-image.properties
@@ -0,0 +1,11 @@
+Args=--enable-http \
+--enable-https \
+--enable-all-security-services \
+--verbose \
+-H:EnableURLProtocols=http,https \
+--report-unsupported-elements-at-runtime \
+-H:ReflectionConfigurationResources=${.}/reflect-config.json \
+-H:JNIConfigurationResources=${.}/jni-config.json \
+-H:ResourceConfigurationResources=${.}/resource-config.json \
+-H:+TraceServiceLoaderFeature \
+--trace-object-instantiation=java.security.SecureRandom
diff --git a/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/resource-config.json b/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/resource-config.json
new file mode 100644
index 000000000..faa24b86b
--- /dev/null
+++ b/nop-batch/nop-batch-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-batch-app/resource-config.json
@@ -0,0 +1,34 @@
+{
+ "resources": [
+ {
+ "pattern": ".*\\.xml$"
+ },
+ {
+ "pattern": ".*\\.yaml$"
+ },
+ {
+ "pattern": ".*\\.json5$"
+ },
+ {
+ "pattern": ".*\\.json$"
+ },
+ {
+ "pattern": ".*\\.properties$"
+ },
+ {
+ "pattern": ".*\\.xdef$"
+ },
+ {
+ "pattern": ".*\\.txt$"
+ },
+ {
+ "pattern": "META-INF/services/*.*"
+ },
+ {
+ "pattern": "_vfs/*.*"
+ },
+ {
+ "pattern": "_conf/*.*"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/nop-batch/nop-batch-dao/src/main/resources/_vfs/nop/batch/orm/_app.orm.xml b/nop-batch/nop-batch-dao/src/main/resources/_vfs/nop/batch/orm/_app.orm.xml
index 8a11e8f95..f6e42cdf5 100644
--- a/nop-batch/nop-batch-dao/src/main/resources/_vfs/nop/batch/orm/_app.orm.xml
+++ b/nop-batch/nop-batch-dao/src/main/resources/_vfs/nop/batch/orm/_app.orm.xml
@@ -1,6 +1,6 @@
diff --git a/nop-batch/nop-batch-service/_templates/_NopBatchFile.json b/nop-batch/nop-batch-meta/_templates/_NopBatchFile.json
similarity index 100%
rename from nop-batch/nop-batch-service/_templates/_NopBatchFile.json
rename to nop-batch/nop-batch-meta/_templates/_NopBatchFile.json
diff --git a/nop-batch/nop-batch-service/_templates/_NopBatchRecordResult.json b/nop-batch/nop-batch-meta/_templates/_NopBatchRecordResult.json
similarity index 100%
rename from nop-batch/nop-batch-service/_templates/_NopBatchRecordResult.json
rename to nop-batch/nop-batch-meta/_templates/_NopBatchRecordResult.json
diff --git a/nop-batch/nop-batch-service/_templates/_NopBatchTask.json b/nop-batch/nop-batch-meta/_templates/_NopBatchTask.json
similarity index 100%
rename from nop-batch/nop-batch-service/_templates/_NopBatchTask.json
rename to nop-batch/nop-batch-meta/_templates/_NopBatchTask.json
diff --git a/nop-batch/nop-batch-service/_templates/_NopBatchTaskState.json b/nop-batch/nop-batch-meta/_templates/_NopBatchTaskState.json
similarity index 100%
rename from nop-batch/nop-batch-service/_templates/_NopBatchTaskState.json
rename to nop-batch/nop-batch-meta/_templates/_NopBatchTaskState.json
diff --git a/nop-batch/nop-batch-meta/pom.xml b/nop-batch/nop-batch-meta/pom.xml
new file mode 100644
index 000000000..30384117d
--- /dev/null
+++ b/nop-batch/nop-batch-meta/pom.xml
@@ -0,0 +1,39 @@
+
+
+
+
+ nop-batch
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-batch-meta
+
+
+
+ nop-batch-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-batch-dao
+ io.github.entropy-cloud
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-batch/nop-batch-service/postcompile/gen-i18n.xgen b/nop-batch/nop-batch-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-batch/nop-batch-service/postcompile/gen-i18n.xgen
rename to nop-batch/nop-batch-meta/postcompile/gen-i18n.xgen
diff --git a/nop-batch/nop-batch-service/precompile/gen-meta.xgen b/nop-batch/nop-batch-meta/precompile/gen-meta.xgen
similarity index 61%
rename from nop-batch/nop-batch-service/precompile/gen-meta.xgen
rename to nop-batch/nop-batch-meta/precompile/gen-meta.xgen
index 36f0a6184..6cae2813f 100644
--- a/nop-batch/nop-batch-service/precompile/gen-meta.xgen
+++ b/nop-batch/nop-batch-meta/precompile/gen-meta.xgen
@@ -1,5 +1,4 @@
codeGenerator.renderModel('/nop/batch/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
-codeGenerator.withTplDir('/nop/templates/i18n').execute("/",{ moduleId: "nop/batch" },$scope);
\ No newline at end of file
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/en/_nop-batch.i18n.yaml b/nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/en/_nop-batch.i18n.yaml
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/en/_nop-batch.i18n.yaml
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/en/_nop-batch.i18n.yaml
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/en/nop-batch.i18n.yaml b/nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/en/nop-batch.i18n.yaml
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/en/nop-batch.i18n.yaml
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/en/nop-batch.i18n.yaml
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/zh-CN/_nop-batch.i18n.yaml b/nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-batch.i18n.yaml
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/zh-CN/_nop-batch.i18n.yaml
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-batch.i18n.yaml
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/zh-CN/nop-batch.i18n.yaml b/nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/zh-CN/nop-batch.i18n.yaml
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/i18n/zh-CN/nop-batch.i18n.yaml
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/i18n/zh-CN/nop-batch.i18n.yaml
diff --git a/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/_module b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/NopBatchFile.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchFile/NopBatchFile.xmeta
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/NopBatchFile.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchFile/NopBatchFile.xmeta
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xmeta
similarity index 98%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xmeta
index 9eb712f74..e9eb50c14 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xmeta
+++ b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xmeta
@@ -8,7 +8,7 @@
sid
-
+
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/NopBatchRecordResult.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/NopBatchRecordResult.xmeta
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/NopBatchRecordResult.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/NopBatchRecordResult.xmeta
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xmeta
similarity index 95%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xmeta
index 9eeb44110..059627e81 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xmeta
+++ b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xmeta
@@ -8,7 +8,7 @@
taskId,recordKey
-
+
@@ -61,7 +61,7 @@
-
+
\ No newline at end of file
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/NopBatchTask.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTask/NopBatchTask.xmeta
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/NopBatchTask.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTask/NopBatchTask.xmeta
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xmeta
similarity index 96%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xmeta
index 941b278b5..f177653f6 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xmeta
+++ b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -117,13 +117,14 @@
-
+
-
+
+
+
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/NopBatchTaskState.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/NopBatchTaskState.xmeta
similarity index 100%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/NopBatchTaskState.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/NopBatchTaskState.xmeta
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xmeta b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xmeta
similarity index 96%
rename from nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xmeta
rename to nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xmeta
index 792abbb84..15040b565 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xmeta
+++ b/nop-batch/nop-batch-meta/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xmeta
@@ -8,7 +8,7 @@
taskId,fieldName
-
+
@@ -69,7 +69,7 @@
-
+
\ No newline at end of file
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xbiz b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xbiz
+++ b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchFile/_NopBatchFile.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xbiz b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xbiz
+++ b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchRecordResult/_NopBatchRecordResult.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xbiz b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xbiz
+++ b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTask/_NopBatchTask.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xbiz b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xbiz
+++ b/nop-batch/nop-batch-service/src/main/resources/_vfs/nop/batch/model/NopBatchTaskState/_NopBatchTaskState.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-batch/nop-batch-web/src/main/resources/_vfs/nop/batch/auth/_nop-batch.action-auth.xml b/nop-batch/nop-batch-web/src/main/resources/_vfs/nop/batch/auth/_nop-batch.action-auth.xml
index 54a37e029..113bc114d 100644
--- a/nop-batch/nop-batch-web/src/main/resources/_vfs/nop/batch/auth/_nop-batch.action-auth.xml
+++ b/nop-batch/nop-batch-web/src/main/resources/_vfs/nop/batch/auth/_nop-batch.action-auth.xml
@@ -4,48 +4,7 @@
-
-
-
-
- NopBatchFile:query
-
-
- NopBatchFile:mutation
-
-
-
-
-
-
- NopBatchRecordResult:query
-
-
- NopBatchRecordResult:mutation
-
-
-
-
-
-
- NopBatchTask:query
-
-
- NopBatchTask:mutation
-
-
-
-
+
\ No newline at end of file
diff --git a/nop-batch/pom.xml b/nop-batch/pom.xml
index 2a6276003..500f3f9ad 100644
--- a/nop-batch/pom.xml
+++ b/nop-batch/pom.xml
@@ -27,5 +27,6 @@
nop-batch-web
nop-batch-app
nop-batch-jdbc
+ nop-batch-meta
\ No newline at end of file
diff --git a/nop-biz/src/main/java/io/nop/biz/crud/BizSchemaHelper.java b/nop-biz/src/main/java/io/nop/biz/crud/BizSchemaHelper.java
index 485b0cf5e..ced010bc7 100644
--- a/nop-biz/src/main/java/io/nop/biz/crud/BizSchemaHelper.java
+++ b/nop-biz/src/main/java/io/nop/biz/crud/BizSchemaHelper.java
@@ -50,6 +50,10 @@ public static ISchema getPropSchema(IObjPropMeta propMeta, boolean list, IBizObj
ISchema schema = null;
String bizObjName = propMeta.getBizObjName();
+
+ if(bizObjName == null && list)
+ bizObjName = propMeta.getItemBizObjName();
+
if (bizObjName != null) {
IBizObject bizObj = bizObjectManager.getBizObject(bizObjName);
IObjMeta objMeta = bizObj.getObjMeta();
diff --git a/nop-biz/src/main/java/io/nop/biz/impl/BizObjectManager.java b/nop-biz/src/main/java/io/nop/biz/impl/BizObjectManager.java
index 3f72a5377..08617f121 100644
--- a/nop-biz/src/main/java/io/nop/biz/impl/BizObjectManager.java
+++ b/nop-biz/src/main/java/io/nop/biz/impl/BizObjectManager.java
@@ -52,7 +52,7 @@
import java.util.stream.Collectors;
import static io.nop.graphql.core.GraphQLConfigs.CFG_GRAPHQL_EAGER_INIT_BIZ_OBJECT;
-import static io.nop.graphql.core.GraphQLConstants.GRAPAHQL_CONNECTION_PREFIX;
+import static io.nop.graphql.core.GraphQLConstants.GRAPHQL_CONNECTION_PREFIX;
import static io.nop.graphql.core.GraphQLConstants.OBJ_ACTION_SEPARATOR;
import static io.nop.graphql.core.GraphQLConstants.PAGE_BEAN_PREFIX;
import static io.nop.graphql.core.GraphQLErrors.ARG_OBJ_NAME;
@@ -200,7 +200,7 @@ public GraphQLObjectDefinition getObjectTypeDefinition(String objName) {
@Override
public GraphQLTypeDefinition getTypeDefinition(String objName) {
if (GraphQLNameHelper.isGeneratedTypeName(objName) || objName.startsWith(PAGE_BEAN_PREFIX)
- || objName.startsWith(GRAPAHQL_CONNECTION_PREFIX))
+ || objName.startsWith(GRAPHQL_CONNECTION_PREFIX))
return typeRegistry.getType(objName);
GraphQLTypeDefinition def = typeRegistry.getType(objName);
diff --git a/nop-bom/pom.xml b/nop-bom/pom.xml
index 23aa0fbcc..ebebf575c 100644
--- a/nop-bom/pom.xml
+++ b/nop-bom/pom.xml
@@ -198,6 +198,30 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-job-dao
+ ${nop-entropy.version}
+
+
+
+ io.github.entropy-cloud
+ nop-job-meta
+ ${nop-entropy.version}
+
+
+
+ io.github.entropy-cloud
+ nop-job-service
+ ${nop-entropy.version}
+
+
+
+ io.github.entropy-cloud
+ nop-job-web
+ ${nop-entropy.version}
+
+
io.github.entropy-cloud
@@ -231,7 +255,13 @@
io.github.entropy-cloud
- nop-tcc-store
+ nop-tcc-dao
+ ${nop-entropy.version}
+
+
+
+ io.github.entropy-cloud
+ nop-tcc-meta
${nop-entropy.version}
@@ -292,6 +322,12 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-report-meta
+ ${nop-entropy.version}
+
+
io.github.entropy-cloud
nop-report-service
@@ -328,6 +364,12 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-file-meta
+ ${nop-entropy.version}
+
+
io.github.entropy-cloud
nop-file-service
@@ -641,6 +683,12 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-auth-meta
+ ${nop-entropy.version}
+
+
io.github.entropy-cloud
nop-auth-service
@@ -671,6 +719,12 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-rule-meta
+ ${nop-entropy.version}
+
+
io.github.entropy-cloud
nop-rule-service
@@ -755,6 +809,13 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-sys-meta
+ ${nop-entropy.version}
+
+
+
io.github.entropy-cloud
nop-sys-service
@@ -785,6 +846,12 @@
${nop-entropy.version}
+
+ io.github.entropy-cloud
+ nop-wf-meta
+ ${nop-entropy.version}
+
+
io.github.entropy-cloud
nop-wf-service
diff --git a/nop-cli-core/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-cli-core/reflect-config.json b/nop-cli-core/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-cli-core/reflect-config.json
index 6c22b7cd4..d5dcd7cb9 100644
--- a/nop-cli-core/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-cli-core/reflect-config.json
+++ b/nop-cli-core/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-cli-core/reflect-config.json
@@ -13150,6 +13150,13 @@
"io.nop.core.lang.eval.IEvalFunction"
]
},
+ {
+ "name": "functional",
+ "parameterTypes": [
+ "io.nop.core.lang.eval.IEvalScope",
+ "io.nop.core.lang.eval.IEvalFunction"
+ ]
+ },
{
"name": "g_current_locale",
"parameterTypes": []
diff --git a/nop-cli-core/src/main/resources/nop-vfs-index.txt b/nop-cli-core/src/main/resources/nop-vfs-index.txt
index 6c3f34a2f..a2b76521b 100644
--- a/nop-cli-core/src/main/resources/nop-vfs-index.txt
+++ b/nop-cli-core/src/main/resources/nop-vfs-index.txt
@@ -15,7 +15,6 @@
/nop/autoconfig/nop-dao.beans
/nop/autoconfig/nop-orm.beans
/nop/autoconfig/nop-report.beans
-/nop/biz/xlib/biz-gen.xlib
/nop/codegen/xlib/gen.xlib
/nop/codegen/xlib/meta-gen.xlib
/nop/codegen/xlib/run.xlib
@@ -36,6 +35,7 @@
/nop/core/registry/xtask.register-model.xml
/nop/core/xlib/biz!check.xlib
/nop/core/xlib/biz!filter.xlib
+/nop/core/xlib/biz-gen.xlib
/nop/core/xlib/biz.xlib
/nop/core/xlib/file.xlib
/nop/core/xlib/filter.xlib
@@ -178,6 +178,7 @@
/nop/templates/meta-delta/@init.xrun
/nop/templates/meta-delta/src/main/resources/_vfs/_delta/{deltaDir}/gen-meta.xrun
/nop/templates/meta/@init.xrun
+/nop/templates/meta/src/main/resources/_vfs/{moduleId}/_module
/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{deltaDir}/_{entityModel.shortName}.xmeta.xgen
/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{entityModel.shortName}.xmeta.xgen
/nop/templates/orm-dao/@init.xrun
@@ -221,16 +222,18 @@
/nop/templates/orm/{appName}-dao/src/main/java/{basePackagePath}/dao/_{moduleClassPrefix}DaoConstants.java.xgen
/nop/templates/orm/{appName}-dao/src/main/java/{basePackagePath}/dao/mapper/{!!entityModel.tagSet.@mapper}{entityModel.shortName}Mapper.java.xgen
/nop/templates/orm/{appName}-dao/src/main/java/{basePackagePath}/dao/{moduleClassPrefix}DaoConstants.java.xgen
-/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/_module
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/beans/_dao.beans.xml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/orm/app.orm.xml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/orm/{deltaDir}/_app.orm.xml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/sql/{!!entityModel.tagSet.@mapper}{entityModel.shortName}.sql-lib.xml.xgen
+/nop/templates/orm/{appName}-meta/pom.xml.xgen
+/nop/templates/orm/{appName}-meta/postcompile/gen-i18n.xgen.xgen
+/nop/templates/orm/{appName}-meta/precompile/gen-meta.xgen.xgen
+/nop/templates/orm/{appName}-meta/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
+/nop/templates/orm/{appName}-meta/src/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
/nop/templates/orm/{appName}-service/impl.xrun
/nop/templates/orm/{appName}-service/pom.xml.xgen
-/nop/templates/orm/{appName}-service/postcompile/gen-i18n.xgen.xgen
-/nop/templates/orm/{appName}-service/precompile/gen-meta.xgen.xgen
/nop/templates/orm/{appName}-service/src/main/java/{basePackagePath}/service/entity/{!entityModel.notGenCode}{entityModel.shortName}BizModel.java.xgen
/nop/templates/orm/{appName}-service/src/main/java/{basePackagePath}/service/{moduleClassPrefix}Configs.java.xgen
/nop/templates/orm/{appName}-service/src/main/java/{basePackagePath}/service/{moduleClassPrefix}Constants.java.xgen
diff --git a/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser.xmeta b/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser.xmeta
index e8483e3c7..0e117d0dc 100644
--- a/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser.xmeta
+++ b/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser.xmeta
@@ -10,7 +10,7 @@
userName
-
+
diff --git a/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser2.xmeta b/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser2.xmeta
index e8483e3c7..0e117d0dc 100644
--- a/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser2.xmeta
+++ b/nop-cli-core/src/test/resources/_vfs/meta/test/_NopAuthUser2.xmeta
@@ -10,7 +10,7 @@
userName
-
+
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/i18n/src/main/resources/_vfs/i18n/{enableEn}en/{moduleName}.i18n.yaml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/i18n/src/main/resources/_vfs/i18n/{enableEn}en/{moduleName}.i18n.yaml.xgen
index 11c26b072..0d870ae73 100644
--- a/nop-codegen/src/main/resources/_vfs/nop/templates/i18n/src/main/resources/_vfs/i18n/{enableEn}en/{moduleName}.i18n.yaml.xgen
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/i18n/src/main/resources/_vfs/i18n/{enableEn}en/{moduleName}.i18n.yaml.xgen
@@ -1,5 +1,5 @@
-
+
"x:extends": _${moduleName}.i18n.yaml
# key: "value"
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/meta/src/main/resources/_vfs/{moduleId}/_module b/nop-codegen/src/main/resources/_vfs/nop/templates/meta/src/main/resources/_vfs/{moduleId}/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{deltaDir}/_{entityModel.shortName}.xmeta.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{deltaDir}/_{entityModel.shortName}.xmeta.xgen
index fee45cca3..17d1d59d4 100644
--- a/nop-codegen/src/main/resources/_vfs/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{deltaDir}/_{entityModel.shortName}.xmeta.xgen
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{deltaDir}/_{entityModel.shortName}.xmeta.xgen
@@ -9,7 +9,7 @@
-
+
@@ -82,7 +82,10 @@
biz:moduleId="${rel.refEntityModel['biz:moduleId']}"
insertable="${rel.tagSet?.contains('insertable')}" updatable="${rel.tagSet?.contains('updatable')}"
mandatory="${(rel.toOneRelation and rel.mandatory) || null}" lazy="true" published="${rel.tagSet?.contains('pub') ? null :false}">
-
+
+
+
+
-
+
-
+
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/pom.xml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/pom.xml.xgen
index e33355e66..97b5a311c 100644
--- a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/pom.xml.xgen
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/pom.xml.xgen
@@ -8,6 +8,7 @@
${appName}-codegen
${appName}-api
${appName}-dao
+ ${appName}-meta
${appName}-service
${appName}-web
${appName}-app
@@ -37,6 +38,7 @@
${appName}-codegen
${appName}-api
${appName}-dao
+ ${appName}-meta
${appName}-service
${appName}-web
${appName}-app
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/pom.xml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/pom.xml.xgen
new file mode 100644
index 000000000..83d4ba5f5
--- /dev/null
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/pom.xml.xgen
@@ -0,0 +1,44 @@
+
+
+
+ ${ormModel['ext:mavenArtifactId']}
+ ${ormModel['ext:mavenGroupId']}
+ ${ormModel['ext:mavenVersion'] || '1.0.0-SNAPSHOT'}
+
+
+ 4.0.0
+
+ ${ormModel['ext:mavenArtifactId']}-meta
+
+
+
+
+ ${ormModel['ext:mavenArtifactId']}-codegen
+ ${ormModel['ext:mavenGroupId']}
+ ${ormModel['ext:mavenVersion'] || '1.0.0-SNAPSHOT'}
+ test
+
+
+
+ ${ormModel['ext:mavenArtifactId']}-dao
+ ${ormModel['ext:mavenGroupId']}
+ ${ormModel['ext:mavenVersion'] || '1.0.0-SNAPSHOT'}
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/postcompile/gen-i18n.xgen.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/postcompile/gen-i18n.xgen.xgen
similarity index 100%
rename from nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/postcompile/gen-i18n.xgen.xgen
rename to nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/postcompile/gen-i18n.xgen.xgen
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/precompile/gen-meta.xgen.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/precompile/gen-meta.xgen.xgen
similarity index 100%
rename from nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/precompile/gen-meta.xgen.xgen
rename to nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/precompile/gen-meta.xgen.xgen
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
similarity index 100%
rename from nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
rename to nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/src/resources/_vfs/dict/{dict.name}.dict.yaml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/src/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
new file mode 100644
index 000000000..a96534910
--- /dev/null
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-meta/src/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
@@ -0,0 +1,18 @@
+
+
+ - label: ${option.label.$escapeYaml()}
+ value: ${dict.valueType == 'int' ? option.value : option.value.toString().$escapeYaml()}
+ description: ${option.description?.$escapeYml()}
+
+ internal: true
+
+
+ deprecated: true
+
+
+
\ No newline at end of file
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/pom.xml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/pom.xml.xgen
index 15b6e64e8..8e4076158 100644
--- a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/pom.xml.xgen
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/pom.xml.xgen
@@ -27,11 +27,22 @@
test
+
+ ${ormModel['ext:mavenArtifactId']}-meta
+ ${ormModel['ext:mavenGroupId']}
+ ${ormModel['ext:mavenVersion'] || '1.0.0-SNAPSHOT'}
+
+
io.github.entropy-cloud
nop-biz
+
+ io.github.entropy-cloud
+ nop-file-core
+
+
io.github.entropy-cloud
nop-config
@@ -78,14 +89,14 @@
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/_{entityModel.shortName}.xbiz.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/_{entityModel.shortName}.xbiz.xgen
index 3afc795c0..5c8264251 100644
--- a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/_{entityModel.shortName}.xbiz.xgen
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-service/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/_{entityModel.shortName}.xbiz.xgen
@@ -1,7 +1,7 @@
-
+
diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-web/pom.xml.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-web/pom.xml.xgen
index c2ed09029..86f96df15 100644
--- a/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-web/pom.xml.xgen
+++ b/nop-codegen/src/main/resources/_vfs/nop/templates/orm/{appName}-web/pom.xml.xgen
@@ -14,7 +14,7 @@
- ${ormModel['ext:mavenArtifactId']}-service
+ ${ormModel['ext:mavenArtifactId']}-meta
${ormModel['ext:mavenGroupId']}
${ormModel['ext:mavenVersion'] || '1.0.0-SNAPSHOT'}
diff --git a/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java b/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java
index 0a61bb6ae..0f9df686d 100644
--- a/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java
+++ b/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java
@@ -167,27 +167,27 @@ public static boolean moveFile(@Nonnull File srcFile, @Nonnull File dstFile) {
}
}
- public static boolean atomicMoveFile(File srcFile, File dstFile) {
- try {
- Files.move(srcFile.toPath(), dstFile.toPath(), StandardCopyOption.ATOMIC_MOVE,
- StandardCopyOption.COPY_ATTRIBUTES);
- return true;
- } catch (IOException outer) {
- try {
- Files.move(srcFile.toPath(), dstFile.toPath(), StandardCopyOption.COPY_ATTRIBUTES);
- return true;
- } catch (FileAlreadyExistsException e) {
- LOG.debug("nop.commons.io.atomic-move-file-fail:src={},dest={}", srcFile, dstFile, e);
- return false;
- } catch (DirectoryNotEmptyException e) {
- LOG.debug("nop.commons.io.atomic-move-file-fail:src={},dest={}", srcFile, dstFile, e);
- return false;
-
- } catch (IOException e) {
- throw NopException.adapt(e);
- }
- }
- }
+// public static boolean atomicMoveFile(File srcFile, File dstFile) {
+// try {
+// Files.move(srcFile.toPath(), dstFile.toPath(), StandardCopyOption.ATOMIC_MOVE,
+// StandardCopyOption.COPY_ATTRIBUTES);
+// return true;
+// } catch (IOException outer) {
+// try {
+// Files.move(srcFile.toPath(), dstFile.toPath(), StandardCopyOption.COPY_ATTRIBUTES);
+// return true;
+// } catch (FileAlreadyExistsException e) {
+// LOG.debug("nop.commons.io.atomic-move-file-fail:src={},dest={}", srcFile, dstFile, e);
+// return false;
+// } catch (DirectoryNotEmptyException e) {
+// LOG.debug("nop.commons.io.atomic-move-file-fail:src={},dest={}", srcFile, dstFile, e);
+// return false;
+//
+// } catch (IOException e) {
+// throw NopException.adapt(e);
+// }
+// }
+// }
/**
* Creates a symbolic link at {@code link} whose target will be the {@code target}. Depending on the underlying
diff --git a/nop-demo/nop-quarkus-demo/src/main/resources/nop-vfs-index.txt b/nop-demo/nop-quarkus-demo/src/main/resources/nop-vfs-index.txt
index 758ea5f9a..da0e8ed59 100644
--- a/nop-demo/nop-quarkus-demo/src/main/resources/nop-vfs-index.txt
+++ b/nop-demo/nop-quarkus-demo/src/main/resources/nop-vfs-index.txt
@@ -196,7 +196,7 @@
/nop/autoconfig/nop-rule-core.beans
/nop/autoconfig/nop-web.beans
/nop/biz/beans/biz-defaults.beans.xml
-/nop/biz/xlib/biz-gen.xlib
+/nop/core/xlib/biz-gen.xlib
/nop/biz/xlib/bo.xlib
/nop/codegen/xlib/gen.xlib
/nop/codegen/xlib/meta-gen.xlib
diff --git a/nop-demo/nop-spring-demo/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-spring-demo/reflect-config.json b/nop-demo/nop-spring-demo/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-spring-demo/reflect-config.json
index 916780492..429e5e7a5 100644
--- a/nop-demo/nop-spring-demo/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-spring-demo/reflect-config.json
+++ b/nop-demo/nop-spring-demo/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-spring-demo/reflect-config.json
@@ -1855,6 +1855,11 @@
"allPublicConstructors": true,
"allPublicMethods": true,
"fields": [
+ {
+ "allowUnsafeAccess": false,
+ "allowWrite": false,
+ "name": "DUMMY_TAG_NAME"
+ },
{
"allowUnsafeAccess": false,
"allowWrite": false,
@@ -2109,6 +2114,11 @@
"allowUnsafeAccess": false,
"allowWrite": false,
"name": "FILTER_OP_STARTS_WITH"
+ },
+ {
+ "allowUnsafeAccess": false,
+ "allowWrite": false,
+ "name": "FILTER_TAG_NAME"
}
],
"methods": [],
@@ -3056,6 +3066,12 @@
"boolean"
]
},
+ {
+ "name": "fromTreeBean",
+ "parameterTypes": [
+ "io.nop.api.core.beans.ITreeBean"
+ ]
+ },
{
"name": "getName",
"parameterTypes": []
@@ -3153,6 +3169,18 @@
"java.util.List"
]
},
+ {
+ "name": "addOrderByNode",
+ "parameterTypes": [
+ "io.nop.api.core.beans.ITreeBean"
+ ]
+ },
+ {
+ "name": "addOrderField",
+ "parameterTypes": [
+ "io.nop.api.core.beans.query.OrderFieldBean"
+ ]
+ },
{
"name": "addOrderField",
"parameterTypes": [
@@ -13132,6 +13160,24 @@
"io.nop.core.context.IServiceContext"
]
},
+ {
+ "name": "doFindFirst",
+ "parameterTypes": [
+ "io.nop.api.core.beans.query.QueryBean",
+ "java.util.function.BiConsumer",
+ "io.nop.api.core.beans.FieldSelectionBean",
+ "io.nop.core.context.IServiceContext"
+ ]
+ },
+ {
+ "name": "doFindList",
+ "parameterTypes": [
+ "io.nop.api.core.beans.query.QueryBean",
+ "java.util.function.BiConsumer",
+ "io.nop.api.core.beans.FieldSelectionBean",
+ "io.nop.core.context.IServiceContext"
+ ]
+ },
{
"name": "doFindPage",
"parameterTypes": [
@@ -13157,6 +13203,15 @@
"io.nop.core.context.IServiceContext"
]
},
+ {
+ "name": "doUpdate",
+ "parameterTypes": [
+ "java.util.Map",
+ "io.nop.api.core.beans.FieldSelectionBean",
+ "java.util.function.BiConsumer",
+ "io.nop.core.context.IServiceContext"
+ ]
+ },
{
"name": "doUpdate",
"parameterTypes": [
@@ -13181,6 +13236,14 @@
"io.nop.core.context.IServiceContext"
]
},
+ {
+ "name": "findList",
+ "parameterTypes": [
+ "io.nop.api.core.beans.query.QueryBean",
+ "io.nop.api.core.beans.FieldSelectionBean",
+ "io.nop.core.context.IServiceContext"
+ ]
+ },
{
"name": "findList",
"parameterTypes": [
@@ -42298,6 +42361,13 @@
"io.nop.core.lang.eval.IEvalFunction"
]
},
+ {
+ "name": "functional",
+ "parameterTypes": [
+ "io.nop.core.lang.eval.IEvalScope",
+ "io.nop.core.lang.eval.IEvalFunction"
+ ]
+ },
{
"name": "g_current_locale",
"parameterTypes": []
diff --git a/nop-demo/nop-spring-demo/src/main/resources/nop-vfs-index.txt b/nop-demo/nop-spring-demo/src/main/resources/nop-vfs-index.txt
index 18501882d..40ca7cdb2 100644
--- a/nop-demo/nop-spring-demo/src/main/resources/nop-vfs-index.txt
+++ b/nop-demo/nop-spring-demo/src/main/resources/nop-vfs-index.txt
@@ -174,6 +174,7 @@
/nop/auth/sql/NopAuthExtLogin.sql-lib.xml
/nop/auth/sql/NopAuthRole.sql-lib.xml
/nop/auth/sql/NopAuthUser.sql-lib.xml
+/nop/auth/xlib/auth-gen.xlib
/nop/autoconfig/nop-auth-core.beans
/nop/autoconfig/nop-biz.beans
/nop/autoconfig/nop-dao.beans
@@ -182,7 +183,7 @@
/nop/autoconfig/nop-report.beans
/nop/autoconfig/nop-web.beans
/nop/biz/beans/biz-defaults.beans.xml
-/nop/biz/xlib/biz-gen.xlib
+/nop/biz/xlib/bo.xlib
/nop/codegen/xlib/gen.xlib
/nop/codegen/xlib/meta-gen.xlib
/nop/codegen/xlib/run.xlib
@@ -202,6 +203,7 @@
/nop/core/registry/xtask.register-model.xml
/nop/core/xlib/biz!check.xlib
/nop/core/xlib/biz!filter.xlib
+/nop/core/xlib/biz-gen.xlib
/nop/core/xlib/biz.xlib
/nop/core/xlib/file.xlib
/nop/core/xlib/filter.xlib
@@ -490,6 +492,7 @@
/nop/templates/meta-delta/@init.xrun
/nop/templates/meta-delta/src/main/resources/_vfs/_delta/{deltaDir}/gen-meta.xrun
/nop/templates/meta/@init.xrun
+/nop/templates/meta/src/main/resources/_vfs/{moduleId}/_module
/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{deltaDir}/_{entityModel.shortName}.xmeta.xgen
/nop/templates/meta/src/main/resources/_vfs/{moduleId}/model/{!entityModel.notGenCode}{entityModel.shortName}/{entityModel.shortName}.xmeta.xgen
/nop/templates/orm-dao/@init.xrun
@@ -533,16 +536,18 @@
/nop/templates/orm/{appName}-dao/src/main/java/{basePackagePath}/dao/_{moduleClassPrefix}DaoConstants.java.xgen
/nop/templates/orm/{appName}-dao/src/main/java/{basePackagePath}/dao/mapper/{!!entityModel.tagSet.@mapper}{entityModel.shortName}Mapper.java.xgen
/nop/templates/orm/{appName}-dao/src/main/java/{basePackagePath}/dao/{moduleClassPrefix}DaoConstants.java.xgen
-/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/_module
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/beans/_dao.beans.xml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/orm/app.orm.xml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/orm/{deltaDir}/_app.orm.xml.xgen
/nop/templates/orm/{appName}-dao/src/main/resources/_vfs/{moduleId}/sql/{!!entityModel.tagSet.@mapper}{entityModel.shortName}.sql-lib.xml.xgen
+/nop/templates/orm/{appName}-meta/pom.xml.xgen
+/nop/templates/orm/{appName}-meta/postcompile/gen-i18n.xgen.xgen
+/nop/templates/orm/{appName}-meta/precompile/gen-meta.xgen.xgen
+/nop/templates/orm/{appName}-meta/src/main/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
+/nop/templates/orm/{appName}-meta/src/resources/_vfs/dict/{dict.name}.dict.yaml.xgen
/nop/templates/orm/{appName}-service/impl.xrun
/nop/templates/orm/{appName}-service/pom.xml.xgen
-/nop/templates/orm/{appName}-service/postcompile/gen-i18n.xgen.xgen
-/nop/templates/orm/{appName}-service/precompile/gen-meta.xgen.xgen
/nop/templates/orm/{appName}-service/src/main/java/{basePackagePath}/service/entity/{!entityModel.notGenCode}{entityModel.shortName}BizModel.java.xgen
/nop/templates/orm/{appName}-service/src/main/java/{basePackagePath}/service/{moduleClassPrefix}Configs.java.xgen
/nop/templates/orm/{appName}-service/src/main/java/{basePackagePath}/service/{moduleClassPrefix}Constants.java.xgen
diff --git a/nop-file/nop-file-service/_templates/_NopFileRecord.json b/nop-file/nop-file-meta/_templates/_NopFileRecord.json
similarity index 100%
rename from nop-file/nop-file-service/_templates/_NopFileRecord.json
rename to nop-file/nop-file-meta/_templates/_NopFileRecord.json
diff --git a/nop-file/nop-file-meta/pom.xml b/nop-file/nop-file-meta/pom.xml
new file mode 100644
index 000000000..b3fd3dfb4
--- /dev/null
+++ b/nop-file/nop-file-meta/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ nop-file
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-file-meta
+
+
+
+ nop-file-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-file-dao
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-file/nop-file-service/postcompile/gen-i18n.xgen b/nop-file/nop-file-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-file/nop-file-service/postcompile/gen-i18n.xgen
rename to nop-file/nop-file-meta/postcompile/gen-i18n.xgen
diff --git a/nop-file/nop-file-service/precompile/gen-meta.xgen b/nop-file/nop-file-meta/precompile/gen-meta.xgen
similarity index 100%
rename from nop-file/nop-file-service/precompile/gen-meta.xgen
rename to nop-file/nop-file-meta/precompile/gen-meta.xgen
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/i18n/en/_nop-file.i18n.yaml b/nop-file/nop-file-meta/src/main/resources/_vfs/i18n/en/_nop-file.i18n.yaml
similarity index 100%
rename from nop-file/nop-file-service/src/main/resources/_vfs/i18n/en/_nop-file.i18n.yaml
rename to nop-file/nop-file-meta/src/main/resources/_vfs/i18n/en/_nop-file.i18n.yaml
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/i18n/en/nop-file.i18n.yaml b/nop-file/nop-file-meta/src/main/resources/_vfs/i18n/en/nop-file.i18n.yaml
similarity index 100%
rename from nop-file/nop-file-service/src/main/resources/_vfs/i18n/en/nop-file.i18n.yaml
rename to nop-file/nop-file-meta/src/main/resources/_vfs/i18n/en/nop-file.i18n.yaml
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/i18n/zh-CN/_nop-file.i18n.yaml b/nop-file/nop-file-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-file.i18n.yaml
similarity index 100%
rename from nop-file/nop-file-service/src/main/resources/_vfs/i18n/zh-CN/_nop-file.i18n.yaml
rename to nop-file/nop-file-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-file.i18n.yaml
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/i18n/zh-CN/nop-file.i18n.yaml b/nop-file/nop-file-meta/src/main/resources/_vfs/i18n/zh-CN/nop-file.i18n.yaml
similarity index 100%
rename from nop-file/nop-file-service/src/main/resources/_vfs/i18n/zh-CN/nop-file.i18n.yaml
rename to nop-file/nop-file-meta/src/main/resources/_vfs/i18n/zh-CN/nop-file.i18n.yaml
diff --git a/nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/_module b/nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/NopFileRecord.xmeta b/nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/model/NopFileRecord/NopFileRecord.xmeta
similarity index 100%
rename from nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/NopFileRecord.xmeta
rename to nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/model/NopFileRecord/NopFileRecord.xmeta
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xmeta b/nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xmeta
similarity index 98%
rename from nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xmeta
rename to nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xmeta
index d806ed68d..36c340655 100644
--- a/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xmeta
+++ b/nop-file/nop-file-meta/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xmeta
@@ -8,7 +8,7 @@
fileId
-
+
diff --git a/nop-file/nop-file-service/pom.xml b/nop-file/nop-file-service/pom.xml
index 34848cd6c..63e7d7fff 100644
--- a/nop-file/nop-file-service/pom.xml
+++ b/nop-file/nop-file-service/pom.xml
@@ -16,8 +16,13 @@
nop-file-dao
io.github.entropy-cloud
- 2.0.0-SNAPSHOT
+
+
+ io.github.entropy-cloud
+ nop-file-meta
+
+
nop-file-codegen
io.github.entropy-cloud
diff --git a/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xbiz b/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xbiz
+++ b/nop-file/nop-file-service/src/main/resources/_vfs/nop/file/model/NopFileRecord/_NopFileRecord.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-file/pom.xml b/nop-file/pom.xml
index 3bf001caf..fdefef1d6 100644
--- a/nop-file/pom.xml
+++ b/nop-file/pom.xml
@@ -24,5 +24,6 @@
nop-file-app
nop-file-quarkus
nop-file-spring
+ nop-file-meta
\ No newline at end of file
diff --git a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/GraphQLConstants.java b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/GraphQLConstants.java
index 74dab4736..cbce06a07 100644
--- a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/GraphQLConstants.java
+++ b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/GraphQLConstants.java
@@ -27,6 +27,10 @@ public interface GraphQLConstants {
String ATTR_GRAPHQL_CONNECTION_PROP = "graphql:connectionProp";
+ String ATTR_GRAPHQL_FIND_FIRST = "graphql:findFirst";
+
+ String ATTR_GRAPHQL_TYPE = "graphql:type";
+
String ATTR_GRAPHQL_INPUT_TYPE = "graphql:inputType";
String TAG_GRAPHQL_FILTER = "graphql:filter";
@@ -77,7 +81,7 @@ public interface GraphQLConstants {
String PAGE_BEAN_PREFIX = "PageBean_";
- String GRAPAHQL_CONNECTION_PREFIX = "GraphQLConnection_";
+ String GRAPHQL_CONNECTION_PREFIX = "GraphQLConnection_";
String PAGE_BEAN = "PageBean";
String GRAPHQL_CONNECTION = "GraphQLConnection";
diff --git a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/parse/GraphQLDocumentParser.java b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/parse/GraphQLDocumentParser.java
index 6a001d3cb..ab12253da 100644
--- a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/parse/GraphQLDocumentParser.java
+++ b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/parse/GraphQLDocumentParser.java
@@ -416,6 +416,10 @@ private GraphQLVariableDefinition variableDefinition(TextScanner sc) {
return var;
}
+ public GraphQLType parseType(SourceLocation loc, String type) {
+ return type(TextScanner.fromString(loc, type));
+ }
+
private GraphQLType type(TextScanner sc) {
SourceLocation loc = sc.location();
GraphQLType ret;
diff --git a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/reflection/ReflectionGraphQLTypeFactory.java b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/reflection/ReflectionGraphQLTypeFactory.java
index 3174cd617..7ca4ace01 100644
--- a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/reflection/ReflectionGraphQLTypeFactory.java
+++ b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/reflection/ReflectionGraphQLTypeFactory.java
@@ -198,8 +198,8 @@ public GraphQLObjectDefinition buildDef(Class> clazz, TypeRegistry registry) {
return typeDef;
}
- GraphQLType buildPageBeanType(GraphQLType type, TypeRegistry registry,
- Map creatingTypes, boolean input) {
+ public GraphQLType buildPageBeanType(GraphQLType type, TypeRegistry registry,
+ Map creatingTypes, boolean input) {
String pageBeanTypeName = GraphQLConstants.PAGE_BEAN_PREFIX + type;
GraphQLTypeDefinition objDef = creatingTypes.get(pageBeanTypeName);
if (objDef == null) {
@@ -227,9 +227,9 @@ GraphQLObjectDefinition buildPageBeanType(String typeName, GraphQLType type, Typ
return objDef;
}
- GraphQLType buildConnectionType(GraphQLType type, TypeRegistry registry,
- Map creatingTypes, boolean input) {
- String retTypeName = GraphQLConstants.GRAPAHQL_CONNECTION_PREFIX + type;
+ public GraphQLType buildConnectionType(GraphQLType type, TypeRegistry registry,
+ Map creatingTypes, boolean input) {
+ String retTypeName = GraphQLConstants.GRAPHQL_CONNECTION_PREFIX + type;
GraphQLTypeDefinition objDef = creatingTypes.get(retTypeName);
if (objDef == null) {
objDef = registry.getType(retTypeName);
diff --git a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/TypeRegistry.java b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/TypeRegistry.java
index 62561705e..f34e2480c 100644
--- a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/TypeRegistry.java
+++ b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/TypeRegistry.java
@@ -8,14 +8,22 @@
package io.nop.graphql.core.schema;
import io.nop.api.core.exceptions.NopException;
+import io.nop.api.core.util.Guard;
+import io.nop.graphql.core.GraphQLConstants;
+import io.nop.graphql.core.ast.GraphQLASTVisitor;
import io.nop.graphql.core.ast.GraphQLDefinition;
import io.nop.graphql.core.ast.GraphQLInputDefinition;
+import io.nop.graphql.core.ast.GraphQLNamedType;
import io.nop.graphql.core.ast.GraphQLObjectDefinition;
+import io.nop.graphql.core.ast.GraphQLType;
import io.nop.graphql.core.ast.GraphQLTypeDefinition;
import io.nop.graphql.core.ast.GraphQLUnionTypeDefinition;
+import io.nop.graphql.core.reflection.ReflectionGraphQLTypeFactory;
+import io.nop.graphql.core.utils.GraphQLTypeHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
@@ -116,4 +124,25 @@ public GraphQLTypeDefinition normalizeType(GraphQLTypeDefinition def) {
throw new IllegalArgumentException("unsupported type:" + def);
}
}
+
+ public GraphQLType processSpecialType(GraphQLType type) {
+ new GraphQLASTVisitor() {
+ @Override
+ public void visitGraphQLNamedType(GraphQLNamedType node) {
+ String name = node.getNamedTypeName();
+ if (name.startsWith(GraphQLConstants.GRAPHQL_CONNECTION_PREFIX)) {
+ String typeName = name.substring(GraphQLConstants.GRAPHQL_CONNECTION_PREFIX.length());
+ Guard.notEmpty(typeName, "typeName");
+ ReflectionGraphQLTypeFactory.INSTANCE.buildConnectionType(GraphQLTypeHelper.namedType(typeName),
+ TypeRegistry.this, new HashMap<>(), false);
+ } else if (name.startsWith(GraphQLConstants.PAGE_BEAN_PREFIX)) {
+ String typeName = name.substring(GraphQLConstants.PAGE_BEAN_PREFIX.length());
+ Guard.notEmpty(typeName, "typeName");
+ ReflectionGraphQLTypeFactory.INSTANCE.buildPageBeanType(GraphQLTypeHelper.namedType(typeName),
+ TypeRegistry.this, new HashMap<>(), false);
+ }
+ }
+ }.visit(type);
+ return type;
+ }
}
\ No newline at end of file
diff --git a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/meta/ObjMetaToGraphQLDefinition.java b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/meta/ObjMetaToGraphQLDefinition.java
index 6e8b34d3d..acbfcb945 100644
--- a/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/meta/ObjMetaToGraphQLDefinition.java
+++ b/nop-graphql/nop-graphql-core/src/main/java/io/nop/graphql/core/schema/meta/ObjMetaToGraphQLDefinition.java
@@ -23,6 +23,7 @@
import io.nop.graphql.core.ast.GraphQLTypeDefinition;
import io.nop.graphql.core.ast.GraphQLUnionTypeDefinition;
import io.nop.graphql.core.fetcher.PropGetterFetcher;
+import io.nop.graphql.core.parse.GraphQLDocumentParser;
import io.nop.graphql.core.reflection.ReflectionGraphQLTypeFactory;
import io.nop.graphql.core.schema.GraphQLScalarType;
import io.nop.graphql.core.schema.TypeRegistry;
@@ -90,7 +91,7 @@ private GraphQLFieldDefinition toFieldDefinition(String thisObjName, IObjPropMet
if (propMeta.getDescription() == null)
field.setDescription(propMeta.getDisplayName());
- field.setType(toGraphQLType(thisObjName, propMeta.getSchema(), propMeta.isMandatory(), typeRegistry, input));
+ field.setType(toGraphQLType(thisObjName, propMeta, propMeta.isMandatory(), typeRegistry));
String inputType = ConvertHelper.toString(propMeta.prop_get(GraphQLConstants.ATTR_GRAPHQL_INPUT_TYPE));
if (!StringHelper.isEmpty(inputType)) {
@@ -141,6 +142,16 @@ private GraphQLArgumentDefinition buildArg(ObjPropArgModel propArg, String thisO
return arg;
}
+ public GraphQLType toGraphQLType(String thisObjName, IObjPropMeta propMeta, boolean mandatory,
+ TypeRegistry typeRegistry) {
+ String graphqlType = (String) propMeta.prop_get(GraphQLConstants.ATTR_GRAPHQL_TYPE);
+ if (!StringHelper.isEmpty(graphqlType)) {
+ GraphQLType type = new GraphQLDocumentParser().parseType(propMeta.getLocation(), graphqlType);
+ return typeRegistry.processSpecialType(type);
+ }
+ return toGraphQLType(thisObjName, propMeta.getSchema(), mandatory, typeRegistry, false);
+ }
+
public GraphQLType toGraphQLType(String thisObjName, ISchema schema, boolean mandatory,
TypeRegistry typeRegistry, boolean input) {
if (schema == null)
diff --git a/nop-graphql/nop-graphql-orm/src/main/java/io/nop/graphql/orm/OrmFetcherBuilder.java b/nop-graphql/nop-graphql-orm/src/main/java/io/nop/graphql/orm/OrmFetcherBuilder.java
index 57a25f20b..11bed04de 100644
--- a/nop-graphql/nop-graphql-orm/src/main/java/io/nop/graphql/orm/OrmFetcherBuilder.java
+++ b/nop-graphql/nop-graphql-orm/src/main/java/io/nop/graphql/orm/OrmFetcherBuilder.java
@@ -9,7 +9,6 @@
import io.nop.api.core.beans.FilterBeans;
import io.nop.api.core.beans.TreeBean;
-import io.nop.api.core.beans.graphql.GraphQLConnection;
import io.nop.api.core.beans.query.OrderFieldBean;
import io.nop.api.core.beans.query.QueryBean;
import io.nop.api.core.convert.ConvertHelper;
@@ -18,7 +17,6 @@
import io.nop.api.core.exceptions.NopException;
import io.nop.commons.type.StdDataType;
import io.nop.commons.util.StringHelper;
-import io.nop.core.type.IGenericType;
import io.nop.dao.api.IDaoProvider;
import io.nop.dao.api.IEntityDao;
import io.nop.graphql.core.GraphQLConstants;
@@ -47,7 +45,6 @@
import io.nop.orm.model.IEntityRelationModel;
import io.nop.xlang.xdsl.ExtPropsGetter;
import io.nop.xlang.xmeta.IObjPropMeta;
-import io.nop.xlang.xmeta.ISchema;
import java.util.ArrayList;
import java.util.List;
@@ -148,7 +145,16 @@ IDataFetcher buildConnectionFetcher(String objType, IEntityRelationModel propMod
IEntityDao dao = daoProvider.dao(propModel.getRefEntityName());
int maxFetchSize = ConvertHelper.toPrimitiveInt(propMeta.prop_get(GraphQLConstants.ATTR_GRAPHQL_MAX_FETCH_SIZE),
-1, NopException::new);
- String bizObjName = propMeta.getBizObjName();
+
+ String graphqlType = (String) propModel.prop_get(GraphQLConstants.ATTR_GRAPHQL_TYPE);
+ String bizObjName = null;
+ if (!StringHelper.isEmpty(graphqlType)) {
+ if (graphqlType.startsWith(GraphQLConstants.GRAPHQL_CONNECTION_PREFIX)) {
+ throw new IllegalArgumentException("nop.err.graphql.invalid-graphql-connection-type");
+ }
+ bizObjName = graphqlType.substring(GraphQLConstants.GRAPHQL_CONNECTION_PREFIX.length());
+ }
+
if (bizObjName == null) {
bizObjName = StringHelper.simpleClassName(propModel.getRefEntityName());
}
@@ -185,11 +191,7 @@ private TreeBean buildRelationFilter(IEntityRelationModel propModel) {
}
boolean isFindFirst(IObjPropMeta propMeta) {
- ISchema schema = propMeta.getSchema();
- if (schema == null)
- return false;
- IGenericType type = schema.getType();
- return type.getRawClass() != GraphQLConnection.class;
+ return ConvertHelper.toPrimitiveBoolean(propMeta.prop_get(GraphQLConstants.ATTR_GRAPHQL_FIND_FIRST));
}
IDataFetcher buildPropFetcher(Set dependsOn, String propName) {
diff --git a/nop-job/model/nop-job.orm.xlsx b/nop-job/model/nop-job.orm.xlsx
index ba9e55b56..b665ed178 100644
Binary files a/nop-job/model/nop-job.orm.xlsx and b/nop-job/model/nop-job.orm.xlsx differ
diff --git a/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/jni-config.json b/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/jni-config.json
new file mode 100644
index 000000000..dd55f5bac
--- /dev/null
+++ b/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/jni-config.json
@@ -0,0 +1,43 @@
+[
+ {
+ "name": "java.lang.ClassLoader",
+ "methods": [
+ {
+ "name": "getPlatformClassLoader",
+ "parameterTypes": []
+ }
+ ]
+ },
+ {
+ "name": "java.lang.NoSuchMethodError"
+ },
+ {
+ "name": "sun.management.VMManagementImpl",
+ "fields": [
+ {
+ "name": "compTimeMonitoringSupport"
+ },
+ {
+ "name": "currentThreadCpuTimeSupport"
+ },
+ {
+ "name": "objectMonitorUsageSupport"
+ },
+ {
+ "name": "otherThreadCpuTimeSupport"
+ },
+ {
+ "name": "remoteDiagnosticCommandsSupport"
+ },
+ {
+ "name": "synchronizerUsageSupport"
+ },
+ {
+ "name": "threadAllocatedMemorySupport"
+ },
+ {
+ "name": "threadContentionMonitoringSupport"
+ }
+ ]
+ }
+]
diff --git a/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/native-image.properties b/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/native-image.properties
new file mode 100644
index 000000000..2e39c02f2
--- /dev/null
+++ b/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/native-image.properties
@@ -0,0 +1,11 @@
+Args=--enable-http \
+--enable-https \
+--enable-all-security-services \
+--verbose \
+-H:EnableURLProtocols=http,https \
+--report-unsupported-elements-at-runtime \
+-H:ReflectionConfigurationResources=${.}/reflect-config.json \
+-H:JNIConfigurationResources=${.}/jni-config.json \
+-H:ResourceConfigurationResources=${.}/resource-config.json \
+-H:+TraceServiceLoaderFeature \
+--trace-object-instantiation=java.security.SecureRandom
diff --git a/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/resource-config.json b/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/resource-config.json
new file mode 100644
index 000000000..faa24b86b
--- /dev/null
+++ b/nop-job/nop-job-app/src/main/resources/META-INF/native-image/io.github.entropy-cloud/nop-job-app/resource-config.json
@@ -0,0 +1,34 @@
+{
+ "resources": [
+ {
+ "pattern": ".*\\.xml$"
+ },
+ {
+ "pattern": ".*\\.yaml$"
+ },
+ {
+ "pattern": ".*\\.json5$"
+ },
+ {
+ "pattern": ".*\\.json$"
+ },
+ {
+ "pattern": ".*\\.properties$"
+ },
+ {
+ "pattern": ".*\\.xdef$"
+ },
+ {
+ "pattern": ".*\\.txt$"
+ },
+ {
+ "pattern": "META-INF/services/*.*"
+ },
+ {
+ "pattern": "_vfs/*.*"
+ },
+ {
+ "pattern": "_conf/*.*"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/nop-job/nop-job-dao/src/main/resources/_vfs/nop/job/orm/_app.orm.xml b/nop-job/nop-job-dao/src/main/resources/_vfs/nop/job/orm/_app.orm.xml
index 13545267f..40b027e1e 100644
--- a/nop-job/nop-job-dao/src/main/resources/_vfs/nop/job/orm/_app.orm.xml
+++ b/nop-job/nop-job-dao/src/main/resources/_vfs/nop/job/orm/_app.orm.xml
@@ -1,6 +1,6 @@
diff --git a/nop-job/nop-job-service/_templates/_NopJobPlan.json b/nop-job/nop-job-meta/_templates/_NopJobPlan.json
similarity index 100%
rename from nop-job/nop-job-service/_templates/_NopJobPlan.json
rename to nop-job/nop-job-meta/_templates/_NopJobPlan.json
diff --git a/nop-job/nop-job-meta/pom.xml b/nop-job/nop-job-meta/pom.xml
new file mode 100644
index 000000000..511aa580d
--- /dev/null
+++ b/nop-job/nop-job-meta/pom.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ nop-job
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-job-meta
+
+
+
+ nop-job-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-job-dao
+ io.github.entropy-cloud
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-job/nop-job-service/postcompile/gen-i18n.xgen b/nop-job/nop-job-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-job/nop-job-service/postcompile/gen-i18n.xgen
rename to nop-job/nop-job-meta/postcompile/gen-i18n.xgen
diff --git a/nop-job/nop-job-service/precompile/gen-meta.xgen b/nop-job/nop-job-meta/precompile/gen-meta.xgen
similarity index 61%
rename from nop-job/nop-job-service/precompile/gen-meta.xgen
rename to nop-job/nop-job-meta/precompile/gen-meta.xgen
index e2e44e15b..d53cb27a6 100644
--- a/nop-job/nop-job-service/precompile/gen-meta.xgen
+++ b/nop-job/nop-job-meta/precompile/gen-meta.xgen
@@ -1,5 +1,4 @@
codeGenerator.renderModel('/nop/job/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
-codeGenerator.withTplDir('/nop/templates/i18n').execute("/",{ moduleId: "nop/job" },$scope);
\ No newline at end of file
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/i18n/en/_nop-job.i18n.yaml b/nop-job/nop-job-meta/src/main/resources/_vfs/i18n/en/_nop-job.i18n.yaml
similarity index 100%
rename from nop-job/nop-job-service/src/main/resources/_vfs/i18n/en/_nop-job.i18n.yaml
rename to nop-job/nop-job-meta/src/main/resources/_vfs/i18n/en/_nop-job.i18n.yaml
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/i18n/en/nop-job.i18n.yaml b/nop-job/nop-job-meta/src/main/resources/_vfs/i18n/en/nop-job.i18n.yaml
similarity index 100%
rename from nop-job/nop-job-service/src/main/resources/_vfs/i18n/en/nop-job.i18n.yaml
rename to nop-job/nop-job-meta/src/main/resources/_vfs/i18n/en/nop-job.i18n.yaml
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/i18n/zh-CN/_nop-job.i18n.yaml b/nop-job/nop-job-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-job.i18n.yaml
similarity index 100%
rename from nop-job/nop-job-service/src/main/resources/_vfs/i18n/zh-CN/_nop-job.i18n.yaml
rename to nop-job/nop-job-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-job.i18n.yaml
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/i18n/zh-CN/nop-job.i18n.yaml b/nop-job/nop-job-meta/src/main/resources/_vfs/i18n/zh-CN/nop-job.i18n.yaml
similarity index 100%
rename from nop-job/nop-job-service/src/main/resources/_vfs/i18n/zh-CN/nop-job.i18n.yaml
rename to nop-job/nop-job-meta/src/main/resources/_vfs/i18n/zh-CN/nop-job.i18n.yaml
diff --git a/nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/_module b/nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/NopJobPlan.xmeta b/nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/model/NopJobPlan/NopJobPlan.xmeta
similarity index 100%
rename from nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/NopJobPlan.xmeta
rename to nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/model/NopJobPlan/NopJobPlan.xmeta
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xmeta b/nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xmeta
similarity index 98%
rename from nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xmeta
rename to nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xmeta
index 44a0ed052..0f3031da5 100644
--- a/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xmeta
+++ b/nop-job/nop-job-meta/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xmeta
@@ -10,7 +10,7 @@
displayName
-
+
diff --git a/nop-job/nop-job-service/pom.xml b/nop-job/nop-job-service/pom.xml
index 4c1252c75..df8fe76b3 100644
--- a/nop-job/nop-job-service/pom.xml
+++ b/nop-job/nop-job-service/pom.xml
@@ -16,8 +16,13 @@
nop-job-dao
io.github.entropy-cloud
- 2.0.0-SNAPSHOT
+
+
+ nop-job-meta
+ io.github.entropy-cloud
+
+
io.github.entropy-cloud
nop-biz
diff --git a/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xbiz b/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xbiz
+++ b/nop-job/nop-job-service/src/main/resources/_vfs/nop/job/model/NopJobPlan/_NopJobPlan.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-job/pom.xml b/nop-job/pom.xml
index 1bfb75507..af5f4179f 100644
--- a/nop-job/pom.xml
+++ b/nop-job/pom.xml
@@ -28,5 +28,6 @@
nop-job-service
nop-job-web
nop-job-app
+ nop-job-meta
\ No newline at end of file
diff --git a/nop-orm/src/main/java/io/nop/orm/support/OrmFileComponent.java b/nop-orm/src/main/java/io/nop/orm/support/OrmFileComponent.java
index 94f7d6ace..010c43420 100644
--- a/nop-orm/src/main/java/io/nop/orm/support/OrmFileComponent.java
+++ b/nop-orm/src/main/java/io/nop/orm/support/OrmFileComponent.java
@@ -24,6 +24,10 @@ public void onEntityFlush() {
int propId = getColPropId(PROP_NAME_filePath);
if (entity.orm_state().isUnsaved() || entity.orm_propDirty(propId)) {
IBeanProvider beanProvider = entity.orm_enhancer().getBeanProvider();
+ // 有可能没有引入file store支持
+ if(!beanProvider.containsBean(OrmConstants.BEAN_ORM_ENTITY_FILE_STORE))
+ return;
+
IOrmEntityFileStore fileStore = (IOrmEntityFileStore) beanProvider.getBean(OrmConstants.BEAN_ORM_ENTITY_FILE_STORE);
String oldValue = (String) entity.orm_propOldValue(propId);
diff --git a/nop-orm/src/main/java/io/nop/orm/txn/OrmTransactionListener.java b/nop-orm/src/main/java/io/nop/orm/txn/OrmTransactionListener.java
index f1383e572..43adf68e1 100644
--- a/nop-orm/src/main/java/io/nop/orm/txn/OrmTransactionListener.java
+++ b/nop-orm/src/main/java/io/nop/orm/txn/OrmTransactionListener.java
@@ -36,7 +36,8 @@ public void onAfterCompletion(ITransaction txn, CompleteStatus status, Throwable
IOrmSession session = ormTemplate.currentSession();
// 如果执行过程中出现异常,则清空session缓存。这个行为与Spring+Hibernate类似。
// 如果不清空,则可能因为各种原因导致session中的数据与数据库中的数据不一致,难以处理
- session.clear();
+ if (session != null)
+ session.clear();
}
}
}
\ No newline at end of file
diff --git a/nop-report/nop-report-service/_templates/_NopReportDataset.json b/nop-report/nop-report-meta/_templates/_NopReportDataset.json
similarity index 100%
rename from nop-report/nop-report-service/_templates/_NopReportDataset.json
rename to nop-report/nop-report-meta/_templates/_NopReportDataset.json
diff --git a/nop-report/nop-report-service/_templates/_NopReportDatasetAuth.json b/nop-report/nop-report-meta/_templates/_NopReportDatasetAuth.json
similarity index 100%
rename from nop-report/nop-report-service/_templates/_NopReportDatasetAuth.json
rename to nop-report/nop-report-meta/_templates/_NopReportDatasetAuth.json
diff --git a/nop-report/nop-report-service/_templates/_NopReportDefinition.json b/nop-report/nop-report-meta/_templates/_NopReportDefinition.json
similarity index 100%
rename from nop-report/nop-report-service/_templates/_NopReportDefinition.json
rename to nop-report/nop-report-meta/_templates/_NopReportDefinition.json
diff --git a/nop-report/nop-report-service/_templates/_NopReportResultFile.json b/nop-report/nop-report-meta/_templates/_NopReportResultFile.json
similarity index 100%
rename from nop-report/nop-report-service/_templates/_NopReportResultFile.json
rename to nop-report/nop-report-meta/_templates/_NopReportResultFile.json
diff --git a/nop-report/nop-report-meta/pom.xml b/nop-report/nop-report-meta/pom.xml
new file mode 100644
index 000000000..3cf39e7f4
--- /dev/null
+++ b/nop-report/nop-report-meta/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ nop-report
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-report-meta
+
+
+
+ nop-report-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-report-dao
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-report/nop-report-service/postcompile/gen-i18n.xgen b/nop-report/nop-report-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-report/nop-report-service/postcompile/gen-i18n.xgen
rename to nop-report/nop-report-meta/postcompile/gen-i18n.xgen
diff --git a/nop-report/nop-report-service/precompile/gen-meta.xgen b/nop-report/nop-report-meta/precompile/gen-meta.xgen
similarity index 61%
rename from nop-report/nop-report-service/precompile/gen-meta.xgen
rename to nop-report/nop-report-meta/precompile/gen-meta.xgen
index d4684ab63..2e7aa7929 100644
--- a/nop-report/nop-report-service/precompile/gen-meta.xgen
+++ b/nop-report/nop-report-meta/precompile/gen-meta.xgen
@@ -1,5 +1,4 @@
codeGenerator.renderModel('/nop/report/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
-codeGenerator.withTplDir('/nop/templates/i18n').execute("/",{ moduleId: "nop/report" },$scope);
\ No newline at end of file
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/i18n/en/_nop-report.i18n.yaml b/nop-report/nop-report-meta/src/main/resources/_vfs/i18n/en/_nop-report.i18n.yaml
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/i18n/en/_nop-report.i18n.yaml
rename to nop-report/nop-report-meta/src/main/resources/_vfs/i18n/en/_nop-report.i18n.yaml
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/i18n/en/nop-report.i18n.yaml b/nop-report/nop-report-meta/src/main/resources/_vfs/i18n/en/nop-report.i18n.yaml
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/i18n/en/nop-report.i18n.yaml
rename to nop-report/nop-report-meta/src/main/resources/_vfs/i18n/en/nop-report.i18n.yaml
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/i18n/zh-CN/_nop-report.i18n.yaml b/nop-report/nop-report-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-report.i18n.yaml
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/i18n/zh-CN/_nop-report.i18n.yaml
rename to nop-report/nop-report-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-report.i18n.yaml
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/i18n/zh-CN/nop-report.i18n.yaml b/nop-report/nop-report-meta/src/main/resources/_vfs/i18n/zh-CN/nop-report.i18n.yaml
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/i18n/zh-CN/nop-report.i18n.yaml
rename to nop-report/nop-report-meta/src/main/resources/_vfs/i18n/zh-CN/nop-report.i18n.yaml
diff --git a/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/_module b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/NopReportDataset.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDataset/NopReportDataset.xmeta
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/NopReportDataset.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDataset/NopReportDataset.xmeta
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xmeta
similarity index 98%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xmeta
index 29c67956d..00e73a1b5 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xmeta
+++ b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xmeta
@@ -10,7 +10,7 @@
dsName
-
+
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/NopReportDatasetAuth.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/NopReportDatasetAuth.xmeta
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/NopReportDatasetAuth.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/NopReportDatasetAuth.xmeta
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xmeta
similarity index 97%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xmeta
index cd26067b8..69ed0649c 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xmeta
+++ b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xmeta
@@ -10,7 +10,7 @@
roleId
-
+
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/NopReportDefinition.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDefinition/NopReportDefinition.xmeta
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/NopReportDefinition.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDefinition/NopReportDefinition.xmeta
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xmeta
similarity index 97%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xmeta
index 3e04dcd95..5ef2742b2 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xmeta
+++ b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xmeta
@@ -10,7 +10,7 @@
rptName
-
+
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/NopReportResultFile.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportResultFile/NopReportResultFile.xmeta
similarity index 100%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/NopReportResultFile.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportResultFile/NopReportResultFile.xmeta
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xmeta b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xmeta
similarity index 98%
rename from nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xmeta
rename to nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xmeta
index bd0aaae5c..59317668f 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xmeta
+++ b/nop-report/nop-report-meta/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xmeta
@@ -10,7 +10,7 @@
fileName
-
+
diff --git a/nop-report/nop-report-service/pom.xml b/nop-report/nop-report-service/pom.xml
index 71687b458..f44e3e520 100644
--- a/nop-report/nop-report-service/pom.xml
+++ b/nop-report/nop-report-service/pom.xml
@@ -16,8 +16,13 @@
nop-report-dao
io.github.entropy-cloud
- 2.0.0-SNAPSHOT
+
+
+ nop-report-meta
+ io.github.entropy-cloud
+
+
io.github.entropy-cloud
nop-biz
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xbiz b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xbiz
+++ b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDataset/_NopReportDataset.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xbiz b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xbiz
+++ b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDatasetAuth/_NopReportDatasetAuth.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xbiz b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xbiz
+++ b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportDefinition/_NopReportDefinition.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xbiz b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xbiz
+++ b/nop-report/nop-report-service/src/main/resources/_vfs/nop/report/model/NopReportResultFile/_NopReportResultFile.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-report/pom.xml b/nop-report/pom.xml
index 056552e2d..aabee2d61 100644
--- a/nop-report/pom.xml
+++ b/nop-report/pom.xml
@@ -29,5 +29,6 @@
nop-report-demo
nop-report-spl
nop-report-pdf
+ nop-report-meta
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/_templates/_NopRuleDefinition.json b/nop-rule/nop-rule-meta/_templates/_NopRuleDefinition.json
similarity index 100%
rename from nop-rule/nop-rule-service/_templates/_NopRuleDefinition.json
rename to nop-rule/nop-rule-meta/_templates/_NopRuleDefinition.json
diff --git a/nop-rule/nop-rule-service/_templates/_NopRuleLog.json b/nop-rule/nop-rule-meta/_templates/_NopRuleLog.json
similarity index 100%
rename from nop-rule/nop-rule-service/_templates/_NopRuleLog.json
rename to nop-rule/nop-rule-meta/_templates/_NopRuleLog.json
diff --git a/nop-rule/nop-rule-service/_templates/_NopRuleNode.json b/nop-rule/nop-rule-meta/_templates/_NopRuleNode.json
similarity index 88%
rename from nop-rule/nop-rule-service/_templates/_NopRuleNode.json
rename to nop-rule/nop-rule-meta/_templates/_NopRuleNode.json
index 38540393f..faba4c1c8 100644
--- a/nop-rule/nop-rule-service/_templates/_NopRuleNode.json
+++ b/nop-rule/nop-rule-meta/_templates/_NopRuleNode.json
@@ -19,6 +19,5 @@
"ruleDefinition.displayName": "",
"children": null,
"predicateComponent": null,
- "outputsComponent": null,
- "predicateDisplayText": ""
+ "outputsComponent": null
}
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/_templates/_NopRuleRole.json b/nop-rule/nop-rule-meta/_templates/_NopRuleRole.json
similarity index 100%
rename from nop-rule/nop-rule-service/_templates/_NopRuleRole.json
rename to nop-rule/nop-rule-meta/_templates/_NopRuleRole.json
diff --git a/nop-rule/nop-rule-service/_templates/_RuleKeyBean.json b/nop-rule/nop-rule-meta/_templates/_RuleKeyBean.json
similarity index 100%
rename from nop-rule/nop-rule-service/_templates/_RuleKeyBean.json
rename to nop-rule/nop-rule-meta/_templates/_RuleKeyBean.json
diff --git a/nop-rule/nop-rule-service/_templates/_RuleMetaBean.json b/nop-rule/nop-rule-meta/_templates/_RuleMetaBean.json
similarity index 100%
rename from nop-rule/nop-rule-service/_templates/_RuleMetaBean.json
rename to nop-rule/nop-rule-meta/_templates/_RuleMetaBean.json
diff --git a/nop-rule/nop-rule-service/_templates/_RuleRequestBean.json b/nop-rule/nop-rule-meta/_templates/_RuleRequestBean.json
similarity index 100%
rename from nop-rule/nop-rule-service/_templates/_RuleRequestBean.json
rename to nop-rule/nop-rule-meta/_templates/_RuleRequestBean.json
diff --git a/nop-rule/nop-rule-meta/pom.xml b/nop-rule/nop-rule-meta/pom.xml
new file mode 100644
index 000000000..7ce10b0a0
--- /dev/null
+++ b/nop-rule/nop-rule-meta/pom.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ nop-rule
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-rule-meta
+
+
+
+ nop-rule-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+
+ nop-rule-dao
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/postcompile/gen-i18n.xgen b/nop-rule/nop-rule-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-rule/nop-rule-service/postcompile/gen-i18n.xgen
rename to nop-rule/nop-rule-meta/postcompile/gen-i18n.xgen
diff --git a/nop-rule/nop-rule-service/precompile/gen-meta.xgen b/nop-rule/nop-rule-meta/precompile/gen-meta.xgen
similarity index 61%
rename from nop-rule/nop-rule-service/precompile/gen-meta.xgen
rename to nop-rule/nop-rule-meta/precompile/gen-meta.xgen
index 1e259f129..6f99526fa 100644
--- a/nop-rule/nop-rule-service/precompile/gen-meta.xgen
+++ b/nop-rule/nop-rule-meta/precompile/gen-meta.xgen
@@ -1,5 +1,4 @@
codeGenerator.renderModel('/nop/rule/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
-codeGenerator.withTplDir('/nop/templates/i18n').execute("/",{ moduleId: "nop/rule" },$scope);
\ No newline at end of file
diff --git a/nop-rule/nop-rule-dao/src/main/resources/_vfs/dict/rule/rule-type.dict.yaml b/nop-rule/nop-rule-meta/src/main/resources/_vfs/dict/rule/rule-type.dict.yaml
similarity index 100%
rename from nop-rule/nop-rule-dao/src/main/resources/_vfs/dict/rule/rule-type.dict.yaml
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/dict/rule/rule-type.dict.yaml
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/en/_nop-rule.i18n.yaml b/nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/en/_nop-rule.i18n.yaml
similarity index 98%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/en/_nop-rule.i18n.yaml
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/en/_nop-rule.i18n.yaml
index 2c6c6ab05..dbeb00cd9 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/en/_nop-rule.i18n.yaml
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/en/_nop-rule.i18n.yaml
@@ -61,7 +61,6 @@ prop:
children: Children
predicateComponent: null
outputsComponent: null
- predicateDisplayText: null
NopRuleRole:
sid: SID
ruleId: Rule ID
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/en/nop-rule.i18n.yaml b/nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/en/nop-rule.i18n.yaml
similarity index 100%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/en/nop-rule.i18n.yaml
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/en/nop-rule.i18n.yaml
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/zh-CN/_nop-rule.i18n.yaml b/nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-rule.i18n.yaml
similarity index 98%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/zh-CN/_nop-rule.i18n.yaml
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-rule.i18n.yaml
index 6b0729bf2..89f7688bb 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/zh-CN/_nop-rule.i18n.yaml
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-rule.i18n.yaml
@@ -52,7 +52,6 @@ prop:
parentId: 父ID
predicate: 判断条件
predicateComponent: null
- predicateDisplayText: 判断条件
remark: 备注
ruleDefinition: 规则定义
ruleDefinition.displayName: 规则定义
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/zh-CN/nop-rule.i18n.yaml b/nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/zh-CN/nop-rule.i18n.yaml
similarity index 100%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/i18n/zh-CN/nop-rule.i18n.yaml
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/i18n/zh-CN/nop-rule.i18n.yaml
diff --git a/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/_module b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/NopRuleDefinition.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/NopRuleDefinition.xmeta
similarity index 100%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/NopRuleDefinition.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/NopRuleDefinition.xmeta
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xmeta
similarity index 94%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xmeta
index ef5ec90ca..4484560db 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xmeta
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xmeta
@@ -10,7 +10,7 @@
displayName
-
+
@@ -80,12 +80,16 @@
tagSet="pub,cascade-delete,insertable,updatable" ext:kind="to-many" internal="true"
ext:joinLeftProp="ruleId" ext:joinRightProp="ruleId" ext:joinRightDisplayProp="label" insertable="true"
updatable="true" lazy="true">
-
+
+
+
-
+
+
+
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/NopRuleLog.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleLog/NopRuleLog.xmeta
similarity index 100%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/NopRuleLog.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleLog/NopRuleLog.xmeta
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xmeta
similarity index 93%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xmeta
index 50e7674d8..f8ef28051 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xmeta
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -41,7 +41,7 @@
-
+
diff --git a/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleNode/NopRuleNode.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleNode/NopRuleNode.xmeta
new file mode 100644
index 000000000..aa03dc42f
--- /dev/null
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleNode/NopRuleNode.xmeta
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xmeta
similarity index 94%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xmeta
index 5b42a1328..ef12dba43 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xmeta
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xmeta
@@ -10,7 +10,7 @@
label
-
+
@@ -78,7 +78,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="parentId" ext:joinRightProp="sid" ext:joinRightDisplayProp="label"
insertable="false" updatable="false" lazy="true">
-
+
@@ -88,7 +88,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="ruleId" ext:joinRightProp="ruleId"
ext:joinRightDisplayProp="displayName" insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
@@ -98,7 +98,9 @@
tagSet="pub,cascade-delete,insertable,updatable" ext:kind="to-many" internal="true" ext:joinLeftProp="sid"
ext:joinRightProp="parentId" ext:joinRightDisplayProp="label" insertable="true" updatable="true"
lazy="true">
-
+
+
+
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/NopRuleRole.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleRole/NopRuleRole.xmeta
similarity index 100%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/NopRuleRole.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleRole/NopRuleRole.xmeta
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xmeta b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xmeta
similarity index 95%
rename from nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xmeta
rename to nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xmeta
index 3b7dc222f..95ade0d02 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xmeta
+++ b/nop-rule/nop-rule-meta/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -58,7 +58,7 @@
tagSet="pub,ref-pub,ref-grid,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one"
internal="true" queryable="true" ext:joinLeftProp="ruleId" ext:joinRightProp="ruleId"
ext:joinRightDisplayProp="displayName" insertable="false" updatable="false" mandatory="true" lazy="true">
-
+
diff --git a/nop-rule/nop-rule-meta/src/resources/_vfs/dict/rule/rule-type.dict.yaml b/nop-rule/nop-rule-meta/src/resources/_vfs/dict/rule/rule-type.dict.yaml
new file mode 100644
index 000000000..6b3613bb1
--- /dev/null
+++ b/nop-rule/nop-rule-meta/src/resources/_vfs/dict/rule/rule-type.dict.yaml
@@ -0,0 +1,15 @@
+# __XGEN_FORCE_OVERRIDE__
+label: 规则类型
+locale: zh-CN
+valueType: string
+description:
+options:
+
+ - label: 决策树
+ value: TREE
+ description:
+
+ - label: 决策矩阵
+ value: MATX
+ description:
+
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/_templates/_NopRuleInput.json b/nop-rule/nop-rule-service/_templates/_NopRuleInput.json
deleted file mode 100644
index ac0904bcf..000000000
--- a/nop-rule/nop-rule-service/_templates/_NopRuleInput.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "sid": "",
- "ruleId": "",
- "name": "",
- "isMandatory": false,
- "isComputed": false,
- "displayName": "",
- "defaultValue": "",
- "schema": "",
- "description": "",
- "version": 0,
- "createdBy": "",
- "createTime": "2000-01-01 14:00:00",
- "updatedBy": "",
- "updateTime": "2000-01-01 14:00:00",
- "remark": "",
- "ruleDefinition": null,
- "ruleDefinition.displayName": "",
- "schemaComponent": null
-}
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/_templates/_NopRuleOutput.json b/nop-rule/nop-rule-service/_templates/_NopRuleOutput.json
deleted file mode 100644
index fc0629472..000000000
--- a/nop-rule/nop-rule-service/_templates/_NopRuleOutput.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "sid": "",
- "ruleId": "",
- "name": "",
- "isMandatory": false,
- "aggMethod": "",
- "displayName": "",
- "defaultValue": "",
- "schema": "",
- "description": "",
- "version": 0,
- "createdBy": "",
- "createTime": "2000-01-01 14:00:00",
- "updatedBy": "",
- "updateTime": "2000-01-01 14:00:00",
- "remark": "",
- "ruleDefinition": null,
- "ruleDefinition.displayName": "",
- "schemaComponent": null
-}
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/pom.xml b/nop-rule/nop-rule-service/pom.xml
index 4c42491d6..cf14a6916 100644
--- a/nop-rule/nop-rule-service/pom.xml
+++ b/nop-rule/nop-rule-service/pom.xml
@@ -72,12 +72,12 @@
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xbiz b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xbiz
+++ b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleDefinition/_NopRuleDefinition.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xbiz b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xbiz
+++ b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleLog/_NopRuleLog.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/NopRuleNode.xmeta b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/NopRuleNode.xmeta
deleted file mode 100644
index 9a51b8be5..000000000
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/NopRuleNode.xmeta
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xbiz b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xbiz
+++ b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleNode/_NopRuleNode.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xbiz b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xbiz
+++ b/nop-rule/nop-rule-service/src/main/resources/_vfs/nop/rule/model/NopRuleRole/_NopRuleRole.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-rule/nop-rule-web/pom.xml b/nop-rule/nop-rule-web/pom.xml
index 45c2b0193..09d1ad1b3 100644
--- a/nop-rule/nop-rule-web/pom.xml
+++ b/nop-rule/nop-rule-web/pom.xml
@@ -14,7 +14,7 @@
- nop-rule-service
+ nop-rule-meta
io.github.entropy-cloud
2.0.0-SNAPSHOT
@@ -22,6 +22,17 @@
io.github.entropy-cloud
nop-web
+
+
+ io.github.entropy-cloud
+ nop-auth-web
+
+
+
+ io.github.entropy-cloud
+ nop-auth-service
+
+
io.github.entropy-cloud
nop-ooxml-xlsx
@@ -31,6 +42,13 @@
org.junit.jupiter
junit-jupiter
+
+
+ com.h2database
+ h2
+ test
+
+
io.github.entropy-cloud
nop-autotest-junit
diff --git a/nop-rule/nop-rule-web/src/main/resources/_vfs/nop/rule/pages/NopRuleNode/_gen/_NopRuleNode.view.xml b/nop-rule/nop-rule-web/src/main/resources/_vfs/nop/rule/pages/NopRuleNode/_gen/_NopRuleNode.view.xml
index 0a551d481..a381ae88c 100644
--- a/nop-rule/nop-rule-web/src/main/resources/_vfs/nop/rule/pages/NopRuleNode/_gen/_NopRuleNode.view.xml
+++ b/nop-rule/nop-rule-web/src/main/resources/_vfs/nop/rule/pages/NopRuleNode/_gen/_NopRuleNode.view.xml
@@ -45,9 +45,6 @@
-
-
-
@@ -66,7 +63,6 @@
createTime[创建时间] updatedBy[修改人]
updateTime[修改时间]
remark[备注]
- predicateDisplayText[判断条件]
@@ -80,7 +76,6 @@
parentId[父ID]
isLeaf[是否叶子节点]
remark[备注]
- predicateDisplayText[判断条件]
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/NopSysExtField.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysExtField/NopSysExtField.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/NopSysExtField.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysExtField/NopSysExtField.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xmeta
similarity index 98%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xmeta
index bf5a341c4..92a20a7d7 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xmeta
@@ -8,7 +8,7 @@
entityName,entityId,fieldName
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/NopSysI18n.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysI18n/NopSysI18n.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/NopSysI18n.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysI18n/NopSysI18n.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xmeta
similarity index 97%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xmeta
index caebea53f..710d7a989 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xmeta
@@ -8,7 +8,7 @@
i18nKey,i18nLocale
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/NopSysLock.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysLock/NopSysLock.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/NopSysLock.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysLock/NopSysLock.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xmeta
similarity index 97%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xmeta
index ef5746ef0..e11f390a2 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xmeta
@@ -8,7 +8,7 @@
lockGroup,lockName
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/NopSysMakerCheckerRecord.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/NopSysMakerCheckerRecord.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/NopSysMakerCheckerRecord.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/NopSysMakerCheckerRecord.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xmeta
similarity index 98%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xmeta
index cb9990c11..cccc17cc3 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xmeta
@@ -8,7 +8,7 @@
sid
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/NopSysNoticeTemplate.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/NopSysNoticeTemplate.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/NopSysNoticeTemplate.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/NopSysNoticeTemplate.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xmeta
similarity index 94%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xmeta
index 862d50b5d..69e858676 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xmeta
@@ -10,7 +10,7 @@
name
-
+
@@ -61,8 +61,9 @@
-
+
+
+
\ No newline at end of file
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/NopSysSequence.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysSequence/NopSysSequence.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/NopSysSequence.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysSequence/NopSysSequence.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xmeta
similarity index 98%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xmeta
index 5aa9ded31..adb6ff674 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xmeta
@@ -10,7 +10,7 @@
seqName
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/NopSysUserVariable.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/NopSysUserVariable.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/NopSysUserVariable.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/NopSysUserVariable.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xmeta
similarity index 97%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xmeta
index 5a0b81276..e2a669312 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xmeta
@@ -10,7 +10,7 @@
varName
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/NopSysVariable.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysVariable/NopSysVariable.xmeta
similarity index 100%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/NopSysVariable.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysVariable/NopSysVariable.xmeta
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xmeta b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xmeta
similarity index 97%
rename from nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xmeta
rename to nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xmeta
index 83fcb2a1e..e4450fd33 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xmeta
+++ b/nop-sys/nop-sys-meta/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xmeta
@@ -8,7 +8,7 @@
varName
-
+
diff --git a/nop-sys/nop-sys-service/pom.xml b/nop-sys/nop-sys-service/pom.xml
index e6be0c8af..d01c3b259 100644
--- a/nop-sys/nop-sys-service/pom.xml
+++ b/nop-sys/nop-sys-service/pom.xml
@@ -16,7 +16,11 @@
nop-sys-dao
io.github.entropy-cloud
- 2.0.0-SNAPSHOT
+
+
+
+ nop-sys-meta
+ io.github.entropy-cloud
@@ -65,12 +69,12 @@
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysClusterLeader/_NopSysClusterLeader.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysClusterLeader/_NopSysClusterLeader.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysClusterLeader/_NopSysClusterLeader.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysClusterLeader/_NopSysClusterLeader.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysCodeRule/_NopSysCodeRule.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysCodeRule/_NopSysCodeRule.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysCodeRule/_NopSysCodeRule.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysCodeRule/_NopSysCodeRule.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDict/_NopSysDict.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDict/_NopSysDict.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDict/_NopSysDict.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDict/_NopSysDict.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDictOption/_NopSysDictOption.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDictOption/_NopSysDictOption.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDictOption/_NopSysDictOption.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysDictOption/_NopSysDictOption.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysExtField/_NopSysExtField.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysI18n/_NopSysI18n.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysLock/_NopSysLock.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysMakerCheckerRecord/_NopSysMakerCheckerRecord.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysNoticeTemplate/_NopSysNoticeTemplate.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysSequence/_NopSysSequence.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysUserVariable/_NopSysUserVariable.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xbiz b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xbiz
+++ b/nop-sys/nop-sys-service/src/main/resources/_vfs/nop/sys/model/NopSysVariable/_NopSysVariable.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-sys/pom.xml b/nop-sys/pom.xml
index f9deb865c..6fa617884 100644
--- a/nop-sys/pom.xml
+++ b/nop-sys/pom.xml
@@ -25,5 +25,6 @@
nop-sys-service
nop-sys-web
nop-sys-app
+ nop-sys-meta
\ No newline at end of file
diff --git a/nop-tcc/nop-tcc-service/_templates/_NopTccBranchRecord.json b/nop-tcc/nop-tcc-meta/_templates/_NopTccBranchRecord.json
similarity index 100%
rename from nop-tcc/nop-tcc-service/_templates/_NopTccBranchRecord.json
rename to nop-tcc/nop-tcc-meta/_templates/_NopTccBranchRecord.json
diff --git a/nop-tcc/nop-tcc-service/_templates/_NopTccRecord.json b/nop-tcc/nop-tcc-meta/_templates/_NopTccRecord.json
similarity index 100%
rename from nop-tcc/nop-tcc-service/_templates/_NopTccRecord.json
rename to nop-tcc/nop-tcc-meta/_templates/_NopTccRecord.json
diff --git a/nop-tcc/nop-tcc-meta/pom.xml b/nop-tcc/nop-tcc-meta/pom.xml
new file mode 100644
index 000000000..ab2f0dc5c
--- /dev/null
+++ b/nop-tcc/nop-tcc-meta/pom.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ nop-tcc
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-tcc-meta
+
+
+
+ nop-tcc-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-tcc-dao
+ io.github.entropy-cloud
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-tcc/nop-tcc-service/postcompile/gen-i18n.xgen b/nop-tcc/nop-tcc-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-tcc/nop-tcc-service/postcompile/gen-i18n.xgen
rename to nop-tcc/nop-tcc-meta/postcompile/gen-i18n.xgen
diff --git a/nop-tcc/nop-tcc-service/precompile/gen-meta.xgen b/nop-tcc/nop-tcc-meta/precompile/gen-meta.xgen
similarity index 100%
rename from nop-tcc/nop-tcc-service/precompile/gen-meta.xgen
rename to nop-tcc/nop-tcc-meta/precompile/gen-meta.xgen
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/en/_nop-tcc.i18n.yaml b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/en/_nop-tcc.i18n.yaml
similarity index 100%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/en/_nop-tcc.i18n.yaml
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/en/_nop-tcc.i18n.yaml
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/en/nop-tcc.i18n.yaml b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/en/nop-tcc.i18n.yaml
similarity index 100%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/en/nop-tcc.i18n.yaml
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/en/nop-tcc.i18n.yaml
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/zh-CN/_nop-tcc.i18n.yaml b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-tcc.i18n.yaml
similarity index 100%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/zh-CN/_nop-tcc.i18n.yaml
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-tcc.i18n.yaml
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/zh-CN/nop-tcc.i18n.yaml b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/zh-CN/nop-tcc.i18n.yaml
similarity index 100%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/i18n/zh-CN/nop-tcc.i18n.yaml
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/i18n/zh-CN/nop-tcc.i18n.yaml
diff --git a/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/_module b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/NopTccBranchRecord.xmeta b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/NopTccBranchRecord.xmeta
similarity index 100%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/NopTccBranchRecord.xmeta
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/NopTccBranchRecord.xmeta
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xmeta b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xmeta
similarity index 98%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xmeta
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xmeta
index dbc1e5888..64179d9fa 100644
--- a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xmeta
+++ b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xmeta
@@ -8,7 +8,7 @@
branchId
-
+
@@ -130,7 +130,7 @@
tagSet="pub,ref-pub,ref-cascade-delete,ref-insertable,ref-updatable" ext:kind="to-one" internal="true"
queryable="true" ext:joinLeftProp="txnId" ext:joinRightProp="txnId" insertable="false" updatable="false"
mandatory="true" lazy="true">
-
+
\ No newline at end of file
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/NopTccRecord.xmeta b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/NopTccRecord.xmeta
similarity index 100%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/NopTccRecord.xmeta
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/NopTccRecord.xmeta
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xmeta b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xmeta
similarity index 95%
rename from nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xmeta
rename to nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xmeta
index 18fff75b1..32942e257 100644
--- a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xmeta
+++ b/nop-tcc/nop-tcc-meta/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xmeta
@@ -8,7 +8,7 @@
txnId
-
+
@@ -77,8 +77,9 @@
-
+
+
+
\ No newline at end of file
diff --git a/nop-tcc/nop-tcc-service/pom.xml b/nop-tcc/nop-tcc-service/pom.xml
index bf39fed43..5f4d4a424 100644
--- a/nop-tcc/nop-tcc-service/pom.xml
+++ b/nop-tcc/nop-tcc-service/pom.xml
@@ -16,8 +16,13 @@
nop-tcc-dao
io.github.entropy-cloud
- 2.0.0-SNAPSHOT
+
+
+ nop-tcc-meta
+ io.github.entropy-cloud
+
+
nop-tcc-codegen
io.github.entropy-cloud
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xbiz b/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xbiz
+++ b/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccBranchRecord/_NopTccBranchRecord.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xbiz b/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xbiz
+++ b/nop-tcc/nop-tcc-service/src/main/resources/_vfs/nop/tcc/model/NopTccRecord/_NopTccRecord.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-tcc/pom.xml b/nop-tcc/pom.xml
index 658fb2464..0c9568519 100644
--- a/nop-tcc/pom.xml
+++ b/nop-tcc/pom.xml
@@ -23,5 +23,6 @@
nop-tcc-api
nop-tcc-service
nop-tcc-app
+ nop-tcc-meta
\ No newline at end of file
diff --git a/nop-tool/src/test/java/io/nop/tool/migrate/MigrateXlibTask.java b/nop-tool/src/test/java/io/nop/tool/migrate/MigrateXlibTask.java
deleted file mode 100644
index dba4c79ca..000000000
--- a/nop-tool/src/test/java/io/nop/tool/migrate/MigrateXlibTask.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package io.nop.tool.migrate;
-
-import io.nop.core.lang.xml.XNode;
-import io.nop.core.resource.ResourceHelper;
-import io.nop.core.resource.impl.FileResource;
-import io.nop.tool.refactor.FileExtFilter;
-
-import java.io.File;
-import java.util.List;
-
-public class MigrateXlibTask extends AbstractMigrateTask {
- @Override
- public void migrateFile(File sourceFile, File targetFile) {
- XNode node = this.readXml(sourceFile);
- XNode tags = node.childByTag("tags");
- if (tags == null)
- return;
- tags.forEachChild(tag -> {
- tag.setAttr("name", tag.getTagName());
- tag.setTagName("tag");
- });
-
- List children = tags.detachChildren();
- tags.remove();
- children.forEach(node::appendChild);
-
- ResourceHelper.writeXml(new FileResource(targetFile), node);
- }
-
- public static void main(String[] args) {
- File srcDir = new File("c:/can/nop/nop-entropy");
- File targetDir = new File("nop-tool/target/migrate");
- System.out.println(targetDir.getAbsolutePath());
- new MigrateXlibTask().migrateDir(srcDir, FileExtFilter.forFileExt("xlib"), targetDir);
- }
-}
diff --git a/nop-tool/src/test/java/io/nop/tool/migrate/NopMigrateTask.java b/nop-tool/src/test/java/io/nop/tool/migrate/NopMigrateTask.java
new file mode 100644
index 000000000..925f5892c
--- /dev/null
+++ b/nop-tool/src/test/java/io/nop/tool/migrate/NopMigrateTask.java
@@ -0,0 +1,97 @@
+package io.nop.tool.migrate;
+
+import io.nop.commons.util.FileHelper;
+import io.nop.commons.util.StringHelper;
+
+import java.io.File;
+import java.util.function.Predicate;
+
+public class NopMigrateTask {
+ File rootDir;
+
+ File getDir(String postfix) {
+ File[] subList = rootDir.listFiles();
+ if (subList != null) {
+ for (File sub : subList) {
+ if (sub.getName().endsWith(postfix))
+ return sub;
+ }
+ }
+ return null;
+ }
+
+ private void moveToDir(File srcDir, File targetDir, Predicate filter) {
+ File[] children = srcDir.listFiles();
+ if (children != null) {
+ for (File child : children) {
+ File targetChild = new File(targetDir, child.getName());
+ if (child.isDirectory()) {
+ moveToDir(child, targetChild, filter);
+ } else {
+ if (filter.test(child)) {
+ if (!child.renameTo(targetChild)) {
+ FileHelper.copyFile(child, targetChild);
+ child.delete();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 讲meta文件从service模块移动到专门的meta模块中,便于直接引用meta文件
+ */
+ public void fix20230819() {
+ File serviceDir = getDir("-service");
+ if (serviceDir != null) {
+ FileHelper.deleteAll(new File(serviceDir, "_templates"));
+ FileHelper.deleteAll(new File(serviceDir, "postcompile"));
+ FileHelper.deleteAll(new File(serviceDir, "precompile"));
+
+ String appName = StringHelper.removeTail(serviceDir.getName(), "-service");
+ moveToDir(serviceDir, new File(rootDir, appName + "-meta"), file -> {
+ if (!file.getAbsolutePath().replace('\\', '/').contains("/src/main/resources"))
+ return false;
+ if (file.getName().endsWith(".xmeta"))
+ return true;
+ if (file.getName().endsWith(".dict.yaml"))
+ return true;
+ if (file.getName().endsWith(".i18n.yaml"))
+ return true;
+ return false;
+ });
+ }
+
+ File daoDir = getDir("-dao");
+ if (daoDir != null) {
+ String appName = StringHelper.removeTail(daoDir.getName(), "-dao");
+ moveToDir(daoDir, new File(rootDir, appName + "-meta"), file -> {
+ if (!file.getAbsolutePath().replace('\\', '/').contains("/src/main/resources"))
+ return false;
+ if (file.getName().endsWith(".dict.yaml"))
+ return true;
+ return false;
+ });
+ }
+ }
+
+ public static void main(String[] args) {
+ NopMigrateTask task = new NopMigrateTask();
+
+// File base = new File("c:/can/nop/nop-entropy");
+// String[] modules = new String[]{
+// "nop-auth", "nop-sys", "nop-wf", "nop-rule", "nop-task",
+// "nop-tcc", "nop-report", "nop-job", "nop-file",
+// "nop-batch"
+// };
+//
+// for (String module : modules) {
+// task.rootDir = new File(base, module);
+// task.fix20230819();
+// }
+
+ task.rootDir = new File("c:/can/nop/nop-app-mall");
+ task.fix20230819();
+ }
+}
diff --git a/nop-tool/src/test/resources/data/test.meta.xml b/nop-tool/src/test/resources/data/test.meta.xml
index 024e086b5..3eeccc273 100644
--- a/nop-tool/src/test/resources/data/test.meta.xml
+++ b/nop-tool/src/test/resources/data/test.meta.xml
@@ -10,7 +10,7 @@
userName
-
+
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfAction.json b/nop-wf/nop-wf-meta/_templates/_NopWfAction.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfAction.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfAction.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfDefinition.json b/nop-wf/nop-wf-meta/_templates/_NopWfDefinition.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfDefinition.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfDefinition.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfInstance.json b/nop-wf/nop-wf-meta/_templates/_NopWfInstance.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfInstance.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfInstance.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfLog.json b/nop-wf/nop-wf-meta/_templates/_NopWfLog.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfLog.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfLog.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfOutput.json b/nop-wf/nop-wf-meta/_templates/_NopWfOutput.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfOutput.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfOutput.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfStepInstance.json b/nop-wf/nop-wf-meta/_templates/_NopWfStepInstance.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfStepInstance.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfStepInstance.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfStepInstanceLink.json b/nop-wf/nop-wf-meta/_templates/_NopWfStepInstanceLink.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfStepInstanceLink.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfStepInstanceLink.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfVar.json b/nop-wf/nop-wf-meta/_templates/_NopWfVar.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfVar.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfVar.json
diff --git a/nop-wf/nop-wf-service/_templates/_NopWfWork.json b/nop-wf/nop-wf-meta/_templates/_NopWfWork.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_NopWfWork.json
rename to nop-wf/nop-wf-meta/_templates/_NopWfWork.json
diff --git a/nop-wf/nop-wf-service/_templates/_WfActionRequestBean.json b/nop-wf/nop-wf-meta/_templates/_WfActionRequestBean.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_WfActionRequestBean.json
rename to nop-wf/nop-wf-meta/_templates/_WfActionRequestBean.json
diff --git a/nop-wf/nop-wf-service/_templates/_WfCommandRequestBean.json b/nop-wf/nop-wf-meta/_templates/_WfCommandRequestBean.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_WfCommandRequestBean.json
rename to nop-wf/nop-wf-meta/_templates/_WfCommandRequestBean.json
diff --git a/nop-wf/nop-wf-service/_templates/_WfStartRequestBean.json b/nop-wf/nop-wf-meta/_templates/_WfStartRequestBean.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_WfStartRequestBean.json
rename to nop-wf/nop-wf-meta/_templates/_WfStartRequestBean.json
diff --git a/nop-wf/nop-wf-service/_templates/_WfStartResponseBean.json b/nop-wf/nop-wf-meta/_templates/_WfStartResponseBean.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_WfStartResponseBean.json
rename to nop-wf/nop-wf-meta/_templates/_WfStartResponseBean.json
diff --git a/nop-wf/nop-wf-service/_templates/_WfSubFlowEndRequestBean.json b/nop-wf/nop-wf-meta/_templates/_WfSubFlowEndRequestBean.json
similarity index 100%
rename from nop-wf/nop-wf-service/_templates/_WfSubFlowEndRequestBean.json
rename to nop-wf/nop-wf-meta/_templates/_WfSubFlowEndRequestBean.json
diff --git a/nop-wf/nop-wf-meta/pom.xml b/nop-wf/nop-wf-meta/pom.xml
new file mode 100644
index 000000000..f777ab03c
--- /dev/null
+++ b/nop-wf/nop-wf-meta/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ nop-wf
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ nop-wf-meta
+
+
+
+ nop-wf-codegen
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+ nop-wf-dao
+ io.github.entropy-cloud
+ 2.0.0-SNAPSHOT
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/nop-wf/nop-wf-service/postcompile/gen-i18n.xgen b/nop-wf/nop-wf-meta/postcompile/gen-i18n.xgen
similarity index 100%
rename from nop-wf/nop-wf-service/postcompile/gen-i18n.xgen
rename to nop-wf/nop-wf-meta/postcompile/gen-i18n.xgen
diff --git a/nop-wf/nop-wf-service/precompile/gen-meta.xgen b/nop-wf/nop-wf-meta/precompile/gen-meta.xgen
similarity index 61%
rename from nop-wf/nop-wf-service/precompile/gen-meta.xgen
rename to nop-wf/nop-wf-meta/precompile/gen-meta.xgen
index b9a10743d..55bcc505e 100644
--- a/nop-wf/nop-wf-service/precompile/gen-meta.xgen
+++ b/nop-wf/nop-wf-meta/precompile/gen-meta.xgen
@@ -1,5 +1,4 @@
codeGenerator.renderModel('/nop/wf/orm/app.orm.xml','/nop/templates/meta', '/',$scope);
-codeGenerator.withTplDir('/nop/templates/i18n').execute("/",{ moduleId: "nop/wf" },$scope);
\ No newline at end of file
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/en/nop-wf.i18n.yaml b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/nop-wf.i18n.yaml
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/en/nop-wf.i18n.yaml
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/nop-wf.i18n.yaml
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/zh-CN/nop-wf.i18n.yaml b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/nop-wf.i18n.yaml
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/i18n/zh-CN/nop-wf.i18n.yaml
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/nop-wf.i18n.yaml
diff --git a/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/_module b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/_module
new file mode 100644
index 000000000..e69de29bb
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/NopWfAction.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/NopWfAction.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/NopWfAction.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/NopWfAction.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta
similarity index 94%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta
index ff3a8c853..b2f6149d6 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta
@@ -8,7 +8,7 @@
sid
-
+
@@ -69,7 +69,7 @@
-
+
@@ -78,7 +78,7 @@
-
+
\ No newline at end of file
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/NopWfDefinition.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/NopWfDefinition.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/NopWfDefinition.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/NopWfDefinition.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xmeta
similarity index 98%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xmeta
index ed44a806c..62314079e 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xmeta
@@ -10,7 +10,7 @@
displayName
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/NopWfInstance.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfInstance/NopWfInstance.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/NopWfInstance.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfInstance/NopWfInstance.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xmeta
similarity index 98%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xmeta
index 4ab2737ef..4b89bdb2d 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xmeta
@@ -10,7 +10,7 @@
title
-
+
@@ -159,7 +159,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/NopWfLog.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfLog/NopWfLog.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/NopWfLog.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfLog/NopWfLog.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xmeta
similarity index 96%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xmeta
index 1cb67876b..a6a884a55 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xmeta
@@ -8,7 +8,7 @@
sid
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/NopWfOutput.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfOutput/NopWfOutput.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/NopWfOutput.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfOutput/NopWfOutput.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xmeta
similarity index 98%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xmeta
index 0a1a9bfbb..cf467ab7f 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xmeta
@@ -8,7 +8,7 @@
wfId,fieldName
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/NopWfStepInstance.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/NopWfStepInstance.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/NopWfStepInstance.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/NopWfStepInstance.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta
similarity index 97%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta
index 4aa49aa26..7f6004bc4 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta
@@ -8,7 +8,7 @@
stepId
-
+
@@ -165,7 +165,7 @@
-
+
@@ -174,7 +174,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/NopWfStepInstanceLink.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/NopWfStepInstanceLink.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/NopWfStepInstanceLink.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/NopWfStepInstanceLink.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xmeta
similarity index 90%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xmeta
index 08f6c4aa7..dda3af70b 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xmeta
@@ -8,7 +8,7 @@
wfId,stepId,prevStepId
-
+
@@ -41,7 +41,7 @@
-
+
@@ -50,12 +50,12 @@
-
+
-
+
\ No newline at end of file
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/NopWfVar.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfVar/NopWfVar.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/NopWfVar.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfVar/NopWfVar.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xmeta
similarity index 98%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xmeta
index b5f68a621..89ca897cf 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xmeta
@@ -8,7 +8,7 @@
wfId,fieldName
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/NopWfWork.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfWork/NopWfWork.xmeta
similarity index 100%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/NopWfWork.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfWork/NopWfWork.xmeta
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xmeta
similarity index 98%
rename from nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xmeta
rename to nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xmeta
index cb163fe1b..3c17cfdec 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xmeta
+++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xmeta
@@ -10,7 +10,7 @@
title
-
+
diff --git a/nop-wf/nop-wf-service/pom.xml b/nop-wf/nop-wf-service/pom.xml
index 2c7563333..fcdf88610 100644
--- a/nop-wf/nop-wf-service/pom.xml
+++ b/nop-wf/nop-wf-service/pom.xml
@@ -16,8 +16,13 @@
nop-wf-dao
io.github.entropy-cloud
- 2.0.0-SNAPSHOT
+
+
+ nop-wf-meta
+ io.github.entropy-cloud
+
+
io.github.entropy-cloud
nop-biz
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfDefinition/_NopWfDefinition.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfInstance/_NopWfInstance.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfLog/_NopWfLog.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfOutput/_NopWfOutput.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfStepInstanceLink/_NopWfStepInstanceLink.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfVar/_NopWfVar.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xbiz b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xbiz
index 43f2df4a7..f8a607558 100644
--- a/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xbiz
+++ b/nop-wf/nop-wf-service/src/main/resources/_vfs/nop/wf/model/NopWfWork/_NopWfWork.xbiz
@@ -2,7 +2,7 @@
-
+
diff --git a/nop-wf/pom.xml b/nop-wf/pom.xml
index 40760ffab..ed67495ce 100644
--- a/nop-wf/pom.xml
+++ b/nop-wf/pom.xml
@@ -22,5 +22,6 @@
nop-wf-dao
nop-wf-service
nop-wf-app
+ nop-wf-meta
\ No newline at end of file
diff --git a/nop-xdefs/src/main/resources/_vfs/nop/schema/schema/obj-schema.xdef b/nop-xdefs/src/main/resources/_vfs/nop/schema/schema/obj-schema.xdef
index 2505bf45a..13e599816 100644
--- a/nop-xdefs/src/main/resources/_vfs/nop/schema/schema/obj-schema.xdef
+++ b/nop-xdefs/src/main/resources/_vfs/nop/schema/schema/obj-schema.xdef
@@ -51,7 +51,7 @@
xml:mapper="string" graphql:mapper="string" biz:codeRule="string"
graphql:type="string" graphql:jsonComponentProp="string" graphql:dictValueProp="prop-path"
graphql:joinLeftProps="word-set" graphql:joinRightProps="word-set"
- graphql:connectionProp="prop-name" graphql:maxFetchSize="int"
+ graphql:connectionProp="prop-name" graphql:findFirst="boolean" graphql:maxFetchSize="int"
>
diff --git a/nop-xlang/src/main/java/io/nop/xlang/xmeta/IObjPropMeta.java b/nop-xlang/src/main/java/io/nop/xlang/xmeta/IObjPropMeta.java
index 8dcdae48c..403488eb0 100644
--- a/nop-xlang/src/main/java/io/nop/xlang/xmeta/IObjPropMeta.java
+++ b/nop-xlang/src/main/java/io/nop/xlang/xmeta/IObjPropMeta.java
@@ -119,7 +119,20 @@ default String getStdDomain() {
String getChildName();
default String getBizObjName() {
- return getSchema().getBizObjName();
+ ISchema schema = getSchema();
+ if (schema == null)
+ return null;
+ return schema.getBizObjName();
+ }
+
+ default String getItemBizObjName() {
+ ISchema schema = getSchema();
+ if (schema == null)
+ return null;
+ ISchema itemSchema = schema.getItemSchema();
+ if (itemSchema == null)
+ return null;
+ return itemSchema.getBizObjName();
}
/**
diff --git a/nop-graphql/nop-graphql-core/src/main/resources/_vfs/nop/biz/xlib/biz-gen.xlib b/nop-xlang/src/main/resources/_vfs/nop/core/xlib/biz-gen.xlib
similarity index 95%
rename from nop-graphql/nop-graphql-core/src/main/resources/_vfs/nop/biz/xlib/biz-gen.xlib
rename to nop-xlang/src/main/resources/_vfs/nop/core/xlib/biz-gen.xlib
index 3c6d0741f..078e35f15 100644
--- a/nop-graphql/nop-graphql-core/src/main/resources/_vfs/nop/biz/xlib/biz-gen.xlib
+++ b/nop-xlang/src/main/resources/_vfs/nop/core/xlib/biz-gen.xlib
@@ -90,11 +90,9 @@
+ internal="true" graphql:connectionProp="${name}" graphql:type="GraphQLConnection_${prop.childByTag('schema').childAttr('item','bizObjName')}">
io.nop.api.core.beans.graphql.GraphQLConnectionInput
-
@@ -116,7 +114,7 @@
-
+