Example usage for org.apache.commons.configuration Configuration containsKey

List of usage examples for org.apache.commons.configuration Configuration containsKey

Introduction

In this page you can find the example usage for org.apache.commons.configuration Configuration containsKey.

Prototype

boolean containsKey(String key);

Source Link

Document

Check if the configuration contains the specified key.

Usage

From source file:com.cisco.oss.foundation.http.netlifx.netty.NettyNetflixHttpClient.java

private InternalServerProxyMetadata loadServersMetadataConfiguration() {

    Configuration subset = ConfigurationFactory.getConfiguration().subset(getApiName());
    final Iterator<String> keysIterator = subset.getKeys();

    // read default values
    int readTimeout = subset.getInt("http." + LoadBalancerConstants.READ_TIME_OUT,
            LoadBalancerConstants.DEFAULT_READ_TIMEOUT);
    int connectTimeout = subset.getInt("http." + LoadBalancerConstants.CONNECT_TIME_OUT,
            LoadBalancerConstants.DEFAULT_CONNECT_TIMEOUT);
    long waitingTime = subset.getLong("http." + LoadBalancerConstants.WAITING_TIME,
            LoadBalancerConstants.DEFAULT_WAITING_TIME);
    int numberOfAttempts = subset.getInt("http." + LoadBalancerConstants.NUMBER_OF_ATTEMPTS,
            LoadBalancerConstants.DEFAULT_NUMBER_OF_ATTEMPTS);
    long retryDelay = subset.getLong("http." + LoadBalancerConstants.RETRY_DELAY,
            LoadBalancerConstants.DEFAULT_RETRY_DELAY);

    long idleTimeout = subset.getLong("http." + LoadBalancerConstants.IDLE_TIME_OUT,
            LoadBalancerConstants.DEFAULT_IDLE_TIMEOUT);
    int maxConnectionsPerAddress = subset.getInt("http." + LoadBalancerConstants.MAX_CONNECTIONS_PER_ADDRESS,
            LoadBalancerConstants.DEFAULT_MAX_CONNECTIONS_PER_ADDRESS);
    int maxConnectionsTotal = subset.getInt("http." + LoadBalancerConstants.MAX_CONNECTIONS_TOTAL,
            LoadBalancerConstants.DEFAULT_MAX_CONNECTIONS_TOTAL);
    int maxQueueSizePerAddress = subset.getInt("http." + LoadBalancerConstants.MAX_QUEUE_PER_ADDRESS,
            LoadBalancerConstants.DEFAULT_MAX_QUEUE_PER_ADDRESS);
    boolean followRedirects = subset.getBoolean("http." + LoadBalancerConstants.FOLLOW_REDIRECTS, false);
    boolean disableCookies = subset.getBoolean("http." + LoadBalancerConstants.DISABLE_COOKIES, false);
    boolean autoCloseable = subset.getBoolean("http." + LoadBalancerConstants.AUTO_CLOSEABLE, true);
    boolean autoEncodeUri = subset.getBoolean("http." + LoadBalancerConstants.AUTO_ENCODE_URI, true);
    boolean staleConnectionCheckEnabled = subset
            .getBoolean("http." + LoadBalancerConstants.IS_STALE_CONN_CHECK_ENABLED, false);
    boolean serviceDirectoryEnabled = subset
            .getBoolean("http." + LoadBalancerConstants.SERVICE_DIRECTORY_IS_ENABLED, false);
    String serviceName = subset.getString("http." + LoadBalancerConstants.SERVICE_DIRECTORY_SERVICE_NAME,
            "UNKNOWN");

    String keyStorePath = subset.getString("http." + LoadBalancerConstants.KEYSTORE_PATH, "");
    String keyStorePassword = subset.getString("http." + LoadBalancerConstants.KEYSTORE_PASSWORD, "");
    String trustStorePath = subset.getString("http." + LoadBalancerConstants.TRUSTSTORE_PATH, "");
    String trustStorePassword = subset.getString("http." + LoadBalancerConstants.TRUSTSTORE_PASSWORD, "");
    startEurekaClient = subset.getBoolean("http.startEurekaClient", true);

    final List<String> keys = new ArrayList<String>();

    while (keysIterator.hasNext()) {
        String key = keysIterator.next();
        keys.add(key);// w  w  w .j a va  2s. c o  m
    }

    Collections.sort(keys);

    List<Pair<String, Integer>> hostAndPortPairs = new CopyOnWriteArrayList<Pair<String, Integer>>();

    for (String key : keys) {

        if (key.contains(LoadBalancerConstants.HOST)) {

            String host = subset.getString(key);

            // trim the host name
            if (org.apache.commons.lang.StringUtils.isNotEmpty(host)) {
                host = host.trim();
            }
            final String portKey = key.replace(LoadBalancerConstants.HOST, LoadBalancerConstants.PORT);
            if (subset.containsKey(portKey)) {
                int port = subset.getInt(portKey);
                // save host and port for future creation of server list
                hostAndPortPairs.add(Pair.of(host, port));
            }
        }

    }

    InternalServerProxyMetadata metadata = new InternalServerProxyMetadata(readTimeout, connectTimeout,
            idleTimeout, maxConnectionsPerAddress, maxConnectionsTotal, maxQueueSizePerAddress, waitingTime,
            numberOfAttempts, retryDelay, hostAndPortPairs, keyStorePath, keyStorePassword, trustStorePath,
            trustStorePassword, followRedirects, autoCloseable, staleConnectionCheckEnabled, disableCookies,
            serviceDirectoryEnabled, serviceName, autoEncodeUri);

    return metadata;

}

