2011-01-11 5 views
5

Czy ktoś wie o jakichkolwiek narzędziach, które wygenerują plik .proto? Z istniejącego xsd lub z istniejących obiektów Java?Generowanie pliku .proto z istniejących obiektów Java lub xsd

Używam usługi Apache CXF do nawiązania połączenia z serwisem. Zwrócony obiekt został wygenerowany automatycznie z xsd.

ok, więc teraz chcę przekazać te dane za pomocą buforów protokołów do innego systemu. Model obiektowy jest bardzo złożony i zmienia się regularnie - tzn. Otrzymuję nowy xsd za każdym razem, gdy zmienia się model obiektu. Chciałbym móc automatycznie generować plik .proto, aby móc wysyłać dane za pomocą buforów protokołu google.

Szukałem wszędzie, ale utknąłem.

Cieszę się

i.) Generują .proto plik z XSD lub ii.) Generują .proto plik z obiektami Javy (które zostały wygenerowane z XSD)

I nie mogę znaleźć żadnego sposobu na zrobienie tego, już nie pisząc czegoś samemu ... Twoja pomoc doceniona

+0

może będę w stanie to zrobić z xsd-> C# (przez xsd.exe) -> Proto (poprzez protobuf-net) - prawdopodobnie trochę kruche, zwłaszcza jeśli obiekty są skomplikowane ... –

+0

mmm .. ok dzięki ... to może być obejście - Nie mogę uwierzyć, że Google nie zapewnia narzędzia do robienia tego jak ja Jestem pewien, że jeśli chcą, aby ludzie korzystali z tej technologii, zakładaliby, że przyjęcie modelu danych ex post i przekonwertowanie go do pliku proto byłoby dość powszechnym przypadkiem użycia - chyba że przeoczyłem tutaj punkt buforów protokołu ... – ConfusedProtocolBuffer

+0

Więc musiałem to ostatnio zrobić w pracy, a ja mam otwarty kod źródłowy. To całkiem proste, ale obejmuje większość popularnych struktur danych, których używam. Możesz pobrać kod z [tutaj] (https://github.com/lloydsparkes/java-proto-generator) – lloydsparkes

Odpowiedz

1

Wierzę, że proto-stuff będzie ci pomocna w pewnym stopniu. Nie jestem pewien, czy generuje plik .proto dla ciebie, ale protostuff-runtime automatycznie włącza twoje istniejące serwery do różnych typów.

+0

dzięki za odpowiedź, chodzi o to, że nadal potrzebuję wygenerować plik proto jak muszę to dać zespołowi programistycznemu budującemu drugą stronę rozwiązania w C# ... jakichkolwiek innych pomysłach? Dzięki – ConfusedProtocolBuffer

0

Wypróbuj projekt protostuff-runtime-proto z Github. Jeśli protostuff RuntimeSchema, można przekonwertować go do pliku .proto przez ten kod:.

System.out.println(Generators.newProtoGenerator(schema).generate());