In this tutorial you will:
run the CBRroute in the Fuse Integration perspective
enable tracing on the CBRroute
drop messages onto the CBRroute and track them through all route nodes
To complete this tutorial you will need the CBRroute project you
updated in ???.
![]() | Note |
|---|---|
If you skipped any tutorial after To Create a New Route, you can use the
prefabricated |
To open Fuse Integration perspective and optimally arrange its layout:
Select > > > to open the Fuse Integration perspective, as shown in Figure 19.
![]() | Note |
|---|---|
You can use the Open Perspective icon ( |
![]() | Note |
|---|---|
To make it easy to access a Camel Context ![]() |
Drag the Diagram View tab and the Shell tab, located to the left of the JMX Navigator tab, and drop them to the right of the JMX Navigator tab, as shown in Figure 20.
This layout will provide more space for Diagram View to display the route's nodes in a graphical representation, enabling you to visually trace the path that messages take in traversing the routing context.
To start message tracing on the CBRroute project:
In Project Explorer, expand the
CBRroute project to expose the
src/main/resources/OSGI-INF/blueprint/camelContext.xml
file.
Select > from the camelContext.xml file's context
menu.
In JMX Navigator, expand Local Processes.
Double click Local Camel
Context[ to connect
to it and expand the elements of your route, as shown in Figure 21, “Route elements in JMX Navigator”.Id][Disconnected]
Right-click the node to open the context menu, and select .
The tooling displays a graphical representation of your route in Diagram View, as shown in Figure 22.
To drop messages on the running CBRroute project:
In Project Explorer, expand
CBRroute/src/data, so you can access the message files
(message1.xml through message6.xml), as shown in
Figure 23, “Message files in CBRroute project”.
Drag message1.xml and drop it on the
blueprintContext>Endpoints>file>src/data?noop=true node in
JMX Navigator, as shown in Figure 24.
As the message traverses the route, the tooling traces and records its passage
at each step. To update Diagram View with the new message
count, you need to click the blueprintContext node in JMX
Navigator.
![]() | Note |
|---|---|
The |
You need to initialize Messages View before it will display message traces. You also need to configure the columns in Messages View to persist across all message traces.
Switch from Console to Messages View.
Click the blueprintContext node in JMX Navigator to
initialize Messages View with
message1.xml's details.
![]() | Note |
|---|---|
You can control columnar layout in all of the tooling's tables. Use the drag method to temporarily rearrange tabular format. For example, drag a column's border rule to expand or contract its width. To hide a column, totally contract its borders. Drag the column header to relocate a column within the table. For your arrangement to persist, you must use the > method instead. |
In Messages View, click the
icon on the panel's menu bar, and select
to open the
wizard, as shown in Figure 25.
![]() | Note |
|---|---|
Notice that the message header, |
You can include or exclude items from Messages View by selecting or deselecting them. You can rearrange the columnar order in which items appear in Messages View by highlighting individual, selected items and moving them up or down in the list.
In the Configure Columns wizard, select and order the items as shown in Figure 26.
These items and their order will persist in Messages View until you change them again.
To see all message flow paths clearly, you'll probably need to rearrange the nodes by dragging them to fit neatly in Diagram View. You may also need to adjust the size of the other views and tabs in Red Hat JBoss Developer Studio to allow Diagram View to expand.
To step through the message traces:
In Messages View, click the
(Refresh button) on top, right of the panel's menu bar to
populate the view with message1.xml's message
traces.
Each time you drop a message on the input src node in JMX
Navigator, you need to refresh Messages View
to populate it with the message traces.
Click one of the message traces to see more details about it in Properties view, as shown in Figure 27.
The tooling displays the details about a message trace (including message headers when they are set) in the top half of the Properties panel and the contents of the message instance in the bottom half of the Properties panel. So, if your application sets headers at any step within a route, you can check the Message Details to see whether they were set as expected.
You can step through the message instances by highlighting each one to see how a particular message traversed the route and whether it was processed as expected at each step in the route.
In Diagram View, the associated step in the route is highlighted, as shown in Figure 28.
Drag message2.xml and drop it on
theblueprintContext>Endpoints>file>src/data?noop=true node in
JMX Navigator.
Hover over each node in the tree until you expose the
src/data?noop=true node, then drop
message2.xml on it.
Switch from Console to Messages View.
In Messages View, click the
(Refresh button) on top, right of the panel's menu bar to
populate the view with message2.xml's message
traces.
![]() | Note |
|---|---|
You can repeat Step 2
through Step 2 for the
remaining messages in On each subsequent drop, remember to click the |
As shown in Figure 29, the tooling draws the route in Diagram View, tagging paths exiting a processing step with timing and performance metrics (in milliseconds). Only the metric Total exchanges is displayed in the diagram.
Hovering over the displayed metrics reveals additional metrics about message flow, as shown in Figure 30.
mean time the step took to process a message
maximum time the step took to process a message
minimum time the step took to process a message
When done:
In JMX Navigator, right-click and select from the context menu.
Open the Console and click the
button in the upper right of the panel to stop
the Console. Then click the
button to clear console output.
After you create a JUnit test case for your project, you can run your project with it, as described in To Test a Route with JUnit.