code: public <T> Stream<T> stream( Publisher pub, int batchSize ) {
          return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator(pub, batchSize), Spliterator.IMMUTABLE | Spliterator.NONNULL), false);
      }
docs: warning: blocks the calling thread. Need to execute in a separate thread if called
  from within a callback