0
votes

I've deployed spring-cloud-dataflow with Docker. These are the used containers:

  • springcloud/spring-cloud-dataflow-server-local:1.7.1.RELEASE
  • wurstmeister/zookeeper
  • wurstmeister/kafka:1.1.0

[other containers not involved in the issue ...]

Documentation consulted:

Spring Cloud Data Flow Reference Guide - 1.7.1.RELEASE

Header Enricher Processor

I am trying to use the header-enricher processor to add multiple headers, but i can only add one header.

With the following example:

time | header-enricher --headers="foo='bar' \n baz='qux'" --overwrite=true | log --expression=headers

Also add this propertie to the deployment

app.*.spring.cloud.stream.kafka.binder.headers=foo,baz

The header-enricher log is throwing next error at start.

nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.integration.transformer.support.ExpressionEvaluatingHeaderValueMessageProcessor]: Circular reference involving containing bean 'org.springframework.cloud.stream.app.header.enricher.processor.HeaderEnricherProcessorConfiguration' - consider declaring the factory method as static for independence from its containing instance. Factory method 'processor' threw exception; nested exception is org.springframework.expression.spel.SpelParseException: EL1041E: After parsing a valid expression, there is still more data in the expression: 'baz'

EDIT: I am currently using these two ways to define the stream.

  1. SCDF Dashboard: Throwing next error

SCDF Dashboard

  1. SCDF Shell spring-cloud-dataflow-shell-1.7.2.RELEASE Throwing next error and it seems that he does not accept the character \

Shell Quotes and Escaping

SCDF Shell

1

1 Answers

0
votes

The issue is with your expression. You need to remove the double quotes

 --headers=foo='bar' \n baz='qux'