忽略Camel Spring Boot

时间:2017-04-21 20:32:21

标签: apache-camel

Camel Spring Boot扫描RouteBuilders的Spring上下文。 ˚From the documentation

  

Camel自动配置从中收集所有RouteBuilder实例   Spring上下文并自动将它们注入提供的   CamelContext。这意味着用Spring创建新的Camel路由   启动启动器就像添加@Component注释类一样简单   你的类路径

有没有办法控制这个:包含/排除包或类。

我想注释某些RouteBuilders并让Camel排除那些。我的目的是稍后动态地将它们添加到CamelContext中。

1 个答案:

答案 0 :(得分:2)

您可以使用设置为SpringBootTest注释的这些属性。

  • java-routes-inlcude-pattern -在测试中包含路由的模式
  • java-routes-exclude-pattern -在测试中排除路由的模式

这些是 ant样式属性,它们会在您的 src 文件夹中进行搜索,以匹配 RouteBuilder s

具有模式的示例:

// Fix test runner
@RunWith(CamelSpringBootRunner.class)
// Your spring boot application with the main method
@SpringBootTest(classes = {SpringBootTestRunner.class},  
    // Finds all routes in your whole src folder that start with 'SomeRoute', e.g. SomeRouteOne
    properties = {"camel.springboot.java-routes-include-pattern=**/SomeRoute*"})
public class SomeRouteOneTestCase {
    ...   // Unit Tests
}

修复程序类别的示例

// Fix test runner
@RunWith(CamelSpringBootRunner.class)
// Your spring boot application with the main method
@SpringBootTest(classes = {SpringBootTestRunner.class},
    // Find the RouteBuilder 'SomeRouteTwo' in the package 'com.foo.bar' and nothing more
    properties = {"camel.springboot.java-routes-include-pattern=com/foo/bar/TestRouteTwo"})
public class TestRouteTwoTestCase {
    ...   // Tests
}

java-routes-exclude-pattern 的工作方式相同,只是排除了列出的路由构建器。

希望这会有所帮助。

礼物
克里斯