Java 类org.elasticsearch.common.settings.SettingsException 实例源码

项目:elasticsearch_my    文件:InternalSettingsPreparerTests.java   
public void testMultipleSettingsFileNotAllowed() throws IOException {
    InputStream yaml = getClass().getResourceAsStream("/config/elasticsearch.yaml");
    InputStream properties = getClass().getResourceAsStream("/config/elasticsearch.properties");
    Path home = createTempDir();
    Path config = home.resolve("config");
    Files.createDirectory(config);
    Files.copy(yaml, config.resolve("elasticsearch.yaml"));
    Files.copy(properties, config.resolve("elasticsearch.properties"));

    try {
        InternalSettingsPreparer.prepareEnvironment(Settings.builder()
            .put(baseEnvSettings)
            .build(), null);
    } catch (SettingsException e) {
        assertTrue(e.getMessage(), e.getMessage().contains("multiple settings files found with suffixes"));
        assertTrue(e.getMessage(), e.getMessage().contains(".yaml"));
        assertTrue(e.getMessage(), e.getMessage().contains(".properties"));
    }
}
项目:elasticsearch_my    文件:AbstractAwsTestCase.java   
@Override
protected Settings nodeSettings(int nodeOrdinal) {
            Settings.Builder settings = Settings.builder()
            .put(super.nodeSettings(nodeOrdinal))
            .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir());

    // if explicit, just load it and don't load from env
    try {
        if (Strings.hasText(System.getProperty("tests.config"))) {
            try {
                settings.loadFromPath(PathUtils.get(System.getProperty("tests.config")));
            } catch (IOException e) {
                throw new IllegalArgumentException("could not load aws tests config", e);
            }
        } else {
            throw new IllegalStateException("to run integration tests, you need to set -Dtests.thirdparty=true and -Dtests.config=/path/to/elasticsearch.yml");
        }
    } catch (SettingsException exception) {
        throw new IllegalStateException("your test configuration file is incorrect: " + System.getProperty("tests.config"), exception);
    }
    return settings.build();
}
项目:elasticsearch_my    文件:AzureStorageSettings.java   
private static AzureStorageSettings getPrimary(List<AzureStorageSettings> settings) {
    if (settings.isEmpty()) {
        return null;
    } else if (settings.size() == 1) {
        // the only storage settings belong (implicitly) to the default primary storage
        AzureStorageSettings storage = settings.get(0);
        return new AzureStorageSettings(storage.getName(), storage.getAccount(), storage.getKey(), storage.getTimeout(), true);
    } else {
        AzureStorageSettings primary = null;
        for (AzureStorageSettings setting : settings) {
            if (setting.isActiveByDefault()) {
                if (primary == null) {
                    primary = setting;
                } else {
                    throw new SettingsException("Multiple default Azure data stores configured: [" + primary.getName() + "] and [" + setting.getName() + "]");
                }
            }
        }
        if (primary == null) {
            throw new SettingsException("No default Azure data store configured");
        }
        return primary;
    }
}
项目:elasticsearch_my    文件:AzureSettingsParserTests.java   
public void testParseTwoSettingsTooManyDefaultSet() {
    Settings settings = Settings.builder()
            .put("cloud.azure.storage.azure1.account", "myaccount1")
            .put("cloud.azure.storage.azure1.key", "mykey1")
            .put("cloud.azure.storage.azure1.default", true)
            .put("cloud.azure.storage.azure2.account", "myaccount2")
            .put("cloud.azure.storage.azure2.key", "mykey2")
            .put("cloud.azure.storage.azure2.default", true)
            .build();

    try {
        AzureStorageSettings.parse(settings);
        fail("Should have failed with a SettingsException (multiple default data stores)");
    } catch (SettingsException ex) {
        assertEquals(ex.getMessage(), "Multiple default Azure data stores configured: [azure1] and [azure2]");
    }

}
项目:elasticsearch_my    文件:AzureTestUtils.java   
/**
 * Read settings from file when running integration tests with ThirdParty annotation.
 * elasticsearch.yml file path has to be set with -Dtests.config=/path/to/elasticsearch.yml.
 * @return Settings from elasticsearch.yml integration test file (for 3rd party tests)
 */
