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

com.microsoft.azure.servicebus.ClientSettings Maven / Gradle / Ivy

Go to download

Java library for Azure Service Bus. Please note, a newer package com.azure:azure-messaging-servicebus for Azure Service Bus is available as of December 2020. While this package will continue to receive critical bug fixes, we strongly encourage you to upgrade. Read the migration guide at https://aka.ms/azsdk/java/migrate/sb for more details.

There is a newer version: 3.6.7
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.azure.servicebus;

import java.time.Duration;

import com.microsoft.azure.servicebus.primitives.ClientConstants;
import com.microsoft.azure.servicebus.primitives.RetryPolicy;
import com.microsoft.azure.servicebus.primitives.TransportType;
import com.microsoft.azure.servicebus.security.TokenProvider;

/**
 * Class encapsulating common client level settings like TokenProvider, RetryPolicy, OperationTimeout.
 * @since 1.2.0
 *
 */
public class ClientSettings {
    
    private TokenProvider tokenProvider;
    private RetryPolicy retryPolicy;
    private Duration operationTimeout;
    private TransportType transportType;

    /**
     * Creates a new instance with the given token provider, default retry policy and default operation timeout.
     * @param tokenProvider {@link TokenProvider} instance
     * 
     * @see RetryPolicy#getDefault()
     */
    public ClientSettings(TokenProvider tokenProvider) {
        this(tokenProvider, RetryPolicy.getDefault(), Duration.ofSeconds(ClientConstants.DEFAULT_OPERATION_TIMEOUT_IN_SECONDS), TransportType.AMQP);
    }

    /**
     * Creates a new instance with the given token provider, retry policy and operation timeout.
     * @param tokenProvider {@link TokenProvider} instance
     * @param retryPolicy {@link RetryPolicy} instance
     * @param operationTimeout default operation timeout to be used for all client operations. Client can override this value by explicitly specifying a timeout in the operation.
     */
    public ClientSettings(TokenProvider tokenProvider, RetryPolicy retryPolicy, Duration operationTimeout) {
        this(tokenProvider, retryPolicy, operationTimeout, TransportType.AMQP);
    }

    /**
     * Creates a new instance with the given token provider, retry policy and operation timeout.
     * @param tokenProvider {@link TokenProvider} instance
     * @param retryPolicy {@link RetryPolicy} instance
     * @param operationTimeout default operation timeout to be used for all client operations. Client can override this value by explicitly specifying a timeout in the operation.
     * @param transportType {@link TransportType} instance
     */
    public ClientSettings(TokenProvider tokenProvider, RetryPolicy retryPolicy, Duration operationTimeout, TransportType transportType) {
        this.tokenProvider = tokenProvider;
        this.retryPolicy = retryPolicy;
        this.operationTimeout = operationTimeout;
        this.transportType = transportType;
    }

    /**
     * Gets the token provider contained in this instance.
     * @return TokenProvider contained in this instance
     */
    public TokenProvider getTokenProvider() {
        return tokenProvider;
    }

    /**
     * Gets the retry policy contained in this instance.
     * @return RetryPolicy contained in this instance
     */
    public RetryPolicy getRetryPolicy() {
        return retryPolicy;
    }

    /**
     * Gets the operation timeout contained in this instance.
     * @return operation timeout contained in this instance
     */
    public Duration getOperationTimeout() {
        return operationTimeout;
    }

    /**
     * Gets the transport type for this instance
     * @return transport type for the instance
     */
    public TransportType getTransportType() {
        return transportType;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy