252.5. Java クラスの生成
Protobuf SDK は、.proto ファイルで定義した形式の Java クラスを生成するコンパイラーを提供します。オペレーティングシステムが Protobuf Java コードジェネレーター maven プラグイン でサポートされている場合は、以下の設定を pom.xml に追加することで、protobuf Java コードの生成を自動化できます。
プロジェクトの pom.xml の < build > タグまたは ${os.detected.classifier} パラメーター内にオペレーティングシステムおよび CPU アーキテクチャー検出拡張を手動で挿入します。
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.4.1.Final</version>
</extension>
</extensions>
プロジェクトの pom.xml の gRPC および protobuf Java コードジェネレータープラグ イン <plugins > タグを挿入します。
<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>
手動で必要となる追加の対応言語に対してコンパイラーを実行することもできます。
protoc --java_out=. ./proto/addressbook.proto
これにより、Person および AddressBook の内部クラスが含まれる AddressBookProtos という名前の単一の Java クラスが生成されます。ビルダーも実装されます。生成されたクラスは com.google.protobuf.Message を実装します。これは、シリアライズメカニズムに必要です。このため、これらのクラスのみがエクスチェンジのボディーで使用されることが重要です。Camel は、com.google.protobuf.Message を実装しないクラスを使用するように Data Format に伝えると、ルートの作成時に例外をスローします。生成されたビルダーを使用して、既存のドメインクラスからデータを変換します。