2013-11-06 4 views
0

У меня есть ID Apache AVRO, который определяет протокол, который я хотел бы использовать между java-клиентом и сервером, написанным на Python.Как скомпилировать Apache AVRO IDL в java?

@namespace("myproto.proto") 

protocol myproto 
{ 

    enum Status 
    { 
    STATUS_OK, 
    STATUS_ERROR 
    } 

    record GameList 
    { 
    array<string> games; 
    } 

    void somefunc(int arg); 
} 

Для Python, я использую это:

AVROTOOLS=$(TOOLS_PATH)/avro-tools-1.7.4.jar 
java -jar $(AVROTOOLS) idl fairunfair.avdl fairunfair.avpr 

Как я могу скомпилировать IDL в Java? Без использования maven, если это возможно.

ответ

1

Вы можете создать JSON-схему из вашего IDL с Авро-инструментов:

java -jar avro-tools-1.7.4.jar idl /path/to/idl 

Затем просто скомпилировать схему в Java, как обычно:

java -jar avro-tools-1.7.4.jar compile schema /path/to/schema . 

Я не думаю, что есть какие-либо способ скомпилировать непосредственно на Java из IDL. В меню помощи Avro-Tools нет такой опции.

+2

Это не работает для меня. Мне нужно сделать «компиляцию протокола». Странно, что IDL-файл не может просто описать схему, а не протокол. – aaa90210

Смежные вопросы