From source file:com.cisco.oss.foundation.http.netlifx.apache.ApacheNetflixHttpClient.java

private InternalServerProxyMetadata loadServersMetadataConfiguration() {

    Configuration subset = ConfigurationFactory.getConfiguration().subset(getApiName());
    final Iterator<String> keysIterator = subset.getKeys();

    // read default values
    int readTimeout = subset.getInt("http." + LoadBalancerConstants.READ_TIME_OUT,
            LoadBalancerConstants.DEFAULT_READ_TIMEOUT);
    int connectTimeout = subset.getInt("http." + LoadBalancerConstants.CONNECT_TIME_OUT,
            LoadBalancerConstants.DEFAULT_CONNECT_TIMEOUT);
    long waitingTime = subset.getLong("http." + LoadBalancerConstants.WAITING_TIME,
            LoadBalancerConstants.DEFAULT_WAITING_TIME);
    int numberOfAttempts = subset.getInt("http." + LoadBalancerConstants.NUMBER_OF_ATTEMPTS,
            LoadBalancerConstants.DEFAULT_NUMBER_OF_ATTEMPTS);
    long retryDelay = subset.getLong("http." + LoadBalancerConstants.RETRY_DELAY,
            LoadBalancerConstants.DEFAULT_RETRY_DELAY);

    long idleTimeout = subset.getLong("http." + LoadBalancerConstants.IDLE_TIME_OUT,
            LoadBalancerConstants.DEFAULT_IDLE_TIMEOUT);
    int maxConnectionsPerAddress = subset.getInt("http." + LoadBalancerConstants.MAX_CONNECTIONS_PER_ADDRESS,
            LoadBalancerConstants.DEFAULT_MAX_CONNECTIONS_PER_ADDRESS);
    int maxConnectionsTotal = subset.getInt("http." + LoadBalancerConstants.MAX_CONNECTIONS_TOTAL,
            LoadBalancerConstants.DEFAULT_MAX_CONNECTIONS_TOTAL);
    int maxQueueSizePerAddress = subset.getInt("http." + LoadBalancerConstants.MAX_QUEUE_PER_ADDRESS,
            LoadBalancerConstants.DEFAULT_MAX_QUEUE_PER_ADDRESS);
    boolean followRedirects = subset.getBoolean("http." + LoadBalancerConstants.FOLLOW_REDIRECTS, false);
    boolean disableCookies = subset.getBoolean("http." + LoadBalancerConstants.DISABLE_COOKIES, false);
    boolean autoCloseable = subset.getBoolean("http." + LoadBalancerConstants.AUTO_CLOSEABLE, true);
    boolean autoEncodeUri = subset.getBoolean("http." + LoadBalancerConstants.AUTO_ENCODE_URI, true);
    boolean staleConnectionCheckEnabled = subset
            .getBoolean("http." + LoadBalancerConstants.IS_STALE_CONN_CHECK_ENABLED, false);
    boolean serviceDirectoryEnabled = subset
            .getBoolean("http." + LoadBalancerConstants.SERVICE_DIRECTORY_IS_ENABLED, false);
    String serviceName = subset.getString("http." + LoadBalancerConstants.SERVICE_DIRECTORY_SERVICE_NAME,
            "UNKNOWN");

    String keyStorePath = subset.getString("http." + LoadBalancerConstants.KEYSTORE_PATH, "");
    String keyStorePassword = subset.getString("http." + LoadBalancerConstants.KEYSTORE_PASSWORD, "");
    String trustStorePath = subset.getString("http." + LoadBalancerConstants.TRUSTSTORE_PATH, "");
    String trustStorePassword = subset.getString("http." + LoadBalancerConstants.TRUSTSTORE_PASSWORD, "");
    startEurekaClient = subset.getBoolean("http.startEurekaClient", true);

    final List<String> keys = new ArrayList<String>();

    while (keysIterator.hasNext()) {
        String key = keysIterator.next();
        keys.add(key);/*from  ww w .  j  a va  2s .c  o m*/
    }

    Collections.sort(keys);

    List<Pair<String, Integer>> hostAndPortPairs = new CopyOnWriteArrayList<Pair<String, Integer>>();

    for (String key : keys) {

        if (key.contains(LoadBalancerConstants.HOST)) {

            String host = subset.getString(key);

            // trim the host name
            if (org.apache.commons.lang.StringUtils.isNotEmpty(host)) {
                host = host.trim();
            }
            final String portKey = key.replace(LoadBalancerConstants.HOST, LoadBalancerConstants.PORT);
            if (subset.containsKey(portKey)) {
                int port = subset.getInt(portKey);
                // save host and port for future creation of server list
                hostAndPortPairs.add(Pair.of(host, port));
            }
        }

    }

    InternalServerProxyMetadata metadata = new InternalServerProxyMetadata(readTimeout, connectTimeout,
            idleTimeout, maxConnectionsPerAddress, maxConnectionsTotal, maxQueueSizePerAddress, waitingTime,
            numberOfAttempts, retryDelay, hostAndPortPairs, keyStorePath, keyStorePassword, trustStorePath,
            trustStorePassword, followRedirects, autoCloseable, staleConnectionCheckEnabled, disableCookies,
            serviceDirectoryEnabled, serviceName, autoEncodeUri);
    //        metadata.getHostAndPortPairs().addAll(hostAndPortPairs);
    //        metadata.setReadTimeout(readTimeout);
    //        metadata.setConnectTimeout(connectTimeout);
    //        metadata.setNumberOfRetries(numberOfAttempts);
    //        metadata.setRetryDelay(retryDelay);
    //        metadata.setWaitingTime(waitingTime);

    return metadata;

}

