Apache camel 骆驼2中的JCache策略

Apache camel 骆驼2中的JCache策略,apache-camel,jcache,Apache Camel,Jcache,我想在我的Camel 2.23.2路由上实现一些内容缓存。在研究过程中,我遇到了Camel的JCache组件,它应该有一个JCachePolicy,可以: JCachePolicy是一个围绕路由的拦截器,它在路由完成后缓存“路由结果”-消息正文。如果下次使用“类似”交换调用路由,则在交换上使用缓存的值,而不是执行路由 这正是我想要的。但是,事实证明,该策略仅在Camel 3.x及更高版本中可用。 因此,我的问题是,如何在Camel 2.23.2中重新创建此功能?解决方案非常简单。在策略包中,只有

我想在我的Camel 2.23.2路由上实现一些内容缓存。在研究过程中,我遇到了Camel的JCache组件,它应该有一个JCachePolicy,可以:

JCachePolicy是一个围绕路由的拦截器,它在路由完成后缓存“路由结果”-消息正文。如果下次使用“类似”交换调用路由,则在交换上使用缓存的值,而不是执行路由

这正是我想要的。但是,事实证明,该策略仅在Camel 3.x及更高版本中可用。
因此,我的问题是,如何在Camel 2.23.2中重新创建此功能?

解决方案非常简单。在策略包中,只有两个文件可用。实际策略和处理器

事实证明,在等待更多测试之前,这些文件工作得非常好,几乎没有任何调整

在策略上,您需要更改“wrap”和“beforeWrap”方法的方法定义。这些需要routeContext,而不是Route。但是从RouteContext移动到route是非常简单的。 在处理器上,主要的更改是为其扩展的“DelegateAsyncProcessor”使用正确的包

有了这些变化,一切似乎都如文件所示。我在pom中使用了ehcache spring引导启动器,没有做任何进一步的更改,而是将其作为缓存管理器与ehcache一起使用


还有一句话,当你想使用它时,你想缓存的模型需要是可序列化的。

解决方案非常简单。在策略包中,只有两个文件可用。实际策略和处理器

事实证明,在等待更多测试之前,这些文件工作得非常好,几乎没有任何调整

在策略上,您需要更改“wrap”和“beforeWrap”方法的方法定义。这些需要routeContext,而不是Route。但是从RouteContext移动到route是非常简单的。 在处理器上,主要的更改是为其扩展的“DelegateAsyncProcessor”使用正确的包

有了这些变化,一切似乎都如文件所示。我在pom中使用了ehcache spring引导启动器,没有做任何进一步的更改,而是将其作为缓存管理器与ehcache一起使用

另一个注意事项是,当您想要使用这个时,您想要缓存的模型需要是可序列化的