
org.sourcelab.github.client.http.HttpClientConfigHooks Maven / Gradle / Ivy
The newest version!
package org.sourcelab.github.client.http;
import org.apache.hc.client5.http.auth.AuthCache;
import org.apache.hc.client5.http.auth.CredentialsProvider;
import org.apache.hc.client5.http.auth.CredentialsStore;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.auth.BasicAuthCache;
import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.sourcelab.github.client.Configuration;
public interface HttpClientConfigHooks {
/**
* Create HttpClientBuilder instance.
* @param configuration KafkaConnectClient configuration.
* @return HttpClientBuilder instance.
*/
default HttpClientBuilder createHttpClientBuilder(final Configuration configuration) {
return HttpClientBuilder.create();
}
/**
* Create HttpsContextBuilder instance.
* @param configuration KafkaConnectClient configuration.
* @return HttpsContextBuilder instance.
*/
default HttpsContextBuilder createHttpsContextBuilder(final Configuration configuration) {
return new HttpsContextBuilder(configuration);
}
/**
* Create RequestConfig.Builder instance.
* @param configuration KafkaConnectClient configuration.
* @return RequestConfig.Builder instance.
*/
default RequestConfig.Builder createRequestConfigBuilder(final Configuration configuration) {
return RequestConfig.custom();
}
/**
* Create AuthCache instance.
* @param configuration KafkaConnectClient configuration.
* @return AuthCache instance.
*/
default AuthCache createAuthCache(final Configuration configuration) {
return new BasicAuthCache();
}
/**
* Create CredentialsProvider instance.
* @param configuration KafkaConnectClient configuration.
* @return CredentialsProvider instance.
*/
default CredentialsStore createCredentialsProvider(final Configuration configuration) {
return new BasicCredentialsProvider();
}
/**
* Create HttpClientContext instance.
* @param configuration KafkaConnectClient configuration.
* @return HttpClientContext instance.
*/
default HttpClientContext createHttpClientContext(final Configuration configuration) {
return HttpClientContext.create();
}
/**
* Ability to modify or replace the AuthCache instance after initial configuration has been performed on it.
* @param configuration KafkaConnectClient configuration.
* @return AuthCache instance.
*/
default AuthCache modifyAuthCache(final Configuration configuration, final AuthCache authCache) {
return authCache;
}
/**
* Ability to modify or replace the CredentialsProvider instance after initial configuration has been performed on it.
* @param configuration KafkaConnectClient configuration.
* @return CredentialsProvider instance.
*/
default CredentialsProvider modifyCredentialsProvider(final Configuration configuration, final CredentialsProvider credentialsProvider) {
return credentialsProvider;
}
/**
* Ability to modify or replace the RequestConfig.Builder instance after initial configuration has been performed on it.
* @param configuration KafkaConnectClient configuration.
* @return RequestConfig.Builder instance.
*/
default RequestConfig.Builder modifyRequestConfig(final Configuration configuration, final RequestConfig.Builder builder) {
return builder;
}
/**
* Ability to modify or replace the HttpClientBuilder instance after initial configuration has been performed on it.
* @param configuration KafkaConnectClient configuration.
* @return HttpClientBuilder instance.
*/
default HttpClientBuilder modifyHttpClientBuilder(final Configuration configuration, final HttpClientBuilder builder) {
return builder;
}
/**
* Ability to modify or replace the HttpClientContext instance after initial configuration has been performed on it.
* @param configuration KafkaConnectClient configuration.
* @return HttpClientContext instance.
*/
default HttpClientContext modifyHttpClientContext(final Configuration configuration, final HttpClientContext context) {
return context;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy