code: public <T> NonBlockingClient subscribe(String topicPattern, DestinationListener<T> destListener, CompletionListener<T> compListener, T context)
      throws SubscribedException, StoppedException, IllegalArgumentException {
          return subscribe(topicPattern, defaultSubscribeOptions, destListener, compListener, context);
      }
docs: Subscribes to a destination.  This is equivalent to calling:
  <code>subscribe(topicPattern, new SubscribeOptions(), listener, context)</code>
  @param topicPattern the topic pattern to subscribe to.  This determines which messages will be
  held at the subscribed to destination pending delivery to this client. Cannot be null.
  @param destListener a listener that is notified when messages arrive at the client and also
  when the destination is unsubscribed from using the
  {@link NonBlockingClient#unsubscribe(String, String, int, CompletionListener, Object)} method.
  Cannot be null.
  @param compListener a listener that is notified when the subscribe operation completes.  If a
  value of <code>null</code> is specified then no-one is notified.
  @param context a context object that is passed into the listeners registered using this method.
  The object supplied can be used within the listener code to identify the specific
  instance of the subscribe method relating to the listener invocation.
  @param <T> the type of the context, used to propagate an arbitrary object between method calls on an
  instance of this object, and the various listeners that are used to provide notification
  of client related events.
  @return the instance of <code>NonBlockingClient</code> that the subscribe method was invoked upon.  This is to
  allow invocations of the subscribe method to be chained.
  @throws SubscribedException if the client is already subscribed to the destination identified by a combination
  of the topic pattern and share options.
  @throws StoppedException if the client is in stopped or stopping state when this method is invoked.
  @throws IllegalArgumentException if an invalid value is specified for one of the arguments.
  @see NonBlockingClient#subscribe(String, SubscribeOptions, DestinationListener, CompletionListener, Object)