Инъекционные свойства в верблюжьем маршруте из модулей диких мух

Я использую SwithcYard 2.0.0.Beta1. Сервер приложений - WildFly 8.1. Я хочу загрузить свойства из модулей. В качестве примера у меня есть модуль / wildfly / modules / system / layer /base/org/study/configuration/test my module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.study.configuration" slot="test">  
    <resources>  
        <resource-root path="."/>  
    </resources>  
</module>  

Это файл свойств:

user=foo
password=bar
provider=CryptoProvider
directory=domain;login:pwd@host/dir?password=pwd&preMove=backup&move=processed&moveFailed=error&charset=UTF-8

Вот как я включаю этот модуль в профиль wildfly:

    <subsystem xmlns="urn:jboss:domain:ee:2.0">
        <global-modules>
            <module name="org.study.configuration" slot="test"/>
        </global-modules>

И теперь я хочу загрузить эти свойства в мой верблюжий маршрут:

.to("smb://{{directory}}")

или в бобовых

KeyStore ks = KeyStore.getInstance("PKCS12", {{provider}});

Является ли это возможным? как это сделать?

1 ответ

Это возможно, но пока ваши свойства находятся в файле, вы должны сначала загрузить его.

То, что вы определяете в модуле - это просто путь к классу для вашего приложения.

Если вы используете Java DSL:

Properties myProps = new Properties();

Stream is = this.getClass().getClassLoader().getResourceAsStream("MyAppProp.properties");
myProps.load(is);       
System.getProperties().putAll(myProps); 

Если вы используете Spring DSL, просто определите обычные свойства Spring.

а. с пространством имен bean-компонентов

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>MyAppProp.properties</value>
    </property>
</bean>

б. с пространством имен контекста Spring

<context:property-placeholder location="MyAppProp.properties"/>

Тогда вы можете использовать их внутри верблюжьего маршрута, как вы сказали:

.to("smb://{{directory}}") 

PS. у вас есть возможность определять свойства непосредственно в файле module.xml

<module xmlns="urn:jboss:module:1.3" name="org.study.configuration" slot="test">
  <properties>
    <property name="directory" value="myTestDirectory"/>
  </properties>
  ...
Другие вопросы по тегам