[ https://issues.apache.org/activemq/browse/CAMEL-2563?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jim Talbut updated CAMEL-2563: ------------------------------ Attachment: tracechanges.diff 'tis done. I think you know there were lots of failures that I've fixed in this diff. Sorry I didn't pick up on that earlier. > 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 > > Attachments: tracechanges.diff, tracechanges.diff, tracechanges.diff, > tracechanges.diff, tracechanges.diff > > Original Estimate: 2 days > Remaining Estimate: 2 days > > 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.