Skip to content

Norm 0.18 ​

Norm 0.18 建立 NAR Module 与 Java Binding 生态,并以 Norm ORM 和纯 Norm Micronaut BBS 验证 Java 框架能够成为普通、类型化且可替换的 Norm Module 实现。

NAR 与 Java Binding ​

  • .nar 是所有 Norm Module 的统一发布制品;module.norm 是依赖、Java 根制品、公开适配面和发布身份的唯一声明;
  • 一个 Module 最多绑定一个根 JAR,其 Maven 传递依赖由工具链解析,消费方只依赖普通 Norm Module;
  • Java class、interface、enum、泛型、集合、数组、回调、异步、异常、资源和 Annotation 映射为公开 Norm 声明,未支持的选定成员产生确定报告;
  • Apache Commons Lang、Commons IO、jsoup、Joda-Time、fastutil、org.json、Caffeine、Guava、OkHttp 和 Eclipse Collections 提供可发布适配模块。

完整模型与当前边界见 Java Library Adapter 和模块系统。

Norm ORM 与 Micronaut ​

  • Norm ORM 提供实体、字段引用查询、Repository、关系和事务;Hibernate 是可替换的 Provider,并通过真实 Jakarta Persistence Annotation 接入;
  • Java Annotation 在 JVM 应用边界恢复为真实 Annotation,官方 JSR 269 Processor 自动处理纯 Norm 应用源码;
  • application.norm 使用具有默认值和 nullable 可选项的强类型配置,并以统一 application().run() 生命周期自动启动和关闭服务;
  • Micronaut 平台模块组合 HTTP、DI、Serde、Validation、Security、Data、Hibernate 与运行时依赖,应用不再逐项声明框架内部模块;
  • Micronaut BBS 使用真实 Netty、Hikari、H2、Controller、构造器 DI、Filter、Security、事务和持久化完成端到端验收。

编辑器与工具链 ​

Language Server 按 module.norm 加载与 CLI 相同的模块图,并为 NAR 内生成源码提供只读跳转。编辑分析与运行链接分层:分析直接读取 NAR 中已发布的 Norm API,运行、测试和打包继续解析并验证完整 Java 图。不可变归档缓存、稳定模块快照、文件 URI 规范化和串行项目变更共同消除重复解析与并发状态分叉。

VS Code 的诊断、补全、悬停、导航和重命名共享同一编译快照;跨 Module 导航可以直接打开适配源码,不要求 Java 源码或本地 JAR。

迁移与边界 ​

Module 发布产物从 .jar 改为 .nar。应用入口改为与 module.norm 同目录的 application.norm;入口对象必须提供 Void run(),应用自身无需通过 exports 公开。Java Binding、ORM 与 Micronaut 的可运行入口分别见 Commons Lang 示例、Norm ORM 示例和 Micronaut BBS。

Norm 0.25