2013-08-29 4 views
2

Показание спосо АВПР легко:Avro: Как определить протокол из AVDL?

Protocol protocol = Protocol.parse(new File("ht-proto.avpr")); 

Но это не работает для IDL файлов (AVDL).

Как прочитать файл AVDL, чтобы я мог выполнить следующую задачу, но с использованием AVDL вместо АВПР:

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

Если вы работаете с 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>