package org.zenoss.zep.impl; import org.springframework.context.ApplicationListener; import org.zenoss.protobufs.zep.Zep.ZepConfig; import org.zenoss.zep.ZepConfigService; import org.zenoss.zep.ZepException; import org.zenoss.zep.dao.ConfigDao; import org.zenoss.zep.events.ZepConfigUpdatedEvent; public class ZepConfigServiceImpl implements ZepConfigService, ApplicationListener<ZepConfigUpdatedEvent> { private ConfigDao configDao; private volatile ZepConfig config = null; public void setConfigDao(ConfigDao configDao) { this.configDao = configDao; } @Override public ZepConfig getConfig() throws ZepException { if (config == null) { config = configDao.getConfig(); } return config; } @Override public void onApplicationEvent(ZepConfigUpdatedEvent event) { this.config = event.getConfig(); } }