Class JsonTextSequences


  • public final class JsonTextSequences
    extends Object
    A utility class which helps to create a JavaScript Object Notation (JSON) Text Sequences from a content Publisher or Stream.

    A user simply creates a streaming HttpResponse which emits JSON Text Sequences, e.g.

    
     ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
     Server server =
         Server.builder()
               // Emit JSON Text Sequences with a default ObjectMapper.
               .service("/seq1",
                        (ctx, req) -> JsonTextSequences.fromPublisher(Flux.just("foo", "bar")))
               // Emit JSON Text Sequences with the ObjectMapper
               // configured to use the default pretty printer.
               .service("/seq2",
                        (ctx, req) -> JsonTextSequences.fromPublisher(Flux.just("foo", "bar"), mapper))
               .build();
     
    • Method Detail

      • fromPublisher

        public static HttpResponse fromPublisher​(org.reactivestreams.Publisher<?> contentPublisher)
        Creates a new JSON Text Sequences from the specified Publisher.
        Parameters:
        contentPublisher - the Publisher which publishes the objects supposed to send as contents
      • fromPublisher

        public static HttpResponse fromPublisher​(org.reactivestreams.Publisher<?> contentPublisher,
                                                 ObjectMapper mapper)
        Creates a new JSON Text Sequences from the specified Publisher.
        Parameters:
        contentPublisher - the Publisher which publishes the objects supposed to send as contents
        mapper - the mapper which converts the content object into JSON Text Sequences
      • fromPublisher

        public static HttpResponse fromPublisher​(ResponseHeaders headers,
                                                 org.reactivestreams.Publisher<?> contentPublisher)
        Creates a new JSON Text Sequences from the specified Publisher.
        Parameters:
        headers - the HTTP headers supposed to send
        contentPublisher - the Publisher which publishes the objects supposed to send as contents
      • fromPublisher

        public static HttpResponse fromPublisher​(ResponseHeaders headers,
                                                 org.reactivestreams.Publisher<?> contentPublisher,
                                                 ObjectMapper mapper)
        Creates a new JSON Text Sequences from the specified Publisher.
        Parameters:
        headers - the HTTP headers supposed to send
        contentPublisher - the Publisher which publishes the objects supposed to send as contents
        mapper - the mapper which converts the content object into JSON Text Sequences
      • fromPublisher

        public static HttpResponse fromPublisher​(ResponseHeaders headers,
                                                 org.reactivestreams.Publisher<?> contentPublisher,
                                                 HttpHeaders trailers,
                                                 ObjectMapper mapper)
        Creates a new JSON Text Sequences from the specified Publisher.
        Parameters:
        headers - the HTTP headers supposed to send
        contentPublisher - the Publisher which publishes the objects supposed to send as contents
        trailers - the HTTP trailers
        mapper - the mapper which converts the content object into JSON Text Sequences
      • fromStream

        public static HttpResponse fromStream​(Stream<?> contentStream,
                                              Executor executor)
        Creates a new JSON Text Sequences from the specified Stream.
        Parameters:
        contentStream - the Stream which publishes the objects supposed to send as contents
        executor - the executor which iterates the stream
      • fromStream

        public static HttpResponse fromStream​(Stream<?> contentStream,
                                              Executor executor,
                                              ObjectMapper mapper)
        Creates a new JSON Text Sequences from the specified Stream.
        Parameters:
        contentStream - the Stream which publishes the objects supposed to send as contents
        executor - the executor which iterates the stream
      • fromStream

        public static HttpResponse fromStream​(ResponseHeaders headers,
                                              Stream<?> contentStream,
                                              Executor executor)
        Creates a new JSON Text Sequences from the specified Stream.
        Parameters:
        headers - the HTTP headers supposed to send
        contentStream - the Stream which publishes the objects supposed to send as contents
        executor - the executor which iterates the stream
      • fromStream

        public static HttpResponse fromStream​(ResponseHeaders headers,
                                              Stream<?> contentStream,
                                              Executor executor,
                                              ObjectMapper mapper)
        Creates a new JSON Text Sequences from the specified Stream.
        Parameters:
        headers - the HTTP headers supposed to send
        contentStream - the Stream which publishes the objects supposed to send as contents
        executor - the executor which iterates the stream
        mapper - the mapper which converts the content object into JSON Text Sequences
      • fromStream

        public static HttpResponse fromStream​(ResponseHeaders headers,
                                              Stream<?> contentStream,
                                              HttpHeaders trailers,
                                              Executor executor,
                                              ObjectMapper mapper)
        Creates a new JSON Text Sequences from the specified Stream.
        Parameters:
        headers - the HTTP headers supposed to send
        contentStream - the Stream which publishes the objects supposed to send as contents
        trailers - the HTTP trailers
        executor - the executor which iterates the stream
        mapper - the mapper which converts the content object into JSON Text Sequences
      • fromObject

        public static HttpResponse fromObject​(@Nullable
                                              Object content)
        Creates a new JSON Text Sequences of the specified content.
        Parameters:
        content - the object supposed to send as contents
      • fromObject

        public static HttpResponse fromObject​(ResponseHeaders headers,
                                              @Nullable
                                              Object content)
        Creates a new JSON Text Sequences of the specified content.
        Parameters:
        headers - the HTTP headers supposed to send
        content - the object supposed to send as contents
      • fromObject

        public static HttpResponse fromObject​(ResponseHeaders headers,
                                              @Nullable
                                              Object content,
                                              ObjectMapper mapper)
        Creates a new JSON Text Sequences of the specified content.
        Parameters:
        headers - the HTTP headers supposed to send
        content - the object supposed to send as contents
        mapper - the mapper which converts the content object into JSON Text Sequences
      • fromObject

        public static HttpResponse fromObject​(ResponseHeaders headers,
                                              @Nullable
                                              Object content,
                                              HttpHeaders trailers,
                                              ObjectMapper mapper)
        Creates a new JSON Text Sequences of the specified content.
        Parameters:
        headers - the HTTP headers supposed to send
        content - the object supposed to send as contents
        trailers - the HTTP trailers
        mapper - the mapper which converts the content object into JSON Text Sequences