设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

thrift-generator 0.1发布,通过Java接口生成Thrift文件工具

2017-12-11 22:40| 发布者: joejoe0332| 查看: 583| 评论: 0|原作者: oschina|来自: oschina

摘要: 这是一个通过java的接口生成thrift文件的工具, 这个代码库的时间悠久, 已经有5年历史了, 当时写这个工具主要两个目的:没接触thrift,但是希望使用thrift的用户,可以便于新用户的理解之前用的是rmi,之后想转成thrift的 ...

这是一个通过java的接口生成thrift文件的工具, 这个代码库的时间悠久, 已经有5年历史了, 当时写这个工具主要两个目的:

  • 没接触thrift,但是希望使用thrift的用户,可以便于新用户的理解

  • 之前用的是rmi,之后想转成thrift的用户

具体使用可以参考https://github.com/hongliuliao/thrift-generator

本次发布主要更新了以下几个功能

  1. 支持接口中的注释

  2. 支持自定义异常

  3. 保证生成的thrift方法和java文件中定义的方法顺序一致(不使用反射)

修复bug:

  1. 修复list<enum> bug

  2. 修复double类型 bug

感谢: imxuelei 反馈的问题及建议

例子:

public interface ICommonUserService {

    public User login(int id, String name);

    public User getUserById(long id);

    public boolean saveUser(User user);

    public List getUserIds(long id); 

    public Map getUserByIds(List ids);

    public Map> getUsersByName(List names);

    public Map> getGroupUsers(List names, List userList, List lns, long ll);

    public List testCase1(Map num1, List num2, List num3, long num4, String num5);
}
public class ThriftFileBuilderTest {

    private ThriftFileBuilder fileBuilder = new ThriftFileBuilder();

    @Test
    public void toOutputstream() throws Exception {
        this.fileBuilder.buildToOutputStream(ICommonUserService.class, System.out);
    }

}

执行代码:

mvn test -Dtest=com.sohu.thrift.generator.builder.ThriftFileBuilderTest

之后控制台输出如下:

namespace java com.sohu.thrift.generator.test.thrift

    enum Status {
            NORMAL = 0,
            BLOCKED = 1
    }

    struct Account {
            1:i32 id,
            2:string name
    }
    struct User {
            1:i32 id,
            2:string name,
            3:bool sex,
            4:Status status,
            5:list ids,
            6:Account account
    }

    service ICommonUserService {
            User login(1:i32 arg0,2:string arg1),
            map> getUsersByName(1:list arg0),
            bool saveUser(1:User arg0),
            map getUserByIds(1:list arg0),
            list getUserIds(1:i64 arg0),
            map> getGroupUsers(1:list arg0,2:list arg1,3:list arg2,4:i64 arg3),
            User getUserById(1:i64 arg0),
            list testCase1(1:map arg0,2:list arg1,3:list arg2,4:i64 arg3,5:string arg4)
    }

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部