2017-10-24 1 views
0

現在、Camel 2.19.0から2.20.0にアップグレードしようとしています。Apache Camel 2.20.0の空のRouteService

我々は自動起動、私はタイマールートを主演しようCamelContextConfiguration内=偽

@ConfigurationProperties 
@Component 
public class AdaptionService extends SpringRouteBuilder { 

@Value("${control.timer.cron}") 
private String timerCron; 

@Override 
public void configure() throws Exception { 

    from("quartz2://adaptionServices/UserUpdateTimer?cron=" + timerCron) 
     .routeId("scheduler").autoStartup(false) 
     .to("direct:route-userUpdate"); 

    from("direct:route-userUpdate") 
     .routeId("adaption_service") 
     .log("Executing Adaption Service (timed)"); 

} 

いいえスケジュールどちらをルーティングされた時限ている(私は単純に自動起動(真)ことによって、これを達成できる知っている。それはちょうどです我々が持っているより複雑なユースケースから抽象化する例。動作しません

@Configuration 
public class CamelApplicationContextConfiguration implements CamelContextConfiguration { 

@Override 
public void beforeApplicationStart(CamelContext camelContext) { 
    camelContext.setUseMDCLogging(true); 
} 

@Override 
public void afterApplicationStart(CamelContext camelContext) { 
    try { 
     camelContext.startRoute("scheduler"); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

。私はstartRoute(..)とappearentlyルートを確認camelContext内のerviceは完全に空です。 2.19.0では、これは欠陥なく動作します。

提案がありますか?キャメルで春/春のブートを使用した場合

よろしく ホルガー

+0

は、事前にありがとう:) –

答えて

0

キャメル2.20リリースには、起動ロジックを変更しました。リリースノートでそれを見ることができます。

ただし、CamelContextConfigurationは後でafterApplicationStartとしてください。私はこのことについて、チケットを記録している

https://issues.apache.org/jira/browse/CAMEL-11945

+0

うわーそれは速かった。そしてまた、その呼ば少し良く、このAPIを文書化ありがとうございますClaus :) –