<h1 dir="auto">Weekly Report of Dubbo</h1>
<p dir="auto">This is a weekly report of Dubbo. It summarizes what have changed in the project during the passed week, including pr merged, new contributors, and more things in the future.<br>
It is all done by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dubbo-bot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dubbo-bot">@dubbo-bot</a> which is a collaborate robot. See: <a href="https://github.com/AlibabaDR/Collabobot">https://github.com/AlibabaDR/Collabobot</a> .</p>
<h2 dir="auto">Repo Overview</h2>
<table role="table">
<thead>
<tr>
<th align="center">Watch</th>
<th align="center">Star</th>
<th align="center">Fork</th>
<th align="center">Contributors</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">3196</td>
<td align="center">23859 (↑160)</td>
<td align="center">13546 (↑103)</td>
<td align="center">163 (↑1)</td>
</tr>
<tr>
<td align="center">New Issues</td>
<td align="center">Closed Issues</td>
<td align="center">New PR</td>
<td align="center">Merged PR</td>
</tr>
<tr>
<td align="center">21</td>
<td align="center">5</td>
<td align="center">24</td>
<td align="center">16</td>
</tr>
</tbody>
</table>
<h2 dir="auto">PR Overview</h2>
<p dir="auto">Thanks to contributions from community, Dubbo team merged <strong>16</strong> pull requests in the repository last week. They are:</p>
<ul dir="auto">
<li>Routers zookeeper path (<a href="https://github.com/apache/incubator-dubbo/pull/3173" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3173/hovercard">#3173</a>)</li>
<li>add some small optimize (<a href="https://github.com/apache/incubator-dubbo/pull/3171" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3171/hovercard">#3171</a>)</li>
<li>code optimization (<a href="https://github.com/apache/incubator-dubbo/pull/3167" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3167/hovercard">#3167</a>)</li>
<li>modify metadata node path in zookeeper (<a href="https://github.com/apache/incubator-dubbo/pull/3166" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3166/hovercard">#3166</a>)</li>
<li>optimize ReconnectTimerTask's log output (<a href="https://github.com/apache/incubator-dubbo/pull/3162" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3162/hovercard">#3162</a>)</li>
<li>avoid duplicated refresh for application (<a href="https://github.com/apache/incubator-dubbo/pull/3157" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3157/hovercard">#3157</a>)</li>
<li>correct spelling error (<a href="https://github.com/apache/incubator-dubbo/pull/3146" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3146/hovercard">#3146</a>)</li>
<li>fix prefix, use hypher case instead of camel case (<a href="https://github.com/apache/incubator-dubbo/pull/3143" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3143/hovercard">#3143</a>)</li>
<li>add javadoc for registry and some code (<a href="https://github.com/apache/incubator-dubbo/pull/3140" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3140/hovercard">#3140</a>)</li>
<li>fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="395484770" data-permission-text="Title is private" data-url="https://github.com/apache/dubbo/issues/3123" data-hovercard-type="issue" data-hovercard-url="/apache/dubbo/issues/3123/hovercard" href="https://github.com/apache/dubbo/issues/3123">#3123</a>.  support metadata xml config and support dubbo.properties format 'dubbo.metadata-report.address=XXx' (<a href="https://github.com/apache/incubator-dubbo/pull/3138" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3138/hovercard">#3138</a>)</li>
<li>avoid dup refresh for registry config (<a href="https://github.com/apache/incubator-dubbo/pull/3135" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3135/hovercard">#3135</a>)</li>
<li>Config center optimization (<a href="https://github.com/apache/incubator-dubbo/pull/3128" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3128/hovercard">#3128</a>)</li>
<li>code optimization (<a href="https://github.com/apache/incubator-dubbo/pull/3118" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3118/hovercard">#3118</a>)</li>
<li>fix telnet trace times is always 1 (<a href="https://github.com/apache/incubator-dubbo/pull/3038" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3038/hovercard">#3038</a>)</li>
<li>code rule (<a href="https://github.com/apache/incubator-dubbo/pull/3016" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3016/hovercard">#3016</a>)</li>
<li>Add javadoc for dubbo-serialization module(<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="391995391" data-permission-text="Title is private" data-url="https://github.com/apache/dubbo/issues/3002" data-hovercard-type="issue" data-hovercard-url="/apache/dubbo/issues/3002/hovercard" href="https://github.com/apache/dubbo/issues/3002">#3002</a>). (<a href="https://github.com/apache/incubator-dubbo/pull/3004" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3004/hovercard">#3004</a>)</li>
</ul>
<h2 dir="auto">Code Review Statistics</h2>
<p dir="auto">Dubbo encourages everyone to participant in code review, in order to improve software quality. Every week <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dubbo-bot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dubbo-bot">@dubbo-bot</a> would automatically help to count pull request reviews of single github user as the following. So, try to help review code in this project.</p>
<table role="table">
<thead>
<tr>
<th align="center">Contributor ID</th>
<th align="center">Pull Request Reviews</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/khanimteyaz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/khanimteyaz">@khanimteyaz</a></td>
<td align="center">38</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/beiwei30/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/beiwei30">@beiwei30</a></td>
<td align="center">12</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chickenlj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chickenlj">@chickenlj</a></td>
<td align="center">10</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ralf0131/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ralf0131">@ralf0131</a></td>
<td align="center">8</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/carryxyh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/carryxyh">@carryxyh</a></td>
<td align="center">8</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CrazyHZM/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CrazyHZM">@CrazyHZM</a></td>
<td align="center">5</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lixiaojiee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lixiaojiee">@lixiaojiee</a></td>
<td align="center">4</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kexianjun/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kexianjun">@kexianjun</a></td>
<td align="center">3</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zonghaishang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zonghaishang">@zonghaishang</a></td>
<td align="center">3</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kezhenxu94/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kezhenxu94">@kezhenxu94</a></td>
<td align="center">1</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/htynkn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/htynkn">@htynkn</a></td>
<td align="center">1</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cvictory/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cvictory">@cvictory</a></td>
<td align="center">1</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gudegg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gudegg">@gudegg</a></td>
<td align="center">1</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LiZhenNet/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LiZhenNet">@LiZhenNet</a></td>
<td align="center">1</td>
</tr>
</tbody>
</table>
<h2 dir="auto">Contributors Overview</h2>
<p dir="auto">It is Dubbo team's great honor to have new contributors from community. We really appreciate your contributions. Feel free to tell us if you have any opinion and please share this open source project with more people if you could. If you hope to be a contributor as well, please start from <a href="https://github.com/apache/incubator-dubbo/blob/master/CONTRIBUTING.md">https://github.com/apache/incubator-dubbo/blob/master/CONTRIBUTING.md</a> .<br>
Here is the list of new contributors:</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/majinkai/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/majinkai">@majinkai</a></p>
<p dir="auto">Thanks to you all.</p>
<p dir="auto">An <code class="notranslate">UnresolvedAddressException</code> is thrown if the Zookeeper registry  is used under the enviroment of Java14.<br>
Because the lower version of Zookeeper is not compatible with the Java14 unresolved address format.<br>
The problem is fixed in version 3.5.x of Zookeeper, <strong>I suggest upgrade the Zookeeper version of Dubbo to 3.5.x</strong></p>
<ul class="contains-task-list">
<li>
<p dir="auto">the lower version of <code class="notranslate">getHostString()</code> method for zk<br>
<a href="https://github.com/apache/zookeeper/blob/2d71af4dbe22557fda74f9a9b4309b15a7487f03/src/java/main/org/apache/zookeeper/client/StaticHostProvider.java#L135-L138">https://github.com/apache/zookeeper/blob/2d71af4dbe22557fda74f9a9b4309b15a7487f03/src/java/main/org/apache/zookeeper/client/StaticHostProvider.java#L135-L138</a></p>
</li>
<li>
<p dir="auto">jdk rewrite unresolved address format<br>
<a href="https://github.com/openjdk/jdk/blob/9a7dcdcdbad34e061a8988287fe691abfd4df305/src/java.base/share/classes/java/net/InetSocketAddress.java#L107-L116">https://github.com/openjdk/jdk/blob/9a7dcdcdbad34e061a8988287fe691abfd4df305/src/java.base/share/classes/java/net/InetSocketAddress.java#L107-L116</a></p>
</li>
<li class="task-list-item">
<p dir="auto"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</p>
</li>
<li class="task-list-item">
<p dir="auto"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</p>
</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.8 release</li>
<li>Operating System version: macOS 10.13.6</li>
<li>Java version: jdk14.0.1</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<p dir="auto"><a href="https://github.com/apache/dubbo/blob/master/dubbo-demo/dubbo-demo-api/dubbo-demo-api-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java">run the demo</a></p>
<h3 dir="auto">Expected Result</h3>
<p dir="auto">the normal run</p>
<h3 dir="auto">Actual Result</h3>
<p dir="auto">throw <code class="notranslate">java.nio.channels.UnresolvedAddressException</code></p>
<p dir="auto">If there is an exception, please attach the exception trace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[17/09/20 10:30:53:424 CST] main-SendThread(127.0.0.1:2181)  WARN zookeeper.ClientCnxn: Session 0x0 for server 127.0.0.1/&lt;unresolved&gt;:2181, unexpected error, closing socket connection and attempting reconnect
java.nio.channels.UnresolvedAddressException
	at java.base/sun.nio.ch.Net.checkAddress(Net.java:139)
	at java.base/sun.nio.ch.SocketChannelImpl.checkRemote(SocketChannelImpl.java:727)
	at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:741)
	at org.apache.zookeeper.ClientCnxnSocketNIO.registerAndConnect(ClientCnxnSocketNIO.java:277)
	at org.apache.zookeeper.ClientCnxnSocketNIO.connect(ClientCnxnSocketNIO.java:287)
	at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1021)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1064)"><pre class="notranslate"><code class="notranslate">[17/09/20 10:30:53:424 CST] main-SendThread(127.0.0.1:2181)  WARN zookeeper.ClientCnxn: Session 0x0 for server 127.0.0.1/&lt;unresolved&gt;:2181, unexpected error, closing socket connection and attempting reconnect
java.nio.channels.UnresolvedAddressException
	at java.base/sun.nio.ch.Net.checkAddress(Net.java:139)
	at java.base/sun.nio.ch.SocketChannelImpl.checkRemote(SocketChannelImpl.java:727)
	at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:741)
	at org.apache.zookeeper.ClientCnxnSocketNIO.registerAndConnect(ClientCnxnSocketNIO.java:277)
	at org.apache.zookeeper.ClientCnxnSocketNIO.connect(ClientCnxnSocketNIO.java:287)
	at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1021)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1064)
</code></pre></div>