使用Spring Java Config注册Apache Camel dataFormats

时间:2014-01-09 15:12:18

标签: java apache-camel

我正在使用Apache Camel版本2.10.0,我目前在我的camelContext中以XML格式提供以下内容:

<dataFormats>
    <json id="jack" library="Jackson" unmarshalTypeName="package.name.PojoClassName"/>
</dataFormats>

我想将其移至Java Config,但如果不使用已弃用的方法,我似乎无法做到这一点。这是我得到的精简版本:

public class MyCamelConfig extends CamelConfiguration {
    @Override
    protected void setupCamelContext(CamelContext context) {
        // "getDataFormats()" is deprecated
        context.getDataFormats().put("jack", getJack());
    }

    @Override
    public List<RouteBuilder> routes() {
        // bunch of route builders created and returned
    }

    @Bean
    public DataFormatDefinition getJack() {
        //create and return a DataFormatDefinition
    }
}

我一直无法找到一种不推荐的方法来执行此操作。

1 个答案:

答案 0 :(得分:0)

看起来如下工作:

@Override
protected void setupCamelContext(CamelContext context) {
    ModelCamelContext modelContext = (ModelCamelContext) context;
    modelContext.getDataFormats().put("jack", getJack());
}

我只是将CamelContext投射到ModelCamelContext