Nicola Ferraro created CAMEL-11249:
--------------------------------------
Summary: camel-core - Extend split() capabilities with pluggable
splitters
Key: CAMEL-11249
URL: https://issues.apache.org/jira/browse/CAMEL-11249
Project: Camel
Issue Type: Improvement
Components: camel-core
Reporter: Nicola Ferraro
Assignee: Nicola Ferraro
Fix For: 2.20.0
Currently a "split().body()" processor will work with a limited set of value
types.
This is an excerpt from ObjectHelper.createIterator(value):
{code}
* Creates an iterator over the value if the value is a collection, an
* Object[], a String with values separated by comma,
* or a primitive type array; otherwise to simplify the caller's code,
* we just create a singleton collection iterator over a single value
* <p/>
* Will default use comma for String separating String values.
* This method does <b>not</b> allow empty values
{code}
New libraries (reactive-streams, grpc, but also java 8 collections) make heavy
use of streams, not only standard java collections.
In order to support a wide range of streams types, we can make the split
algorithm pluggable, e.g. by providing custom conversions from a specific type
to a "CamelStreamingObject" (tbd).
This way we can convert any kind of streaming object (e.g. Publisher) into its
content by putting a ".split().body()".
In Camel 2.19.0, users should include a "UnwrapStreamProcessor" in their routes
to do this conversion.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)