Commit 72b1ea5b by Nepxion

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

parent 10afa777
...@@ -50,4 +50,5 @@ public class DiscoveryConstant { ...@@ -50,4 +50,5 @@ public class DiscoveryConstant {
public static final String OK = "OK"; public static final String OK = "OK";
public static final String NO = "NO"; public static final String NO = "NO";
public static final String UNKNOWN = "UNKNOWN"; 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; ...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant; import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.ConsulConstant; import com.nepxion.discovery.plugin.framework.constant.ConsulConstant;
import com.nepxion.discovery.plugin.framework.decorator.ConsulServiceRegistryDecorator; import com.nepxion.discovery.plugin.framework.decorator.ConsulServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class ConsulApplicationContextInitializer extends PluginApplicationContextInitializer { public class ConsulApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override @Override
...@@ -42,6 +43,8 @@ public class ConsulApplicationContextInitializer extends PluginApplicationContex ...@@ -42,6 +43,8 @@ public class ConsulApplicationContextInitializer extends PluginApplicationContex
tags.add(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY + "=" + PluginContextAware.getGroupKey(environment)); tags.add(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY + "=" + PluginContextAware.getGroupKey(environment));
tags.add(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH + "=" + PluginContextAware.getContextPath(environment)); tags.add(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH + "=" + PluginContextAware.getContextPath(environment));
MetadataUtil.filter(tags);
return bean; return bean;
} else { } else {
return bean; return bean;
......
...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment; ...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant; import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.EurekaConstant; import com.nepxion.discovery.plugin.framework.constant.EurekaConstant;
import com.nepxion.discovery.plugin.framework.decorator.EurekaServiceRegistryDecorator; import com.nepxion.discovery.plugin.framework.decorator.EurekaServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class EurekaApplicationContextInitializer extends PluginApplicationContextInitializer { public class EurekaApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override @Override
...@@ -42,6 +43,8 @@ public class EurekaApplicationContextInitializer extends PluginApplicationContex ...@@ -42,6 +43,8 @@ public class EurekaApplicationContextInitializer extends PluginApplicationContex
metadataMap.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment)); metadataMap.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment));
metadataMap.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment)); metadataMap.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment));
MetadataUtil.filter(metadataMap);
return bean; return bean;
} else { } else {
return bean; return bean;
......
...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment; ...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant; import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.NacosConstant; import com.nepxion.discovery.plugin.framework.constant.NacosConstant;
import com.nepxion.discovery.plugin.framework.decorator.NacosServiceRegistryDecorator; import com.nepxion.discovery.plugin.framework.decorator.NacosServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class NacosApplicationContextInitializer extends PluginApplicationContextInitializer { public class NacosApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override @Override
...@@ -41,6 +42,8 @@ public class NacosApplicationContextInitializer extends PluginApplicationContext ...@@ -41,6 +42,8 @@ public class NacosApplicationContextInitializer extends PluginApplicationContext
metadata.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment)); metadata.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment));
metadata.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment)); metadata.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment));
MetadataUtil.filter(metadata);
return bean; return bean;
} else { } else {
return bean; return bean;
......
...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment; ...@@ -20,6 +20,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.common.constant.DiscoveryConstant; import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.framework.constant.ZookeeperConstant; import com.nepxion.discovery.plugin.framework.constant.ZookeeperConstant;
import com.nepxion.discovery.plugin.framework.decorator.ZookeeperServiceRegistryDecorator; import com.nepxion.discovery.plugin.framework.decorator.ZookeeperServiceRegistryDecorator;
import com.nepxion.discovery.plugin.framework.util.MetadataUtil;
public class ZookeeperApplicationContextInitializer extends PluginApplicationContextInitializer { public class ZookeeperApplicationContextInitializer extends PluginApplicationContextInitializer {
@Override @Override
...@@ -42,6 +43,8 @@ public class ZookeeperApplicationContextInitializer extends PluginApplicationCon ...@@ -42,6 +43,8 @@ public class ZookeeperApplicationContextInitializer extends PluginApplicationCon
metadata.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment)); metadata.put(DiscoveryConstant.SPRING_APPLICATION_GROUP_KEY, PluginContextAware.getGroupKey(environment));
metadata.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment)); metadata.put(DiscoveryConstant.SPRING_APPLICATION_CONTEXT_PATH, PluginContextAware.getContextPath(environment));
MetadataUtil.filter(metadata);
return bean; return bean;
} else { } else {
return bean; 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