Инъекционные свойства в верблюжьем маршруте из модулей диких мух
Я использую 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>
...