Apache Jute

在看ZooKeepr的实现是,发现了有几个包缺失了(e.g. data, proto)。以为是code下载错了,后来发现,其实这些包的code都是由Jute自动生成的。

Jute主要用到了JavaCC。以前还总是想着使用Bison和JNI来做一个编译器,最近看了ZooKeeper,才发现,原来java早就有个类似的解析器生成工具了JavaCC, 决定使用它来继续之前的项目。

简单梳理一下ZooKeeper是如何使用JavaCC的吧。ZooKeeper 其实是在Apache Jute (Hadoop Record Compiler)中使用的。Jute已经被Hadoop弃用了,目前只有ZooKeeper在使用(据说)。Jute相关的文档也非常少,有些零零散散的code和jira。所以这里就凭感觉加上些许ZooKeeper的code来猜猜其是如何被使用的了。

ZooKeeper使用Jute来生成RPC和Serialization相关的code。定义生成哪些文件是在“ZooKeeper.jute”里面进行的。为了解析该文件,ZooKeeper需要使用一个解析器。而该解析器则正是由JavaCC编译而成。解析器的编译文件在rcc.jj文件中。然后再阅读一下ZooKeeper的build.xml即可知道ZooKeeper是如何一步一步的使用Jute来生成所需要的code了。具体的细节只要慢慢阅读那些枯燥的语法和接口定义就好了。

 

最后欢迎大家访问我的个人网站:1024s

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值