Class JsonLines

java.lang.Object
com.linecorp.armeria.server.streaming.JsonLines

public final class JsonLines extends Object
A utility class which helps to create a JavaScript Object Notation (JSON) Lines text from a content Publisher or Stream.

A user simply creates a streaming HttpResponse which emits JSON Lines text, e.g.


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

    • fromPublisher

      public static HttpResponse fromPublisher(org.reactivestreams.Publisher<?> contentPublisher)
      Returns a newly created JSON Lines response 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)
      Returns a newly created JSON Lines response from 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 Lines
    • fromPublisher

      public static HttpResponse fromPublisher(ResponseHeaders headers, org.reactivestreams.Publisher<?> contentPublisher)
      Returns a newly created JSON Lines response 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)
      Returns a newly created JSON Lines response 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 Lines
    • fromPublisher

      public static HttpResponse fromPublisher(ResponseHeaders headers, org.reactivestreams.Publisher<?> contentPublisher, HttpHeaders trailers, ObjectMapper mapper)
      Returns a newly created JSON Lines response 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 Lines
    • fromStream

      public static HttpResponse fromStream(Stream<?> contentStream, Executor executor)
      Returns a newly created JSON Lines response 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)
      Returns a newly created JSON Lines response 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)
      Returns a newly created JSON Lines response 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)
      Returns a newly created JSON Lines response 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 Lines
    • fromStream

      public static HttpResponse fromStream(ResponseHeaders headers, Stream<?> contentStream, HttpHeaders trailers, Executor executor, ObjectMapper mapper)
      Returns a newly created JSON Lines response 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 Lines
    • fromObject

      public static HttpResponse fromObject(@Nullable @Nullable Object content)
      Returns a newly created JSON Lines response from the specified content.
      Parameters:
      content - the object supposed to send as contents
    • fromObject

      public static HttpResponse fromObject(ResponseHeaders headers, @Nullable @Nullable Object content)
      Returns a newly created JSON Lines response from 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, ObjectMapper mapper)
      Returns a newly created JSON Lines response from 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 Lines
    • fromObject

      public static HttpResponse fromObject(ResponseHeaders headers, @Nullable @Nullable Object content, HttpHeaders trailers, ObjectMapper mapper)
      Returns a newly created JSON Lines response from 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 Lines