You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Nicola Ferraro (JIRA)" <ji...@apache.org> on 2017/05/09 14:03:04 UTC
[jira] [Created] (CAMEL-11249) camel-core - Extend split()
capabilities with pluggable splitters
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)