Interface ISubscriberAdminBuilder<T extends ISubscriberAdminBuilder<T,​B>,​B extends ISubscriberAdmin<B>>

  • Type Parameters:
    T - Type of concrete builder, needed for fluent methods.
    B - Type of concrete manager (built object), needed for fluent methods.
    All Superinterfaces:
    org.symphonyoss.s2.common.fluent.IBuilder<T,​B>, org.symphonyoss.s2.common.fluent.IFluent<T>
    All Known Implementing Classes:
    AbstractSubscriberAdmin.Builder

    public interface ISubscriberAdminBuilder<T extends ISubscriberAdminBuilder<T,​B>,​B extends ISubscriberAdmin<B>>
    extends org.symphonyoss.s2.common.fluent.IBuilder<T,​B>
    A builder for a subscriber admin controller.
    Author:
    Bruce Skingle
    • Method Detail

      • withSubscription

        T withSubscription​(Subscription subscription)
      • withSubscription

        T withSubscription​(String subscriptionName,
                           String topicName,
                           String... additionalTopicNames)
        Subscribe to the given subscription on the given topics. This method allows for the creation of the same subscription on one or more topics, the same consumer will receive messages received on the given subscription on any of the topics. The topics are all treated in the same way, the method is declared with topic and additionalTopics to ensure that at least one topic is provided. This method does the same thing as the other withSubscription methods, alternative signatures are provided as a convenience.
        Parameters:
        subscriptionName - A subscription name.
        topicName - A topic name.
        additionalTopicNames - An optional list of additional topic names.
        Returns:
        this (fluent method)
      • withObsoleteSubscription

        T withObsoleteSubscription​(String subscriptionName,
                                   String topicName,
                                   String... additionalTopicNames)
        Delete the given subscription on the given topics. This method allows for the deletion of subscriptions which are no longer required. It causes the subscription to be deleted during both deploy and undeploy operations. If currently running instances of the service are actively consuming from this subscription then they will experience errors. For this reason, subscriptions should normally be phased out in two stages (assuming a no downtime deployment is required). In the first stage the service would remove the withSubscription() call, once that version is deployed a subsequent deployment can be made including a call to this method, which will cause the subscription to be deleted. This does mean that messages will back up on the subscription during the period between the two releases which may cause montioring systems to alert.
        Parameters:
        subscriptionName - A subscription name.
        topicName - A topic name.
        additionalTopicNames - An optional list of additional topic names.
        Returns:
        this (fluent method)
      • withSubscription

        T withSubscription​(String subscriptionName,
                           Collection<org.symphonyoss.s2.fugue.naming.TopicName> topicNames)
        Subscribe to the given subscription on the given topics. This method allows for the creation of the same subscription on one or more topics, the same consumer will receive messages received on the given subscription on any of the topics. The topics are all treated in the same way, the method is declared with topic and additionalTopics to ensure that at least one topic is provided. This method does the same thing as the other withSubscription methods, alternative signatures are provided as a convenience.
        Parameters:
        subscriptionName - A subscription name.
        topicNames - A list of topic names.
        Returns:
        this (fluent method)
        Throws:
        IllegalArgumentException - If the list of topics is empty.
      • withSubscription

        T withSubscription​(String subscriptionName,
                           String[] topicNames)
        Subscribe to the given subscription on the given topics. This method allows for the creation of the same subscription on one or more topics, the same consumer will receive messages received on the given subscription on any of the topics. The topics are all treated in the same way, the method is declared with topic and additionalTopics to ensure that at least one topic is provided. This method does the same thing as the other withSubscription methods, alternative signatures are provided as a convenience.
        Parameters:
        subscriptionName - A subscription name.
        topicNames - A list of topic names.
        Returns:
        this (fluent method)
        Throws:
        IllegalArgumentException - If the list of topics is empty.