Hazelcast Spring как сделать сделать переопределение файла hazelcast.xml через *.properties

Всем привет! Вопрос довольно сложный, но может быть кто то сможет помочь. В Hazelcast есть такой класс как com.hazelcast.config.XmlConfigBuilder, который умеет загружать информацию из hazelcast.xml, но мне понадобилось сделать так, чтобы я мог в своем .properties файле переопределять какие то значения.

Фактически, в любом случае данные загружаются вручную путём

@Bean
public HazelcastInstance hazelcastInstance() {
    SpringManagedContext ctx = new SpringManagedContext();
    final Config xmlConfig = new XmlConfigBuilder().build();
    xmlConfig.setManagedContext(ctx);

    return Hazelcast.newHazelcastInstance(xmlConfig);
}

Так вот после того, как я получу объект класса Config, то мне нужно просканировать .properties файл и если там есть переопределения каких то настроек, то мне нужно их переопределить.

Для примера вот какая то настройка из hazelcast.xml:

<map name="SomeMap">
    <some-property-1>value</some-property-1>
    <some-property-2>value2</some-property-2>
    <some-property-3>value3</some-property-3>
    <some-property-4>value4</some-property-4>
    <some-property-5>value5</some-property-5>
</map>

Но потом в .properties встретилась такая настройка

hazel.map.some-map.some-property-1=value123
hazel.map.some-map.some-property-2=1111

Сначала идет просто префикс hazel.map, затем следует название мапы some-map, а в конце её свойство some-property-1 и some-propery-2. В Java хорошо бы помещать это в Map<String, Config>. То есть в качестве ключа someMap(String), а в классе Config два поля someProperty1(String) и someProprty2(String)


Ответы (0 шт):