Как обратиться к файлу общих свойств из файла свойств пакета osgi? - PullRequest
0 голосов
/ 22 мая 2019

На данный момент у меня есть несколько функций / комплектов, которые ссылаются на файл свойств с собственным именем.Я хочу создать ряд файлов общих свойств, которые включены в файл свойств отдельного пакета.

Я знаю, что это не работает в ядре Java, но я уверен, что где-то читал, что выможет включать файлы свойств в Karaf / OSGi / Blueprint, но теперь я хочу это сделать, я не могу найти никаких ссылок ни на одном из сайтов, которые я искал.

Что я не могу найтигде-нибудь синтаксис, как это сделать.Может ли кто-нибудь подтвердить , если это возможно, и если да, то каков синтаксис для этого?Любые указатели на подходящую документацию также приветствуются.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Вы можете использовать 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 должен быть помещен в $ KARAF_HOME / etc / as org.usr.config.cfg

собственность может быть как ниже

 conf.data=Chandra

Можете сослаться на мой пример GIT

Вы можете получить больше знаний о Документ сообщества Apache

Надеюсь, это поможет,

0 голосов
/ 29 мая 2019

Предполагается, что вы используете план для своего пакета:

<?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 (посмотрите на значение атрибута persistent-id в теге cm:property-placeholder) в${KARAF_HOME}/etc directory.

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>

Вы можете сослаться здесь для получения информации.

Дайте мне знать, если это не поможет.

С уважением,Cooshal.

...