Apache Camel - configuring runtime
System definitions
It is vital to ensure that any system definition variables that are used by the Camel definition are properly defined in your application-name-system-definition.kts file.
Dependencies
The Genesis low-code platform only includes the camel-core
dependency. You will want to declare additional dependencies to make best use of the different available Camel components.
To do so, simply create a new local module declaring the Camel dependencies, and add this module to the classpath of the Camel process configuration in your application-name-processes.xml file.
The process definition may look similar to the following:
<process name="POSITION_CAMEL">
<groupId>POSITION</groupId>
<start>true</start>
<options>-Xmx256m -DRedirectStreamsToLog=true -DXSD_VALIDATE=false</options>
<module>genesis-pal-camel</module>
<package>global.genesis.camel.pal</package>
<script>position-camel.kts</script>
<description>Camel integrations</description>
<classpath>position-messages*,position-camel*,position-camel-libs*.jar</classpath>
<language>pal</language>
</process>
Where the position-camel-libs module may have similar dependencies to the following:
- Gradle
- Maven
api("org.apache.camel:camel-mail:3.14.2")
api("javax.mail:javax.mail-api:1.6.2")
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mail</artifactId>
<version>3.14.2</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
Your position-camel-libs module should be a dependency in your position-distribution module to ensure a position-camel-libs jar file is included in the Genesis application distribution