cancel
Showing results for 
Search instead for 
Did you mean: 

Activiti-camel defect?

njames
Champ in-the-making
Champ in-the-making
Hi,
I am using the activiti-camel integration (after reading the latest installment of "Activiti in Action"). Nice jobs all around! Kudos!
My problem comes with my unit test. My routes look like:
        from("activiti:myProcess:servicetask1")            .log(LoggingLevel.INFO, "Received message on service task")            .to("jms:queue:myQueue");                from("direct:start")            .to("activiti:myProcess");‍‍‍‍‍‍‍‍
Which I want to unit test using a MockEndpoint. I checked out http://camel.apache.org/mock.html, especially the section on "Mocking Existing Endpoints" and so I coded my unit test as:
    @Autowired    private CamelContext camelContext;    @Produce(uri = "direct:start", context = "camelProcess")    protected ProducerTemplate template;    @Test    public void testMyProcessViaCamel() throws Exception {        // Advise all the endpoints        for (final RouteDefinition route : this.camelContext.getRouteDefinitions()) {            route.adviceWith(this.camelContext, new AdviceWithRouteBuilder() {                @Override                public void configure() throws Exception {                    // mock all endpoints                    this.mockEndpoints();                }            });        }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
But this fails because I get a RuntimeException from the ActivitiEndpoint class:
  void addConsumer(ActivitiConsumer consumer) {    if (activitiConsumer != null) {      throw new RuntimeException("Activit consumer already defined for " + getEndpointUri() + "!");    }    activitiConsumer = consumer;  }‍‍‍‍‍‍‍‍
I was wondering if the ActivitiEndpoint should even care about adding a consumer when one has already been added? In this case, Camel has it's reasons for replacing the existing consumer.
Is there a reason for addConsumer not being as follows?
  void addConsumer(ActivitiConsumer consumer) {    activitiConsumer = consumer;  }‍‍‍‍‍

Thanks for reading this to the end!

Nick.
1 REPLY 1

trademak
Star Contributor
Star Contributor
Hi,

Hmm good question. Can you share your test project so I can try to reproduce this?

Best regards,