Api pairing doc set add description property
This commit is contained in:
@@ -132,15 +132,16 @@ public class ApiPairingController {
|
||||
}
|
||||
|
||||
private List<AppApiPairingDocSet> getAppDocSet(String appId) {
|
||||
Map<Integer, ApiPairingDocSet> docSetMap = apiPairingDocSetService.getDocSetMap();
|
||||
Map<Long, ApiPairingDocSet> docSetMap = apiPairingDocSetService.getDocSetMap();
|
||||
ArrayList<AppApiPairingDocSet> result = ThreadContext.getArrayList();
|
||||
for (Map.Entry<Integer, ApiPairingDocSet> entry : docSetMap.entrySet()) {
|
||||
for (Map.Entry<Long, ApiPairingDocSet> entry : docSetMap.entrySet()) {
|
||||
ApiPairingDocSet ds = entry.getValue();
|
||||
AppApiPairingDocSet appDocSet = new AppApiPairingDocSet();
|
||||
appDocSet.id = ds.id;
|
||||
appDocSet.name = ds.name;
|
||||
appDocSet.services = ds.docs.stream().map(d -> d.service).collect(Collectors.toSet());
|
||||
appDocSet.enabled = false;
|
||||
appDocSet.id = ds.id;
|
||||
appDocSet.name = ds.name;
|
||||
appDocSet.description = ds.description;
|
||||
appDocSet.services = ds.docs.stream().map(d -> d.service).collect(Collectors.toSet());
|
||||
appDocSet.enabled = false;
|
||||
if (ds.appIds.contains(appId)) {
|
||||
appDocSet.enabled = true;
|
||||
}
|
||||
|
||||
@@ -34,10 +34,12 @@ public class ApiPairingDocSet {
|
||||
|
||||
public int isDeleted = 0;
|
||||
|
||||
public int id;
|
||||
public long id;
|
||||
|
||||
public String name;
|
||||
|
||||
public String description;
|
||||
|
||||
public List<ApiPairingDoc> docs = Collections.emptyList();
|
||||
|
||||
public Set<String> appIds = Collections.emptySet();
|
||||
|
||||
@@ -25,7 +25,6 @@ import org.springframework.http.HttpMethod;
|
||||
import org.springframework.stereotype.Service;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import we.Fizz;
|
||||
import we.config.AggregateRedisConfig;
|
||||
import we.config.SystemConfig;
|
||||
import we.plugin.auth.ApiConfig;
|
||||
@@ -47,7 +46,7 @@ public class ApiPairingDocSetService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(ApiPairingDocSetService.class);
|
||||
|
||||
private Map<Integer/* doc set id */, ApiPairingDocSet> docSetMap = new HashMap<>(64);
|
||||
private Map<Long /* doc set id */, ApiPairingDocSet> docSetMap = new HashMap<>(64);
|
||||
|
||||
private Map<String /* app id */, Set<ApiPairingDocSet>> appDocSetMap = new HashMap<>(64);
|
||||
|
||||
@@ -77,7 +76,7 @@ public class ApiPairingDocSetService {
|
||||
.defaultIfEmpty(Collections.emptyList())
|
||||
.flatMap(
|
||||
es -> {
|
||||
if (Fizz.context != null) {
|
||||
if (!es.isEmpty()) {
|
||||
String json = null;
|
||||
try {
|
||||
for (Map.Entry<Object, Object> e : es) {
|
||||
@@ -90,6 +89,8 @@ public class ApiPairingDocSetService {
|
||||
result.msg = "init api pairing doc set error, doc set: " + json;
|
||||
result.t = t;
|
||||
}
|
||||
} else {
|
||||
log.info("no api pairing doc set");
|
||||
}
|
||||
return Mono.empty();
|
||||
}
|
||||
@@ -126,14 +127,12 @@ public class ApiPairingDocSetService {
|
||||
)
|
||||
.doOnNext(
|
||||
msg -> {
|
||||
if (Fizz.context != null) {
|
||||
String message = msg.getMessage();
|
||||
try {
|
||||
ApiPairingDocSet docSet = JacksonUtils.readValue(message, ApiPairingDocSet.class);
|
||||
updateDocSetDataStruct(docSet);
|
||||
} catch (Throwable t) {
|
||||
log.error("update api pairing doc set error, {}", message, t);
|
||||
}
|
||||
String message = msg.getMessage();
|
||||
try {
|
||||
ApiPairingDocSet docSet = JacksonUtils.readValue(message, ApiPairingDocSet.class);
|
||||
updateDocSetDataStruct(docSet);
|
||||
} catch (Throwable t) {
|
||||
log.error("update api pairing doc set error, {}", message, t);
|
||||
}
|
||||
}
|
||||
)
|
||||
@@ -221,11 +220,11 @@ public class ApiPairingDocSetService {
|
||||
}
|
||||
}
|
||||
|
||||
public Map<Integer, ApiPairingDocSet> getDocSetMap() {
|
||||
public Map<Long, ApiPairingDocSet> getDocSetMap() {
|
||||
return docSetMap;
|
||||
}
|
||||
|
||||
public ApiPairingDocSet get(int id) {
|
||||
public ApiPairingDocSet get(long id) {
|
||||
return docSetMap.get(id);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import org.springframework.data.redis.core.ReactiveStringRedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import we.Fizz;
|
||||
import we.config.AggregateRedisConfig;
|
||||
import we.config.SystemConfig;
|
||||
import we.util.JacksonUtils;
|
||||
@@ -71,7 +70,7 @@ public class ApiPairingInfoService {
|
||||
.defaultIfEmpty(Collections.emptyList())
|
||||
.flatMap(
|
||||
es -> {
|
||||
if (Fizz.context != null) {
|
||||
if (!es.isEmpty()) {
|
||||
String json = null;
|
||||
try {
|
||||
for (Map.Entry<Object, Object> e : es) {
|
||||
@@ -87,6 +86,8 @@ public class ApiPairingInfoService {
|
||||
result.msg = "init api pairing info error, info: " + json;
|
||||
result.t = t;
|
||||
}
|
||||
} else {
|
||||
log.info("no api pairing info");
|
||||
}
|
||||
return Mono.empty();
|
||||
}
|
||||
@@ -123,24 +124,22 @@ public class ApiPairingInfoService {
|
||||
)
|
||||
.doOnNext(
|
||||
msg -> {
|
||||
if (Fizz.context != null) {
|
||||
String message = msg.getMessage();
|
||||
try {
|
||||
ApiPairingInfo info = JacksonUtils.readValue(message, ApiPairingInfo.class);
|
||||
if (info.isDeleted == ApiPairingDocSet.DELETED) {
|
||||
for (String service : info.services) {
|
||||
serviceApiPairingInfoMap.remove(service);
|
||||
}
|
||||
log.info("remove api pairing info: {}", info);
|
||||
} else {
|
||||
for (String service : info.services) {
|
||||
serviceApiPairingInfoMap.put(service, info);
|
||||
}
|
||||
log.info("update api pairing info: {}", info);
|
||||
String message = msg.getMessage();
|
||||
try {
|
||||
ApiPairingInfo info = JacksonUtils.readValue(message, ApiPairingInfo.class);
|
||||
if (info.isDeleted == ApiPairingDocSet.DELETED) {
|
||||
for (String service : info.services) {
|
||||
serviceApiPairingInfoMap.remove(service);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
log.error("update api pairing info error, {}", message, t);
|
||||
log.info("remove api pairing info: {}", info);
|
||||
} else {
|
||||
for (String service : info.services) {
|
||||
serviceApiPairingInfoMap.put(service, info);
|
||||
}
|
||||
log.info("update api pairing info: {}", info);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
log.error("update api pairing info error, {}", message, t);
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.alibaba.cloud.nacos.NacosServiceManager;
|
||||
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
|
||||
import com.alibaba.cloud.nacos.registry.NacosRegistration;
|
||||
import com.alibaba.cloud.nacos.registry.NacosServiceRegistry;
|
||||
import com.alibaba.nacos.api.naming.NamingService;
|
||||
import com.netflix.appinfo.ApplicationInfoManager;
|
||||
import com.netflix.appinfo.DataCenterInfo;
|
||||
import com.netflix.appinfo.HealthCheckHandler;
|
||||
@@ -42,7 +43,7 @@ import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
import we.config.SystemConfig;
|
||||
import we.nacos.ext.FizzNacosDiscoveryProperties;
|
||||
import we.service_registry.nacos.FizzNacosDiscoveryProperties;
|
||||
import we.util.ReflectionUtils;
|
||||
|
||||
import javax.annotation.PreDestroy;
|
||||
@@ -61,9 +62,6 @@ import java.util.Properties;
|
||||
@AutoConfigureAfter({EurekaClientAutoConfiguration.class, NacosDiscoveryAutoConfiguration.class})
|
||||
public class ApiPairingServiceRegistration<R extends Registration> implements ApplicationListener<FizzApiPairingWebServerInitializedEvent> {
|
||||
|
||||
// @Resource
|
||||
// private NacosServiceManager nacosServiceManager;
|
||||
|
||||
private ServiceRegistry serviceRegistry;
|
||||
|
||||
private EurekaRegistration eurekaRegistration;
|
||||
@@ -79,11 +77,11 @@ public class ApiPairingServiceRegistration<R extends Registration> implements Ap
|
||||
ReactiveWebServerApplicationContext applicationContext = event.getApplicationContext();
|
||||
// ConfigurableEnvironment env = applicationContext.getEnvironment();
|
||||
|
||||
/* nacos
|
||||
FizzNacosDiscoveryProperties nacosDiscoveryProperties = new FizzNacosDiscoveryProperties();
|
||||
|
||||
/*FizzNacosDiscoveryProperties nacosDiscoveryProperties = new FizzNacosDiscoveryProperties();
|
||||
nacosDiscoveryProperties.setInetUtils(inetUtils);
|
||||
nacosDiscoveryProperties.setService("xxyyzz");
|
||||
nacosDiscoveryProperties.setIp("x.x.x.x");
|
||||
nacosDiscoveryProperties.setIp("");
|
||||
nacosDiscoveryProperties.setPort(8601);
|
||||
nacosDiscoveryProperties.setGroup("DEFAULT_GROUP");
|
||||
nacosDiscoveryProperties.setClusterName("DEFAULT");
|
||||
@@ -96,7 +94,7 @@ public class ApiPairingServiceRegistration<R extends Registration> implements Ap
|
||||
nacosDiscoveryProperties.setLogName("");
|
||||
nacosDiscoveryProperties.setNamingLoadCacheAtStart("false");
|
||||
|
||||
nacosDiscoveryProperties.setServerAddr("x.x.x.x:8848");
|
||||
nacosDiscoveryProperties.setServerAddr(":8848");
|
||||
|
||||
Properties props = nacosDiscoveryProperties.getNacosProperties();
|
||||
props.put("enabled", true);
|
||||
@@ -106,15 +104,18 @@ public class ApiPairingServiceRegistration<R extends Registration> implements Ap
|
||||
nacosDiscoveryProperties.init();
|
||||
|
||||
serviceRegistry = new NacosServiceRegistry(nacosDiscoveryProperties);
|
||||
NacosServiceManager nacosServiceManager = new NacosServiceManager();
|
||||
ReflectionUtils.set(serviceRegistry, "nacosServiceManager", nacosServiceManager);
|
||||
|
||||
NacosRegistration nacosRegistration = new NacosRegistration(null, nacosDiscoveryProperties, applicationContext);
|
||||
serviceRegistry.register(nacosRegistration);*/
|
||||
serviceRegistry.register(nacosRegistration);
|
||||
|
||||
NamingService namingService = nacosServiceManager.getNamingService(props);*/
|
||||
|
||||
|
||||
|
||||
/* eureka
|
||||
EurekaInstanceConfigBean eurekaInstanceConfig = new EurekaInstanceConfigBean(inetUtils);
|
||||
// eureka
|
||||
/*EurekaInstanceConfigBean eurekaInstanceConfig = new EurekaInstanceConfigBean(inetUtils);
|
||||
String app = "xxyyzz";
|
||||
eurekaInstanceConfig.setAppname(app);
|
||||
eurekaInstanceConfig.setVirtualHostName(app);
|
||||
|
||||
@@ -28,10 +28,12 @@ import java.util.Set;
|
||||
|
||||
public class AppApiPairingDocSet {
|
||||
|
||||
public int id;
|
||||
public long id;
|
||||
|
||||
public String name;
|
||||
|
||||
public String description;
|
||||
|
||||
public Set<String> services;
|
||||
|
||||
public boolean enabled;
|
||||
|
||||
@@ -24,14 +24,11 @@ import org.springframework.data.redis.core.ReactiveStringRedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import we.Fizz;
|
||||
import we.config.AggregateRedisConfig;
|
||||
import we.config.SystemConfig;
|
||||
import we.fizz.input.PathMapping;
|
||||
import we.util.JacksonUtils;
|
||||
import we.util.ReactiveResult;
|
||||
import we.util.Result;
|
||||
import we.util.Utils;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
@@ -82,7 +79,7 @@ public class GlobalResourceService {
|
||||
.defaultIfEmpty(Collections.emptyList())
|
||||
.flatMap(
|
||||
es -> {
|
||||
if (Fizz.context != null) {
|
||||
if (!es.isEmpty()) {
|
||||
String json = null;
|
||||
try {
|
||||
for (Map.Entry<Object, Object> e : es) {
|
||||
@@ -97,6 +94,8 @@ public class GlobalResourceService {
|
||||
result.msg = "init global resource error, json: " + json;
|
||||
result.t = t;
|
||||
}
|
||||
} else {
|
||||
log.info("no global resource");
|
||||
}
|
||||
return Mono.empty();
|
||||
}
|
||||
@@ -133,23 +132,21 @@ public class GlobalResourceService {
|
||||
)
|
||||
.doOnNext(
|
||||
msg -> {
|
||||
if (Fizz.context != null) {
|
||||
String message = msg.getMessage();
|
||||
try {
|
||||
GlobalResource r = JacksonUtils.readValue(message, GlobalResource.class);
|
||||
if (r.isDeleted == GlobalResource.DELETED) {
|
||||
resourceMap.remove(r.key);
|
||||
objectMap.remove(r.key);
|
||||
log.info("remove global resource {}", r.key);
|
||||
} else {
|
||||
resourceMap.put(r.key, r);
|
||||
objectMap.put(r.key, r.originalVal);
|
||||
log.info("update global resource {}", r.key);
|
||||
}
|
||||
updateResNode();
|
||||
} catch (Throwable t) {
|
||||
log.error("update global resource error, {}", message, t);
|
||||
String message = msg.getMessage();
|
||||
try {
|
||||
GlobalResource r = JacksonUtils.readValue(message, GlobalResource.class);
|
||||
if (r.isDeleted == GlobalResource.DELETED) {
|
||||
resourceMap.remove(r.key);
|
||||
objectMap.remove(r.key);
|
||||
log.info("remove global resource {}", r.key);
|
||||
} else {
|
||||
resourceMap.put(r.key, r);
|
||||
objectMap.put(r.key, r.originalVal);
|
||||
log.info("update global resource {}", r.key);
|
||||
}
|
||||
updateResNode();
|
||||
} catch (Throwable t) {
|
||||
log.error("update global resource error, {}", message, t);
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package we.service_registry.eureka;
|
||||
|
||||
import org.springframework.cloud.commons.util.InetUtils;
|
||||
import org.springframework.cloud.commons.util.InetUtilsProperties;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class EurekaHelper {
|
||||
|
||||
private static final InetUtils inetUtils = new InetUtils(new InetUtilsProperties());
|
||||
|
||||
public static FizzEurekaServiceRegistration get(FizzEurekaProperties fizzEurekaProperties) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Map<String, FizzEurekaServiceRegistration> get(List<FizzEurekaProperties> fizzEurekaPropertiesList) {
|
||||
Map<String, FizzEurekaServiceRegistration> result = new HashMap<>();
|
||||
for (FizzEurekaProperties properties : fizzEurekaPropertiesList) {
|
||||
FizzEurekaServiceRegistration fizzEurekaServiceRegistration = get(properties);
|
||||
result.put(properties.id, fizzEurekaServiceRegistration);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package we.service_registry.eureka;
|
||||
|
||||
import com.netflix.appinfo.DataCenterInfo;
|
||||
import com.netflix.appinfo.MyDataCenterInfo;
|
||||
import org.springframework.cloud.netflix.eureka.EurekaClientConfigBean;
|
||||
|
||||
public class FizzEurekaProperties {
|
||||
|
||||
public String id;
|
||||
|
||||
public String appName;
|
||||
|
||||
public String virtualHostName;
|
||||
|
||||
public String ipAddress;
|
||||
|
||||
public int nonSecurePort = 80;
|
||||
|
||||
public String instanceId;
|
||||
|
||||
public boolean preferIpAddress = true;
|
||||
|
||||
public boolean securePortEnabled = false;
|
||||
|
||||
public String healthCheckUrl;
|
||||
|
||||
public DataCenterInfo dataCenterInfo = new MyDataCenterInfo(
|
||||
DataCenterInfo.Name.MyOwn);
|
||||
|
||||
public String region = "default";
|
||||
|
||||
public String zone = EurekaClientConfigBean.DEFAULT_ZONE;
|
||||
|
||||
public String serviceUrl;
|
||||
|
||||
public int securePort = 443;
|
||||
|
||||
public FizzEurekaProperties id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties appName(String appName) {
|
||||
this.appName = appName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties virtualHostName(String virtualHostName) {
|
||||
this.virtualHostName = virtualHostName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties ipAddress(String ipAddress) {
|
||||
this.ipAddress = ipAddress;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties nonSecurePort(int nonSecurePort) {
|
||||
this.nonSecurePort = nonSecurePort;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties instanceId(String instanceId) {
|
||||
this.instanceId = instanceId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties preferIpAddress(boolean preferIpAddress) {
|
||||
this.preferIpAddress = preferIpAddress;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties securePortEnabled(boolean securePortEnabled) {
|
||||
this.securePortEnabled = securePortEnabled;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties healthCheckUrl(String healthCheckUrl) {
|
||||
this.healthCheckUrl = healthCheckUrl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties region(String region) {
|
||||
this.region = region;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties zone(String zone) {
|
||||
this.zone = zone;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties serviceUrl(String serviceUrl) {
|
||||
this.serviceUrl = serviceUrl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FizzEurekaProperties securePort(int securePort) {
|
||||
this.securePort = securePort;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package we.service_registry.eureka;
|
||||
|
||||
import org.springframework.cloud.netflix.eureka.CloudEurekaClient;
|
||||
import org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration;
|
||||
import org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry;
|
||||
|
||||
public class FizzEurekaServiceRegistration {
|
||||
|
||||
public String id;
|
||||
|
||||
public EurekaRegistration registration;
|
||||
|
||||
public EurekaServiceRegistry serviceRegistry;
|
||||
|
||||
public CloudEurekaClient client;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package we.nacos.ext;
|
||||
package we.service_registry.nacos;
|
||||
|
||||
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
|
||||
import com.alibaba.nacos.api.naming.PreservedMetadataKeys;
|
||||
@@ -56,7 +56,7 @@ public class ApiPairingDocSetServiceTests {
|
||||
stringRedisTemplate.opsForHash().putAll("fizz_api_pairing_doc", hash);
|
||||
|
||||
apiPairingDocSetService.init();
|
||||
Map<Integer, ApiPairingDocSet> docSetMap = apiPairingDocSetService.getDocSetMap();
|
||||
Map<Long, ApiPairingDocSet> docSetMap = apiPairingDocSetService.getDocSetMap();
|
||||
Map<String, Set<ApiPairingDocSet>> appDocSetMap = apiPairingDocSetService.getAppDocSetMap();
|
||||
Map<String, Set<ApiPairingDocSet>> serviceExistsInDocSetMap = apiPairingDocSetService.getServiceExistsInDocSetMap();
|
||||
Map<String, Map<Object, Set<ApiPairingDocSet>>> pathMethodExistsInDocSetMap = apiPairingDocSetService.getPathMethodExistsInDocSetMap();
|
||||
|
||||
Reference in New Issue
Block a user