package eu.europeana.cloud.service.mcs.persistent.swift; import eu.europeana.cloud.service.coordination.configuration.DynamicPropertyListener; import eu.europeana.cloud.service.coordination.configuration.DynamicPropertyManager; /** * Example of a {@link ZookeeperSwiftConnectionProvider}. * */ public class ZookeeperSwiftConnectionProvider implements DynamicPropertyListener { private final static String SWIFT_DYNAMIC_PROPERTY_NAME = "mcs.swift.addresslist"; private DynamicPropertyManager dynamicPropertyManager; public ZookeeperSwiftConnectionProvider(final DynamicPropertyManager dynamicPropertyManager) { this.dynamicPropertyManager = dynamicPropertyManager; dynamicPropertyManager.addUpdateListener(this, SWIFT_DYNAMIC_PROPERTY_NAME); } /** * Used to get the current property from zookeeper. */ public String getSwiftConnectionAddress() { return dynamicPropertyManager.getCurrentValue(SWIFT_DYNAMIC_PROPERTY_NAME); } /** * Used to update the property in zookeeper. */ public void updateSwiftConnectionAddress(final String updatedAddress) { dynamicPropertyManager.updateValue(SWIFT_DYNAMIC_PROPERTY_NAME, updatedAddress); } @Override /** * Called when the property is updated in Zookeeper (from some other service!) */ public void onUpdate(String dynamicPropertyUpdate) { System.out.println(SWIFT_DYNAMIC_PROPERTY_NAME + "updated:" + dynamicPropertyUpdate); } }