You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2010/01/13 17:23:43 UTC

[jira] Created: (CAMEL-2357) ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing

ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing
-----------------------------------------------------------------------------------------------------------

                 Key: CAMEL-2357
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2357
             Project: Apache Camel
          Issue Type: New Feature
          Components: camel-core
    Affects Versions: 2.1.0
            Reporter: Claus Ibsen
            Assignee: Claus Ibsen
             Fix For: 2.2.0


When doing unit testing and you do not use mocks or the likes to test when X number of message have completed etc.
Then we need some other form to do that and a fairly lightweight and simple builder can offer this in a intuitive way.

{code}
        ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
                .from("direct:foo").whenExchangeDone(5)
                .create();
{code}

And you can stack with operations such as *and, or, not* etc:
{code}
        ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
                .from("direct:foo").whenExchangeDone(5)
                .or().from("direct:bar").whenExchangeDone(7)
                .create();
{code}

Then you just assert whether it matched and there should be methods to wait as well

{code}
        assertEquals(true, builder.matches());
{code}

As well as a method to invoke a callback when its matching.

On top we can add to the builder so you can do fine grained expressions to indicate when this message is complete, or when 5 messages with header amount > 100 is complete etc.
Basically if we can tap in the other builders then you would be able to archive that

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CAMEL-2357) ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-2357.
--------------------------------

    Resolution: Fixed

Added a wiki page as well
http://cwiki.apache.org/confluence/display/CAMEL/NotifierBuilder

> ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-2357
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2357
>             Project: Apache Camel
>          Issue Type: New Feature
>          Components: camel-core
>    Affects Versions: 2.1.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.2.0
>
>
> When doing unit testing and you do not use mocks or the likes to test when X number of message have completed etc.
> Then we need some other form to do that and a fairly lightweight and simple builder can offer this in a intuitive way.
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .create();
> {code}
> And you can stack with operations such as *and, or, not* etc:
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .or().from("direct:bar").whenExchangeDone(7)
>                 .create();
> {code}
> Then you just assert whether it matched and there should be methods to wait as well
> {code}
>         assertEquals(true, builder.matches());
> {code}
> As well as a method to invoke a callback when its matching.
> On top we can add to the builder so you can do fine grained expressions to indicate when this message is complete, or when 5 messages with header amount > 100 is complete etc.
> Basically if we can tap in the other builders then you would be able to archive that

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Work started: (CAMEL-2357) ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on CAMEL-2357 started by Claus Ibsen.

> ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-2357
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2357
>             Project: Apache Camel
>          Issue Type: New Feature
>          Components: camel-core
>    Affects Versions: 2.1.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.2.0
>
>
> When doing unit testing and you do not use mocks or the likes to test when X number of message have completed etc.
> Then we need some other form to do that and a fairly lightweight and simple builder can offer this in a intuitive way.
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .create();
> {code}
> And you can stack with operations such as *and, or, not* etc:
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .or().from("direct:bar").whenExchangeDone(7)
>                 .create();
> {code}
> Then you just assert whether it matched and there should be methods to wait as well
> {code}
>         assertEquals(true, builder.matches());
> {code}
> As well as a method to invoke a callback when its matching.
> On top we can add to the builder so you can do fine grained expressions to indicate when this message is complete, or when 5 messages with header amount > 100 is complete etc.
> Basically if we can tap in the other builders then you would be able to archive that

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-2357) ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56892#action_56892 ] 

Claus Ibsen commented on CAMEL-2357:
------------------------------------

First work of progress in trunk: 898847.

> ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-2357
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2357
>             Project: Apache Camel
>          Issue Type: New Feature
>          Components: camel-core
>    Affects Versions: 2.1.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.2.0
>
>
> When doing unit testing and you do not use mocks or the likes to test when X number of message have completed etc.
> Then we need some other form to do that and a fairly lightweight and simple builder can offer this in a intuitive way.
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .create();
> {code}
> And you can stack with operations such as *and, or, not* etc:
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .or().from("direct:bar").whenExchangeDone(7)
>                 .create();
> {code}
> Then you just assert whether it matched and there should be methods to wait as well
> {code}
>         assertEquals(true, builder.matches());
> {code}
> As well as a method to invoke a callback when its matching.
> On top we can add to the builder so you can do fine grained expressions to indicate when this message is complete, or when 5 messages with header amount > 100 is complete etc.
> Basically if we can tap in the other builders then you would be able to archive that

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-2357) ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56891#action_56891 ] 

Claus Ibsen commented on CAMEL-2357:
------------------------------------

Btw the from is optional you can do
{code}
        ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
                .whenExchangeDone(5)
                .not().whenExchangeFailed(1)
                .create();
{code}

Just to indicate any 5 done but none should be failed.

And the from is using wildcard matching just like the interceptors so you can do {{from("jms*")}} to indicate any JMS. 

> ExchangeNotifierBuilder - Add a builder to building exchange notification predicates to be used for testing
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-2357
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2357
>             Project: Apache Camel
>          Issue Type: New Feature
>          Components: camel-core
>    Affects Versions: 2.1.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.2.0
>
>
> When doing unit testing and you do not use mocks or the likes to test when X number of message have completed etc.
> Then we need some other form to do that and a fairly lightweight and simple builder can offer this in a intuitive way.
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .create();
> {code}
> And you can stack with operations such as *and, or, not* etc:
> {code}
>         ExchangeNotifierBuilder builder = new ExchangeNotifierBuilder(context)
>                 .from("direct:foo").whenExchangeDone(5)
>                 .or().from("direct:bar").whenExchangeDone(7)
>                 .create();
> {code}
> Then you just assert whether it matched and there should be methods to wait as well
> {code}
>         assertEquals(true, builder.matches());
> {code}
> As well as a method to invoke a callback when its matching.
> On top we can add to the builder so you can do fine grained expressions to indicate when this message is complete, or when 5 messages with header amount > 100 is complete etc.
> Basically if we can tap in the other builders then you would be able to archive that

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.