Class ServiceBusRuleManagerClient

java.lang.Object
com.azure.messaging.servicebus.ServiceBusRuleManagerClient
All Implemented Interfaces:
AutoCloseable

public class ServiceBusRuleManagerClient extends Object implements AutoCloseable
A synchronous 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 a rule to a Service Bus subscription

 TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusRuleManagerClient ruleManager = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .ruleManager()
     .topicName(topicName)
     .subscriptionName(subscriptionName)
     .buildClient();

 RuleFilter trueRuleFilter = new TrueRuleFilter();
 CreateRuleOptions options = new CreateRuleOptions(trueRuleFilter);
 ruleManager.createRule("new-rule", options);

 // Dispose of the ruleManager when finished using it.
 ruleManager.close();
 
  • Method Details

    • getFullyQualifiedNamespace

      public String getFullyQualifiedNamespace()
      Gets the fully qualified namespace.
      Returns:
      The fully qualified namespace.
    • getEntityPath

      public String getEntityPath()
      Gets the name of the Service Bus resource.
      Returns:
      The name of the Service Bus resource.
    • createRule

      public void createRule(String ruleName, CreateRuleOptions options)
      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.
      Throws:
      NullPointerException - if options, ruleName is null.
      IllegalStateException - if client is disposed.
      IllegalArgumentException - if ruleName is empty string, action of options is not null and not instanceof SqlRuleAction, filter of options is not instanceof SqlRuleFilter or CorrelationRuleFilter.
      ServiceBusException - if filter matches ruleName is already created in subscription.
    • listRules

      public com.azure.core.util.IterableStream<RuleProperties> 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

      public void deleteRule(String ruleName)
      Removes the rule on the subscription identified by ruleName.
      Parameters:
      ruleName - Name of rule to delete.
      Throws:
      NullPointerException - if ruleName is null.
      IllegalStateException - if client is disposed.
      IllegalArgumentException - if ruleName is empty string.
      ServiceBusException - if cannot find filter matches ruleName in subscription.
    • close

      public void close()
      Disposes of the ServiceBusRuleManagerClient. If the client has a dedicated connection, the underlying connection is also closed.
      Specified by:
      close in interface AutoCloseable