Apache camel CamelBlueprint测试,为什么可以';我是否可以覆盖此propertyplaceholder?
我有一个布尔标志propertyplaceholder,我试图在我的一个单元测试中覆盖它,但它不起作用Apache camel CamelBlueprint测试,为什么可以';我是否可以覆盖此propertyplaceholder?,apache-camel,blueprint-osgi,Apache Camel,Blueprint Osgi,我有一个布尔标志propertyplaceholder,我试图在我的一个单元测试中覆盖它,但它不起作用 <cm:property-placeholder id="id" persistent-id="persistent-id> <cm:default-properties> <cm:property name="flag" value="true" /> </cm:default-properties> </cm:prope
<cm:property-placeholder id="id" persistent-id="persistent-id>
<cm:default-properties>
<cm:property name="flag" value="true" />
</cm:default-properties>
</cm:property-placeholder>
}
我的errorQueue属性工作正常,错误消息将显示为“mock:error”,但该标志不是重写属性。有人知道这是为什么吗?我不确定,但我认为你的价值观不被接受。 各州的Javadoc: Properties类表示一组持久的属性。属性可以保存到流中,也可以从流中加载。属性列表中的每个键及其对应的值都是一个字符串 如果您使用的是布尔值,请尝试使用
prop.put("flag", "false");
通常,
属性占位符的键值是字符串,并在运行时转换为适当的类型。当其
为
例如,以下${flag}
由OSGi blueprint 100%控制:
而useOverridePropertiesWithPropertiesComponent
是针对Camel属性占位符的Camel属性组件,例如Camel使用的{}
语法
啊,我没有意识到这一点。谢谢你指出这一点。我切换到使用“UseOverrideProperties with ConfigAdmin”,并使标志正常工作。谢谢你,克劳斯!
@Override
protected Properties useOverridePropertiesWithPropertiesComponent() {
Properties prop = new Properties();
prop.put("errorQueue", "mock:error");
prop.put("flag", false);
return prop;
prop.put("flag", "false");