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/Infinispan Query

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)

  1. Add the global element to the infinispan element:
    <infinispan>
      <global />
    </infinispan>
    
  2. Add the serialization element to the global element as follows:
    <infinispan>
      <global>
        <serialization />
      </global>
    </infinispan>
    
  3. Add the advancedExternalizer element to add information about the new advanced externalizer as follows:
    <infinispan>
      <global>
        <serialization>
          <advancedExternalizer />
        </serialization>
      </global>
    </infinispan>
    
  4. Define the externalizer ID using the id attribute as follows:
    <infinispan>
      <global>
        <serialization>
          <advancedExternalizers>
           <advancedExternalizer id="$ID" />
          </advancedExternalizers>
        </serialization>
      </global>
    </infinispan>
    
    Ensure that the selected ID is not from the range of IDs reserved for other modules.
  5. Define the externalizer class using the externalizerClass attribute as follows:
    <infinispan>
      <global>
        <serialization>
          <advancedExternalizers>
           <advancedExternalizer id="$ID" externalizerClass="org.infinispan.marshall.AdvancedExternalizerTest$IdViaConfigObj$Externalizer"/>
           </advancedExternalizers>
        </serialization>    
      </global>
    </infinispan>
    
    Replace the $IdViaAnnotationObj and $AdvancedExternalizer values as required.
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.