{"ref":"content:how-to-build-reusable-plugin-components-for-cap-java-applications","page":"/content/how-to-build-reusable-plugin-components-for-cap-java-applications","json":"/content/how-to-build-reusable-plugin-components-for-cap-java-applications.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"how-to-build-reusable-plugin-components-for-cap-java-applications","title":"How to build reusable plugin components for CAP Java applications","url":"https://community.sap.com/t5/technology-blog-posts-by-sap/how-to-build-reusable-plugin-components-for-cap-java-applications/ba-p/13552211","content_type":"blog","published_on":"source:sap-community","explains":["capability:plugin-authoring"],"summary":"A companion to [Daniel Schlachter](actor:danschlachter)'s [Reusable components for CAP with cds-plugin](content:reusable-components-for-cap-with-cds-plugin), showing the same mechanism on CAP Java: a plugin ships as its own Maven artifact with an event handler and a `CdsRuntimeConfiguration` implementation, registered through the JDK's `ServiceLoader` rather than any CAP-specific wiring. The walkthrough builds a `cds-emoji-plugin-java` jar that decorates `@emoji`-annotated fields on read, installs it to the local Maven repository, and adds it as a runtime dependency to a `cds init --add java` bookshop application. It argues the plugin mechanism was not new to CAP Java, just previously undocumented.","short":"Reusable CAP Java plugins as Maven artifacts","author":"robinjayasinghe","published":"2023-05-16","provenance":{"discovered_via":[{"source":"source:sap-community","channel":"cap-tag"}],"first_seen":"2026-09-28"},"drafted_with_ai":true},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"poor","evidence":"published 41 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2023-05-16"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":4053,"unit":"views"},{"value":5,"unit":"comments"},{"value":7,"unit":"likes"}]},"signals":{"views":4053,"likes":7,"comments":5,"metrics_at":"2026-10-25"},"series":null,"edges":{"authors":[]}}