Class ServiceBusRuleManagerAsyncClient
java.lang.Object
com.azure.messaging.servicebus.ServiceBusRuleManagerAsyncClient
- All Implemented Interfaces:
AutoCloseable
An asynchronous rule manager responsible for managing rules for a specific topic subscription. The rule manager
requires only Listen claims, whereas the
ServiceBusAdministrationAsyncClient requires Manage claims.
Create an instance of rule manager
// The required parameters is connectionString, a way to authenticate with Service Bus using credentials.
// The connectionString/queueName must be set by the application. The 'connectionString' format is shown below.
// "Endpoint={fully-qualified-namespace};SharedAccessKeyName={policy-name};SharedAccessKey={key}"
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
// 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
ServiceBusRuleManagerAsyncClient ruleManager = new ServiceBusClientBuilder()
.credential(fullyQualifiedNamespace, credential)
.ruleManager()
.topicName(topicName)
.subscriptionName(subscriptionName)
.buildAsyncClient();
Create a rule to a Service Bus subscription
RuleFilter trueRuleFilter = new TrueRuleFilter();
CreateRuleOptions options = new CreateRuleOptions(trueRuleFilter);
// `subscribe` is a non-blocking call. After setting up the create rule operation, it will move onto the next
// line of code to execute.
// Consider using Mono.usingWhen to scope the creation, usage, and cleanup of the rule manager.
ruleManager.createRule("new-rule", options).subscribe(
unused -> {
},
err -> System.err.println("Error occurred when create a rule, err: " + err),
() -> System.out.println("Create complete.")
);
// Finally dispose of the rule manager when done using it.
ruleManager.close();
Fetch all rules.
// `subscribe` is a non-blocking call. After setting up the list rules operation, it will move onto the next // line of code to execute. ruleManager.listRules().subscribe(ruleProperties -> System.out.println(ruleProperties.getName()));
Delete a rule.
// `subscribe` is a non-blocking call. After setting up the delete rule operation, it will move onto the next
// line of code to execute.
ruleManager.deleteRule("exist-rule").subscribe(
unused -> { },
err -> System.err.println("Error occurred when delete rule, err: " + err),
() -> System.out.println("Delete complete.")
);
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Disposes of theServiceBusRuleManagerAsyncClient.createRule(String ruleName, CreateRuleOptions options) Creates a rule to the current subscription to filter the messages reaching from topic to the subscription.deleteRule(String ruleName) Removes the rule on the subscription identified byruleName.Gets the name of the Service Bus resource.Gets the fully qualified namespace.Fetches all rules associated with the topic and subscription.
-
Method Details
-
getFullyQualifiedNamespace
Gets the fully qualified namespace.- Returns:
- The fully qualified namespace.
-
getEntityPath
Gets the name of the Service Bus resource.- Returns:
- The name of the Service Bus resource.
-
createRule
Creates a rule to the current subscription to filter the messages reaching from topic to the subscription.- Parameters:
ruleName- Name of rule.options- The options for the rule to add.- Returns:
- A Mono that completes when the rule is created.
- Throws:
NullPointerException- ifoptions,ruleNameis null.IllegalStateException- if client is disposed.IllegalArgumentException- ifruleNameis empty string, action ofoptionsis not null and not instanceofSqlRuleAction, filter ofoptionsis not instanceofSqlRuleFilterorCorrelationRuleFilter.ServiceBusException- if filter matchesruleNameis already created in subscription.
-
listRules
Fetches all rules associated with the topic and subscription.- Returns:
- A list of rules associated with the topic and subscription.
- Throws:
IllegalStateException- if client is disposed.UnsupportedOperationException- if client cannot support filter with descriptor in message body.
-
deleteRule
Removes the rule on the subscription identified byruleName.- Parameters:
ruleName- Name of rule to delete.- Returns:
- A Mono that completes when the rule is deleted.
- Throws:
NullPointerException- ifruleNameis null.IllegalStateException- if client is disposed.IllegalArgumentException- ifruleNameis empty string.ServiceBusException- if cannot find filter matchesruleNamein subscription.
-
close
public void close()Disposes of theServiceBusRuleManagerAsyncClient. If the client has a dedicated connection, the underlying connection is also closed.- Specified by:
closein interfaceAutoCloseable
-