Split
O EIP Split permite dividir mensagens que contêm múltiplos elementos (como listas, arrays, arquivos XML/JSON ou textos com várias linhas) em partes menores.
Cada item é processado individualmente dentro de um fluxo, facilitando o tratamento de mensagens complexas.
Quando usar o Split?
-
Para processar cada registro de um arquivo JSON separadamente.
-
Para percorrer elementos de uma lista e aplicar regras em cada um.
-
Para analisar linha por linha em um texto estruturado.
Parâmetros
Parâmetro | Descrição | Valor padrão | Tipo |
---|---|---|---|
Expression |
Define como a mensagem de entrada deve ser dividida em partes menores. |
ExpressionDefinition |
|
AggregationStrategy |
Define como os resultados das mensagens divididas serão combinados novamente em uma única mensagem ao final do processamento. |
AggregationStrategy |
Estratégias de agregação
Uma estratégia de agregação (Aggregation Strategy) é o método usado para juntar novamente os resultados que foram processados individualmente após a divisão da mensagem.
|
Confira uma a uma as estratégias de agregação que você pode usar no Sensedia Integrations:
-
GroupedBodyAggregationStrategy
: uma das mais úteis. Agrupa apenas o corpo (body) das mensagens de entrada em umajava.util.List
. Simples e eficiente para coletar resultados. -
GroupedExchangeAggregationStrategy
: similar à anterior, mas em vez de agrupar apenas os corpos, ela agrupa o objeto Exchange completo (com cabeçalhos, propriedades etc.) em umajava.util.List
. -
UseLatestAggregationStrategy
: descarta a mensagem agregada anterior e mantém sempre a mais recente. Útil quando só importa o último resultado de um processo. -
UseOriginalAggregationStrategy
: descarta a nova mensagem e mantém sempre a original (a primeira que iniciou a agregação). É o comportamento padrão do EIP Multicast. -
StringAggregationStrategy
: uma estratégia simples que concatena os corpos das mensagens (convertidos para string) em uma única string, geralmente separada por um caractere de nova linha.
Exemplo
- from:
uri: rest:post:/process
steps:
- split:
expression:
simple:
expression: ${body.split(',')}
aggregationStrategy: "#class:org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy"
- log:
message: "Processando pedido: ${body}"
-
O fluxo é iniciado por uma requisição POST enviada para o endpoint
/process
. -
O corpo da requisição deve conter uma lista de IDs de pedidos separados por vírgula, por exemplo:
1001,1002,1003
. -
O EIP Split divide essa lista em elementos individuais, e cada ID é processado separadamente no log:
-
Processando pedido: 1001
-
Processando pedido: 1002
-
Processando pedido: 1003
-
-
Por fim, o
GroupedBodyAggregationStrategy
reúne novamente todos os itens processados em uma única lista.
Share your suggestions with us!
Click here and then [+ Submit idea]