You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Gert Vanthienen (JIRA)" <ji...@apache.org> on 2008/03/11 14:11:35 UTC
[jira] Issue Comment Edited: (SMX4NMR-21) Debugging flows
[ https://issues.apache.org/activemq/browse/SMX4NMR-21?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=41652#action_41652 ]
gertvanthienen edited comment on SMX4NMR-21 at 3/11/08 6:09 AM:
-----------------------------------------------------------------
We should definitely look into using the Camel predicates. This is a great way to reuse what is already there. Especially for the scripting language predicate, this should be rather straighforward, I guess. It would just be a matter of adding an ExchangeListener and passing in the script predicate as a String to create a Camel route that could do the the auditing (perhaps even re-using the new list: endpoints).
How about adding a new JBI endpoint to Camel to support this? Something like
{code}
from("jbi:exchangeListener:...").filter("my expresssion").to("list:auditedMessages");
{code}
was (Author: gertvanthienen):
We should definitely look into using the Camel predicates. This is a great way to reuse what is already there. Especially for the scripting language predicate, this should be rather straighforward, I guess. It would just be a matter of adding an ExchangeListener and passing in the script predicate as a String to create a Camel route that could do the the auditing (perhaps even re-using the new list: endpoints).
How about adding a new JBI endpoint to Camel to support this? Something like
from("jbi:exchangeListener:...").filter("my expresssion").to("list:auditedMessages")
> Debugging flows
> ---------------
>
> Key: SMX4NMR-21
> URL: https://issues.apache.org/activemq/browse/SMX4NMR-21
> Project: ServiceMix NMR
> Issue Type: New Feature
> Reporter: Guillaume Nodet
>
> Create a set of console commands / OSGi service / NMR listeners to be able to:
> * add / remove / disable breakpoints (with conditional evaluation on exchanges)
> * list paused exchanges
> * inspect / modify a paused exchange
> * resume execution for a exchange
> A breakpoint is basically a condition that filters an exchange. If the filter match, the breakpoint is activated and the flow for the given exchange is paused. Simple breakpoints include:
> * exchanges originated from a given endpoint
> * exchanges targeted at a given endpoint
> * exchanges in an ERROR status
> * ...
> Using an ExchangeListener, it should be easy to intercept all the exchanges. I think the problem is that currently, the only way is to suspend the calling thread and wait for a signal that would be set by a command when resuming an exchange. This is not really scalable. Maybe using a flow is a better option, but I think it would be more intrusive, so that entering / exiting debug mode may not be easy.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.