From source file:nl.salp.warcraft4j.dev.DevToolsConfig.java

private void initialise(Configuration configuration) {
    if (configuration == null || configuration.isEmpty()) {
        throw new Warcraft4jConfigException(
                "Can't create a Warcraft4J configuration from an empty configuration.");
    }/* ww  w.  j  a v a  2s.c  om*/
    online = configuration.getBoolean(USE_CDN, USE_CDN_DEFAULT);
    if (!configuration.containsKey(WOW_DIR)) {
        throw new Warcraft4jConfigException("WoW installation directory was not configured.");
    }
    wowDir = Paths.get(resolve(configuration.getString(WOW_DIR), configuration));
    if (Files.notExists(wowDir) || !Files.isDirectory(wowDir) || !Files.isReadable(wowDir)) {
        throw new Warcraft4jConfigException(
                format("WoW installation directory %s does not exist or can't be read.", wowDir));
    }
    w4jDir = Paths.get(resolve(configuration.getString(W4J_DIR), configuration));
    if (Files.notExists(w4jDir)) {
        try {
            Files.createDirectories(w4jDir);
        } catch (IOException e) {
            throw new Warcraft4jConfigException(
                    format("Unable to create Warcraft4J working directory %s.", w4jDir), e);
        }
    } else if (!Files.isDirectory(w4jDir) || !Files.isReadable(w4jDir) || !Files.isWritable(w4jDir)) {
        throw new Warcraft4jConfigException(
                format("Warcraft4J working directory %s is either not a directory or not accessible.", w4jDir));
    }

    listFile = Paths.get(resolve(configuration.getString(LISTFILE, LISTFILE_DEFAULT), configuration));
    if (Files.notExists(listFile) || !Files.isRegularFile(listFile) || !Files.isReadable(listFile)) {
        listFile = null;
    }

    if (configuration.containsKey(DATA_EXTRACTED)) {
        extractDataDir = Paths.get(resolve(configuration.getString(DATA_EXTRACTED), configuration));
        if (Files.notExists(extractDataDir)) {
            try {
                Files.createDirectories(extractDataDir);
            } catch (IOException e) {
                throw new Warcraft4jConfigException(format("Unable to create extracted directory %s.", w4jDir),
                        e);
            }
        } else if (!Files.isDirectory(w4jDir) || !Files.isReadable(w4jDir) || !Files.isWritable(w4jDir)) {
            throw new Warcraft4jConfigException(
                    format("Extracted data directory %s is either not a directory or not accessible.", w4jDir));
        }
    }

    cache = configuration.getBoolean(CDN_CACHE, CDN_CACHE_DEFAULT);
    if (cache) {
        cacheDir = Paths
                .get(resolve(configuration.getString(CDN_CACHE_PATH, CDN_CACHE_PATH_DEFAULT), configuration));
        if (Files.notExists(cacheDir)) {
            try {
                Files.createDirectories(cacheDir);
            } catch (IOException e) {
                throw new Warcraft4jConfigException(format("Unable to create cache directory %s.", cacheDir),
                        e);
            }
        } else if (!Files.isDirectory(cacheDir) || !Files.isReadable(cacheDir) || !Files.isWritable(cacheDir)) {
            throw new Warcraft4jConfigException(
                    format("Cache directory %s is either not a directory or not accessible.", cacheDir));
        }
    }
    locale = Locale
            .getLocale(resolve(configuration.getString(WOW_LOCALE, valueOf(WOW_LOCALE_DEFAULT)), configuration))
            .orElseThrow(() -> new Warcraft4jConfigException(format("Locale %s is not a valid locale.",
                    resolve(configuration.getString(WOW_LOCALE), configuration))));
    region = Region
            .getRegion(resolve(configuration.getString(WOW_REGION, valueOf(WOW_REGION_DEFAULT)), configuration))
            .orElseThrow(() -> new Warcraft4jConfigException(format("Region %s is not a valid region.",
                    resolve(configuration.getString(WOW_REGION), configuration))));
    branch = Branch
            .getBranch(resolve(configuration.getString(WOW_BRANCH, valueOf(WOW_BRANCH_DEFAULT)), configuration))
            .orElseThrow(() -> new Warcraft4jConfigException(format("Branch %s is not a valid branch.",
                    resolve(configuration.getString(WOW_BRANCH), configuration))));
    mongodbUri = configuration.getString(MONGODB_URI, null);
    mongodbUser = configuration.getString(MONGODB_USER, null);
    mongodbPassword = configuration.getString(MONGODB_PASSWORD, null);
    if (configuration.containsKey(NEO4J_DATA_PATH)) {
        neo4jDataPath = Paths.get(resolve(configuration.getString(NEO4J_DATA_PATH), configuration));
        if (Files.notExists(neo4jDataPath)) {
            try {
                Files.createDirectories(neo4jDataPath);
            } catch (IOException e) {
                throw new Warcraft4jConfigException(
                        format("Unable to create Neo4J data directory %s.", neo4jDataPath), e);
            }
        } else if (!Files.isDirectory(neo4jDataPath) || !Files.isReadable(neo4jDataPath)
                || !Files.isWritable(neo4jDataPath)) {
            throw new Warcraft4jConfigException(format(
                    "Neo4J data directory %s is either not a directory or not accessible.", neo4jDataPath));
        }
    }
    neo4jExtUri = configuration.getString(NEO4J_EXT_URI, null);
    neo4jExtUser = configuration.getString(NEO4J_EXT_USER, null);
    neo4jExtPassword = configuration.getString(NEO4J_EXT_PASSWORD, null);
}

