diff --git a/about/features.md b/about/features.md index 9fbb0ca06..7dbae33e3 100644 --- a/about/features.md +++ b/about/features.md @@ -124,7 +124,7 @@ Following is an index of the features currently covered by CAP, with status and | [Temporal Data](../guides/temporal-data) | | | | | [Managed Data](../guides/domain-modeling#managed-data) | | | | | [Dynamic Extensibility](../guides/extensibility/) | | | | -| Monitoring / Logging [[Node.js](../node.js/cds-log)\|[Java](../java/observability#logging)] | | | | +| Monitoring / Logging [[Node.js](../node.js/cds-log)\|[Java](../java/operating-applications/observability#logging)] | | | | | Audit Logging [[Node.js](../guides/data-privacy/audit-logging)\|[Java](../java/auditlog)] | | | | diff --git a/get-started/hello-world.md b/get-started/hello-world.md index 20a69b3b2..a930304b6 100644 --- a/get-started/hello-world.md +++ b/get-started/hello-world.md @@ -93,7 +93,7 @@ module.exports = class say {
-... for example, using a [CAP Java](../java/provisioning-api) custom handler like this: +... for example, using a [CAP Java](../java/event-handlers) custom handler like this: ::: code-group diff --git a/get-started/troubleshooting.md b/get-started/troubleshooting.md index e6d2c561e..7521ee2f5 100644 --- a/get-started/troubleshooting.md +++ b/get-started/troubleshooting.md @@ -186,7 +186,7 @@ module.exports = cds.server ### How can I make sure that a user passes all authorization checks? -A new option `privilegedUser()` can be leveraged when [defining](../java/handlers/request-contexts#defining-requestcontext) your own `RequestContext`. Adding this introduces a user, which passes all authorization restrictions. This is useful for scenarios, where a restricted service should be called through the [local service consumption API](../java/services) either in a request thread regardless of the original user's authorizations or in a background thread. +A new option `privilegedUser()` can be leveraged when [defining](../java/event-handlers/request-contexts#defining-requestcontext) your own `RequestContext`. Adding this introduces a user, which passes all authorization restrictions. This is useful for scenarios, where a restricted service should be called through the [local service consumption API](../java/services) either in a request thread regardless of the original user's authorizations or in a background thread. ### Why do I get a "User should not exist" error during build time? diff --git a/guides/databases.md b/guides/databases.md index f7b20468c..253d34afb 100644 --- a/guides/databases.md +++ b/guides/databases.md @@ -335,7 +335,7 @@ cds.db.run (`SELECT from sqlite_schema where name like ?`, name)
-Use Spring's [JDBC Template](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html) to [leverage native database features](../java/advanced#jdbctemplate) as follows: +Use Spring's [JDBC Template](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html) to [leverage native database features](../java/cqn-services/persistence-services#jdbctemplate) as follows: ```java @Autowired diff --git a/guides/messaging/index.md b/guides/messaging/index.md index c75b557a5..ae9570b5f 100644 --- a/guides/messaging/index.md +++ b/guides/messaging/index.md @@ -165,7 +165,7 @@ class ReviewsService extends cds.ApplicationService { async init() { }} ``` [Learn more about `srv.emit()` in Node.js.](../../node.js/core-services#srv-emit-event){.learn-more} -[Learn more about `srv.emit()` in Java.](../../java/consumption-api#an-event-based-api){.learn-more} +[Learn more about `srv.emit()` in Java.](../../java/services#an-event-based-api){.learn-more} Method `srv.emit()` is used to emit event messages. As you can see, emitters usually emit messages to themselves, that is, `this`, to inform potential listeners about certain events. Emitters don't know the receivers of the events they emit. There might be none, there might be local ones in the same process, or remote ones in separate processes. @@ -186,7 +186,7 @@ Find the code to receive events in *[@capire/bookstore/srv/mashup.js](https://gi ``` [Learn more about registering event handlers in Node.js.](../../node.js/core-services#srv-on-before-after){.learn-more} -[Learn more about registering event handlers in Java.](../../java/provisioning-api#introduction-to-event-handlers){.learn-more} +[Learn more about registering event handlers in Java.](../../java/event-handlers#introduction-to-event-handlers){.learn-more} The message payload is in the `data` property of the inbound `msg` object. diff --git a/guides/providing-services.md b/guides/providing-services.md index eab4ef5f5..47c27c1c0 100644 --- a/guides/providing-services.md +++ b/guides/providing-services.md @@ -912,7 +912,7 @@ The remaining cases that need custom handlers, reduce to real custom logic, spec public class FooServiceImpl implements EventHandler {...} ``` -[Learn more about Event Handler classes in Java.](../java/provisioning-api#handlerclasses){.learn-more} +[Learn more about Event Handler classes in Java.](../java/event-handlers#handlerclasses){.learn-more} @@ -946,7 +946,7 @@ public class BookshopServiceImpl implements EventHandler { [Learn more about **adding event handlers in Node.js**.](../node.js/core-services#srv-on-before-after){.learn-more} -[Learn more about **adding event handlers in Java**.](../java/provisioning-api#handlerclasses){.learn-more} +[Learn more about **adding event handlers in Java**.](../java/event-handlers#handlerclasses){.learn-more} @@ -980,7 +980,7 @@ Event handlers all get a uniform _Request_/_Event Message_ context object as the - The `tenant` using your SaaS application, if enabled [Learn more about **implementing event handlers in Node.js**.](../node.js/events#cds-request){.learn-more} -[Learn more about **implementing event handlers in Java**.](../java/provisioning-api#eventcontext){.learn-more} +[Learn more about **implementing event handlers in Java**.](../java/event-handlers#eventcontext){.learn-more} diff --git a/guides/using-services.md b/guides/using-services.md index 36f660a91..1ae46e525 100644 --- a/guides/using-services.md +++ b/guides/using-services.md @@ -519,7 +519,7 @@ You can use dependency injection to get access to the remote service: CqnService bupa; ``` -Then execute your queries using the [Querying API](../java/query-execution): +Then execute your queries using the [Querying API](../java/working-with-cql/query-execution): ```java CqnSelect select = Select.from(ABusinessPartner_.class).limit(100); @@ -1034,7 +1034,7 @@ cds: type: "odata-v2" ``` -[Learn more about configuring destinations for Java.](../java/remote-services#configuring-the-destination){.learn-more} +[Learn more about configuring destinations for Java.](../java/cqn-services/remote-services#configuring-the-destination){.learn-more} #### Use Application Defined Destinations { #app-defined-destinations} @@ -1177,7 +1177,7 @@ cds: type: "odata-v2" ``` -[Learn more about programmatic destination registration.](../java/remote-services#programmatic-destination-registration){.learn-more} [See examples for different authentication types.](../java/remote-services#register-destinations){.learn-more} +[Learn more about programmatic destination registration.](../java/cqn-services/remote-services#programmatic-destination-registration){.learn-more} [See examples for different authentication types.](../java/cqn-services/remote-services#register-destinations){.learn-more} ### Connect to Remote Services Locally @@ -1586,7 +1586,7 @@ Kyma clusters run an [Istio](https://istio.io/) service mesh. Istio allows to [c CAP adds headers for request correlation to its outbound requests that allows logging and tracing across micro services. [Learn more about request correlation in Node.js.](../node.js/cds-log#node-observability-correlation){.learn-more .impl .node} -[Learn more about request correlation in Java.](../java/observability#correlation-ids){.learn-more .impl .java} +[Learn more about request correlation in Java.](../java/operating-applications/observability#correlation-ids){.learn-more .impl .java}
@@ -1673,5 +1673,5 @@ This list specifies the properties for application defined destinations. | NoAuthentication | | | | BasicAuthentication | | | | TokenForwarding | |
Use `forwardAuthToken` | -| OAuth2ClientCredentials | [code only](../java/remote-services#oauth2-client-credentials) | | -| UserTokenAuthentication | [code only](../java/remote-services#user-token-authentication) | | +| OAuth2ClientCredentials | [code only](../java/cqn-services/remote-services#oauth2-client-credentials) | | +| UserTokenAuthentication | [code only](../java/cqn-services/remote-services#user-token-authentication) | | diff --git a/java/building-plugins.md b/java/building-plugins.md index a1f997c8a..23b07df23 100644 --- a/java/building-plugins.md +++ b/java/building-plugins.md @@ -297,7 +297,7 @@ public class SampleAdapter extends HttpServlet { As mentioned previously, a protocol adapter maps incoming requests to CQL statements and executes them on the right [`ApplicationService`](https://cap.cloud.sap/docs/java/application-services) according to the `HttpServletRequest`'s request-path. In order to have all relevant `ApplicationServices` ready at runtime, you can call `runtime.getServiceCatalog().getServices(ApplicationService.class)` in the adapter's constructor to load all `ApplicationServices`. Then select the ones relevant for this protocol adapter to have them ready, for example in a Map, for serving requests in `service()`. -When handling incoming requests at runtime, you need to extract the request path and parameters from the incoming HttpServletRequest. Then, you can use CQL API from the `cds4j-api` module to [create CQL](https://cap.cloud.sap/docs/java/working-with-cql/query-api) corresponding to the extracted information. This statement then needs to be executed with [`ApplicationService.run()`](https://cap.cloud.sap/docs/java/query-execution). The returned result then needs to be mapped to the result format that is suitable for the protocol handled by the adapter. For REST, it would be some canonical JSON serialization of the returned objects. +When handling incoming requests at runtime, you need to extract the request path and parameters from the incoming HttpServletRequest. Then, you can use CQL API from the `cds4j-api` module to [create CQL](https://cap.cloud.sap/docs/java/working-with-cql/query-api) corresponding to the extracted information. This statement then needs to be executed with [`ApplicationService.run()`](https://cap.cloud.sap/docs/java/working-with-cql/query-execution). The returned result then needs to be mapped to the result format that is suitable for the protocol handled by the adapter. For REST, it would be some canonical JSON serialization of the returned objects. REST request: diff --git a/java/cds-data.md b/java/cds-data.md index 5056a109b..ef86f6e4d 100644 --- a/java/cds-data.md +++ b/java/cds-data.md @@ -5,7 +5,7 @@ status: released redirect_from: java/data uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- - + # Working with Data diff --git a/java/cqn-services/persistence-services.md b/java/cqn-services/persistence-services.md index 06a0fca72..e54f26cf0 100644 --- a/java/cqn-services/persistence-services.md +++ b/java/cqn-services/persistence-services.md @@ -34,7 +34,7 @@ SAP HANA Cloud is the CAP standard database recommended for productive use with 1. Write operations through views that can't be resolved by the CAP runtime are passed through to SAP HANA Cloud. Limitations are described in the [SAP HANA Cloud documentation](https://help.sap.com/docs/HANA_CLOUD_DATABASE/c1d3f60099654ecfb3fe36ac93c121bb/20d5fa9b75191014a33eee92692f1702.html#loio20d5fa9b75191014a33eee92692f1702__section_trx_ckh_qdb). -2. [Shared locks](../java/query-execution#pessimistic-locking) are supported on SAP HANA Cloud only. +2. [Shared locks](../java/working-with-cql/query-execution#pessimistic-locking) are supported on SAP HANA Cloud only. 3. When using `String` elements in locale-specific ordering relations (`>`, `<`, ... , `between`), a statement-wide collation is added, which can have negative impact on the performance. If locale-specific ordering isn't required for specific `String` elements, annotate the element with `@cds.collate: false`. @@ -147,7 +147,7 @@ cds.sql.hana.optimizationMode: hex ``` :::tip -Use the [hints](../java/query-execution#hana-hints) `hdb.USE_HEX_PLAN` and `hdb.NO_USE_HEX_PLAN` to overrule the configured optimization mode per statement. +Use the [hints](../java/working-with-cql/query-execution#hana-hints) `hdb.USE_HEX_PLAN` and `hdb.NO_USE_HEX_PLAN` to overrule the configured optimization mode per statement. ::: ### PostgreSQL { #postgresql-1 } diff --git a/java/cqn-services/remote-services.md b/java/cqn-services/remote-services.md index 2727bcf23..4ba661fc6 100644 --- a/java/cqn-services/remote-services.md +++ b/java/cqn-services/remote-services.md @@ -5,7 +5,7 @@ status: released redirect_from: java/remote-services uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/9186ed9ab00842e1a31309ff1be38792.html --- - + # Remote Services