CamelBlueprintTesting,为什么我不能覆盖这个属性占位符?
CamelBlueprintTesting, why can't I override this propertyplaceholder?
我有一个布尔标志 属性占位符,我试图在我的一个单元测试中覆盖它,但它不起作用。
<cm:property-placeholder id="id" persistent-id="persistent-id>
<cm:default-properties>
<cm:property name="flag" value="true" />
</cm:default-properties>
</cm:property-placeholder>
这个标志在 bean 中使用:
<bean id="myBean" class="com.myBean">
<property name="flag" value="${flag}" />
</bean>
我想在进行单元测试时将 属性 重写为假,所以我实现了 useOverridePropertiesWithPropertiesComponent() 方法:
@Override
protected Properties useOverridePropertiesWithPropertiesComponent() {
Properties prop = new Properties();
prop.put("errorQueue", "mock:error");
prop.put("flag", false);
return prop;
}
我的 errorQueue 属性 工作正常,错误消息将发送到 "mock:error" 但标志未被覆盖 属性。有谁知道这是为什么?
我不确定,但我认为您的价值不被接受。
Properties 的 Javadoc 指出:
The Properties class represents a persistent set of properties. The Properties can be saved to a stream or loaded from a stream. Each key and its corresponding value in the property list is a string.
您正在使用布尔值,尝试使用
prop.put("flag", "false");
通常 property-placeholder
的键值是字符串,并在运行时转换为适当的类型。
当 <bean>
s
时,您不能执行这些覆盖
例如以下 ${flag}
100% 由 OSGi 蓝图控制:
<bean id="myBean" class="com.myBean">
<property name="flag" value="${flag}" />
</bean>
useOverridePropertiesWithPropertiesComponent
用于 Camel 属性 占位符的 Camel 属性组件,例如 Camel 使用的 {{ }}
语法。
我有一个布尔标志 属性占位符,我试图在我的一个单元测试中覆盖它,但它不起作用。
<cm:property-placeholder id="id" persistent-id="persistent-id>
<cm:default-properties>
<cm:property name="flag" value="true" />
</cm:default-properties>
</cm:property-placeholder>
这个标志在 bean 中使用:
<bean id="myBean" class="com.myBean">
<property name="flag" value="${flag}" />
</bean>
我想在进行单元测试时将 属性 重写为假,所以我实现了 useOverridePropertiesWithPropertiesComponent() 方法:
@Override
protected Properties useOverridePropertiesWithPropertiesComponent() {
Properties prop = new Properties();
prop.put("errorQueue", "mock:error");
prop.put("flag", false);
return prop;
}
我的 errorQueue 属性 工作正常,错误消息将发送到 "mock:error" 但标志未被覆盖 属性。有谁知道这是为什么?
我不确定,但我认为您的价值不被接受。 Properties 的 Javadoc 指出:
The Properties class represents a persistent set of properties. The Properties can be saved to a stream or loaded from a stream. Each key and its corresponding value in the property list is a string.
您正在使用布尔值,尝试使用
prop.put("flag", "false");
通常 property-placeholder
的键值是字符串,并在运行时转换为适当的类型。
当 <bean>
s
例如以下 ${flag}
100% 由 OSGi 蓝图控制:
<bean id="myBean" class="com.myBean">
<property name="flag" value="${flag}" />
</bean>
useOverridePropertiesWithPropertiesComponent
用于 Camel 属性 占位符的 Camel 属性组件,例如 Camel 使用的 {{ }}
语法。