From source file:nl.salp.warcraft4j.dev.DevToolsConfig.java

private String resolve(String value, Configuration configuration) {
    String resolvedValue = value;
    if (isNotEmpty(value)) {
        int searchIndex = resolvedValue.indexOf("${");
        while (searchIndex < resolvedValue.length() - 2 && searchIndex > -1) {
            int end = resolvedValue.indexOf("}", searchIndex) + 1;
            if (end > -1) {
                String replaceKey = resolvedValue.substring(searchIndex + 2, end - 1);
                if (configuration.containsKey(replaceKey)) {
                    resolvedValue = resolvedValue.substring(0, searchIndex)
                            + configuration.getString(replaceKey) + resolvedValue.substring(end);
                    searchIndex = resolvedValue.indexOf("${", searchIndex);
                } else {
                    searchIndex = resolvedValue.indexOf("${", end);
                }//from   w  w  w.  j  av  a2 s .c o m
            } else {
                searchIndex = resolvedValue.indexOf("${", searchIndex + 2);
            }
        }
    }
    return value;
}

From source file:nl.tudelft.graphalytics.configuration.ConfigurationUtil.java

public static void ensureConfigurationKeyExists(Configuration config, String property)
        throws InvalidConfigurationException {
    if (!config.containsKey(property)) {
        throw new InvalidConfigurationException("Missing property: \"" + resolve(config, property) + "\".");
    }// w w w .j ava2  s .co  m
}