public static Settings readSettingsFromFile() {
    Settings.Builder settings = Settings.builder();

    // if explicit, just load it and don't load from env
    try {
        if (Strings.hasText(System.getProperty("tests.config"))) {
            try {
                settings.loadFromPath(PathUtils.get((System.getProperty("tests.config"))));
            } catch (IOException e) {
                throw new IllegalArgumentException("could not load azure tests config", e);
            }
        } else {
            throw new IllegalStateException("to run integration tests, you need to set -Dtests.thirdparty=true and " +
                "-Dtests.config=/path/to/elasticsearch.yml");
        }
    } catch (SettingsException exception) {
        throw new IllegalStateException("your test configuration file is incorrect: " + System.getProperty("tests.config"), exception);
    }
    return settings.build();
}
项目:elasticsearch_my    文件:AbstractAwsTestCase.java   
@Override
protected Settings nodeSettings(int nodeOrdinal) {
    Settings.Builder settings = Settings.builder()
            .put(super.nodeSettings(nodeOrdinal))
            .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir())
            .put("cloud.aws.test.random", randomInt())
            .put("cloud.aws.test.write_failures", 0.1)
            .put("cloud.aws.test.read_failures", 0.1);

    // if explicit, just load it and don't load from env
    try {
        if (Strings.hasText(System.getProperty("tests.config"))) {
            try {
                settings.loadFromPath(PathUtils.get(System.getProperty("tests.config")));
            } catch (IOException e) {
                throw new IllegalArgumentException("could not load aws tests config", e);
            }
        } else {
            throw new IllegalStateException("to run integration tests, you need to set -Dtests.thirdparty=true and -Dtests.config=/path/to/elasticsearch.yml");
        }
    } catch (SettingsException exception) {
        throw new IllegalStateException("your test configuration file is incorrect: " + System.getProperty("tests.config"), exception);
    }
    return settings.build();
}
项目:Elasticsearch    文件:BlobEnvironment.java   
/**
 * Validates a given blobs data path
 */
public void validateBlobsPath(File blobsPath) {
    if (blobsPath.exists()) {
        if (blobsPath.isFile()) {
            throw new SettingsException(
                    String.format(Locale.ENGLISH, "blobs path '%s' is a file, must be a directory", blobsPath.getAbsolutePath()));
        }
        if (!blobsPath.canWrite()) {
            throw new SettingsException(
                    String.format(Locale.ENGLISH, "blobs path '%s' is not writable", blobsPath.getAbsolutePath()));
        }
    } else {
        try {
            Files.createDirectories(blobsPath.toPath());
        } catch (IOException e) {
            throw new SettingsException(
                    String.format(Locale.ENGLISH, "blobs path '%s' could not be created", blobsPath.getAbsolutePath()));
        }
    }
}
项目:play2-elasticsearch-jest    文件:IndexConfig.java   
/**
 * Load settings from resource file
 *
 * @return
 * @throws Exception
 */
ImmutableSettings.Builder loadSettings() throws Exception {
    ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder();

    // set default settings
    settings.put("client.transport.sniff", sniffing);
    if (clusterName != null) {
        settings.put("cluster.name", clusterName);
    }

    // load settings
    if (localConfig != null) {
        Logger.debug("Elasticsearch : Load settings from " + localConfig);
        try {
            settings.loadFromClasspath(localConfig);
        } catch (SettingsException settingsException) {
            Logger.error("Elasticsearch : Error when loading settings from " + localConfig);
            throw new Exception(settingsException);
        }
    }
    settings.build();
    Logger.info("Elasticsearch : Settings  " + settings.internalMap().toString());
    return settings;
}
项目:dcp-api    文件:SearchService.java   
protected void handleHighlightSettings(QuerySettings querySettings, SearchRequestBuilder srb) {
    if (querySettings.getQuery() != null && querySettings.isQueryHighlight()) {
        Map<String, Object> hf = configService.get(ConfigService.CFGNAME_SEARCH_FULLTEXT_HIGHLIGHT_FIELDS);
        if (hf != null && !hf.isEmpty()) {
            srb.setHighlighterPreTags("<span class='hlt'>");
            srb.setHighlighterPostTags("</span>");
            srb.setHighlighterEncoder("html");
            for (String fieldName : hf.keySet()) {
                srb.addHighlightedField(fieldName, parseHighlightSettingIntParam(hf, fieldName, "fragment_size"),
                        parseHighlightSettingIntParam(hf, fieldName, "number_of_fragments"),
                        parseHighlightSettingIntParam(hf, fieldName, "fragment_offset"));
            }
        } else {
            throw new SettingsException(
                    "Fulltext search highlight requested but not configured by DCP configuration document "
                            + ConfigService.CFGNAME_SEARCH_FULLTEXT_HIGHLIGHT_FIELDS + ". Contact administrators please.");
        }
    }
}
项目:dcp-api    文件:ProviderService.java   
/**
 * Get configuration for one <code>dcp_content_type</code> from provider configuration.
 * 
 * @param providerDef provider configuration structure
 * @param typeName name of <code>dcp_content_type</code> to get configuration for
 * @return type configuration or null if doesn't exist
 * @throws SettingsException for incorrect configuration structure
 */
