[incubator-dubbo] branch 2.6.x updated: solve compatible issue with dubbo 2.5.9, 2.5.10 (#2175)

2018-08-03 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 69311ab  solve compatible issue with dubbo 2.5.9, 2.5.10 (#2175)
69311ab is described below

commit 69311abe3a84996ec6b1a38a381fd39f48bbfdf3
Author: jasonjoo2010 
AuthorDate: Fri Aug 3 14:08:26 2018 +0800

solve compatible issue with dubbo 2.5.9, 2.5.10 (#2175)
---
 dubbo-common/src/main/java/com/alibaba/dubbo/common/Version.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/Version.java 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/Version.java
index 2d9..a096835 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/Version.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/Version.java
@@ -35,7 +35,7 @@ public final class Version {
 private static final Logger logger = 
LoggerFactory.getLogger(Version.class);
 
 // Dubbo RPC protocol version, for compatibility, it must not be between 
2.0.10 ~ 2.6.2
-public static final String DEFAULT_DUBBO_PROTOCOL_VERSION = "2.0.1";
+public static final String DEFAULT_DUBBO_PROTOCOL_VERSION = "2.0.2";
 // Dubbo implementation version, usually is jar version.
 private static final String VERSION = getVersion(Version.class, "");
 
@@ -43,7 +43,7 @@ public final class Version {
  * For protocol compatibility purpose.
  * Because {@link #isSupportResponseAttatchment} is checked for every 
call, int compare expect to has higher performance than string.
  */
-private static final int LOWEST_VERSION_FOR_RESPONSE_ATTATCHMENT = 20001; 
// 2.0.1
+private static final int LOWEST_VERSION_FOR_RESPONSE_ATTATCHMENT = 20002; 
// 2.0.2
 private static final Map VERSION2INT = new 
HashMap();
 
 static {
@@ -202,4 +202,4 @@ public final class Version {
 }
 }
 
-}
\ No newline at end of file
+}



[incubator-dubbo-website] branch asf-site updated: fix the default value of threads and payload in dubbo:provider and dubbo:protocol (#65)

2018-08-03 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new ecfffda  fix the default value of threads and payload in 
dubbo:provider and dubbo:protocol (#65)
ecfffda is described below

commit ecfffda9c7a167e66162ffca25b7a0ba5756bac4
Author: shaoshuai 
AuthorDate: Fri Aug 3 15:33:25 2018 +0800

fix the default value of threads and payload in dubbo:provider and 
dubbo:protocol (#65)

* fix the default value of threads and payload in dubbo:protocol

fix the default value of threads to 200
fix the default value of payload to 8 * 1024 * 1024 = 8388608 (8M)
---
 docs/en-us/user/references/xml/dubbo-protocol.md | 4 ++--
 docs/en-us/user/references/xml/dubbo-provider.md | 4 ++--
 docs/zh-cn/user/references/xml/dubbo-protocol.md | 4 ++--
 docs/zh-cn/user/references/xml/dubbo-provider.md | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/docs/en-us/user/references/xml/dubbo-protocol.md 
b/docs/en-us/user/references/xml/dubbo-protocol.md
index ba86533..b655502 100644
--- a/docs/en-us/user/references/xml/dubbo-protocol.md
+++ b/docs/en-us/user/references/xml/dubbo-protocol.md
@@ -53,10 +53,10 @@ Service provider protocol configuration. The corresponding 
class is `com.alibaba
 | port  | port| int| False   | 
The default port of dubbo protocol is 20880, rmi protocol is 1099, http and 
hessian protocol are 80;It will allocate the default port if `port` is not 
filled; It will allocate an unused port if `port` equals `-1`. To ensure the 
ports scope is controllable, the port will increase based on the corresponding 
protocol default port after Dubbo 2.4.0+ | Service discovery | Service 
port[...]
 | host  | host| string | False   | 
Find local IP automatically  | Service discovery | The 
host name of services, to specify VIP and domain, or having multiple network 
cards. If null, it will find local IP automatically It's recommended to 
let Dubbo find local IP automatically | Above 2.0.5   |
 | threadpool| threadpool  | string | False   | 
fixed| Performance optimize  | The type 
of Thread Pool, fixed/cached are available | Above 2.0.5   |
-| threads   | threads | int| False   | 
100  | Performance optimize  | The size 
of the services' Thread Pool(Fixed) | Above 2.0.5   |
+| threads   | threads | int| False   | 
200  | Performance optimize  | The size 
of the services' Thread Pool(Fixed) | Above 2.0.5   |
 | iothreads | threads | int| False   | 
The count of CPU + 1 | Performance optimize  | The size 
of io Thread Pool(Fixed)| Above 2.0.5   |
 | accepts   | accepts | int| False   | 
0| Performance optimize  | The 
maximum connection count of the service provider | Above 2.0.5   |
-| payload   | payload | int| False   | 
88388608(=8M)| Performance optimize  | The 
length limit of request and response, unit is byte | Above 2.0.5   |
+| payload   | payload | int| False   | 
8388608(=8M)| Performance optimize  | The 
length limit of request and response, unit is byte | Above 2.0.5   |
 | codec | codec   | string | False   | 
dubbo| Performance optimize  | Protocol 
encoding| Above 2.0.5   |
 | serialization | serialization   | string | False   | 
The default serialization of dubbo protocol is hessian2, rmi protocol is java, 
http protocol is json | Performance optimize  | Protocol serialization, 
It's used when a protocol has multiple serializations. For example, `dubbo` 
protocol has 4 serializations, they are `dubbo`, `hessian2`, `java` and 
`compactedjava`. | Above 2.0.5   |
 | accesslog | accesslog   | string/boolean | False   | 
 | Service discovery | `true` 
will write access log to logger. Specifying it to a log path, you can write 
access logs to special log file. | Above 2.0.5   |
diff --git a/docs/en-us/user/references/xml/dubbo-provider.md 
b/docs/en-us/user/references/xml/dubbo-provider.md
index ad081b0..c90fff6 100644
--- a/docs/en-us/user/references/xml/dubbo-provider.md
+++ b/docs/en-us/user/references/xml

[incubator-dubbo] branch master updated: add compatible class for config #2169 (#2170)

2018-08-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 5de6c76  add compatible class for config #2169 (#2170)
5de6c76 is described below

commit 5de6c76f063195dabd037601c158c533d0356582
Author: Jerrick Zhu 
AuthorDate: Mon Aug 6 10:41:51 2018 +0800

add compatible class for config #2169 (#2170)
---
 dubbo-compatible/pom.xml   |   6 +
 .../alibaba/dubbo/config/ApplicationConfig.java}   |  51 +++---
 .../com/alibaba/dubbo/config/ArgumentConfig.java}  |  43 ++---
 .../com/alibaba/dubbo/config/ConsumerConfig.java}  |  43 ++---
 .../com/alibaba/dubbo/config/MethodConfig.java}|  44 ++---
 .../com/alibaba/dubbo/config/ModuleConfig.java}|  50 +++---
 .../com/alibaba/dubbo/config/MonitorConfig.java}   |  49 +++---
 .../com/alibaba/dubbo/config/ProtocolConfig.java}  |  18 +-
 .../com/alibaba/dubbo/config/ReferenceConfig.java} |  16 +-
 .../com/alibaba/dubbo/config/RegistryConfig.java}  |  19 ++-
 .../com/alibaba/dubbo/config/ServiceConfig.java}   |  16 +-
 .../dubbo/{compatible => }/cache/CacheTest.java|   2 +-
 .../dubbo/{compatible => }/cache/MyCache.java  |   2 +-
 .../{compatible => }/cache/MyCacheFactory.java |   2 +-
 .../common/extension/ExtensionTest.java|   4 +-
 .../common/extension/MyExtensionFactory.java   |   2 +-
 .../apache/dubbo/config/ApplicationConfigTest.java | 180 
 .../apache/dubbo/config/ArgumentConfigTest.java|  65 +++
 .../java/org/apache/dubbo/config/ConfigTest.java   |  56 ++
 .../apache/dubbo/config/ConsumerConfigTest.java|  55 ++
 .../org/apache/dubbo/config/MethodConfigTest.java  | 184 
 .../org/apache/dubbo/config/ModuleConfigTest.java  | 113 +
 .../apache/dubbo/config/ProtocolConfigTest.java| 157 +
 .../apache/dubbo/config/ProviderConfigTest.java| 187 +
 .../apache/dubbo/config/ReferenceConfigTest.java   |  65 +++
 .../apache/dubbo/config/RegistryConfigTest.java| 175 +++
 .../{compatible => }/echo/EchoServiceTest.java |   7 +-
 .../dubbo/{compatible => }/filter/FilterTest.java  |   5 +-
 .../dubbo/{compatible => }/filter/MyFilter.java|   2 +-
 .../dubbo/{compatible => }/filter/MyInvoker.java   |   4 +-
 .../generic/GenericServiceTest.java|   7 +-
 .../serialization/MyObjectInput.java   |   2 +-
 .../serialization/MyObjectOutput.java  |   2 +-
 .../serialization/MySerialization.java |   2 +-
 .../serialization/SerializationTest.java   |   2 +-
 .../{compatible => }/service/CustomArgument.java   |   2 +-
 .../{compatible => }/service/DemoService.java  |   2 +-
 .../{compatible => }/service/DemoServiceImpl.java  |   2 +-
 .../{compatible => }/service/MockInvocation.java   |   2 +-
 .../dubbo/{compatible => }/service/Person.java |   2 +-
 .../dubbo/{compatible => }/service/Type.java   |   2 +-
 ...alibaba.dubbo.common.extension.ExtensionFactory |   2 +-
 42 files changed, 1470 insertions(+), 181 deletions(-)

diff --git a/dubbo-compatible/pom.xml b/dubbo-compatible/pom.xml
index b99da06..1da947f 100644
--- a/dubbo-compatible/pom.xml
+++ b/dubbo-compatible/pom.xml
@@ -73,5 +73,11 @@
 ${project.parent.version}
 test
 
+
+org.apache.dubbo
+dubbo-registry-multicast
+${project.parent.version}
+test
+
 
 
\ No newline at end of file
diff --git 
a/dubbo-compatible/src/test/java/org/apache/dubbo/compatible/service/Type.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
similarity index 75%
copy from 
dubbo-compatible/src/test/java/org/apache/dubbo/compatible/service/Type.java
copy to 
dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
index e6bcf4c..f17e7ed 100644
--- 
a/dubbo-compatible/src/test/java/org/apache/dubbo/compatible/service/Type.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
@@ -1,21 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR

[incubator-dubbo] branch master updated: fix name (#2189)

2018-08-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 940e355  fix name (#2189)
940e355 is described below

commit 940e3553b0b94c1df23b79a2f523293251b20d6f
Author: lichen <11263332+lllic...@users.noreply.github.com>
AuthorDate: Mon Aug 6 14:19:57 2018 +0800

fix name (#2189)
---
 .../org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
index 085094d..52f5811 100644
--- 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
+++ 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
@@ -100,9 +100,9 @@ public abstract class AbstractDirectory implements 
Directory {
 // copy list
 routers = routers == null ? new ArrayList() : new 
ArrayList(routers);
 // append url router
-String routerkey = url.getParameter(Constants.ROUTER_KEY);
-if (routerkey != null && routerkey.length() > 0) {
-RouterFactory routerFactory = 
ExtensionLoader.getExtensionLoader(RouterFactory.class).getExtension(routerkey);
+String routerKey = url.getParameter(Constants.ROUTER_KEY);
+if (routerKey != null && routerKey.length() > 0) {
+RouterFactory routerFactory = 
ExtensionLoader.getExtensionLoader(RouterFactory.class).getExtension(routerKey);
 routers.add(routerFactory.getRouter(url));
 }
 // append mock invoker selector



[incubator-dubbo] branch master updated: Judge null for key and value in attachment in RpcContextFilter. (#2171)

2018-08-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 895a4dd  Judge null for key and value in attachment in 
RpcContextFilter. (#2171)
895a4dd is described below

commit 895a4dd690f8190a972e9d4ae370bf5b1c8700c7
Author: 时无两丶 <442367...@qq.com>
AuthorDate: Thu Aug 9 11:28:12 2018 +0800

Judge null for key and value in attachment in RpcContextFilter. (#2171)

* Judge null for key and value in attachment in RpcContextFilter.
If not, NullPointerException will be thrown in RpcContextFilter in some 
case.

* optimize code
---
 .../dubbo/rpc/protocol/rest/RpcContextFilter.java  | 25 +-
 .../dubbo/rpc/protocol/rest/RestProtocolTest.java  | 21 ++
 2 files changed, 41 insertions(+), 5 deletions(-)

diff --git 
a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java
 
b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java
index f585dc7..ae9e813 100644
--- 
a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java
+++ 
b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.rpc.protocol.rest;
 
 import org.apache.dubbo.common.utils.StringUtils;
 import org.apache.dubbo.rpc.RpcContext;
-
 import org.jboss.resteasy.spi.ResteasyProviderFactory;
 
 import javax.annotation.Priority;
@@ -70,19 +69,35 @@ public class RpcContextFilter implements 
ContainerRequestFilter, ClientRequestFi
 public void filter(ClientRequestContext requestContext) throws IOException 
{
 int size = 0;
 for (Map.Entry entry : 
RpcContext.getContext().getAttachments().entrySet()) {
-if (entry.getValue().contains(",") || 
entry.getValue().contains("=")
-|| entry.getKey().contains(",") || 
entry.getKey().contains("=")) {
+String key = entry.getKey();
+String value = entry.getKey();
+if (illegalForRest(key) || illegalForRest(value)) {
 throw new IllegalArgumentException("The attachments of " + 
RpcContext.class.getSimpleName() + " must not contain ',' or '=' when using 
rest protocol");
 }
 
 // TODO for now we don't consider the differences of encoding and 
server limit
-size += entry.getValue().getBytes("UTF-8").length;
+if (value != null) {
+size += value.getBytes("UTF-8").length;
+}
 if (size > MAX_HEADER_SIZE) {
 throw new IllegalArgumentException("The attachments of " + 
RpcContext.class.getSimpleName() + " is too big");
 }
 
-String attachments = entry.getKey() + "=" + entry.getValue();
+String attachments = key + "=" + value;
 requestContext.getHeaders().add(DUBBO_ATTACHMENT_HEADER, 
attachments);
 }
 }
+
+/**
+ * If a string value illegal for rest protocol(',' and '=' is illegal for 
rest protocol).
+ *
+ * @param v string value
+ * @return true for illegal
+ */
+private boolean illegalForRest(String v) {
+if (StringUtils.isNotEmpty(v)) {
+return v.contains(",") || v.contains("=");
+}
+return false;
+}
 }
diff --git 
a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
 
b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
index 671cdf5..a698d0c 100644
--- 
a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
@@ -128,6 +128,27 @@ public class RestProtocolTest {
 exporter.unexport();
 }
 
+@Test
+public void testRpcContextFilter() {
+ServiceClassHolder.getInstance().pushServiceClass(DemoService.class);
+
+// use RpcContextFilter
+URL nettyUrl = exportUrl.addParameter(Constants.SERVER_KEY, "netty")
+.addParameter(Constants.EXTENSION_KEY, 
"org.apache.dubbo.rpc.protocol.rest.RpcContextFilter");
+Exporter exporter = protocol.export(proxy.getInvoker(new 
DemoService(), IDemoService.class, nettyUrl));
+
+IDemoService demoService = 
this.proxy.getProxy(protocol.refer(IDemoService.class, nettyUrl));
+
+String value = null;
+// put a null value into attachment.
+RpcContext.getContext().setAttachment("key", value);
+Integer result =

[incubator-dubbo] branch master updated: 解析用户定义的URL时,当前太过粗暴,做下优雅调整 (#2077)

2018-08-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 547947a  解析用户定义的URL时,当前太过粗暴,做下优雅调整 (#2077)
547947a is described below

commit 547947a85719ec11eb43ee23773349c5f30ace27
Author: 王虹凯 
AuthorDate: Tue Aug 7 10:31:56 2018 +0800

解析用户定义的URL时,当前太过粗暴,做下优雅调整 (#2077)
---
 .../src/main/java/org/apache/dubbo/common/utils/UrlUtils.java | 11 ---
 .../test/java/org/apache/dubbo/common/utils/UrlUtilsTest.java |  6 ++
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/UrlUtils.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/UrlUtils.java
index 408cac7..a7b3301 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/UrlUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/UrlUtils.java
@@ -27,12 +27,17 @@ import java.util.Set;
 
 public class UrlUtils {
 
+/**
+ *  in the url string,mark the param begin
+ */
+private final static String URL_PARAM_STARTING_SYMBOL = "?";
+
 public static URL parseURL(String address, Map defaults) {
 if (address == null || address.length() == 0) {
 return null;
 }
 String url;
-if (address.indexOf("://") >= 0) {
+if (address.contains("://") || 
address.contains(URL_PARAM_STARTING_SYMBOL)) {
 url = address;
 } else {
 String[] addresses = Constants.COMMA_SPLIT_PATTERN.split(address);
@@ -45,7 +50,7 @@ public class UrlUtils {
 }
 backup.append(addresses[i]);
 }
-url += "?" + Constants.BACKUP_KEY + "=" + backup.toString();
+url += URL_PARAM_STARTING_SYMBOL + Constants.BACKUP_KEY + "=" 
+ backup.toString();
 }
 }
 String defaultProtocol = defaults == null ? null : 
defaults.get("protocol");
@@ -335,7 +340,7 @@ public class UrlUtils {
 version = service.substring(i + 1);
 service = service.substring(0, i);
 }
-return URL.valueOf(Constants.EMPTY_PROTOCOL + "://0.0.0.0/" + service 
+ "?"
+return URL.valueOf(Constants.EMPTY_PROTOCOL + "://0.0.0.0/" + service 
+ URL_PARAM_STARTING_SYMBOL
 + Constants.CATEGORY_KEY + "=" + category
 + (group == null ? "" : "&" + Constants.GROUP_KEY + "=" + 
group)
 + (version == null ? "" : "&" + Constants.VERSION_KEY + "=" + 
version));
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/UrlUtilsTest.java 
b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/UrlUtilsTest.java
index bdb2a9d..7141c96 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/UrlUtilsTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/UrlUtilsTest.java
@@ -57,6 +57,12 @@ public class UrlUtilsTest {
 }
 
 @Test
+public void testParseURLWithSpecial() {
+String address = "127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183";
+assertEquals("dubbo://" + address,UrlUtils.parseURL(address, 
null).toString());
+}
+
+@Test
 public void testDefaultUrl() {
 String address = "127.0.0.1";
 URL url = UrlUtils.parseURL(address, null);



[incubator-dubbo] branch master updated: deprecated unused method for Activate #2180 (#2193)

2018-08-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new e961c90  deprecated unused method for Activate #2180 (#2193)
e961c90 is described below

commit e961c9018299afe072fa380f65320d5bd812822c
Author: Jerrick Zhu 
AuthorDate: Tue Aug 7 10:34:51 2018 +0800

deprecated unused method for Activate #2180 (#2193)
---
 .../src/main/java/com/alibaba/dubbo/common/extension/Activate.java| 2 ++
 .../src/main/java/org/apache/dubbo/common/extension/Activate.java | 4 
 2 files changed, 6 insertions(+)

diff --git 
a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/Activate.java 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/Activate.java
index 02b78bc..9aecbce 100644
--- 
a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/Activate.java
+++ 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/Activate.java
@@ -35,8 +35,10 @@ public @interface Activate {
 
 String[] value() default {};
 
+@Deprecated
 String[] before() default {};
 
+@Deprecated
 String[] after() default {};
 
 int order() default 0;
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/Activate.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/Activate.java
index 52e9305..ba1873e 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/Activate.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/Activate.java
@@ -67,16 +67,20 @@ public @interface Activate {
 
 /**
  * Relative ordering info, optional
+ * Deprecated since 2.7.0
  *
  * @return extension list which should be put before the current one
  */
+@Deprecated
 String[] before() default {};
 
 /**
  * Relative ordering info, optional
+ * Deprecated since 2.7.0
  *
  * @return extension list which should be put after the current one
  */
+@Deprecated
 String[] after() default {};
 
 /**



[incubator-dubbo] branch 2.6.x updated: fix ut stable, #2227 (#2302)

2018-08-15 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 93d2eb6  fix ut stable, #2227 (#2302)
93d2eb6 is described below

commit 93d2eb674b094ee4feee0ef1e46096098c5a22b4
Author: Jerrick Zhu 
AuthorDate: Wed Aug 15 20:46:38 2018 +0800

fix ut stable, #2227 (#2302)

* fix ut, #2227

* add cache for travis ci

* fix travis problem, skip javadoc
---
 .travis.yml  | 9 -
 .../test/java/com/alibaba/dubbo/config/RegistryConfigTest.java   | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 529e7ff..d928330 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,8 +6,15 @@ jdk:
 - oraclejdk8
 - openjdk7
 
+cache:
+  directories:
+  - '$HOME/.m2/repository'
+
+install:
+  - ./mvnw clean install -DskipTests=true -Dcheckstyle.skip=false 
-Drat.skip=false -Dmaven.javadoc.skip=true
+
 script:
-- travis_wait 30 ./mvnw clean package
+- travis_wait 30 ./mvnw test
 
 after_success:
   - bash <(curl -s https://codecov.io/bash)
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/RegistryConfigTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/RegistryConfigTest.java
index 1d9bbe2..086a4fa 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/RegistryConfigTest.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/RegistryConfigTest.java
@@ -69,6 +69,7 @@ public class RegistryConfigTest {
 registry.setWait(10);
 assertThat(registry.getWait(), is(10));
 assertThat(System.getProperty(Constants.SHUTDOWN_WAIT_KEY), 
equalTo("10"));
+System.clearProperty(Constants.SHUTDOWN_WAIT_KEY);
 }
 
 @Test



[incubator-dubbo] branch 2.5.x updated: upgrade hessian_lite to 3.2.4 version (#2232)

2018-08-15 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.5.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.5.x by this push:
 new 84aa7d8  upgrade hessian_lite to 3.2.4 version (#2232)
84aa7d8 is described below

commit 84aa7d8140498a58dae25b1098256923bf8ae520
Author: Xin Wang 
AuthorDate: Wed Aug 15 15:24:21 2018 +0800

upgrade hessian_lite to 3.2.4 version (#2232)
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d0326f7..374dfdd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,7 +128,7 @@
 1.1.7
 2.1.4
 4.5.3
-3.2.3
+3.2.4
 1.4.1
 1.2.31
 3.1



[incubator-dubbo] branch master updated: [Dubbo-#2162]Correct the reference retries default value 0 to 2 (#2183)

2018-08-15 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new f2188d3  [Dubbo-#2162]Correct the reference retries default value 0 to 
2 (#2183)
f2188d3 is described below

commit f2188d334cf2e91dbd62f84aeba025186738f4ea
Author: tswstarplanet 
AuthorDate: Wed Aug 15 16:27:21 2018 +0800

[Dubbo-#2162]Correct the reference retries default value 0 to 2 (#2183)

* Correct the reference retries default value 0 to 2
* fix the unit test error
---
 .../src/main/java/com/alibaba/dubbo/config/annotation/Reference.java  | 2 +-
 .../src/main/java/org/apache/dubbo/config/annotation/Reference.java   | 2 +-
 .../beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
index 450170a..4c1ca97 100644
--- 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
@@ -75,7 +75,7 @@ public @interface Reference {
 
 String layer() default "";
 
-int retries() default 0;
+int retries() default 2;
 
 String loadbalance() default "";
 
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/annotation/Reference.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/annotation/Reference.java
index 3a2fe03..63e2cd5 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/annotation/Reference.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/annotation/Reference.java
@@ -164,7 +164,7 @@ public @interface Reference {
  *
  * @see Constants#DEFAULT_RETRIES
  */
-int retries() default 0;
+int retries() default 2;
 
 /**
  * Load balance strategy, legal values include: random, roundrobin, 
leastactive
diff --git 
a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
 
b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
index d5889fa..94148e6 100644
--- 
a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
+++ 
b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
@@ -113,7 +113,7 @@ public class AnnotationPropertyValuesAdapterTest {
 Assert.assertEquals("ondisconnect", referenceBean.getOndisconnect());
 Assert.assertEquals("owner", referenceBean.getOwner());
 Assert.assertEquals("layer", referenceBean.getLayer());
-Assert.assertEquals(Integer.valueOf(2), referenceBean.getRetries());
+Assert.assertEquals(Integer.valueOf(1), referenceBean.getRetries());
 Assert.assertEquals("random", referenceBean.getLoadbalance());
 Assert.assertEquals(true, referenceBean.isAsync());
 Assert.assertEquals(Integer.valueOf(1), referenceBean.getActives());
@@ -147,7 +147,7 @@ public class AnnotationPropertyValuesAdapterTest {
 check = false, init = true, lazy = true, stubevent = true,
 reconnect = "reconnect", sticky = true, proxy = "javassist", 
stub = "stub",
 cluster = "failover", connections = 1, callbacks = 1, 
onconnect = "onconnect",
-ondisconnect = "ondisconnect", owner = "owner", layer = 
"layer", retries = 2,
+ondisconnect = "ondisconnect", owner = "owner", layer = 
"layer", retries = 1,
 loadbalance = "random", async = true, actives = 1, sent = true,
 mock = "mock", validation = "validation", timeout = 2, cache = 
"cache",
 filter = {"default", "default"}, listener = {"default", 
"default"}, parameters = {"key1", "value1"}, application = "application",



[incubator-dubbo] branch 2.6.x updated: fix retries to 2, #2162 (#2303)

2018-08-15 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 97124e9  fix retries to 2, #2162 (#2303)
97124e9 is described below

commit 97124e91f4db33af52d51b095c546d60f87df344
Author: Jerrick Zhu 
AuthorDate: Wed Aug 15 21:27:02 2018 +0800

fix retries to 2, #2162 (#2303)
---
 .../src/main/java/com/alibaba/dubbo/config/annotation/Reference.java  | 2 +-
 .../beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
 
b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
index defdc9f..c043cb3 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/annotation/Reference.java
@@ -78,7 +78,7 @@ public @interface Reference {
 
 String layer() default "";
 
-int retries() default 0;
+int retries() default 2;
 
 String loadbalance() default "";
 
diff --git 
a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
 
b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
index 36def71..0eb969d 100644
--- 
a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
+++ 
b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapterTest.java
@@ -113,7 +113,7 @@ public class AnnotationPropertyValuesAdapterTest {
 Assert.assertEquals("ondisconnect", referenceBean.getOndisconnect());
 Assert.assertEquals("owner", referenceBean.getOwner());
 Assert.assertEquals("layer", referenceBean.getLayer());
-Assert.assertEquals(Integer.valueOf(2), referenceBean.getRetries());
+Assert.assertEquals(Integer.valueOf(1), referenceBean.getRetries());
 Assert.assertEquals("random", referenceBean.getLoadbalance());
 Assert.assertEquals(true, referenceBean.isAsync());
 Assert.assertEquals(Integer.valueOf(1), referenceBean.getActives());
@@ -146,7 +146,7 @@ public class AnnotationPropertyValuesAdapterTest {
 check = false, init = true, lazy = true, stubevent = true,
 reconnect = "reconnect", sticky = true, proxy = "javassist", 
stub = "stub",
 cluster = "failover", connections = 1, callbacks = 1, 
onconnect = "onconnect",
-ondisconnect = "ondisconnect", owner = "owner", layer = 
"layer", retries = 2,
+ondisconnect = "ondisconnect", owner = "owner", layer = 
"layer", retries = 1,
 loadbalance = "random", async = true, actives = 1, sent = true,
 mock = "mock", validation = "validation", timeout = 2, cache = 
"cache",
 filter = {"default", "default"}, listener = {"default", 
"default"}, parameters = {"key1", "value1"}, application = "application",



[incubator-dubbo] branch master updated: remote dubbo-all javadoc plugin (#2307)

2018-08-15 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 3a267f8  remote dubbo-all javadoc plugin (#2307)
3a267f8 is described below

commit 3a267f86b47f93860754d4b1dc6f95db251c4d0a
Author: Jerrick Zhu 
AuthorDate: Thu Aug 16 13:03:04 2018 +0800

remote dubbo-all javadoc plugin (#2307)

* remote dubbo-all javadoc plugin

* add license to test source

* disable checkstyle and rat plugin
---
 .travis.yml| 16 ++--
 dubbo-all/pom.xml  | 29 --
 .../src/test/resources/applicationContext.xml  | 16 
 .../test/resources/webapps/test/WEB-INF/web.xml| 16 
 .../test/resources/webapps/test2/WEB-INF/web.xml   | 16 
 .../test/resources/webapps/test3/WEB-INF/web.xml   | 16 
 dubbo-metrics/dubbo-metrics-api/pom.xml| 17 -
 .../apache/dubbo/metrics/MetricManagerTest.java| 19 +++---
 .../org/apache/dubbo/metrics/MetricNameTest.java   | 19 +++---
 .../command/decoder/HttpCommandDecoderTest.java| 16 
 .../command/decoder/TelnetCommandDecoderTest.java  | 16 
 .../apache/dubbo/qos/command/impl/HelpTest.java| 16 
 .../org/apache/dubbo/qos/command/impl/LsTest.java  | 16 
 .../apache/dubbo/qos/command/impl/OfflineTest.java | 16 
 .../apache/dubbo/qos/command/impl/OnlineTest.java  | 16 
 .../apache/dubbo/qos/command/impl/QuitTest.java| 16 
 .../qos/command/impl/TestRegistryFactory.java  | 16 
 .../dubbo/qos/command/util/CommandHelperTest.java  | 16 
 .../dubbo/qos/protocol/QosProtocolWrapperTest.java | 16 
 .../qos/server/handler/HttpProcessHandlerTest.java | 16 
 .../server/handler/LocalHostPermitHandlerTest.java | 16 
 .../qos/server/handler/QosProcessHandlerTest.java  | 16 
 .../server/handler/TelnetProcessHandlerTest.java   | 16 
 .../java/org/apache/dubbo/rpc/RpcContextTest.java  | 16 
 .../dubbo/rpc/filter/ClassLoaderFilterTest.java| 17 +
 .../apache/dubbo/rpc/proxy/AbstractProxyTest.java  | 17 +
 .../dubbo/rpc/proxy/jdk/JdkProxyFactoryTest.java   | 16 
 .../apache/dubbo/rpc/support/LocalException.java   | 17 +
 28 files changed, 427 insertions(+), 44 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 970851f..3e5e249 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,19 +2,19 @@ language: java
 sudo: false # faster builds
 
 jdk:
-- oraclejdk10
-- oraclejdk9
-- oraclejdk8
+  - oraclejdk10
+  - oraclejdk9
+  - oraclejdk8
 
 cache:
   directories:
-  - '$HOME/.m2/repository'
+- '$HOME/.m2/repository'
 
- install:
-  - ./mvnw clean install -DskipTests=true -Dcheckstyle.skip=false 
-Drat.skip=false -Dmaven.javadoc.skip=true
+install:
+  - ./mvnw clean install -DskipTests=true -Dcheckstyle.skip=true 
-Drat.skip=true -Dmaven.javadoc.skip=true
 
- script:
-- travis_wait 30 ./mvnw test
+script:
+  - travis_wait 30 ./mvnw test
 
 after_success:
   - bash <(curl -s https://codecov.io/bash)
diff --git a/dubbo-all/pom.xml b/dubbo-all/pom.xml
index a9febb5..7a1cdd3 100644
--- a/dubbo-all/pom.xml
+++ b/dubbo-all/pom.xml
@@ -554,35 +554,6 @@
 
 
 
-
-maven-javadoc-plugin
-${maven_javadoc_version}
-
-
-attach-javadoc
-
-jar
-
-
-none
-
-
-
-
-true
-
-
org.apache.dubbo:dubbo-*
-
com.alibaba:hessian-*
-
-public
-UTF-8
-UTF-8
-UTF-8
-
-http://docs.oracle.com/javase/7/docs/api
-
-
-
 
 
 
\ No newline at end of file
diff --git 
a/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml 
b/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml
index 977a8a4..5c9f657 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml
@@ -1,4 +1,20 @@
 
+
 http://www.springframework.org/schema/beans;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-

[incubator-dubbo] branch 2.5.x updated: fix subscription when enable monitor (#2111)

2018-08-16 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.5.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.5.x by this push:
 new 9362181  fix subscription when enable monitor (#2111)
9362181 is described below

commit 9362181d1285fe89d345ebf92ec4186353f1fd02
Author: jasonjoo2010 
AuthorDate: Thu Aug 16 15:37:46 2018 +0800

fix subscription when enable monitor (#2111)
---
 .../com/alibaba/dubbo/config/AbstractInterfaceConfig.java | 11 +++
 1 file changed, 11 insertions(+)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
index 6fbed0a..45a9ab3 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
@@ -36,6 +36,8 @@ import com.alibaba.dubbo.rpc.ProxyFactory;
 import com.alibaba.dubbo.rpc.cluster.Cluster;
 import com.alibaba.dubbo.rpc.support.MockInvoker;
 
+import static com.alibaba.dubbo.common.utils.NetUtils.isInvalidLocalHost;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -226,7 +228,16 @@ public abstract class AbstractInterfaceConfig extends 
AbstractMethodConfig {
 if (ConfigUtils.getPid() > 0) {
 map.put(Constants.PID_KEY, String.valueOf(ConfigUtils.getPid()));
 }
+//set ip
+String hostToRegistry = 
ConfigUtils.getSystemProperty(Constants.DUBBO_IP_TO_REGISTRY);
+if (hostToRegistry == null || hostToRegistry.length() == 0) {
+hostToRegistry = NetUtils.getLocalHost();
+} else if (isInvalidLocalHost(hostToRegistry)) {
+throw new IllegalArgumentException("Specified invalid registry ip 
from property:" + Constants.DUBBO_IP_TO_REGISTRY + ", value:" + hostToRegistry);
+}
+map.put(Constants.REGISTER_IP_KEY, hostToRegistry);
 appendParameters(map, monitor);
+appendParameters(map, application);
 String address = monitor.getAddress();
 String sysaddress = System.getProperty("dubbo.monitor.address");
 if (sysaddress != null && sysaddress.length() > 0) {



[incubator-dubbo] branch master updated: Qos enhancement (#2153)

2018-08-16 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 7277f5e  Qos enhancement (#2153)
7277f5e is described below

commit 7277f5ed1826e3ff926e483af466c9bef16898e2
Author: Huxing Zhang 
AuthorDate: Thu Aug 16 16:55:52 2018 +0800

Qos enhancement (#2153)

* Not to accept foreign ip by default.

* Log if fail to start qos server. #2046

* Fix typo. No functional change.

* Remove redundant declaration.

* Sync dubbo.xsd to compact dubbo.xsd.

* Simplify code and add comments.

* Add log message if qos is not enabled.

* Fix UT failure.
---
 .../org/apache/dubbo/config/ApplicationConfig.java |   3 +
 .../src/main/resources/META-INF/compat/dubbo.xsd   | 353 +++--
 .../src/main/resources/META-INF/dubbo.xsd  | 348 ++--
 .../dubbo/qos/protocol/QosProtocolWrapper.java |  18 +-
 .../dubbo/qos/protocol/QosProtocolWrapperTest.java |   6 +-
 .../registry/integration/RegistryProtocol.java |  17 +-
 6 files changed, 381 insertions(+), 364 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
index a3d46a0..86d4001 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
@@ -71,10 +71,13 @@ public class ApplicationConfig extends AbstractConfig {
 // directory for saving thread dump
 private String dumpDirectory;
 
+// whether to enable qos or not
 private Boolean qosEnable;
 
+// the qos port to listen
 private Integer qosPort;
 
+// should we accept foreign ip or not?
 private Boolean qosAcceptForeignIp;
 
 // customized parameters
diff --git 
a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd 
b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd
index 30558cc..6206048 100644
--- 
a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd
+++ 
b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd
@@ -15,58 +15,58 @@
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
 
-
+
 
 
 
@@ -81,82 +81,82

[incubator-dubbo] branch master updated (7277f5e -> 8879afa)

2018-08-16 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


from 7277f5e  Qos enhancement (#2153)
 add 8879afa  Increase availability, make @Adaptive try default extension 
when the specified one couldn't be found. (#2159)

No new revisions were added by this update.

Summary of changes:
 .../org/apache/dubbo/common/extension/ExtensionLoader.java   | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)



[incubator-dubbo-website] branch asf-site updated: docs: Team9 - Add En-Us Docs and modify Zh-Cn Docs for Loadbalancing (#90)

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new fe501b5  docs: Team9 - Add En-Us Docs and modify Zh-Cn Docs for 
Loadbalancing (#90)
fe501b5 is described below

commit fe501b519afb36bc19ca802ed256815ae27b9e4d
Author: Symphony 
AuthorDate: Tue Aug 14 17:15:24 2018 +0800

docs: Team9 - Add En-Us Docs and modify Zh-Cn Docs for Loadbalancing (#90)

* docs: Add En-Us Docs and modify zh-cn Docs for Loadbalancing

* docs: Add En-Us Docs and modify zh-cn Docs for Loadbalancing

* docs: modify blog.js metadata

* update author and title

* docs: add co-author
---
 blog/en-us/dubbo-loadbalance.md | 269 
 blog/zh-cn/dubbo-loadbalance.md |  78 ++--
 site_config/blog.js |   7 ++
 3 files changed, 315 insertions(+), 39 deletions(-)

diff --git a/blog/en-us/dubbo-loadbalance.md b/blog/en-us/dubbo-loadbalance.md
new file mode 100644
index 000..9501680
--- /dev/null
+++ b/blog/en-us/dubbo-loadbalance.md
@@ -0,0 +1,269 @@
+
+
+# Dubbo's Load Balance
+
+
+
+## Background
+
+Dubbo is a distributed service framework that avoids single point of failure 
and horizontal expansion of support services. A service typically deploys 
multiple instances. How to select a call from a cluster of multiple service 
providers involves a load balancing strategy.
+
+## Concepts
+
+Before discussing load balancing, I will explain these three concepts first.
+
+1. Load Balancing
+2. Fault-tolerant Cluster
+3. Service Route
+
+These three concepts are confusing. They all describe how to choose from 
multiple Providers to make calls. So what is the difference between them? Let 
me give a simple example and explain these concepts clearly.
+
+There is a Dubbo user service, 10 deployed in Beijing and 20 deployed in 
Shanghai. A service consumer in Hangzhou initiated a call and then the 
following steps executed:
+
+1. According to the configured routing rule, if the call is initiated by 
Hangzhou, it will be routed to the nearest 20 Providers in Shanghai.
+2. According to the configured random load balancing strategy, one of the 20 
Providers is randomly selected to be called, assuming that the 7th Provider is 
randomly selected.
+3. As a result, calling the 7th Provider failed.
+4. Retried other servers according to the configured Fault-tolerant Cluster 
mode.
+5. The call to the 13th Provider was successful.
+
+Steps 1, 2, and 4 above correspond to routing, load balancing, and 
fault-tolerant cluster. In Dubbo, a subset is selected by routing from multiple 
Providers according to routing rules, then a Provider selected from the subset 
according to load balancing to make this call. If the call fails, Dubbo retry 
or schedule retransmission or fail-fast according to the Fault-tolerant Cluster 
policy. You can see the routes in Dubbo, load balancing and Fault-tolerant 
Cluster exectute at different sta [...]
+
+## Dubbo's Internal Load Balancing Strategy
+
+Dubbo has four Internal Load Balancing Strategies:
+
+1. RandomLoadBalance: Random load balancing. Choose a Provider randomly. It is 
Dubbo's default load balancing strategy.
+2. Round Robin Load Balancing: Polling load balancing, then chooses one 
Provider.
+3. LeastActiveLoadBalance: The minimum number of active calls, the random 
number of the same active number. The active number refers to the difference 
before and after the call. Make slow providers receive fewer requests, because 
the slower Provider before and after the difference of calls will be larger.
+4. ConsistentHashLoadBalance: Consistent hash load balancing. Requests with 
the same parameters always fall on the same machine.
+
+### 1. Random Load Balancing
+
+As the name implies, the random load balancing strategy is to select one from 
multiple Providers randomly. However, random load balancing in Dubbo has a 
weighting concept that sets the random probability according to the weight. For 
example, there are 10 Providers, it's not to say that the probability of each 
Provider is the same, but to assign the probability by combining the weights of 
these 10 providers.
+
+In Dubbo, you can set weights on the Provider. For example, if the performance 
of the machine is better, you can set a larger weight. If the performance is 
poorer, you can set a smaller weight. Weights have an impact on load balancing. 
The weight of provider can be set in Dubbo Admin.
+
+ Weight-based Load Balancing Algorithm
+
+The stochastic strategy will determine whether the weights of all the invokers 
are the same at first. If they are all the same, then the processing is 
relatively simple. Using `random.nexInt(length)`, you can randomly generate an 
invoker serial number, and select the corresponding invoker according

[incubator-dubbo-website] branch asf-site updated: Translate blog/spring-boot-dubbo-start-stop-analysis.md to English from Chinese

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new dee0b96  Translate blog/spring-boot-dubbo-start-stop-analysis.md to 
English from Chinese
dee0b96 is described below

commit dee0b96325df07d0e631a8c2790b77b89245f6f6
Author: Noah Gao 
AuthorDate: Wed Aug 15 10:46:54 2018 +0800

Translate blog/spring-boot-dubbo-start-stop-analysis.md to English from 
Chinese

* Initial commit of translation spring-boot-dubbo-start-stop-analysis.md

* fix spring-boot-dubbo-start-stop-analysis.md(zh-cn) problem
---
 .../en-us/spring-boot-dubbo-start-stop-analysis.md | 223 ++
 .../zh-cn/spring-boot-dubbo-start-stop-analysis.md |   4 +-
 en-us/blog/dubbo-loadbalance.html  | 258 +
 en-us/blog/dubbo-loadbalance.json  |   4 +
 en-us/blog/index.html  |   2 +-
 .../blog/introduction-to-dubbo-qos.html| 138 +--
 en-us/blog/introduction-to-dubbo-qos.json  |   4 +
 .../spring-boot-dubbo-start-stop-analysis.html | 145 ++--
 .../spring-boot-dubbo-start-stop-analysis.json |   4 +
 site_config/blog.js|   9 +-
 zh-cn/blog/dubbo-loadbalance.html  |  80 +++
 zh-cn/blog/dubbo-loadbalance.json  |   2 +-
 zh-cn/blog/introduction-to-dubbo-qos.html  |   6 +-
 zh-cn/blog/introduction-to-dubbo-qos.json  |   2 +-
 .../spring-boot-dubbo-start-stop-analysis.html |   4 +-
 .../spring-boot-dubbo-start-stop-analysis.json |   2 +-
 16 files changed, 692 insertions(+), 195 deletions(-)

diff --git a/blog/en-us/spring-boot-dubbo-start-stop-analysis.md 
b/blog/en-us/spring-boot-dubbo-start-stop-analysis.md
new file mode 100644
index 000..27a6c77
--- /dev/null
+++ b/blog/en-us/spring-boot-dubbo-start-stop-analysis.md
@@ -0,0 +1,223 @@
+# Source code analysis of spring-boot+Dubbo App start and stop
+
+### Introduction
+
+[Dubbo Spring 
Boot](https://github.com/apache/incubator-dubbo-spring-boot-project) project is 
dedicated to simplifying the development of the Dubbo RPC framework in the 
Spring Boot application. It also integrates the feature of Spring Boot:
+
+- 
[Autoconfigure](https://github.com/apache/incubator-dubbo-spring-boot-project/blob/master/dubbo-spring-boot-autoconfigure)
 (ex: Annotation driver, Autoconfigure, etc.)
+- 
[Production-Ready](https://github.com/apache/incubator-dubbo-spring-boot-project/blob/master/dubbo-spring-boot-actuator)
 (ex: Security, Healthy check, Externalize configuration, etc.)
+
+### The analysis of DubboConsumer startup
+
+Have you ever thought about this : since the `DubboConsumerDemo` application 
in `incubator-dubbo-spring-boot-project` has only one line of code, why not 
just exit directly when the `main` method is executed?
+
+```java
+@SpringBootApplication(scanBasePackages = 
"com.alibaba.boot.dubbo.demo.consumer.controller")
+public class DubboConsumerDemo {
+
+public static void main(String[] args) {
+SpringApplication.run(DubboConsumerDemo.class,args);
+}
+
+}
+```
+
+In fact, to answer this question, we need to abstract it first, that is, under 
what circumstances will a JVM process exit?
+
+Take Java 8 as an example. By referring to the JVM language specification[1], 
there is a clear description in Section 12.8:
+
+> A program terminates all its activity and *exits* when one of two things 
happens:
+>
+> - All the threads that are not daemon threads terminate.
+> - Some thread invokes the `exit` method of class `Runtime` or class 
`System`, and the `exit` operation is not forbidden by the security manager.
+
+Therefore, in view of the above situation, we judge that there must be some 
non-daemon thread not exiting. All thread information can be seen by `jstack`, 
including whether they are daemon threads, and `jstack` can be used to find out 
which threads are non-daemon.
+
+```sh
+➜  jstack 57785 | grep tid | grep -v "daemon"
+"container-0" #37 prio=5 os_prio=31 tid=0x7fbe312f5800 nid=0x7103 waiting 
on condition  [0x700010144000]
+"container-1" #49 prio=5 os_prio=31 tid=0x7fbe3117f800 nid=0x7b03 waiting 
on condition  [0x700010859000]
+"DestroyJavaVM" #83 prio=5 os_prio=31 tid=0x7fbe30011000 nid=0x2703 
waiting on condition  [0x]
+"VM Thread" os_prio=31 tid=0x7fbe3005e800 nid=0x3703 runnable
+"GC Thread#0" os_prio=31 tid=0x7fbe30013800 nid=0x5403 runnable
+"GC Thread#1" os_prio=31 tid=0x7fbe30021000 nid=0x5303 runnable
+"GC Thread#2" os_prio=31 tid=0x7fbe30021800 nid=0x2d03 runnable
+"GC Thread#3" os_prio=31 tid=0x7fbe30022000 nid=0x2f03 runnable
+"

[incubator-dubbo-website] branch asf-site updated: Translate blog/Prepare-an-Apache-release.md

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 686b6d4  Translate blog/Prepare-an-Apache-release.md
686b6d4 is described below

commit 686b6d42c4b05f3c4b10a8202e301676c500170f
Author: smilechenjia <35399210+smilechen...@users.noreply.github.com>
AuthorDate: Wed Aug 15 11:00:40 2018 +0800

Translate blog/Prepare-an-Apache-release.md

* add en-us prepare-an-apache-release.md
---
 .../prepare-an-apache-release.md}  | 119 +++--
 ...che-release.md => prepare-an-apache-release.md} |   2 +-
 2 files changed, 62 insertions(+), 59 deletions(-)

diff --git a/blog/zh-cn/Prepare-an-Apache-release.md 
b/blog/en-us/prepare-an-apache-release.md
similarity index 54%
copy from blog/zh-cn/Prepare-an-Apache-release.md
copy to blog/en-us/prepare-an-apache-release.md
index e6223fb..9ef68b8 100644
--- a/blog/zh-cn/Prepare-an-Apache-release.md
+++ b/blog/en-us/prepare-an-apache-release.md
@@ -1,29 +1,29 @@
-## 理解Apache发布的内容和流程
+## Understanding the Apache Release Cycle
 
-总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。
+In general, Source Release is the key and the required content of Apache. But 
Binary Release is optional, Dubbo can choose whether to release binary packages 
to the Apache repository or to the Maven central repository.
 
-请参考以下链接,找到更多关于ASF的发布指南:
+Please refer to the following links for more information on ASF's release 
guide:
 
 - [Apache Release Guide](http://www.apache.org/dev/release-publishing)
 - [Apache Release Policy](http://www.apache.org/dev/release.html)
 - [Maven Release 
Info](http://www.apache.org/dev/publishing-maven-artifacts.html)
 
-## 本地构建环境准备
+## Preparation of Local Building Environment 
 
-主要包括签名工具、Maven仓库认证相关准备
+Mainly including the related preparation of signature utilities and Maven 
repository certification
 
-1. 安装GPG,参见 https://www.gnupg.org/download/index.html
+1. Install GPG,refer to https://www.gnupg.org/download/index.html
 
-   - 如Mac OS
+   - For example, in Mac OS
 
 ```sh
 $ brew install gpg
-$ gpg --version #检查版本,应该为2.x
+$ gpg --version #check version,should be 2.x
 ```
 
-2. 用gpg生成key
+2. Generate the key with GPG
 
-   - 根据提示,生成key
+   - Generate the key according to the prompt
 
 ```shell
 $ gpg2 --full-gen-key
@@ -59,23 +59,23 @@
"Robert Burrell Donkin (CODE SIGNING KEY) "
 
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
-You need a Passphrase to protect your secret key. # 填入密码,以后打包过程中会经常用到
+You need a Passphrase to protect your secret key. # enter the password, 
which will be used frequently when packaging.
 ```
 
-   - 查看key id 
+   - View key id 
 
 ```sh
 $ gpg --list-keys
-pub   rsa4096/28681CB1 2018-04-26 # 28681CB1就是key id
+pub   rsa4096/28681CB1 2018-04-26 # 28681CB1 is the key id
 uid   [ultimate] liujun (apache-dubbo) 
 sub   rsa4096/D3D6984B 2018-04-26
 
-# 通过key id发送public key到keyserver
+# send public key to keyserver via key id 
 $ gpg --keyserver pgpkeys.mit.edu --send-key 28681CB1
-# 
其中,pgpkeys.mit.edu为随意挑选的keyserver,keyserver列表为:https://sks-keyservers.net/status/,因为相互之间是自动同步的,选任意一个都可以。
+# Here pgpkeys.mit.edu is a random selection of keyserver. Any key server 
from the list https://sks-keyservers.net/status/ is acceptable because they are 
automatically synchronized.
 ```
 
-   - 如果有多个public key,设置默认key
+   - If there are multiple public keys,set the default key 
 
 ~/.gnupg/gpg.conf
 
@@ -86,9 +86,9 @@
 default-key 28681CB1
 ```
 
-3. 设置Apache中央仓库
+3. Set up Apache central repository.
 
-   - Dubbo项目的父pom为apache pom
+   - The parent pom of Dubbo project is apache pom
 
 ```xml
 
@@ -98,9 +98,10 @@
 
 ```
 
-   - 添加以下内容到.m2/settings.xml
+   - Add the following contents to .m2/settings.xml
 
- 
所有密码请使用[maven-encryption-plugin](http://maven.apache.org/guides/mini/guide-encryption.html)加密后再填入
+ Enter the passwords after
+ encrypting by 
[maven-encryption-plugin](http://maven.apache.org/guides/mini/guide-encryption.html)
 
 ```xml
 
@@ -128,90 +129,92 @@
 
 ```
 
-   ​
 
-## 打包&上传
+## Pack & Upload
 
-1. 从主干分支拉取新分支作为发布分支,如现在要发布2.6.4版本,则从2.6.x拉出新分支2.6.4-release,此后2.6.4 Release 
Candidates涉及的修改及打标签等都在2.6.4-release分支进行,最终发布完成后合入主干分支。
+1. Pull the new branch from the master branch as the release branch. If you 
want to release the 2.6.4 version now, pull the new branch 2.6.4-release from 
2.6.x. Then the 
+modifications and taggings related to 2.6.4 Release Candidates are applied to 
2.6.4-release branch, and is merged into the master branch after the final 
release. 
 
-2. 首先,在2.6.4-release分支验证maven组件打包、source源码打包、签名等是否都正常

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 736de98  build site
736de98 is described below

commit 736de98443af8ce5671d02155d4c172c14a67ad1
Author: zhuyong 
AuthorDate: Wed Aug 15 10:49:28 2018 +0800

build site
---
 build/blog.js  | 6 +++---
 build/blogDetail.js| 6 +++---
 build/community.js | 6 +++---
 build/documentation.js | 6 +++---
 build/home.js  | 6 +++---
 en-us/blog/index.html  | 2 +-
 6 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index adf9bbe..ffc8ba8 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -1,6 +1,6 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...]
-  Copyright (c) 2016 Jed Watson.
+!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...]
+  Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
 
 
-   中中https://f.alicdn.com/react/15.4.1/react-with-addons.min.js;>
https://f.alicdn.com/react/15.4.1/react-dom.min.js&quot</a>;>

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new efb272f  build site
efb272f is described below

commit efb272f27e94de7cf8e347dac7d282c287e91090
Author: zhuyong 
AuthorDate: Wed Aug 15 11:08:01 2018 +0800

build site
---
 build/blog.js  |   4 +-
 en-us/blog/index.html  |   2 +-
 .../blog/prepare-an-apache-release.html| 127 +++--
 en-us/blog/prepare-an-apache-release.json  |   4 +
 site_config/blog.js|   9 +-
 zh-cn/blog/Prepare-an-Apache-release.html  |  10 +-
 zh-cn/blog/Prepare-an-Apache-release.json  |   4 +-
 zh-cn/blog/index.html  |   2 +-
 8 files changed, 88 insertions(+), 74 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index ffc8ba8..f369f7d 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -1,6 +1,6 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...]
+!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...]
   Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
 
 
-   中中https://f.alicdn.com/react/15.4.1/react-with-addons.min.js;>
https://f.alicdn.com/react/15.4.1/react-dom.min.js&quot</a>;>

diff --git a/zh-cn/blog/Prepare-an-Apache-release.html 
b/en-us/blog/prepare-an-apache-release.html
similarity index 60%
copy from zh-cn/blog/Prepare-an-Apache-release.html
copy to en-us/blog/prepare-an-apache-release.html
index 0a5d55f..fa74526 100644
--- a/zh-cn/blog/Prepare-an-Apache-release.html
+++ b/en-us/blog/prepare-an-apache-release.html
@@ -4,38 +4,38 @@
 <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, 
maximum-scale=1.0, user-scalable=no">
-   <meta name="keywords" content="Prepare-an-Apache-release" />
-   <meta name="description" content="Prepare-an-Apache-release" />
+   <meta name="keywords" content="prepare-an-apache-release" />
+   <meta name="description" content="prepare-an-apache-release" />
<!-- 网页标签标题 -->
-   <title>Prepare-an-Apache-release</title>
+   <title>prepare-an-apache-release</title>
<link rel="shortcut icon" href="/img/dubbo.ico"/>
<link rel="stylesheet" href="/build/blogDetail.css" />
 </head>
 <body>
-   <div id="root"><div class="blog-detail-page" data-reactroot="" 
data-reactid="1" data-react-checksum="855852892"><header 
class="header-container header-container-normal" data-reactid="2"><div 
class="header-body" data-reactid="3"><a href="/zh-cn/index.html" 
data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" 
data-reactid="5"/></a><span class="language-switch language-switch-normal" 
data-reactid="6">En</span><div class="header-menu" data-reactid="7"><img 
class="header-menu-tog [...]
-<p>总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。</p>
-<p>请参考以下链接,找到更多关于ASF的发布指南:</p>
+   <div id="root"><div class="blog-detail-page" data-reactroot="" 
data-reactid="1" data-react-checksum="-1692158055"><header 
c

[incubator-dubbo-website] branch asf-site updated: rebuild

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 43c1c67  rebuild
43c1c67 is described below

commit 43c1c67fd5bb53e013c56c9358fa9a2c5fb203c8
Author: zhuyong 
AuthorDate: Wed Aug 15 11:14:33 2018 +0800

rebuild
---
 .../{Prepare-an-Apache-release.html => prepare-an-apache-release.html}| 0
 .../{Prepare-an-Apache-release.json => prepare-an-apache-release.json}| 0
 2 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/zh-cn/blog/Prepare-an-Apache-release.html 
b/zh-cn/blog/prepare-an-apache-release.html
similarity index 100%
rename from zh-cn/blog/Prepare-an-Apache-release.html
rename to zh-cn/blog/prepare-an-apache-release.html
diff --git a/zh-cn/blog/Prepare-an-Apache-release.json 
b/zh-cn/blog/prepare-an-apache-release.json
similarity index 100%
rename from zh-cn/blog/Prepare-an-Apache-release.json
rename to zh-cn/blog/prepare-an-apache-release.json



[incubator-dubbo-website] branch asf-site updated: Add documents to issue#1713_team 5 (#104)

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 7ea68ae  Add documents to issue#1713_team 5 (#104)
7ea68ae is described below

commit 7ea68ae49a4ec6ac4bf3367b32a3001216a631c3
Author: Ziyang 
AuthorDate: Wed Aug 15 11:28:17 2018 +0800

Add documents to issue#1713_team 5 (#104)

* add dubbo-basic-usage-dubbo-provider-configuration.md
---
 ...bbo-basic-usage-dubbo-provider-configuration.md | 282 +
 ...bbo-basic-usage-dubbo-provider-configuration.md |   5 +-
 2 files changed, 285 insertions(+), 2 deletions(-)

diff --git a/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md 
b/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
new file mode 100644
index 000..f9f59e0
--- /dev/null
+++ b/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
@@ -0,0 +1,282 @@
+Dubbo Basic Usage-Dubbo Provider Configuration
+---
+
+# Dubbo Basic Usage
+
+This chapter mainly talking about how to configure dubbo. According to the 
configuration mode, it can be divided into the following mode: XML 
Configuration, Properties Configuration, Annotation Configuration, API 
Invocation Mode Configuration. And according to the function, we can divide 
them into Dubbo Provider and Dubbo Consumer. In the following sections, we 
would explain Dubbo Provider and Dubbo Consumer respectively.
+
+## Dubbo Provider Configuration
+
+### Provider Configuration in Detail
+
+The configuration mode of Dubbo Provider has 4 different ways: XML 
Configuration, Properties Configuration, API Invocation Mode Configuration and 
Annotation Configuration.
+
+ XML Configuration
+
+## The simplest configuration example:
+```
+
+http://www.springframework.org/schema/beans;
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+xmlns:dubbo="http://dubbo.apache.org/schema/dubbo;
+xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
http://dubbo.apache.org/schema/dubbo 
http://dubbo.apache.org/schema/dubbo/dubbo.xsd;>  
+  
+  
+  
+  
+  
+
+```
+In the example above,note the way to write dubbo schema:  
+```
+http://www.w3.org/2001/XMLSchema-instance;
+   xmlns:dubbo="http://code.alibabatech.com/schema/dubbo;
+   xmlns="http://www.springframework.org/schema/beans;
+   xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+   http://code.alibabatech.com/schema/dubbo 
http://code.alibabatech.com/schema/dubbo/dubbo.xsd;>
+```
+
+## Supported Configuration Tags
+
+| Tags | Application | Describe |
+|  | - | : |
+| dubbo:service/ | Service Configuration | Expose a service, define 
the meta information of the service. One service can use multiple protocols to 
expose and can be registered to multiple registry centers |
+| dubbo:reference/ | Reference Configuration | Create a remote service 
agent, one reference can point to multiple registry centers |
+| dubbo:protocol/ | Protocol Configuration | Configure protocol 
information for providing services, protocol is specified by the provider and 
accepted passively by the consumer |
+| dubbo:application/ | Application Configuration | Configure current 
application information, regardless of whether the application is provider or 
consumer |
+| dubbo:module/ | Module Configuration | Configure current module 
information. Optional |
+| dubbo:registry/ | Registry Center Configuration | Configure 
information related to connect registry centers |
+| dubbo:monitor/ | Monitoring Center Configuration | Configure 
information related to connect monitor centers. Optional |
+| dubbo:provider/ | Provider Configuration | When some properties 
ProtocolConfig or ServiceConfig are not configured, use this default value. 
Optional |
+| dubbo:consumer/ | Consumer Configuration | When some properties of 
ReferenceConfig are not configured, use this default value. Optional |
+| dubbo:method/ | Method Configuration | Configure specific method 
level information of ServiceConfig and ReferenceConfig  |
+| dubbo:argument/ | Parameter Configuration | Configure parameters of 
specific method |
+
+![undefined](https://cdn.yuque.com/lark/0/2018/png/15841/1527849348155-8423d401-9ea4-4dc6-8720-d9e3d90963b6.png)
 
+
+ Configuration Diagram
+
+## Configuration item in detail
+
+* dubbo:application name="hello-world-app" /   
+Apply to specific application name, note that you need to make sure that the 
application name is unique. The application name can be displayed in the 
following console admin for easy management.
+
+* dubbo:registry address="multicast://224.5.6.7:1234" 

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new f2940c7  build site
f2940c7 is described below

commit f2940c7370eb47f9f6cd4c8ee14df359a0e32334
Author: zhuyong 
AuthorDate: Wed Aug 15 11:35:01 2018 +0800

build site
---
 ...bbo-basic-usage-dubbo-provider-configuration.md |   6 +-
 build/blog.js  |   2 +-
 ...o-basic-usage-dubbo-provider-configuration.html | 405 +
 ...o-basic-usage-dubbo-provider-configuration.json |   4 +
 en-us/blog/index.html  |   2 +-
 site_config/blog.js|   7 +
 ...o-basic-usage-dubbo-provider-configuration.html |  85 -
 ...o-basic-usage-dubbo-provider-configuration.json |   2 +-
 8 files changed, 488 insertions(+), 25 deletions(-)

diff --git a/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md 
b/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
index f9f59e0..8f0d26b 100644
--- a/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
+++ b/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
@@ -99,12 +99,12 @@ For other configuration properties, please refer to 
xsd:http://dubbo.apache.or
 
 For other properties,you can refer to xsd above。
 
-## Configuration Coverage Relationship  
+## Configuration Override Relationship  
 
![undefined](https://cdn.yuque.com/lark/0/2018/png/15841/1527849374313-94a5ea24-0e72-4d83-871b-e0e95eab646a.png)
 
 
 Configuration Coverage Relationship Diagram
 
-The coverage relationship here includes the configuration of both provider end 
and consumer end. If you have any questions about consumer, you can refer to 
the next chapter, consumer chapter, to understand.
+The Override relationship here includes the configuration of both provider end 
and consumer end. If you have any questions about consumer, you can refer to 
the next chapter, consumer chapter, to understand.
 
  dubbo.properties Configuration  
 
@@ -251,7 +251,7 @@ Skip this step if there is already a project. Create a 
Spring Boot project, whic
 Define interface: UserReadService
 ```
 public interface UserReadService{
-public User getUserById(Long userId);
+public User getUserById(Long userId);
 }
 ```
 Generally, this interface should be placed in an independent JAR file as a 
client package.
diff --git a/build/blog.js b/build/blog.js
index f369f7d..331c8f6 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -3,4 +3,4 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
+
+
+
+   
+   
+   
+   
+   
+   dubbo-basic-usage-dubbo-provider-configuration
+   
+   
+
+
+   中http://www.springframework.org/schema/beans;
+xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
+xmlns:dubbo=http://dubbo.apache.org/schema/dubbo;
+xsi:schemaLocation=http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
http://dubbo.apache.org/schema/dubbo 
http://dubbo.apache.org/schema/dubbo/dubbo.xsd;  
+dubbo:application name=hello-world-app /  
+dubbo:registry address=multicast://224.5.6.7:1234 /  
+dubbo:protocol name=dubbo port=20880 /  
+dubbo:service interface=com.alibaba.dubbo.demo.DemoService 
ref=demoServiceLocal /  
+dubbo:reference id=demoServiceRemote 
interface=com.alibaba.dubbo.demo.DemoService /  
+/beans
+
+In the example above,note the way to write dubbo schema:
+beans 
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
+   xmlns:dubbo=http://code.alibabatech.com/schema/dubbo;
+   xmlns=http://www.springframework.org/schema/beans;
+   xsi:schemaLocation=http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+   http://code.alibabatech.com/schema/dubbo 
http://code.alibabatech.com/schema/dubbo/dubbo.xsd;
+
+Supported Configuration Tags
+
+
+
+Tags
+Application
+Describe
+
+
+
+
+dubbo:service/
+Service Configuration
+Expose a service, define the meta information of 
the service. One service can use multiple protocols to expose and can be 
registered to multiple registry centers
+
+
+dubbo:reference/
+Reference Configuration
+Create a remote service agent, one reference can 
point to multiple registry centers
+
+
+dubbo:protocol/
+Protocol Configuration
+Configure protocol information for providing 
services, protocol is specified by the provider and accepted passively by the 
consumer
+
+
+dubbo:application/
+Application Configuration
+Configure current application information, 
regardless of whether the application is provider or consumer
+
+
+dubbo:module/
+Module Configuration
+Configure current module i

[incubator-dubbo-website] branch asf-site updated: Translate the article dubbo2.js

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 11fe550  Translate the article dubbo2.js
11fe550 is described below

commit 11fe55044cb0bb07d25ed897fdbabe63b171824a
Author: Stella0824 <34200550+stella0...@users.noreply.github.com>
AuthorDate: Wed Aug 15 11:43:40 2018 +0800

Translate the article dubbo2.js

* add en blog
---
 blog/en-us/dubbo2-js.md| 266 +
 blog/zh-cn/dubbo2-js.md|   4 +-
 img/blog/motan-protocol-en.png | Bin 0 -> 355484 bytes
 3 files changed, 268 insertions(+), 2 deletions(-)

diff --git a/blog/en-us/dubbo2-js.md b/blog/en-us/dubbo2-js.md
new file mode 100644
index 000..dbd9ec1
--- /dev/null
+++ b/blog/en-us/dubbo2-js.md
@@ -0,0 +1,266 @@
+
+# Implementation of cross-language calls by dubbo2.js
+> [dubbo2.js](https://github.com/dubbo/dubbo2.js) is a Dubbo client for 
node.js developped by [Qianmiwang](https://www.qianmi.com/). It supports 
Dubbo's native protocol, which makes the RPC calls between javascript and java 
efficient and agile. This tool has been contributed to Dubbo's community.
+
+## Cross-language calls for micro service
+Nowadays, Internet architecture tends to be micro-service way. The discussions 
about micro-service architecture becomes the most mentioned topic in different 
technical conferences. In China, most of the companies, such as Qianmiwang, 
choose Dubbo as their micro-servie architecture solution. As most of the 
internet companies, Qianmiwang uses various of programming languages. Java is 
for most of the backend services. Each business based on these backend can 
choose its own programming langu [...]
+
+  - Spring cloud. Spring cloud provides a set of components for micro-service 
development. It is based on HTTP protocol and is designed in the restful way, 
which makes it support cross-language calls. Other languages can call the 
services simply by implementing an HTTP interface.
+  - Service mesh. People call service mesh the next generation of 
micro-service framework. The core of this solution is SideCar. Even though the 
concept of SideCar changes a lot during the revolution of Service mesh, its 
main job never changed: providing reliable communication between different 
services.
+  - Motan. [Motan](https://github.com/weibocom/motan) is an open source 
cross-language service framework developped by Sina Weibo. Its early version 
only supports motan-java. However, as the new versions come out, more languages 
are supported in order to handle the cross-language problem. Its newest 
version(1.1.0) provides motan-go, motan-php, motan-openresty, etc. Similar to 
SideCar in Service mesh, Motan forwards messages by mortan-go, which can be 
considered as an agent. Meanwhile, mo [...]
+
+  According to the solutions below, there are two ways to solve the 
cross-language calls problem:
+
+  - communicating by a common protocol.
+  - implementing an agent as a protocol adapter.
+
+  When a new team is choosing technical solutions, what I mentioned below 
could be our candidates. Meanwhile, the old system's compatibility and 
migration costs should also be considered. The first trial we did is to work on 
RPC protocol.
+
+## Cross-language calls by a common protocol 
+
+  ### SpringMVC
+
+  ![springmvc](../../img/blog/springmvc.png)
+
+  Before achieving the real cross-language calls, the most common solution is 
to use the http protocol. We can call Dubbo provider indirectly by 
controller/restController provided by springmvc. This is easy to carry out, but 
there are lots of inconveniences. firstly, a call will go through too many 
nodes. Secondly, an extra communication layer (for http protocol) will be 
involved, but it could have been handled simply by the TCP protocol. Thirdly, 
we need to implement the RPC interface i [...]
+
+  ### We support some common protocols
+
+  Most of the service management frameworks support multiple protocols, dubbo 
as well. Besides its own protocol, the common protocols such as Dangdangwang's 
[Rest](https://dangdangdotcom.github.io/dubbox/rest.html) protocol and 
Qianmiwang's [json-rpc](https://github.com/apache/incubator-dubbo-rpc-jsonrpc) 
protocol are also supported.   
+
+  The developers getting used to traditional RPC interfaces might feel 
uncomfortable while working on restful RPC interfaces. On the one hand, this is 
not good for rebuilding new interfaces. On the other hand, restful style might 
make these interfaces incompatible with the other protocols used by old 
interfaces. Of course, if there is no old system problems, using Rest protocol 
is the easiest implementation of cross-language calls, since most of the 
languages support it.
+
+  Even if Dubbo has tried on restful interface, the difference 

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 3faef3b  build site
3faef3b is described below

commit 3faef3bb2615632dcf8ddde6772f6d96a2a91328
Author: zhuyong 
AuthorDate: Wed Aug 15 11:47:20 2018 +0800

build site
---
 build/blog.js |   2 +-
 en-us/blog/dubbo2-js.html | 233 ++
 en-us/blog/dubbo2-js.json |   4 +
 en-us/blog/index.html |   2 +-
 site_config/blog.js   |   7 ++
 zh-cn/blog/dubbo2-js.html |   6 +-
 zh-cn/blog/dubbo2-js.json |   2 +-
 7 files changed, 250 insertions(+), 6 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index 331c8f6..e5784cd 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -3,4 +3,4 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
+
+
+
+   
+   
+   
+   
+   
+   dubbo2-js
+   
+   
+
+
+   中https://github.com/dubbo/dubbo2.js;>dubbo2.js is a Dubbo 
client for node.js developped by https://www.qianmi.com/;>Qianmiwang. It supports Dubbo's native 
protocol, which makes the RPC calls between javascript and java efficient and 
agile. This tool has been contributed to Dubbo's community.
+
+Cross-language calls for micro service
+Nowadays, Internet architecture tends to be micro-service way. The 
discussions about micro-service architecture becomes the most mentioned topic 
in different technical conferences. In China, most of the companies, such as 
Qianmiwang, choose Dubbo as their micro-servie architecture solution. As most 
of the internet companies, Qianmiwang uses various of programming languages. 
Java is for most of the backend services. Each business based on these backend 
can choose its own programming la [...]
+
+Spring cloud. Spring cloud provides a set of components for micro-service 
development. It is based on HTTP protocol and is designed in the restful way, 
which makes it support cross-language calls. Other languages can call the 
services simply by implementing an HTTP interface.
+Service mesh. People call service mesh the next generation of 
micro-service framework. The core of this solution is SideCar. Even though the 
concept of SideCar changes a lot during the revolution of Service mesh, its 
main job never changed: providing reliable communication between different 
services.
+Motan. https://github.com/weibocom/motan;>Motan is an open 
source cross-language service framework developped by Sina Weibo. Its early 
version only supports motan-java. However, as the new versions come out, more 
languages are supported in order to handle the cross-language problem. Its 
newest version(1.1.0) provides motan-go, motan-php, motan-openresty, etc. 
Similar to SideCar in Service mesh, Motan forwards messages by mortan-go, which 
can be considered as an agent. Me [...]
+
+According to the solutions below, there are two ways to solve the 
cross-language calls problem:
+
+communicating by a common protocol.
+implementing an agent as a protocol adapter.
+
+When a new team is choosing technical solutions, what I mentioned below 
could be our candidates. Meanwhile, the old system's compatibility and 
migration costs should also be considered. The first trial we did is to work on 
RPC protocol.
+Cross-language calls by a common protocol
+SpringMVC
+
+Before achieving the real cross-language calls, the most common solution is 
to use the http protocol. We can call Dubbo provider indirectly by 
controller/restController provided by springmvc. This is easy to carry out, but 
there are lots of inconveniences. firstly, a call will go through too many 
nodes. Secondly, an extra communication layer (for http protocol) will be 
involved, but it could have been handled simply by the TCP protocol. Thirdly, 
we need to implement the RPC interface  [...]
+We support some common protocols
+Most of the service management frameworks support multiple protocols, dubbo 
as well. Besides its own protocol, the common protocols such as Dangdangwang's 
https://dangdangdotcom.github.io/dubbox/rest.html;>Rest protocol 
and Qianmiwang's https://github.com/apache/incubator-dubbo-rpc-jsonrpc;>json-rpc 
protocol are also supported.
+The developers getting used to traditional RPC interfaces might feel 
uncomfortable while working on restful RPC interfaces. On the one hand, this is 
not good for rebuilding new interfaces. On the other hand, restful style might 
make these interfaces incompatible with the other protocols used by old 
interfaces. Of course, if there is no old system problems, using Rest protocol 
is the easiest implementation of cross-language calls, since most of the 
languages support it.
+Even if Dubbo has tried on restful 

[incubator-dubbo-website] branch asf-site updated: Translate introduction-to-dubbo-spi-2.md (#100)

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 73182ef  Translate introduction-to-dubbo-spi-2.md (#100)
73182ef is described below

commit 73182efe7d40e6c485042d3174e3162f2e8f2a99
Author: JackChen <767696...@qq.com>
AuthorDate: Wed Aug 15 12:50:33 2018 +0800

Translate introduction-to-dubbo-spi-2.md (#100)
---
 blog/en-us/introduction-to-dubbo-spi-2.md | 391 ++
 1 file changed, 391 insertions(+)

diff --git a/blog/en-us/introduction-to-dubbo-spi-2.md 
b/blog/en-us/introduction-to-dubbo-spi-2.md
new file mode 100644
index 000..9d31cf3
--- /dev/null
+++ b/blog/en-us/introduction-to-dubbo-spi-2.md
@@ -0,0 +1,391 @@
+# Dubbo extensible mechanism source code analysis
+---
+
+In the [actual implementation of the Dubbo extensibility 
mechanism](#/blog/introduction-to-dubbo-spi.md), we learned some concepts of 
the Dubbo extension mechanism, explored the implementation of LoadBalance in 
Dubbo, and implemented a LoadBalance on our own. Do you think Dubbo's extension 
mechanism is great? Next, we will go deep into the source code of Dubbo and see 
what it is.
+
+# ExtensionLoader
+ExtentionLoader is the core class, which is responsible for the loading and 
lifecycle management of extension points. Let's start with this class. There 
are many methods of Extension, and the common methods include:
+* `public static  ExtensionLoader getExtensionLoader(Class type)`
+* `public T getExtension(String name)`
+* `public T getAdaptiveExtension()`
+
+The common usages are:
+* `LoadBalance lb = 
ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(loadbalanceName)`
+* `RouterFactory routerFactory = 
ExtensionLoader.getExtensionLoader(RouterFactory.class).getAdaptiveExtension()`
+
+Notice: In the source code shown below, I'll remove extraneous code (such as 
logging, exception catching, and so on) to make it easy to read and understand.
+
+1. getExtensionLoader
+This is a static factory method that enters an extensible interface and 
returns an ExtensionLoader entity class for this interface. With this entity 
class, you can get not only a specific extension based on name, but also an 
adaptive extension.
+
+```java
+public static  ExtensionLoader getExtensionLoader(Class type) {
+// An extension point must be an interface
+if (!type.isInterface()) {
+throw new IllegalArgumentException("Extension type(" + type + ") 
is not interface!");
+}
+// @SPI annotations must be provided
+if (!withExtensionAnnotation(type)) {
+throw new IllegalArgumentException("Extension type without @SPI 
Annotation!");
+}
+// Get the corresponding ExtensionLoader from the cache according to 
the interface
+// Each extension will only be loaded once
+ExtensionLoader loader = (ExtensionLoader) 
EXTENSION_LOADERS.get(type);
+if (loader == null) {
+// Initialize extension
+EXTENSION_LOADERS.putIfAbsent(type, new ExtensionLoader(type));
+loader = (ExtensionLoader) EXTENSION_LOADERS.get(type);
+}
+return loader;
+}
+
+private ExtensionLoader(Class type) {
+this.type = type;
+objectFactory = (type == ExtensionFactory.class ? null : 
ExtensionLoader.getExtensionLoader(ExtensionFactory.class).getAdaptiveExtension());
+}
+```
+
+2. getExtension
+
+```java
+public T getExtension(String name) {
+Holder holder = cachedInstances.get(name);
+if (holder == null) {
+cachedInstances.putIfAbsent(name, new Holder());
+holder = cachedInstances.get(name);
+}
+Object instance = holder.get();
+// Get it from the cache. If it does not exist, create
+if (instance == null) {
+synchronized (holder) {
+instance = holder.get();
+if (instance == null) {
+instance = createExtension(name);
+holder.set(instance);
+}
+}
+}
+return (T) instance;
+}
+```
+Some judgments and caching have been made in the getExtention method, and the 
main logic is in the createExtension method. Let's move on to the 
createExtention method.
+
+```java
+private T createExtension(String name) {
+// Get the extension class according to the name of extension point. 
For example,  for LoadBalance, get the RandomLoadBalance class according to 
random
+Class clazz = getExtensionClasses().get(name);
+
+T instance = (T) EXTENSION_INSTANCES.get(clazz);
+if (instance == null) {
+  // Use reflection to call newInstance to create an example of an 
extension class
+E

[incubator-dubbo-website] branch asf-site updated: Blog translation (#99)

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 978bc15  Blog translation (#99)
978bc15 is described below

commit 978bc1508457b826a80d61b1feb8dbabcf25bab6
Author: siqizhuo 
AuthorDate: Wed Aug 15 12:57:14 2018 +0800

Blog translation (#99)

* add english translation for blog/zh-ch/dubbo-new-async.md
---
 blog/en-us/dubbo-new-async.md | 577 ++
 blog/zh-cn/dubbo-new-async.md |   2 +-
 site_config/blog.js   |   6 +
 3 files changed, 584 insertions(+), 1 deletion(-)

diff --git a/blog/en-us/dubbo-new-async.md b/blog/en-us/dubbo-new-async.md
new file mode 100644
index 000..c5c8bc7
--- /dev/null
+++ b/blog/en-us/dubbo-new-async.md
@@ -0,0 +1,577 @@
+# How to implement a fully asynchronous calls chain based on Dubbo.
+
+Implementing the full asynchronous programming based on Dubbo, which is a new 
feature introduced in version 2.7.0 after the enhancement of the existing 
asynchronous mode.This article first reviews the supported functions and 
existing problems of asynchronization in 2.6.x and earlier versions, and 
introduces the targeted enhancements based on CompletableFuture in version 
2.7.0. Then, the use of enhanced asynchronous programming is elaborated through 
several examples. Finally, it summarize [...]
+
+## Asynchronous mode before version 2.6.x
+
+Dubbo Provides some asynchronous programming capabilities in 2.6.x and earlier 
versions, including [Asynchronous 
Call](http://dubbo.apache.org/books/dubbo-user-book/demos/async-call.html), 
[Parameter 
Callback](http://dubbo.apache.org/books/dubbo-user-book/demos/callback-parameter.html)
 and [Event 
Notification](http://dubbo.apache.org/books/dubbo-user-book/demos/events-notify.html)
 on Consumer side. There are some brief introductions to the usage and Demo in 
the above document links.
+
+But the current asynchronous method has the following problems:
+
+- Methods to access Future object are not direct enough.
+- Future interface cannot implement automatic callback. Customized 
ResponseFuture class could implement callback, however it only supports limited 
asynchronous scenes. For example, it does not support mutual coordination or 
combination between Future objects.
+- Asynchronization on Provider side is not supported.
+
+Take the asynchronous method of Consumer side as an example:
+
+1. Define a original synchronous interface and add the declaration to support 
asynchronous calls.
+
+```
+public interface FooService {
+String findFoo(String name);
+}
+```
+
+```
+
+  
+
+```
+
+2. Obtain Future object through RpcContext.
+
+```
+// this call will return null immediately
+fooService.findFoo(fooId);
+// Obtain the Future instance. When the result is returned, Future instance 
will be notified and the result will be set to Future instance.
+Future fooFuture = RpcContext.getContext().getFuture();
+fooFuture.get();
+```
+
+or 
+
+```
+// this call will return null immediately
+fooService.findFoo(fooId);
+// get Dubbo's built-in ResponseFuture, and set the callback
+ResponseFuture future = 
((FutureAdapter)RpcContext.getContext().getFuture()).getFuture();
+future.setCallback(new ResponseCallback() {
+@Override
+public void done(Object response) {
+System.out.print(response);
+}
+
+@Override
+public void caught(Throwable exception) {
+exception.printStackTrace();
+}
+});
+```
+
+From this simple example, we can see there are some inconveniences in use:
+
+1. The synchronization interface of findFoo cannot directly return a Future 
object representing the asynchronous result, which is further obtained through 
RpcContext.
+2. Future object can only be obtained from get method that will block until 
getting the result.
+3. Callback can be set by getting the built-in ResponseFuture interface. 
However, the API to obtain ResponseFuture is not convenient enough to support 
other asynchronous scenes except callback. For example, it does not support the 
scene where multiple Future objects work together.
+
+## Enhancement based on CompletableFuture in version 2.7.0
+
+People who understand the evolution history of Future in Java should know that 
the Future used in Dubbo 2.6.x and earlier versions is introduced in Java 5, so 
there are some problems in function design.The CompletableFuture introduced in 
Java 8 further enriches the Future interface and solves these problems well.
+
+Support for Java 8 has been upgraded in Dubbo 2.7.0, and Dubbo has enhanced 
the current asynchronous functionality based on CompletableFuture.
+
+1. Now it supports direct definition of service interfaces that return 
CompletableFuture. Through these interfaces, we can implement asynchronous 
programming on both Consumer side and Provider side

[incubator-dubbo-website] branch asf-site updated: docsite build

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new eb159eb  docsite build
eb159eb is described below

commit eb159eb7512280026093c11963a18396eb325dcc
Author: zhuyong 
AuthorDate: Wed Aug 15 13:19:32 2018 +0800

docsite build
---
 build/blog.js |  2 +-
 en-us/blog/index.html |  2 +-
 site_config/blog.js   | 21 ++---
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index 78543c8..a59ae0d 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -3,4 +3,4 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
 
 
-   中中https://f.alicdn.com/react/15.4.1/react-with-addons.min.js;>
https://f.alicdn.com/react/15.4.1/react-dom.min.js&quot</a>;>

[incubator-dubbo-website] branch asf-site updated: add dubbo-invoke (#91)

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 8142ed0  add dubbo-invoke (#91)
8142ed0 is described below

commit 8142ed0abdc00b7f1a67e66bc09b2d4ecf211405
Author: Zoe-Hou <137178...@qq.com>
AuthorDate: Wed Aug 15 11:52:56 2018 +0800

add dubbo-invoke (#91)
---
 blog/en-us/dubbo-invoke.md   | 216 +++
 blog/zh-cn/dubbo-invoke.md   |  12 +-
 docs/zh-cn/user/demos/logger-strategy.md |  16 +--
 docs/zh-cn/user/demos/static-service.md  |   2 +-
 4 files changed, 231 insertions(+), 15 deletions(-)

diff --git a/blog/en-us/dubbo-invoke.md b/blog/en-us/dubbo-invoke.md
new file mode 100644
index 000..ab51e2d
--- /dev/null
+++ b/blog/en-us/dubbo-invoke.md
@@ -0,0 +1,216 @@
+
+# Dubbo: Several ways about synchronous/asynchronous invoke
+
+As we all know,Dubbo adopts a single large join protocol by default and takes 
the NIO asynchronous communication mechanism of Netty as the low-level 
implementation. Based on this mechanism, Dubbo implements several invocation 
modes as follows:
+
+* synchronous invoke
+* asynchronous invoke
+* parameters callback
+* event notification
+
+### Synchronous invoke
+
+Synchronous invoke is a kind of blocking invocation mode, that is the Consumer 
keeps blocking and waiting, until the Provider returns.
+
+Generally, a typical synchronous invocation process is as follows:
+
+1. Consumer service thread invokes the remote API and sends requests to the 
Provider. Meanwhile, the current service thread stays in blocking state;
+2. Provider process relative request after receiving it from Consumer. Then 
returns the results to Consumer;
+3. After Consumer receiving results, the current thread continues to execute.
+
+Here are two problems:
+
+1. How does Consumer service thread turn into `blocking` state?
+2. How does the service thread be awaked to execute after Consumer receiving 
results?
+
+In fact, the low-level I/O operations of Dubbo are all asynchronous. The 
Consumer gets a Future object after invoking the Provider. For synchronous 
invoke, the service thread takes advantage of `Future#get(timeout)` to block 
and wait for Provider returning results, with the 'timeout' indicating the 
timeout defined by Consumer. When the result returns, the Future will be set 
and the blocked service thread will be awaked. The service thread will return 
an exception if there is no result af [...]
+
+### Asynchronous invoke
+
+For scenarios that Provider has a long response time, it's necessary to 
implement asynchronous invoke based on Dubbo's underlying asynchronous NIO. It 
could utilize the resource of Consumer effectively, and costs less than using 
multi-thread for Consumer.
+
+Asynchronous invoke does not need specific configuration for Provider. In the 
example,the API of Provider is defined as follow:
+
+```java
+public interface AsyncService {
+String goodbye(String name);
+}
+```
+
+# Consumer configuration
+
+```xml
+
+
+
+```
+
+Notice that if we need an asynchronous revoke method, we must use 
`` label to describe it.
+
+# Consumer triggers invocation
+
+```java
+AsyncService service = ...;
+String result = service.goodbye("samples");// returns NULL and DO NOT use!
+Future future = RpcContext.getContext().getFuture();
+... // other service thread logic
+result = future.get(); // could use get(timeout, unit) to configure timeout, 
when it needs to get the asynchronous result
+```
+
+After Dubbo Consumer triggers invocation, it uses 
`RpcContext.getContext().getFuture()` to get the relative `Future` object, and 
then it could start executing other tasks. Anytime when we need results, 
`future.get(timeout)` is supposed to be called.
+
+Under several special conditions, it could be set whether to wait for sending 
the request, to accelerate the return of invocation:
+
+* `sent="true"` Waiting for sending the request, and return an exception if it 
fails;
+* `sent="false"` Do not wait for the request, and returns immediately after 
putting the request to the I/O queue.
+
+We set it to `false` by default. And detailed configuration is as follows:
+
+```xml
+
+```
+
+If you only want to be asynchronous, then omit the result thoroughly, 
`return="false"` could be set to reduce the creation and management cost of 
Future:
+
+```xml
+
+```
+
+At this time,`RpcContext.getContext().getFuture()` will return `null`。
+
+The complete sequence diagram of asynchronous invoke is as follow:
+
+![Asynchronous invoke](../../img/blog/dubbo-async.svg)
+
+The sample locates 
at:https://github.com/dubbo/dubbo-samples/tree/master/dubbo-samples-async
+
+### Parameters callback
+
+The parameter Callback is somewhat similar to the local Callback mechanism, 
but Callba

[incubator-dubbo-website] branch asf-site updated: Translate Blog-Dubbo's generic calls(#98)

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 899026e  Translate Blog-Dubbo's generic calls(#98)
899026e is described below

commit 899026e10447ecb7ebbfaf01269e94b2e6f274cc
Author: ChasePGit <1042132...@qq.com>
AuthorDate: Wed Aug 15 12:43:19 2018 +0800

Translate Blog-Dubbo's generic calls(#98)
---
 blog/en-us/dubbo-generic calls.md | 178 ++
 1 file changed, 178 insertions(+)

diff --git a/blog/en-us/dubbo-generic calls.md b/blog/en-us/dubbo-generic 
calls.md
new file mode 100644
index 000..79c82ad
--- /dev/null
+++ b/blog/en-us/dubbo-generic calls.md 
@@ -0,0 +1,178 @@
+# Generic Calls of Dubbo
+The generic call could be considered to be used in the following cases:
+- Service test platform
+- API service gateway
+
+The generic call is mainly used when the consumer does not have an API 
interface; 
+instead of introducing the interface jar package, the service call is 
initiated directly through the GenericService interface, and all POJOs in the 
parameters and return values are represented by a `Map`. 
+Generic calls do not require attention on the server and can be exposed as 
normal services.
+
+Next, let's take a look at how the consumer uses generic calls for service 
calls.
+
+### Generic calls through Spring XML configuration
+
+Declare `generic="true"` in Spring configuration, such as
+
+```xml
+"userService" interface="com.alibaba.dubbo.samples.generic.api.IUserService" 
generic="true"/>
+```
+
+Where you need to use it, you can call it by forcing a type conversion to 
GenericService.
+
+```java
+GenericService userService = (GenericService) context.getBean("userService");
+// primary param and return value
+String name = (String) userService.$invoke("delete", new 
String[]{int.class.getName()}, new Object[]{1});
+System.out.println(name);
+```
+
+Among them,
+
+1. The interface GenericService has only one method, named $invoke, which 
takes three arguments, a method name, an array of method parameter types, and 
an array of parameter values.
+
+2. For arrays of method parameter types
+
+   i.  If it is a basic type, such as int or long, use `int.class.getName()` 
to get its type;
+   
+   ii. If it is a basic type array, such as int[], use `int[].class.getName()`;
+   
+   iii.If it is a POJO, use the full class name directly, such as 
`com.alibaba.dubbo.samples.generic.api.Params`.
+
+### Generic calls through API programming
+
+```java
+ApplicationConfig application = new ApplicationConfig()ApplicationConfig 
application = new ApplicationConfig();
+application.setName("api-generic-consumer");
+
+RegistryConfig registry = new RegistryConfig();
+registry.setAddress("zookeeper://127.0.0.1:2181");
+
+application.setRegistry(registry);
+
+ReferenceConfig reference = new 
ReferenceConfig();
+// weak type interface name
+reference.setInterface("com.alibaba.dubbo.samples.generic.api.IUserService");
+// declared as a generalized interface
+reference.setGeneric(true);
+
+reference.setApplication(application);
+
+// replace all interface references with 
com.alibaba.dubbo.rpc.service.GenericService
+GenericService genericService = reference.get();
+
+String name = (String) genericService.$invoke("delete", new 
String[]{int.class.getName()}, new Object[]{1});
+System.out.println(name);
+```
+
+Through the API, you don't need to configure the service in advance like XML. 
You can dynamically construct ReferenceConfig; the API is more common than XML.
+
+### The case where parameters or return values are POJOs
+
+For example, the method signature is `User get(Params params)`, where `User` 
has two attributes, id and name, and `Params` has one attribute, query.
+
+The following is the calling code of the consumer:
+
+```java
+String[] parameterTypes = new 
String[]{"com.alibaba.dubbo.samples.generic.api.Params"};
+Map params = new HashMap();
+param.put("class", "com.alibaba.dubbo.samples.generic.api.Params");
+param.put("query", "a=b");
+Object user = userService.$invoke("get", parameterTypes, new Object[]{param});
+System.out.println("sample one result: " + user);
+```
+
+The output of the above code is:
+
+```
+sample one result: {name=charles, id=1, 
class=com.alibaba.dubbo.samples.generic.api.User}
+```
+
+Here, the Dubbo framework will automatically convert the return value from 
POJO to Map.
+It can be seen that the return value `user` is a HashMap, which stores three 
k/vs, name, id, and class.
+
+### Generic interface implementation
+
+The implementation of the generic interface is mainly used when the server 
does not have an API interface. All POJ

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 49917b0  build site
49917b0 is described below

commit 49917b01a478d041556bd69f1638897a085b5faa
Author: zhuyong 
AuthorDate: Wed Aug 15 13:10:19 2018 +0800

build site
---
 build/blog.js   |   2 +-
 en-us/blog/dubbo-new-async.html | 416 
 en-us/blog/dubbo-new-async.json |   4 +
 en-us/blog/index.html   |   2 +-
 en-us/blog/introduction-to-dubbo-spi-2.html | 388 ++
 en-us/blog/introduction-to-dubbo-spi-2.json |   4 +
 site_config/blog.js |  45 +--
 zh-cn/blog/dubbo-new-async.html |   4 +-
 zh-cn/blog/dubbo-new-async.json |   2 +-
 zh-cn/blog/index.html   |   2 +-
 10 files changed, 841 insertions(+), 28 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index 1349987..78543c8 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -3,4 +3,4 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
+
+
+
+   
+   
+   
+   
+   
+   dubbo-new-async
+   
+   
+
+
+   中http://dubbo.apache.org/books/dubbo-user-book/demos/async-call.html;>Asynchronous
 Call, http://dubbo.apache.org/books/dubbo-user-book/demos/callback-parameter.html;>Parameter
 Callback and http://dubbo.apache.org/books/dubbo-user-book/demos/events-notify.html;>Event
 Notification on Consumer side. There are some brief introductions to the 
usage and De [...]
+But the current asynchronous method has the following problems:
+
+Methods to access Future object are not direct enough.
+Future interface cannot implement automatic callback. Customized 
ResponseFuture class could implement callback, however it only supports limited 
asynchronous scenes. For example, it does not support mutual coordination or 
combination between Future objects.
+Asynchronization on Provider side is not supported.
+
+Take the asynchronous method of Consumer side as an example:
+
+Define a original synchronous interface and add the declaration to support 
asynchronous calls.
+
+public interface FooService {
+String findFoo(String name);
+}
+
+dubbo:reference id=fooService 
interface=com.alibaba.foo.FooService
+  dubbo:method name=findFoo async=true /
+/dubbo:reference
+
+
+Obtain Future object through RpcContext.
+
+// this call will return null immediately
+fooService.findFoo(fooId);
+// Obtain the Future instance. When the result is returned, Future instance 
will be notified and the result will be set to Future instance.
+FutureFoo fooFuture = RpcContext.getContext().getFuture();
+fooFuture.get();
+
+or
+// this call will return null immediately
+fooService.findFoo(fooId);
+// get Dubbo's built-in ResponseFuture, and set the callback
+ResponseFuture future = 
((FutureAdapter)RpcContext.getContext().getFuture()).getFuture();
+future.setCallback(new ResponseCallback() {
+@Override
+public void done(Object response) {
+System.out.print(response);
+}
+
+@Override
+public void caught(Throwable exception) {
+exception.printStackTrace();
+}
+});
+
+From this simple example, we can see there are some inconveniences in 
use:
+
+The synchronization interface of findFoo cannot directly return a Future 
object representing the asynchronous result, which is further obtained through 
RpcContext.
+Future object can only be obtained from get method that will block until 
getting the result.
+Callback can be set by getting the built-in ResponseFuture interface. 
However, the API to obtain ResponseFuture is not convenient enough to support 
other asynchronous scenes except callback. For example, it does not support the 
scene where multiple Future objects work together.
+
+Enhancement based on CompletableFuture in version 2.7.0
+People who understand the evolution history of Future in Java should know 
that the Future used in Dubbo 2.6.x and earlier versions is introduced in Java 
5, so there are some problems in function design.The CompletableFuture 
introduced in Java 8 further enriches the Future interface and solves these 
problems well.
+Support for Java 8 has been upgraded in Dubbo 2.7.0, and Dubbo has enhanced 
the current asynchronous functionality based on CompletableFuture.
+
+
+Now it supports direct definition of service interfaces that return 
CompletableFuture. Through these interfaces, we can implement asynchronous 
programming on both Consumer side and Provider side more naturally.
+public interface AsyncService {
+CompletableFutureString sayHello(String name);
+}
+
+
+
+If you don't want to define the return val

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-15 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 32f44cd  build site
32f44cd is described below

commit 32f44cd43891f67099c37799d5cc18cdd8d4ef6f
Author: zhuyong 
AuthorDate: Wed Aug 15 15:19:23 2018 +0800

build site
---
 blog/zh-cn/dubbo-meetup-chengdu.md|   8 ++
 blog/zh-cn/dubbo-meetup-shenzhen.md   |   9 +++
 build/community.js|   4 +--
 img/blog/dubbo-chengdu-meetup-img.jpg | Bin 0 -> 2553076 bytes
 img/blog/dubbo-chengdu-meetup.jpg | Bin 0 -> 337310 bytes
 img/blog/dubbo-meetup-shenzhen-haibao.jpg | Bin 0 -> 350625 bytes
 img/blog/dubbo-shenzhen-meetup.jpg| Bin 0 -> 60403 bytes
 site_config/community.jsx |  14 +++
 zh-cn/blog/dubbo-meetup-chengdu.html  |  36 +++
 zh-cn/blog/dubbo-meetup-chengdu.json  |   4 +++
 zh-cn/blog/dubbo-meetup-shenzhen.html |  40 ++
 zh-cn/blog/dubbo-meetup-shenzhen.json |   4 +++
 zh-cn/community/index.html|   2 +-
 13 files changed, 118 insertions(+), 3 deletions(-)

diff --git a/blog/zh-cn/dubbo-meetup-chengdu.md 
b/blog/zh-cn/dubbo-meetup-chengdu.md
new file mode 100644
index 000..60fe5fb
--- /dev/null
+++ b/blog/zh-cn/dubbo-meetup-chengdu.md
@@ -0,0 +1,8 @@
+第四届Dubbo开发者沙龙将于8月26日在成都举行
+---
+
+Aliware Open Source•成都站-Apache 
Dubbo开发者沙龙将于8月26日(周日)在成都高新区天府五街200号菁蓉国际广场8号楼2楼会议厅举办,技术GG们的思想盛宴,干货与福利一个都不会少。
+
+报名链接:http://www.huodongxing.com/event/7453091088400
+ 
+
diff --git a/blog/zh-cn/dubbo-meetup-shenzhen.md 
b/blog/zh-cn/dubbo-meetup-shenzhen.md
new file mode 100644
index 000..29a9fba
--- /dev/null
+++ b/blog/zh-cn/dubbo-meetup-shenzhen.md
@@ -0,0 +1,9 @@
+第三届Dubbo开发者沙龙在深圳成功举办
+---
+
+第三届Dubbo开发者沙龙在深圳成功举办,超过2000位开发者报名,现场参与人数700+,通过阿里云天池、云栖社区、大咖说引导线上直播观看次数17000+
+
+分享嘉宾
+  * 陈志轩: Dubbo开源现状和2.7规划
+  * 康彬: 乐信集团的微服务化之路
+  * 林佳梁: Sentinel——企业用户的全方位流量哨兵 
\ No newline at end of file
diff --git a/build/community.js b/build/community.js
index 8380cce..0045cda 100644
--- a/build/community.js
+++ b/build/community.js
@@ -1,6 +1,6 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...]
+!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...]
   Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
+
+
+
+   
+   
+   
+   
+   
+   dubbo-meetup-chengdu
+   
+   
+
+
+   Enhttp://www.huodongxing.com/event/7453091088400;>http://www.huodongxing.com/event/7453091088400
+
+DisclaimerApache Dubbo is an effort undergoing incubation at The Apache 
Software Foundation (ASF), sponsored by the Incubator. Incubatio [...]
+   https://f.alicdn.com/react/15.4.1/react-with-addons.min.js&quot</a>;>
+   https://f.alicdn.com/react/15.4.1/react-dom.min.js&quot</a>;>
+   
+   window.rootPath = '';
+  
+  
+  
+   https://www.googletagmanager.com/gtag/js?id=UA-112489517-1&quot</a>;>
+   
+   window.dataLayer = window.dataLayer || [];
+   function gtag(){dataLayer.push(arguments);}
+   gtag('js', new Date());
+
+   gtag('config', 'UA-112489517-1');
+   
+
+
\ No newline at end of file
diff --git a/zh-cn/blog/dubbo-meetup-chengdu.json 
b/zh-cn/blog/dubbo-meetup-chengdu.json
new file mode 100644
index 000..71538dc
--- /dev/null
+++ b/zh-cn/blog/dubbo-meetup-chengdu.json
@@ -0,0 +1,4 @@
+{
+  "filename": "dubbo-meetup-chengdu.md",
+  "__html": "第四届Dubbo开发者沙龙将于8月26日在成都举行\nAliware Open 
Source•成都站-Apache 
Dubbo开发者沙龙将于8月26日(周日)在成都高新区天府五街200号菁蓉国际广场8号楼2楼会议厅举办,技术GG们的思想盛宴,干货与福利一个都不会少。\n报名链接:http://www.huodongxing.com/event/7453091088400\;>htt

[incubator-dubbo] branch master updated: Optimize init loadbalance. (#2309)

2018-08-16 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new e22ac38  Optimize init loadbalance. (#2309)
e22ac38 is described below

commit e22ac38158becc11c4543ff9ff0bf930f79217d0
Author: 时无两丶 <442367...@qq.com>
AuthorDate: Fri Aug 17 10:02:57 2018 +0800

Optimize init loadbalance. (#2309)

* Optimize init loadbalance before 'doSelect' method called
---
 .../cluster/support/AbstractClusterInvoker.java| 43 +++---
 .../support/AbstractClusterInvokerTest.java| 17 ++---
 2 files changed, 40 insertions(+), 20 deletions(-)

diff --git 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
index 2e3ab14..090f286 100644
--- 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
+++ 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.Version;
 import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
+import org.apache.dubbo.common.utils.CollectionUtils;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.rpc.Invocation;
 import org.apache.dubbo.rpc.Invoker;
@@ -94,17 +95,18 @@ public abstract class AbstractClusterInvoker implements 
Invoker {
 
 /**
  * Select a invoker using loadbalance policy.
- * a)Firstly, select an invoker using loadbalance. If this invoker is in 
previously selected list, or,
+ * a) Firstly, select an invoker using loadbalance. If this invoker is in 
previously selected list, or,
  * if this invoker is unavailable, then continue step b (reselect), 
otherwise return the first selected invoker
- * b)Reslection, the validation rule for reselection: selected > 
available. This rule guarantees that
+ * 
+ * b) Reslection, the validation rule for reselection: selected > 
available. This rule guarantees that
  * the selected invoker has the minimum chance to be one in the previously 
selected list, and also
  * guarantees this invoker is available.
  *
  * @param loadbalance load balance policy
- * @param invocation
- * @param invokers invoker candidates
- * @param selected  exclude selected invokers or not
- * @return
+ * @param invocation  invocation
+ * @param invokersinvoker candidates
+ * @param selectedexclude selected invokers or not
+ * @return the invoker which will final to do invoke.
  * @throws RpcException
  */
 protected Invoker select(LoadBalance loadbalance, Invocation 
invocation, List> invokers, List> selected) throws 
RpcException {
@@ -138,9 +140,6 @@ public abstract class AbstractClusterInvoker implements 
Invoker {
 return null;
 if (invokers.size() == 1)
 return invokers.get(0);
-if (loadbalance == null) {
-loadbalance = 
ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(Constants.DEFAULT_LOADBALANCE);
-}
 Invoker invoker = loadbalance.select(invokers, getUrl(), 
invocation);
 
 //If the `invoker` is in the  `selected` or invoker is unavailable && 
availablecheck is true, reselect.
@@ -226,7 +225,6 @@ public abstract class AbstractClusterInvoker implements 
Invoker {
 @Override
 public Result invoke(final Invocation invocation) throws RpcException {
 checkWhetherDestroyed();
-LoadBalance loadbalance = null;
 
 // binding attachments into invocation.
 Map contextAttachments = 
RpcContext.getContext().getAttachments();
@@ -235,10 +233,7 @@ public abstract class AbstractClusterInvoker implements 
Invoker {
 }
 
 List> invokers = list(invocation);
-if (invokers != null && !invokers.isEmpty()) {
-loadbalance = 
ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()
-.getMethodParameter(RpcUtils.getMethodName(invocation), 
Constants.LOADBALANCE_KEY, Constants.DEFAULT_LOADBALANCE));
-}
+LoadBalance loadbalance = initLoadBalance(invokers, invocation);
 RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);
 return doInvoke(invocation, invokers, loadbalance);
 }
@@ -276,4 +271,24 @@ public abstract class AbstractClusterInvoker implements 
Invoker {
 List> invokers = directory.list(invocation);
 return invokers;
 }
+
+/**
+ * Init LoadBalance.
+ * 
+ * if invokers is not empty, init from the first invoke's url and 
invo

[incubator-dubbo] branch master updated: add log4j2 extension (#2279)

2018-08-17 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new af2a538  add log4j2 extension (#2279)
af2a538 is described below

commit af2a538d3dfada0f719fc07e36919148d8d97c12
Author: 玩玩跑跑 <18244217...@163.com>
AuthorDate: Fri Aug 17 15:43:50 2018 +0800

add log4j2 extension (#2279)

* add log4j2 for dubbo logging, #1713
* remove unused code, add provided scope to log4j2
---
 dubbo-common/pom.xml   |  10 ++
 .../apache/dubbo/common/logger/LoggerFactory.java  |  11 +-
 .../dubbo/common/logger/log4j2/Log4j2Logger.java   | 128 +
 .../common/logger/log4j2/Log4j2LoggerAdapter.java  | 107 +
 .../org.apache.dubbo.common.logger.LoggerAdapter   |   3 +-
 .../dubbo/common/logger/LoggerAdapterTest.java |   5 +-
 .../dubbo/common/logger/slf4j/Slf4jLoggerTest.java |   1 -
 dubbo-dependencies-bom/pom.xml |  13 +++
 8 files changed, 273 insertions(+), 5 deletions(-)

diff --git a/dubbo-common/pom.xml b/dubbo-common/pom.xml
index 72d43da..22a1322 100644
--- a/dubbo-common/pom.xml
+++ b/dubbo-common/pom.xml
@@ -44,6 +44,16 @@
 log4j
 
 
+org.apache.logging.log4j
+log4j-api
+provided
+
+
+org.apache.logging.log4j
+log4j-core
+provided
+
+
 org.javassist
 javassist
 
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/logger/LoggerFactory.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/logger/LoggerFactory.java
index 7848224..ec98755 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/logger/LoggerFactory.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/logger/LoggerFactory.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.logger.jcl.JclLoggerAdapter;
 import org.apache.dubbo.common.logger.jdk.JdkLoggerAdapter;
 import org.apache.dubbo.common.logger.log4j.Log4jLoggerAdapter;
+import org.apache.dubbo.common.logger.log4j2.Log4j2LoggerAdapter;
 import org.apache.dubbo.common.logger.slf4j.Slf4jLoggerAdapter;
 import org.apache.dubbo.common.logger.support.FailsafeLogger;
 
@@ -47,6 +48,8 @@ public class LoggerFactory {
 setLoggerAdapter(new Log4jLoggerAdapter());
 } else if ("jdk".equals(logger)) {
 setLoggerAdapter(new JdkLoggerAdapter());
+} else if ("log4j2".equals(logger)) {
+setLoggerAdapter(new Log4j2LoggerAdapter());
 } else {
 try {
 setLoggerAdapter(new Log4jLoggerAdapter());
@@ -55,9 +58,13 @@ public class LoggerFactory {
 setLoggerAdapter(new Slf4jLoggerAdapter());
 } catch (Throwable e2) {
 try {
-setLoggerAdapter(new JclLoggerAdapter());
+setLoggerAdapter(new Log4j2LoggerAdapter());
 } catch (Throwable e3) {
-setLoggerAdapter(new JdkLoggerAdapter());
+try {
+setLoggerAdapter(new JclLoggerAdapter());
+} catch (Throwable e4) {
+setLoggerAdapter(new JdkLoggerAdapter());
+}
 }
 }
 }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/logger/log4j2/Log4j2Logger.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/logger/log4j2/Log4j2Logger.java
new file mode 100644
index 000..ed40b65
--- /dev/null
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/logger/log4j2/Log4j2Logger.java
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.common.logger.log4j2;
+
+import org.apache.dubbo.common.logger.Logger;
+
+public class Log4j2Logger implements Logger {
+
+private final org.apa

[incubator-dubbo] branch master updated: replace the method httpclient which is annotated with “@Deprecated” (#2103)

2018-08-17 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 64f4adb  replace the method httpclient which is annotated with 
“@Deprecated” (#2103)
64f4adb is described below

commit 64f4adb5e6a71fd8d7cc9276ae6cf6963014b69a
Author: Mccrea 
AuthorDate: Fri Aug 17 15:47:07 2018 +0800

replace the method httpclient which is annotated with “@Deprecated” (#2103)
---
 .../dubbo/rpc/protocol/hessian/HessianProtocol.java   |  4 +++-
 .../rpc/protocol/hessian/HttpClientConnectionFactory.java | 15 ++-
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java
 
b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java
index ebe1cbd..8a7e0e9 100644
--- 
a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java
+++ 
b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java
@@ -109,7 +109,9 @@ public class HessianProtocol extends AbstractProxyProtocol {
 hessianProxyFactory.setOverloadEnabled(isOverloadEnabled);
 String client = url.getParameter(Constants.CLIENT_KEY, 
Constants.DEFAULT_HTTP_CLIENT);
 if ("httpclient".equals(client)) {
-hessianProxyFactory.setConnectionFactory(new 
HttpClientConnectionFactory());
+HessianConnectionFactory factory = new 
HttpClientConnectionFactory();
+factory.setHessianProxyFactory(hessianProxyFactory);
+hessianProxyFactory.setConnectionFactory(factory);
 } else if (client != null && client.length() > 0 && 
!Constants.DEFAULT_HTTP_CLIENT.equals(client)) {
 throw new IllegalStateException("Unsupported http protocol 
client=\"" + client + "\"!");
 } else {
diff --git 
a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java
 
b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java
index 24becb4..36b1e2b 100644
--- 
a/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java
+++ 
b/dubbo-rpc/dubbo-rpc-hessian/src/main/java/org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java
@@ -18,11 +18,14 @@ package org.apache.dubbo.rpc.protocol.hessian;
 
 import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.rpc.RpcContext;
+
 import com.caucho.hessian.client.HessianConnection;
 import com.caucho.hessian.client.HessianConnectionFactory;
 import com.caucho.hessian.client.HessianProxyFactory;
 import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
 import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.params.HttpConnectionParams;
 
 import java.io.IOException;
@@ -33,16 +36,19 @@ import java.net.URL;
  */
 public class HttpClientConnectionFactory implements HessianConnectionFactory {
 
-private final HttpClient httpClient = new DefaultHttpClient();
+private HttpClient httpClient;
 
 @Override
 public void setHessianProxyFactory(HessianProxyFactory factory) {
-HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 
(int) factory.getConnectTimeout());
-HttpConnectionParams.setSoTimeout(httpClient.getParams(), (int) 
factory.getReadTimeout());
+RequestConfig requestConfig = RequestConfig.custom()
+.setConnectionRequestTimeout((int) factory.getConnectTimeout())
+.setSocketTimeout((int) factory.getReadTimeout())
+.build();
+httpClient = 
HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
 }
 
 @Override
-public HessianConnection open(URL url) throws IOException {
+public HessianConnection open(URL url) {
 HttpClientConnection httpClientConnection = new 
HttpClientConnection(httpClient, url);
 RpcContext context = RpcContext.getContext();
 for (String key : context.getAttachments().keySet()) {
@@ -50,5 +56,4 @@ public class HttpClientConnectionFactory implements 
HessianConnectionFactory {
 }
 return httpClientConnection;
 }
-
 }



[incubator-dubbo] branch master updated: #2188 ConsistentHashLoadBalance selectForKey can optimization (#2190)

2018-08-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 6ebc183  #2188 ConsistentHashLoadBalance selectForKey can optimization 
(#2190)
6ebc183 is described below

commit 6ebc183173eef83d77208ae8a7f1cda2ccf3b977
Author: huangyunbin <395018...@qq.com>
AuthorDate: Mon Aug 6 15:41:14 2018 +0800

#2188 ConsistentHashLoadBalance selectForKey can optimization (#2190)
---
 .../apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
index 31749b2..8671cde 100644
--- 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
+++ 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java
@@ -103,7 +103,7 @@ public class ConsistentHashLoadBalance extends 
AbstractLoadBalance {
 }
 
 private Invoker selectForKey(long hash) {
-Map.Entry> entry = virtualInvokers.tailMap(hash, 
true).firstEntry();
+Map.Entry> entry = 
virtualInvokers.ceilingEntry(hash);
 if (entry == null) {
 entry = virtualInvokers.firstEntry();
 }



[incubator-dubbo-website] branch asf-site updated: add blogs (#87)

2018-08-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 26eadb1  add blogs (#87)
26eadb1 is described below

commit 26eadb158488a435e8af9ca2998313a1c0234f03
Author: Jerrick Zhu 
AuthorDate: Fri Aug 10 16:14:53 2018 +0800

add blogs (#87)
---
 blog/zh-cn/dubbo-generic-invoke.md | 172 +
 blog/zh-cn/dubbo-loadbalance.md|   0
 blog/zh-cn/dubbo-new-async.md  |   0
 site_config/blog.js|  23 -
 4 files changed, 194 insertions(+), 1 deletion(-)

diff --git a/blog/zh-cn/dubbo-generic-invoke.md 
b/blog/zh-cn/dubbo-generic-invoke.md
new file mode 100644
index 000..c170c9b
--- /dev/null
+++ b/blog/zh-cn/dubbo-generic-invoke.md
@@ -0,0 +1,172 @@
+# Dubbo的泛化调用
+
+以下几种场景可以考虑使用泛化调用:
+
+- 服务测试平台
+- API 服务网关
+
+泛化调用主要用于消费端没有 API 接口的情况;不需要引入接口 jar 包,而是直接通过 GenericService 
接口来发起服务调用,参数及返回值中的所有 POJO 均用 `Map` 表示。泛化调用对于服务端无需关注,按正常服务进行暴露即可。
+
+下面来看看消费端如何使用泛化调用进行服务调用。
+
+ 通过 Spring XML 配置进行泛化调用
+
+在 Spring 配置申明 `generic="true"`,如:
+
+```xml
+
+```
+
+需要使用的地方,通过强制类型转化为 GenericService 进行调用:
+
+```java
+GenericService userService = (GenericService) context.getBean("userService");
+// primary param and return value
+String name = (String) userService.$invoke("delete", new 
String[]{int.class.getName()}, new Object[]{1});
+System.out.println(name);
+```
+
+其中:
+
+1. GenericService 这个接口只有一个方法,名为 `$invoke`,它接受三个参数,分别为方法名、方法参数类型数组和参数值数组;
+2. 对于方法参数类型数组
+   1. 如果是基本类型,如 int 或 long,可以使用 `int.class.getName()`获取其类型;
+   2. 如果是基本类型数组,如 int[],则可以使用 `int[].class.getName()`;
+   3. 如果是 POJO,则直接使用全类名,如 `com.alibaba.dubbo.samples.generic.api.Params`。
+
+ 通过 API 编程进行泛化调用
+
+```
+ApplicationConfig application = new ApplicationConfig()ApplicationConfig 
application = new ApplicationConfig();
+application.setName("api-generic-consumer");
+
+RegistryConfig registry = new RegistryConfig();
+registry.setAddress("zookeeper://127.0.0.1:2181");
+
+application.setRegistry(registry);
+
+ReferenceConfig reference = new 
ReferenceConfig();
+// 弱类型接口名
+reference.setInterface("com.alibaba.dubbo.samples.generic.api.IUserService");
+// 声明为泛化接口
+reference.setGeneric(true);
+
+reference.setApplication(application);
+
+// 用com.alibaba.dubbo.rpc.service.GenericService可以替代所有接口引用
+GenericService genericService = reference.get();
+
+String name = (String) genericService.$invoke("delete", new 
String[]{int.class.getName()}, new Object[]{1});
+System.out.println(name);
+```
+
+通过 API 的方式,不需要像 XML 的方式需要提前将服务配置好,可以动态构建 ReferenceConfig;相对 XML 来说,API 的方式更常见。
+
+ 参数或返回值是 POJO 的场景
+
+比如方法签名是 `User get(Params params);`其中 User 有 id 和 name 两个属性,Params 有 query 一个属性。
+
+以下是消费端的调用代码:
+
+```java
+String[] parameterTypes = new 
String[]{"com.alibaba.dubbo.samples.generic.api.Params"};
+Map params = new HashMap();
+param.put("class", "com.alibaba.dubbo.samples.generic.api.Params");
+param.put("query", "a=b");
+Object user = userService.$invoke("get", parameterTypes, new Object[]{param});
+System.out.println("sample one result: " + user);
+```
+
+上述代码的输出结果为:
+
+```shell
+sample one result: {name=charles, id=1, 
class=com.alibaba.dubbo.samples.generic.api.User}
+```
+
+这里,Dubbo 框架会自动将 POJO 的返回值转换成 Map。可以看到,返回值 `user` 是一个 HashMap,里面分别存放了 
name、id、class 三个 k/v。
+
+ 泛接口实现
+
+泛接口实现方式主要用于服务端没有 API 接口的情况,参数及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,如实现一个通用的远程服务 
Mock 框架,可通过实现 GenericService 接口处理所有服务请求。
+
+# 服务端实现 GenericService
+
+```java
+public class GenericServiceImpl implements GenericService {
+@Override
+public Object $invoke(String method, String[] parameterTypes, Object[] 
args) throws GenericException {
+if (method.equals("hi")) {
+return "hi, " + args[0];
+} else if (method.equals("hello")) {
+return "hello, " + args[0];
+}
+
+return "welcome";
+}
+}
+```
+
+# 服务端暴露服务
+
+```java
+ApplicationConfig application = new ApplicationConfig();
+application.setName("api-generic-provider");
+
+RegistryConfig registry = new RegistryConfig();
+registry.setAddress("zookeeper://127.0.0.1:2181");
+
+application.setRegistry(registry);
+
+GenericService genericService = new GenericServiceImpl();
+
+ServiceConfig service = new ServiceConfig();
+service.setApplication(application);
+service.setInterface("com.alibaba.dubbo.samples.generic.api.HelloService");
+service.setRef(genericService);
+service.export();
+
+ServiceConfig service2 = new ServiceConfig();
+service2.setApplication(application);
+service2.setInterface("com.alibaba.dubbo.samples.generic.api.HiService");
+service2.setRef(genericServi

[incubator-dubbo-website] branch asf-site updated: build

2018-08-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 40bcee1  build
40bcee1 is described below

commit 40bcee17793df20281bcb9b6edcbf1ed626f54f2
Author: zhuyong 
AuthorDate: Fri Aug 10 16:33:30 2018 +0800

build
---
 blog/zh-cn/dubbo-loadbalance.md| 265 ++
 blog/zh-cn/dubbo-new-async.md  | 556 +
 build/0d69326d69fd47b9d99a.js  |   6 -
 ...8f548578cb3c9f5b.js => 5dfcc3831ea1057a5367.js} |   2 +-
 build/fca877d6ab8a5dbba7ca.js  |   6 +
 build/page.js  |   2 +-
 md_json/blog.json  |   4 +-
 site_config/blog.js|   2 +-
 8 files changed, 832 insertions(+), 11 deletions(-)

diff --git a/blog/zh-cn/dubbo-loadbalance.md b/blog/zh-cn/dubbo-loadbalance.md
index e69de29..65aa757 100644
--- a/blog/zh-cn/dubbo-loadbalance.md
+++ b/blog/zh-cn/dubbo-loadbalance.md
@@ -0,0 +1,265 @@
+# Dubbo的负载均衡
+
+# 背景
+
+Dubbo是一个分布式服务框架,能避免单点故障和支持服务的横向扩容。一个服务通常会部署多个实例。如何从多个服务提供者组成的集群中挑选出一个进行调用,就涉及到一个负载均衡的策略。
+
+# 几个概念
+
+在讨论负载均衡之前,我想先解释一下这3个概念。
+
+1. 负载均衡
+2. 集群容错
+3. 服务路由
+
+这3个概念容易混淆。他们都描述了怎么从多个Provider中选择一个来进行调用。那他们到底有什么区别呢?下面我来举一个简单的例子,把这几个概念阐述清楚吧。
+
+有一个Dubbo的用户服务,在北京部署了10个,在上海部署了20个。一个杭州的服务消费方发起了一次调用,然后发生了以下的事情:
+
+1. 根据配置的路由规则,如果杭州发起的调用,会路由到比较近的上海的20个Provider。
+2. 根据配置的随机负载均衡策略。在20个Provider中随机选择了一个来调用,假设随机到了第7个Provider。
+3. 结果调用第7个Provider失败了。
+4. 根据配置的Failover集群容错模式,重试其他服务器。
+5. 重试了第13个Provider,调用成功。
+
+上面的第1,2,4步骤就分别对应了路由,负载均衡和集群容错。 
Dubbo中,先通过路由,从多个Provider中按照路由规则,选出一个子集。再根据负载均衡从子集中选出一个Provider进行本次调用。如果调用失败了,根据集群容错策略,进行重试或定时重发或快速失败等。
 可以看到Dubbo中的路由,负载均衡和集群容错发生在一次RPC调用的不同阶段。最先是路由,然后是负载均衡,最后是集群容错。 
本文档只讨论负载均衡,路由和集群容错在其他的文档中进行说明。
+
+# Dubbo内置负载均衡策略
+
+Dubbo内置了4种负载均衡策略:
+
+1. RandomLoadBalance:随机负载均衡。随机的选择一个。是Dubbo的**默认**负载均衡策略。
+2. RoundRobinLoadBalance:轮询负载均衡。轮询选择一个。
+3. 
LeastActiveLoadBalance:最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
+4. ConsistentHashLoadBalance:一致性哈希负载均衡。相同参数的请求总是落在同一台机器上。
+
+### 1.随机负载均衡
+
+顾名思义,随机负载均衡策略就是从多个Provider中随机选择一个。但是Dubbo中的随机负载均衡有一个权重的概念,即按照权重设置随机概率。比如说,有10个Provider,并不是说,每个Provider的概率都是一样的,而是要结合这10个provider的权重来分配概率。
+
+Dubbo中,可以对Provider设置权重。比如机器性能好的,可以设置大一点的权重,性能差的,可以设置小一点的权重。权重会对负载均衡产生影响。可以在Dubbo
 Admin中对provider进行权重的设置。
+
+**基于权重的负载均衡算法**
+
+随机策略会先判断所有的invoker的权重是不是一样的,如果都是一样的,那么处理就比较简单了。使用random.nexInt(length)就可以随机生成一个invoker的序号,根据序号选择对应的invoker。如果没有在Dubbo
 Admin中对服务提供者设置权重,那么所有的invoker的权重就是一样的,默认是100。 如果权重不一样,那就需要结合权重来设置随机概率了。算法大概如下: 
假如有4个invoker
+
+| invoker | weight |
+| --- | -- |
+| A   | 10 |
+| B   | 20 |
+| C   | 20 |
+| D   | 30 |
+
+A,B,C和D总的权重是10 + 20 + 20 + 30 = 80。将80个数分布在如下的图中:
+
+```
++---+
+|  ||| 
 |
++---+
+1  10   30   50
 80
+
+|-A|-B--|--C-|---D--|
+
+
+-15
+
+---37
+
+---54
+```
+
+上面的图中一共有4块区域,长度分别是A,B,C和D的权重。使用random.nextInt(10 + 20 + 20 + 
30),从80个数中随机选择一个。然后再判断该数分布在哪个区域。比如,如果随机到37,37是分布在C区域的,那么就选择inboker 
C。15是在B区域,54是在D区域。
+
+**随机负载均衡源码**
+
+下面是随机负载均衡的源码,为了方便阅读和理解,我把无关部分都去掉了。
+
+```
+public class RandomLoadBalance extends AbstractLoadBalance {
+
+private final Random random = new Random();
+
+protected  Invoker doSelect(List> invokers, URL url, 
Invocation invocation) {
+int length = invokers.size();  // invoker总数
+int totalWeight = 0;   // 所有invoker的权重的和
+
+// 判断是不是所有的invoker的权重都是一样的
+// 如果权重都一样,就简单了。直接用Random生成索引就可以了。
+boolean sameWeight = true; 
+for (int i = 0; i < length; i++) {
+int weight = getWeight(invokers.get(i), invocation);
+totalWeight += weight; // Sum
+if (sameWeight && i > 0 && weight != getWeight(invokers.get(i - 
1), invocation)) {
+sameWeight = false;
+}
+}
+
+if (totalWeight > 0 && !sameWeight) {
+// 如果不是所有的invoker权重都相同,那么基于权重来随机选择。权重越大的,被选中的概率越大
+int offset = random.nextInt(totalWeight);
+for (int i = 0; i < length; i++) {
+offset -= getWeight(invokers.get(i), invocation);
+if (offset < 0) {
+return invokers.get(i);
+}
+}
+}
+//

[incubator-dubbo-website] branch asf-site updated: add blog

2018-08-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 7e0e10f  add blog
7e0e10f is described below

commit 7e0e10fffb435624bead7df865c8ff5e1eb28483
Author: zhuyong 
AuthorDate: Fri Aug 10 16:39:53 2018 +0800

add blog
---
 blog/zh-cn/dubbo-integrate-with-hystrix.md | 201 +
 ...c3831ea1057a5367.js => 4828dc59b19c927e111e.js} |   4 +-
 build/654055e491fb5dea7da2.js  |   6 +
 build/fca877d6ab8a5dbba7ca.js  |   6 -
 build/page.js  |   2 +-
 md_json/blog.json  |   4 +
 site_config/blog.js|   7 +
 7 files changed, 221 insertions(+), 9 deletions(-)

diff --git a/blog/zh-cn/dubbo-integrate-with-hystrix.md 
b/blog/zh-cn/dubbo-integrate-with-hystrix.md
new file mode 100644
index 000..34d9a2b
--- /dev/null
+++ b/blog/zh-cn/dubbo-integrate-with-hystrix.md
@@ -0,0 +1,201 @@
+# Spring应用快速集成Dubbo + Hystrix
+
+## 背景
+
+Hystrix 
旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能。
+
+Dubbo是Alibaba开源的,目前国内最流行的java rpc框架。
+
+本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用。
+
+- <https://github.com/Netflix/Hystrix>
+- <https://github.com/apache/incubator-dubbo>
+
+## Spring Boot应用
+
+Demo地址: 
<https://github.com/dubbo/dubbo-samples/tree/master/dubbo-samples-spring-boot-hystrix>
+
+### 生成dubbo集成spring boot的应用
+
+对于不熟悉dubbo 集成spring boot应用的同学,可以在这里直接生成dubbo + spring boot的工程: 
<http://start.dubbo.io/>
+
+### 配置spring-cloud-starter-netflix-hystrix
+
+spring boot官方提供了对hystrix的集成,直接在pom.xml里加入依赖:
+
+```
+
+org.springframework.cloud
+spring-cloud-starter-netflix-hystrix
+1.4.4.RELEASE
+
+```
+
+然后在Application类上增加`@EnableHystrix`来启用hystrix starter:
+
+```
+@SpringBootApplication
+@EnableHystrix
+public class ProviderApplication {
+```
+
+### 配置Provider端
+
+在Dubbo的Provider上增加`@HystrixCommand`配置,这样子调用就会经过Hystrix代理。
+
+```
+@Service(version = "1.0.0")
+public class HelloServiceImpl implements HelloService {
+@HystrixCommand(commandProperties = {
+@HystrixProperty(name = 
"circuitBreaker.requestVolumeThreshold", value = "10"),
+@HystrixProperty(name = 
"execution.isolation.thread.timeoutInMilliseconds", value = "2000") })
+@Override
+public String sayHello(String name) {
+// System.out.println("async provider received: " + name);
+// return "annotation: hello, " + name;
+throw new RuntimeException("Exception to show hystrix enabled.");
+}
+}
+```
+
+### 配置Consumer端
+
+对于Consumer端,则可以增加一层method调用,并在method上配置`@HystrixCommand`。当调用出错时,会走到`fallbackMethod
 = "reliable"`的调用里。
+
+```
+@Reference(version = "1.0.0")
+private HelloService demoService;
+
+@HystrixCommand(fallbackMethod = "reliable")
+public String doSayHello(String name) {
+return demoService.sayHello(name);
+}
+public String reliable(String name) {
+return "hystrix fallback value";
+}
+```
+
+通过上面的配置,很简单地就完成了Spring Boot里Dubbo + Hystrix的集成。
+
+## 传统Spring Annotation应用
+
+Demo地址: 
<https://github.com/dubbo/dubbo-samples/tree/master/dubbo-samples-spring-hystrix>
+
+传统spring annotation应用的配置其实也很简单,和spring boot应用不同的是:
+
+1. 显式配置Spring AOP支持:`@EnableAspectJAutoProxy`
+2. 显式通过`@Configuration`配置`HystrixCommandAspect` Bean。
+
+```
+@Configuration
+@EnableDubbo(scanBasePackages = 
"com.alibaba.dubbo.samples.annotation.action")
+@PropertySource("classpath:/spring/dubbo-consumer.properties")
+@ComponentScan(value = {"com.alibaba.dubbo.samples.annotation.action"})
+@EnableAspectJAutoProxy
+static public class ConsumerConfiguration {
+
+@Bean
+public HystrixCommandAspect hystrixCommandAspect() {
+return new HystrixCommandAspect();
+}
+}
+```
+
+## Hystrix集成Spring AOP原理
+
+在上面的例子里可以看到,Hystrix对Spring的集成是通过Spring AOP来实现的。下面简单分析下实现。
+
+```
+@Aspect
+public class HystrixCommandAspect {
+
@Pointcut("@annotation(com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand)")
+public void hystrixCommandAnnotationPointcut() {
+}
+
@Pointcut("@annotation(com.netflix.hystrix.contrib.javanica.annotation.HystrixCollapser)")
+public void hystrixCollapserAnnotationPointcut() {
+}
+
+@Around("hystrixCommandAnnotationPointcut() || 
hystrixCollapserAnnotationPointcut()")
+public Object methodsAnnotatedWithHystrixCommand(final ProceedingJoinPoint 
joinPoint) throws Throwable {
+Method method = g

[incubator-dubbo-website] branch asf-site updated: build

2018-08-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 9d6de5e  build
9d6de5e is described below

commit 9d6de5e08f17f3200c70b2f694c1eb5b208b2e53
Author: zhuyong 
AuthorDate: Fri Aug 10 16:17:52 2018 +0800

build
---
 build/0d69326d69fd47b9d99a.js |  6 ++
 build/197de76506a1ddd84a4b.js |  6 --
 build/364a8f548578cb3c9f5b.js |  6 ++
 build/74188657de05e5b92cf4.js |  6 --
 build/7533f0a0e44a4367de8b.js |  6 ++
 build/87c67c0d7caf73d7e493.js |  6 --
 build/8b66bddd9274404f5cad.js |  6 --
 build/c3e013b93dbf5fac1c23.js |  6 ++
 build/c5ce7257df274bc595ec.js |  6 --
 build/e52128c6c5682a86685a.js |  6 ++
 build/page.js |  2 +-
 md_json/blog.json | 14 +-
 12 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/build/0d69326d69fd47b9d99a.js b/build/0d69326d69fd47b9d99a.js
new file mode 100644
index 000..30ab02d
--- /dev/null
+++ b/build/0d69326d69fd47b9d99a.js
@@ -0,0 +1,6 @@
+webpackJsonp([1],[function(s,n,e){"use strict";function a(s){return 
s&__esModule?s:{default:s}}function t(s,n){if(!(s instanceof n))throw new 
TypeError("Cannot call a class as a function")}function o(s,n){if(!s)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!n||"object"!=typeof n&&"function"!=typeof n?s:n}function 
l(s,n){if("function"!=typeof n&!==n)throw new TypeError("Super expression 
must either be null or a function, not "+ [...]
+  Copyright (c) 2017 Jed Watson.
+  Licensed under the MIT License (MIT), see
+  http://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function e(){for(var 
s=[],n=0;nhttp://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function e(){for(var 
s=[],n=0;nhttp://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function a(){for(var 
s=[],n=0;nhttp://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function a(){for(var 
s=[],n=0;nhttp://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function n(){for(var 
e=[],t=0;t理解Apache发布的内容和流程\n总的来说,Source 
Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。\n请参考以下链接,找到更多关于ASF的发布指南:\n\nhttp://www.apache.org/dev/release-publishing\;>Apache Release 
Guide\nhttp://www.apache.org/dev/release.html\;>Apache 
Release Policy\nhttp://www.apache.org/dev/publishing-maven-artifacts.html\;>Maven 
Release Info\n\n本地构建环 [...]
+  "__html": "理解Apache发布的内容和流程\n总的来说,Source 
Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。\n请参考以下链接,找到更多关于ASF的发布指南:\n\nhttp://www.apache.org/dev/release-publishing\;>Apache Release 
Guide\nhttp://www.apache.org/dev/release.html\;>Apache 
Release Policy\nhttp://www.apache.org/dev/publishing-maven-artifacts.html\;>Maven 
Release Info\n\n本地构建环 [...]
 },
 {
   "filename": "dubbo-101.md",
@@ -17,14 +17,26 @@
   "__html": "Dubbo基本用法-Dubbo 
Provider配置\nDubbo基本用法\n本章节主要讲述如何配置dubbo,按照配置方式上分,可以分为:XML配置,properties方式配置,注解方式配置,API调用方式配置。\n按照功能角度进行划分,可以分为Dubbo
 Provider和Dubbo Consumer。接下来章节中,分别对dubbo provider和Dubbo 
consumer进行讲解。\nDubbo Provider配置\nProvider 
配置详解\n配置Dubbo 
Provider有4种方式:XML配置,properties方式配置,API调用方式配置,注解方式配置。\nXML配置\n最简单的配置的样例:\n?xml
 version=1.0 encoding=UTF-8?\nbeans xmlns [...]
 },
 {
+  "filename": "dubbo-generic-invoke.md",
+  "__html": 
"Dubbo的泛化调用\n以下几种场景可以考虑使用泛化调用:\n\n服务测试平台\nAPI 
服务网关\n\n泛化调用主要用于消费端没有 API 接口的情况;不需要引入接口 jar 包,而是直接通过 
GenericService 接口来发起服务调用,参数及返回值中的所有 POJO 均用 Map 
表示。泛化调用对于服务端无需关注,按正常服务进行暴露即可。\n下面来看看消费端如何使用泛化调用进行服务调用。\n通过 
Spring XML 配置进行泛化调用\n在 Spring 配置申明 
generic=true,如:\ndubbo:referenceDubbo 关于同步/异步调用的几种方式\n我们知道,Dubbo 
缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制;基于这种机制,Dubbo 
实现了以下几种调用方式:\n\n同步调用\n异步调用\n参数回调\n事件通知\n\n同步调用\n同步调用是一种阻塞式的调用方式,即
 Consumer 端代码一直阻塞等待,直到 Provider 
端返回为止;\n通常,一个典型的同步调用过程如下:\n\nConsumer 业务线程调用远程接口,向 Provider 
发送请求,同时当前线程处于阻塞状态;\nProvider 接到 Consumer 
的请求后,开始处理请求,将结果返回给 Consumer;\nConsumer 
收到结果

[incubator-dubbo] branch 2.6.x updated: Fixes #2136, replace hard coded hessian-lite version with mavne property. (#2223)

2018-08-09 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new bbfcb41  Fixes #2136, replace hard coded hessian-lite version with 
mavne property. (#2223)
bbfcb41 is described below

commit bbfcb4124fad0380f9de5a2a7cba65958c2a90b0
Author: ken.lj 
AuthorDate: Fri Aug 10 10:59:44 2018 +0800

Fixes #2136, replace hard coded hessian-lite version with mavne property. 
(#2223)
---
 all/pom.xml | 2 --
 bom/pom.xml | 5 -
 distribution/pom.xml| 1 -
 dubbo-common/pom.xml| 1 -
 dubbo-serialization/dubbo-serialization-jdk/pom.xml | 1 -
 dubbo-test/pom.xml  | 1 -
 6 files changed, 11 deletions(-)

diff --git a/all/pom.xml b/all/pom.xml
index afc1ed6..f277d3b 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -29,7 +29,6 @@
 The all in one project of dubbo
 
 false
-3.2.3
 
 
 
@@ -329,7 +328,6 @@
 
 com.alibaba
 hessian-lite
-${hessian_lite_version}
 compile
 true
 
diff --git a/bom/pom.xml b/bom/pom.xml
index 66c14d4..3e34aba 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -281,11 +281,6 @@
 dubbo-serialization-kryo
 ${project.version}
 
-
-com.alibaba
-hessian-lite
-${hessian_lite_version}
-
 
 
 
diff --git a/distribution/pom.xml b/distribution/pom.xml
index b8590e7..7b33386 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -243,7 +243,6 @@
 
 com.alibaba
 hessian-lite
-3.2.3
 
 
 
diff --git a/dubbo-common/pom.xml b/dubbo-common/pom.xml
index a14dc32..2f3867b 100644
--- a/dubbo-common/pom.xml
+++ b/dubbo-common/pom.xml
@@ -50,7 +50,6 @@
 
 com.alibaba
 hessian-lite
-3.2.3
 
 
 com.alibaba
diff --git a/dubbo-serialization/dubbo-serialization-jdk/pom.xml 
b/dubbo-serialization/dubbo-serialization-jdk/pom.xml
index 2b0fd3a..527dbcf 100644
--- a/dubbo-serialization/dubbo-serialization-jdk/pom.xml
+++ b/dubbo-serialization/dubbo-serialization-jdk/pom.xml
@@ -38,7 +38,6 @@ limitations under the License.
 
 com.alibaba
 hessian-lite
-3.2.3
 
 
 
\ No newline at end of file
diff --git a/dubbo-test/pom.xml b/dubbo-test/pom.xml
index 7505067..7d044d7 100644
--- a/dubbo-test/pom.xml
+++ b/dubbo-test/pom.xml
@@ -179,7 +179,6 @@
 
 com.alibaba
 hessian-lite
-3.2.3
 
 
 com.alibaba



[incubator-dubbo] branch 2.6.3-release updated: complete LICENSE for test xml, fix checkstyle problem

2018-08-24 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.3-release
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.3-release by this push:
 new b6b5415  complete LICENSE for test xml, fix checkstyle problem
b6b5415 is described below

commit b6b5415068a4d97e5f2d1ce0845232aae9acefba
Author: zhuyong 
AuthorDate: Fri Aug 24 15:23:52 2018 +0800

complete LICENSE for test xml, fix checkstyle problem
---
 all/pom.xml| 29 --
 .../alibaba/dubbo/rpc/cluster/RouterFactory.java   |  5 ++--
 .../dubbo/common/concurrent/ListenableFuture.java  |  3 +--
 .../src/test/resources/applicationContext.xml  | 16 
 .../test/resources/webapps/test/WEB-INF/web.xml| 16 
 .../test/resources/webapps/test2/WEB-INF/web.xml   | 16 
 .../test/resources/webapps/test3/WEB-INF/web.xml   | 16 
 .../java/com/alibaba/dubbo/registry/Registry.java  |  3 +--
 .../com/alibaba/dubbo/remoting/Transporter.java|  6 ++---
 .../com/alibaba/dubbo/rpc/InvokerListener.java |  3 +--
 pom.xml| 15 +++
 11 files changed, 74 insertions(+), 54 deletions(-)

diff --git a/all/pom.xml b/all/pom.xml
index 68e28d8..e39b85c 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -548,35 +548,6 @@
 
 
 
-
-maven-javadoc-plugin
-${maven_javadoc_version}
-
-
-attach-javadoc
-
-jar
-
-
-none
-
-
-
-
-true
-
-
com.alibaba:dubbo-*
-
com.alibaba:hessian-*
-
-public
-UTF-8
-UTF-8
-UTF-8
-
-http://docs.oracle.com/javase/7/docs/api
-
-
-
 
 
 
\ No newline at end of file
diff --git 
a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/RouterFactory.java 
b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/RouterFactory.java
index 35e57a7..468cdd6 100644
--- 
a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/RouterFactory.java
+++ 
b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/RouterFactory.java
@@ -19,15 +19,14 @@ package com.alibaba.dubbo.rpc.cluster;
 import com.alibaba.dubbo.common.URL;
 import com.alibaba.dubbo.common.extension.Adaptive;
 import com.alibaba.dubbo.common.extension.SPI;
-import com.alibaba.dubbo.rpc.Invocation;
 
 /**
  * RouterFactory. (SPI, Singleton, ThreadSafe)
  * 
  * http://en.wikipedia.org/wiki/Routing;>Routing
  *
- * @see com.alibaba.dubbo.rpc.cluster.Cluster#join(Directory)
- * @see com.alibaba.dubbo.rpc.cluster.Directory#list(Invocation)
+ * @see Cluster#join(Directory)
+ * @see Directory#list(com.alibaba.dubbo.rpc.Invocation)
  */
 @SPI
 public interface RouterFactory {
diff --git 
a/dubbo-common/src/main/java/com/alibaba/dubbo/common/concurrent/ListenableFuture.java
 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/concurrent/ListenableFuture.java
index c79454e..91f2f46 100644
--- 
a/dubbo-common/src/main/java/com/alibaba/dubbo/common/concurrent/ListenableFuture.java
+++ 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/concurrent/ListenableFuture.java
@@ -17,7 +17,6 @@
 package com.alibaba.dubbo.common.concurrent;
 
 import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
 import java.util.concurrent.RejectedExecutionException;
@@ -66,7 +65,7 @@ import java.util.concurrent.RejectedExecutionException;
  * 
  * If they are returned from an {@code ExecutorService}, convert that
  * service to a {@link ListeningExecutorService}, usually by calling {@link
- * MoreExecutors#listeningDecorator(ExecutorService)
+ * MoreExecutors#listeningDecorator(java.util.concurrent.ExecutorService)
  * MoreExecutors.listeningDecorator}. (Custom executors may find it more
  * convenient to use {@link ListenableFutureTask} directly.)
  * If they are manually filled in by a call to {@link FutureTask#set} or a
diff --git 
a/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml 
b/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml
index 977a8a4..5c9f657 100644
--- a/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml
+++ b/dubbo-config/dubbo-config-spring/src/test/resources/applicationContext.xml
@@ -1,4 +1

[incubator-dubbo] branch master updated: New ascii logo. (#2395)

2018-08-28 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new ff373a7  New ascii logo. (#2395)
ff373a7 is described below

commit ff373a7db7645ea1b55bf84150d0326d1e999b78
Author: 时无两丶 <442367...@qq.com>
AuthorDate: Tue Aug 28 18:06:49 2018 +0800

New ascii logo. (#2395)
---
 .../main/java/org/apache/dubbo/qos/server/DubboLogo.java | 16 +---
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/DubboLogo.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/DubboLogo.java
index e25613a..b504cbf 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/DubboLogo.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/DubboLogo.java
@@ -17,15 +17,9 @@
 package org.apache.dubbo.qos.server;
 
 public class DubboLogo {
-public static String dubbo =
-"  ▄  ████▄  ▀█▄  ▀█▄   
▄██▄  \n" +
-"  ███   ▀███ ██████   ██████   ██████ ███
███ \n" +
-"  ██████ ██████   ██████   ██████ ███
███ \n" +
-"  ██████ ██████  ▄███▄▄▄██▀   ▄███▄▄▄██▀  ███
███ \n" +
-"  ██████ ██████ ▀▀███▀▀▀██▄  ▀▀███▀▀▀██▄  ███
███ \n" +
-"  ██████ ██████   █████▄   █████▄ ███
███ \n" +
-"  ███   ▄███ ██████   ██████   ██████ ███
███ \n" +
-"  ▀  ▀  ▄█▀  ▄█▀   
▀██▀  \n" +
-"  
   \n" +
-"\n";
+public static final String dubbo =
+"   ___   __  __ ___   ___    \n" +
+"  / _ \\ / / / // _ ) / _ ) / __ \\  \n" +
+" / // // /_/ // _  |/ _  |/ /_/ /\n" +
+"// \\///// \\/   \n";
 }



[incubator-dubbo] branch master updated (5f8adf0 -> 86d7347)

2018-08-28 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


from 5f8adf0  Enable checkstyle and rat plugin for travis CI (#2393)
 add 86d7347  typo: prvoiderService->providerService; 
connectSkiped->connectSkipped (#2396)

No new revisions were added by this update.

Summary of changes:
 .../java/org/apache/dubbo/registry/redis/RedisRegistry.java  | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)



[incubator-dubbo] branch 2.6.x updated: New ascii logo for 2.6.x (#2402)

2018-08-29 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new ba51bab  New ascii logo for 2.6.x (#2402)
ba51bab is described below

commit ba51bab3955e7fc872042bac800771ffdf05c7f6
Author: 时无两丶 <442367...@qq.com>
AuthorDate: Wed Aug 29 18:13:03 2018 +0800

New ascii logo for 2.6.x (#2402)
---
 .../java/com/alibaba/dubbo/qos/server/DubboLogo.java | 16 +---
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/server/DubboLogo.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/server/DubboLogo.java
index c5bec0c..6dabdcf 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/server/DubboLogo.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/server/DubboLogo.java
@@ -17,15 +17,9 @@
 package com.alibaba.dubbo.qos.server;
 
 public class DubboLogo {
-public static String dubbo =
-"  ▄  ████▄  ▀█▄  ▀█▄   
▄██▄  \n" +
-"  ███   ▀███ ██████   ██████   ██████ ███
███ \n" +
-"  ██████ ██████   ██████   ██████ ███
███ \n" +
-"  ██████ ██████  ▄███▄▄▄██▀   ▄███▄▄▄██▀  ███
███ \n" +
-"  ██████ ██████ ▀▀███▀▀▀██▄  ▀▀███▀▀▀██▄  ███
███ \n" +
-"  ██████ ██████   █████▄   █████▄ ███
███ \n" +
-"  ███   ▄███ ██████   ██████   ██████ ███
███ \n" +
-"  ▀  ▀  ▄█▀  ▄█▀   
▀██▀  \n" +
-"  
   \n" +
-"\n";
+public static final String dubbo =
+"   ___   __  __ ___   ___    \n" +
+"  / _ \\ / / / // _ ) / _ ) / __ \\  \n" +
+" / // // /_/ // _  |/ _  |/ /_/ /\n" +
+"// \\///// \\/   \n";
 }



[incubator-dubbo] branch master updated (64f4adb -> e723ad3)

2018-08-20 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


from 64f4adb  replace the method httpclient which is annotated with 
“@Deprecated” (#2103)
 add e723ad3  fix #2134 upgrade httpcore to 4.4.6 (#2319)

No new revisions were added by this update.

Summary of changes:
 dubbo-dependencies-bom/pom.xml | 6 ++
 1 file changed, 6 insertions(+)



[incubator-dubbo] branch master updated: Update several documentation links (#2354)

2018-08-27 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new b4db875  Update several documentation links (#2354)
b4db875 is described below

commit b4db875f30a624e9f8a376189075c1ee59693837
Author: Yuhao Bi 
AuthorDate: Tue Aug 28 09:52:57 2018 +0800

Update several documentation links (#2354)
---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index ffb16af..e5d2f68 100644
--- a/README.md
+++ b/README.md
@@ -109,9 +109,9 @@ public class Consumer {
 
 ### Next steps
 
-* [Dubbo user 
manual](http://dubbo.apache.org/#/docs/user/preface/background.md) - How to use 
Dubbo and all its features.
-* [Dubbo developer guide](http://dubbo.apache.org/#/docs/dev/build.md) - How 
to invovle in Dubbo development.
-* [Dubbo admin 
manual](http://dubbo.apache.org/#/docs/admin/install/provider-demo.md) - How to 
admin and manage Dubbo services.
+* [Dubbo user 
manual](http://dubbo.apache.org/en-us/docs/user/preface/background.html) - How 
to use Dubbo and all its features.
+* [Dubbo developer guide](http://dubbo.apache.org/en-us/docs/dev/build.html) - 
How to invovle in Dubbo development.
+* [Dubbo admin 
manual](http://dubbo.apache.org/en-us/docs/admin/install/provider-demo.html) - 
How to admin and manage Dubbo services.
 
 ## Contact
 



[incubator-dubbo] branch master updated: Enable checkstyle and rat plugin for travis CI (#2393)

2018-08-28 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 5f8adf0  Enable checkstyle and rat plugin for travis CI (#2393)
5f8adf0 is described below

commit 5f8adf0f20c2e1823be64eb0bbe42d4ca38401d7
Author: Jerrick Zhu 
AuthorDate: Tue Aug 28 15:38:00 2018 +0800

Enable checkstyle and rat plugin for travis CI (#2393)
---
 .travis.yml   |  2 +-
 .../java/org/apache/dubbo/rpc/cluster/RouterFactory.java  |  3 +--
 .../main/java/org/apache/dubbo/remoting/Transporter.java  |  6 ++
 .../main/java/org/apache/dubbo/rpc/InvokerListener.java   |  3 +--
 .../rpc/protocol/hessian/HttpClientConnectionFactory.java |  3 ---
 pom.xml   | 15 +++
 6 files changed, 8 insertions(+), 24 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index fe60e30..26e0783 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,7 @@ cache:
 install: true
 
 script:
-  - travis_wait 30 ./mvnw clean package -DskipTests=false 
-Dcheckstyle.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
+  - travis_wait 30 ./mvnw clean install -DskipTests=false 
-Dcheckstyle.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
 
 after_success:
   - bash <(curl -s https://codecov.io/bash)
diff --git 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterFactory.java 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterFactory.java
index 679b9fe..c81ba54 100644
--- 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterFactory.java
+++ 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterFactory.java
@@ -19,7 +19,6 @@ package org.apache.dubbo.rpc.cluster;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.Adaptive;
 import org.apache.dubbo.common.extension.SPI;
-import org.apache.dubbo.rpc.Invocation;
 
 /**
  * RouterFactory. (SPI, Singleton, ThreadSafe)
@@ -27,7 +26,7 @@ import org.apache.dubbo.rpc.Invocation;
  * http://en.wikipedia.org/wiki/Routing;>Routing
  *
  * @see org.apache.dubbo.rpc.cluster.Cluster#join(Directory)
- * @see org.apache.dubbo.rpc.cluster.Directory#list(Invocation)
+ * @see 
org.apache.dubbo.rpc.cluster.Directory#list(org.apache.dubbo.rpc.Invocation)
  */
 @SPI
 public interface RouterFactory {
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/Transporter.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/Transporter.java
index b53c75f..33ac2be 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/Transporter.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/Transporter.java
@@ -21,8 +21,6 @@ import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.Adaptive;
 import org.apache.dubbo.common.extension.SPI;
 
-import javax.sound.midi.Receiver;
-
 /**
  * Transporter. (SPI, Singleton, ThreadSafe)
  * 
@@ -41,7 +39,7 @@ public interface Transporter {
  * @param handler
  * @return server
  * @throws RemotingException
- * @see org.apache.dubbo.remoting.Transporters#bind(URL, Receiver, 
ChannelHandler)
+ * @see org.apache.dubbo.remoting.Transporters#bind(URL, ChannelHandler...)
  */
 @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})
 Server bind(URL url, ChannelHandler handler) throws RemotingException;
@@ -53,7 +51,7 @@ public interface Transporter {
  * @param handler
  * @return client
  * @throws RemotingException
- * @see org.apache.dubbo.remoting.Transporters#connect(URL, Receiver, 
ChannelListener)
+ * @see org.apache.dubbo.remoting.Transporters#connect(URL, 
ChannelHandler...)
  */
 @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})
 Client connect(URL url, ChannelHandler handler) throws RemotingException;
diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/InvokerListener.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/InvokerListener.java
index 6842dd8..5516b07 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/InvokerListener.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/InvokerListener.java
@@ -16,7 +16,6 @@
  */
 package org.apache.dubbo.rpc;
 
-import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.SPI;
 
 /**
@@ -30,7 +29,7 @@ public interface InvokerListener {
  *
  * @param invoker
  * @throws RpcException
- * @see org.apache.dubbo.rpc.Protocol#refer(Class, URL)
+ * @see org.apache.dubbo.rpc.Protocol#refer(Class, 
org.apache.dubbo.common.URL)
  */
 void referred(Invoker invoker) throws RpcException;
 
diff --git 
a/dubbo-rpc/dubbo-rpc-hessian/src/mai

[incubator-dubbo-website] branch asf-site updated: new post dubbo-contribue-to-opensource (#122)

2018-08-28 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new e48880e  new post dubbo-contribue-to-opensource (#122)
e48880e is described below

commit e48880ef34567559664dc25b7bfb8afbc88da3db
Author: xujingfeng <250577...@qq.com>
AuthorDate: Tue Aug 28 15:47:33 2018 +0800

new post dubbo-contribue-to-opensource (#122)
---
 blog/zh-cn/dubbo-contribue-to-opensource.md | 190 
 site_config/blog.js |   7 +
 2 files changed, 197 insertions(+)

diff --git a/blog/zh-cn/dubbo-contribue-to-opensource.md 
b/blog/zh-cn/dubbo-contribue-to-opensource.md
new file mode 100644
index 000..384062d
--- /dev/null
+++ b/blog/zh-cn/dubbo-contribue-to-opensource.md
@@ -0,0 +1,190 @@
+以Dubbo为例,聊聊如何向开源项目做贡献
+---
+
+Github 上有众多优秀的开源项目,大多数 IT 从业者将其当做了予取予求的工具库,遇到什么需求,先去 Github 
搜一把,但有没有想过有一天自己也可以给开源事业做一些贡献呢?本文将会以 incubator-dubbo 项目为例,向你阐释,给开源项目做贡献并不是一件难事。
+
+### 1 为何要给开源贡献力量
+
+为开源项目做贡献得到的收益是多方面的,为了让你有足够的信心加入到开源项目中,我在文章最开始列举出它的诸多好处。
+
+ 1.1 巩固技能
+
+无论你是提交代码,撰写文档,提交 
Issue,组织活动,当你切身参与到一个开源项目中,相关的技能都会得到历练,并且在开源项目中找到自己的位置。一方面,日常工作中我们中的大多数人接触到的是业务场景,并没有太多机会接触到基础架构组件,开源项目为我们提供了一个平台,在这里,你可以尽情挑选自己熟悉的项目为它添砖加瓦(以
 Dubbo 为例,并不是所有 IT 
公司都有能力自研服务治理框架);另一方面,你所提交的代码,会有管理员协助审核,他们会给出专业的建议,更好的代码规范以及更优的编程思路最终都会变成你的经验。
+
+ 1.2 结交朋友
+
+开源社区为你提供了一个平台,在这里,你可以认识很多纯粹的技术爱好者,开源贡献者是最符合 geek 定义的那群人,你所接触到的往往是某个领域最厉害的那批人。
+
+ 1.3 建立口碑
+
+这是一个很好的展示个人实力的地方,俗话说:talk is cheap,show me the code. 作为技术人员,没有什么比一个漂亮的 Github 
主页更有说服力的了。如果你能够为开源项目做出可观的贡献,你也将收获到业界的知名度,此时开源项目的成就和你是密不可分的。
+
+ 1.4 传承开源精神
+
+只有源源不断的贡献者给开源项目添砖加瓦,才可以为 Github 一类的开源社区形成良好的开源风气。否则,只有输出没有输入,开源会失去活力。
+
+ 1.5 养成习惯
+
+相信我,一旦养成了每天提交代码的习惯,就像你不想中断打卡一样,你绝不想中断 commit。不止有英语打卡,健身打卡,还有开源打卡!
+
+![开源程序员的日常](http://ov0zuistv.bkt.clouddn.com/image-20180827141007663.png)
+
+### 2 贡献代码时的一些疑难杂症
+
+如果你是一名开源界的新手,可能会对贡献的流程心生畏惧。比如:我该怎么修改代码并提交?我的代码要是存在bug怎么办?我的代码别人会不会很 
low?我该如何寻找合适的开源项目?开源社区那么多的工具和词汇都是什么意思?
+
+文章的第二部分将从一个**小白**的角度,介绍一下开源中的一些常见问题。
+
+ 2.1 git 常规操作
+
+一般而言,我们选择使用 git 来作为版本管理的工具,你不一定要非常熟练的使用它,在我看来掌握 clone,add,commit,pull,push 
即可,遇到复杂的场景,你还有谷歌。
+
+**fork 与 clone**
+
+![fork 与 clone](http://ov0zuistv.bkt.clouddn.com/image-20180827143942178.png)
+
+如果你只是想下载源码,查看他的源码实现,使用 Clone or download 按钮即可。
+
+如果你想要给开源项目做改动,并且最终请求合并,让开源项目存在你贡献的代码,就应该使用 fork。
+
+fork 将会复制一份当前主分支的代码进入到你的仓库中,之后你所有的修改,应当基于自己的仓库进行,在功能开发/bug 修复之后,可以使用你的仓库向源仓库提交 
pull request。只有源仓库的管理员才有权利合并你的请求。
+
+一些可能对你有帮助的高级指令。
+
+```shell
+# 设置源仓库
+git remote add upstream https://github.com/apache/incubator-dubbo.git
+# 拉取源仓库的更新
+git fetch upstream
+# 将自己仓库的主分支合并源仓库的更新
+git checkout master
+git merge upstream/master
+```
+
+**pull request**
+
+![pull request](http://ov0zuistv.bkt.clouddn.com/image-20180827150703869.png)
+
+pull request 经常被缩写为 PR,指的是一次向源仓库请求合并的行为,如上是我 fork 了 incubator-dubbo 
的仓库之后才存在的操作按钮。
+
+**源仓库视角的 pull request**
+
+![pull request 
management](http://ov0zuistv.bkt.clouddn.com/image-20180827155239155.png)
+
+管理者会对 pull request 涉及的改动进行 review,以确保你的代码是符合规范的,逻辑有没有偏差,以及符合框架的功能需求。
+
+ 2.2 Travis CI
+
+一些自动化的 CI 流程被植入在每一次 pull request 
的构建之中,用于给开源仓库去校验提交者的代码是否符合既定的规范,如:是否有编译问题,单元测试是否通过,覆盖率是否达标,代码风格是否合规等等。
+
+![CI报告](http://ov0zuistv.bkt.clouddn.com/image-20180827160503114.png)
+
+一般情况下,必须通过 CI,你的 pull request 才会被管理 review。
+
+ 2.3 Mailing list
+
+每个开源项目都会有自己的贡献规范,可以参考首页的 Contributing,来获取具体的信息。incubator-dubbo 作为一个孵化中的 apache 
项目,遵守了 apache 的传统,在 
[Contributing](https://github.com/apache/incubator-dubbo/blob/master/CONTRIBUTING.md)
 中描述道:当你有新特性想要贡献给 Dubbo 时,官方推荐使用 Mailing list 的方式描述一遍你想要做的改动。
+
+Mailing list 简单来说,就是一个邮件通知机制,所有的 Dubbo 
开发者都会订阅该邮箱:d...@dubbo.incubator.apache.org。有任何新特性的改动,或者什么建议想要通知其他开发者,都可以通过向该邮箱发送邮件来达到这个目的,相同地,你也会收到其转发的其他开发者的邮件。
+
+或者你是一个 Dubbo 
的使用者,你想要得知开发者的改造方向,也可以订阅,这个[指南](https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide)可以帮助你订阅
 Dubbo 的 Mailing list。
+
+> 作为一个 modern developer,你可能觉得 mailing list 的交流方式存在滞后性,这样的沟通方式不是特别的高效,但它作为 
apache 项目的推荐交流方式存在其特殊的原因,在此不多赘述。总之遵循一个原则:bug fix或者讨论,可以在 github issue 
中进行,影响较大的特性和讨论则推荐在 mailing list 中展开。
+
+### 3 其他贡献形式
+
+不仅仅只有贡献代码,修复 bug 等行为才算作为开源做贡献,以下这些行为也属于主要形式:
+
+ 3.1 撰写文档
+
+ 
[Dubbo文档](http://dubbo.apache.org/zh-cn/)是其开源组成成分的重要一环,其内容源文件位于:https://github.com/apache/incubator-dubbo-website。同样也是一个
 Git 仓库,任何你想要对 dubbo 知识点的补充,都可以在这儿提交 pull request,只需要一些 markdown 的语法知识,和一些可有可无的 
npm 语法即可。如果你觉得贡献代码对于现在的自己仍然有点难度,不妨从贡献文档开始接触开源。
+
+ 3.2 ISSUE
+
+无论是 Github 中的 Issue 还是 mailing list 中的讨论,无论是提出问题,汇报 bug,还是回答问题(bugfix 则不仅仅需要 
Issue 了),协助管理者 review pull request,都是贡献的一种形式,勿以善小而不为。
+
+ 3.3 其他行为
+
+任何你能够想到的,可以帮助开源项目变得更好的的行为,都属于开源贡献。例如,给每个 Issue 打上合适的 tag,关闭重复的 Issue,链接相关联的 
Issue,线下组织沙龙,回答 Stack Overflow 上相关的问题,以及文档中一个错别字的修改等等。
+
+### 4 开源最佳实践
+
+ 4.1 有效沟通
+
+无论你处于什么样的目的:仅仅是一次性的贡献,亦或是永久性的加入社区,都的和他人进行沟通和交往,这是你要在开源圈发展必须修炼的技能。
+
+在你开启一个isse或PR之前,或者是在聊天室问问题之前,请

[incubator-dubbo-website] branch asf-site updated: build site

2018-08-28 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 560b6b2  build site
560b6b2 is described below

commit 560b6b28dc2397e304bf0418cd47ffc45e442701
Author: zhuyong 
AuthorDate: Tue Aug 28 15:49:36 2018 +0800

build site
---
 build/blog.js |   6 +-
 build/blogDetail.js   |   6 +-
 build/community.js|   6 +-
 build/documentation.js|   6 +-
 build/home.js |   6 +-
 en-us/blog/dubbo-k8s.html |  34 ++
 en-us/blog/dubbo-k8s.json |   4 +
 en-us/docs/user/rest.html |  36 ++
 en-us/docs/user/rest.json |   4 +
 zh-cn/blog/dubbo-contribue-to-opensource.html | 157 ++
 zh-cn/blog/dubbo-contribue-to-opensource.json |   4 +
 zh-cn/blog/dubbo-k8s.html | 121 
 zh-cn/blog/dubbo-k8s.json |   4 +
 zh-cn/blog/index.html |   2 +-
 14 files changed, 380 insertions(+), 16 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index 90fa697..0627aab 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -1,6 +1,6 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...]
-  Copyright (c) 2016 Jed Watson.
+!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...]
+  Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
+
+
+
+   
+   
+   
+   
+   
+   dubbo-k8s
+   
+   
+
+
+   中DisclaimerApache Dubbo is an effort undergoing incubation at The Apache 
Software Foundation (ASF), sponsored by the Incubator. Incubatio [...]
+   https://f.alicdn.com/react/15.4.1/react-with-addons.min.js&quot</a>;>
+   https://f.alicdn.com/react/15.4.1/react-dom.min.js&quot</a>;>
+   
+   window.rootPath = '';
+  
+  
+  
+   https://www.googletagmanager.com/gtag/js?id=UA-112489517-1&quot</a>;>
+   
+   window.dataLayer = window.dataLayer || [];
+   function gtag(){dataLayer.push(arguments);}
+   gtag('js', new Date());
+
+   gtag('config', 'UA-112489517-1');
+   
+
+
\ No newline at end of file
diff --git a/en-us/blog/dubbo-k8s.json b/en-us/blog/dubbo-k8s.json
new file mode 100644
index 000..9bfa5ef
--- /dev/null
+++ b/en-us/blog/dubbo-k8s.json
@@ -0,0 +1,4 @@
+{
+  "filename": "dubbo-k8s.md",
+  "__html": "Part 1\nPart 2\n"
+}
\ No newline at end of file
diff --git a/en-us/docs/user/rest.html b/en-us/docs/user/rest.html
new file mode 100644
index 000..678eaca
--- /dev/null
+++ b/en-us/docs/user/rest.html
@@ -0,0 +1,36 @@
+
+
+
+
+   
+   
+   
+   
+   
+   rest
+   
+   
+
+
+   中DisclaimerApache Dubbo is an effort undergoing incubation at The 
Apache Software Foundation (ASF), sponsored by the Incuba [...]
+   https://f.alicdn.com/react/15.4.1/react-with-addons.min.js&quot</a>;>
+   https://f.alicdn.com/react/15.4.1/react-dom.min.js&quot</a>;>
+   
+   window.rootPath = '';
+  
+  
+  
+   https://www.googletagmanager.c

[incubator-dubbo] branch master updated: fix travis cov (#2337)

2018-08-23 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new f720ccb  fix travis cov (#2337)
f720ccb is described below

commit f720ccb965d490e6cc328af8d3e9820cb6eaf8f7
Author: Jerrick Zhu 
AuthorDate: Thu Aug 23 16:37:08 2018 +0800

fix travis cov (#2337)
---
 .travis.yml | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 3e5e249..fe60e30 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,11 +10,10 @@ cache:
   directories:
 - '$HOME/.m2/repository'
 
-install:
-  - ./mvnw clean install -DskipTests=true -Dcheckstyle.skip=true 
-Drat.skip=true -Dmaven.javadoc.skip=true
+install: true
 
 script:
-  - travis_wait 30 ./mvnw test
+  - travis_wait 30 ./mvnw clean package -DskipTests=false 
-Dcheckstyle.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
 
 after_success:
   - bash <(curl -s https://codecov.io/bash)



[incubator-dubbo.wiki] branch master updated: Created Website Guide (markdown)

2018-08-23 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.wiki.git


The following commit(s) were added to refs/heads/master by this push:
 new 199c2a3  Created Website Guide (markdown)
199c2a3 is described below

commit 199c2a39ee1027d7dcf39a3c65943776cd2c1997
Author: Jerrick Zhu 
AuthorDate: Thu Aug 23 20:48:57 2018 +0800

Created Website Guide (markdown)
---
 Website-Guide.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Website-Guide.md b/Website-Guide.md
new file mode 100644
index 000..7bbef05
--- /dev/null
+++ b/Website-Guide.md
@@ -0,0 +1,2 @@
+1. The website repository of Apache Dubbo(incubating) is 
https://github.com/apache/incubator-dubbo-website
+2. After building the website, it'll be published to dubbo.apache.org 
automatically, you can also trigger it manually via 
https://selfserve.apache.org (need to login with Apache account) 



[incubator-dubbo.wiki] branch master updated: Updated _Sidebar (markdown)

2018-08-23 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.wiki.git


The following commit(s) were added to refs/heads/master by this push:
 new ea23eed  Updated _Sidebar (markdown)
ea23eed is described below

commit ea23eed4bd7ce0026e443f6774e4a97e20587501
Author: Jerrick Zhu 
AuthorDate: Thu Aug 23 18:22:22 2018 +0800

Updated _Sidebar (markdown)
---
 _Sidebar.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/_Sidebar.md b/_Sidebar.md
index f35d39e..ee8605d 100644
--- a/_Sidebar.md
+++ b/_Sidebar.md
@@ -10,5 +10,6 @@
   * Committer Guide
 * [[New Committer Guide|New-Committer-Guide]]
 * [[Label an Issue|Label-an-Issue]]
+* [[Website Guide|website-guide]]
   * Release Notes
   * Community



[incubator-dubbo-website] branch asf-site updated: add English blog title

2018-09-04 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new ccdd1e8  add English blog title
ccdd1e8 is described below

commit ccdd1e8f8ecee3fd9c9ff08bd3444a6513d99096
Author: zhuyong 
AuthorDate: Wed Sep 5 08:57:35 2018 +0800

add English blog title
---
 en-us/blog/dubbo-101.html  |  6 +--
 en-us/blog/dubbo-101.json  |  5 ++-
 en-us/blog/dubbo-annotation.html   |  6 +--
 en-us/blog/dubbo-annotation.json   |  5 ++-
 ...o-basic-usage-dubbo-provider-configuration.html |  8 ++--
 ...o-basic-usage-dubbo-provider-configuration.json |  5 ++-
 en-us/blog/dubbo-generic-invoke.html   |  6 +--
 en-us/blog/dubbo-generic-invoke.json   |  5 ++-
 en-us/blog/dubbo-invoke.html   |  6 +--
 en-us/blog/dubbo-invoke.json   |  5 ++-
 en-us/blog/dubbo-k8s.html  | 38 +-
 en-us/blog/dubbo-k8s.json  |  5 ++-
 en-us/blog/dubbo-loadbalance.html  |  6 +--
 en-us/blog/dubbo-loadbalance.json  |  5 ++-
 en-us/blog/dubbo-meetup-beijing-may-12th-2018.html |  6 +--
 en-us/blog/dubbo-meetup-beijing-may-12th-2018.json |  5 ++-
 .../blog/dubbo-meetup-shanghai-jun-23rd-2018.html  |  6 +--
 .../blog/dubbo-meetup-shanghai-jun-23rd-2018.json  |  5 ++-
 en-us/blog/dubbo-new-async.html|  8 ++--
 en-us/blog/dubbo-new-async.json|  5 ++-
 en-us/blog/dubbo-zk.html   |  6 +--
 en-us/blog/dubbo-zk.json   |  5 ++-
 en-us/blog/dubbo2-js.html  |  8 ++--
 en-us/blog/dubbo2-js.json  |  5 ++-
 en-us/blog/introduction-to-dubbo-qos.html  |  6 +--
 en-us/blog/introduction-to-dubbo-qos.json  |  5 ++-
 en-us/blog/introduction-to-dubbo-spi-2.html|  6 +--
 en-us/blog/introduction-to-dubbo-spi-2.json|  5 ++-
 en-us/blog/introduction-to-dubbo-spi.html  |  8 ++--
 en-us/blog/introduction-to-dubbo-spi.json  |  5 ++-
 en-us/blog/pinpoint.html   |  6 +--
 en-us/blog/pinpoint.json   |  5 ++-
 en-us/blog/prepare-an-apache-release.html  |  4 +-
 en-us/blog/prepare-an-apache-release.json  |  4 +-
 en-us/blog/sentinel-introduction-for-dubbo.html|  6 +--
 en-us/blog/sentinel-introduction-for-dubbo.json|  5 ++-
 .../spring-boot-dubbo-start-stop-analysis.html |  6 +--
 .../spring-boot-dubbo-start-stop-analysis.json |  5 ++-
 en-us/blog/tracing-with-skywalking.html|  6 +--
 en-us/blog/tracing-with-skywalking.json|  5 ++-
 zh-cn/blog/dubbo-k8s.html  | 46 +++---
 zh-cn/blog/dubbo-k8s.json  |  4 +-
 .../blog/dubbo-meetup-shanghai-jun-23rd-2018.html  |  6 +--
 .../blog/dubbo-meetup-shanghai-jun-23rd-2018.json  |  5 ++-
 zh-cn/blog/dubbo-meetup-shenzhen.html  |  6 +--
 zh-cn/blog/dubbo-meetup-shenzhen.json  |  5 ++-
 zh-cn/blog/introduction-to-dubbo-spi-2.html|  2 +-
 zh-cn/blog/introduction-to-dubbo-spi-2.json|  3 +-
 .../spring-boot-dubbo-start-stop-analysis.html |  2 +-
 .../spring-boot-dubbo-start-stop-analysis.json |  3 +-
 zh-cn/blog/tracing-with-skywalking.html|  2 +-
 zh-cn/blog/tracing-with-skywalking.json|  3 +-
 zh-cn/docs/user/demos/explicit-target.html |  4 +-
 zh-cn/docs/user/demos/explicit-target.json |  2 +-
 zh-cn/docs/user/maturity.html  |  4 +-
 zh-cn/docs/user/maturity.json  |  2 +-
 56 files changed, 212 insertions(+), 144 deletions(-)

diff --git a/en-us/blog/dubbo-101.html b/en-us/blog/dubbo-101.html
index 54cffa6..d8d167e 100644
--- a/en-us/blog/dubbo-101.html
+++ b/en-us/blog/dubbo-101.html
@@ -4,10 +4,10 @@
 


-   
-   
+   
+   

-   dubbo-101
+   Your First Dubbo Demo


 
diff --git a/en-us/blog/dubbo-101.json b/en-us/blog/dubbo-101.json
index 11284ad..99bbcf8 100644
--- a/en-us/blog/dubbo-101.json
+++ b/en-us/blog/dubbo-101.json
@@ -1,4 +1,7 @@
 {
   "filename": "dubbo-101.md",
-  "__html": "Your First Dubbo Demo\nJava RMI 
Introduction\nJava RMI (Remote Method Invocation) is a mechanism that 
allows users to access or invocate an object and a method running on another 
JVM (Java Virtual Machine). RMI is an implementation of RPC (Remote Procedure 
Call) in java with support of OOP (Object Oriented Paradigms). Instead of 
bothering IDL (Interface Define Language), users can build distributed 
applications by depending on interfaces in an 

[incubator-dubbo-website] branch asf-site updated: add title, keywords, descriptions to English blogs (#132)

2018-09-04 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 9792980  add title, keywords, descriptions to English blogs (#132)
9792980 is described below

commit 979298047a779cc1d3edafd4ecc6029e74999574
Author: Song Kun 
AuthorDate: Wed Sep 5 08:56:33 2018 +0800

add title, keywords, descriptions to English blogs (#132)
---
 blog/en-us/dubbo-101.md|  6 
 blog/en-us/dubbo-annotation.md |  6 
 ...bbo-basic-usage-dubbo-provider-configuration.md |  8 -
 blog/en-us/dubbo-generic-invoke.md |  6 
 blog/en-us/dubbo-invoke.md |  5 +++
 blog/en-us/dubbo-k8s.md| 36 +++-
 blog/en-us/dubbo-loadbalance.md|  8 +++--
 blog/en-us/dubbo-meetup-beijing-may-12th-2018.md   |  6 
 blog/en-us/dubbo-meetup-shanghai-jun-23rd-2018.md  |  6 
 blog/en-us/dubbo-new-async.md  |  9 -
 blog/en-us/dubbo-zk.md |  6 
 blog/en-us/dubbo2-js.md| 10 +-
 blog/en-us/introduction-to-dubbo-qos.md|  6 
 blog/en-us/introduction-to-dubbo-spi-2.md  |  6 
 blog/en-us/introduction-to-dubbo-spi.md|  8 -
 blog/en-us/pinpoint.md |  6 
 blog/en-us/prepare-an-apache-release.md|  5 +++
 blog/en-us/sentinel-introduction-for-dubbo.md  |  6 
 .../en-us/spring-boot-dubbo-start-stop-analysis.md |  6 
 blog/en-us/tracing-with-skywalking.md  | 28 
 blog/zh-cn/dubbo-k8s.md| 38 --
 blog/zh-cn/dubbo-meetup-shanghai-jun-23rd-2018.md  |  6 
 blog/zh-cn/dubbo-meetup-shenzhen.md|  6 
 blog/zh-cn/introduction-to-dubbo-spi-2.md  |  1 +
 .../zh-cn/spring-boot-dubbo-start-stop-analysis.md |  1 +
 blog/zh-cn/tracing-with-skywalking.md  |  1 +
 docs/zh-cn/user/demos/explicit-target.md   |  2 +-
 docs/zh-cn/user/maturity.md|  2 +-
 28 files changed, 198 insertions(+), 42 deletions(-)

diff --git a/blog/en-us/dubbo-101.md b/blog/en-us/dubbo-101.md
index 2a4f2dc..01e6937 100644
--- a/blog/en-us/dubbo-101.md
+++ b/blog/en-us/dubbo-101.md
@@ -1,3 +1,9 @@
+---
+title: Your First Dubbo Demo
+keywords: Dubbo, RPC, RMI
+description: Modern distributed frameworks is similiar to RMI in terms of 
concepts. They both use Java interface as a service contract, archive service 
registry and discovery by a registry center, and Shield communication details 
by a proxy.
+---
+
 # Your First Dubbo Demo
 
 ## Java RMI Introduction
diff --git a/blog/en-us/dubbo-annotation.md b/blog/en-us/dubbo-annotation.md
index 4ab206e..6e90411 100644
--- a/blog/en-us/dubbo-annotation.md
+++ b/blog/en-us/dubbo-annotation.md
@@ -1,3 +1,9 @@
+---
+title: Use Annotations In Dubbo
+keywords: Dubbo, Annotation, Spring
+description: This article will introduce you how to use annotations instead of 
XML to develop Dubbo applications, such as `@EnableDubbo`, `@Service` and 
`@Reference`.
+---
+
 # Use Annotations In Dubbo
 
 With the widely promotion and implementation of Microservices Architecture, 
the Microservices Architecture represented by Spring Boot and Spring Cloud, in 
Java ecosystem, introduced some brand new programming model, like:
diff --git a/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md 
b/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
index 8f0d26b..f674e08 100644
--- a/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
+++ b/blog/en-us/dubbo-basic-usage-dubbo-provider-configuration.md
@@ -1,4 +1,10 @@
-Dubbo Basic Usage-Dubbo Provider Configuration
+---
+title: Dubbo Basic Usage -- Dubbo Provider Configuration
+keywords: Dubbo, Provider, Configuration
+description: This article will introduce you how to config Dubbo, by XML, 
property files, annotations or Java code.
+---
+
+Dubbo Basic Usage -- Dubbo Provider Configuration
 ---
 
 # Dubbo Basic Usage
diff --git a/blog/en-us/dubbo-generic-invoke.md 
b/blog/en-us/dubbo-generic-invoke.md
index 98f7fbf..5d8f0b1 100644
--- a/blog/en-us/dubbo-generic-invoke.md
+++ b/blog/en-us/dubbo-generic-invoke.md
@@ -1,3 +1,9 @@
+---
+title: Generic invoke of Dubbo
+keywords: Dubbo, Generic invoke
+description: This article introduces you when and how to use generic invoke of 
Dubbo.
+---
+
 # Generic invoke of Dubbo
 
 The generic invoke could be considered to be used in the following cases:
diff --git a/blog/en-us/dubbo-invoke.md b/blog/en-us/dubbo-invoke.md
index ab51e2d..56422dd 100644
--- a/blog/en-us/dubbo-invoke.md
+++ b/blog/en-us/dubbo-invoke.md
@@ -1,3 +1,8 @@
+---
+title: Dubbo: Several ways about

[incubator-dubbo] branch 2.6.x updated: Qos enhancement, take #2153 back to 2.6.x (#2455)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 97d20a3  Qos enhancement, take #2153 back to 2.6.x (#2455)
97d20a3 is described below

commit 97d20a362284623f2220f834c7e6498ffe3c951b
Author: Jerrick Zhu 
AuthorDate: Thu Sep 6 11:45:34 2018 +0800

Qos enhancement, take #2153 back to 2.6.x (#2455)
---
 .../com/alibaba/dubbo/config/ApplicationConfig.java |  3 +++
 .../alibaba/dubbo/qos/protocol/QosProtocolWrapper.java  | 17 +
 .../dubbo/registry/integration/RegistryProtocol.java| 17 -
 3 files changed, 24 insertions(+), 13 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
index 9238a11..523e005 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
@@ -71,10 +71,13 @@ public class ApplicationConfig extends AbstractConfig {
 // directory for saving thread dump
 private String dumpDirectory;
 
+// whether to enable qos or not
 private Boolean qosEnable;
 
+// the qos port to listen
 private Integer qosPort;
 
+// should we accept foreign ip or not?
 private Boolean qosAcceptForeignIp;
 
 // customized parameters
diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/protocol/QosProtocolWrapper.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/protocol/QosProtocolWrapper.java
index 26692cc..73d1f56 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/protocol/QosProtocolWrapper.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/com/alibaba/dubbo/qos/protocol/QosProtocolWrapper.java
@@ -18,6 +18,8 @@ package com.alibaba.dubbo.qos.protocol;
 
 import com.alibaba.dubbo.common.Constants;
 import com.alibaba.dubbo.common.URL;
+import com.alibaba.dubbo.common.logger.Logger;
+import com.alibaba.dubbo.common.logger.LoggerFactory;
 import com.alibaba.dubbo.qos.server.Server;
 import com.alibaba.dubbo.rpc.Exporter;
 import com.alibaba.dubbo.rpc.Invoker;
@@ -29,8 +31,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import static com.alibaba.dubbo.common.Constants.ACCEPT_FOREIGN_IP;
 import static com.alibaba.dubbo.common.Constants.QOS_ENABLE;
 import static com.alibaba.dubbo.common.Constants.QOS_PORT;
+import static com.alibaba.dubbo.qos.common.QosConstants.DEFAULT_PORT;
 
 public class QosProtocolWrapper implements Protocol {
+
+private final Logger logger = 
LoggerFactory.getLogger(QosProtocolWrapper.class);
+
 private static AtomicBoolean hasStarted = new AtomicBoolean(false);
 
 private Protocol protocol;
@@ -76,20 +82,23 @@ public class QosProtocolWrapper implements Protocol {
 }
 
 try {
-boolean qosEnable = 
Boolean.parseBoolean(url.getParameter(QOS_ENABLE,"true"));
+boolean qosEnable = url.getParameter(QOS_ENABLE,true);
 if (!qosEnable) {
+logger.info("qos won't be started because it is disabled. " +
+"Please check dubbo.application.qos.enable is 
configured either in system property, " +
+"dubbo.properties or XML/spring boot configuration.");
 return;
 }
 
-int port = Integer.parseInt(url.getParameter(QOS_PORT,"2"));
-boolean acceptForeignIp = 
Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP,"true"));
+int port = url.getParameter(QOS_PORT, DEFAULT_PORT);
+boolean acceptForeignIp = 
Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP,"false"));
 Server server = com.alibaba.dubbo.qos.server.Server.getInstance();
 server.setPort(port);
 server.setAcceptForeignIp(acceptForeignIp);
 server.start();
 
 } catch (Throwable throwable) {
-//throw new RpcException("fail to start qos server", throwable);
+logger.warn("Fail to start qos server: ", throwable);
 }
 }
 }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
index fd414ed..e1a59b9 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
@@ -135,26 +13

[incubator-dubbo] branch 2.6.x updated: upgrade javadoc to 3.0.1 (#2454)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 7ece161  upgrade javadoc to 3.0.1 (#2454)
7ece161 is described below

commit 7ece1615389174d091b194b46baceb41a7ed4946
Author: Jerrick Zhu 
AuthorDate: Thu Sep 6 11:11:36 2018 +0800

upgrade javadoc to 3.0.1 (#2454)
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 69aa46e..43a160c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -115,7 +115,7 @@
 2.8.2
 3.6.0
 3.0.1
-3.0.0
+3.0.1
 6.1.26
 3.0.0
 0.8.1



[incubator-dubbo] 01/01: fix telnet invoke NPE #2218 (#2273)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch telnet-npe-2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 2ca0af73942d2c9ebcb3ead8eecdc0940bd7bb43
Author: Michael Chow 
AuthorDate: Fri Aug 17 11:12:21 2018 +0800

fix telnet invoke NPE #2218 (#2273)

* fix issue #2218
* add some unit tests
---
 .../protocol/dubbo/telnet/InvokeTelnetHandler.java | 13 
 .../rpc/protocol/dubbo/support/DemoService.java|  2 ++
 .../protocol/dubbo/support/DemoServiceImpl.java|  5 +++
 .../dubbo/telnet/InvokerTelnetHandlerTest.java | 36 ++
 4 files changed, 56 insertions(+)

diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
index 47f11f5..59733dc 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
@@ -60,6 +60,19 @@ public class InvokeTelnetHandler implements TelnetHandler {
 for (int i = 0; i < types.length; i++) {
 Class type = types[i];
 Object arg = args.get(i);
+
+if (arg == null) {
+// if the type is primitive, the method to invoke will cause 
NullPointerException definitely
+// so we can offer a specified error message to the invoker in 
advance and avoid unnecessary invoking
+if (type.isPrimitive()) {
+throw new NullPointerException(String.format(
+"The type of No.%d parameter is primitive(%s), but 
the value passed is null.", i + 1, type.getName()));
+}
+
+// if the type is not primitive, we choose to believe what the 
invoker want is a null value
+continue;
+}
+
 if (ReflectUtils.isPrimitive(arg.getClass())) {
 if (!ReflectUtils.isPrimitive(type)) {
 return false;
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
index 182a1e8..93c48f5 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
@@ -57,4 +57,6 @@ public interface DemoService {
 
 NonSerialized returnNonSerialized();
 
+long add(int a, long b);
+
 }
\ No newline at end of file
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
index 93c9764..50d98e6 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
@@ -103,4 +103,9 @@ public class DemoServiceImpl implements DemoService {
 public NonSerialized returnNonSerialized() {
 return new NonSerialized();
 }
+
+public long add(int a, long b) {
+return a + b;
+}
+
 }
\ No newline at end of file
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
index 04092d0..9dfc20f 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
@@ -33,6 +33,7 @@ import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.BDDMockito.given;
 import static org.mockito.Mockito.mock;
@@ -70,6 +71,41 @@ public class InvokerTelnetHandlerTest {
 
 @SuppressWarnings("unchecked")
 @Test
+public void testInvokeByPassingNullValue() throws RemotingException {
+mockInvoker = mock(Invoker.class);
+given(mockInvoker.getInterface()).willReturn(DemoService.class);
+
given(mockInvoker.getUrl()).willReturn(URL.valueOf("dubbo://127.0.0.1:20883/demo"));
+given(mockInvoker.invoke(any(Invocation.class))).willReturn(new 
RpcResult("ok"))

[incubator-dubbo] branch 2.6.x updated: fix telnet invoke NPE #2218 (#2273) (#2453)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 52e9290  fix telnet invoke NPE #2218 (#2273) (#2453)
52e9290 is described below

commit 52e9290d12162d1d483b21070729e7f2c6a04733
Author: Jerrick Zhu 
AuthorDate: Thu Sep 6 09:57:44 2018 +0800

fix telnet invoke NPE #2218 (#2273) (#2453)
---
 .../protocol/dubbo/telnet/InvokeTelnetHandler.java | 13 
 .../rpc/protocol/dubbo/support/DemoService.java|  2 ++
 .../protocol/dubbo/support/DemoServiceImpl.java|  5 +++
 .../dubbo/telnet/InvokerTelnetHandlerTest.java | 36 ++
 4 files changed, 56 insertions(+)

diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
index 47f11f5..59733dc 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokeTelnetHandler.java
@@ -60,6 +60,19 @@ public class InvokeTelnetHandler implements TelnetHandler {
 for (int i = 0; i < types.length; i++) {
 Class type = types[i];
 Object arg = args.get(i);
+
+if (arg == null) {
+// if the type is primitive, the method to invoke will cause 
NullPointerException definitely
+// so we can offer a specified error message to the invoker in 
advance and avoid unnecessary invoking
+if (type.isPrimitive()) {
+throw new NullPointerException(String.format(
+"The type of No.%d parameter is primitive(%s), but 
the value passed is null.", i + 1, type.getName()));
+}
+
+// if the type is not primitive, we choose to believe what the 
invoker want is a null value
+continue;
+}
+
 if (ReflectUtils.isPrimitive(arg.getClass())) {
 if (!ReflectUtils.isPrimitive(type)) {
 return false;
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
index 182a1e8..93c48f5 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoService.java
@@ -57,4 +57,6 @@ public interface DemoService {
 
 NonSerialized returnNonSerialized();
 
+long add(int a, long b);
+
 }
\ No newline at end of file
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
index 93c9764..50d98e6 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/support/DemoServiceImpl.java
@@ -103,4 +103,9 @@ public class DemoServiceImpl implements DemoService {
 public NonSerialized returnNonSerialized() {
 return new NonSerialized();
 }
+
+public long add(int a, long b) {
+return a + b;
+}
+
 }
\ No newline at end of file
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
index 04092d0..9dfc20f 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/com/alibaba/dubbo/rpc/protocol/dubbo/telnet/InvokerTelnetHandlerTest.java
@@ -33,6 +33,7 @@ import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.BDDMockito.given;
 import static org.mockito.Mockito.mock;
@@ -70,6 +71,41 @@ public class InvokerTelnetHandlerTest {
 
 @SuppressWarnings("unchecked")
 @Test
+public void testInvokeByPassingNullValue() throws RemotingException {
+mockInvoker = mock(Invoker.class);
+given(mockInvoker.getInterface()).willReturn(DemoService.class);
+
given(mockInvoker.getUrl()).willReturn(URL.valueOf("dubbo://127.0.0.1:20883/demo"));
+   

[incubator-dubbo] branch telnet-npe-2.6.x created (now 2ca0af7)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch telnet-npe-2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


  at 2ca0af7  fix telnet invoke NPE #2218 (#2273)

This branch includes the following new commits:

 new 2ca0af7  fix telnet invoke NPE #2218 (#2273)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[incubator-dubbo] branch telnet-npe-2.6.x deleted (was 2ca0af7)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch telnet-npe-2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


 was 2ca0af7  fix telnet invoke NPE #2218 (#2273)

This change permanently discards the following revisions:

 discard 2ca0af7  fix telnet invoke NPE #2218 (#2273)



[incubator-dubbo] branch 2.6.x updated: Direct return when the server goes down unnormally. (#2451)

2018-09-05 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 8ae95c9  Direct return when the server goes down unnormally. (#2451)
8ae95c9 is described below

commit 8ae95c954228f1637d21b037df218a3ed94231c7
Author: 时无两丶 <442367...@qq.com>
AuthorDate: Thu Sep 6 09:26:12 2018 +0800

Direct return when the server goes down unnormally. (#2451)
---
 .../alibaba/dubbo/remoting/exchange/Response.java  |  5 +
 .../remoting/exchange/support/DefaultFuture.java   | 23 ++
 .../support/header/HeaderExchangeHandler.java  |  1 +
 3 files changed, 29 insertions(+)

diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Response.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Response.java
index 0422a06..d01d20d 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Response.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Response.java
@@ -41,6 +41,11 @@ public class Response {
 public static final byte SERVER_TIMEOUT = 31;
 
 /**
+ * channel inactive, directly return the unfinished requests.
+ */
+public static final byte CHANNEL_INACTIVE = 35;
+
+/**
  * request format error.
  */
 public static final byte BAD_REQUEST = 40;
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
index eccc86d..a72fadc 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
@@ -90,6 +90,29 @@ public class DefaultFuture implements ResponseFuture {
 }
 }
 
+/**
+ * close a channel when a channel is inactive
+ * directly return the unfinished requests.
+ *
+ * @param channel channel to close
+ */
+public static void closeChannel(Channel channel) {
+for (long id : CHANNELS.keySet()) {
+if (channel.equals(CHANNELS.get(id))) {
+DefaultFuture future = getFuture(id);
+if (future != null && !future.isDone()) {
+Response disconnectResponse = new Response(future.getId());
+disconnectResponse.setStatus(Response.CHANNEL_INACTIVE);
+disconnectResponse.setErrorMessage("Channel " +
+channel +
+" is inactive. Directly return the unFinished 
request : " +
+future.getRequest());
+DefaultFuture.received(channel, disconnectResponse);
+}
+}
+}
+}
+
 public static void received(Channel channel, Response response) {
 try {
 DefaultFuture future = FUTURES.remove(response.getId());
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
index 3c37817..f44318f 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
@@ -123,6 +123,7 @@ public class HeaderExchangeHandler implements 
ChannelHandlerDelegate {
 try {
 handler.disconnected(exchangeChannel);
 } finally {
+DefaultFuture.closeChannel(channel);
 HeaderExchangeChannel.removeChannelIfDisconnected(channel);
 }
 }



[incubator-dubbo-website] branch asf-site updated: markdown layout error (#137)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 98d472e  markdown layout error (#137)
98d472e is described below

commit 98d472ef12eac2ccac7f470d92140983e81f606f
Author: ZhangXudong 
AuthorDate: Thu Sep 6 15:03:02 2018 +0800

markdown layout error (#137)
---
 docs/zh-cn/user/demos/service-container.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/zh-cn/user/demos/service-container.md 
b/docs/zh-cn/user/demos/service-container.md
index 75d9755..12c3efa 100644
--- a/docs/zh-cn/user/demos/service-container.md
+++ b/docs/zh-cn/user/demos/service-container.md
@@ -14,8 +14,8 @@
 * 配置 spring 配置加载位置:
 
 ```properties
-dubbo.spring.config=classpath*:META-INF/spring/*.xml
-```
+dubbo.spring.config=classpath*:META-INF/spring/*.xml
+```
 
 ### Jetty Container
 



[incubator-dubbo] branch master updated: fix typo (#2458)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new ec66820  fix typo (#2458)
ec66820 is described below

commit ec668207f36f522dbd2d9ad5d05930b516245d98
Author: Song Kun 
AuthorDate: Fri Sep 7 08:46:04 2018 +0800

fix typo (#2458)
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 463a111..4700ea5 100644
--- a/README.md
+++ b/README.md
@@ -194,7 +194,7 @@ Please report security vulnerability to 
secur...@dubbo.incubator.apache.org (pri
 
 * [Node.js](https://github.com/dubbo/dubbo2.js)
 * [Python](https://github.com/dubbo/dubbo-client-py)
-* [Php](https://github.com/dubbo/dubbo-php-framework)
+* [PHP](https://github.com/dubbo/dubbo-php-framework)
 
 ## License
 



[incubator-dubbo-website] branch asf-site updated: fix typo (#147)

2018-09-09 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 0fd63b0  fix typo (#147)
0fd63b0 is described below

commit 0fd63b083caed42fe96beb2d20d448448722a2b6
Author: Song Kun 
AuthorDate: Mon Sep 10 09:00:08 2018 +0800

fix typo (#147)
---
 site_config/community.jsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/site_config/community.jsx b/site_config/community.jsx
index 3b2b4ad..d39dfcc 100644
--- a/site_config/community.jsx
+++ b/site_config/community.jsx
@@ -611,7 +611,7 @@ export default {
 },
 {
   title: 'Cluster',
-  content: Dubbo支持一下容错机制:,
+  content: Dubbo支持以下容错机制:,
   tags: [
 {
   text: 'Fail over',



[incubator-dubbo] branch master updated: [Dubbo-2413] Fix StreamUtils resource leak (#2414)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new d173e84  [Dubbo-2413] Fix StreamUtils resource leak (#2414)
d173e84 is described below

commit d173e841c41704d13e7357eb5704764353384963
Author: Yuhao Bi 
AuthorDate: Thu Sep 6 19:22:51 2018 +0800

[Dubbo-2413] Fix StreamUtils resource leak (#2414)
---
 .../org/apache/dubbo/common/io/StreamUtils.java|  6 +++
 .../apache/dubbo/common/io/StreamUtilsTest.java| 47 --
 2 files changed, 40 insertions(+), 13 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java
index 9b52286..5798f02 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java
@@ -98,6 +98,7 @@ public class StreamUtils {
 
 @Override
 public void close() throws IOException {
+is.close();
 }
 };
 }
@@ -199,6 +200,11 @@ public class StreamUtils {
 
 return available;
 }
+
+@Override
+public void close() throws IOException {
+is.close();
+}
 };
 }
 
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java 
b/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java
index b4dc1b6..2f8595f 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java
@@ -79,6 +79,8 @@ public class StreamUtilsTest {
 is.reset();
 assertEquals(-1, is.read());
 assertEquals(-1, is.read());
+
+is.close();
 }
 
 @Test
@@ -118,35 +120,54 @@ public class StreamUtilsTest {
 @Test(expected = IOException.class)
 public void testMarkInputSupport() throws IOException {
 InputStream is = 
StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
-is = StreamUtils.markSupportedInputStream(new PushbackInputStream(is), 
1);
-
-is.mark(1);
-int read = is.read();
-assertThat(read, is((int) '0'));
-
-is.skip(1);
-is.read();
+try {
+is = StreamUtils.markSupportedInputStream(new 
PushbackInputStream(is), 1);
+
+is.mark(1);
+int read = is.read();
+assertThat(read, is((int) '0'));
+
+is.skip(1);
+is.read();
+} finally {
+if (is != null) {
+is.close();
+}
+}
 }
 
 @Test
-public void testSkipForOriginMarkSupportInput() {
+public void testSkipForOriginMarkSupportInput() throws IOException {
 InputStream is = 
StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
 InputStream newIs = StreamUtils.markSupportedInputStream(is, 1);
 
 assertThat(newIs, is(is));
+is.close();
 }
 
 @Test(expected = NullPointerException.class)
 public void testReadEmptyByteArray() throws IOException {
 InputStream is = 
StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
-is = StreamUtils.limitedInputStream(is, 2);
-is.read(null, 0, 1);
+try {
+is = StreamUtils.limitedInputStream(is, 2);
+is.read(null, 0, 1);
+} finally {
+if (is != null) {
+is.close();
+}
+}
 }
 
 @Test(expected = IndexOutOfBoundsException.class)
 public void testReadWithWrongOffset() throws IOException {
 InputStream is = 
StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
-is = StreamUtils.limitedInputStream(is, 2);
-is.read(new byte[1], -1, 1);
+try {
+is = StreamUtils.limitedInputStream(is, 2);
+is.read(new byte[1], -1, 1);
+} finally {
+if (is != null) {
+is.close();
+}
+}
 }
 }
\ No newline at end of file



[incubator-dubbo-docs] branch master updated (4687ecf -> b463da6)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-docs.git.


from 4687ecf  Merge pull request #40 from nzomkxia/link-fix
 add 4b69bb2  add guide to website
 new b463da6  Merge pull request #45 from apache/diecui1202-patch-1

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.md | 2 ++
 1 file changed, 2 insertions(+)



[incubator-dubbo-docs] branch diecui1202-patch-1 deleted (was 4b69bb2)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch diecui1202-patch-1
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-docs.git.


 was 4b69bb2  add guide to website

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-dubbo-website] branch asf-site updated: fix markdown layout error (#140)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 41d9685  fix markdown layout error (#140)
41d9685 is described below

commit 41d96850a0c73180f15eec77e10b3630d097dcba
Author: ZhangXudong 
AuthorDate: Thu Sep 6 17:37:12 2018 +0800

fix markdown layout error (#140)
---
 docs/zh-cn/user/recommend.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/zh-cn/user/recommend.md b/docs/zh-cn/user/recommend.md
index 6dcc6e0..902e244 100644
--- a/docs/zh-cn/user/recommend.md
+++ b/docs/zh-cn/user/recommend.md
@@ -145,8 +145,8 @@ Dubbo 中所有的配置项都可以配置在 Spring 配置文件中,并且可
 4. 服务提供者协议 `dubbo.service.protocol`、服务的监听端口 `dubbo.service.server.port`
 
 ```xml
-
-```
+
+```
 
 5. 服务线程池大小 `dubbo.service.max.thread.threads.size`
 



[incubator-dubbo-website] branch asf-site updated: build site

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new ce4a2dd  build site
ce4a2dd is described below

commit ce4a2dd1fa40a545f03044ff12f13198652bc9fc
Author: zhuyong 
AuthorDate: Thu Sep 6 17:38:57 2018 +0800

build site
---
 build/blog.js|  6 +--
 build/blogDetail.js  |  6 +--
 build/community.js   |  6 +--
 build/documentation.js   |  6 +--
 build/home.js|  6 +--
 en-us/docs/user/demos/service-container.html | 55 +-
 en-us/docs/user/demos/service-container.json |  2 +-
 zh-cn/docs/user/demos/service-container.html | 55 +-
 zh-cn/docs/user/demos/service-container.json |  2 +-
 zh-cn/docs/user/recommend.html   | 58 +++-
 zh-cn/docs/user/recommend.json   |  2 +-
 11 files changed, 106 insertions(+), 98 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index 9fa054f..bd221da 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -1,6 +1,6 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...]
-  Copyright (c) 2016 Jed Watson.
+!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...]
+  Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
 
 
-   中中http://dubbo.apache.org/books/dubbo-dev-book-en/impls/container.html;>Container
 Extension Points. Configure it with the -D parameter in the java command 
or dubbo.properties.
@@ -21,34 +21,35 @@
 
 
 Automatically load all spring configurations in the 
META-INF/spring.
-
+dubbo.spring.config=classpath*:META-INF/spring/*.xml
+
 
 
-dubbo.spring.config=classpath*:META-INF/spring/*.xml
-
-### Jetty Container
-
-* Start an embedded Jetty for reporting status.
-* Configure:
-* `dubbo.jetty.port=8080`: configure jetty start up port
-* `dubbo.jetty.directory=/foo/bar`: static file that can be visited by 
jetty directly.
-* `dubbo.jetty.page=log,status,system`: configure the displayed page, 
loading all pages by default
-
-
-### Log4j Container
-
-* Automatic configuration log4j configuration. At the start of the 
multi-process, log files automatically by process sub-directory.
-* Configure:
-* `dubbo.log4j.file=/foo/bar.log`: configure log file path
-* `dubbo.log4j.level=WARN`: configure log level
-* `dubbo.log4j.subdirectory=20880`: configure log sub directory for 
multi-process startup and avoiding conflict
-
-## Container startup
-
-load spring by default.
-
-```sh
-java com.alibaba.dubbo.container.Main
+Jetty Container
+
+Start an embedded Jetty for reporting status.
+Configure:
+
+dubbo.jetty.port=8080: configure jetty start up port
+dubbo.jetty.directory=/foo/bar: static file that can be 
visited by jetty directly.
+dubbo.jetty.page=log,status,system: configure the displayed 
page, loading all pages by default
+
+
+
+Log4j Container
+
+Automatic configuration log4j configuration. At the start of the 
multi-process, log files automatically by process sub-directory.
+Configure:
+
+dubbo.log4j.file=/foo/bar.log: configure log file path
+dubbo.log4j.level=WARN: configure log level
+dubbo.log4j.subdirectory=20880: configure log sub directory 
for multi-process startup and avoiding conflict
+
+
+
+Co

[incubator-dubbo-website] branch asf-site updated: Dubbo blog: Meet Dubbo (#141)

2018-09-06 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 9c9c016  Dubbo blog: Meet Dubbo (#141)
9c9c016 is described below

commit 9c9c01697136a7476f6893308980a2c840075f5d
Author: 时无两丶 <442367...@qq.com>
AuthorDate: Thu Sep 6 20:47:37 2018 +0800

Dubbo blog: Meet Dubbo (#141)
---
 blog/zh-cn/meet-dubbo.md | 64 
 1 file changed, 64 insertions(+)

diff --git a/blog/zh-cn/meet-dubbo.md b/blog/zh-cn/meet-dubbo.md
new file mode 100644
index 000..1cb6d87
--- /dev/null
+++ b/blog/zh-cn/meet-dubbo.md
@@ -0,0 +1,64 @@
+---
+title: 遇见Dubbo
+keywords: Dubbo, Committer
+description: 本文记录了一个小白成长为Dubbo committer的过程。
+---
+
+# 遇见Dubbo
+
+我是一个有Dubbo情节的程序员。
+
+Dubbo以不同方式,陪伴了我时间不长的整个代码生涯。不久前,通过社区投票,我被选举为`Committer`。当时我在朋友圈发了一句话,也是贯穿我从开始使用Dubbo、研究Dubbo、贡献Dubbo到最后成为`Committer`的全过程,一直为我提供内心无与伦比愉悦的源泉:成长这种事,能看见脚印特别幸福。
+
+今天来个回忆杀,把我和Dubbo的那些事拿出来说说。
+
+## 小白
+
+我知道Dubbo,是在我大三翘课出去实习的时候,那个时候是无知的,我眼里最牛的人就是能熟练使用各种配置,精通SSH框架的人。就是在那种情况下,我外出实习,遇到了一群影响我至今的人。当时也是机缘巧合,我们进行了两个非常小的模块的服务化改造。那时的团队除了我们老大,全是一群新兵蛋子,老大指哪我们打哪。老大说,就用Dubbo吧,从那时候开始,我才知道,哦!原来还有一种东西叫做RPC,还有个阿里巴巴的RPC框架叫Dubbo。
+
+苦于当时非常有限的水平和高强度的工作,我和Dubbo的缘分也就停留在一面之缘的程度——要说认识谈不上,说不认识也牵强。
+
+## Contributor
+
+我在二维火任职的一年算是我Dubbo生涯里承上启下的一年。二维火当时自己维护了一个Dubbo的分支,有一群对Dubbo非常了解的人。那时候,工作结束搞Dubbo,周六加班研究Dubbo。看源码,看不懂就debug一下,debug也不明白就问,问人,问google,里外折腾了个遍。
+
+后来毕业加入网易云音乐。大概是今年五月份的时候,我发现了一个Dubbo的小bug,并且给Dubbo提交了pull 
request。在第一次被merge之后,非常受鼓舞,这才有了后续的故事。后来,回看这第一次提交,真的算是我和Dubbo的一个拐点,拐弯之后,我才逐渐走上一条成为`Committer`的路。
+
+可能很多人看到这里要望而却步了,这也是做开源给很多人留下的固有的印象——是不是没发现BUG就不能提交pull 
request,不能做贡献?其实完全不是的,这里给大家敲黑板划重点:其实很多贡献者的第一次贡献,贡献的并非代码,而是文档修改或者单元测试。相比于BUG或者新的Feature,单测和文档上的修复门槛就比较低了。
+
+我自己的方法论就是:**先尝试增加单元测试,写单测的时候顺手debug+看代码。或者多看文档,了解框架的同时,发现错别字、语意不明或者文档上的链接干脆点不开的情况,直接提交PR到对应的仓库**。
+
+万事开头难。第一次被merge代码,你就可以成为一个`Contributor`了。`Contributor`很多,但是`Committer`很少,下面继续说怎么从一个`Contributor`成长为独当一面的`Committer`。
+
+## Committer
+
+做开源和写代码一样,都不是一朝一夕的事情,而是量变促成质变的过程。这是一个没捷径可走的过程,欲带皇冠必承其重。身后的Dubbo功底自不必多说,这个部分主要是想跟大家说一下除了钻研和热爱之外,其他需要注意的地方。
+
+首先是多提交高质量PR。任何一个PR都会被review,代码中的问题,思路上的偏差,都会被指正。提交PR是一个反复琢磨的过程。PR的质量不能简单的归结于新增了多少行代码,高质量的PR一定是经过缜密思考的,为什么删除代码,新增的代码有什么意义,修改之后有什么效果等等。希望大家更加重视质量而非数量,眼光放长远,相信你的收获一定会非常大!
+
+第二个就是,我们需要培养一种思维方式——Apache 
Way。一句话概括就是**社区重于代码**。Apache是一个注重社区的的开源组织,其行为方式相比于目前我们的开发方式,还是有所不同,这里我举一个Apache 
Way的例子,用以说明传统方式相较于Apache Way的区别在哪里,这里假设我想为Dubbo开发一个功能A。
+
+**Old Way**:
+
+1. 功能设计:做一个设计文档(根据功能大小而定),大概划定需要修改或新增的类,大体设计接口等。
+2. 开发代码。
+3. 提交PR。
+4. Review & Merge
+
+可以看到,我们整个过程中,真正与社区交互的只有最后一步。
+
+**Apache Way**:
+
+1. 功能设计:发送邮件至mailing 
list并且提交ISSUE,与社区成员共同探讨,产出一个设计文档(根据功能大小而定),大概划定需要修改或新增的类,大体设计接口等。然后再次发送邮件并且回复ISSUE,通知社区设计文档定稿或者方案确定。
+2. 开发代码:发送邮件至社区,通知社区成员我即将投入开发功能A,如需帮助,可以同时说明需要协助。
+3. 提交PR:发送邮件并且回复ISSUE,提醒社区开发结束,贴上PR地址以通知社区review代码。
+4. Review + Merge后,发送邮件并且关闭ISSUE,通知社区功能A的开发功能告一段落。
+
+可以看到,Apache Way就是在整个开发过程中,不断地与社区交互,最大发挥社区的功能,汲取众人之力,这才是所谓**社区**以及所谓**开源**的含义。
+
+## 结尾
+
+Dubbo目前还在孵化阶段,整个Dubbo社区还不完善,我们也在跟着Dubbo一起成长,我们非常希望更多的Dubbo爱好者深度参与到Dubbo中,为你的代码生涯树一个里程碑。
+
+相信过程,收获结果;天道酬勤,功不唐捐!
+



[incubator-dubbo] branch master updated: remove travis cache (#2481)

2018-09-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 7e5f080  remove travis cache (#2481)
7e5f080 is described below

commit 7e5f080a6aac65d5f80f8f651884652ad314234e
Author: Jerrick Zhu 
AuthorDate: Tue Sep 11 12:21:09 2018 +0800

remove travis cache (#2481)
---
 .travis.yml | 4 
 1 file changed, 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 26e0783..acf5d48 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,10 +6,6 @@ jdk:
   - oraclejdk9
   - oraclejdk8
 
-cache:
-  directories:
-- '$HOME/.m2/repository'
-
 install: true
 
 script:



[incubator-dubbo] branch master updated: format code style (#2475)

2018-09-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 038e87e  format code style (#2475)
038e87e is described below

commit 038e87e69196613409722fc03e2f9737ea7b190c
Author: Jexy <839447...@qq.com>
AuthorDate: Tue Sep 11 12:54:46 2018 +0800

format code style (#2475)
---
 .../src/main/java/org/apache/dubbo/qos/command/CommandContext.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/CommandContext.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/CommandContext.java
index 744a8c6..0dae562 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/CommandContext.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/CommandContext.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.qos.command;
 import io.netty.channel.Channel;
 
 public class CommandContext {
+
 private String commandName;
 private String[] args;
 private Channel remote;
@@ -29,7 +30,7 @@ public class CommandContext {
 this.commandName = commandName;
 }
 
-public CommandContext(String commandName, String[] args,boolean isHttp) {
+public CommandContext(String commandName, String[] args, boolean isHttp) {
 this.commandName = commandName;
 this.args = args;
 this.isHttp = isHttp;



[incubator-dubbo] branch master updated: [Dubbo-2424] Fix switch-case fall through in ChannelEventRunnable (#2426)

2018-09-10 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 51f0677  [Dubbo-2424] Fix switch-case fall through in 
ChannelEventRunnable (#2426)
51f0677 is described below

commit 51f0677c8eaca9a7d8a37e663a344e8b02543350
Author: Yuhao Bi 
AuthorDate: Tue Sep 11 12:55:51 2018 +0800

[Dubbo-2424] Fix switch-case fall through in ChannelEventRunnable (#2426)
---
 .../apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java | 1 +
 1 file changed, 1 insertion(+)

diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
index 59622a6..3151704 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
@@ -82,6 +82,7 @@ public class ChannelEventRunnable implements Runnable {
 logger.warn("ChannelEventRunnable handle " + state + " 
operation error, channel is " + channel
 + ", message is " + message, e);
 }
+break;
 case CAUGHT:
 try {
 handler.caught(channel, exception);



[incubator-dubbo] branch master updated: [Dubbo-2446]Fix ClassNotFoundException when load Service Interface by parent ClassLoader (#2447)

2018-09-11 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new e18810b  [Dubbo-2446]Fix ClassNotFoundException when load Service 
Interface by parent ClassLoader (#2447)
e18810b is described below

commit e18810baba0e2314f11a2c8c080cd58d9af446bf
Author: 邓志 
AuthorDate: Tue Sep 11 15:32:25 2018 +0800

[Dubbo-2446]Fix ClassNotFoundException when load Service Interface by 
parent ClassLoader (#2447)

* 
用jarslink做的module隔离,dubbo调用时会抛ClassNotFoundException.经查是ClassLoader不一致。为了严谨,做此修改,以确保Service
 Interface和Invocation Interface的ClassLoader是同一个。

* invokerInterface非空判断
---
 .../src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java | 8 
 .../src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java  | 8 ++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java
index ea499a3..78f7b92 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java
@@ -591,6 +591,14 @@ public final class ReflectUtils {
 }
 }
 
+public static Class forName(ClassLoader cl, String name) {
+try {
+return name2class(cl, name);
+} catch (ClassNotFoundException e) {
+throw new IllegalStateException("Not found class " + name + ", 
cause: " + e.getMessage(), e);
+}
+}
+
 /**
  * name to class.
  * "boolean" => boolean.class
diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java
index 077970a..e2b0a66 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java
@@ -49,7 +49,9 @@ public class RpcUtils {
 && !invocation.getMethodName().startsWith("$")) {
 String service = 
invocation.getInvoker().getUrl().getServiceInterface();
 if (service != null && service.length() > 0) {
-Class cls = ReflectUtils.forName(service);
+Class invokerInterface = 
invocation.getInvoker().getInterface();
+Class cls = invokerInterface != null ? 
ReflectUtils.forName(invokerInterface.getClassLoader(), service)
+: ReflectUtils.forName(service);
 Method method = cls.getMethod(invocation.getMethodName(), 
invocation.getParameterTypes());
 if (method.getReturnType() == void.class) {
 return null;
@@ -71,7 +73,9 @@ public class RpcUtils {
 && !invocation.getMethodName().startsWith("$")) {
 String service = 
invocation.getInvoker().getUrl().getServiceInterface();
 if (service != null && service.length() > 0) {
-Class cls = ReflectUtils.forName(service);
+Class invokerInterface = 
invocation.getInvoker().getInterface();
+Class cls = invokerInterface != null ? 
ReflectUtils.forName(invokerInterface.getClassLoader(), service)
+: ReflectUtils.forName(service);
 Method method = cls.getMethod(invocation.getMethodName(), 
invocation.getParameterTypes());
 if (method.getReturnType() == void.class) {
 return null;



[incubator-dubbo] branch master updated: Update dubbo-issue-report-template.md (#2483)

2018-09-11 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new c9eb57f  Update dubbo-issue-report-template.md (#2483)
c9eb57f is described below

commit c9eb57fde2f3c06c6043bdd5eaf7051048001174
Author: elmar.chen 
AuthorDate: Tue Sep 11 16:03:08 2018 +0800

Update dubbo-issue-report-template.md (#2483)

fix some wording issue.
---
 .github/ISSUE_TEMPLATE/dubbo-issue-report-template.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/dubbo-issue-report-template.md 
b/.github/ISSUE_TEMPLATE/dubbo-issue-report-template.md
index c2ff96a..13587d0 100644
--- a/.github/ISSUE_TEMPLATE/dubbo-issue-report-template.md
+++ b/.github/ISSUE_TEMPLATE/dubbo-issue-report-template.md
@@ -13,7 +13,7 @@ about: If you would like to report a issue to Dubbo, please 
use this template.
 * Operating System version: xxx
 * Java version: xxx
 
-### Step to reproduce this issue
+### Steps to reproduce this issue
 
 1. xxx
 2. xxx
@@ -27,7 +27,7 @@ What do you expected from the above steps?
 
 ### Actual Result
 
-What is actually happen?
+What actually happens?
 
 If there is an exception, please attach the exception trace:
 



[incubator-dubbo] branch master updated: Update readme (#2488)

2018-09-11 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new e1e6978  Update readme (#2488)
e1e6978 is described below

commit e1e6978bec999562cff96fd8fbc9506b1047a7f5
Author: Song Kun 
AuthorDate: Wed Sep 12 09:35:19 2018 +0800

Update readme (#2488)

* update readme

* remove uncessary space
---
 README.md | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 7fb8cde..c707927 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,9 @@
 ![maven](https://img.shields.io/maven-central/v/com.alibaba/dubbo.svg)
 
[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Apache%20Dubbo%20(incubating)%20is%20a%20high-performance%2C%20java%20based%2C%20open%20source%20RPC%20framework.=http://dubbo.incubator.apache.org/=ApacheDubbo=rpc,java,dubbo,micro-service)
 
-Apache Dubbo (incubating) is a high-performance, java based open source RPC 
framework. Please visit [official site ](http://dubbo.incubator.apache.org) for 
quick start and documentations, as well as 
[Wiki](https://github.com/apache/incubator-dubbo/wiki) for news, FAQ, and 
release notes.
+Apache Dubbo (incubating) is a high-performance, Java based open source RPC 
framework. Please visit [official site](http://dubbo.incubator.apache.org) for 
quick start and documentations, as well as 
[Wiki](https://github.com/apache/incubator-dubbo/wiki) for news, FAQ, and 
release notes.
 
-We are now collecting dubbo user info in order to help us to improve dubbo 
better, pls. kindly help us by providing yours on [issue#1012: Wanted: who's 
using dubbo](https://github.com/apache/incubator-dubbo/issues/1012), thanks :)
+We are now collecting dubbo user info in order to help us to improve Dubbo 
better, pls. kindly help us by providing yours on [issue#1012: Wanted: who's 
using dubbo](https://github.com/apache/incubator-dubbo/issues/1012), thanks :)
 
 ## Architecture
 
@@ -33,7 +33,7 @@ The following code snippet comes from [Dubbo 
Samples](https://github.com/dubbo/d
 # cd dubbo-samples/dubbo-samples-api
 ```
 
-There's one 
[README](https://github.com/dubbo/dubbo-samples/blob/master/dubbo-samples-api/README.md)
 file under `dubbo-samples-api` directory. Read it and try this sample out by 
following the instructions.
+There's a 
[README](https://github.com/dubbo/dubbo-samples/blob/master/dubbo-samples-api/README.md)
 file under `dubbo-samples-api` directory. Read it and try this sample out by 
following the instructions.
 
 ### Maven dependency
 
@@ -151,7 +151,7 @@ The consumer will print out `Hello world` on the screen.
 ## Contact
 
 * Mailing list: 
-  * dev list: for dev/user discussion. 
[subscribe](mailto:[dev-subscr...@dubbo.incubator.apache.org]), 
[unsubscribe](mailto:[dev-unsubscr...@dubbo.incubator.apache.org]), 
[archive](https://lists.apache.org/list.html?d...@dubbo.apache.org),  
[guide](https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide)
+  * dev list: for dev/user discussion. 
[subscribe](mailto:dev-subscr...@dubbo.incubator.apache.org), 
[unsubscribe](mailto:dev-unsubscr...@dubbo.incubator.apache.org), 
[archive](https://lists.apache.org/list.html?d...@dubbo.apache.org),  
[guide](https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide)
   
 * Bugs: 
[Issues](https://github.com/apache/incubator-dubbo/issues/new?template=dubbo-issue-report-template.md)
 * Gitter: [Gitter channel](https://gitter.im/alibaba/dubbo) 
@@ -183,7 +183,7 @@ Please follow the 
[template](https://github.com/apache/incubator-dubbo/issues/ne
 
 ## Reporting a security vulnerability
 
-Please report security vulnerability to secur...@dubbo.incubator.apache.org 
(private mailing list).
+Please report security vulnerability to 
[us](secur...@dubbo.incubator.apache.org) privately.
 
 ## Dubbo eco system
 



[incubator-dubbo] branch 2.6.4-release deleted (was d7af5d9)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch 2.6.4-release
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


 was d7af5d9  [maven-release-plugin] prepare for next development iteration

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[incubator-dubbo] 01/01: Merge branch '2.6.4-release' into 2.6.x

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit f77c9fcc5ecfa10ce535a75b877bbce9ba078c70
Merge: 28e1037 d7af5d9
Author: zhuyong 
AuthorDate: Mon Oct 8 15:15:15 2018 +0800

Merge branch '2.6.4-release' into 2.6.x

 CHANGES.md | 27 +-
 NOTICE | 11 -
 all/pom.xml|  4 ++--
 bom/pom.xml|  2 +-
 dependencies-bom/pom.xml   |  2 +-
 distribution/pom.xml   |  2 +-
 dubbo-bootstrap/pom.xml|  2 +-
 dubbo-cluster/pom.xml  |  2 +-
 dubbo-common/pom.xml   |  2 +-
 dubbo-config/dubbo-config-api/pom.xml  |  2 +-
 dubbo-config/dubbo-config-spring/pom.xml   |  2 +-
 .../alibaba/dubbo/config/spring/ConfigTest.java|  4 ++--
 .../dubbo/config/spring/delay-fixed-time.xml   |  2 +-
 .../dubbo/config/spring/delay-on-initialized.xml   |  2 +-
 dubbo-config/pom.xml   |  2 +-
 dubbo-container/dubbo-container-api/pom.xml|  2 +-
 dubbo-container/dubbo-container-log4j/pom.xml  |  2 +-
 dubbo-container/dubbo-container-logback/pom.xml|  2 +-
 dubbo-container/dubbo-container-spring/pom.xml |  2 +-
 dubbo-container/pom.xml|  2 +-
 dubbo-demo/dubbo-demo-api/pom.xml  |  2 +-
 dubbo-demo/dubbo-demo-consumer/pom.xml |  2 +-
 dubbo-demo/dubbo-demo-provider/pom.xml |  2 +-
 dubbo-demo/pom.xml |  2 +-
 dubbo-filter/dubbo-filter-cache/pom.xml|  2 +-
 dubbo-filter/dubbo-filter-validation/pom.xml   |  2 +-
 dubbo-filter/pom.xml   |  2 +-
 dubbo-monitor/dubbo-monitor-api/pom.xml|  2 +-
 dubbo-monitor/dubbo-monitor-default/pom.xml|  2 +-
 dubbo-monitor/pom.xml  |  2 +-
 dubbo-plugin/dubbo-qos/pom.xml |  2 +-
 dubbo-plugin/pom.xml   |  2 +-
 dubbo-registry/dubbo-registry-api/pom.xml  |  2 +-
 dubbo-registry/dubbo-registry-default/pom.xml  |  2 +-
 dubbo-registry/dubbo-registry-multicast/pom.xml|  2 +-
 dubbo-registry/dubbo-registry-redis/pom.xml|  2 +-
 dubbo-registry/dubbo-registry-zookeeper/pom.xml|  2 +-
 dubbo-registry/pom.xml |  2 +-
 dubbo-remoting/dubbo-remoting-api/pom.xml  |  2 +-
 dubbo-remoting/dubbo-remoting-grizzly/pom.xml  |  2 +-
 dubbo-remoting/dubbo-remoting-http/pom.xml |  2 +-
 dubbo-remoting/dubbo-remoting-mina/pom.xml |  2 +-
 dubbo-remoting/dubbo-remoting-netty/pom.xml|  2 +-
 dubbo-remoting/dubbo-remoting-netty4/pom.xml   |  2 +-
 dubbo-remoting/dubbo-remoting-p2p/pom.xml  |  2 +-
 dubbo-remoting/dubbo-remoting-zookeeper/pom.xml|  2 +-
 dubbo-remoting/pom.xml |  2 +-
 dubbo-rpc/dubbo-rpc-api/pom.xml|  2 +-
 dubbo-rpc/dubbo-rpc-dubbo/pom.xml  |  2 +-
 .../dubbo/telnet/ChangeTelnetHandlerTest.java  |  2 +-
 .../dubbo/telnet/InvokerTelnetHandlerTest.java | 12 +-
 dubbo-rpc/dubbo-rpc-hessian/pom.xml|  2 +-
 dubbo-rpc/dubbo-rpc-http/pom.xml   |  2 +-
 dubbo-rpc/dubbo-rpc-injvm/pom.xml  |  2 +-
 dubbo-rpc/dubbo-rpc-memcached/pom.xml  |  2 +-
 dubbo-rpc/dubbo-rpc-redis/pom.xml  |  2 +-
 dubbo-rpc/dubbo-rpc-rest/pom.xml   |  2 +-
 dubbo-rpc/dubbo-rpc-rmi/pom.xml|  2 +-
 dubbo-rpc/dubbo-rpc-thrift/pom.xml |  2 +-
 dubbo-rpc/dubbo-rpc-webservice/pom.xml |  2 +-
 dubbo-rpc/pom.xml  |  2 +-
 .../dubbo-serialization-api/pom.xml|  2 +-
 .../dubbo-serialization-fastjson/pom.xml   |  2 +-
 .../dubbo-serialization-fst/pom.xml|  2 +-
 .../dubbo-serialization-hessian2/pom.xml   |  2 +-
 .../dubbo-serialization-jdk/pom.xml|  2 +-
 .../dubbo-serialization-kryo/pom.xml   |  2 +-
 dubbo-serialization/pom.xml|  2 +-
 dubbo-test/dubbo-test-benchmark/pom.xml|  2 +-
 .../dubbo-test-spring3/pom.xml |  2 +-
 dubbo-test/dubbo-test-compatibility/pom.xml|  2 +-
 dubbo-test/dubbo-test-examples/pom.xml |  2 +-
 dubbo-test/dubbo-test-integration/pom.xml  |  2 +-
 dubbo-test/pom.xml |  4 ++--
 pom.xml|  4 ++--
 75 files changed, 118 insertions(+), 84 deletions(-)



[incubator-dubbo] branch 2.6.x updated (28e1037 -> f77c9fc)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


from 28e1037  Optimize LeastActiveLoadBalance and add weight test case. 
(#2584)
 add 39ea8a8  add change log for 2.6.4
 add 3750059  change port for unit test
 add 57399a2  Enhance NOTICE file.
 add f7baac7  Merge branch '2.6.4-release' of 
github.com:apache/incubator-dubbo into 2.6.4-release
 add 8803774  [maven-release-plugin] prepare release dubbo-2.6.4
 add d7af5d9  [maven-release-plugin] prepare for next development iteration
 new f77c9fc  Merge branch '2.6.4-release' into 2.6.x

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.md | 27 +-
 NOTICE | 11 -
 all/pom.xml|  4 ++--
 bom/pom.xml|  2 +-
 dependencies-bom/pom.xml   |  2 +-
 distribution/pom.xml   |  2 +-
 dubbo-bootstrap/pom.xml|  2 +-
 dubbo-cluster/pom.xml  |  2 +-
 dubbo-common/pom.xml   |  2 +-
 dubbo-config/dubbo-config-api/pom.xml  |  2 +-
 dubbo-config/dubbo-config-spring/pom.xml   |  2 +-
 .../alibaba/dubbo/config/spring/ConfigTest.java|  4 ++--
 .../dubbo/config/spring/delay-fixed-time.xml   |  2 +-
 .../dubbo/config/spring/delay-on-initialized.xml   |  2 +-
 dubbo-config/pom.xml   |  2 +-
 dubbo-container/dubbo-container-api/pom.xml|  2 +-
 dubbo-container/dubbo-container-log4j/pom.xml  |  2 +-
 dubbo-container/dubbo-container-logback/pom.xml|  2 +-
 dubbo-container/dubbo-container-spring/pom.xml |  2 +-
 dubbo-container/pom.xml|  2 +-
 dubbo-demo/dubbo-demo-api/pom.xml  |  2 +-
 dubbo-demo/dubbo-demo-consumer/pom.xml |  2 +-
 dubbo-demo/dubbo-demo-provider/pom.xml |  2 +-
 dubbo-demo/pom.xml |  2 +-
 dubbo-filter/dubbo-filter-cache/pom.xml|  2 +-
 dubbo-filter/dubbo-filter-validation/pom.xml   |  2 +-
 dubbo-filter/pom.xml   |  2 +-
 dubbo-monitor/dubbo-monitor-api/pom.xml|  2 +-
 dubbo-monitor/dubbo-monitor-default/pom.xml|  2 +-
 dubbo-monitor/pom.xml  |  2 +-
 dubbo-plugin/dubbo-qos/pom.xml |  2 +-
 dubbo-plugin/pom.xml   |  2 +-
 dubbo-registry/dubbo-registry-api/pom.xml  |  2 +-
 dubbo-registry/dubbo-registry-default/pom.xml  |  2 +-
 dubbo-registry/dubbo-registry-multicast/pom.xml|  2 +-
 dubbo-registry/dubbo-registry-redis/pom.xml|  2 +-
 dubbo-registry/dubbo-registry-zookeeper/pom.xml|  2 +-
 dubbo-registry/pom.xml |  2 +-
 dubbo-remoting/dubbo-remoting-api/pom.xml  |  2 +-
 dubbo-remoting/dubbo-remoting-grizzly/pom.xml  |  2 +-
 dubbo-remoting/dubbo-remoting-http/pom.xml |  2 +-
 dubbo-remoting/dubbo-remoting-mina/pom.xml |  2 +-
 dubbo-remoting/dubbo-remoting-netty/pom.xml|  2 +-
 dubbo-remoting/dubbo-remoting-netty4/pom.xml   |  2 +-
 dubbo-remoting/dubbo-remoting-p2p/pom.xml  |  2 +-
 dubbo-remoting/dubbo-remoting-zookeeper/pom.xml|  2 +-
 dubbo-remoting/pom.xml |  2 +-
 dubbo-rpc/dubbo-rpc-api/pom.xml|  2 +-
 dubbo-rpc/dubbo-rpc-dubbo/pom.xml  |  2 +-
 .../dubbo/telnet/ChangeTelnetHandlerTest.java  |  2 +-
 .../dubbo/telnet/InvokerTelnetHandlerTest.java | 12 +-
 dubbo-rpc/dubbo-rpc-hessian/pom.xml|  2 +-
 dubbo-rpc/dubbo-rpc-http/pom.xml   |  2 +-
 dubbo-rpc/dubbo-rpc-injvm/pom.xml  |  2 +-
 dubbo-rpc/dubbo-rpc-memcached/pom.xml  |  2 +-
 dubbo-rpc/dubbo-rpc-redis/pom.xml  |  2 +-
 dubbo-rpc/dubbo-rpc-rest/pom.xml   |  2 +-
 dubbo-rpc/dubbo-rpc-rmi/pom.xml|  2 +-
 dubbo-rpc/dubbo-rpc-thrift/pom.xml |  2 +-
 dubbo-rpc/dubbo-rpc-webservice/pom.xml |  2 +-
 dubbo-rpc/pom.xml  |  2 +-
 .../dubbo-serialization-api/pom.xml|  2 +-
 .../dubbo-serialization-fastjson/pom.xml   |  2 +-
 .../dubbo-serialization-fst/pom.xml|  2 +-
 .../dubbo-serialization-hessian2/pom.xml   |  2 +-
 .../dubbo-serialization-jdk/pom.xml|  2 +-
 .../dubbo-serial

svn commit: r29932 - in /release/incubator/dubbo: ./ 2.6.4/

2018-10-07 Thread jerrick
Author: jerrick
Date: Mon Oct  8 02:22:24 2018
New Revision: 29932

Log:
release Apache Dubbo(incubating) 2.6.4

Added:
release/incubator/dubbo/2.6.4/
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip 
  (with props)

release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.asc

release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.sha512

release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip  
 (with props)

release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.asc

release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.sha512
Modified:
release/incubator/dubbo/KEYS

Added: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip
==
Binary file - no diff available.

Propchange: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip
--
svn:mime-type = application/octet-stream

Added: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.asc
==
--- 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.asc 
(added)
+++ 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.asc 
Mon Oct  8 02:22:24 2018
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIzBAABCAAdFiEER7bUsvMa9+xqqNFOeVX7bR3SHPcFAlufePAACgkQeVX7bR3S
+HPfb6w//exjvxVF/Al4uAhuIdQX9Q6UPRoT1+DHsdy5i6f938OCG98sfIn8Bt1o+
+U7Ztl8hupRBBwnp3ihJBFbY5t4Ua9a3IMRaplZhOTHFzGmSI1XVTdkQfuDCVFsVL
+/5P6IYPhrvz2pfLE/tDZ+WGfPotI3dTiMdbpy07U2YUPVFy9uajQJXGhL4nBYRzq
+W0EFTzJwZ0EKgf2GmW65mGadB68cF+XTduZ4FKLdgUNvguuJkXWXaDmCAqA/aok2
+/smYGgrTw48QyMrpI4ZrsM27odijmSqXhRBiR3WLb+EfcUgHHwuj3n+AtSrEDKvK
+x80ZnDDqwIacnKlS5/BVWTmCBoR3163EiVQbdZEjkEyUIfuLxCjdFM+HSd220g1v
+lwptWU1iMkZ12RjpnCs4lxQb+1L3VLwCaZld3Of7t+jd30d79G/svnKmAl6Z6Eyz
+QLpBeNkZj0xeCr2huDMcqWzoKQKoHuWjPU95KgrV50FdIHQn9Z3P+k+j+JynBhck
+HWgq5/ctOZKnEZnJxp1NJx8JpP+B940Cz4ls3bgujvC4D9jDm0KLgywNQd09pweW
+DkhuZF/TnmVO0Q/a9pgTCDEd0Q1JPJZk8kXjy3BxpffD2IiJIf+7MKZoryG8SchE
+OXeN6BLv7w4hLNAzLB7rSOPGD9gX6dzq+n3tvWje8gLGEfwFmDQ=
+=xHuH
+-END PGP SIGNATURE-

Added: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.sha512
==
--- 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.sha512
 (added)
+++ 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.sha512
 Mon Oct  8 02:22:24 2018
@@ -0,0 +1 @@
+23311aa4264ce5ad2af55851688167e61b5ab7635f8f9b7f669ef2d5aa15492a8361c257951256a2354b3c93aeb09f7a9d1703f186a7be5418ed5d5c904ed752
  apache-dubbo-incubating-2.6.4-bin-release.zip

Added: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip
==
Binary file - no diff available.

Propchange: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip
--
svn:mime-type = application/octet-stream

Added: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.asc
==
--- 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.asc
 (added)
+++ 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.asc
 Mon Oct  8 02:22:24 2018
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIzBAABCAAdFiEER7bUsvMa9+xqqNFOeVX7bR3SHPcFAlufePEACgkQeVX7bR3S
+HPcWYA/+P+ksT/THkcrFdPjlwn3V8ysMpK3tFMJErqnj8bKqpNIDniG3cp3jpt8g
+DjPzQoMdr1JOPrnCRckqngv1BQ6a7cTIkYxb09BFj1IRiRlXM2hfOwMesBE6QJQ4
+PU771vpIF1xGHr4upxoGpVR++dRSOW4YH7UouZFuGQY8usobMtKG0HUihDjrAz3d
+qChG3A7pvnCXoVgqefmjxSNteO96fQELNtIRFt+sJXOeyTs7dJmXG1wSwOxmcjem
+c1TE+1l+rnOnvIGrWcyBiKuhRo1VgPZbW3SuP7KUgQNyf257gpS1YK4qKhJMZ2k1
+BFR47wtnrL1+OXg/YzokK/fVXfIliqsWWK2D5DNMWJa6uXtJGkNMmLg41bohjrLL
+XD60EXeOxSZagIkWwvEL5PTdbo7yi3eihkPggO65cfmN3xlK+N4j+Wb2pMRmvlX1
+KTtY4CEe8T+tZqnKnryPUdo8zUHXBgwkRwGWgGYZwi8nrz0L9JdAl6BfZHKc67RA
+4Vu07KN4/si0undAc1dqfk6sR8n3iW5mFCPdBIUkJLLYZQc10Ol5pbVi5P+zpBeu
+MFAiu7CmUotMkczeMXEQaJOhem1i96RIKEEZmW5dcXtEO/KCsXEXjk8cKY3pK93h
+iWmvsW930GngezdWNv/aIq5ikCwhUMUnuxi579izJFMOJwPBJQQ=
+=zsMu
+-END PGP SIGNATURE-

Added: 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.sha512
==
--- 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.sha512
 (added)
+++ 
release/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source

[incubator-dubbo] branch master updated: update lastest version to 2.6.4 (#2601)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 3c34ee8  update lastest version to 2.6.4 (#2601)
3c34ee8 is described below

commit 3c34ee88fd79b5df0441320e53042b60a00bf76b
Author: Jerrick Zhu 
AuthorDate: Mon Oct 8 16:02:38 2018 +0800

update lastest version to 2.6.4 (#2601)
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4161d6b..75ec970 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@ There's a 
[README](https://github.com/dubbo/dubbo-samples/blob/master/dubbo-samp
 
 com.alibaba
 dubbo
-2.6.3
+2.6.4
 
 ```
 



[incubator-dubbo] branch master updated: combine test coverage report (#2643)

2018-10-14 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 8cafcab  combine test coverage report (#2643)
8cafcab is described below

commit 8cafcab65dbb86a83e9ae3e09aba601af462c47d
Author: Huang YunKun 
AuthorDate: Mon Oct 15 09:30:01 2018 +0800

combine test coverage report (#2643)
---
 pom.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2d81475..5882557 100644
--- a/pom.xml
+++ b/pom.xml
@@ -474,10 +474,10 @@
 
 
 
-jacoco-site
-package
+report-aggregate
+verify
 
-report
+report-aggregate
 
 
 



[incubator-dubbo] branch master updated: prototype for issue2570 (#2640)

2018-10-16 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 393ffce  prototype for issue2570 (#2640)
393ffce is described below

commit 393ffce5df5ac94a209914623d9a10bf94ef3b13
Author: Ian Luo 
AuthorDate: Tue Oct 16 16:16:54 2018 +0800

prototype for issue2570 (#2640)

* #2570: dubbo all in one fail to start from a tomcat server when spring 
framework is absent

* add comments and fix unit test

* add license header

* update comments in unit tests
---
 .../spring/initializer/DubboContextListener.java   | 72 ++
 .../src/main/resources/META-INF/web-fragment.xml   |  4 +-
 .../DubboApplicationContextInitializerTest.java|  9 +--
 .../spring/status/DataSourceStatusCheckerTest.java |  2 +-
 4 files changed, 80 insertions(+), 7 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/initializer/DubboContextListener.java
 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/initializer/DubboContextListener.java
new file mode 100644
index 000..35b2b70
--- /dev/null
+++ 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/initializer/DubboContextListener.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dubbo.config.spring.initializer;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * A Dubbo context listener is a delegation to 
org.springframework.web.context.ContextLoaderListener. This is necessary,
+ * because Dubbo is packaged into all-in-one jar, therefore it contains a 
web-fragment.xml from this sub module which's
+ * used for helping to assemble spring context listener automatically when 
it's not configured explicitly by user in
+ * web.xml. It works fine with spring, but it will lead to ClassNotFound 
exception and fail tomcat's bootup when user
+ * doesn't depend on spring framework.
+ */
+public class DubboContextListener implements ServletContextListener {
+private static final Log logger = 
LogFactory.getLog(DubboContextListener.class);
+
+private static final String SPRING_CONTEXT_LISTENER = 
"org.springframework.web.context.ContextLoaderListener";
+private static final String SPRING_CONTEXT_ROOT = 
"org.springframework.web.context.WebApplicationContext.ROOT";
+
+private ServletContextListener springContextListener;
+private boolean executed = false;
+
+public DubboContextListener() {
+try {
+Class c = Class.forName(SPRING_CONTEXT_LISTENER);
+springContextListener = (ServletContextListener) c.newInstance();
+} catch (ClassNotFoundException | IllegalAccessException | 
InstantiationException e) {
+logger.warn("Servlet container detects dubbo's web fragment 
configuration, and tries to load " +
+"org.springframework.web.context.ContextLoaderListener but 
fails to find the class. " +
+"If the application don't rely on Spring framework, pls. 
simply ignore");
+}
+}
+
+@Override
+public void contextInitialized(ServletContextEvent servletContextEvent) {
+if (springContextListener != null) {
+// if spring context listener has already been registered, then do 
nothing
+ServletContext context = servletContextEvent.getServletContext();
+if (context.getAttribute(SPRING_CONTEXT_ROOT) == null) {
+executed = true;
+springContextListener.contextInitialized(servletContextEvent);
+}
+}
+}
+
+@Override
+public void contextDestroyed(ServletContextEvent servletContextEvent) {
+if (springContextListener != null && executed) {
+springContextL

[incubator-dubbo-website] branch asf-site updated: fix link

2018-10-22 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 8e639ef  fix link
8e639ef is described below

commit 8e639efbe2ba607cb058f59a72a6f826346b4e64
Author: zhuyong 
AuthorDate: Mon Oct 22 15:54:47 2018 +0800

fix link
---
 build/documentation.js | 2 +-
 site_config/develop.js | 8 
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/build/documentation.js b/build/documentation.js
index 8272856..d8353bd 100644
--- a/build/documentation.js
+++ b/build/documentation.js
@@ -3,4 +3,4 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t

[incubator-dubbo-website] branch asf-site updated: add information (#169)

2018-10-30 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new cdf1664  add information (#169)
cdf1664 is described below

commit cdf1664ca52328b838ae7ebe512b8e6c0ebd38a1
Author: leyou240 
AuthorDate: Tue Oct 30 16:59:50 2018 +0800

add information (#169)

* Update developers_dev.md

add information

* Update developers_dev.md

add information
---
 docs/en-us/developers/developers_dev.md | 4 ++--
 docs/zh-cn/developers/developers_dev.md | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/en-us/developers/developers_dev.md 
b/docs/en-us/developers/developers_dev.md
index 097665d..907002f 100644
--- a/docs/en-us/developers/developers_dev.md
+++ b/docs/en-us/developers/developers_dev.md
@@ -31,5 +31,5 @@ This page shows Dubbo developers. Please file PR to add or 
change items.
 ### Contributors
 
 | Github ID | Github URL | Organization | TimeZone |
-| --- | --- | --- | --- | --- |
-| | | | | |
\ No newline at end of file
+| --- | --- | --- | --- |
+| leyou240 | <https://github.com/leyou240> |   | +8 |
diff --git a/docs/zh-cn/developers/developers_dev.md 
b/docs/zh-cn/developers/developers_dev.md
index 1c51e7e..6cb31cc 100644
--- a/docs/zh-cn/developers/developers_dev.md
+++ b/docs/zh-cn/developers/developers_dev.md
@@ -31,5 +31,5 @@
 ### 贡献者
 
 | Github ID | Github URL | Organization | TimeZone |
-| --- | --- | --- | --- | --- |
-| | | | | |
\ No newline at end of file
+| --- | --- | --- | --- |
+| leyou240 | <https://github.com/leyou240> |   | +8 |



[incubator-dubbo-website] branch asf-site updated: build site

2018-11-01 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 3900754  build site
3900754 is described below

commit 3900754eb1046aec6a5edc9d6c8583242c0894d4
Author: 千臂 
AuthorDate: Fri Nov 2 09:04:13 2018 +0800

build site
---
 en-us/docs/developers/developers_dev.html |  6 +++
 en-us/docs/developers/developers_dev.json |  2 +-
 en-us/docs/user/demos/group-merger.html   |  8 ++--
 en-us/docs/user/demos/group-merger.json   |  2 +-
 zh-cn/docs/developers/developers_dev.html |  6 +++
 zh-cn/docs/developers/developers_dev.json |  2 +-
 zh-cn/docs/developers/guide_dev.html  | 72 +++
 zh-cn/docs/developers/guide_dev.json  |  2 +-
 8 files changed, 56 insertions(+), 44 deletions(-)

diff --git a/en-us/docs/developers/developers_dev.html 
b/en-us/docs/developers/developers_dev.html
index 349f01d..3387bf2 100644
--- a/en-us/docs/developers/developers_dev.html
+++ b/en-us/docs/developers/developers_dev.html
@@ -205,6 +205,12 @@
 
 +8
 
+
+biyuhao
+https://github.com/biyuhao;>https://github.com/biyuhao
+Asiainfo-sec
++8
+
 
 
 DisclaimerApache 
Dubbo is an effort undergoing incubation at The Apache Software Foundation 
(ASF), sponsored by the Incubator. Incubation is required of all newly accepted 
projects until a further review indicates that the infrastructure, 
communications, and decision making [...]
diff --git a/en-us/docs/developers/developers_dev.json 
b/en-us/docs/developers/developers_dev.json
index 09e96d6..20f6f6f 100644
--- a/en-us/docs/developers/developers_dev.json
+++ b/en-us/docs/developers/developers_dev.json
@@ -1,4 +1,4 @@
 {
   "filename": "developers_dev.md",
-  "__html": "Developers\nThis page shows Dubbo developers. Please 
file PR to add or change 
items.\nCommitters\n\n\n\nApache 
ID\nName\nOrganization\nRole\nTimeZone\n\n\n\n\njmclean\nJustin
 
Mclean\nApache\nMentor\n+11\n\n\nmarkt\nMark
 
Thomas\nApache\nMentor\n+0\n\n\nwav
 [...]
+  "__html": "Developers\nThis page shows Dubbo developers. Please 
file PR to add or change 
items.\nCommitters\n\n\n\nApache 
ID\nName\nOrganization\nRole\nTimeZone\n\n\n\n\njmclean\nJustin
 
Mclean\nApache\nMentor\n+11\n\n\nmarkt\nMark
 
Thomas\nApache\nMentor\n+0\n\n\nwav
 [...]
 }
\ No newline at end of file
diff --git a/en-us/docs/user/demos/group-merger.html 
b/en-us/docs/user/demos/group-merger.html
index 392773e..b84214a 100644
--- a/en-us/docs/user/demos/group-merger.html
+++ b/en-us/docs/user/demos/group-merger.html
@@ -25,22 +25,22 @@
 The specified method to merge the results, other unspecified methods, will 
only call one group
 dubbo:reference interface="com.xxx.MenuService" group="*"
 dubbo:method 
name="getMenuItems" merger="true" 
/
-/dubbo:service
+/dubbo:reference
 
 The Specified a method does not merge the results, others merge the 
results
 dubbo:reference interface="com.xxx.MenuService" group="*" merger="true"
 dubbo:method 
name="getMenuItems" merger="false" 
/
-/dubbo:service
+/dubbo:reference
 
 Specify the merge strategy, the default according to the type of return 
value automatically match, if the same type has two mergers, you need to 
specify the name of the merger[2]
 dubbo:reference interface="com.xxx.MenuService" group="*"
 dubbo:method 
name="getMenuItems" merger="mymerge" 
/
-/dubbo:service
+/dubbo:reference
 
 Specify the merge method, it will call the return type's method for 
merging, the merging method parameter type must be the return type
 dubbo:reference interface="com.xxx.MenuService" group="*"
 dubbo:method 
name="getMenuItems" merger=".addAll" 
/
-/dubbo:service
+/dubbo:reference
 
 
 
diff --git a/en-us/docs/user/demos/group-merger.json 
b/en-us/docs/user/demos/group-merger.json
index 2ebc4e7..189100e 100644
--- a/en-us/docs/user/demos/group-merger.json
+++ b/en-us/docs/user/demos/group-merger.json
@@ -1,4 +1,4 @@
 {
   "filename": "group-merger.md",
-  "__html": "Group Merger\nAccording to the group to invoke server 
and return the merge result [1], such as the menu service, the same interface, but 
there are a variety of implementations, using group distinction, consumers call 
each group and get the results, the merger can merge the resules, so that you 
can achieve aggregation Menu Item.\nRelated code can refer to https://github.com/apach [...]
+  "__html": "Group Merger\nAccording to the group to invoke server 
and return the merge result [1], such as the menu service, the same interface, but 
there are a variety of implementations, using group distinction, consumers call

[incubator-dubbo-website] branch asf-site updated: [Dubbo-171] Add chinese version for guide_dev page (#175)

2018-11-01 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new bc1000d  [Dubbo-171] Add chinese version for guide_dev page (#175)
bc1000d is described below

commit bc1000de8b9bcde903c4f8d8f6a58b622c0177c8
Author: Huang YunKun 
AuthorDate: Fri Nov 2 09:03:19 2018 +0800

[Dubbo-171] Add chinese version for guide_dev page (#175)

* add chinese version for guide_dev

* polish
---
 docs/zh-cn/developers/guide_dev.md | 76 --
 1 file changed, 40 insertions(+), 36 deletions(-)

diff --git a/docs/zh-cn/developers/guide_dev.md 
b/docs/zh-cn/developers/guide_dev.md
index 7063606..b976be4 100644
--- a/docs/zh-cn/developers/guide_dev.md
+++ b/docs/zh-cn/developers/guide_dev.md
@@ -1,53 +1,55 @@
-## Contributing to Dubbo
+## 为Dubbo做贡献
 
-Dubbo is released under the non-restrictive Apache 2.0 license, and follows a 
very standard Github development process, using Github tracker for issues and 
merging pull requests into master. If you want to contribute even something 
trivial please do not hesitate, but follow the guidelines below.
+Dubbo是在非限制性的Apache 2.0许可下发布的,遵循标准的Github开发流程,使用Github追踪处理问题,并将pull 
request合并到master中。如果您想为Dubbo 做贡献(即便是一些微小的),请不要犹豫,遵循下面的指导方针。
 
-### Sign the Contributor License Agreement
-Before we accept a non-trivial patch or pull request we will need you to sign 
the Contributor License Agreement. Signing the contributor’s agreement does not 
grant anyone commit rights to the main repository, but it does mean that we can 
accept your contributions, and you will get an author credit if we do. Active 
contributors might be asked to join the core team, and given the ability to 
merge pull requests.
+### 签署贡献者许可协议
+在我们接受一个补丁或pull 
request之前,我们需要您签署贡献者许可协议。签署贡献者协议并不授予任何人对代码仓库的提交权限,但是它意味着我们可以接受您的贡献,并且如果我们这样做,您将获得一个作者标注。主动贡献者可能会被邀请加入核心团队,并有权限合并pull
 request。
 
-### Contact
+### 联系我们
 
- Mailing list
+ 邮件列表
 
-The mailing list is the recommended way for discussing almost anything that 
related to Dubbo. Please refer to this 
[guide](https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide)
 for detailed documentation on how to subscribe.
 
-- 
[d...@dubbo.incubator.apache.org](mailto:dev-subscr...@dubbo.incubator.apache.org):
 the develop mailing list, you can ask question here if you have encountered 
any problem when using or developing Dubbo.
-- 
[comm...@dubbo.incubator.apache.org](mailto:commits-subscr...@dubbo.incubator.apache.org):
 all the commits will be sent to this mailing list. You can subscribe to it if 
you are interested in Dubbo's development.
-- 
[notificat...@dubbo.incubator.apache.org](mailto:notification-subscr...@dubbo.incubator.apache.org):
 all the Github [issue](https://github.com/apache/incubator-dubbo/issues) 
updates and [pull request](https://github.com/apache/incubator-dubbo/pulls) 
updates will be sent to this mailing list.
+邮件列表是讨论几乎所有与Dubbo有关事情的推荐方式。有关如何订阅的详细文档,请参阅[指南](https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide)。
 
-### Reporting issue
+- 
[d...@dubbo.incubator.apache.org](mailto:dev-subscr...@dubbo.incubator.apache.org):
 开发邮件列表,如果您在使用或开发Dubbo时遇到任何问题,您可以在此提出问题。
+- 
[comm...@dubbo.incubator.apache.org](mailto:commits-subscr...@dubbo.incubator.apache.org):
 所有提交将被发送到这个邮件列表。如果您对Dubbo的发展感兴趣,您可以订阅它。
+- 
[notificat...@dubbo.incubator.apache.org](mailto:notification-subscr...@dubbo.incubator.apache.org):
 所有Github  [issue](https://github.com/apache/incubator-dubbo/issues)和[pull 
request](https://github.com/apache/incubator-dubbo/pulls)的更新都会被发送到这个邮件列表。
 
-Please follow the 
[template](https://github.com/apache/incubator-dubbo/issues/new?template=dubbo-issue-report-template.md)
 for reporting any issues.
+### 报告问题
 
-### Code Conventions
-Our code style is almost in line with the standard java conventions (Popular 
IDE's default setting satisfy this), with the following additional restricts:  
-* If there are more than 120 characters in current line, start a new line.
+在报告任何问题时请遵循[模版](https://github.com/apache/incubator-dubbo/issues/new?template=dubbo-issue-report-template.md)。
 
-* Make sure all new .java files to have a simple Javadoc class comment with at 
least a @date tag identifying birth, and preferably at least a paragraph on 
what the class is for.
+### 代码约定
+我们的代码风格几乎和标准Java约定一致(流行IDE的默认设置满足这一点),主要有以下附加限制:
 
-* Add the ASF license header comment to all new .java files (copy from 
existing files in the project)
+* 如果当前行中有超过120个字符,则起一个新的行。
 
-* Make sure no @author tag added to the file you contribute since @author tag 
is not used at Apache, other ways such as cvs will record all your 
contributions fairly.
+* 确保所有新的.java文件都有一个简单的JavaDoc类注释,其中至少有一个标识创建日期的标签,最好至少有一个关于该类的解释说明。
 
-* Add some Javadocs and, if you change the namespace, some XSD doc

[incubator-dubbo-website] branch asf-site updated: correct a spelling mistake in xml.md (#164)

2018-10-25 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 4058fe9  correct a spelling mistake in xml.md (#164)
4058fe9 is described below

commit 4058fe9c44b71bec7aace2f46eefddb84ee9ae32
Author: SuperIllidan 
AuthorDate: Thu Oct 25 17:10:04 2018 +0800

correct a spelling mistake in xml.md (#164)
---
 docs/en-us/user/configuration/xml.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en-us/user/configuration/xml.md 
b/docs/en-us/user/configuration/xml.md
index 6789ffc..b6162da 100644
--- a/docs/en-us/user/configuration/xml.md
+++ b/docs/en-us/user/configuration/xml.md
@@ -45,7 +45,7 @@ Or:
 
 tag  | purpose | introduction
 - | - | -
-`` | Service Export  | Used to export service, define service 
metadata, export service with mutiple protocols, register service to multiple 
registries
+`` | Service Export  | Used to export service, define service 
metadata, export service with multiple protocols, register service to multiple 
registries
 ``  | Service Reference  | Used to create a remote proxy, 
subscribe to multiple registries
 ``  | Protocol Config  | Configure the protocol for services 
on provider side, the consumer side follows.
 ``  | Application Config  | Applies to both provider and 
consumer.



[incubator-dubbo-website] branch asf-site updated: add check

2018-10-09 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 4103820  add check
4103820 is described below

commit 410382074d3e54fee23dfddebaf1b9d05cb3fe0a
Author: zhuyong 
AuthorDate: Wed Oct 10 08:58:40 2018 +0800

add check
---
 404.html  | 28 ++--
 build/blog.js |  6 +++---
 build/blogDetail.js   |  6 +++---
 build/community.js|  6 +++---
 build/documentation.js|  6 +++---
 build/home.js |  6 +++---
 en-us/blog/tracing-with-skywalking.html   | 10 +-
 en-us/blog/tracing-with-skywalking.json   |  2 +-
 en-us/docs/admin/ops/skywalking.html  | 10 +-
 en-us/docs/admin/ops/skywalking.json  |  2 +-
 index.html| 28 ++--
 redirect.ejs  | 28 ++--
 zh-cn/blog/prepare-an-apache-release.html |  4 ++--
 zh-cn/blog/prepare-an-apache-release.json |  2 +-
 14 files changed, 60 insertions(+), 84 deletions(-)

diff --git a/404.html b/404.html
index a45ce11..978e267 100644
--- a/404.html
+++ b/404.html
@@ -7,6 +7,16 @@
   
   
   http://www.apache.org/events/current-event;>Apache Dubbo is an effort 
undergoing incubation at The Apache Software Foundation (ASF), sponsored by the 
Incubator. Incubation is required of all newly accepted projects until a 
further review indicates that the infrastructure, communications, and decision 
making process have stabilized in a manner consistent with other successful ASF 
projects. While incubation status is not necessarily a reflection of the comp 
[...]
+  http://dubbo.apache.org/img/apache_logo.png"/>
+  
+ASF
+http://www.apache.org;>Foundation
+http://www.apache.org/licenses/;>License
+http://www.apache.org/events/current-event;>Events
+http://www.apache.org/foundation/sponsorship.html;>Sponsorship
+http://www.apache.org/foundation/thanks.html;>Thanks
+  
+  Copyright © 2018 The Apache Software Foundation. 
Apache and the Apache feather logo are trademarks of The Apache Software 
Foundation.
   
   

@@ -18,23 +28,5 @@
 }
 window.location = window.rootPath + '/' + lang;
   
-
-  
 
 
\ No newline at end of file
diff --git a/build/blog.js b/build/blog.js
index 39d166d..dc2eb7b 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -1,6 +1,6 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...]
-  Copyright (c) 2016 Jed Watson.
+!function(e){function t(r){if(n[r])return n[r].exports;var 
o=n[r]={i:r,l:!1,exports:{}};return 
e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var 
n={};t.m=e,t.c=n,t.i=function(e){return 
e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var
 n=e&__esModule?function(){return e.default}:function(){return e};return 
t.d(n,"a",n),n},t.o=function(e,t){return 
Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...]
+  Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;thttp://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var 
e=[],t=0;t
 
 
-   https://github.com/apache/incubator-skywalking;>Apache 
Skywalking(Incubator)  is the APM system that it designed for 
micro-services architectures and cloud native architecture systems and supports 
distribute tracking. https://github.com/apache/incubator-skywalking;>Apache skywalking 
(incubator) collects and analyzes the trace data and generates the 
relationship between the application and the service metric, Apache skywalking 
(incubating) supports multiple la [...]
 Currently, Skywalking has supported analysis the operation of distributed 
systems fro

[incubator-dubbo-website] branch asf-site updated: build site

2018-10-09 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 7a6d635  build site
7a6d635 is described below

commit 7a6d6351021edd6a35b23c55d88bdde915fbe4d3
Author: zhuyong 
AuthorDate: Wed Oct 10 12:22:31 2018 +0800

build site
---
 404.html | 1 +
 index.html   | 1 +
 redirect.ejs | 1 +
 3 files changed, 3 insertions(+)

diff --git a/404.html b/404.html
index 978e267..9adb33a 100644
--- a/404.html
+++ b/404.html
@@ -17,6 +17,7 @@
 http://www.apache.org/foundation/thanks.html;>Thanks
   
   Copyright © 2018 The Apache Software Foundation. 
Apache and the Apache feather logo are trademarks of The Apache Software 
Foundation.
+  https://www.apache.org/security/;>
   
   

diff --git a/index.html b/index.html
index 978e267..9adb33a 100644
--- a/index.html
+++ b/index.html
@@ -17,6 +17,7 @@
 <li><a href="<a  rel="nofollow" href="http://www.apache.org/foundation/thanks.html&quot">http://www.apache.org/foundation/thanks.html&quot</a>;>Thanks</a></li>
   </ul>
   <p style="display: none">Copyright © 2018 The Apache Software Foundation. 
Apache and the Apache feather logo are trademarks of The Apache Software 
Foundation.</p>
+  <a style="display: none" href="<a  rel="nofollow" href="https://www.apache.org/security/&quot">https://www.apache.org/security/&quot</a>;></a>
   <!-- 添加Apache校验项结束 -->
   <script 
src="//cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js">

diff --git a/redirect.ejs b/redirect.ejs
index d74f8a4..685f13e 100644
--- a/redirect.ejs
+++ b/redirect.ejs
@@ -17,6 +17,7 @@
 <li><a href="<a  rel="nofollow" href="http://www.apache.org/foundation/thanks.html&quot">http://www.apache.org/foundation/thanks.html&quot</a>;>Thanks</a></li>
   </ul>
   <p style="display: none">Copyright © 2018 The Apache Software Foundation. 
Apache and the Apache feather logo are trademarks of The Apache Software 
Foundation.</p>
+  <a style="display: none" href="<a  rel="nofollow" href="https://www.apache.org/security/&quot">https://www.apache.org/security/&quot</a>;></a>
   <!-- 添加Apache校验项结束 -->
   <script 
src="//cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js">

[incubator-dubbo] branch 2.6.x updated: fix #1641, support get system load on windows. (#2621)

2018-10-09 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 0b94b35  fix #1641, support get system load on windows. (#2621)
0b94b35 is described below

commit 0b94b35992259747611ffae2d807f87b4ed4b705
Author: Jerrick Zhu 
AuthorDate: Wed Oct 10 10:59:59 2018 +0800

fix #1641, support get system load on windows. (#2621)
---
 .../com/alibaba/dubbo/common/status/support/LoadStatusChecker.java   | 5 +
 1 file changed, 5 insertions(+)

diff --git 
a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
index 20715c5..0ed290f 100644
--- 
a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
+++ 
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
@@ -37,6 +37,11 @@ public class LoadStatusChecker implements StatusChecker {
 try {
 Method method = 
OperatingSystemMXBean.class.getMethod("getSystemLoadAverage", new Class[0]);
 load = (Double) method.invoke(operatingSystemMXBean, new 
Object[0]);
+if (load == -1) {
+com.sun.management.OperatingSystemMXBean bean =
+(com.sun.management.OperatingSystemMXBean) 
operatingSystemMXBean;
+load = bean.getSystemCpuLoad();
+}
 } catch (Throwable e) {
 load = -1;
 }



[incubator-dubbo] branch master updated: fix #2600 add javadoc-plugin to dubbo-all module (#2604)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
 new 046bc30  fix #2600 add javadoc-plugin to dubbo-all module (#2604)
046bc30 is described below

commit 046bc3081f7a98d539f9fb1b9af375ad80868ea8
Author: Jerrick Zhu 
AuthorDate: Tue Oct 9 08:49:48 2018 +0800

fix #2600 add javadoc-plugin to dubbo-all module (#2604)
---
 dubbo-all/pom.xml | 39 +++
 1 file changed, 39 insertions(+)

diff --git a/dubbo-all/pom.xml b/dubbo-all/pom.xml
index 7a1cdd3..f26a1e2 100644
--- a/dubbo-all/pom.xml
+++ b/dubbo-all/pom.xml
@@ -556,4 +556,43 @@
 
 
 
+
+
+
+release
+
+
+
+maven-javadoc-plugin
+${maven_javadoc_version}
+
+
+attach-javadoc
+
+jar
+
+
+none
+
+
+
+
+
true
+
+
org.apache.dubbo:dubbo-*
+
com.alibaba:hessian-*
+
+public
+UTF-8
+UTF-8
+UTF-8
+
+
http://docs.oracle.com/javase/7/docs/api
+
+
+
+
+
+
+
 
\ No newline at end of file



[incubator-dubbo] branch 2.6.x updated: Removed jdk9 from .travis.yml. (#2609)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new c4eb4e8  Removed jdk9 from .travis.yml. (#2609)
c4eb4e8 is described below

commit c4eb4e8ceb14965f2abd881b70ba6f1f994d3940
Author: cbolgiano 
AuthorDate: Mon Oct 8 20:50:29 2018 -0400

Removed jdk9 from .travis.yml. (#2609)
---
 .travis.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 5aaa1ba..a6c3dcc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,6 @@ language: java
 sudo: false # faster builds
 
 jdk:
-- oraclejdk9
 - oraclejdk8
 - openjdk7
 



[incubator-dubbo] annotated tag dubbo-2.6.5 updated (f99f8f2 -> 3c05793)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to annotated tag dubbo-2.6.5
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


*** WARNING: tag dubbo-2.6.5 was modified! ***

from f99f8f2  (commit)
  to 3c05793  (tag)
 tagging f99f8f204f38e96bb1cab7f52d5fdf4ccd62d033 (commit)
 replaces dubbo-2.6.4
  by zhuyong
  on Tue Oct 9 10:30:50 2018 +0800

- Log -
[maven-release-plugin] copy for tag dubbo-2.6.5
---


No new revisions were added by this update.

Summary of changes:



[incubator-dubbo] branch 2.6.5-release-staging created (now 0375a61)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch 2.6.5-release-staging
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


  at 0375a61  [maven-release-plugin] prepare for next development iteration

This branch includes the following new commits:

 new f99f8f2  [maven-release-plugin] prepare release dubbo-2.6.5
 new 0375a61  [maven-release-plugin] prepare for next development iteration

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[incubator-dubbo] 02/02: [maven-release-plugin] prepare for next development iteration

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.5-release-staging
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 0375a61ad692d2815b554d28a43194c193d786ab
Author: zhuyong 
AuthorDate: Tue Oct 9 10:30:51 2018 +0800

[maven-release-plugin] prepare for next development iteration
---
 all/pom.xml| 4 ++--
 bom/pom.xml| 4 ++--
 dependencies-bom/pom.xml   | 4 ++--
 distribution/pom.xml   | 2 +-
 dubbo-bootstrap/pom.xml| 2 +-
 dubbo-cluster/pom.xml  | 2 +-
 dubbo-common/pom.xml   | 2 +-
 dubbo-config/dubbo-config-api/pom.xml  | 2 +-
 dubbo-config/dubbo-config-spring/pom.xml   | 2 +-
 dubbo-config/pom.xml   | 2 +-
 dubbo-container/dubbo-container-api/pom.xml| 2 +-
 dubbo-container/dubbo-container-log4j/pom.xml  | 2 +-
 dubbo-container/dubbo-container-logback/pom.xml| 2 +-
 dubbo-container/dubbo-container-spring/pom.xml | 2 +-
 dubbo-container/pom.xml| 2 +-
 dubbo-demo/dubbo-demo-api/pom.xml  | 2 +-
 dubbo-demo/dubbo-demo-consumer/pom.xml | 2 +-
 dubbo-demo/dubbo-demo-provider/pom.xml | 2 +-
 dubbo-demo/pom.xml | 2 +-
 dubbo-filter/dubbo-filter-cache/pom.xml| 2 +-
 dubbo-filter/dubbo-filter-validation/pom.xml   | 2 +-
 dubbo-filter/pom.xml   | 2 +-
 dubbo-monitor/dubbo-monitor-api/pom.xml| 2 +-
 dubbo-monitor/dubbo-monitor-default/pom.xml| 2 +-
 dubbo-monitor/pom.xml  | 2 +-
 dubbo-plugin/dubbo-qos/pom.xml | 2 +-
 dubbo-plugin/pom.xml   | 2 +-
 dubbo-registry/dubbo-registry-api/pom.xml  | 2 +-
 dubbo-registry/dubbo-registry-default/pom.xml  | 2 +-
 dubbo-registry/dubbo-registry-multicast/pom.xml| 2 +-
 dubbo-registry/dubbo-registry-redis/pom.xml| 2 +-
 dubbo-registry/dubbo-registry-zookeeper/pom.xml| 2 +-
 dubbo-registry/pom.xml | 2 +-
 dubbo-remoting/dubbo-remoting-api/pom.xml  | 2 +-
 dubbo-remoting/dubbo-remoting-grizzly/pom.xml  | 2 +-
 dubbo-remoting/dubbo-remoting-http/pom.xml | 2 +-
 dubbo-remoting/dubbo-remoting-mina/pom.xml | 2 +-
 dubbo-remoting/dubbo-remoting-netty/pom.xml| 2 +-
 dubbo-remoting/dubbo-remoting-netty4/pom.xml   | 2 +-
 dubbo-remoting/dubbo-remoting-p2p/pom.xml  | 2 +-
 dubbo-remoting/dubbo-remoting-zookeeper/pom.xml| 2 +-
 dubbo-remoting/pom.xml | 2 +-
 dubbo-rpc/dubbo-rpc-api/pom.xml| 2 +-
 dubbo-rpc/dubbo-rpc-dubbo/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-hessian/pom.xml| 2 +-
 dubbo-rpc/dubbo-rpc-http/pom.xml   | 2 +-
 dubbo-rpc/dubbo-rpc-injvm/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-memcached/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-redis/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-rest/pom.xml   | 2 +-
 dubbo-rpc/dubbo-rpc-rmi/pom.xml| 2 +-
 dubbo-rpc/dubbo-rpc-thrift/pom.xml | 2 +-
 dubbo-rpc/dubbo-rpc-webservice/pom.xml | 2 +-
 dubbo-rpc/pom.xml  | 2 +-
 dubbo-serialization/dubbo-serialization-api/pom.xml| 2 +-
 dubbo-serialization/dubbo-serialization-fastjson/pom.xml   | 2 +-
 dubbo-serialization/dubbo-serialization-fst/pom.xml| 2 +-
 dubbo-serialization/dubbo-serialization-hessian2/pom.xml   | 2 +-
 dubbo-serialization/dubbo-serialization-jdk/pom.xml| 2 +-
 dubbo-serialization/dubbo-serialization-kryo/pom.xml   | 2 +-
 dubbo-serialization/pom.xml| 2 +-
 dubbo-test/dubbo-test-benchmark/pom.xml| 2 +-
 dubbo-test/dubbo-test-compatibility/dubbo-test-spring3/pom.xml | 2 +-
 dubbo-test/dubbo-test-compatibility/pom.xml| 2 +-
 dubbo-test/dubbo-test-examples/pom.xml | 2

[incubator-dubbo] branch 2.6.5-release-staging deleted (was 2c56668)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a change to branch 2.6.5-release-staging
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git.


 was 2c56668  [maven-release-plugin] prepare for next development iteration

This change permanently discards the following revisions:

 discard 2c56668  [maven-release-plugin] prepare for next development iteration



[incubator-dubbo] branch 2.6.x updated: update release script (#2615)

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.x
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/2.6.x by this push:
 new 5adb9bf  update release script (#2615)
5adb9bf is described below

commit 5adb9bfb59acdba3115f2b4cd1d9ec72ecec42cc
Author: Jerrick Zhu 
AuthorDate: Tue Oct 9 11:46:53 2018 +0800

update release script (#2615)
---
 release.sh | 334 +
 1 file changed, 114 insertions(+), 220 deletions(-)

diff --git a/release.sh b/release.sh
index e33940e..d5e9401 100755
--- a/release.sh
+++ b/release.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 #  Licensed to the Apache Software Foundation (ASF) under one or more
 #  contributor license agreements.  See the NOTICE file distributed with
 #  this work for additional information regarding copyright ownership.
@@ -14,26 +14,11 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
 
-# set -e
-# set -x
-
-function fail {
->&2 echo "\033[31m\033[01m[
-FATAL ERROR:
---
-$1 ]\033[0m"
-
-echo "Clear current work dir"
-git add .
-git commit -m 'Failed preparation for release.'
-exit 1
-}
 
 function fail_noclear {
->&2 echo "\033[31m\033[01m[
-FATAL ERROR:
+>&2 echo "FATAL ERROR:
 --
-$1 ]\033[0m"
+$1"
 exit 1
 }
 
@@ -44,142 +29,58 @@ xpath /pom:project/pom:version/text()
 EOF
 }
 
-function generate_promotion_script {
-echo "Generating release promotion script 'promote-$version.sh'"
-read -d '' script <<- EOF
-#!/bin/bash
-echo "Promoting release $version
-Actions about to be performed:
---
-\$(cat \$0 | tail -n +14)
---"
-read -p "Press enter to continue or CTRL-C to abort"
-# promote the source distribution by moving it from the staging area to the 
release area
-# mv https://dist.apache.org/repos/dist/dev/incubator/dubbo/$version 
https://dist.apache.org/repos/dist/release/incubator/dubbo/ -m "Upload release 
to the mirrors"
-#mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:rc-release 
-DstagingRepositoryId=$stagingRepositoryId -DnexusUrl=https://oss.sonatype.org/ 
-DserverId=sonatype-nexus-staging -Ddescription="Release vote has passed"
-# Renumber the next development iteration $next_version:
-git checkout $branch
-mvn release:update-versions --batch-mode
-mvn versions:set versions:commit -DprocessAllModules=true 
-DnewVersion=$next_version
-git add --all
-git commit -m 'Start the next development version'
-echo "
-Please check the new versions and merge $branch to the base branch.
-"
-EOF
-
-echo "$script" > promote-$version.sh
-chmod +x promote-$version.sh
-git add promote-$version.sh
-}
-
-function generate_rollback_script {
-   echo "Generating release rollback script 'revert-$version.sh'"
-read -d '' script <<- EOF
-#!/bin/bash
-echo -n "Reverting release $version
-Actions about to be performed:
---
-\$(cat \$0 | tail -n +14)
---
-Press enter to continue or CTRL-C to abort"
-read
-# clean up local repository
-git checkout $GIT_BRANCH
-git branch -D $branch
-git tag -d $tag
-# clean up staging dist area
-#svn rm https://dist.apache.org/repos/dist/dev/incubator/dubbo/$version -m 
"Release vote has failed"
-# clean up staging maven repository
-#mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:rc-drop 
-DstagingRepositoryId=$stagingrepoid -DnexusUrl=https://oss.sonatype.org/ 
-DserverId=sonatype-nexus-staging -Ddescription="Release vote has failed"
-# clean up remaining release files
-find . -name "*.releaseBackup" -exec rm {} \\;
-[ -f release.properties ] && rm release.properties
-EOF
-echo "$script" > revert-$version.sh
-
-   chmod +x revert-$version.sh
-   git add revert-$version.sh
-}
-
-function generate_release_vote_email {
-
-echo "Generating Vote email"
-
-echo "
-Hello Dubbo Community,
-
-This is a call for vote to release Apache Dubbo (Incubating) version 
$version.
-
-The release candidates (RC5):
-https://dist.apache.org/repos/dist/dev/incubator/dubbo/$version
+REPO=""
+BRANCH=""
 
-Git tag for the release (RC5):
-https://github.com/apache/incubator-dubbo/tree/dubbo-$version
-Hash for the release tag:
-3963d8fd93642398375ea92acb7ed4d2bc1b0518
-
-Release Notes:
-https://github.com/apache/incubator-dubbo/blob/dubbo-$version/CHANGES.md
-
-The artifacts have been signed with Key : 28681CB1, which can be found in 
the keys file:

[incubator-dubbo] 01/02: [maven-release-plugin] prepare release dubbo-2.6.5

2018-10-08 Thread jerrick
This is an automated email from the ASF dual-hosted git repository.

jerrick pushed a commit to branch 2.6.5-release-staging
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit dae220ad98305f77cf68d7e338ba512ec38fd72b
Author: zhuyong 
AuthorDate: Tue Oct 9 10:44:10 2018 +0800

[maven-release-plugin] prepare release dubbo-2.6.5
---
 all/pom.xml| 4 ++--
 bom/pom.xml| 4 ++--
 dependencies-bom/pom.xml   | 4 ++--
 distribution/pom.xml   | 2 +-
 dubbo-bootstrap/pom.xml| 2 +-
 dubbo-cluster/pom.xml  | 2 +-
 dubbo-common/pom.xml   | 2 +-
 dubbo-config/dubbo-config-api/pom.xml  | 2 +-
 dubbo-config/dubbo-config-spring/pom.xml   | 2 +-
 dubbo-config/pom.xml   | 2 +-
 dubbo-container/dubbo-container-api/pom.xml| 2 +-
 dubbo-container/dubbo-container-log4j/pom.xml  | 2 +-
 dubbo-container/dubbo-container-logback/pom.xml| 2 +-
 dubbo-container/dubbo-container-spring/pom.xml | 2 +-
 dubbo-container/pom.xml| 2 +-
 dubbo-demo/dubbo-demo-api/pom.xml  | 2 +-
 dubbo-demo/dubbo-demo-consumer/pom.xml | 2 +-
 dubbo-demo/dubbo-demo-provider/pom.xml | 2 +-
 dubbo-demo/pom.xml | 2 +-
 dubbo-filter/dubbo-filter-cache/pom.xml| 2 +-
 dubbo-filter/dubbo-filter-validation/pom.xml   | 2 +-
 dubbo-filter/pom.xml   | 2 +-
 dubbo-monitor/dubbo-monitor-api/pom.xml| 2 +-
 dubbo-monitor/dubbo-monitor-default/pom.xml| 2 +-
 dubbo-monitor/pom.xml  | 2 +-
 dubbo-plugin/dubbo-qos/pom.xml | 2 +-
 dubbo-plugin/pom.xml   | 2 +-
 dubbo-registry/dubbo-registry-api/pom.xml  | 2 +-
 dubbo-registry/dubbo-registry-default/pom.xml  | 2 +-
 dubbo-registry/dubbo-registry-multicast/pom.xml| 2 +-
 dubbo-registry/dubbo-registry-redis/pom.xml| 2 +-
 dubbo-registry/dubbo-registry-zookeeper/pom.xml| 2 +-
 dubbo-registry/pom.xml | 2 +-
 dubbo-remoting/dubbo-remoting-api/pom.xml  | 2 +-
 dubbo-remoting/dubbo-remoting-grizzly/pom.xml  | 2 +-
 dubbo-remoting/dubbo-remoting-http/pom.xml | 2 +-
 dubbo-remoting/dubbo-remoting-mina/pom.xml | 2 +-
 dubbo-remoting/dubbo-remoting-netty/pom.xml| 2 +-
 dubbo-remoting/dubbo-remoting-netty4/pom.xml   | 2 +-
 dubbo-remoting/dubbo-remoting-p2p/pom.xml  | 2 +-
 dubbo-remoting/dubbo-remoting-zookeeper/pom.xml| 2 +-
 dubbo-remoting/pom.xml | 2 +-
 dubbo-rpc/dubbo-rpc-api/pom.xml| 2 +-
 dubbo-rpc/dubbo-rpc-dubbo/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-hessian/pom.xml| 2 +-
 dubbo-rpc/dubbo-rpc-http/pom.xml   | 2 +-
 dubbo-rpc/dubbo-rpc-injvm/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-memcached/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-redis/pom.xml  | 2 +-
 dubbo-rpc/dubbo-rpc-rest/pom.xml   | 2 +-
 dubbo-rpc/dubbo-rpc-rmi/pom.xml| 2 +-
 dubbo-rpc/dubbo-rpc-thrift/pom.xml | 2 +-
 dubbo-rpc/dubbo-rpc-webservice/pom.xml | 2 +-
 dubbo-rpc/pom.xml  | 2 +-
 dubbo-serialization/dubbo-serialization-api/pom.xml| 2 +-
 dubbo-serialization/dubbo-serialization-fastjson/pom.xml   | 2 +-
 dubbo-serialization/dubbo-serialization-fst/pom.xml| 2 +-
 dubbo-serialization/dubbo-serialization-hessian2/pom.xml   | 2 +-
 dubbo-serialization/dubbo-serialization-jdk/pom.xml| 2 +-
 dubbo-serialization/dubbo-serialization-kryo/pom.xml   | 2 +-
 dubbo-serialization/pom.xml| 2 +-
 dubbo-test/dubbo-test-benchmark/pom.xml| 2 +-
 dubbo-test/dubbo-test-compatibility/dubbo-test-spring3/pom.xml | 2 +-
 dubbo-test/dubbo-test-compatibility/pom.xml| 2 +-
 dubbo-test/dubbo-test-examples/pom.xml | 2 +-
 dubbo-test

  1   2   >