6.4. Custom Externalizer ID Values
6.4. Custom Externalizer ID Values Advanced externalizers can be assigned custom IDs if desired. Some ID ranges are reserved for other modules or frameworks and must be avoided: Table 6.1. Reserved Externalizer ID Ranges ID Range Reserved For 1000-1099 The Infinispan Tree Module 1100-1199 Red Hat JBoss Data Grid Server modules 1200-1299 Hibernate Infinispan Second Level Cache 1300-1399 JBoss Data Grid Lucene Directory 1400-1499 Hibernate OGM 1500-1599 Hibernate Search 1600-1699 Infinispan Query Module 1700-1799 Infinispan Remote Query Module Report a bug 6.4.1. Customize the Externalizer ID (Declaratively) Customize the advanced externalizer ID declaratively (via XML) as follows: Procedure 6.2. Customizing the Externalizer ID (Declaratively) Add the global element to the infinispan element. Add the serialization element to the global element. Add the advancedExternalizer element to add information about the new advanced externalizer. Define the externalizer ID using the id attribute. Ensure that the selected ID is not from the range of IDs reserved for other modules. Define the externalizer class using the externalizerClass attribute. Replace the USDIdViaAnnotationObj and USDAdvancedExternalizer values as required. Report a bug 6.4.2. Customize the Externalizer ID (Programmatically) Use the following configuration to programmatically assign a specific ID to the externalizer: Example 6.5. Assign an ID to the Externalizer Replace the USDID with the desired ID. Report a bug
<infinispan> <global> <serialization> <advancedExternalizers> <advancedExternalizer id="USDID" externalizerClass="org.infinispan.marshall.AdvancedExternalizerTestUSDIdViaConfigObjUSDExternalizer"/> </advancedExternalizers> </serialization> </global> </infinispan> GlobalConfiguration globalConfiguration = new GlobalConfigurationBuilder() .serialization() .addAdvancedExternalizer(USDID, new Person.PersonExternalizer()) .build();