@SuppressWarnings("unchecked")
public static Map<String, Object> extractContentType(Map<String, Object> providerDef, String typeName) {
    try {
        Map<String, Object> types = (Map<String, Object>) providerDef.get(TYPE);
        if (types != null) {
            if (types.containsKey(typeName)) {
                return (Map<String, Object>) types.get(typeName);
            }
        }
        return null;
    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect configuration for provider '" + providerDef.get(NAME)
                + "' when trying to find dcp_provider_type=" + typeName + ". Contact administrators please.");
    }
}
项目:dcp-api    文件:ProviderService.java   
/**
 * Get search subsystem index name from one <code>dcp_content_type</code> configuration structure.
 * 
 * @param typeDef <code>dcp_content_type</code> configuration structure
 * @param typeName <code>dcp_content_type</code> name to be used for error messages
 * @return search index name
 */
@SuppressWarnings("unchecked")
public static String extractIndexName(Map<String, Object> typeDef, String typeName) {
    try {
        String ret = null;
        if (typeDef.get(INDEX) != null)
            ret = (String) ((Map<String, Object>) typeDef.get(INDEX)).get(NAME);

        if (ret == null || ret.trim().isEmpty())
            throw new SettingsException("Incorrect configuration of 'index.name' for dcp_provider_type='" + typeName
                    + "'. SearchBackend index name is not defined. Contact administrators please.");
        return ret;

    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect structure of 'index' configuration for dcp_provider_type='" + typeName
                + "'. Contact administrators please.");
    }
}
项目:dcp-api    文件:ProviderService.java   
/**
 * Get search subsystem type name from one <code>dcp_content_type</code> configuration structure.
 * 
 * @param typeDef <code>dcp_content_type</code> configuration structure
 * @param typeName <code>dcp_content_type</code> name to be used for error messages
 * @return search type name
 */
@SuppressWarnings("unchecked")
public static String extractIndexType(Map<String, Object> typeDef, String typeName) {
    try {
        String ret = null;
        if (typeDef.get(INDEX) != null)
            ret = (String) ((Map<String, Object>) typeDef.get(INDEX)).get(TYPE);

        if (ret == null || ret.trim().isEmpty())
            throw new SettingsException("Incorrect configuration of 'index.type' for dcp_provider_type='" + typeName
                    + "'. SearchBackend index type is not defined. Contact administrators please.");
        return ret;

    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect structure of 'index' configuration for dcp_provider_type='" + typeName
                + "'. Contact administrators please.");
    }
}
项目:dcp-api    文件:ProviderServiceTest.java   
@Test
public void extractAllContentTypes() {
    Map<String, Object> providerDef = new HashMap<String, Object>();

    // case - type field not defined
    Assert.assertNull(ProviderService.extractAllContentTypes(providerDef));

    Map<String, Object> types = new HashMap<String, Object>();
    providerDef.put(ProviderService.TYPE, types);

    // case - type field defined
    Assert.assertEquals(types, ProviderService.extractAllContentTypes(providerDef));

    // case - bad class of type field
    providerDef.put(ProviderService.TYPE, "baaad");
    try {
        ProviderService.extractAllContentTypes(providerDef);
        Assert.fail("SettingsException expected");
    } catch (SettingsException e) {
        // OK
    }
}
项目:searchisko    文件:SearchService.java   
/**
 * @param querySettings
 * @param srb
 */
protected void setSearchRequestHighlight(QuerySettings querySettings, SearchRequestBuilder srb) {
    if (querySettings.getQuery() != null && querySettings.isQueryHighlight()) {
        Map<String, Object> hf = configService.get(ConfigService.CFGNAME_SEARCH_FULLTEXT_HIGHLIGHT_FIELDS);
        if (hf != null && !hf.isEmpty()) {
            srb.setHighlighterPreTags("<span class='hlt'>");
            srb.setHighlighterPostTags("</span>");
            srb.setHighlighterEncoder("html");
            for (String fieldName : hf.keySet()) {
                srb.addHighlightedField(fieldName, parseHighlightSettingIntParam(hf, fieldName, "fragment_size"),
                        parseHighlightSettingIntParam(hf, fieldName, "number_of_fragments"),
                        parseHighlightSettingIntParam(hf, fieldName, "fragment_offset"));
            }
        } else {
            throw new SettingsException("Fulltext search highlight requested but not configured by configuration document "
                    + ConfigService.CFGNAME_SEARCH_FULLTEXT_HIGHLIGHT_FIELDS + ".");
        }
    }
}
项目:searchisko    文件:ProviderService.java   
/**
 * Get configuration for one <code>sys_content_type</code> from provider configuration.
 * 
 * @param providerDef provider configuration structure
 * @param typeName name of <code>sys_content_type</code> to get configuration for
 * @return type configuration or null if doesn't exist
 * @throws SettingsException for incorrect configuration structure
 */
