Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.google.common.base.Predicate; import com.google.common.base.Strings; /** * Created by IntelliJ IDEA. * User: rmh * Date: 11/24/11 * Time: 2:38 PM */ @Component public final class NodeSettingsBuilder extends AbstractElasticsearchSettingsBuilder { private final static Logger LOG = LoggerFactory.getLogger(NodeSettingsBuilder.class); public Settings buildNodeSettings() { final ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder(); final Map<String, String> nodePropertyMap = getNodePropertyMap(); populateSettings(settings, nodePropertyMap, ELASTICSEARCH_PROPERTIES_PREFIX); checkClusterSettings(settings); return settings.build(); } private void checkClusterSettings(final ImmutableSettings.Builder settings) { final Boolean local = getAsBoolean(settings.get("node.local"), null); final Boolean clusterEnabled = getAsBoolean(configProperties.getProperty("cms.cluster.enabled"), false); if (local == null) { settings.put("node.local", !clusterEnabled); } else { if (local != (!clusterEnabled)) { LOG.warn("Elasticsearch cluster enabled setting: '" + !local + "' differ from cms.cluster.enabled - property: '" + clusterEnabled + "' which may cause unexpected behaviour"); } } } private Boolean getAsBoolean(String value, Boolean defaultValue) { if (Strings.isNullOrEmpty(value)) { return defaultValue; } return Boolean.valueOf(StringUtils.trimToNull(value)); } private Map<String, String> getNodePropertyMap() { return configProperties.getSubMap(new Predicate<String>() { @Override public boolean apply(final String input) { return StringUtils.startsWith(input, ELASTICSEARCH_PROPERTIES_PREFIX) && !StringUtils.startsWith(input, INDEX_PROPERTIES_PREFIX); } }); } }