Camel Application Type

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.

Route Definitions

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.

Additional Bean Definitions

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.

Symbolic <from/> Tag

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.

Request Only and Request/Response Mode

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).

Payload Structure and Mapping

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:

Error handling

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.

Example:

 <onException>
	 <exception>com.mycompany.MyException</exception>
	 <handled>
		 <constant>true</constant>
	 </handled>
 </onException>

Then the original Exception class can be used in IPP OnException eventHandling.