Skip to content

Releases: hylexus/xtream-codec

v0.4.0

03 Jan 09:08

Choose a tag to compare

详见 Milestone v0.4.0

⭐ New Features

  • 多表达式引擎支持 #5
  • 数据类型扩展 #6
    • io.github.hylexus.xtream.codec.core.type.TLV
    • io.github.hylexus.xtream.codec.core.type.Pair
    • io.github.hylexus.xtream.codec.core.type.simple.DataField
  • 可观测性 - 后端 #8

v0.3.0

26 Oct 08:01

Choose a tag to compare

🎯 Highlights

  • 默认属性访问策略由 反射 改为 java.lang.invoke.LambdaMetafactory

⭐ New Features

  • 新增 @XtreamEntity 注解,支持配置类级别的属性访问策略
  • 新增 @XtreamField.propertyAccessStrategy() 属性,支持配置字段级别的属性访问策略

🐞 Bug Fixes

  • 修复 AbstractJt808Message 初始化异常

🔨 Dependency Updates

  • 可空性标记全部使用 jspecify
  • 彻底移除 jakarta.annotation-api

v0.2.0

19 Oct 07:24

Choose a tag to compare

⭐ New Features

  • 增强 Record 类型的表达式解析功能
  • 增强 Record 类型的 CodecTracker 埋点
  • 重构 BeanPropertyMetadata.PropertyGetterBeanPropertyMetadata.PropertySetter 的实现类

v0.1.1

08 Oct 10:19

Choose a tag to compare

🐞 Bug Fixes

  • BuiltinMessage0200.Item0x11#locationId 类型标记错误

v0.1.0

01 Oct 11:14

Choose a tag to compare

🔨 Dependency Upgrades

  • spring-boot 升级到 3.5.6
  • spring-cloud 升级到 2025.0.0

⭐ New Features

  • 实体映射支持多版本
    • 新增 @XtreamField.version() 属性
    • 提供几个多版本合一的实体映射示例(quick-start 项目同步修改)
      • BuiltinMessage0100AllInOne
      • BuiltinMessage0102AllInOne
      • BuiltinMessage0107AllInOne
      • BuiltinMessage0702AllInOne
  • 实体映射支持 record
  • 提供更简洁的 Map 映射注解
    • @Preset.RustStyle.simple_map
    • @Preset.JtStyle.SimpleMap

🐞 Bug Fixes

  • BuiltinMessage0107V2013.typeshort 改为 int
  • BuiltinMessage0107V2019.typeshort 改为 int
  • BuiltinMessage0500.flowIdshort 改为 int
  • BuiltinMessage0802.multimediaDataItemCountshort 改为 int
  • BuiltinMessage0802.BuiltinMessage8805int 改为 long

⚠️ Deprecations

下面废弃的类将在 1.x 版本中删除。

  • 废弃 @Preset.JtStyle.Map
    • 使用 @Preset.JtStyle.SimpleMap 代替
    • 简化了 @Preset.JtStyle.Map 的配置
  • 废弃 @Preset.RustStyle.map
    • 使用 @Preset.RustStyle.simple_map 代替
    • 简化了 @Preset.RustStyle.map 的配置
  • 下面几个内置编解码器单例已废弃,使用 I8FieldCodecs 代替
    • I8FieldCodec.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 U8FieldCodecs 代替
    • U8FieldCodec.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 I16FieldCodecs 代替
    • I16FieldCodec.INSTANCE
    • I16FieldCodecLittleEndian.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 U16FieldCodecs 代替
    • U16FieldCodec.INSTANCE
    • U16FieldCodecLittleEndian.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 I32FieldCodecs 代替
    • I32FieldCodec.INSTANCE
    • I32FieldCodecLittleEndian.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 U32FieldCodecs 代替
    • U32FieldCodec.INSTANCE
    • U32FieldCodecLittleEndian.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 U32FieldCodecs 代替
    • I64FieldCodecs.INSTANCE
    • I64FieldCodecLittleEndian.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 StringFieldCodecs 代替
    • StringFieldCodec.INSTANCE_BCD_8421
    • StringFieldCodec.INSTANCE_UTF8
    • StringFieldCodec.INSTANCE_GBK
    • StringFieldCodec.INSTANCE_GB_2312
    • StringFieldCodec.INSTANCE_HEX
  • 下面几个内置编解码器单例已废弃,使用 BytesFieldCodecs 代替
    • ByteBufFieldCodec.INSTANCE
    • ByteBufContainerFieldCodec.INSTANCE
    • ByteBoxArrayFieldCodec.INSTANCE
    • ByteArrayFieldCodec.INSTANCE
    • ByteArrayContainerFieldCodec.INSTANCE
  • 下面几个内置编解码器单例已废弃,使用 DataWrapperFieldCodes 代替
    • DataWrapperFieldCodec.INSTANCE
    • DwordWrapperFieldCodec.INSTANCE
    • I8WrapperFieldCodec.INSTANCE
    • I16WrapperFieldCodec.INSTANCE
    • I32WrapperFieldCodec.INSTANCE
    • StringWrapperGbkFieldCodec.INSTANCE
    • StringWrapperBcdFieldCodec.INSTANCE
    • StringWrapperUtf8FieldCodec.INSTANCE
    • U8WrapperFieldCodec.INSTANCE
    • U16WrapperFieldCodec.INSTANCE
    • U32WrapperFieldCodec.INSTANCE
    • WordWrapperFieldCodec.INSTANCE

v0.0.1

07 Sep 10:33

Choose a tag to compare

0.0.1 封版

注:版本号命名会尽量遵循 SemVer 规范

v0.0.1-rc.8

30 Aug 08:20

Choose a tag to compare

⭐ New Features

  • JSpecify
    • xtream-codec-base 模块使用 @org.jspecify.annotations.Nullable 替代 @jakarta.annotation.Nullable
    • 后续将逐步替换其他模块

🐞 Bug Fixes

❤️ Contributors

v0.0.1-rc.7

23 Aug 10:00

Choose a tag to compare

v0.0.1-rc.6

29 Jun 07:35

Choose a tag to compare

⭐ New Features

  • 注解支持字符串填充属性 issue#2
    • @XtreamField.paddingLeft()
    • @XtreamField.paddingRight()
    • @RustStyle.str.paddingRight()
    • @RustStyle.str.paddingLeft()
    • @JtStyle.Str.paddingLeft()
    • @JtStyle.Str.paddingRight()

v0.0.1-rc.5

18 May 12:06

Choose a tag to compare

⭐ New Features

  • 新增配置项 jt808-server.event-publisher.xxx
  • 新增基于 disruptorXtreamEventPublisher 实现类 DisruptorBasedXtreamEventPublisher