You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolvesspring-projects#2155
- Add a `BitSet` property to suppress individual standard headers
- Support multiple `headersFunction`
- Allow complete customization of exception headers
- Add `setHeadersFunction` to the DLPR factory for retryable topics
Copy file name to clipboardExpand all lines: spring-kafka-docs/src/main/asciidoc/kafka.adoc
+30-1
Original file line number
Diff line number
Diff line change
@@ -5641,7 +5641,7 @@ Key exceptions are only caused by `DeserializationException` s so there is no `D
5641
5641
There are two mechanisms to add more headers.
5642
5642
5643
5643
1. Subclass the recoverer and override `createProducerRecord()` - call `super.createProducerRecord()` and add more headers.
5644
-
2. Provide a `BiFunction` to receive the consumer record and exception, returning a `Headers` object; headers from there will be copied to the final producer record.
5644
+
2. Provide a `BiFunction` to receive the consumer record and exception, returning a `Headers` object; headers from there will be copied to the final producer record; also see <<dlpr-headers>>.
5645
5645
Use `setHeadersFunction()` to set the `BiFunction`.
5646
5646
5647
5647
The second is simpler to implement but the first has more information available, including the already assembled standard headers.
@@ -5736,6 +5736,35 @@ The reason for the two properties is because, while you might want to retain onl
5736
5736
5737
5737
`appendOriginalHeaders` is applied to all headers named `*ORIGINAL*` while `stripPreviousExceptionHeaders` is applied to all headers named `*EXCEPTION*`.
5738
5738
5739
+
Starting with version 2.8.4, you now can control which of the standard headers will be added to the output record.
5740
+
5741
+
The there is a new property `whichHeaders`, which is a `BitSet`; for example, to suppress the addition of adding the stack trace header, use the following:
5742
+
5743
+
====
5744
+
[source, java]
5745
+
----
5746
+
DeadLetterPublishingRecoverer recoverer = new DeadLetterPublishingRecoverer(template);
See the `enum HeadersToAdd` for the bit names of the (currently) 10 standard headers that are added by default.
5752
+
5753
+
In addition, you can completely customize the addition of exception headers by adding an `ExceptionHeadersCreator`; this also disables all standard exception headers.
5754
+
5755
+
====
5756
+
[source, java]
5757
+
----
5758
+
DeadLetterPublishingRecoverer recoverer = new DeadLetterPublishingRecoverer(template);
Starting with version 2.8.4, if you wish to add custom headers (in addition to the retry information headers added by the factory, you can add a `headersFunction` to the factory - `factory.setHeadersFunction((rec, ex) -> { ... })`
0 commit comments