public final class QueueServiceClientBuilder extends Object
queueServiceClients and queueServiceAsyncClients, calling buildClient constructs an instance of QueueServiceClient and calling buildAsyncClient constructs an instance of QueueServiceAsyncClient.
The client needs the endpoint of the Azure Storage Queue service, name of the share, and authorization
credential. endpoint gives the builder the endpoint and may give
the builder the a SAS token that authorizes the client.
Instantiating a synchronous Queue Service Client with SAS token
QueueServiceClient client = new QueueServiceClientBuilder()
.endpoint("https://${accountName}.queue.core.windows.net?${SASToken}")
.buildClient();
Instantiating an Asynchronous Queue Service Client with SAS token
QueueServiceAsyncClient client = new QueueServiceClientBuilder()
.endpoint("https://{accountName}.queue.core.windows.net?{SASToken}")
.buildAsyncClient();
If the endpoint doesn't contain the query parameters to construct a SAS token they may be set using
sasToken together with endpoint.
Instantiating a synchronous Queue Service Client with SAS token
QueueServiceAsyncClient client = new QueueServiceClientBuilder()
.endpoint("https://{accountName}.queue.core.windows.net")
.sasToken("{SASTokenQueryParams}")
.buildAsyncClient();
Instantiating an Asynchronous Queue Service Client with SAS token
QueueServiceAsyncClient client = new QueueServiceClientBuilder()
.endpoint("https://{accountName}.queue.core.windows.net")
.sasToken("{SASTokenQueryParams}")
.buildAsyncClient();
Another way to authenticate the client is using a StorageSharedKeyCredential. To create a
StorageSharedKeyCredential a connection string from the Storage Queue service must be used.
Set the StorageSharedKeyCredential with connectionString.
If the builder has both a SAS token and StorageSharedKeyCredential the StorageSharedKeyCredential will be preferred
when authorizing requests sent to the service.
Instantiating a synchronous Queue Service Client with connection string.
String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
+ "AccountKey={key};EndpointSuffix={core.windows.net}";
QueueServiceClient client = new QueueServiceClientBuilder()
.connectionString(connectionString)
.buildClient();
Instantiating an Asynchronous Queue Service Client with connection string.
String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
+ "AccountKey={key};EndpointSuffix={core.windows.net}";
QueueServiceAsyncClient client = new QueueServiceClientBuilder()
.connectionString(connectionString)
.buildAsyncClient();
| Constructor and Description |
|---|
QueueServiceClientBuilder()
Creates a builder instance that is able to configure and construct
QueueServiceClients
and QueueServiceAsyncClients. |
| Modifier and Type | Method and Description |
|---|---|
QueueServiceClientBuilder |
addPolicy(com.azure.core.http.policy.HttpPipelinePolicy pipelinePolicy)
Adds a pipeline policy to apply on each request sent.
|
QueueServiceAsyncClient |
buildAsyncClient()
Creates a
QueueServiceAsyncClient based on options set in the builder. |
QueueServiceClient |
buildClient()
Creates a
QueueServiceClient based on options set in the builder. |
QueueServiceClientBuilder |
clientOptions(com.azure.core.util.ClientOptions clientOptions)
Sets the client options for all the requests made through the client.
|
QueueServiceClientBuilder |
configuration(com.azure.core.util.Configuration configuration)
Sets the configuration object used to retrieve environment configuration values during building of the client.
|
QueueServiceClientBuilder |
connectionString(String connectionString)
Sets the connection string to connect to the service.
|
QueueServiceClientBuilder |
credential(com.azure.core.credential.AzureSasCredential credential)
Sets the
AzureSasCredential used to authorize requests sent to the service. |
QueueServiceClientBuilder |
credential(StorageSharedKeyCredential credential)
Sets the
StorageSharedKeyCredential used to authorize requests sent to the service. |
QueueServiceClientBuilder |
credential(com.azure.core.credential.TokenCredential credential)
Sets the
TokenCredential used to authorize requests sent to the service. |
QueueServiceClientBuilder |
endpoint(String endpoint)
Sets the endpoint for the Azure Storage Queue instance that the client will interact with.
|
static com.azure.core.http.policy.HttpLogOptions |
getDefaultHttpLogOptions()
Gets the default Storage allowlist log headers and query parameters.
|
QueueServiceClientBuilder |
httpClient(com.azure.core.http.HttpClient httpClient)
Sets the
HttpClient to use for sending a receiving requests to and from the service. |
QueueServiceClientBuilder |
httpLogOptions(com.azure.core.http.policy.HttpLogOptions logOptions)
Sets the
HttpLogOptions for service requests. |
QueueServiceClientBuilder |
messageEncoding(QueueMessageEncoding messageEncoding)
Sets the queue message encoding.
|
QueueServiceClientBuilder |
pipeline(com.azure.core.http.HttpPipeline httpPipeline)
Sets the
HttpPipeline to use for the service client. |
QueueServiceClientBuilder |
processMessageDecodingError(Consumer<QueueMessageDecodingError> processMessageDecodingErrorHandler)
Sets the handler that performs the tasks needed when a message is received or peaked from the queue
but cannot be decoded.
|
QueueServiceClientBuilder |
processMessageDecodingErrorAsync(Function<QueueMessageDecodingError,Mono<Void>> processMessageDecodingErrorAsyncHandler)
Sets the asynchronous handler that performs the tasks needed when a message is received or peaked from the queue
but cannot be decoded.
|
QueueServiceClientBuilder |
retryOptions(RequestRetryOptions retryOptions)
Sets the request retry options for all the requests made through the client.
|
QueueServiceClientBuilder |
sasToken(String sasToken)
Sets the SAS token used to authorize requests sent to the service.
|
QueueServiceClientBuilder |
serviceVersion(QueueServiceVersion version)
Sets the
QueueServiceVersion that is used when making API requests. |
public QueueServiceClientBuilder()
QueueServiceClients
and QueueServiceAsyncClients.public QueueServiceAsyncClient buildAsyncClient()
QueueServiceAsyncClient based on options set in the builder. Every time this is called a new
instance of QueueServiceAsyncClient is created.
If pipeline is set, then the pipeline and endpoint are used to create the client. All other builder settings are ignored.
NullPointerException - If endpoint or queueName have not been set.IllegalArgumentException - If neither a StorageSharedKeyCredential or
SAS token has been set.IllegalStateException - If multiple credentials have been specified.public QueueServiceClient buildClient()
QueueServiceClient based on options set in the builder. Every time this is called a new
instance of QueueServiceClient is created.
If pipeline is set, then the pipeline and endpoint are used to create the client.
All other builder settings are ignored.
NullPointerException - If endpoint or queueName have not been set.IllegalArgumentException - If neither a StorageSharedKeyCredential
or SAS token has been set.IllegalStateException - If multiple credentials have been specified.public QueueServiceClientBuilder endpoint(String endpoint)
Query parameters of the endpoint will be parsed in an attempt to generate a SAS token to authenticate requests sent to the service.
endpoint - The URL of the Azure Storage Queue instance to send service requests to and receive responses
from.NullPointerException - If endpoint is null.IllegalArgumentException - If endpoint is a malformed URL.public QueueServiceClientBuilder credential(StorageSharedKeyCredential credential)
StorageSharedKeyCredential used to authorize requests sent to the service.credential - StorageSharedKeyCredential.NullPointerException - If credential is null.public QueueServiceClientBuilder credential(com.azure.core.credential.TokenCredential credential)
TokenCredential used to authorize requests sent to the service.credential - TokenCredential.NullPointerException - If credential is null.public QueueServiceClientBuilder sasToken(String sasToken)
sasToken - The SAS token to use for authenticating requests. This string should only be the query parameters
(with or without a leading '?') and not a full url.NullPointerException - If sasToken is null.public QueueServiceClientBuilder credential(com.azure.core.credential.AzureSasCredential credential)
AzureSasCredential used to authorize requests sent to the service.credential - AzureSasCredential used to authorize requests sent to the service.NullPointerException - If credential is null.public QueueServiceClientBuilder connectionString(String connectionString)
connectionString - Connection string of the storage account.IllegalArgumentException - If connectionString is invalid.public QueueServiceClientBuilder httpClient(com.azure.core.http.HttpClient httpClient)
HttpClient to use for sending a receiving requests to and from the service.httpClient - HttpClient to use for requests.public QueueServiceClientBuilder addPolicy(com.azure.core.http.policy.HttpPipelinePolicy pipelinePolicy)
pipelinePolicy - a pipeline policyNullPointerException - If pipelinePolicy is null.public QueueServiceClientBuilder httpLogOptions(com.azure.core.http.policy.HttpLogOptions logOptions)
HttpLogOptions for service requests.logOptions - The logging configuration to use when sending and receiving HTTP requests/responses.NullPointerException - If logOptions is null.public static com.azure.core.http.policy.HttpLogOptions getDefaultHttpLogOptions()
public QueueServiceClientBuilder configuration(com.azure.core.util.Configuration configuration)
configuration - Configuration store used to retrieve environment configurations.public QueueServiceClientBuilder retryOptions(RequestRetryOptions retryOptions)
retryOptions - RequestRetryOptions.NullPointerException - If retryOptions is null.public QueueServiceClientBuilder pipeline(com.azure.core.http.HttpPipeline httpPipeline)
HttpPipeline to use for the service client.
If pipeline is set, all other settings are ignored, aside from endpoint.httpPipeline - HttpPipeline to use for sending service requests and receiving responses.public QueueServiceClientBuilder clientOptions(com.azure.core.util.ClientOptions clientOptions)
clientOptions - ClientOptions.NullPointerException - If clientOptions is null.public QueueServiceClientBuilder messageEncoding(QueueMessageEncoding messageEncoding)
messageEncoding - QueueMessageEncoding.NullPointerException - If messageEncoding is null.public QueueServiceClientBuilder processMessageDecodingErrorAsync(Function<QueueMessageDecodingError,Mono<Void>> processMessageDecodingErrorAsyncHandler)
Such message can be received or peaked when queue is expecting certain QueueMessageEncoding
but there's another producer that is not encoding messages in expected way.
I.e. the queue contains messages with different encoding.
QueueMessageDecodingError contains QueueAsyncClient for the queue that has received
the message as well as QueueMessageDecodingError.getQueueMessageItem() or
QueueMessageDecodingError.getPeekedMessageItem() with raw body, i.e. no decoding will be attempted
so that body can be inspected as has been received from the queue.
The handler won't attempt to remove the message from the queue. Therefore such handling should be included into handler itself.
The handler will be shared by all queue clients that are created from QueueServiceClient or
QueueServiceAsyncClient built by this builder.
Code Samples
String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
+ "AccountKey={key};EndpointSuffix={core.windows.net}";
Function<QueueMessageDecodingError, Mono<Void>> processMessageDecodingErrorHandler =
(queueMessageDecodingFailure) -> {
QueueMessageItem queueMessageItem = queueMessageDecodingFailure.getQueueMessageItem();
PeekedMessageItem peekedMessageItem = queueMessageDecodingFailure.getPeekedMessageItem();
if (queueMessageItem != null) {
System.out.printf("Received badly encoded message, messageId=%s, messageBody=%s",
queueMessageItem.getMessageId(),
queueMessageItem.getBody().toString());
return queueMessageDecodingFailure
.getQueueAsyncClient()
.deleteMessage(queueMessageItem.getMessageId(), queueMessageItem.getPopReceipt());
} else if (peekedMessageItem != null) {
System.out.printf("Peeked badly encoded message, messageId=%s, messageBody=%s",
peekedMessageItem.getMessageId(),
peekedMessageItem.getBody().toString());
return Mono.empty();
} else {
return Mono.empty();
}
};
QueueServiceClient client = new QueueServiceClientBuilder()
.connectionString(connectionString)
.processMessageDecodingErrorAsync(processMessageDecodingErrorHandler)
.buildClient();
processMessageDecodingErrorAsyncHandler - the handler.public QueueServiceClientBuilder processMessageDecodingError(Consumer<QueueMessageDecodingError> processMessageDecodingErrorHandler)
Such message can be received or peaked when queue is expecting certain QueueMessageEncoding
but there's another producer that is not encoding messages in expected way.
I.e. the queue contains messages with different encoding.
QueueMessageDecodingError contains QueueAsyncClient for the queue that has received
the message as well as QueueMessageDecodingError.getQueueMessageItem() or
QueueMessageDecodingError.getPeekedMessageItem() with raw body, i.e. no decoding will be attempted
so that body can be inspected as has been received from the queue.
The handler won't attempt to remove the message from the queue. Therefore such handling should be included into handler itself.
The handler will be shared by all queue clients that are created from QueueServiceClient or
QueueServiceAsyncClient built by this builder.
Code Samples
String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
+ "AccountKey={key};EndpointSuffix={core.windows.net}";
Consumer<QueueMessageDecodingError> processMessageDecodingErrorHandler =
(queueMessageDecodingFailure) -> {
QueueMessageItem queueMessageItem = queueMessageDecodingFailure.getQueueMessageItem();
PeekedMessageItem peekedMessageItem = queueMessageDecodingFailure.getPeekedMessageItem();
if (queueMessageItem != null) {
System.out.printf("Received badly encoded message, messageId=%s, messageBody=%s",
queueMessageItem.getMessageId(),
queueMessageItem.getBody().toString());
queueMessageDecodingFailure
.getQueueClient()
.deleteMessage(queueMessageItem.getMessageId(), queueMessageItem.getPopReceipt());
} else if (peekedMessageItem != null) {
System.out.printf("Peeked badly encoded message, messageId=%s, messageBody=%s",
peekedMessageItem.getMessageId(),
peekedMessageItem.getBody().toString());
}
};
QueueServiceClient client = new QueueServiceClientBuilder()
.connectionString(connectionString)
.processMessageDecodingError(processMessageDecodingErrorHandler)
.buildClient();
processMessageDecodingErrorHandler - the handler.public QueueServiceClientBuilder serviceVersion(QueueServiceVersion version)
QueueServiceVersion that is used when making API requests.
If a service version is not provided, the service version that will be used will be the latest known service version based on the version of the client library being used. If no service version is specified, updating to a newer version of the client library will have the result of potentially moving to a newer service version.
Targeting a specific service version may also mean that the service will return an error for newer APIs.
version - QueueServiceVersion of the service to be used when making requests.Visit the Azure for Java Developers site for more Java documentation, including quick starts, tutorials, and code samples.