actframework / act-doc

Act framework document
Apache License 2.0
25 stars 17 forks source link

act-1.8.3 发布 #15

Open greenlaw110 opened 6 years ago

greenlaw110 commented 6 years ago

本来昨天就该发布的,难得 sonatype 的同步故障让我给赶上了,于是拖到了今天。

重要的事情先说

  1. act-ebean 更名为 act-ebean-java7
  2. act-ebean2 更名为 act-ebean
  3. act-starter-ebean-aaa 更名为 act-starter-ebean-aaa-java7
  4. act-starter-ebean-all 更名为 act-starter-ebean-all-java7
  5. act-starter-ebean2-aaa 更名为 act-starter-ebean-aaa
  6. act-starter-ebean2-all 更名为 act-starter-ebean-all

错误修复:

  1. 访问 SimpleBean 类没有依照 JavaBean 规范命名的字段出现 StackOverflowError 错误

  2. 由于变量名字不同导致重复 URL 路径在项目启动过程中未报错

  3. 文件下载不工作

  4. 开发模式下 ActUnauthorized 引起 java.lang.NegativeArraySizeException 异常

  5. 大数据响应接受不完全

  6. API 文档索引错误

重要更新

1. API 文档生成现在可以直接解析 JavaDoc, 生成服务端点和参数的描述

代码:

    /**
     * Login a user with username and password.
     * 
     * @param username
     *      The username
     * @param password
     *      The password
     */
    @PostAction
    public void login(String username, String password) {}

生成的文档:

image

2. 输入输出模型的进一步优化

在 1.8.0 的时候我们引入的直接响应输出,可以让大响应(包括 JSON 和 CSV)生成的过程由在内存中生成字串再输出变成一边生成结果,一边输出到响应,大大降低了大响应时候的内存消耗。

但是后来的性能测试发现在小的响应输出的时候直接输出比生成响应内容之后再输出要慢20%。这次对输入输出都做了进一步的优化:

  1. 默认所有的响应都按照老的方式输出
  2. 发现某次响应超过限制(可配置),该方法以后所有的响应都按照直接输出方式进行
  3. 对于直接输出,采用 ThreadLocal 分配的 buffer 进行缓存,尽可能提高这种方式的吞吐量
  4. 默认使用 InputStream (会将 I/O 转变为阻塞式)来解析 form post,第一解析之后,所有对该请求接口的输入在 session 解析完之后采用非阻塞式获得 form post body 再调用应用的响应函数,最大限度地提高系统响应能力

3. 支持 docker

新的 maven 构建工具支持 docker 了。

构建 docker 容器:

mvn -Pdocker package

发布 docker 容器:

mvn -Pdocker install

4. 更新 osgl-tool 到 1.8.1 版

关于 osgl-tool 1.8 的更新我会在单独的博客中说明


关于 act-1.8.3 的更多细节参见:

和 act-1.8.3 同时发布的有