2016-07-19 2 views
1

Можно ли загрузить значения файла свойств в hazelcast.xml.Использование значений файла свойств в конфигурации XML Hazelcast

Пример: В hazelcast.xml файл,

<context:property-placeholder location="/home/local/Documents/testproperty/test.properties"/> 

Загрузка файла свойства, используя вышеупомянутую тег и использовать значение свойства в hazelcast XML, как показано ниже,

<properties> 
<property name="hazelcast.max.no.heartbeat.seconds" value = "${HAZELCAST_MAX_NO_HEARTBEAT_SECONDS}"></property> 
<property name="hazelcast.client.heartbeat.timeout" value = "${HAZELCAST_CLIENT_HEARTBEAT_TIMEOUT}"></property> 

Есть любой другой способ загрузить значения свойств внутри xml?

Примечание: загружается в приложение с помощью конфигурации CFG = новый XmlConfigBuilder (xmlFileName) .build();

Спасибо, Гарри

+0

Не 100% уверены в нашей реализации, но вы попробовали стратегию замены свойств по умолчанию для Hazelcast? http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#using-variables – noctarius

ответ

3

Гарри,

Вот как вы можете сделать это

// our you can inject this using Spring 
Properties properties = new Properties(); 
properties.load(CurrentClass.class.getClassLoader().getResourceAsStream("hazelcast.properties")); 

final Config config = new XmlConfigBuilder("hazelcast-with-properties.xml") 
     .setProperties(properties) // this is how you can set the properties 
     .build(); 

final HazelcastInstance hz = Hazelcast.newHazelcastInstance(config); 

hazelcast.xml

<?xml version="1.0" encoding="UTF-8"?> 
<hazelcast xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.6.xsd" 
     xmlns="http://www.hazelcast.com/schema/config"> 
    <properties> 
    <!-- pay attention to the format - property tag doesn't have value attribute --> 
    <property name="hazelcast.max.no.heartbeat.seconds">${HAZELCAST_MAX_NO_HEARTBEAT_SECONDS}</property> 
    <property name="hazelcast.client.heartbeat.timeout">${HAZELCAST_CLIENT_HEARTBEAT_TIMEOUT}</property> 
    <property name="hazelcast.backpressure.enabled">${HAZELCAST_BACKPRESSURE_ENABLED}</property> 
    </properties> 
    <group> 
     <name>${group.name}</name> 
     <password>${group.password}</password> 
    </group> 
</hazelcast> 

hazelcast.properties

group.name=devFromProp 
group.password=supA$ecret42 
HAZELCAST_MAX_NO_HEARTBEAT_SECONDS=5 
HAZELCAST_CLIENT_HEARTBEAT_TIMEOUT=500 
HAZELCAST_BACKPRESSURE_ENABLED=true 

Это должно быть сделано.

Спасибо

+0

Даже мы пробовали с FileSystemConfig, свойства тоже, Он работает как муха. У нас есть такая же опция для конфигурации клиента? – Harry

+0

У меня нет клиентского java-документа перед моими глазами прямо сейчас, но я уверен, что вы можете так же с конфигурацией XML-клиента Java –

+0

Хорошо, спасибо ... – Harry

Смежные вопросы