Commit 72b1ea5b by Nepxion

增加外部元数据注入到远程配置中心的功能

parent 10afa777
......@@ -50,4 +50,5 @@ public class DiscoveryConstant {
public static final String OK = "OK";
public static final String NO = "NO";
public static final String UNKNOWN = "UNKNOWN";
public static final String EXT = "ext";
}
\ No newline at end of file
......@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.ConsulConstant;
import com.nepxion.discovery.plugin.framework.decorator.ConsulServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class ConsulApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override
......@@ -42,6 +43,8 @@ public class ConsulApplicationContextInitializer extends PluginApplicationContex
tags.add(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY + "=" + PluginContextAware.getGroupKey(environment));
tags.add(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH + "=" + PluginContextAware.getContextPath(environment));
MetadataUtil.filter(tags);
return bean;
} else {
return bean;
......
......@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.EurekaConstant;
import com.nepxion.discovery.plugin.framework.decorator.EurekaServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class EurekaApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override
......@@ -42,6 +43,8 @@ public class EurekaApplicationContextInitializer extends PluginApplicationContex
metadataMap.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment));
metadataMap.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment));
MetadataUtil.filter(metadataMap);
return bean;
} else {
return bean;
......
......@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.NacosConstant;
import com.nepxion.discovery.plugin.framework.decorator.NacosServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class NacosApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override
......@@ -41,6 +42,8 @@ public class NacosApplicationContextInitializer extends PluginApplicationContext
metadata.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment));
metadata.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment));
MetadataUtil.filter(metadata);
return bean;
} else {
return bean;
......
......@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.ZookeeperConstant;
import com.nepxion.discovery.plugin.framework.decorator.ZookeeperServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class ZookeeperApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override
......@@ -42,6 +43,8 @@ public class ZookeeperApplicationContextInitializer extends PluginApplicationCon
metadata.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment));
metadata.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment));
MetadataUtil.filter(metadata);
return bean;
} else {
return bean;
......
package com.nepxion.discovery.plugin.framework.util;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
public class MetadataUtil {
public static void filter(Map<String, String> metadata) {
Properties properties = System.getProperties();
Set<String> propertyNames = properties.stringPropertyNames();
for (String propertyName : propertyNames) {
if (propertyName.startsWith(DiscoveryConstant.EXT + ".")) {
String key = propertyName.substring((DiscoveryConstant.EXT + ".").length());
String value = properties.get(propertyName).toString();
metadata.put(key, value);
}
}
}
public static void filter(List<String> metadata) {
Properties properties = System.getProperties();
Set<String> propertyNames = properties.stringPropertyNames();
for (String propertyName : propertyNames) {
if (propertyName.startsWith(DiscoveryConstant.EXT + ".")) {
String key = propertyName.substring((DiscoveryConstant.EXT + ".").length());
String value = properties.get(propertyName).toString();
int index = getIndex(metadata, key);
if (index > -1) {
metadata.set(index, key + "=" + value);
} else {
metadata.add(key + "=" + value);
}
}
}
}
private static int getIndex(List<String> metadata, String key) {
for (int i = 0; i < metadata.size(); i++) {
String result = metadata.get(i);
if (result.startsWith(key + "=")) {
return i;
}
}
return -1;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment