public <T> T construct(Class<T> componentType) {
if (!configuration.clustering().cacheMode().isClustered())
return null;
if (configuration.clustering().cacheMode().isDistributed())
return componentType.cast(new DistributedStateTransferManagerImpl());
else if (configuration.clustering().cacheMode().isReplicated())
return componentType.cast(new ReplicatedStateTransferManagerImpl());
else if (configuration.clustering().cacheMode().isInvalidation())
return componentType.cast(new DummyInvalidationStateTransferManagerImpl());
else