提交 d7f3c3e8 编写于 作者: W william.liangf

DUBBO-121 增加@Parameter(append = true)

git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@562 1a56cb94-b969-4eaa-88fa-be21384802f2
上级 d48931cb
......@@ -18,13 +18,13 @@ package com.alibaba.dubbo.config;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.net.URLEncoder;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.alibaba.dubbo.common.Constants;
import com.alibaba.dubbo.common.ExtensionLoader;
import com.alibaba.dubbo.common.URL;
import com.alibaba.dubbo.common.logger.Logger;
import com.alibaba.dubbo.common.logger.LoggerFactory;
......@@ -115,10 +115,12 @@ public abstract class AbstractConfig implements Serializable {
}
Object value = method.invoke(config, new Object[0]);
if (attribute){
if (prefix != null && prefix.length() > 0) {
key = prefix + "." + key;
if (value != null) {
if (prefix != null && prefix.length() > 0) {
key = prefix + "." + key;
}
parameters.put(key, value);
}
if (value != null) parameters.put(key, value);
} else {
String str = String.valueOf(value).trim();
if (value != null && str.length() > 0) {
......@@ -126,7 +128,13 @@ public abstract class AbstractConfig implements Serializable {
key = prefix + "." + key;
}
if (parameter != null && parameter.escaped()) {
str = URLEncoder.encode(str, "UTF-8");
str = URL.encode(str);
}
if (parameter != null && parameter.append()) {
String pre = (String)parameters.get(key);
if (pre != null && pre.length() > 0) {
str = pre + "," + str;
}
}
parameters.put(key, str);
} else if (parameter != null && parameter.required()) {
......
......@@ -76,12 +76,12 @@ public abstract class AbstractConsumerConfig extends AbstractReferenceConfig {
this.injvm = injvm;
}
@Parameter(key = Constants.REFERENCE_FILTER_KEY)
@Parameter(key = Constants.REFERENCE_FILTER_KEY, append = true)
public String getFilter() {
return super.getFilter();
}
@Parameter(key = Constants.INVOKER_LISTENER_KEY)
@Parameter(key = Constants.INVOKER_LISTENER_KEY, append = true)
public String getListener() {
return super.getListener();
}
......
......@@ -279,7 +279,7 @@ public abstract class AbstractReferenceConfig extends AbstractMethodConfig {
this.connections = connections;
}
@Parameter(key = Constants.REFERENCE_FILTER_KEY)
@Parameter(key = Constants.REFERENCE_FILTER_KEY, append = true)
public String getFilter() {
return filter;
}
......@@ -289,7 +289,7 @@ public abstract class AbstractReferenceConfig extends AbstractMethodConfig {
this.filter = filter;
}
@Parameter(key = Constants.INVOKER_LISTENER_KEY)
@Parameter(key = Constants.INVOKER_LISTENER_KEY, append = true)
public String getListener() {
checkMultiExtension(InvokerListener.class, "listener", listener);
return listener;
......
......@@ -179,12 +179,12 @@ public abstract class AbstractServiceConfig extends AbstractReferenceConfig {
this.executes = executes;
}
@Parameter(key = Constants.SERVICE_FILTER_KEY)
@Parameter(key = Constants.SERVICE_FILTER_KEY, append = true)
public String getFilter() {
return super.getFilter();
}
@Parameter(key = Constants.EXPORTER_LISTENER_KEY)
@Parameter(key = Constants.EXPORTER_LISTENER_KEY, append = true)
public String getListener() {
return super.getListener();
}
......
......@@ -40,5 +40,7 @@ public @interface Parameter {
boolean escaped() default false;
boolean attribute() default false;
boolean append() default false;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册