跳转到内容

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:

  1. 升级研发态 MetaStoreManagement 至 0.12
  2. 调用 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: demo
dependencies:
- key: base
version: 1.0.0-SNAPSHOT

application.yml 配置变更

spring:
profiles:
include:
- trantor
trantor:
mainModule: demo1
embedModules:
- demo2
enabledModuleKeys: demo2

原来 ModuleDefinition 的 class name 全部替换为 trantor.yml 中的 key。