6.4.4. 高度なエクスターナライザーの登録
JBoss Data Grid では、AdvancedExternalizer 実装は、XML 、またはプログラミングによる設定、あるいはアノテーションにより登録できます。
静的な内部クラスとして格納された Person オブジェクトの高度なエクスターナライザー実装は、プログラミングまたは宣言により設定できます。
宣言による設定:
以下は、高度なエクスターナライザー実装の宣言による設定の例です。
<infinispan>
<global>
<serialization>
<advancedExternalizers>
<advancedExternalizer externalizerClass="Person$PersonExternalizer"/>
</advancedExternalizers>
</serialization>
</global>
...
</infinispan>
プログラミングによる設定:
以下は、高度なエクスターナライザー実装のプログラミングによる設定の例です。
GlobalConfigurationBuilder builder = ...
builder.serialization()
.addAdvancedExternalizer(new Person.PersonExternalizer());
AdvancedExternalizer 実装は、使用される設定方法に関係なく、ID に関連付ける必要があります。
AdvancedExternalizer 実装の ID が XML/Programmatic 設定とアノテーションを使用して定義される場合は、XML/Programmatic で定義された値が使用されます。
以下の例は、登録時に ID が定義されるエクスターナライザーを示しています。
宣言による設定:
以下は、登録時の ID 定義の場所に対する宣言による設定です。
<infinispan>
<global>
<serialization>
<advancedExternalizers>
<advancedExternalizer id="123"
externalizerClass="Person$PersonExternalizer"/>
</advancedExternalizers>
</serialization>
</global>
...
</infinispan>
プログラミングによる設定:
以下は、登録時の ID 定義の場所に対するプログラミングによる設定です。
GlobalConfigurationBuilder builder = ...
builder.serialization()
.addAdvancedExternalizer(123, new Person.PersonExternalizer());