Release 0.12 内容物
- Library
- Framework: 0.12.0-SNAPSHOT
- MavenPlugin: 0.12.0-SNAPSHOT
- Image
- MetaStoreManagement Image: registry.cn-hangzhou.aliyuncs.com/terminus/trantor-metastore:200831.200230
- MetaStore Image: registry.cn-hangzhou.aliyuncs.com/terminus/trantor-metastore:200901.191516
- Trantor Console: registry.cn-hangzhou.aliyuncs.com/terminus/trantor-console:1.12.0
- Trantor Workspace: registry.cn-hangzhou.aliyuncs.com/terminus/trantor-workspace:1.12.0
- DataStore 建议配套版本:registry.cn-hangzhou.aliyuncs.com/terminus/datastore:5.0.0.17
- Tool
- Trantor CLI: 0.12.0
变更内容
不兼容变更
-
【机制】Trantor 增加模块依赖概念
Trantor 0.12 主要增加了研发态模块依赖概念,在后续的 idea 插件和交付控制台在线编辑研发态元信息时,会按照依赖限制资源的可选范围。 比如 A 模块 1.0 版本依赖 B 的 1.0 版本,在 A 模块中新增行为时,可选择的所属模型范围为自身加上 B 的 1.0 中包含的模型。
模块依赖的原则类似 maven,我们遵循以下几个规则:
- 不允许循环依赖
- 自己申明的依赖不允许冲突,比如同时依赖了 A 模块的 1.0 和 2.0
- 出现依赖冲突时,以最短路径依赖优先
- 最短路径上依然冲突,取最大版本号
新增特性
-
【控制台】新增应用分组
现在可以在应用上配置分组, 用来区分不同类型的应用. 内置了
基础,领域,系统三个应用分类. 配置完成后, 切换应用时会按照分组显示. -
【工具】CLI 增加 repo proxy
在 trantor config 中支持配置 REPO_PROXY_ENABLED 和 REPO_PROXY_URL,如果 REPO_PROXY_ENABLED = true, 则在 trantor maven plugin 中 deploy 元信息到本地时,会找到 REPO_PROXY_URL 的服务,拉取该模块的依赖模块元信息到本地。 注意 REPO_PROXY_URL 跟插件中 repositoryUrl 含义相同,可以配置线上地址,避免本地找不到依赖模块的情况。
-
【前端】增加 SyncTree 数据容器, 可以通过 DataSourceAction 一次性加载所有数据, 支持主子节点关联选择
-
【DAO】增加 TrantorSqlDAO ,可以通过 DataStore 新增的 TrantorSQL(简称TSQL) API 对模型数据进行CRUD操作
优化
-
【机制】Framework 轻量化,加快模块启动速度
现在 Framework 将资源加载器移除, 减少了 Trantor 应用在启动时的时间和性能消耗, 所以模块启动速度有所提升.
-
【工作台】权限管理页面完成自举,以后可以通过修改视图 DSL 来变更功能
-
【前端】lookupFrom 的数据容器支持单独刷新
-
【前端】tree 组件支持 queryValues 传参
-
【前端】年选择器现在支持清除
-
【前端】树形复选框选择提交
-
【前端】列表页面,查询条件 dataSource 选择条件的时候下拉选择总会挡住输入框
-
【前端】数据容器 title 支持表达式
-
【前端】图片上传控件支持限制上传图片宽高
修复
- 【控制台】字典必填校验国际化显示中文的问题
- 【控制台】Action 选择器搜索卡顿问题修复
- 【前端】修复弹窗页面, 下拉选择会遮盖搜索框的问题
升级迁移
如果从 0.10 或 0.11 升级过来,需要迁移研发态数据。
Steps:
- 升级研发态 MetaStoreManagement 至 0.12
- 调用 MetaStoreManagement 的以下 rest api
- POST /api/migration-012/model 迁移模型下资源
- POST /api/migration-012/dict 迁移字典下资源
如本地或者模块较少,也可以直接清空 MetaStoreManagement 的对应数据库,重新使用插件 deploy 一次即可。
依赖变更
<dependency> <groupId>io.terminus.trantor</groupId> <artifactId>framework</artifactId> <version>0.12.0-SNAPSHOT</version></dependency><dependency> <groupId>io.terminus.trantor</groupId> <artifactId>api</artifactId> <version>0.12.0-SNAPSHOT</version></dependency><plugin> <groupId>io.terminus.trantor</groupId> <artifactId>trantor-metadata-maven-plugin</artifactId> <version>0.12.0-SNAPSHOT</version> <configuration> <moduleKey>myModuleKey</modulePackageName> <repositoryUrl>http://{remoteMetaStoreURL}/{tenantCode}/{projectCode}</repositoryUrl> </configuration> <executions> <execution> <goals> <goal>deploy</goal> </goals> </execution> </executions></plugin>注意插件中的 modulePackageName 被移除,新增 moduleKey 值为该业务模块的 trantor.yml 中申明的 key。 同时 metastoreUrl 被替换为 repositoryUrl。repositoryUrl 的值为交付控制台meta store地址/租户code/项目code( 默认租户和项目为 /terminus/terminus_project )。
ModuleDefinition 替换为 trantor.yml
在 0.12 中用 trantor.yml 文件取代了 ModuleDefinition class。 trantor.yml 放在模块 api jar 的 resources 文件夹下,其内容为:
module: key: demo name: demo packageName: demo version: 1.0.0-SNAPSHOT description: demodependencies: - key: base version: 1.0.0-SNAPSHOTapplication.yml 配置变更
spring: profiles: include: - trantor
trantor: mainModule: demo1 embedModules: - demo2 enabledModuleKeys: demo2原来 ModuleDefinition 的 class name 全部替换为 trantor.yml 中的 key。