This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch pf
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 6f5135bf6b6137597295b15343929988c0266e09
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Feb 15 10:55:02 2022 +0100

    CAMEL-17647: camel-core - Properties component should support pluggable 
functions
---
 .../ROOT/pages/using-propertyplaceholder.adoc      | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc 
b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
index 3f79a92..2ffee01 100644
--- a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
+++ b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
@@ -558,6 +558,34 @@ PropertiesComponent pc = context.getPropertiesComponent();
 pc.addFunction(new MyBeerFunction());
 ----
 
+==== Pluggable custom properties functions
+
+If you want custom properties functions to be easier to use then we recommend 
making them pluggable.
+For example the beer function from above, can be made pluggable simply by 
adding the `PropertiesFunction` annotations as shown:
+
+[source,java]
+----
+@org.apache.camel.spi.annotations.PropertiesFunction("beer")
+public class MyBeerFunction implements PropertiesFunction {
+
+    @Override
+    public String getName() {
+        return "beer";
+    }
+
+    @Override
+    public String apply(String remainder) {
+        return "mock:" + remainder.toLowerCase();
+    }
+}
+----
+
+Then by having the `camel-component-maven-plugin` as part of building the 
component will
+then ensure that this custom properties has necessary source code generated 
that makes Camel
+able to automatically discover the custom function.
+
+TIP: For an example see the `camel-base64` component.
+
 == Using third party property sources
 
 The properties component allows to plugin 3rd party sources to load and lookup 
properties via the `PropertySource`

Reply via email to