All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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