This chapter will only explain the use of the Camel Application Type in the Stardust Browser Modeler. For use of the Camel Application in the Eclipse Modeler please refer to Developer Handbooks/Modeling Guide.
The Camel Application Type allows you to specify arbitrary Camel Routes to be invoked from Activities in Process Models at runtime, like
or more complex cases like
In all cases, you need to ensure that the Camel Components used in the Tags are part of your Runtime Environment setup. By default, the following Camel Components are available:
Detailed description of each component could be found in the Camel site.
Additional Camel Components can be added via Utility JARs as part of a Solution Release to a Runtime Environment.
You may use references to Spring Beans in your routes. These Spring Beans are either expected to be defined externally in your runtime environment or can be defined in the Additional Bean Specification Text Area:
The spring bean that is declared by the Camel Producer Application is dynamically added to the Spring ApplicationContext of the web application at a later point (when the Camel application is invoked for the first time). Therefore, if you have the need for Spring Beans that are supposed to be re-usable in the Camel application as well as in other code (e.g. other Spring Beans), it is recommended to declare them in a stand-alone Spring context file, e.g. in a utility JAR.
Hereby, the byte code of com.siriussuper.order.OrderCache is expected to be available in your runtime deployment, e.g. by adding a Utility JAR file with this byte code to your Solution Release.
Although ISB will add this tag automatically at the beginning of the route, you may add an explicit <from uri="ipp:direct"/> tag for readability:
This corresponds with the use of a symbolic <from/> tag in the Camel Trigger.
With the Direction Select Input
you may specify whether the Camel Application is only supposed to invoke a Camel Route (Request Only) or also return the received Message Exchange data back to further processing (Request/Response).
The Camel Application Type exposes two In Java Access Points
to map data against the Header and the Body of the corresponding Camel Message Exchange object injected into and possibly retrieved from the Route. If you create a Data Mapping Connection in a Process Diagram, by default this Data Mapping would be mapped to the Body Access Point, which can be adjusted manually.
For the Request Only case the above Access Points are IN Access Points; for the Request/Response case they are exposed as IN/OUT Access Points.
For the Body Access Point, certain heuristics exists to map Process Data or data derived from Process Data via Data Mappings to this Access Point:
When an error is thrown in Camel side, the transaction manager will rollback the current transaction. To avoid this behavior, you need to add onException statement in the route to handle it.
<onException> <exception>com.mycompany.MyException</exception> <handled> <constant>true</constant> </handled> </onException>
Then the original Exception class can be used in IPP OnException eventHandling.