Skip to content

Commit c90a861

Browse files
authored
Add sample to consistent with other languages. (Azure#30805)
* sample consistency * add more sample
1 parent 4d09711 commit c90a861

File tree

5 files changed

+83
-1
lines changed

5 files changed

+83
-1
lines changed

sdk/servicebus/azure-messaging-servicebus/src/samples/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ connection string value can be obtained by:
5858
### Generate Shared Access Signature
5959
- [Generate SAS and receive message][ReceiveMessageAsyncUsingSasSample]
6060

61+
### Advanced Configuration
62+
- [Advanced configuration sample set][AdvancedConfigurationSample]
63+
64+
### README samples
65+
- [Readme_sample][ReadmeSample]
66+
6167
## Troubleshooting
6268
See [Troubleshooting][sdk_readme_troubleshooting].
6369

@@ -94,5 +100,7 @@ Guidelines](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.m
94100
[ServiceBusSessionProcessorSample]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ServiceBusSessionProcessorSample.java
95101
[AdministrationClientUpdateQueueSample]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/AdministrationClientUpdateQueueSample.java
96102
[ReceiveMessageAsyncUsingSasSample]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReceiveMessageUsingSasSample.java
103+
[AdvancedConfigurationSample]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/AdvancedConfigurationSample.java
104+
[ReadmeSample]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReadmeSamples.java
97105

98106
![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%2Fservicebus%2Fazure-messaging-servicebus%2Fsrc%2Fsamples%2FREADME.png)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.messaging.servicebus;
5+
6+
import com.azure.core.amqp.AmqpRetryOptions;
7+
8+
import java.time.Duration;
9+
10+
/**
11+
* Class containing code snippets that set advanced configurations.
12+
*/
13+
public class AdvancedConfigurationSample {
14+
15+
/**
16+
* Create an asynchronous receiver that use customized retry options.
17+
*/
18+
public void createAsyncServiceBusReceiver() {
19+
AmqpRetryOptions retryOptions = new AmqpRetryOptions();
20+
retryOptions.setTryTimeout(Duration.ofSeconds(60));
21+
retryOptions.setMaxRetries(3);
22+
retryOptions.setDelay(Duration.ofMillis(800));
23+
24+
ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder()
25+
.connectionString("<< CONNECTION STRING FOR THE SERVICE BUS NAMESPACE >>")
26+
.retryOptions(retryOptions)
27+
.receiver()
28+
.queueName("<< QUEUE NAME >>")
29+
.buildAsyncClient();
30+
}
31+
32+
/**
33+
* Create an asynchronous receiver that prefetch 100 messages.
34+
*/
35+
public void createAsyncServiceBusReceiverWithPrefetch() {
36+
ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder()
37+
.connectionString("<< CONNECTION STRING FOR THE SERVICE BUS NAMESPACE >>")
38+
.receiver()
39+
.queueName("<< QUEUE NAME >>")
40+
.prefetchCount(100)
41+
.buildAsyncClient();
42+
}
43+
}

sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReadmeSamples.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
package com.azure.messaging.servicebus;
55

6+
import com.azure.core.credential.AzureNamedKeyCredential;
67
import com.azure.core.credential.TokenCredential;
78
import com.azure.core.util.IterableStream;
89
import com.azure.identity.DefaultAzureCredentialBuilder;
@@ -62,6 +63,21 @@ public void createAsynchronousServiceBusReceiverWithAzureIdentity() {
6263
// END: readme-sample-createAsynchronousServiceBusReceiverWithAzureIdentity
6364
}
6465

66+
/**
67+
* Code sample for creating an asynchronous Service Bus receiver using {@link AzureNamedKeyCredential}.
68+
*/
69+
public void createAsynchronousServiceBusReceiverWithAzureNamedKeyCredential() {
70+
// BEGIN: readme-sample-createAsynchronousServiceBusReceiverWithAzureNamedKeyCredential
71+
AzureNamedKeyCredential azureNamedKeyCredential =
72+
new AzureNamedKeyCredential("<<azure-service-sas-key-name>>", "<<azure-service-sas-key>>");
73+
ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder()
74+
.credential(azureNamedKeyCredential)
75+
.receiver()
76+
.queueName("<<queue-name>>")
77+
.buildAsyncClient();
78+
// END: readme-sample-createAsynchronousServiceBusReceiverWithAzureNamedKeyCredential
79+
}
80+
6581
/**
6682
* Sends messages to a queue.
6783
*/

sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReceiveNamedSessionAsyncSample.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import reactor.core.publisher.Flux;
1111
import reactor.core.publisher.Mono;
1212

13+
import java.nio.charset.StandardCharsets;
1314
import java.util.concurrent.CountDownLatch;
1415
import java.util.concurrent.TimeUnit;
1516
import java.util.concurrent.atomic.AtomicBoolean;
@@ -73,7 +74,11 @@ public void run() throws InterruptedException {
7374
// If the session is successfully accepted, begin receiving messages from it.
7475
// Flux.usingWhen is used to dispose of the receiver after consuming messages completes.
7576
Disposable subscription = Flux.usingWhen(receiverMono,
76-
receiver -> receiver.receiveMessages(),
77+
receiver -> {
78+
// Customize session state if needed.
79+
receiver.setSessionState("new".getBytes(StandardCharsets.UTF_8));
80+
return receiver.receiveMessages();
81+
},
7782
receiver -> Mono.fromRunnable(() -> receiver.close()))
7883
.subscribe(message -> {
7984
// Process message.

sdk/servicebus/azure-messaging-servicebus/src/samples/java/com/azure/messaging/servicebus/ReceiveNamedSessionSample.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
package com.azure.messaging.servicebus;
55

66
import com.azure.core.util.IterableStream;
7+
import org.junit.jupiter.api.Assertions;
78
import org.junit.jupiter.api.Test;
89
import reactor.core.publisher.Mono;
910

11+
import java.nio.charset.StandardCharsets;
1012
import java.time.Duration;
1113
import java.util.concurrent.CountDownLatch;
1214
import java.util.concurrent.atomic.AtomicBoolean;
@@ -67,6 +69,14 @@ public void run() {
6769
// A receiver is returned when a lock on the session is acquired, otherwise, it throws an exception.
6870
ServiceBusReceiverClient receiver = sessionReceiver.acceptSession("greetings-id");
6971

72+
// Customize session state if needed.
73+
byte[] newState = "new".getBytes(StandardCharsets.UTF_8);
74+
receiver.setSessionState(newState);
75+
76+
// Get session state. The assertion is to ensure the state is correct. User should remove this.
77+
byte[] state = receiver.getSessionState("greetings-id");
78+
Assertions.assertArrayEquals(state, newState);
79+
7080
try {
7181
while (isRunning.get()) {
7282
IterableStream<ServiceBusReceivedMessage> messages = receiver.receiveMessages(10, Duration.ofSeconds(20));

0 commit comments

Comments
 (0)