All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nepxion.discovery.common.consul.operation.ConsulOperation Maven / Gradle / Ivy

package com.nepxion.discovery.common.consul.operation;

/**
 * 

Title: Nepxion Discovery

*

Description: Nepxion Discovery

*

Copyright: Copyright (c) 2017-2050

*

Company: Nepxion

* @author Congwei Xu * @version 1.0 */ import java.nio.charset.StandardCharsets; import java.util.concurrent.ExecutorService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.kv.model.GetValue; import com.nepxion.discovery.common.consul.constant.ConsulConstant; public class ConsulOperation { @Autowired private ConsulClient consulClient; @Autowired private Environment environment; public String getConfig(String group, String serviceId) { String token = getToken(); Response response = consulClient.getKVValue(group + "-" + serviceId, token); if (response == null) { return null; } GetValue getValue = response.getValue(); if (getValue == null) { return null; } return getValue.getDecodedValue(StandardCharsets.UTF_8); } public boolean removeConfig(String group, String serviceId) { String token = getToken(); consulClient.deleteKVValue(group + "-" + serviceId, token); return true; } public boolean publishConfig(String group, String serviceId, String config) { String token = getToken(); consulClient.setKVValue(group + "-" + serviceId, config, token, null); return true; } public ConsulListener subscribeConfig(String group, String serviceId, ExecutorService executorService, ConsulSubscribeCallback consulSubscribeCallback) throws Exception { int timeout = getTimeout(); String token = getToken(); ConsulListener consulListener = new ConsulListener(group, serviceId, timeout, token, consulClient, consulSubscribeCallback); executorService.submit(consulListener); return consulListener; } public void unsubscribeConfig(String group, String serviceId, ConsulListener consulListener) throws Exception { consulListener.stop(); } private int getTimeout() { return environment.getProperty(ConsulConstant.CONSUL_TIMEOUT, Integer.class, ConsulConstant.CONSUL_DEFAULT_TIMEOUT); } private String getToken() { String token = environment.getProperty(ConsulConstant.CONSUL_TOKEN, String.class); return StringUtils.isNotBlank(token) ? token : null; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy