jt808.server.enabled = true | false
JtServerNettyConfigure
及其子接口和实现类
Jt808ServerNettyConfigure
BuiltinJt808ServerNettyConfigure
Jt808AttachmentServerNettyConfigure
BuiltinJt808AttachmentServerNettyConfigure
AbstractRunner
构造器参数变更DynamicFieldBasedJt808MsgEncoder
Jt808CommandSender
新增接方法:
sendCommand(Metadata, List<DynamicField>)
sendCommandWithDynamicFields(Metadata, List<Map<String,Object>>)
sendCommandAndWaitingForReply(Jt808CommandKey, Metadata, List<DynamicField>, Duration)
sendCommandWithDynamicFieldsAndWaitingForReply
DispatcherHandler
未释放空消息的问题新增业务线程池: jt808.msg-handler
下面模块的最低 JDK 版本从 11
改为 8
:
BitOperator
新增方法:
mapIf(...)
setIf(...)
setWithStatus(...)
setWithStatusIf(...)
setRangeIf(...)
resetIf(...)
resetRangeIf(...)
unsignedLongValue(...)
rangedUnsignedIntValue(...)
rangedUnsignedLongValue(...)
BitOperator
操作 offset >= 31
的 bit
时溢出的问题,涉及到的方法如下:
BitOperator#set(int offset)
BitOperator#reset(int offset)
BitOperatorget(int offset)
oaks-common-utils
升级到 1.0.7
Jt808MsgBuilder
RebuildableByteBufJt808MsgBuilder
Gradle
: 8.6 升级到 8.8
spring-boot-dependencies
spring-cloud-dependencies
RebuildableByteBufJt808MsgBuilder
相关文档初步支持消息加解密,详情见: #82
Jt808MsgEncryptionHandler
@Jt808ResponseBody
新增 encryptionType(int)
属性Jt808Response
新增 encryptionType(int)
属性Jt808MsgBuilder
新增 encryptionType(int)
属性ExtendedJt808FieldDeserializerLocationExtraItem
没有考虑 length
属性的问题@RequestFieldAlias.LocationMsgExtraItemMapping()
@RequestField#conditionalOn()
属性BuiltinCommonHandler.processTerminalHeartBeatMsg
应该回复 0x8001
消息,而不是不回复消息参见 2.1.1-RC1、2.1.1-RC2、2.1.1-RC3 中的所有变更。
jt808.features.program-param-printer.enabled = false
的时候 classpath 下没有 Jackson
依赖时报错的问题。BitOperator
辅助类@SlicedFrom
支持 long
类型内置示例消息的 @RequestField
注解去掉 startIndex
属性(2.1.1 开始不再需要该属性)。
对 2.1.1-RC1 中新增特性的简化。
@RequestField
和 @ResponseField
@RequestFieldAlias
和 @ResponseFieldAlias
别名LWord
(LongWord
,64bit
) 类型@RequestFieldAlias
和 @ResponseFieldAlias
MsgDataType#BYTES
和 java.lang.String
互转Geo
类型(经纬度)支持转换为 long/Long
、double/Double
、BigDecimal
BCD
可以转换为 java.lang.String
、java.util.Date
、java.time.LocalDateTime
java.util.Date
和 java.time.LocalDateTime
可以转为 BCD
Jt808FieldDeserializer
扩展 Context
参数,方便自定义注解Jt808FieldSerializer
扩展 Context
参数,方便自定义注解Jt808RequestFilter
(需要配置 jt808.features.request-filter.enabled=true
) 支持BitOperator
, 支持将 WORD
, DWORD
, BYTE
反序列化为 BitOperator
BytesValueWrapper
ByteBufContainer
或 ByteArrayContainer
代替ByteBufContainer
或 ByteArrayContainer
的类型转换器BuiltinMsg8103
BuiltinMsg8103Alias
BuiltinMsg8100Alias
BuiltinMsg8300
BuiltinMsg8300Alias
BuiltinMsg8600V2011Alias
BuiltinMsg8600V2013Alias
BuiltinMsg8600V2019Alias
BuiltinMsg8602V2011Alias
BuiltinMsg8602V2013Alias
BuiltinMsg8602V2019Alias
BuiltinMsg8604V2011Alias
BuiltinMsg8604V2013Alias
BuiltinMsg8604V2019Alias
@RequestField#length()
支持返回 0
BuiltinMsg0200
改名为 BuiltinMsg0002
(之前命名错误)jt808.msg-processor.executor-group.thread-count
默认值改为 128
jt808.features.program-param-printer.enabled
settings.gradle
中删除 docs
子模块(无需 gradle 管理)从 2.1.x 开始,同时支持 spring-boot-2.x 和 spring-boot-3.x。
提供的 starter
的 JDK 版本、spring-boot 版本限制如下:
Module | JDK | spring-boot | Desc |
---|---|---|---|
jt-808-server-spring-boot-starter-boot2 |
11+ |
[2.2.x, 2.6.x] |
为 spring-boot-2.x 提供的 starter |
jt-808-server-spring-boot-starter |
17+ |
[3.0.0, ...] |
为 spring-boot-3.x 提供的 starter |
变更如下:
jt-808-server-spring-boot-stater
有单词拼写错误(😂): starter 写成了 stater
jt-808-server-spring-boot-starter-boot2
jt-808-server-spring-boot-starter
JDK
: 17
.class
文件版本 : 61(JDK-17)spring-boot
: 3.0.2
jdk.version >=17 && spring-boot.version >= 3.0.0
jt-808-server-spring-boot-starter-boot2
jt-808-server-spring-boot-stater
重命名过来的JDK
: 17
.class
文件版本 : 55(JDK-11)spring-boot
: 2.6.14
jdk.version >= 11 && spring-boot.version >= 2.2.x && spring-boot.version <= 2.6.x
Gradle
版本升级到 7.6
Spring-Boot
版本升级到 2.6.14
Jt808Session
新增如下方法:
setAttribute
getAttribute
getRequiredAttribute
removeAttribute
Jt808ServerExchange
新增如下方法
removeAttribute
jt808:
server:
idle-state-handler:
# 改动原因见 https://github.com/hylexus/jt-framework/issues/66
writer-idle-time: 0s # 由 20m 改为 0s(disabled)
all-idle-time: 0s # 由 20m 改为 0s(disabled)
Jt808RequestLifecycleListener
Jt808MsgBuilder
ByteArrayFieldSerializer
Spring-Boot
版本升级到 2.5.12
EventBus
,业务线程池使用自定义的 EventExecutorGroup
jt808.msg-processor.thread-pool.xxx
配置项,使用 jt808.msg-processor.executor-group.xxx
代替Gradle
版本升级到 6.8.1
Spring-Boot
版本升级到 2.5.7
Netty
版本升级到 4.1.75.Final
SpEL
)新增 2.x 文档。
新增配置项:
jt808.server.idle-state-handler
: 对应 io.netty.handler.timeout.IdleStateHandler
的 三个属性:readerIdleTime
、 writerIdleTime
、allIdelTime
。
默认值都是 20m
;jt808.protocol.max-frame-length
: 对应 io.netty.handler.codec.DelimiterBasedFrameDecoder
的 maxFrameLength
属性。新增 io.github.hylexus.jt.msg.builder.jt808.Jt808MsgBuilder
@NestedFieldMapping
支持List类型 (https://github.com/hylexus/jt-framework/issues/25)jt808.protocol.version
@NestedFieldMapping
bugJt808ServerConfigure
容易引发Bean的循环依赖Jt808ServerConfigurationSupport
来自定义配置scope
从 runtime
改为 compile
,涉及到的依赖如下:
Jt808SessionManager
重构,支持自定义CommandSender
文档完善MsgHandler
可选择性地交给Spring管理,以便于在 MsgHandler
中调用其他的由Spring管理的BeanSession#currentFlowId
SessionManager#findBySessionId
MsgHandler
可选择性地交给Spring管理,以便于在 MsgHandler
中调用其他BeanВы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )