diff --git a/build/bom/pom.xml b/build/bom/pom.xml index 9879359a9f5d..4724840dc75d 100644 --- a/build/bom/pom.xml +++ b/build/bom/pom.xml @@ -455,6 +455,11 @@ infinispan-anchored-keys ${version.infinispan} + + org.infinispan + infinispan-quarkus-embedded + ${version.infinispan} + org.infinispan.protostream protostream diff --git a/documentation/src/main/asciidoc/stories/assembly_quarkus_embedded.adoc b/documentation/src/main/asciidoc/stories/assembly_quarkus_embedded.adoc new file mode 100644 index 000000000000..c39172349f80 --- /dev/null +++ b/documentation/src/main/asciidoc/stories/assembly_quarkus_embedded.adoc @@ -0,0 +1,13 @@ +[id='quarkus_embedded'] +:context: quarkus += Using the Quarkus extension +{brandname} provides an extension that integrates with the Quarkus framework. +The extension lets you create natively compiled {brandname} applications. + +include::{topics}/ref_quarkus_dependencies.adoc[leveloffset=+1] +include::{topics}/proc_quarkus_injecting_embedded.adoc[leveloffset=+1] +include::{topics}/proc_quarkus_native_compilation.adoc[leveloffset=+1] + +// Restore the parent context. +ifdef::parent-context[:context: {parent-context}] +ifndef::parent-context[:!context:] diff --git a/documentation/src/main/asciidoc/titles/embedding/stories.adoc b/documentation/src/main/asciidoc/titles/embedding/stories.adoc index 5e80e4b6e281..105641a8edd6 100644 --- a/documentation/src/main/asciidoc/titles/embedding/stories.adoc +++ b/documentation/src/main/asciidoc/titles/embedding/stories.adoc @@ -9,6 +9,9 @@ include::{stories}/assembly_setting_up_clusters.adoc[leveloffset=+1] include::{stories}/assembly_clustered_locks.adoc[leveloffset=+1] include::{stories}/assembly_cluster_executor.adoc[leveloffset=+1] include::{stories}/assembly_streams.adoc[leveloffset=+1] +ifdef::community[] +include::{stories}/assembly_quarkus_embedded.adoc[leveloffset=+1] +endif::community[] include::{stories}/assembly_cdi.adoc[leveloffset=+1] include::{stories}/assembly_jcache.adoc[leveloffset=+1] include::{stories}/assembly_multimap_cache.adoc[leveloffset=+1] diff --git a/documentation/src/main/asciidoc/topics/dependencies_maven/cdi_embedded_quarkus.xml b/documentation/src/main/asciidoc/topics/dependencies_maven/cdi_embedded_quarkus.xml new file mode 100644 index 000000000000..325f90bf069f --- /dev/null +++ b/documentation/src/main/asciidoc/topics/dependencies_maven/cdi_embedded_quarkus.xml @@ -0,0 +1,4 @@ + + org.infinispan + infinispan-quarkus-embedded + diff --git a/documentation/src/main/asciidoc/topics/proc_quarkus_injecting_embedded.adoc b/documentation/src/main/asciidoc/topics/proc_quarkus_injecting_embedded.adoc new file mode 100644 index 000000000000..011aff78b51b --- /dev/null +++ b/documentation/src/main/asciidoc/topics/proc_quarkus_injecting_embedded.adoc @@ -0,0 +1,26 @@ +[id='quarkus_inject_embedded'] += Injecting Embedded Caches +Inject a `EmbeddedCacheManager` instance into your Quarkus application to interact with {brandname} caches.. + +.Procedure + +. Optional: Use the `quarkus.infinispan-embedded.xml-config` property to set the path to an XML file that includes the configuration of the injected instance. ++ +[source,java] +---- +quarkus.infinispan-embedded.xml-config=/example/path/to/config.xml +---- +. Add the `@Inject` annotation to an uninitialized `EmbeddedCacheManager` class variable. ++ +[source,java] +---- +import javax.inject.Inject; +import org.infinispan.manager.EmbeddedCacheManager; +... +@Path("/example") +public class ExampleResource { + + @Inject + EmbeddedCacheManager emc; +} +---- diff --git a/documentation/src/main/asciidoc/topics/proc_quarkus_native_compilation.adoc b/documentation/src/main/asciidoc/topics/proc_quarkus_native_compilation.adoc new file mode 100644 index 000000000000..3f5af74c8aa1 --- /dev/null +++ b/documentation/src/main/asciidoc/topics/proc_quarkus_native_compilation.adoc @@ -0,0 +1,15 @@ +[id='quarkus_native_compilation'] += Compiling Quarkus {brandname} application +Generate a native executable for Quarkus {brandname} application. + +.Prerequisites + +* Have a Quarkus based project. For a complete list of prerequisites, see link:https://quarkus.io/guides/building-native-image#prerequisites[Quarkus native prerequisites]. + +.Procedure +* Natively compile your Quarkus {brandname} application: ++ +[source] +---- +mvn clean package -Pnative +---- diff --git a/documentation/src/main/asciidoc/topics/ref_quarkus_dependencies.adoc b/documentation/src/main/asciidoc/topics/ref_quarkus_dependencies.adoc new file mode 100644 index 000000000000..0a90013ec145 --- /dev/null +++ b/documentation/src/main/asciidoc/topics/ref_quarkus_dependencies.adoc @@ -0,0 +1,8 @@ +[id='quarkus_embedded_dependencies'] += Quarkus dependencies +Include the {brandname} Quarkus extension in your `pom.xml`: + +.Embedded mode +---- +include::dependencies_maven/cdi_embedded_quarkus.xml[] +----