@SuppressWarnings("unchecked")
public static Map<String, Object> extractContentType(Map<String, Object> providerDef, String typeName) {
    try {
        Map<String, Object> types = (Map<String, Object>) providerDef.get(TYPE);
        if (types != null) {
            if (types.containsKey(typeName)) {
                return (Map<String, Object>) types.get(typeName);
            }
        }
        return null;
    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect configuration for provider '" + providerDef.get(NAME)
                + "' when trying to find sys_provider_type=" + typeName + ".");
    }
}
项目:searchisko    文件:ProviderService.java   
/**
 * Get search subsystem index name from one <code>sys_content_type</code> configuration structure.
 * 
 * @param typeDef <code>sys_content_type</code> configuration structure
 * @param typeName <code>sys_content_type</code> name to be used for error messages
 * @return search index name
 */
@SuppressWarnings("unchecked")
public static String extractIndexName(Map<String, Object> typeDef, String typeName) {
    try {
        String ret = null;
        if (typeDef.get(INDEX) != null)
            ret = (String) ((Map<String, Object>) typeDef.get(INDEX)).get(NAME);

        if (ret == null || ret.trim().isEmpty())
            throw new SettingsException("Incorrect configuration of 'index.name' for sys_provider_type='" + typeName
                    + "'. SearchBackend index name is not defined.");
        return ret;

    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect structure of 'index' configuration for sys_provider_type='" + typeName
                + "'.");
    }
}
项目:searchisko    文件:ProviderService.java   
/**
 * Get array of names of search indices in search subsystem used for searching values for given
 * <code>sys_content_type</code>. Array or string with indices name is get from
 * {@value ProviderService#SEARCH_INDICES} config value if exists, if not then main index name is used, see
 * {@link #extractIndexName(Map, String)}.
 * 
 * @param typeDef <code>sys_content_type</code> configuration structure
 * @param typeName <code>sys_content_type</code> name to be used for error messages
 * @return search index name
 */
@SuppressWarnings("unchecked")
public static String[] extractSearchIndices(Map<String, Object> typeDef, String typeName) {
    try {
        if (typeDef.get(INDEX) == null) {
            throw new SettingsException("Missing 'index' section in configuration for sys_provider_type='" + typeName
                    + "'.");
        }
        Object val = ((Map<String, Object>) typeDef.get(INDEX)).get(SEARCH_INDICES);
        if (val == null) {
            return new String[] { extractIndexName(typeDef, typeName) };
        } else {
            if (val instanceof String) {
                return new String[] { (String) val };
            } else if (val instanceof List) {
                return (String[]) ((List<String>) val).toArray(new String[((List<String>) val).size()]);
            } else {
                throw new SettingsException("Incorrect configuration of 'index." + SEARCH_INDICES
                        + "' for sys_provider_type='" + typeName + "'. Value must be string or array of strings.");
            }
        }
    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect structure of 'index' configuration for sys_provider_type='" + typeName
                + "'.");
    }
}
项目:searchisko    文件:ProviderService.java   
/**
 * Get search subsystem type name from one <code>sys_content_type</code> configuration structure.
 * 
 * @param typeDef <code>sys_content_type</code> configuration structure
 * @param typeName <code>sys_content_type</code> name to be used for error messages
 * @return search type name
 */
@SuppressWarnings("unchecked")
public static String extractIndexType(Map<String, Object> typeDef, String typeName) {
    try {
        String ret = null;
        if (typeDef.get(INDEX) != null)
            ret = (String) ((Map<String, Object>) typeDef.get(INDEX)).get(TYPE);

        if (ret == null || ret.trim().isEmpty())
            throw new SettingsException("Incorrect configuration of 'index.type' for sys_provider_type='" + typeName
                    + "'. SearchBackend index type is not defined.");
        return ret;

    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect structure of 'index' configuration for sys_provider_type='" + typeName
                + "'.");
    }
}
项目:searchisko    文件:NormalizationRestService.java   
/**
 * Run defined content preprocessors on passed in content.
 * 
 * @param preprocessors to run
 * @param content to run preprocessors on
 * @return list of warnings from preprocessors, may be null
 * @throws SettingsException if configuration is incorrect
 */
