Protobuf SDK は、.proto ファイルで定義した形式の Java クラスを生成するコンパイラーを提供します。お使いのオペレーティングシステムが Protobuf Java コードジェネレーター maven プラグイン をサポートしている場合、pom.xml に次の設定を追加することで、protobuf Java コードの生成を自動化できます。
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.4.1.Final</version>
</extension>
</extensions>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.4.1.Final</version>
</extension>
</extensions>
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>test-compile</goal>
<goal>compile</goal>
</goals>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}</protocArtifact>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>test-compile</goal>
<goal>compile</goal>
</goals>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}</protocArtifact>
</configuration>
</execution>
</executions>
</plugin>
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
これにより、Person と AddressBook の内部クラスを含む AddressBookProtos という名前の単一の Java クラスが生成されます。ビルダーも実装されています。生成されたクラスは、シリアル化メカニズムに必要な com.google.protobuf.Message を実装します。このため、これらのクラスのみがエクスチェンジのボディーで使用されることが重要です。com.google.protobuf.Message を実装しないクラスを使用するようにデータ形式に指示しようとすると、Camel はルート作成時に例外を出力します。生成されたビルダーを使用して、既存のドメインクラスのデータを変換します。