我使用的是blueprint.xml中存储/定义的属性:
@PropertyInject
我通过注入({{time.daysHistory}}
)或使用此语法context.getProperties()
来使用此属性。
有没有办法从我的Bluprinttests中读取和/或设置这些属性?
我尝试了container
,但这会返回一张空地图。
答案 0 :(得分:2)
像Claus一样,你需要使用-Wl,--as-needed
方法。但请注意,您需要返回与蓝图中配置的pid值相同的pid值。
你的蓝图:
useOverridePropertiesWithConfigAdmin
在你的测试中添加:
<cm:property-placeholder id="props.placeholder" persistent-id="props.blueprint">
<cm:default-properties>
...
<cm:property name="time.daysHistory" value="4" />
</cm:default-properties>
</cm:property-placeholder>
编辑: 我是这样做的:
在我的路线中,我注入了属性:
@Override
protected String useOverridePropertiesWithConfigAdmin(Dictionary props) {
props.put("time.daysHistory", "1");
return "props.blueprint";
}
我的蓝图:
@PropertyInject("DatasetConsumePath")
private String datasetConsumePath;
@PropertyInject("DatasetFileExtension")
private String datasetFileExtension;
我的测试:
<cm:property-placeholder id="test" persistent-id="test" update-strategy="reload">
<cm:default-properties>
<cm:property name="DatasetConsumePath" value="test"/>
<cm:property name="DatasetFileExtension" value="txt"/>
<cm:property name="DatasetAggregateBatchSize" value="1000"/>
</cm:default-properties>
</cm:property-placeholder>
答案 1 :(得分:0)
请参阅文档:here,了解可以在单元测试中使用的loadConfigAdminConfigurationFile
和useOverridePropertiesWithConfigAdmin
方法。