The Trace mechanism is inflexible and inefficient - specifically it doesn't enable custom tracing around a node. ----------------------------------------------------------------------------------------------------------------
Key: CAMEL-2563 URL: https://issues.apache.org/activemq/browse/CAMEL-2563 Project: Apache Camel Issue Type: Improvement Components: camel-core Affects Versions: 2.3.0 Environment: All. Reporter: Jim Talbut Priority: Minor Fix For: Future What it won't let me do: I want to be able to correlate the "out" trace with the "in" trace, in one database row without commiting the row until the route has completed. This requires a JPA transaction to exist around each of the nodes that are called. I'm finding that the transaction has ended by the time of the "out" trace. Inefficiencies: 1. It causes the construction of the new Exchange object and a bunch of String objects that I don't want. 2. It causes the invocation of a new route, that is unnecessary. I think it would be better to: 1. Pass the class to use as the TraceInterceptor into Tracer. 2. Break the existing TraceInterceptor into two, a base class that tracks the RouteNodes and a subclass that implements traceExchange. 3. Change traceExchange so that it returns an Object and pass that Object in to the call to traceExchange for "out" traces. 4. Give the Tracer a payload object that can be used to pass information to the TraceInterceptor. 5. Change the various trace* functions to take in and return a payload Object. Custom users could then dervice from TraceInterceptor and override the trace* functions as necessary (probably just traceExchange). I'm working on a patch. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.