目前,我有许多功能/包都引用了一个自命名的属性文件。我想创建许多公共属性文件,这些文件包含在单个捆绑软件属性文件中。
我知道这在核心Java中不起作用,但是我确定我读过某个地方,可以在Karaf / OSGi / Blueprint中包含属性文件,但是现在我想这样做,我找不到我一直在搜索的任何网站上的任何参考。
我在任何地方都找不到的语法是如何做到的。谁能确认如果这是可能的,如果可以,那么语法是什么?任何指向合适文档的指针也将受到欢迎。
谢谢!
答案 0 :(得分:0)
假设您正在使用捆绑软件蓝图:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.3.0"
xmlns:camel="http://camel.apache.org/schema/blueprint"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.3.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.3.0.xsd
">
<cm:property-placeholder persistent-id="my.shared" update-strategy="reload" >
<cm:default-properties>
<cm:property name="SOURCE" value="DB" />
<cm:property name="ENV" value="test" />
</cm:default-properties>
</cm:property-placeholder>
</blueprint>
为此,您可以在my.shared.cfg
目录中拥有一个cm:property-placeholder
(在${KARAF_HOME}/etc
标签中查看属性persistent-id的值)文件。
my.shared.cfg文件将具有:
SOURCE=DB
ENV=test
假设您要使用该值从蓝图中实例化Bean,可以执行以下操作:
<bean id="myCustomBean" class="com.example.CustomBeanClass">
<argument value="${SOURCE}" index="0" />
<argument value="${ENV}" index="1" />
</bean>
您可以参考here以获得信息。
如果这没有帮助,请告诉我。
关于, 库萨尔。
答案 1 :(得分:0)
您可以使用cm:property-placeholder获取属性文件的值, 我用蓝图开发了一个简单的例子
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
<cm:property-placeholder
persistent-id="org.usr.config" />
<camelContext id="log-example-context"
xmlns="http://camel.apache.org/schema/blueprint">
<route id="log-route">
<from id="_from1" uri="timer:foo?repeatCount=1" />
<log id="_log1" message="logging the property value::" />
<log id="_log1" message="{{conf.data}}" />
</route>
</camelContext>
org.usr.config
应该作为org.usr.config.cfg
放在$ KARAF_HOME / etc /中。
属性可以像下面一样
conf.data=Chandra
您可以参考我的示例GIT
上获得更多知识我希望这会有所帮助,