From 5c3cf988ac1c65cb1c4d14e6105d1d05fcc47648 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Fri, 8 May 2020 21:29:37 +0000 Subject: [PATCH 1/5] Increment package version after release of com.azure azure-messaging-servicebus --- eng/jacoco-test-coverage/pom.xml | 2 +- eng/versioning/version_client.txt | 2 +- sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md | 3 +++ sdk/servicebus/azure-messaging-servicebus/pom.xml | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/eng/jacoco-test-coverage/pom.xml b/eng/jacoco-test-coverage/pom.xml index 1344a54204a2..0f09b7a1e604 100644 --- a/eng/jacoco-test-coverage/pom.xml +++ b/eng/jacoco-test-coverage/pom.xml @@ -129,7 +129,7 @@ com.azure azure-messaging-servicebus - 7.0.0-beta.2 + 7.0.0-beta.3 com.azure diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index 6d2ddb9e2601..3ac25efa421d 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -25,7 +25,7 @@ com.azure:azure-identity;1.0.6;1.1.0-beta.4 com.azure:azure-identity-perf;1.0.0-beta.1;1.0.0-beta.1 com.azure:azure-messaging-eventhubs;5.0.3;5.1.0 com.azure:azure-messaging-eventhubs-checkpointstore-blob;1.0.3;1.1.0 -com.azure:azure-messaging-servicebus;7.0.0-beta.1;7.0.0-beta.2 +com.azure:azure-messaging-servicebus;7.0.0-beta.2;7.0.0-beta.3 com.azure:azure-search-documents;1.0.0-beta.3;1.0.0-beta.4 com.azure:azure-security-keyvault-certificates;4.1.0-beta.2;4.1.0-beta.3 com.azure:azure-security-keyvault-keys;4.2.0-beta.3;4.2.0-beta.4 diff --git a/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md b/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md index eba6c5777c96..57ea762e8c7a 100644 --- a/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-messaging-servicebus/CHANGELOG.md @@ -1,5 +1,8 @@ # Release History +## 7.0.0-beta.3 (Unreleased) + + ## 7.0.0-beta.2 (2020-05-07) - Add support for receiving messages from specific sessions diff --git a/sdk/servicebus/azure-messaging-servicebus/pom.xml b/sdk/servicebus/azure-messaging-servicebus/pom.xml index a89e381ed309..3da98c56d190 100644 --- a/sdk/servicebus/azure-messaging-servicebus/pom.xml +++ b/sdk/servicebus/azure-messaging-servicebus/pom.xml @@ -14,7 +14,7 @@ com.azure azure-messaging-servicebus - 7.0.0-beta.2 + 7.0.0-beta.3 Microsoft Azure client library for Service Bus Libraries built on Microsoft Azure Service Bus From dc6cb8f1e4fdca4b5dfc81b81c9f9888a36d80dd Mon Sep 17 00:00:00 2001 From: Hemant Tanwar Date: Wed, 1 Jul 2020 16:06:06 -0700 Subject: [PATCH 2/5] readme changes --- .../azure-messaging-servicebus/README.md | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/sdk/servicebus/azure-messaging-servicebus/README.md b/sdk/servicebus/azure-messaging-servicebus/README.md index 8d7f7f5bd129..7a7d85cd6435 100644 --- a/sdk/servicebus/azure-messaging-servicebus/README.md +++ b/sdk/servicebus/azure-messaging-servicebus/README.md @@ -15,38 +15,21 @@ have to be online at the same time. [Source code][source_code] | [API reference documentation][api_documentation] | [Product documentation][product_docs]| [Samples][sample_examples] -## Table of contents - -- [Azure Service Bus client library for Java](#azure-service-bus-client-library-for-java) - - [Table of contents](#table-of-contents) - - [Getting started](#getting-started) - - [Prerequisites](#prerequisites) - - [Include the package](#include-the-package) - - [Authenticate the client](#authenticate-the-client) - - [Key concepts](#key-concepts) - - [Examples](#examples) - - [Send messages](#send-messages) - - [Receive messages](#receive-messages) - - [Settle messages](#settle-messages) - - [Send and receive from session enabled queues or topics](#send-and-receive-from-session-enabled-queues-or-topics) - - [Troubleshooting](#troubleshooting) - - [Enable client logging](#enable-client-logging) - - [Enable AMQP transport logging](#enable-amqp-transport-logging) - - [Common exceptions](#common-exceptions) - - [Next steps](#next-steps) - - [Contributing](#contributing) - ## Getting started ### Prerequisites -- Java Development Kit (JDK) with version 8 or above +- [Java Development Kit (JDK)][java_development_kit] with version 8 or above - [Maven][maven] - Microsoft Azure subscription - You can create a free account at: https://azure.microsoft.com - Azure Service Bus instance - Step-by-step guide for [creating a Service Bus instance using Azure Portal][service_bus_create] +To quickly create the needed Service Bus resources in Azure and to receive a connection string for them, you can deploy our sample template by clicking: + +[![](http://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-sdk-for-net%2Fmaster%2Fsdk%2Fservicebus%2FAzure.Messaging.ServiceBus%2Fassets%2Fsamples-azure-deploy.json) + ### Include the package [//]: # ({x-version-update-start;com.azure:azure-messaging-servicebus;current}) @@ -143,6 +126,10 @@ on which actual message transmission takes place. The namespace often serves as receives a copy of the message sent to the topic. ## Examples + - [Send messages](#send-messages) + - [Receive messages](#receive-messages) + - [Settle messages](#settle-messages) + - [Send and receive from session enabled queues or topics](#send-and-receive-from-session-enabled-queues-or-topics) ### Send messages @@ -359,7 +346,9 @@ java.util.logging.SimpleFormatter.format=[%1$tF %1$tr] %3$s %4$s: %5$s %n This is a general exception for AMQP related failures, which includes the AMQP errors as `ErrorCondition` and the context that caused this exception as `AmqpErrorContext`. `isTransient` is a boolean indicating if the exception is a -transient error or not. If true, then the request can be retried; otherwise not. +transient error or not. If a transient AMQP exception occurs, the client library retries the operation as many times +as the [AmqpRetryOptons][AmqpRetryOptons] allows. Afterwords, the operation fails and an exception is propagated back +to the user. [`AmqpErrorCondition`][AmqpErrorCondition] contains error conditions common to the AMQP protocol and used by Azure services. When an AMQP exception is thrown, examining the error condition field can inform developers as to why the AMQP @@ -373,7 +362,7 @@ The recommended way to solve the specific exception the AMQP exception represent Beyond those discussed, the Azure Service Bus client library offers support for many additional scenarios to help take advantage of the full feature set of the Azure Service Bus service. In order to help explore some of these scenarios, -check out the [samples README][samples_readme]. +the following set of sample is available [here][samples_readme]. ## Contributing @@ -398,7 +387,7 @@ Guidelines](./../../../CONTRIBUTING.md) for more information. [ReceiveMode]: ./src/main/java/com/azure/messaging/servicebus/models/ReceiveMode.java [RetryOptions]: ../../core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpRetryOptions.java [sample_examples]: ./src/samples/java/com/azure/messaging/servicebus/ -[samples_readme]: ./src/samples/README.md +[samples_readme]: ./src/samples/java/com/azure/messaging/servicebus [service_bus_connection_string]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-create-namespace-portal#get-the-connection-string [servicebus_create]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-create-namespace-portal [servicebus_messaging_exceptions]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messaging-exceptions @@ -411,5 +400,8 @@ Guidelines](./../../../CONTRIBUTING.md) for more information. [subscription_concept]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-queues-topics-subscriptions#topics-and-subscriptions [topic_concept]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messaging-overview#topics [wiki_identity]: https://github.com/Azure/azure-sdk-for-java/wiki/Identity-and-Authentication +[java_development_kit]: https://docs.microsoft.com/en-us/java/azure/jdk/?view=azure-java-stable +[AmqpRetryOptons]: ../../core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpRetryOptions.java +[service_bus_create]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-create-namespace-portal ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%2Fservicebus%2Fazure-messaging-servicebus%2FREADME.png) From 7b9dc8591fa0f039e602b2e7b718d69cc072e899 Mon Sep 17 00:00:00 2001 From: Hemant Tanwar Date: Wed, 1 Jul 2020 16:22:36 -0700 Subject: [PATCH 3/5] readme changes --- .../azure-messaging-servicebus/README.md | 18 +++++++++++++++++- .../messaging/servicebus/ReadmeSamples.java | 12 ++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/sdk/servicebus/azure-messaging-servicebus/README.md b/sdk/servicebus/azure-messaging-servicebus/README.md index 7a7d85cd6435..ec94bbb69347 100644 --- a/sdk/servicebus/azure-messaging-servicebus/README.md +++ b/sdk/servicebus/azure-messaging-servicebus/README.md @@ -130,7 +130,7 @@ on which actual message transmission takes place. The namespace often serves as - [Receive messages](#receive-messages) - [Settle messages](#settle-messages) - [Send and receive from session enabled queues or topics](#send-and-receive-from-session-enabled-queues-or-topics) - + - [Create a dead-letter queue Receiver](#create-a-dead-letter-queue-receiver) ### Send messages You'll need to create an asynchronous [`ServiceBusSenderAsyncClient`][ServiceBusSenderAsyncClient] or a synchronous @@ -307,6 +307,21 @@ ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder() .queueName("<< QUEUE NAME >>") .buildAsyncClient(); ``` +### Create a dead-letter queue Receiver + +Azure Service Bus queues and topic subscriptions provide a secondary sub-queue, called a dead-letter queue (DLQ). +The dead-letter queue doesn't need to be explicitly created and can't be deleted or otherwise managed independent +of the main entity. Learn more about dead-letter queue [here][dead-letter-queue]. + + +```java +ServiceBusReceiverClient receiver = new ServiceBusClientBuilder() + .connectionString("<< CONNECTION STRING FOR THE SERVICE BUS NAMESPACE >>") + .deadLetterReceiver() + .topicName("<< TOPIC NAME >>") + .subscriptionName("<< SUBSCRIPTION NAME >>") + .buildClient(); +``` ## Troubleshooting @@ -403,5 +418,6 @@ Guidelines](./../../../CONTRIBUTING.md) for more information. [java_development_kit]: https://docs.microsoft.com/en-us/java/azure/jdk/?view=azure-java-stable [AmqpRetryOptons]: ../../core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpRetryOptions.java [service_bus_create]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-create-namespace-portal +[dead-letter-queue]: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dead-letter-queues ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%2Fservicebus%2Fazure-messaging-servicebus%2FREADME.png) diff --git a/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReadmeSamples.java b/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReadmeSamples.java index e512bd9f05de..68ecda0ad74f 100644 --- a/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReadmeSamples.java +++ b/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReadmeSamples.java @@ -192,4 +192,16 @@ public void unnamedSessionReceiver() { .queueName("<< QUEUE NAME >>") .buildAsyncClient(); } + + /** + * Code sample for creating an synchronous Service Bus receiver to read message from dead-letter queue. + */ + public void createSynchronousServiceBusDeadLetterQueueReceiver() { + ServiceBusReceiverClient receiver = new ServiceBusClientBuilder() + .connectionString("<< CONNECTION STRING FOR THE SERVICE BUS NAMESPACE >>") + .deadLetterReceiver() + .topicName("<< TOPIC NAME >>") + .subscriptionName("<< SUBSCRIPTION NAME >>") + .buildClient(); + } } From f48dd085b79da0ae0bf11aa45851b6d3b89e5741 Mon Sep 17 00:00:00 2001 From: Hemant Tanwar Date: Thu, 2 Jul 2020 22:21:13 -0700 Subject: [PATCH 4/5] REview comments --- sdk/servicebus/azure-messaging-servicebus/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sdk/servicebus/azure-messaging-servicebus/README.md b/sdk/servicebus/azure-messaging-servicebus/README.md index ec94bbb69347..84d395c7135d 100644 --- a/sdk/servicebus/azure-messaging-servicebus/README.md +++ b/sdk/servicebus/azure-messaging-servicebus/README.md @@ -307,6 +307,7 @@ ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder() .queueName("<< QUEUE NAME >>") .buildAsyncClient(); ``` + ### Create a dead-letter queue Receiver Azure Service Bus queues and topic subscriptions provide a secondary sub-queue, called a dead-letter queue (DLQ). @@ -388,8 +389,11 @@ Guidelines](./../../../CONTRIBUTING.md) for more information. [aad_authorization]: https://docs.microsoft.com/azure/service-bus-messaging/authenticate-application [amqp_transport_error]: https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-amqp-error [AmqpErrorCondition]: ../../core/azure-core-amqp/src/main/java/com/azure/core/amqp/exception/AmqpErrorCondition.java +[AmqpRetryOptons]: ../../core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpRetryOptions.java [api_documentation]: https://aka.ms/java-docs +[dead-letter-queue]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-dead-letter-queues [deadletterqueue_docs]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-dead-letter-queues +[java_development_kit]: https://docs.microsoft.com/en-us/java/azure/jdk/?view=azure-java-stable [java_8_sdk_javadocs]: https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html [logging]: https://github.com/Azure/azure-sdk-for-java/wiki/Logging-with-Azure-SDK [maven]: https://maven.apache.org/ @@ -411,13 +415,10 @@ Guidelines](./../../../CONTRIBUTING.md) for more information. [ServiceBusReceiverClient]: ./src/main/java/com/azure/messaging/servicebus/ServiceBusReceiverClient.java [ServiceBusSenderAsyncClient]: ./src/main/java/com/azure/messaging/servicebus/ServiceBusSenderAsyncClient.java [ServiceBusSenderClient]: ./src/main/java/com/azure/messaging/servicebus/ServiceBusSenderClient.java +[service_bus_create]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-create-namespace-portal [source_code]: ./ [subscription_concept]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-queues-topics-subscriptions#topics-and-subscriptions [topic_concept]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messaging-overview#topics [wiki_identity]: https://github.com/Azure/azure-sdk-for-java/wiki/Identity-and-Authentication -[java_development_kit]: https://docs.microsoft.com/en-us/java/azure/jdk/?view=azure-java-stable -[AmqpRetryOptons]: ../../core/azure-core-amqp/src/main/java/com/azure/core/amqp/AmqpRetryOptions.java -[service_bus_create]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-create-namespace-portal -[dead-letter-queue]: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dead-letter-queues ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%2Fservicebus%2Fazure-messaging-servicebus%2FREADME.png) From acef67c39d1d42424e80ad47228f95cd57b4de92 Mon Sep 17 00:00:00 2001 From: Hemant Tanwar Date: Thu, 2 Jul 2020 22:23:36 -0700 Subject: [PATCH 5/5] Review comments --- sdk/servicebus/azure-messaging-servicebus/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/servicebus/azure-messaging-servicebus/README.md b/sdk/servicebus/azure-messaging-servicebus/README.md index 84d395c7135d..e061bfd600c4 100644 --- a/sdk/servicebus/azure-messaging-servicebus/README.md +++ b/sdk/servicebus/azure-messaging-servicebus/README.md @@ -393,7 +393,7 @@ Guidelines](./../../../CONTRIBUTING.md) for more information. [api_documentation]: https://aka.ms/java-docs [dead-letter-queue]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-dead-letter-queues [deadletterqueue_docs]: https://docs.microsoft.com/azure/service-bus-messaging/service-bus-dead-letter-queues -[java_development_kit]: https://docs.microsoft.com/en-us/java/azure/jdk/?view=azure-java-stable +[java_development_kit]: https://docs.microsoft.com/java/azure/jdk/?view=azure-java-stable [java_8_sdk_javadocs]: https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html [logging]: https://github.com/Azure/azure-sdk-for-java/wiki/Logging-with-Azure-SDK [maven]: https://maven.apache.org/