From source file:openlr.properties.OpenLRPropertyAccess.java

/**
 * Gets the integer property value./*w  w w . ja  va  2s . c  om*/
 * 
 * @param properties
 *            the properties
 * @param property
 *            the property
 * @param id
 *            the id
 * @return the boolean property value
 * @throws OpenLRProcessingException
 *             the open lr processing exception
 */
@SuppressWarnings("unchecked")
public static int getIntegerPropertyValueFromMap(final Configuration properties, final OpenLRProperty property,
        final String id) throws OpenLRProcessingException {
    if (property.getPropertyType() != PropertyType.INTEGER_BY_MAP) {
        String error = property.getKey() + " is not an integer from map";
        LOG.error(error);
        throw new OpenLRPropertyException(PropertyError.INVALID_PROPERTY_TYPE, error);
    }
    Map<String, Integer> data = (Map<String, Integer>) property.getDefault();
    Integer defaultValue = data.get(id);
    if (properties == null) {
        if (defaultValue == null) {
            String error = property.getKey() + "[" + id + "] has no default value";
            LOG.error(error);
            throw new OpenLRPropertyException(PropertyError.INVALID_PROPERTY_TYPE, error);
        }
        return data.get(id);
    }
    if (!properties.containsKey(property.getKey() + "." + id) && defaultValue == null) {
        String error = property.getKey() + "[" + id + "] has no value";
        LOG.error(error);
        throw new OpenLRPropertyException(PropertyError.INVALID_PROPERTY_TYPE, error);
    }
    return properties.getInt(property.getKey() + "." + id, defaultValue);
}

From source file:org.ambraproject.article.service.BrowseServiceImpl.java

/**
 * Set the configuration class//from   ww w  .  jav a2  s.  c om
 *
 * @param config the configuration class to use
 * @throws ApplicationException if required configuration settings are missing
 */
@Required
public void setConfiguration(Configuration config) throws ApplicationException {
    if (config.containsKey("ambra.services.browse.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.browse.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) config).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.browse.sortOptions.option not defined " + "in configuration.");
    }

    this.cacheTimeToLive = config.getInt("ambra.services.browse.time", 15) * 60;
    this.useCache = config.getBoolean("ambra.services.browse.cache", true);
}

From source file:org.ambraproject.search.service.SolrSearchService.java

