Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
82bf818
start of the alesi documentation
rjayasinghe Jan 29, 2026
62dab3c
messaging section WIP
rjayasinghe Jan 29, 2026
28d0cdf
Update java/_menu.md
rjayasinghe Jan 30, 2026
79747ba
messaging section
rjayasinghe Jan 30, 2026
cef7eda
add link to event hub plugin
rjayasinghe Jan 30, 2026
4b3ab9e
rework first part and continue outbox
rjayasinghe Feb 2, 2026
966b00b
updates for the outbox section
rjayasinghe Feb 3, 2026
57598c5
rewriting introduction section
rjayasinghe Feb 3, 2026
9f66d2d
smaller updates
rjayasinghe Feb 3, 2026
2fcb58a
updated synopsis
rjayasinghe Feb 4, 2026
4d46e52
rewrote the outbox section
rjayasinghe Feb 4, 2026
5599382
move ucl docu to internal fragment
rjayasinghe Feb 5, 2026
c762399
Apply suggestions from code review
rjayasinghe Feb 11, 2026
667fe0f
update introduction section
rjayasinghe Feb 11, 2026
42e27f8
Merge remote-tracking branch 'origin/main' into alesi_java_docu
rjayasinghe Feb 11, 2026
5d3012f
add links
rjayasinghe Feb 11, 2026
2653ce0
fix link
rjayasinghe Feb 11, 2026
7b1d0b1
fix links
rjayasinghe Feb 11, 2026
2c13a7a
Merge branch 'main' into alesi_java_docu
rjayasinghe Feb 11, 2026
c8d2341
latest cap java version
rjayasinghe Feb 12, 2026
f5a5749
Merge branch 'main' into alesi_java_docu
rjayasinghe Feb 24, 2026
7a875d9
Merge branch 'main' into alesi_java_docu
rjayasinghe Feb 24, 2026
1d9f310
updates
rjayasinghe Mar 4, 2026
923da7c
strip down the section and point to docu instead
rjayasinghe Mar 4, 2026
00d75d2
shorten menu item
rjayasinghe Mar 4, 2026
115e3ad
Merge remote-tracking branch 'origin/main' into alesi_java_docu
rjayasinghe Mar 4, 2026
2068d95
try to fix links
rjayasinghe Mar 4, 2026
3b7d16f
renamed headlines and stripped the guide
rjayasinghe Mar 5, 2026
e62735a
spelling
rjayasinghe Mar 5, 2026
46a8b6c
Update java/cap-plugins-in-spring-boot-apps.md
rjayasinghe Mar 5, 2026
5db8e72
dynamic version
rjayasinghe Mar 5, 2026
3195b1b
Merge branch 'main' into alesi_java_docu
rjayasinghe Mar 6, 2026
83cb6e0
editing
renejeglinsky Mar 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion java/_menu.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
# [Multitenancy](multitenancy)
# [Security](security)
# [Spring Boot Integration](spring-boot-integration)
## [CAP plugins in plain Spring Boot](cap-plugins-in-spring-boot-apps)
# [Developing Applications](developing-applications/)
## [Building](developing-applications/building)
## [Running](developing-applications/running)
Expand All @@ -37,4 +38,4 @@
# [Integrating Applications](../../java/integrating-applications/) <!-- INTERNAL -->
## [Unified Customer Landscape](../../java/integrating-applications/ucl) <!-- INTERNAL -->
# [Building Plugins](building-plugins)
# [Migration Guides](migration)
# [Migration Guides](migration)
74 changes: 74 additions & 0 deletions java/cap-plugins-in-spring-boot-apps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
synopsis: >
This guide shows how Spring Boot applications that run without a CDS model can integrate with service offerings on SAP BTP by using CAP plugins without a full migration to CAP Java.
status: released
---

# Use CAP Plugins in Spring Boot Applications without a CDS Model

<style scoped>
h1:before {
content: "Java"; display: block; font-size: 60%; margin: 0 0 .2em;
}
</style>

<script setup>
import { useData } from 'vitepress'
const { theme } = useData()
const { versions } = theme.value.capire
</script>

{{ $frontmatter.synopsis }}

CAP Java offers a [variety of plugins that integrate with SAP BTP services](../plugins/) and keep your application free of hard-coded service dependencies. In the CAP ecosystem, this approach is called [Calesi (CAP level service integration)](../get-started/concepts#the-calesi-pattern). Most Calesi plugins expose a CAP service that you can inject as a Spring Boot component. As the CAP runtime can run alongside a Spring Boot application without a CDS model, this lets you use proven service integration through CAP plugins with a growing set of SAP BTP services.

In most cases, you add a CAP Java plugin by adding one or more dependencies to your application `pom.xml` and by adding configuration to `application.yaml` or another mechanism for [Spring Boot configuration](https://docs.spring.io/spring-boot/reference/features/external-config.html). The following sections show examples of how to use the core CAP Java runtime and CAP plugins to integrate a Spring Boot application with different SAP BTP services.

To use any CAP Java plugin in a Spring Boot application, include two Maven dependencies. The first dependency is the core CAP Java runtime with its Spring Boot integration:

```xml
<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-framework-spring-boot</artifactId>
<version>${cds.services.version}</version>
<scope>runtime</scope>
</dependency>
```
This boots the CAP Java runtime when your Spring Boot application starts. To interact with CAP and its plugins, add an additional dependency for the CAP Java application programming interface artifact:

```xml
<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-services-api</artifactId>
<version>${cds.services.version}</version>
</dependency>

```

Also add a version property in your `<properties>` section:

```xml-vue
<cds.services.version>{{ versions.java_services }}</cds.services.version>
```

## SAP Audit Log Service

CAP audit log support lets your application write audit log messages for relevant operations. The audit log application programming interfaces and the local default implementation are already part of the basic dependencies.

The SAP Audit Log service implementation for SAP BTP integrates with the CAP Java audit log application programming interfaces and is available as an additional plugin. Learn more in the [plugin documentation](https://github.com/cap-java/cds-feature-auditlog-ng).

For details on how to use the audit log application programming interfaces in your application code, refer to the [Auditlog documentation](./auditlog).

## CAP Messaging

The CAP framework offers an abstraction layer for messaging services. CAP applications can emit events and messages to a `MessagingService` regardless of the target messaging infrastructure. The local default implementation for messaging is part of the basic dependencies mentioned in the previous sections and uses the file system as the communication layer. This means you do not need a dedicated message broker for local development.

With the two basic dependencies included, activate file-based messaging in the application configuration:

```yaml
cds.messaging.services.messaging.kind: file-based-messaging
```

After that, you can use the CAP messaging feature in your application. For details, refer to the [Messaging documentation](./messaging).

<div id="alesi-cds-feature-ucl" />