Class SseSerializer
- All Implemented Interfaces:
Function<Object,,String> ThrowingFunction<Object,,String> RecordWritable
SseEvent objects to the Media types
Produces
Description
Accepts any of the following as input and emits one wire event per element followed by a blank line (the spec's "dispatch" boundary):
- A single
SseEvent. Iterable<SseEvent>.- An array
SseEvent[]. Stream<SseEvent>.
After each event is written, the session calls Writer.flush() so that downstream
REST infrastructure flushes the underlying TCP socket and the event is delivered immediately to the
client.
Notes:
- This class is thread safe and reusable.
See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
WriterSerializer.DefaultBuilderNested classes/interfaces inherited from class org.apache.juneau.marshall.serializer.Serializer
Serializer.Null -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final SseSerializerDefault serializer, all default settings.static final StringWire-format media type produced by this serializer:text/event-stream .Fields inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
maxIndent, quoteChar, quoteCharOverride, useWhitespaceFields inherited from class org.apache.juneau.marshall.serializer.Serializer
accept, addBeanTypes, addRootType, keepNullProperties, listener, nonDefault, produces, sortCollections, sortMaps, trimEmptyCollections, trimEmptyMaps, trimStringsFields inherited from class org.apache.juneau.marshall.MarshallingContextable
marshallingContextFields inherited from class org.apache.juneau.marshall.Context
CONTEXT_APPLY_FILTER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncopy()Creates a builder from this context object.static SseSerializer.Buildercreate()Creates a new builder for this object.Create a session builder based on the properties defined on this context.Returns a session to use for this context.booleanStreaming-quality signal queryable before opening a cursor.static voidwriteComment(Writer w, String comment) Writes a comment line (heartbeat) to the supplied writer in the SSE wire format and flushes it.writeRecords(Object output) Convenience delegator that opens aRecordWriterover the output using default session arguments (mirrorsWriterSerializer.write(Object)).Methods inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
applyThrows, getMaxIndent, getQuoteChar, getStreamCharset, isUseWhitespace, isWriterSerializer, println, properties, quoteChar, toString, writeMethods inherited from class org.apache.juneau.marshall.serializer.Serializer
createSerializerBuilder, doWrite, forEachAcceptMediaType, getListener, getMediaTypeRanges, getPrimaryMediaType, getResponseContentType, getResponseHeaders, getUriContext, getUriRelativity, getUriResolution, isAddBeanTypes, isAddRootType, isKeepNullProperties, isNonDefault, isSortCollections, isSortMaps, isTrimEmptyCollections, isTrimEmptyMaps, isTrimStrings, write, writeToStringMethods inherited from class org.apache.juneau.marshall.MarshallingTraverseContext
getDetectRecursions, getIgnoreRecursions, getInitialDepth, getMaxDepth, isDetectRecursions, isIgnoreRecursions, shouldDetectRecursionsMethods inherited from class org.apache.juneau.marshall.MarshallingContextable
getDurationFormat, getMarshallingContext, getPeriodFormatMethods inherited from class org.apache.juneau.marshall.Context
createBuilder, getAnnotationProvider, init, isDebug, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.juneau.commons.function.ThrowingFunction
apply
-
Field Details
-
MEDIA_TYPE
Wire-format media type produced by this serializer:text/event-stream .- See Also:
-
DEFAULT
Default serializer, all default settings.
-
-
Constructor Details
-
SseSerializer
Constructor.- Parameters:
builder- The builder for this object.
-
-
Method Details
-
create
Creates a new builder for this object.- Returns:
- A new builder.
-
copy
Description copied from class:ContextCreates a builder from this context object.Builders are used to define new contexts (e.g. serializers, parsers) based on existing configurations.
- Overrides:
copyin classWriterSerializer- Returns:
- A new Builder object.
-
createSession
Description copied from class:ContextCreate a session builder based on the properties defined on this context.Use this method for creating sessions where you want to override basic settings. Otherwise, use
Context.getSession()directly.- Overrides:
createSessionin classWriterSerializer- Returns:
- A new session builder.
-
getSession
Description copied from class:ContextReturns a session to use for this context.Note that subclasses may opt to return a reusable non-modifiable session.
- Overrides:
getSessionin classWriterSerializer- Returns:
- A new session object.
-
writeComment
Writes a comment line (heartbeat) to the supplied writer in the SSE wire format and flushes it.- Parameters:
w- The writer. Must not benull .comment- The comment text.nullis treated as an empty string.- Throws:
IOException- If a problem occurred writing to the underlying stream.
-
writeRecords
Convenience delegator that opens aRecordWriterover the output using default session arguments (mirrorsWriterSerializer.write(Object)).The real implementation lives on
SseSerializerSession.writeRecords(Object). Callers that need request-derived configuration should callcreateSession()and invokeSseSerializerSession.writeRecords(Object)on the built session instead.- Specified by:
writeRecordsin interfaceRecordWritable- Parameters:
output- The output.- Returns:
- A new
RecordWriter. - Throws:
IOException- If a problem occurred opening the underlying output.
-
isRecordStreaming
Description copied from interface:RecordWritableStreaming-quality signal queryable before opening a cursor.- Specified by:
isRecordStreamingin interfaceRecordWritable- Returns:
true ifRecordWritable.writeRecords(Object)returns an O(1)-memory streaming cursor;false for buffered (whole-value) formats backed byRecordAdapter.
-