阅读AVPR很容易:
Protocol protocol = Protocol.parse(new File("ht-proto.avpr"));
但这对IDL文件(AVDL)不起作用。
如何阅读AVDL文件以便我可以完成以下任务,但使用AVDL代替AVPR:
public static void main (String[] args) {
Main.class.getResourceAsStream("net/protocol_man.avdl");
Protocol protocol =
Protocol.parse(Main.class.getResourceAsStream("net/protocol_man.avpr"));
//this doesnt work for AVDL
}
答案 0 :(得分:0)
如果您正在使用maven。你可以添加以下插件。
这将创建java源代码,并且你可以做很多事情。
我的意思是你以后可以引用其中一个生成的类,例如Event.class
并询问它的架构事件。$ SCHEMA
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>1.7.3</version>
<executions>
<execution>
<id>schemas</id>
<phase>generate-sources</phase>
<goals>
<goal>idl-protocol</goal>
</goals>
<configuration>
<includes>
<include>net/protocol_man.avdl</include>
</includes>
<fieldVisibility>PRIVATE</fieldVisibility>
<sourceDirectory>src/main/resources</sourceDirectory>
<outputDirectory>${project.build.directory}/generated-sources/java
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>