doc-templates.extension-doc-page.adoc Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of camel-quarkus-maven-plugin Show documentation
Show all versions of camel-quarkus-maven-plugin Show documentation
Maven plugin to help package Camel quarkus components and plugins
[id="extensions-[=artifactIdBase]"]
= [=name]
[#if pageAliases?? ]:page-aliases: [=pageAliases]
[/#if]
:linkattrs:
:cq-artifact-id: camel-quarkus-[=artifactIdBase]
:cq-native-supported: [=nativeSupported?then('true', 'false')]
:cq-status: [=status]
:cq-status-deprecation: [=statusDeprecation]
:cq-description: [=description]
:cq-deprecated: [=deprecated?then('true', 'false')]
:cq-jvm-since: [=jvmSince]
:cq-native-since: [=nativeSince]
ifeval::[{doc-show-badges} == true]
[.badges]
[.badge-key]##JVM since##[.badge-supported]##[=jvmSince]## [.badge-key]##Native[=nativeSupported?then(' since', '')]##[.badge-[=nativeSupported?then('', 'un')]supported]##[=nativeSupported?then(nativeSince, 'unsupported')]##[#if deprecated ] [.badge-key]##⚠️##[.badge-unsupported]##Deprecated##[/#if]
endif::[]
[=intro]
[#if models?size > 0]
[id="extensions-[=artifactIdBase]-whats-inside"]
== What's inside
[#list models as model]
* [=camelBitLink(model, models)][[=model.title][#if model.kind != "other" ] [=humanReadableKind(model.kind)][/#if]][#if model.kind == "component" ], URI syntax: `[=model.syntax]`[/#if]
[/#list]
Please refer to the above link[#if models?size != 1]s[/#if] for usage and configuration details.
[/#if]
[id="extensions-[=artifactIdBase]-maven-coordinates"]
== Maven coordinates
[#if !unlisted]https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-[=artifactIdBase][Create a new project with this extension on {link-quarkus-code-generator}, window="_blank"]
Or add the coordinates to your existing project:
[/#if][source,xml]
----
org.apache.camel.quarkus
camel-quarkus-[=artifactIdBase]
----
ifeval::[{doc-show-user-guide-link} == true]
Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
endif::[]
[#if usage?? || usageAdvanced?? ]
[id="extensions-[=artifactIdBase]-usage"]
== Usage
[#if usage?? ]
[=usage]
[/#if]
[#if usageAdvanced?? ]
ifeval::[{doc-show-advanced-features} == true]
[=usageAdvanced]
endif::[]
[/#if]
[/#if]
[#if limitations?? ]
[id="extensions-[=artifactIdBase]-camel-quarkus-limitations"]
== Camel Quarkus limitations
[=limitations]
[/#if]
[#if activatesNativeSsl ]
[id="extensions-[=artifactIdBase]-ssl-in-native-mode"]
== SSL in native mode
This extension auto-enables SSL support in native mode. Hence you do not need to add
`quarkus.ssl.native=true` to your `application.properties` yourself. See also
https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].
[/#if]
[#if activatesContextMapAll ]
[id="extensions-[=artifactIdBase]-allowcontextmapall-option-in-native-mode"]
== allowContextMapAll option in native mode
The `allowContextMapAll` option is not supported in native mode as it requires reflective access to security sensitive camel core classes such as
`CamelContext` & `Exchange`. This is considered a security risk and thus access to the feature is not provided by default.
[/#if]
[#if activatesTransferException ]
[id="extensions-[=artifactIdBase]-transferexception-option-in-native-mode"]
== transferException option in native mode
To use the `transferException` option in native mode, you must enable support for object serialization. Refer to the xref:user-guide/native-mode.adoc#serialization[native mode user guide]
for more information.
You will also need to enable serialization for the exception classes that you intend to serialize. For example.
[source,java]
----
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
----
[/#if]
[#if activatesQuarkusLangChain4jBom ]
[id="extensions-[=artifactIdBase]-quarkus-langchain4j-bom"]
== Ensure Quarkus LangChain4j dependencies version alignment with the Bom
In order to ensure alignment across all Quarkus and LangChain4j related dependencies, it is recommended to import the Quarkus LangChain4j bom as below:
[source,xml]
----
io.quarkiverse.langchain4j
quarkus-langchain4j-bom
${insert your version here}
pom
import
...
----
Note that the import order is paramount when using maven `dependencyManagement`.
As such, one might need to import the `quarkus-langchain4j-bom` before other related Camel and Quarkus boms.
[/#if]
[#if configuration?? || quarkusAwsClient?? || configOptions?size != 0 ]
[id="extensions-[=artifactIdBase]-additional-camel-quarkus-configuration"]
== Additional Camel Quarkus configuration
[#if configuration??]
[=configuration]
[/#if]
[#if quarkusAwsClient??]
[id="extensions-[=artifactIdBase]-optional-integration-with-[=quarkusAwsClient.extensionNameIdHeading]"]
=== Optional integration with [=quarkusAwsClient.extensionName]
If desired, it is possible to use the [=quarkusAwsClient.extensionName] extension in conjunction with Camel Quarkus [=name].
Note that this is fully optional and not mandatory at all.
Please follow the [=quarkusAwsClient.configurationUrl][Quarkus documentation] but beware of the following caveats:
1. The client type `apache` has to be selected by configuring the following property:
+
[source,properties]
----
[=quarkusAwsClient.configBase].sync-client.type=apache
----
2. The `[=quarkusAwsClient.clientClassSimpleName]` has to be made "unremovable" in the sense of https://quarkus.io/guides/cdi-reference#remove_unused_beans[Quarkus CDI reference] so that Camel Quarkus is able to look it up at runtime.
You can reach that e.g. by adding a dummy bean injecting `[=quarkusAwsClient.clientClassSimpleName]`:
+
[source,java]
----
import jakarta.enterprise.context.ApplicationScoped;
import io.quarkus.arc.Unremovable;
import [=quarkusAwsClient.clientClassFqName];
@ApplicationScoped
@Unremovable
class Unremovable[=quarkusAwsClient.clientClassSimpleName] {
@Inject
[=quarkusAwsClient.clientClassSimpleName] [=quarkusAwsClient.clientFieldName];
}
----
[/#if]
[#if configOptions?size != 0 ]
[width="100%",cols="80,5,15",options="header"]
|===
| Configuration property | Type | Default
[#list configOptions as configDocItem][#assign anchor = toAnchor(configDocItem.key)]
|[=configDocItem.illustration] [[[=anchor]]]`link:#[=anchor][[=configDocItem.key]]`
[=configDocItem.configDoc]
| [=configDocItem.type]
| [#if configDocItem.defaultValue?has_content]`[=configDocItem.defaultValue]`[#elseif ! configDocItem.optional]required icon:exclamation-circle[title=Configuration property is required][/#if]
[/#list]
|===
[.configuration-legend]
{doc-link-icon-lock}[title=Fixed at build time] Configuration property fixed at build time. All other configuration properties are overridable at runtime.
[#if hasDurationOption]
[NOTE]
[id=duration-note-anchor-[=artifactIdBase]]
.About the Duration format
====
To write duration values, use the standard `java.time.Duration` format.
See the link:https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)[Duration#parse() Java API documentation] for more information.
You can also use a simplified format, starting with a number:
* If the value is only a number, it represents time in seconds.
* If the value is a number followed by `ms`, it represents time in milliseconds.
In other cases, the simplified format is translated to the `java.time.Duration` format for parsing:
* If the value is a number followed by `h`, `m`, or `s`, it is prefixed with `PT`.
* If the value is a number followed by `d`, it is prefixed with `P`.
====
[/#if]
[#if hasMemSizeOption]
[NOTE]
[id=memory-size-note-anchor-[=artifactIdBase]]
.About the MemorySize format
====
A size configuration option recognizes strings in this format (shown as a regular expression): `[0-9]+[KkMmGgTtPpEeZzYy]?`.
If no suffix is given, assume bytes.
====
[/#if]
[/#if]
[/#if]
© 2015 - 2025 Weber Informatics LLC | Privacy Policy