public Map<String, Object> runPreprocessors(List<StructuredContentPreprocessor> preprocessors, String id)
        throws SettingsException {

    Map<String, Object> content = new HashMap<>();
    content.put(OUTKEY_INPUT_ID, id);

    if (preprocessors != null && !preprocessors.isEmpty()) {

        PreprocessChainContextImpl context = new PreprocessChainContextImpl();
        for (StructuredContentPreprocessor preprocessor : preprocessors) {
            content = preprocessor.preprocessData(content, context);
        }

        if (context.warnings != null && !context.warnings.isEmpty())
            content.put(OUTKEY_WARNINGS, context.warnings);
    }
    return content;
}
项目:searchisko    文件:SearchUtils.java   
/**
 * Get list of Strings from given key on given map. If it contains simple String then List is created with it.
 * {@link #safeList(List)} is used inside to filter list.
 * 
 * @param map to get value from
 * @param key in map to get value from
 * @return list of strings or null.
 * @throws SettingsException if value in json map is invalid
 */
@SuppressWarnings("unchecked")
public static List<String> getListOfStringsFromJsonMap(Map<String, Object> map, String key) throws SettingsException {
    if (map == null)
        return null;
    try {
        Object o = map.get(key);
        if (o instanceof String) {
            String v = StringUtils.trimToNull((String) o);
            if (v != null) {
                List<String> l = new ArrayList<>();
                l.add(v);
                return l;
            }
            return null;
        }
        return safeList((List<String>) o);
    } catch (ClassCastException e) {
        throw new SettingsException("No String or Array of strings present in field '" + key);
    }
}
项目:searchisko    文件:ProviderServiceTest.java   
@Test
public void extractAllContentTypes() {
    Map<String, Object> providerDef = new HashMap<String, Object>();

    // case - type field not defined
    Assert.assertNull(ProviderService.extractAllContentTypes(providerDef));

    Map<String, Object> types = new HashMap<String, Object>();
    providerDef.put(ProviderService.TYPE, types);

    // case - type field defined
    Assert.assertEquals(types, ProviderService.extractAllContentTypes(providerDef));

    // case - bad class of type field
    providerDef.put(ProviderService.TYPE, "baaad");
    try {
        ProviderService.extractAllContentTypes(providerDef);
        Assert.fail("SettingsException expected");
    } catch (SettingsException e) {
        // OK
    }
}
项目:elasticsearch-river-remote    文件:DocumentWithCommentsIndexStructureBuilder.java   
@Override
public Date extractDocumentUpdated(Map<String, Object> document) {
    Object val = XContentMapValues.extractValue(remoteDataFieldForUpdated, document);
    if (val == null)
        return null;
    if (!Utils.isSimpleValue(val))
        throw new SettingsException("Remote data field '" + remoteDataFieldForUpdated
                + "' must provide simple value, but value is " + val);

    if (val instanceof Date)
        return (Date) val;

    try {
        return DateTimeUtils.parseDate( val.toString(), remoteDataFieldForUpdatedFormat );
    } catch (IllegalArgumentException e1) {
        throw new SettingsException("Remote data field '" + remoteDataFieldForUpdated
                + "' is not reecognized: " + val);
    }
}
项目:elasticsearch-river-remote    文件:DocumentWithCommentsIndexStructureBuilder.java   
@Override
public boolean extractDocumentDeleted(Map<String, Object> document) {
    if (document == null || remoteDataFieldForDeleted == null)
        return false;

    Object val = XContentMapValues.extractValue(remoteDataFieldForDeleted, document);
    if (val == null)
        return false;

    if (!Utils.isSimpleValue(val))
        throw new SettingsException("Remote data field '" + remoteDataFieldForDeleted
                + "' must provide simple value, but value is " + val);

    String v = null;
    if (val instanceof String) {
        v = (String) val;
    } else {
        v = val.toString();
    }

    return v.equals(remoteDataValueForDeleted);
}
项目:elasticsearch-river-remote    文件:DocumentWithCommentsIndexStructureBuilder.java   
private void validateConfigurationFieldsStructure(Map<String, Map<String, String>> value, String configFieldName) {
    for (String idxFieldName : value.keySet()) {
        if (Utils.isEmpty(idxFieldName)) {
            throw new SettingsException("Empty key found in '" + configFieldName + "' map.");
        }
        Map<String, String> fc = value.get(idxFieldName);
        if (Utils.isEmpty(fc.get(CONFIG_FIELDS_REMOTEFIELD))) {
            throw new SettingsException("'remote_field' is not defined in '" + configFieldName + "/" + idxFieldName + "'");
        }
        String fil = fc.get(CONFIG_FIELDS_VALUEFILTER);
        if (fil != null && !filtersConfig.containsKey(fil)) {
            throw new SettingsException("Filter definition not found for filter name '" + fil + "' defined in '"
                    + configFieldName + "/" + idxFieldName + "/value_filter'");
        }
    }
}
项目:elasticsearch-river-remote    文件:RemoteRiver.java   
@SuppressWarnings("unchecked")
private void preparePreprocessors(Map<String, Object> indexSettings,
        IDocumentIndexStructureBuilder indexStructureBuilder) {
    if (indexSettings != null) {
        List<Map<String, Object>> preproclist = (List<Map<String, Object>>) indexSettings.get("preprocessors");
        if (preproclist != null && preproclist.size() > 0) {
            for (Map<String, Object> ppc : preproclist) {
                try {
                    indexStructureBuilder.addDataPreprocessor(StructuredContentPreprocessorFactory.createPreprocessor(ppc,
                            client));
                } catch (IllegalArgumentException e) {
                    throw new SettingsException(e.getMessage(), e);
                }
            }
        }
    }
}
项目:elasticsearch-river-remote    文件:HttpRemoteSystemClientBase.java   
/**
 * Get url from configuration and validate it for format, and for presence.
 * 
 * @param config to get URL from
 * @param cfgProperyName name of config property with URL
 * @param mandatory if URL is mandatory so validation is performed
 * @return url
 * @throws SettingsException in case of validation error
 */
