org.hibernate.search.backend.elasticsearch.client.ElasticsearchHttpClientConfigurationContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-search-backend-elasticsearch Show documentation
Show all versions of hibernate-search-backend-elasticsearch Show documentation
Hibernate Search Backend relying on remote Elasticsearch clusters
The newest version!
/*
* SPDX-License-Identifier: Apache-2.0
* Copyright Red Hat Inc. and Hibernate Authors
*/
package org.hibernate.search.backend.elasticsearch.client;
import java.util.Optional;
import org.hibernate.search.backend.elasticsearch.ElasticsearchVersion;
import org.hibernate.search.engine.cfg.ConfigurationPropertySource;
import org.hibernate.search.engine.environment.bean.BeanResolver;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
/**
* The context passed to {@link ElasticsearchHttpClientConfigurer}.
*/
public interface ElasticsearchHttpClientConfigurationContext {
/**
* @return A {@link BeanResolver}.
*/
BeanResolver beanResolver();
/**
* @return A configuration property source, appropriately masked so that the factory
* doesn't need to care about Hibernate Search prefixes (hibernate.search.*, etc.). All the properties
* can be accessed at the root.
* CAUTION: the property key "type" is reserved for use by the engine.
*/
ConfigurationPropertySource configurationPropertySource();
/**
* @return An Apache HTTP client builder, to set the configuration.
* @see the Apache HTTP Client documentation
*/
HttpAsyncClientBuilder clientBuilder();
/**
* @return The version of Elasticsearch/OpenSearch configured on the backend.
* May be empty if not configured explicitly (in which case it will only be known after the client is built).
*/
Optional configuredVersion();
}