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

com.aliyun.openservices.log.ClientBuilder Maven / Gradle / Ivy

There is a newer version: 0.6.115
Show newest version
package com.aliyun.openservices.log;

import com.aliyun.openservices.log.common.auth.CredentialsProvider;
import com.aliyun.openservices.log.http.client.ClientConfiguration;
import com.aliyun.openservices.log.http.comm.ServiceClient;
import com.aliyun.openservices.log.util.Args;

/**
 * Used for building an {@link Client} instance.
 * 

* Example code: *
 * {@code
 * Credentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
 * CredentialsProvider provider = new StaticCredentialsProvider(credentials);
 * ClientBuilder builder = new ClientBuilder(".log.aliyuncs.com", provider);
 * Client client = builder.sourceIp("127.0.0.1")
 *                        .serviceClient(serviceClient)
 *                        .clientConfiguration(clientConfiguration)
 *                        .build();
 * }
 * 
*/ public class ClientBuilder { private final String endpoint; private final CredentialsProvider credentialsProvider; private ClientConfiguration clientConfiguration; private ServiceClient serviceClient; private String sourceIp; /** * Uses the specified SLS Endpoint and CredentialsProvider to create a new * {@link Client} instance. * * @param endpoint required not null, the log service server address * @param credentialsProvider required not null, interface which provide credentials */ public ClientBuilder(String endpoint, CredentialsProvider credentialsProvider) { this.endpoint = endpoint; this.credentialsProvider = credentialsProvider; } public ClientBuilder clientConfiguration(ClientConfiguration clientConfiguration) { this.clientConfiguration = clientConfiguration; return this; } public ClientBuilder serviceClient(ServiceClient serviceClient) { this.serviceClient = serviceClient; return this; } /** * @param sourceIp Client ip address for build {@link Client} instance, * used as client ip in logs when write * logs to SLS server. */ public ClientBuilder sourceIp(String sourceIp) { this.sourceIp = sourceIp; return this; } public Client build() { Args.notNull(this.endpoint, "endpoint"); Args.notNull(this.credentialsProvider, "credentialsProvider"); if (this.clientConfiguration == null) { this.clientConfiguration = Client.getDefaultClientConfiguration(); } if (this.serviceClient == null) { this.serviceClient = Client.buildServiceClient(this.clientConfiguration); } return new Client(endpoint, credentialsProvider, serviceClient, sourceIp); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy