diff --git a/docs/mp/aot.adoc b/docs/mp/aot.adoc index 1e3739439be..d4bf4c38ba6 100644 --- a/docs/mp/aot.adoc +++ b/docs/mp/aot.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2021, 2022 Oracle and/or its affiliates. + Copyright (c) 2021, 2023 Oracle and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,11 +26,10 @@ include::{rootdir}/includes/mp.adoc[] == Contents - <> -- <> +- <> == Overview -Helidon applications can be compiled into a native executable using GraalVM -native image. +Helidon applications can be compiled into a native executable using the GraalVM native-image command. When using applications created using the CLI, or when you configure Helidon application pom as a parent of your module, you can use the following steps to @@ -38,14 +37,14 @@ build a native image from your application: 1. Create an environment variable `GRAALVM_HOME` pointing to your installation of GraalVM with `native-image` installed -2. Run Maven command `mvn clean package -Pnative-image` -3. Execute the native executable created in `target` directory of your project +2. Run the Maven command `mvn clean package -Pnative-image` +3. Execute the native executable created in the `target` directory of your project -== AOT Supported Modules +== Supported Modules -Some Helidon components are not (yet) supported in native image, some have +Some Helidon components are not (yet) supported in the native image, some have restrictions. The following table lists all Helidon features and their support -for native image. +for the native image. .Helidon MP features in AOT [cols="^1,^2s,<6,<6"] diff --git a/docs/mp/integrations/hcv.adoc b/docs/mp/integrations/hcv.adoc index 6766fb6c47f..b161b0b3b05 100644 --- a/docs/mp/integrations/hcv.adoc +++ b/docs/mp/integrations/hcv.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2021, 2022 Oracle and/or its affiliates. + Copyright (c) 2021, 2023 Oracle and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,7 +29,12 @@ include::{rootdir}/includes/mp.adoc[] - <> - <> - <> +* <> - <> +* <> +* <> +* <> +* <> - <> - <> @@ -101,8 +106,8 @@ Each of these features is implemented as a separate module, with the Vault class The following classes can be injected into any CDI bean (if appropriate module is on the classpath): -* Kv2Secrets - Key/Value Version 2 Secrets (versioned secrets, default) -* Kv1Secrets - Key/Value Version 1 Secrets (un-versioned secrets, legacy) +* Kv2Secrets - Key/Value Version 2 secrets (versioned secrets, default) +* Kv1Secrets - Key/Value Version 1 secrets (un-versioned secrets, legacy) * CubbyholeSecrets - Cubbyhole secrets (token bound secrets) * DbSecrets - Database secrets (for generating temporary DB credentials) * PkiSecrets - PKI secrets (for generating keys and X.509 certificates) @@ -176,7 +181,7 @@ class TransitResource { } ---- -=== Cubbyhole secrets +=== Cubbyhole Secrets Cubbyhole example: @@ -232,7 +237,7 @@ public class CubbyholeResource { <2> Delete the secret on a specified path. <3> Get the secret on a specified path. -=== KV1 secrets +=== KV1 Secrets Key/Value version 1 secrets engine operations: @@ -311,7 +316,7 @@ public class Kv1Resource { <4> Delete the secret on a specified path. <5> Get the secret on a specified path. -=== KV2 secrets +=== KV2 Secrets Key/Value version 2 secrets engine operations: @@ -367,7 +372,7 @@ public class Kv2Resource { <3> Get the secret on a specified path. -=== Transit secrets +=== Transit Secrets Transit secrets engine operations: diff --git a/docs/mp/integrations/jedis.adoc b/docs/mp/integrations/jedis.adoc index 8862a0aa124..128b16d9c06 100644 --- a/docs/mp/integrations/jedis.adoc +++ b/docs/mp/integrations/jedis.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2021, 2022 Oracle and/or its affiliates. + Copyright (c) 2021, 2023 Oracle and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/docs/mp/integrations/neo4j.adoc b/docs/mp/integrations/neo4j.adoc index f958c1b14db..8fc2447d8aa 100644 --- a/docs/mp/integrations/neo4j.adoc +++ b/docs/mp/integrations/neo4j.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2022 Oracle and/or its affiliates. + Copyright (c) 2022, 2023 Oracle and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -32,6 +32,8 @@ include::{rootdir}/includes/mp.adoc[] - <> - <> - <> +* <> +* <> - <> == Overview @@ -47,7 +49,7 @@ include::{rootdir}/includes/dependencies.adoc[] helidon-integrations-neo4j ---- -NOTE: Check <> and <> for additional dependencies for _Neo4j_ `Metrics` and `Health Checks` integration. +NOTE: Check <> and <> for additional dependencies for _Neo4j_ `Metrics` and `Health Checks` integration. == Usage @@ -224,7 +226,7 @@ Full example code is available in link:https://github.com/oracle/helidon/tree/ma == Additional Information -=== Neo4j Metrics propagation +=== Neo4j Metrics Propagation Neo4j metrics can be propagated to the user as `MicroProfile` metrics. This is implemented in a separate Maven module. Just add @@ -249,7 +251,7 @@ By applying these two actions, Neo4j metrics will be automatically added to the === Neo4j Health Checks -If your application is highly dependent on Neo4j database, health and liveness checks are essential for this application to work correctly. +If your application is highly dependent on the Neo4j database, health and liveness checks are essential for this application to work correctly. `MicroProfile` Health checks for Neo4j are implemented in a separate Maven module: diff --git a/docs/mp/integrations/oci.adoc b/docs/mp/integrations/oci.adoc index ba6f236d3c2..4e06d0b98db 100644 --- a/docs/mp/integrations/oci.adoc +++ b/docs/mp/integrations/oci.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2021, 2022 Oracle and/or its affiliates. + Copyright (c) 2021, 2023 Oracle and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -30,7 +30,11 @@ include::{rootdir}/includes/mp.adoc[] - <> - <> - <> +* <> +* <> - <> +* <> +* <> - <> == Overview @@ -128,7 +132,7 @@ public class MyClass { The extension implements this injection point by creating an Object Storage client object in the link:{jakarta-inject-javadoc-url}/jakarta/inject/Singleton.html[singleton scope]. -=== Using the Object Storage client +=== Using the Object Storage Client Once you have injected an ObjectStorage client you can use it as described in: diff --git a/docs/mp/lra.adoc b/docs/mp/lra.adoc index 21e00c94870..6e7760e8afb 100644 --- a/docs/mp/lra.adoc +++ b/docs/mp/lra.adoc @@ -16,7 +16,7 @@ /////////////////////////////////////////////////////////////////////////////// -= LRA += Long Running Actions (LRA) :description: Long Running Actions :keywords: helidon, mp, lra :h1Prefix: MP diff --git a/docs/mp/persistence.adoc b/docs/mp/persistence.adoc index b74ccf2189b..9f144c0c532 100644 --- a/docs/mp/persistence.adoc +++ b/docs/mp/persistence.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2022 Oracle and/or its affiliates. + Copyright (c) 2022, 2023 Oracle and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,38 +24,10 @@ include::{rootdir}/includes/mp.adoc[] == Contents - * <> * <> -** <> -*** <> -**** <> -***** <> -**** <> -***** <> -*** <> -**** <> -***** <> -**** <> -***** <> -** <> -*** <> -** <> -* <> -** <> -** <> -** <> -* <> -** <> -*** <> -*** <> -*** <> -*** <> -*** <> -*** <> -** <> -** <> -** <> +* <> +* <> * <> == Overview [[Overview]] @@ -64,16 +36,23 @@ Helidon MP comes with deep integration for three specification-defined, broadly persistence-related technologies that can be used together or separately: -* <> -* <> -* <> - Each integration's setup, configuration, and usage are described below. == Named Data Source Integration [[DS]] -=== Overview +* <> +* <> +** <> +** <> +* <> +** <> +** <> +** <> +* <> + + +=== Overview [[DS-Overview]] Helidon MP's named data source integration allows you to safely inject managed @@ -101,7 +80,12 @@ not exhaustive. ==== Setting Up a Connection Pool [[DS-CP-Project-Setup]] -===== Overview +* <> +* <> +* <> + + +===== Overview [[DS-CP-Overview]] Helidon MP's named data source integration requires a connection pool implementation. @@ -142,7 +126,7 @@ managed] <1> The `scope` is `runtime`, indicating that the HikariCP integration will be available on the runtime classpath. -===== Setting up the Oracle Universal Connection Pool [[DS-UCP-Project-Setup]] +===== Setting Up the Oracle Universal Connection Pool [[DS-UCP-Project-Setup]] ====== Maven Coordinates (Oracle Universal Connection Pool) [[DS-UCP-Maven-Coordinates]] @@ -169,7 +153,12 @@ managed] ==== Setting Up a Database Driver [[DS-Driver-Project-Setup]] -===== Overview +* <> +* <> +* <> + + +===== Overview [[DS-Driver-Project-Setup-Overview]] Regardless of which connection pool you use, at the lowest level JDBC database driver classes are responsible for making any connections to @@ -216,7 +205,7 @@ managed] <1> The `scope` is `runtime`, indicating that the H2 JDBC driver classes will be available on the runtime classpath. -===== Setting Up Oracle JDBC [[DS-Oracle-Driver-Project-Setup]] +===== Setting Up the Oracle JDBC Drivers [[DS-Oracle-Driver-Project-Setup]] ====== Maven Coordinates (Oracle JDBC) [[DS-Oracle-Driver-Maven-Coordinates]] @@ -257,7 +246,7 @@ managed] === Configuration [[DS-Configuration]] -==== Overview +==== Overview [[DS-Configuration-Overview]] Each connection pool supported by Helidon's named data source integration support is, itself, a `DataSource` that wraps a @@ -427,9 +416,9 @@ javax: This example presumes you have: -* <> +* <> -* <> +* <> This example, in Java properties file format, configures an Oracle Universal Connection Pool-managed data source named `main` to @@ -484,9 +473,9 @@ vendor-supplied `DataSource` it manages]. This example presumes you have: -* <> +* <> -* <> +* <> This example, in Java properties file format, configures a HikariCP-managed data source named `test` to connect to an in-memory @@ -525,7 +514,7 @@ found in https://www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html[its javadoc]. -==== Usage [[DS-Usage]] +=== Usage [[DS-Usage]] You use Helidon MP's named data source integration in the same way, regardless of your choices of vendor-supplied `DataSource` and @@ -602,9 +591,45 @@ public SomeObject(@Named("test") DataSource ds) { // <3> <4> The injected argument will never be `null`. +=== References [[DS-References]] + +* link:{jdk-javadoc-url}/java.sql/java/sql/package-summary.html[JDBC + 4.3 Specification] + +* link:{hikaricp-base-url}#readme[HikariCP {version-lib-hikaricp} + documentation] + +* https://www.oracle.com/database/technologies/maven-central-guide.html[Developers + Guide For Oracle JDBC 21c on Maven Central] + +* link:{oracle-ucp-doc-base-url}/index.html[Oracle® Universal + Connection Pool Developer's Guide, Release 21c] + +* link:{oracle-ucp-javadoc-base-url}/index.html#[Oracle® Universal + Connection Pool Java API Reference, Release 21c] + +* link:{oracle-jdbc-doc-base-url}/index.html[Oracle® Database JDBC + Developer's Guide and Reference, Release 21c] + +* link:{oracle-jdbc-javadoc-base-url}/index.html[Oracle® Database JDBC + Java API Reference, Release 21c] + +* https://www.h2database.com/html/main.html[H2 Database Engine documentation] + + + == Jakarta Transactions (JTA) Integration [[JTA]] -=== Overview +* <> +* <> +* <> +** <> +** <> +** <> +* <> +* <> + +=== Overview [[JTA-Overview]] Helidon MP's Jakarta Transactions integration integrates the https://www.narayana.io/[Naryana transaction engine], an @@ -644,7 +669,7 @@ managed] === Configuration [[JTA-Configuration]] -==== Overview +==== Overview [[JTA-Configuration-Overview]] Helidon MP's Jakarta Transactions integration does not require configuration, but configuration is possible. Because configuration @@ -725,9 +750,25 @@ public String getGreeting(Integer id) { Persistence] object like a managed link:{jakarta-persistence-javadoc-url}/jakarta.persistence/jakarta/persistence/entitymanager[`EntityManager`]). +=== References [[JTA-References]] +* link:{jakarta-transactions-spec-url}[Jakarta Transactions + {version-lib-jakarta-transaction-api} Specification] + +* link:{jakarta-transactions-javadoc-url}/[Jakarta Transactions + {version-lib-jakarta-transaction-api} API Reference] + == Jakarta Persistence (JPA) [[JPA]] -=== Overview +* <> +* <> +** <> +* <> +** <> +* <> +* <> +* <> + +=== Overview [[JPA-Overview]] Helidon MP's link:{jakarta-persistence-base-url}/[Jakarta Persistence] integration allows you to interact with Jakarta Persistence (JPA) @@ -742,7 +783,7 @@ link:{jakarta-persistence-javadoc-url}/jakarta.persistence/jakarta/persistence/p annotation. Jakarta Persistence is a Jakarta EE specification that describes, -among other things, how its implementations: +among other things, how it is implemented: 1. Map Java objects to relational database tables @@ -788,7 +829,16 @@ will need to understand: ==== Setting Up a JPA Provider -===== Overview +* <> +* <> +* <> +* <> +* <> +* <> +* <> + + +===== Overview [[JPA-Setup-Overview]] While the Jakarta Persistence specification standardizes many aspects around programming and usage, it deliberately leaves many required @@ -1118,6 +1168,9 @@ Your `src/main/resources/META-INF/persistence.xml` file must begin ==== Persistence Unit +* <> +* <> + You list your application's persistence units as `` child elements of the enclosing `` element. Each `` element identifies a named @@ -1355,53 +1408,27 @@ relational database tables, and how to perform other related tasks. * link:{helidon-github-tree-url}/examples/integrations/cdi/pokemons[JPA Pokemons Example] + +=== References [[JPA-References]] -== References [[References]] - -* xref:../about/managing-dependencies.adoc[Managing Dependencies in Helidon MP] - -* xref:config/introduction.adoc[MicroProfile Config in Helidon MP] - -* link:{jdk-javadoc-url}/java.sql/java/sql/package-summary.html[JDBC - 4.3 Specification] - -* link:{hikaricp-base-url}#readme[HikariCP {version-lib-hikaricp} - documentation] - -* https://www.oracle.com/database/technologies/maven-central-guide.html[Developers - Guide For Oracle JDBC 21c on Maven Central] +* link:{jakarta-persistence-spec-url}[Jakarta Persistence + {persistence-lib-jakarta-persistence-api} Specification] -* link:{oracle-ucp-doc-base-url}/index.html[Oracle® Universal - Connection Pool Developer's Guide, Release 21c] +* link:{jakarta-persistence-javadoc-url}/[Jakarta Persistence + {persistence-lib-jakarta-persistence-api} API Reference] -* link:{oracle-ucp-javadoc-base-url}/index.html#[Oracle® Universal - Connection Pool Java API Reference, Release 21c] +* link:{hibernate-doc-jboss-url}userguide/html_single/Hibernate_User_Guide.html[Hibernate + ORM User Guide] -* link:{oracle-jdbc-doc-base-url}/index.html[Oracle® Database JDBC - Developer's Guide and Reference, Release 21c] +* https://www.eclipse.org/eclipselink/documentation/[Eclipselink documentation] -* link:{oracle-jdbc-javadoc-base-url}/index.html[Oracle® Database JDBC - Java API Reference, Release 21c] -* https://www.h2database.com/html/main.html[H2 Database Engine documentation] +== References [[References]] -* link:{jakarta-transactions-spec-url}[Jakarta Transactions - {version-lib-jakarta-transaction-api} Specification] +* xref:../about/managing-dependencies.adoc[Managing Dependencies in Helidon MP] -* link:{jakarta-transactions-javadoc-url}/[Jakarta Transactions - {version-lib-jakarta-transaction-api} API Reference] +* xref:config/introduction.adoc[MicroProfile Config in Helidon MP] * https://www.narayana.io/docs/project/index.html[Narayana Project Documentation] * https://www.narayana.io/docs/api/index.html[Narayana API Reference] - -* link:{jakarta-persistence-spec-url}[Jakarta Persistence - {persistence-lib-jakarta-persistence-api} Specification] - -* link:{jakarta-persistence-javadoc-url}/[Jakarta Persistence - {persistence-lib-jakarta-persistence-api} API Reference] - -* link:{hibernate-doc-jboss-url}userguide/html_single/Hibernate_User_Guide.html[Hibernate - ORM User Guide] - -* https://www.eclipse.org/eclipselink/documentation/[Eclipselink documentation]