protected static String getUrlFromConfig(Map<String, Object> config, String cfgProperyName, boolean mandatory)
        throws SettingsException {
    String url = null;
    if (config != null)
        url = Utils.trimToNull(XContentMapValues.nodeStringValue(config.get(cfgProperyName), null));
    if (mandatory && url == null) {
        throw new SettingsException("remote/" + cfgProperyName + " element of configuration structure not found or empty");
    }
    if (url != null) {
        try {
            new URL(url);
        } catch (MalformedURLException e) {
            throw new SettingsException("Parameter remote/" + cfgProperyName + " is malformed URL " + e.getMessage());
        }
    }
    return url;
}
项目:elasticsearch-river-remote    文件:GetSitemapHtmlClient.java   
@SuppressWarnings("unchecked")
@Override
public void init(IESIntegration esIntegration, Map<String, Object> config, boolean spaceListLoadingEnabled,
        IPwdLoader pwdLoader) {
    logger = esIntegration.createLogger(GetSitemapHtmlClient.class);
    urlGetSitemap = getUrlFromConfig(config, CFG_URL_GET_SITEMAP, true);

    try {
        htmlMapping = (Map<String, Map<String, Object>>) config.get(CFG_HTML_MAPPING);
    } catch (ClassCastException e) {
        throw new SettingsException("'remote/" + CFG_HTML_MAPPING + "' configuration section is invalid");
    }

    if (spaceListLoadingEnabled) {
        throw new SettingsException(
                "Dynamic Spaces obtaining is not supported, use 'remote/spacesIndexed' to configure one space or static list");
    }

    String remoteUsername = initHttpClient(logger, config, pwdLoader, urlGetSitemap);

    logger.info("Configured sitemap.xml HTML client for URL '{}', remote system user '{}'.", urlGetSitemap,
            remoteUsername != null ? remoteUsername : "Anonymous access");
}
项目:elasticsearch-river-remote    文件:SpaceIndexerCoordinator.java   
/**
 * Select correct space indexer implementation based on {@link #spaceIndexingMode}.
 * 
 * @param spaceKey to create indexer for
 * @param fullUpdateNecessary flag for indexer
 * @return indexer
 */
protected SpaceIndexerBase prepareSpaceIndexer(String spaceKey, boolean fullUpdateNecessary) {
    if (spaceIndexingMode == null)
        throw new SettingsException("undefined space indexing mode");
    switch (spaceIndexingMode) {
    case SIMPLE:
        return new SpaceSimpleIndexer(spaceKey, remoteSystemClient, esIntegrationComponent, documentIndexStructureBuilder);
    case PAGINATION:
        return new SpacePaginatingIndexer(spaceKey, remoteSystemClient, esIntegrationComponent,
                documentIndexStructureBuilder);
    case UPDATE_TIMESTAMP:
        return new SpaceByLastUpdateTimestampIndexer(spaceKey, fullUpdateNecessary, remoteSystemClient,
                esIntegrationComponent, documentIndexStructureBuilder);
    default:
        throw new SettingsException("unsupported space indexing mode");
    }
}
项目:elasticsearch-river-remote    文件:Utils.java   
/**
 * Read JSON file from classpath into Map of Map structure.
 * 
 * @param filePath path inside jar/classpath pointing to JSON file to read
 * @return parsed JSON file
 * @throws SettingsException
 */
