// Handle the case that null is passed in
if (config == null)
return null;
FluentGlobalConfiguration legacy = new org.infinispan.config.GlobalConfiguration(config.classLoader()).fluent();
legacy.transport()
.clusterName(config.transport().clusterName())
.machineId(config.transport().machineId())
.rackId(config.transport().rackId())
.siteId(config.transport().siteId())
.strictPeerToPeer(config.transport().strictPeerToPeer())
.distributedSyncTimeout(config.transport().distributedSyncTimeout())
.nodeName(config.transport().nodeName())
.withProperties(config.transport().properties());
if (config.transport().transport() != null)
legacy.transport().transportClass(config.transport().transport().getClass());
// Implicitly enables stats
legacy.globalJmxStatistics()
.jmxDomain(config.globalJmxStatistics().domain())
.mBeanServerLookup(config.globalJmxStatistics().mbeanServerLookup())
.allowDuplicateDomains(config.globalJmxStatistics().allowDuplicateDomains())
.cacheManagerName(config.globalJmxStatistics().cacheManagerName())
.withProperties(config.globalJmxStatistics().properties());
if (!config.globalJmxStatistics().enabled())
legacy.globalJmxStatistics().disable();
Marshaller marshaller = config.serialization().marshaller();
if (marshaller instanceof org.infinispan.marshall.Marshaller)
legacy.serialization()
.marshallerClass(((org.infinispan.marshall.Marshaller)marshaller).getClass())
.version(config.serialization().version());
for (Entry<Integer, AdvancedExternalizer<?>> entry : config.serialization().advancedExternalizers().entrySet()) {
AdvancedExternalizer<?> advancedExternalizer = entry.getValue();
if (advancedExternalizer instanceof org.infinispan.marshall.AdvancedExternalizer)
legacy.serialization().addAdvancedExternalizer(entry.getKey(), (org.infinispan.marshall.AdvancedExternalizer)advancedExternalizer);
}
legacy.serialization().classResolver(config.serialization().classResolver());
legacy.asyncTransportExecutor()
.factory(config.asyncTransportExecutor().factory().getClass())
.withProperties(config.asyncTransportExecutor().properties());
legacy.asyncListenerExecutor()
.factory(config.asyncListenerExecutor().factory().getClass())
.withProperties(config.asyncListenerExecutor().properties());
legacy.evictionScheduledExecutor()
.factory(config.evictionScheduledExecutor().factory().getClass())
.withProperties(config.evictionScheduledExecutor().properties());
legacy.replicationQueueScheduledExecutor()
.factory(config.replicationQueueScheduledExecutor().factory().getClass())
.withProperties(config.replicationQueueScheduledExecutor().properties());
legacy.shutdown().hookBehavior(org.infinispan.config.GlobalConfiguration.ShutdownHookBehavior.valueOf(config.shutdown().hookBehavior().name()));
return legacy.build();
}