eolivelli commented on code in PR #16816:
URL: https://github.com/apache/pulsar/pull/16816#discussion_r933801453
##########
site2/docs/functions-develop-api.md:
##########
@@ -102,6 +102,39 @@ public class ExclamationFunction implements
Function<String, String> {
For more details, see [code
example](https://github.com/apache/pulsar/blob/master/pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/ExclamationFunction.java).
+The return type of the `Function` can be wrapped in a Pulsar `Record` generic
which gives more control on the output message (topic, schema, properties, ...)
+You can use the `Context::newOutputRecordBuilder` method to build this
`Record` output.
+
+```java
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.pulsar.functions.api.Context;
+import org.apache.pulsar.functions.api.Function;
+import org.apache.pulsar.functions.api.Record;
+
+public class RecordFunction implements Function<String, Record<String>> {
+
+ @Override
+ public Record<String> process(String input, Context context) throws
Exception {
+ String publishTopic = (String)
context.getUserConfigValueOrDefault("publish-topic", "publishtopic");
Review Comment:
This example is not good, with this example the function won't write to this
topic (that is a custom parameter) but to the topic configured as output
topic for the function.
We should rework the example
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]