public static Map<String, Object> loadJSONFromJarPackagedFile(String filePath) throws SettingsException {
    XContentParser parser = null;
    try {
        parser = XContentFactory.xContent(XContentType.JSON).createParser(Utils.class.getResourceAsStream(filePath));
        Map<String, Object> ret = parser.mapAndClose();
        if (logger.isDebugEnabled())
            logger.debug("jar packaged JSON file {} content is: {}", filePath, ret);
        return ret;
    } catch (IOException e) {
        throw new SettingsException(e.getMessage(), e);
    } finally {
        if (parser != null)
            parser.close();
    }
}
项目:elasticsearch-river-remote    文件:SpaceIndexingModeTest.java   
@Test
public void parseConfiguration() {
    Assert.assertEquals(SpaceIndexingMode.SIMPLE, SpaceIndexingMode.parseConfiguration("simple"));
    Assert.assertEquals(SpaceIndexingMode.SIMPLE, SpaceIndexingMode.parseConfiguration("SIMPLE"));
    Assert.assertEquals(SpaceIndexingMode.PAGINATION, SpaceIndexingMode.parseConfiguration("pagination"));
    Assert.assertEquals(SpaceIndexingMode.PAGINATION, SpaceIndexingMode.parseConfiguration("Pagination"));
    Assert.assertEquals(SpaceIndexingMode.UPDATE_TIMESTAMP, SpaceIndexingMode.parseConfiguration("updatetimestamp"));
    Assert.assertEquals(SpaceIndexingMode.UPDATE_TIMESTAMP, SpaceIndexingMode.parseConfiguration("UpdateTimestamp"));
    Assert.assertNull(SpaceIndexingMode.parseConfiguration(null));
    Assert.assertNull(SpaceIndexingMode.parseConfiguration("  "));

    try {
        SpaceIndexingMode.parseConfiguration("nonsense");
        Assert.fail("SettingsException must be thrown");
    } catch (SettingsException e) {
        // OK
    }
}
项目:elasticsearch-river-remote    文件:CommentIndexingModeTest.java   
@Test
public void parseConfiguration() {
    Assert.assertEquals(CommentIndexingMode.NONE, CommentIndexingMode.parseConfiguration("none"));
    Assert.assertEquals(CommentIndexingMode.NONE, CommentIndexingMode.parseConfiguration("None"));
    Assert.assertEquals(CommentIndexingMode.CHILD, CommentIndexingMode.parseConfiguration("child"));
    Assert.assertEquals(CommentIndexingMode.CHILD, CommentIndexingMode.parseConfiguration("Child"));
    Assert.assertEquals(CommentIndexingMode.STANDALONE, CommentIndexingMode.parseConfiguration("standalone"));
    Assert.assertEquals(CommentIndexingMode.STANDALONE, CommentIndexingMode.parseConfiguration("Standalone"));
    Assert.assertEquals(CommentIndexingMode.EMBEDDED, CommentIndexingMode.parseConfiguration("embedded"));
    Assert.assertEquals(CommentIndexingMode.EMBEDDED, CommentIndexingMode.parseConfiguration("Embedded"));
    Assert.assertEquals(CommentIndexingMode.NONE, CommentIndexingMode.parseConfiguration(null));
    Assert.assertEquals(CommentIndexingMode.NONE, CommentIndexingMode.parseConfiguration("  "));

    try {
        CommentIndexingMode.parseConfiguration("nonsense");
        Assert.fail("SettingsException must be thrown");
    } catch (SettingsException e) {
        // OK
    }
}
项目:elasticsearch_my    文件:JsonSettingsLoaderTests.java   
public void testDuplicateKeysThrowsException() {
    assumeFalse("Test only makes sense if XContent parser doesn't have strict duplicate checks enabled",
        XContent.isStrictDuplicateDetectionEnabled());
    final String json = "{\"foo\":\"bar\",\"foo\":\"baz\"}";
    final SettingsException e = expectThrows(SettingsException.class,
        () -> Settings.builder().loadFromSource(json, XContentType.JSON).build());
    assertEquals(e.getCause().getClass(), ElasticsearchParseException.class);
    assertThat(
            e.toString(),
            containsString("duplicate settings key [foo] " +
                    "found at line number [1], " +
                    "column number [20], " +
                    "previous value [bar], " +
                    "current value [baz]"));
}
项目:elasticsearch_my    文件:YamlSettingsLoaderTests.java   
public void testDuplicateKeysThrowsException() {
    assumeFalse("Test only makes sense if XContent parser doesn't have strict duplicate checks enabled",
        XContent.isStrictDuplicateDetectionEnabled());

    String yaml = "foo: bar\nfoo: baz";
    SettingsException e = expectThrows(SettingsException.class, () -> {
        Settings.builder().loadFromSource(yaml, XContentType.YAML);
    });
    assertEquals(e.getCause().getClass(), ElasticsearchParseException.class);
    String msg = e.getCause().getMessage();
    assertTrue(
        msg,
        msg.contains("duplicate settings key [foo] found at line number [2], column number [6], " +
            "previous value [bar], current value [baz]"));
}
项目:elasticsearch_my    文件:InternalSettingsPreparerTests.java   
public void testGarbageIsNotSwallowed() throws IOException {
    try {
        InputStream garbage = getClass().getResourceAsStream("/config/garbage/garbage.yml");
        Path home = createTempDir();
        Path config = home.resolve("config");
        Files.createDirectory(config);
        Files.copy(garbage, config.resolve("elasticsearch.yml"));
        InternalSettingsPreparer.prepareEnvironment(Settings.builder()
            .put(baseEnvSettings)
            .build(), null);
    } catch (SettingsException e) {
        assertEquals("Failed to load settings from [elasticsearch.yml]", e.getMessage());
    }
}
项目:elasticsearch_my    文件:AzureSettingsParserTests.java   
public void testParseTwoSettingsNoDefault() {
    Settings settings = Settings.builder()
            .put("cloud.azure.storage.azure1.account", "myaccount1")
            .put("cloud.azure.storage.azure1.key", "mykey1")
            .put("cloud.azure.storage.azure2.account", "myaccount2")
            .put("cloud.azure.storage.azure2.key", "mykey2")
            .build();

    try {
        AzureStorageSettings.parse(settings);
        fail("Should have failed with a SettingsException (no default data store)");
    } catch (SettingsException ex) {
        assertEquals(ex.getMessage(), "No default Azure data store configured");
    }
}
项目:Elasticsearch    文件:LogConfigurator.java   
static void loadConfig(Path file, Settings.Builder settingsBuilder) {
    try {
        settingsBuilder.loadFromPath(file);
    } catch (SettingsException | NoClassDefFoundError e) {
        // ignore
    }
}
项目:Elasticsearch    文件:ThreadPool.java   
/**
 * A thread pool size can also be unbounded and is represented by -1, which is not supported by SizeValue (which only supports positive numbers)
 */
