public static EsRestClient createInstance()

in seatunnel-datasource/seatunnel-datasource-plugins/datasource-elasticsearch/src/main/java/org/apache/seatunnel/datasource/plugin/elasticsearch/client/EsRestClient.java [69:142]


    public static EsRestClient createInstance(Config pluginConfig) {
        try {
            List<String> hosts =
                    JsonUtils.toList(
                            pluginConfig.getString(ElasticSearchOptionRule.HOSTS.key()),
                            String.class);
            Optional<String> username = Optional.empty();
            Optional<String> password = Optional.empty();
            if (pluginConfig.hasPath(ElasticSearchOptionRule.USERNAME.key())) {
                username =
                        Optional.of(pluginConfig.getString(ElasticSearchOptionRule.USERNAME.key()));
                if (pluginConfig.hasPath(ElasticSearchOptionRule.PASSWORD.key())) {
                    password =
                            Optional.of(
                                    pluginConfig.getString(ElasticSearchOptionRule.PASSWORD.key()));
                }
            }
            Optional<String> keystorePath = Optional.empty();
            Optional<String> keystorePassword = Optional.empty();
            Optional<String> truststorePath = Optional.empty();
            Optional<String> truststorePassword = Optional.empty();
            boolean tlsVerifyCertificate =
                    ElasticSearchOptionRule.TLS_VERIFY_CERTIFICATE.defaultValue();
            if (pluginConfig.hasPath(ElasticSearchOptionRule.TLS_VERIFY_CERTIFICATE.key())) {
                tlsVerifyCertificate =
                        pluginConfig.getBoolean(
                                ElasticSearchOptionRule.TLS_VERIFY_CERTIFICATE.key());
            }
            if (tlsVerifyCertificate) {
                if (pluginConfig.hasPath(ElasticSearchOptionRule.TLS_KEY_STORE_PATH.key())) {
                    keystorePath =
                            Optional.of(
                                    pluginConfig.getString(
                                            ElasticSearchOptionRule.TLS_KEY_STORE_PATH.key()));
                }
                if (pluginConfig.hasPath(ElasticSearchOptionRule.TLS_KEY_STORE_PASSWORD.key())) {
                    keystorePassword =
                            Optional.of(
                                    pluginConfig.getString(
                                            ElasticSearchOptionRule.TLS_KEY_STORE_PASSWORD.key()));
                }
                if (pluginConfig.hasPath(ElasticSearchOptionRule.TLS_TRUST_STORE_PATH.key())) {
                    truststorePath =
                            Optional.of(
                                    pluginConfig.getString(
                                            ElasticSearchOptionRule.TLS_TRUST_STORE_PATH.key()));
                }
                if (pluginConfig.hasPath(ElasticSearchOptionRule.TLS_TRUST_STORE_PASSWORD.key())) {
                    truststorePassword =
                            Optional.of(
                                    pluginConfig.getString(
                                            ElasticSearchOptionRule.TLS_TRUST_STORE_PASSWORD
                                                    .key()));
                }
            }
            boolean tlsVerifyHostnames = ElasticSearchOptionRule.TLS_VERIFY_HOSTNAME.defaultValue();
            if (pluginConfig.hasPath(ElasticSearchOptionRule.TLS_VERIFY_HOSTNAME.key())) {
                tlsVerifyHostnames =
                        pluginConfig.getBoolean(ElasticSearchOptionRule.TLS_VERIFY_HOSTNAME.key());
            }
            return createInstance(
                    hosts,
                    username,
                    password,
                    tlsVerifyCertificate,
                    tlsVerifyHostnames,
                    keystorePath,
                    keystorePassword,
                    truststorePath,
                    truststorePassword);
        } catch (Exception e) {
            throw new RuntimeException("Create EsRestClient failed", e);
        }
    }