9.2. Release Hasor v3.x
Hasor v3.2.2 (2018-01-02)
- 新增
AppContextWarp 类,提供 AppContext 包装工具。
DataQL UDF 新增 manager 接口方便管理和注册。
DataQL 新增了 import 语法,现在可以导入另外一个 QL 查询作为 udf 导入到当前 QL 中了。
@ValidBy注解新增boolean类型属性inherited控制注解是否被继承。
新增doValidation验证器验证策略ValidStrategy,用于控制是否执行后面的验证器。
RSF-Center 的内存数据存储器新增了垃圾数据扫描处理机制。
改进
Spring 插件中的 sechma 升级为 3.2.2。同时 rsf 的 sechma 和 hasor-core 合并成一个。
DataQL 的 LoaderUdfSource 增加 isIgnore 方法用于判断是否忽略不正确的UDF查找请求
DataQL 优化udf source增加机制。
HASOR_LOAD_EVENT_POOL 配置项从 20 改为 8
RSF 网络层,抽象 Connector 概念,作为 RPC 连接器存在。有了连接器扩展任意 rpc 协议变得可能。
提供一个 netty 基础连接器实现,rsf 协议基于 Netty 连接器 实现。
提供一个 http 基础连接器实现, hprose 协议基于 http 连接器实现。
RSF RequestInfo 和 ResponseInfo 不在同时封装 byte 和 object。
序列化和反序列化都交给 io 线程进行处理。
Hprose 协议,支持双向调用了。之前只能被动充当 Hprose 服务提供者,目前也可以作为消费者存在了。
Rsf 注册重新完全重新实现。
Web框架中 @MappingTo 支持配置多个地址。
@Transactional 注解可以标记在:方法、类 上。
修复
fix Hasor 的 Spring 插件初始化失败问题。
fix jfinal 列子编译问题。
Hasor v3.2.1 (2017-10-17)
- 新增
DataQL,执行引擎新增 jsr223 兼容。从这个版本开始可以使用 jsr223 的方式使用 DataQL 了。
DataQL UDF 新增 manager 接口方便管理和注册。
改进
优化 dataQL 函数注册更加方便。
优化 ApiBinder 在 toString 时的提示信息。
plugin 项目的插件依赖改为弱依赖。
修复
修复 dataQL 表达式计算时 == 判断出现异常的问题。
fix plugins 插件中配置文件错乱的问题。
fix RsfWebModule 已经删除但是配置依然存在的问题。
Hasor v3.2.0 (2017-10-15)
- 新增
新增内置 Freemarker 渲染器,如想使用该渲染引擎开发者还需要额外依赖 freemarker 的 jar 包。
新增内置 DataQL,服务查询引擎,全面提供 “数据库 + 服务” 整合查询,并为查询结果提供全面的数据整合能力。
新增内置 Json 渲染器,JSON 渲染引擎会按照下面顺序尝试寻找可用的json库:fastjson、Gson
内置JSON渲染引擎,可以通过 apiBinder.bind(JsonRenderEngine.class) 方式绕过内部查找机制直接使用用户自定义的json渲染器。
改进
EventContext 接口增加 fireSyncEventWithEspecial 方法,可以用于指定同步事件是否以独立线程运行。
ContextClassLoaderLocal 类移动位置。
已有 DBModule 删除,功能被整合到 DataApiBinder 接口中。
修复
修复当 aop 类中出现静态代码块,静态方法时。生成了错误的动态字节码。
Fix @Produces 注解工作时的一些问题。
Hasor v3.1.3 (2017-02-23)
- 改进
- 事件管理器增添一个字符串参数的构造方法参数,用来确定执行事件的线程名称。
修复
- 修复 AppContext接口 getBindIDs、getNames 两个方法返回值为空的问题。
Hasor v3.1.2 (2017-02-19)
- 新增
Hasor类在处理用户设置的环境参数时,设定为两种分类:框架环境变量、用户环境变量。
在框架层面:无论是否设置框架层面的环境变量参数,Hasor都会将继续尝试执行加载 env.config。
用户层面:如果配置了用户层面的环境参数,那么Hasor将放弃加载 env.config。
db框架新增 BeanSqlParameterSource 支持 Bean 类型的 SqlParameterSource。
改进
render 框架以及RenderApiBinder接口功能融入 hasor-web 框架。
提升表单验证功能开发体验,表单验证接口 net.hasor.web.valid.ValidErrors 合并到 net.hasor.web.valid.ValidInvoker 接口。
HASOR_RESTFUL_LAYOUT环境变量默认值从 true 改为 false。站点文件布局本身是一个极具个性色彩的功能,不应该强行加给开发者。
Hasor v3.1.1 (2017-02-16)
- 修复
- 当Hasor通过 Hasor.create 创建容器之后,如果开发者设置了环境参数。那么Hasor将放弃加载 env.config。
Hasor v3.1.0 (2017-02-15)
- 改进
当依赖注入遇到父子类重名字段引发,duplicate异常时候,打印出冲突的字段名。
环境变量名不区分大小写。
AbstractEnvironment,改进“env.config”配置文件的加载改为:先在WORK_HOME下查找,找不到在加载classpath下的。
启动日志中,打印出“env.config”中所加载的所有信息。
原 org.more 包内的工具仅保留使用到的工具类,同时移动到net.hasor.core包中,瘦身约三分之一。
classcode 成为 Hasor 的一部分。
增加 debug 模式,debug 模式下会保存 动态代理生成的字节码文件。
删除不常用的 Event插件,由于再有没有任何内置插件在启动时扫描类,因此 Hasor 启动速度飞快。
修复
- fix 当在 jdk8 下使用 hasor aop 功能时出现 VerifyError 错误的问题,3.1.0版本开始不在需要通过 -noverify 参数压制异常。
Hasor v3.0.3 (2017-02-07)
- 修复
- Fix ClassEngine 类在判断 @AopIgnore 时,潜在的一个空指针 bug。该问题会导致启动失败。
Hasor v3.0.2 (2017-01-30)
- 新增
新增 ProviderType 接口,用于确定 Provider 接口的返回值类型。
MappingToBuilder 新增 3 个 findBindType 方法用于确定 bindType 类型。
修复
- Fix RuntimeFilter入口类,当没有配置 request/ressponse 编码时引发的异常。
Hasor v3.0.1 (2017-01-29)
- 修复
- Fix DefaultXmlNode在执行配置替换时,属性没有被替换的问题。
改进
- 删除了 LogUtils 小工具。
Hasor v3.0.0 (2017-01-12)
- 新增
新增 ApiBinder 扩展机制。开发者可以通过 net.hasor.core.binder.ApiBinderCreater 接口可以自定义 ApiBinder。
WebApiBinder 新增可以设置(请求/响应)编码方法。
通过 ContainerCreater 可以扩展 Hasor 的上帝类了。
新增 @AopIgnore 注解,用于忽略Hasor的Aop动态代理功能。当标记到包上时表示整个包都忽略动态代理。该功能可以有效的防止泛滥的全局Aop。
新增 ApiBinder 接口新增 tryCase 方法用于将 ApiBinder 转换为支持的另外一种接口。
新增 InvokerFilter 接口,该接口功能等同于 Filter。
新增 Invoker 接口取代之前的 RenderData 接口,同时 Invoker 可以像 ApiBinder 一样支持扩展。
新增 MappingSetup 接口,当发现一个控制器时会通过该接口通知给开发者。
新增 WebPlugin 接口,用来扩展过滤器链的开始调用,和调用结束。
改进
受益于 ApiBinder 扩展机制,WebEnvironment、WebAppContext、WebHasor 都不在需要。
Web 框架通过 ApiBinder扩展机制融入 AppContext,不在需要 AppContext 的定制化。
restful 框架和 web 框架。在功能不变的前提下全面融合,代码重构接近90%。
2.4.4版本中添加的 web-fragment 特性不在支持,原因很容易引起重复配置。
修复
- Fix HasorUnitRunner 在 JUnit 4.12 版本上 computeTestMethods 方法出现异常的问题。