private SizeValue getAsSizeOrUnbounded(Settings settings, String setting, SizeValue defaultValue) throws SettingsException {
    if ("-1".equals(settings.get(setting))) {
        return null;
    }
    return parseSizeValue(settings.get(setting), defaultValue);
}
项目:elasticsearch-analysis-benz    文件:Config.java   
private List<Path> getLexiconPaths(Path lexiconPath) {
    if (Files.isDirectory(lexiconPath, LinkOption.NOFOLLOW_LINKS)) {
        try {
            return Arrays.asList(FileSystemUtils.files(lexiconPath, p -> p.startsWith("words") && p.endsWith(".dic")));
        } catch (IOException e) {
            log.error("load lexicon path: " + lexiconPath + " directory files have exception", e);
            throw new SettingsException("load lexicon path: " + lexiconPath + " directory files have exception", e);
        }
    } else {
        return Collections.singletonList(lexiconPath);
    }
}
项目:dcp-api    文件:ProviderService.java   
/**
 * Get configuration for all <code>dcp_content_type</code> from provider configuration.
 * 
 * @param providerDef provider configuration structure
 * @return map with all type configurations or null if doesn't exist. Key in map is type name, value is type
 *         configuration.
 * @throws SettingsException for incorrect configuration structure
 */
@SuppressWarnings("unchecked")
public static Map<String, Map<String, Object>> extractAllContentTypes(Map<String, Object> providerDef) {
    try {
        Map<String, Map<String, Object>> types = (Map<String, Map<String, Object>>) providerDef.get(TYPE);
        return types;
    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect configuration for provider '" + providerDef.get(NAME)
                + "' when trying to retrieve all dcp_provider_type configurations. Contact administrators please.");
    }
}
项目:dcp-api    文件:ProviderService.java   
/**
 * Get preprocessors configuration from one <code>dcp_content_type</code> configuration structure.
 * 
 * @param typeDef <code>dcp_content_type</code> configuration structure
 * @param typeName <code>dcp_content_type</code> name to be used for error messages
 * @return list of preprocessor configurations
 */
@SuppressWarnings("unchecked")
public static List<Map<String, Object>> extractPreprocessors(Map<String, Object> typeDef, String typeName) {
    try {
        return (List<Map<String, Object>>) typeDef.get(INPUT_PREPROCESSORS);
    } catch (ClassCastException e) {
        throw new SettingsException("Incorrect configuration of 'input_preprocessors' for dcp_provider_type=" + typeName
                + ". Contact administrators please.");
    }
}