DefaultCamelContext starts route services out of order -------------------------------------------------------
Key: CAMEL-2398 URL: https://issues.apache.org/activemq/browse/CAMEL-2398 Project: Apache Camel Issue Type: Improvement Components: camel-core Affects Versions: 2.1.0 Environment: Linux ubuntu 2.6.24-26-generic, java 1.5.0_16 Reporter: Kostyantyn Oliynyk org.apache.camel.impl.DefaultCamelContext uses HashMap to hold route services In start() method it uses routeServices.values() to list route services. It does not works for Esper. Camel-extra exampe for Ester creates 3 routes: 1: Route[[From[activemq:EventStreamQueue]] -> [To[esper://feed]]] 2: Route[[From[esper://feed?eql=insert into TicksPerSecond select feed, count(*) as cnt from com.iona.ps.demos.MarketDataEvent.win:time_batch(1 sec) group by feed]] -> [To[esper://feed]]] 3: Route[[From[esper://feed?eql=select feed, avg(cnt) from TicksPerSecond.win:time(10 sec) group by feed + having cnt < avg(cnt) * 0.75]] -> [To[esper://feed], process[com.iona.ps.demos.myroutebuilde...@1274069]]] 3-rd route depends on 2-nd route, it uses TicksPerSecond event type that gets created in route 2. DefaultCamelContext starts 3-rd route before 2-nd route, as a result Esper fails to resolve event type: com.espertech.esper.epl.expression.ExprValidationException: Failed to resolve event type: Event type or class named 'TicksPerSecond' was not found at com.espertech.esper.epl.spec.FilterStreamSpecRaw.resolveType(FilterStreamSpecRaw.java:189) at com.espertech.esper.epl.spec.FilterStreamSpecRaw.compile(FilterStreamSpecRaw.java:99) at com.espertech.esper.core.StatementLifecycleSvcImpl.compile(StatementLifecycleSvcImpl.java:956) at com.espertech.esper.core.StatementLifecycleSvcImpl.createStopped(StatementLifecycleSvcImpl.java:195) ... As a workaround, it is possible to change startup order by assigning custom ids to routes, so routeServices HashMap returns values in different order. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.