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.