Class JsonTextSequences

java.lang.Object
com.linecorp.armeria.server.streaming.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 Details

    • 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, com.fasterxml.jackson.databind.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, com.fasterxml.jackson.databind.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, com.fasterxml.jackson.databind.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, com.fasterxml.jackson.databind.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, com.fasterxml.jackson.databind.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, com.fasterxml.jackson.databind.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 @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 @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 @Nullable Object content, com.fasterxml.jackson.databind.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 @Nullable Object content, HttpHeaders trailers, com.fasterxml.jackson.databind.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