* {@inheritDoc}
*/
public void initialize(String carbonHome) {
CarbonBaseUtils.checkSecurity(ALLOWED_CLASSES);
log.debug("Starting Cache Manager initialization");
CacheConfiguration cacheConfiguration = CacheConfiguration.getInstance();
// Infinispan requires the bind.address system property to be set to function as a
// distributed cache. This has been done in CarbonServerManager#initializeCarbon()
GlobalConfiguration globalConfiguration;
if (Boolean.toString(true).equals(
cacheConfiguration.getProperty("configuration.clustering.enabled"))) {
globalConfiguration = GlobalConfiguration.getClusteredDefault();
String clusterName =
cacheConfiguration.getProperty("configuration.clustering.clusterName");
if (clusterName != null) {
globalConfiguration.setClusterName(clusterName);
} else {
globalConfiguration.setClusterName(DEFAULT_CLUSTER_NAME);
}
} else {
globalConfiguration = GlobalConfiguration.getNonClusteredDefault();
}
String ec2ConfigFile = cacheConfiguration.getProperty("configuration.ec2.configFile");
if (ec2ConfigFile != null) {
Properties props = new Properties();
props.setProperty("configurationFile", ec2ConfigFile.replace("${carbon.home}",
carbonHome));
globalConfiguration.setTransportProperties(props);
}
globalConfiguration.setAllowDuplicateDomains(true);
Configuration configuration = new Configuration();
String cacheMode = cacheConfiguration.getProperty("configuration.cacheMode");
boolean sync = Boolean.toString(true).equals(
cacheConfiguration.getProperty("configuration.sync"));
if ("distributed".equals(cacheMode)) {
configuration.setCacheMode(sync ?
Configuration.CacheMode.DIST_SYNC : Configuration.CacheMode.DIST_ASYNC);
if (log.isDebugEnabled()) {
log.debug("Infinispan Cache Mode : " + cacheMode +
(sync ? " (synchronous)" : " (asynchronous)"));
}
if (Boolean.toString(true).equals(
cacheConfiguration.getProperty("configuration.l1.enabled"))) {
configuration.setL1CacheEnabled(true);
String l1Lifespan = cacheConfiguration.getProperty("configuration.l1.lifespan");
if (l1Lifespan != null) {
configuration.setL1Lifespan(Long.parseLong(l1Lifespan));
if (log.isDebugEnabled()) {
log.debug("Infinispan L1 Cache : enabled");
log.debug("Infinispan L1 Lifespan : " + l1Lifespan);