public void setConfiguration(Configuration config) throws ApplicationException {
    StringBuilder hightlightFieldBuilder = new StringBuilder();
    queryTimeout = config.getInt("ambra.services.search.timeout", 60000); // default to 1 min

    List sizes = config.getList("ambra.services.search.pageSizes.size");

    if (sizes == null) {
        throw new ApplicationException("ambra.services.search.pageSizes not defined " + "in configuration.");
    }/*from  w  w  w .j av  a  2 s.com*/

    pageSizes = sizes;

    if (config.containsKey("ambra.services.search.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.search.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) config).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.search.sortOptions.option not defined " + "in configuration.");
    }

    List hFields = config.getList("ambra.services.search.highlightFields.field");

    if (hFields == null) {
        throw new ApplicationException(
                "ambra.services.search.highlightFields.field not defined " + "in configuration.");
    }

    for (Object field : hFields) {
        if (hightlightFieldBuilder.length() > 0) {
            hightlightFieldBuilder.append(",");
        }
        hightlightFieldBuilder.append(field.toString());
    }

    if (config.containsKey("ambra.services.search.keywordFields.field")) {
        validKeywords = new HashMap();
        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc
                .configurationsAt("ambra.services.search.keywordFields.field");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validKeywords.put(key, value);

            //These fields can be highlighted too!
            if (hightlightFieldBuilder.length() > 0) {
                hightlightFieldBuilder.append(",");
            }
            hightlightFieldBuilder.append(value);
        }
    } else {
        throw new ApplicationException(
                "ambra.services.search.keywordFields.field not defined " + "in configuration.");
    }

    this.highlightFields = hightlightFieldBuilder.toString();
}

From source file:org.ambraproject.service.feed.FeedServiceImpl.java

@Required
public void setConfiguration(Configuration configuration) throws ApplicationException {
    this.configuration = configuration;
    StringBuilder hightlightFieldBuilder = new StringBuilder();
    queryTimeout = configuration.getInt("ambra.services.search.timeout", 60000); // default to 1 min

    if (configuration.containsKey("ambra.services.search.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) configuration;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.search.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);// ww w.j  a v a  2s.  c  o  m
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) configuration).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.search.sortOptions.option not defined " + "in configuration.");
    }

    if (configuration.containsKey("ambra.services.search.keywordFields.field")) {
        validKeywords = new HashMap();
        HierarchicalConfiguration hc = (HierarchicalConfiguration) configuration;
        List<HierarchicalConfiguration> sorts = hc
                .configurationsAt("ambra.services.search.keywordFields.field");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validKeywords.put(key, value);

            //These fields can be highlighted too!
            if (hightlightFieldBuilder.length() > 0) {
                hightlightFieldBuilder.append(",");
            }
            hightlightFieldBuilder.append(value);
        }
    } else {
        throw new ApplicationException(
                "ambra.services.search.keywordFields.field not defined " + "in configuration.");
    }
}

From source file:org.ambraproject.service.search.SolrSearchService.java

public void setConfiguration(Configuration config) throws ApplicationException {
    queryTimeout = config.getInt("ambra.services.search.timeout", 60000); // default to 1 min

    List sizes = config.getList("ambra.services.search.pageSizes.size");

    if (sizes == null) {
        throw new ApplicationException("ambra.services.search.pageSizes not defined " + "in configuration.");
    }//  www.  j ava2s .c o  m

    pageSizes = sizes;

    if (config.containsKey("ambra.services.search.sortOptions.option")) {
        validSorts = new HashMap();
        displaySorts = new ArrayList();

        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc.configurationsAt("ambra.services.search.sortOptions.option");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validSorts.put(key, value);
            displaySorts.add(key);
        }

        ((HierarchicalConfiguration) config).setExpressionEngine(null);
    } else {
        throw new ApplicationException(
                "ambra.services.search.sortOptions.option not defined " + "in configuration.");
    }

    if (config.containsKey("ambra.services.search.keywordFields.field")) {
        validKeywords = new HashMap();
        HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
        List<HierarchicalConfiguration> sorts = hc
                .configurationsAt("ambra.services.search.keywordFields.field");

        for (HierarchicalConfiguration s : sorts) {
            String key = s.getString("[@displayName]");
            String value = s.getString("");
            validKeywords.put(key, value);

        }
    } else {
        throw new ApplicationException(
                "ambra.services.search.keywordFields.field not defined " + "in configuration.");
    }
}