//tag::ref-doc[]
= Splitter Processor

The splitter app builds upon the concept of the same name in Spring Integration and allows the splitting of a single message into several distinct messages.
The processor uses a function that takes a `Message<?>` as input and then produces a `List<Message<?>` as output based on various properties (see below).
You can use a SpEL expression or a delimiter to specify how you want to split the incoming message.

=== Payload

* Incoming payload - `Message<?`>

If the incoming type is `byte[]` and the content type is set to `text/plain` or `application/json`, then the application converts the `byte[]` into `String`.

* Outgoing payload - `List<Message<?>`


== Options

//tag::configuration-properties[]
$$splitter.apply-sequence$$:: $$Add correlation/sequence information in headers to facilitate later aggregation.$$ *($$Boolean$$, default: `$$true$$`)*
$$splitter.charset$$:: $$The charset to use when converting bytes in text-based files to String.$$ *($$String$$, default: `$$<none>$$`)*
$$splitter.delimiters$$:: $$When expression is null, delimiters to use when tokenizing {@link String} payloads.$$ *($$String$$, default: `$$<none>$$`)*
$$splitter.expression$$:: $$A SpEL expression for splitting payloads.$$ *($$String$$, default: `$$<none>$$`)*
$$splitter.file-markers$$:: $$Set to true or false to use a {@code FileSplitter} (to split text-based files by line) that includes (or not) beginning/end of file markers.$$ *($$Boolean$$, default: `$$<none>$$`)*
$$splitter.markers-json$$:: $$When 'fileMarkers == true', specify if they should be produced as FileSplitter.FileMarker objects or JSON.$$ *($$Boolean$$, default: `$$true$$`)*
//end::configuration-properties[]

//end::ref-doc[]
