[ 
https://issues.apache.org/jira/browse/CAMEL-14296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

michael elbaz updated CAMEL-14296:
----------------------------------
    Affects Version/s: 2.24.2
          Description: 
This test pass only if i directly use out (MockEnpoint) and not 
out.getEndpointUri() or string representation but only when i use adviceWith 
(is weird because i was always doing that in past and never faced this 
situation)

{code:java}
package com.demo.camel;

import org.apache.camel.EndpointInject;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.AdviceWithRouteBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Before;
import org.junit.Test;

public class AdviceWithFailTest extends CamelTestSupport {
    @EndpointInject(uri = "mock:out")
    private MockEndpoint out;

    @Override
    @Before
    public void setUp() throws Exception {
        super.setUp();

       // Commenting this one or using out and not out.getEndpointUri() will 
make this test pass
        context.getRouteDefinition(out.getEndpointUri()).adviceWith(context, 
adviceWithRouteBuilder());
    }

    @Override
    protected RoutesBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("timer:foo?repeatCount=1")
                        .setBody(constant("test"))
                        .routeId(out.getEndpointUri())
                        .to(out.getEndpointUri());
                // Worked one is weird !
                // .to(out);
            }
        };
    }

    @Test
    public void test() throws InterruptedException {
        out.expectedMessageCount(1);
        out.assertIsSatisfied();
    }

    private AdviceWithRouteBuilder adviceWithRouteBuilder() {
        return new AdviceWithRouteBuilder() {
            @Override
            public void configure() throws Exception {
                weaveAddFirst().setBody(constant("test"));
            }
        };
    }
}
{code}
I see endpoint replacement but the context shutdown immediately 

  was:
I can't use adviceWith with camel 3

{code:java}
@Override
@Before
public void setUp() throws Exception {
     // Init...

     super.setUp();

     AdviceWithRouteBuilder.adviceWith(context(), "id", adviceWithRouteBuilder 
-> {
         adviceWithRouteBuilder.replaceFromWith("timer:foo");
     });
}
{code}
I see endpoint replacement but the context shutdown immediately 


> Camel advice with
> -----------------
>
>                 Key: CAMEL-14296
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14296
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-test
>    Affects Versions: 2.24.2, 3.0.0
>            Reporter: michael elbaz
>            Priority: Major
>
> This test pass only if i directly use out (MockEnpoint) and not 
> out.getEndpointUri() or string representation but only when i use adviceWith 
> (is weird because i was always doing that in past and never faced this 
> situation)
> {code:java}
> package com.demo.camel;
> import org.apache.camel.EndpointInject;
> import org.apache.camel.RoutesBuilder;
> import org.apache.camel.builder.AdviceWithRouteBuilder;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.component.mock.MockEndpoint;
> import org.apache.camel.test.junit4.CamelTestSupport;
> import org.junit.Before;
> import org.junit.Test;
> public class AdviceWithFailTest extends CamelTestSupport {
>     @EndpointInject(uri = "mock:out")
>     private MockEndpoint out;
>     @Override
>     @Before
>     public void setUp() throws Exception {
>         super.setUp();
>        // Commenting this one or using out and not out.getEndpointUri() will 
> make this test pass
>         context.getRouteDefinition(out.getEndpointUri()).adviceWith(context, 
> adviceWithRouteBuilder());
>     }
>     @Override
>     protected RoutesBuilder createRouteBuilder() throws Exception {
>         return new RouteBuilder() {
>             @Override
>             public void configure() throws Exception {
>                 from("timer:foo?repeatCount=1")
>                         .setBody(constant("test"))
>                         .routeId(out.getEndpointUri())
>                         .to(out.getEndpointUri());
>                 // Worked one is weird !
>                 // .to(out);
>             }
>         };
>     }
>     @Test
>     public void test() throws InterruptedException {
>         out.expectedMessageCount(1);
>         out.assertIsSatisfied();
>     }
>     private AdviceWithRouteBuilder adviceWithRouteBuilder() {
>         return new AdviceWithRouteBuilder() {
>             @Override
>             public void configure() throws Exception {
>                 weaveAddFirst().setBody(constant("test"));
>             }
>         };
>     }
> }
> {code}
> I see endpoint replacement but the context shutdown immediately 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to