public static synchronized Configuration getDefaultConfiguration(CacheMode cacheMode) { if (defaults == null) { ConfigurationBuilderHolder holder = load(DEFAULTS); Configuration defaultConfig = holder.getDefaultConfigurationBuilder().build(); Map<CacheMode, Configuration> map = new EnumMap<CacheMode, Configuration>(CacheMode.class); map.put(defaultConfig.clustering().cacheMode(), defaultConfig); for (ConfigurationBuilder builder : holder.getNamedConfigurationBuilders().values()) { Configuration config = builder.build(); map.put(config.clustering().cacheMode(), config); } for (CacheMode mode : CacheMode.values()) { if (!map.containsKey(mode)) { map.put( mode, new ConfigurationBuilder().read(defaultConfig).clustering().cacheMode(mode).build()); } } defaults = map; } return defaults.get(cacheMode); }