[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] [#assign link = camelBitLink(model, models)] [#if link?starts_with("xref:")]* [=link][[=model.title][#if model.kind != "other" ] [=humanReadableKind(model.kind)][/#if]][#if model.kind == "component" ], URI syntax: `[=model.syntax]`[/#if][#else]* [=model.title][/#if] [/#list] [#if link?starts_with("xref:")]Please refer to the above link[#if models?size != 1]s[/#if] for usage and configuration details.[/#if] [/#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"] == LangChain4j dependency management In order to ensure alignment across all Quarkus and LangChain4j related dependencies, it is recommended to import the LangChain4j BOM as below: [source,xml,subs=attributes+] ---- dev.langchain4j langchain4j-bom {langchain4j-version} pom import ... ---- Note that the import order is paramount when using maven `dependencyManagement`. As such, one might need to import the `langchain4j-bom` before other related Camel and Quarkus BOMs. [/#if] [#if configuration?? || configOptions?size != 0 ] [id="extensions-[=artifactIdBase]-additional-camel-quarkus-configuration"] == Additional Camel Quarkus configuration [#if configuration??] [=configuration] [/#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)] a|[=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]