<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have searched the <a href="https://github.com/apache/incubator-dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/incubator-dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.5.10</li>
<li>Operating System version: windows7</li>
<li>Java version: jdk1.8</li>
</ul>
<p dir="auto">when is use dubbo-2.5.10 startup my application ,show me the log is</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[DUBBO] Using select timeout of 500, dubbo version: 2.0.1, current host: 192.168.1.18"><pre class="notranslate"><code class="notranslate">[DUBBO] Using select timeout of 500, dubbo version: 2.0.1, current host: 192.168.1.18
</code></pre></div>
<p dir="auto">About the issue of using the dubbo-2.5.10 boot log output version is 2.0.1<br>
but if i use dubbo of  2.6.x  ，it is no problem;<br>
and when i see the MANIFEST.MF of 2.5.10 and 2.6.2，i found them:</p>
<p dir="auto">dubbo-2.5.10  MANIFEST.MF file</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Manifest-Version: 1.0
Implementation-Vendor: The Dubbo Project
Implementation-Title: Dubbo
Implementation-Version: 2.0.1
Implementation-Vendor-Id: com.alibaba
Built-By: ken.lj
Build-Jdk: 1.7.0_80
Specification-Vendor: The Dubbo Project
Specification-Title: Dubbo
Created-By: Apache Maven 3.1.1
Specification-Version: 2.0.0
Archiver-Version: Plexus Archiver"><pre class="notranslate"><code class="notranslate">Manifest-Version: 1.0
Implementation-Vendor: The Dubbo Project
Implementation-Title: Dubbo
Implementation-Version: 2.0.1
Implementation-Vendor-Id: com.alibaba
Built-By: ken.lj
Build-Jdk: 1.7.0_80
Specification-Vendor: The Dubbo Project
Specification-Title: Dubbo
Created-By: Apache Maven 3.1.1
Specification-Version: 2.0.0
Archiver-Version: Plexus Archiver
</code></pre></div>
<p dir="auto">but when i see the dubbo-2.6.2 MANIFEST.MF file</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Manifest-Version: 1.0
Implementation-Vendor: The Apache Software Foundation
Implementation-Title: dubbo-all
Implementation-Version: 2.6.2
Implementation-Vendor-Id: com.alibaba
Built-By: ken.lj
Build-Jdk: 1.7.0_80
Specification-Vendor: The Apache Software Foundation
Specification-Title: dubbo-all
Created-By: Apache Maven 3.5.0
Implementation-URL: https://github.com/apache/incubator-dubbo/dubbo
Specification-Version: 2.6"><pre class="notranslate"><code class="notranslate">Manifest-Version: 1.0
Implementation-Vendor: The Apache Software Foundation
Implementation-Title: dubbo-all
Implementation-Version: 2.6.2
Implementation-Vendor-Id: com.alibaba
Built-By: ken.lj
Build-Jdk: 1.7.0_80
Specification-Vendor: The Apache Software Foundation
Specification-Title: dubbo-all
Created-By: Apache Maven 3.5.0
Implementation-URL: https://github.com/apache/incubator-dubbo/dubbo
Specification-Version: 2.6
</code></pre></div>
<p dir="auto">and the source code of<br>
com.alibaba.dubbo.common.logger.support.FailsafeLogger</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="package com.alibaba.dubbo.common.logger.support;

import com.alibaba.dubbo.common.Version;
import com.alibaba.dubbo.common.logger.Logger;
import com.alibaba.dubbo.common.utils.NetUtils;

public class FailsafeLogger implements Logger {

	private Logger logger;

	public FailsafeLogger(Logger logger) {
		this.logger = logger;
	}

	public Logger getLogger() {
		return logger;
	}

	public void setLogger(Logger logger) {
		this.logger = logger;
	}

	private String appendContextMessage(String msg) {
	    return &quot; [DUBBO] &quot; + msg + &quot;, dubbo version: &quot; + Version.getVersion() + &quot;, current host: &quot; + NetUtils.getLogHost();
	}
.... other code "><pre class="notranslate"><code class="notranslate">package com.alibaba.dubbo.common.logger.support;

import com.alibaba.dubbo.common.Version;
import com.alibaba.dubbo.common.logger.Logger;
import com.alibaba.dubbo.common.utils.NetUtils;

public class FailsafeLogger implements Logger {

	private Logger logger;

	public FailsafeLogger(Logger logger) {
		this.logger = logger;
	}

	public Logger getLogger() {
		return logger;
	}

	public void setLogger(Logger logger) {
		this.logger = logger;
	}

	private String appendContextMessage(String msg) {
	    return " [DUBBO] " + msg + ", dubbo version: " + Version.getVersion() + ", current host: " + NetUtils.getLogHost();
	}
.... other code 
</code></pre></div>
<p dir="auto">source code of com.alibaba.dubbo.common.Version</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="public static String getVersion(Class&lt;?&gt; cls, String defaultVersion) {
        try {
            // 首先查找MANIFEST.MF规范中的版本号
            String version = cls.getPackage().getImplementationVersion();
            if (version == null || version.length() == 0) {
                version = cls.getPackage().getSpecificationVersion();
            }
            if (version == null || version.length() == 0) {
                // 如果规范中没有版本号，基于jar包名获取版本号
                CodeSource codeSource = cls.getProtectionDomain().getCodeSource();
                if(codeSource == null) {
                    logger.info(&quot;No codeSource for class &quot; + cls.getName() + &quot; when getVersion, use default version &quot; + defaultVersion);
                }
                else {
                    String file = codeSource.getLocation().getFile();
                    if (file != null &amp;&amp; file.length() &gt; 0 &amp;&amp; file.endsWith(&quot;.jar&quot;)) {
                        file = file.substring(0, file.length() - 4);
                        int i = file.lastIndexOf('/');
                        if (i &gt;= 0) {
                            file = file.substring(i + 1);
                        }
                        i = file.indexOf(&quot;-&quot;);
                        if (i &gt;= 0) {
                            file = file.substring(i + 1);
                        }
                        while (file.length() &gt; 0 &amp;&amp; ! Character.isDigit(file.charAt(0))) {
                            i = file.indexOf(&quot;-&quot;);
                            if (i &gt;= 0) {
                                file = file.substring(i + 1);
                            } else {
                                break;
                            }
                        }
                        version = file;
                    }
                }
            }
            // 返回版本号，如果为空返回缺省版本号
            return version == null || version.length() == 0 ? defaultVersion : version;
        } catch (Throwable e) { // 防御性容错
            // 忽略异常，返回缺省版本号
            logger.error(&quot;return default version, ignore exception &quot; + e.getMessage(), e);
            return defaultVersion;
        }
    }"><pre class="notranslate"><code class="notranslate">public static String getVersion(Class&lt;?&gt; cls, String defaultVersion) {
        try {
            // 首先查找MANIFEST.MF规范中的版本号
            String version = cls.getPackage().getImplementationVersion();
            if (version == null || version.length() == 0) {
                version = cls.getPackage().getSpecificationVersion();
            }
            if (version == null || version.length() == 0) {
                // 如果规范中没有版本号，基于jar包名获取版本号
                CodeSource codeSource = cls.getProtectionDomain().getCodeSource();
                if(codeSource == null) {
                    logger.info("No codeSource for class " + cls.getName() + " when getVersion, use default version " + defaultVersion);
                }
                else {
                    String file = codeSource.getLocation().getFile();
                    if (file != null &amp;&amp; file.length() &gt; 0 &amp;&amp; file.endsWith(".jar")) {
                        file = file.substring(0, file.length() - 4);
                        int i = file.lastIndexOf('/');
                        if (i &gt;= 0) {
                            file = file.substring(i + 1);
                        }
                        i = file.indexOf("-");
                        if (i &gt;= 0) {
                            file = file.substring(i + 1);
                        }
                        while (file.length() &gt; 0 &amp;&amp; ! Character.isDigit(file.charAt(0))) {
                            i = file.indexOf("-");
                            if (i &gt;= 0) {
                                file = file.substring(i + 1);
                            } else {
                                break;
                            }
                        }
                        version = file;
                    }
                }
            }
            // 返回版本号，如果为空返回缺省版本号
            return version == null || version.length() == 0 ? defaultVersion : version;
        } catch (Throwable e) { // 防御性容错
            // 忽略异常，返回缺省版本号
            logger.error("return default version, ignore exception " + e.getMessage(), e);
            return defaultVersion;
        }
    }
</code></pre></div>
<p dir="auto">why the dubbo-2.5.x boot log output 2.0.1 ,can fix it?</p>
<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.</p>
<h2 dir="auto">Repo Overview</h2>
<h3 dir="auto">Basic data</h3>
<p dir="auto">Baisc data shows how the watch, star, fork and contributors count changed in the passed week.</p>
<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">3200</td>
<td align="center">24432 (↑79)</td>
<td align="center">13832 (↑61)</td>
<td align="center">175 (↑2)</td>
</tr>
</tbody>
</table>
<h3 dir="auto">Issues &amp; PRs</h3>
<p dir="auto">Issues &amp; PRs show the new/closed issues/pull requests count in the passed week.</p>
<table role="table">
<thead>
<tr>
<th align="center">New Issues</th>
<th align="center">Closed Issues</th>
<th align="center">New PR</th>
<th align="center">Merged PR</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">17</td>
<td align="center">31</td>
<td align="center">23</td>
<td align="center">15</td>
</tr>
</tbody>
</table>
<h2 dir="auto">PR Overview</h2>
<p dir="auto">Thanks to contributions from community, Dubbo team merged <strong>15</strong> pull requests in the repository last week. They are:</p>
<ul dir="auto">
<li>Apache parent pom version is updated to 21. (<a href="https://github.com/apache/incubator-dubbo/pull/3470" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3470/hovercard">#3470</a>)</li>
<li>possibly bug fix (<a href="https://github.com/apache/incubator-dubbo/pull/3460" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3460/hovercard">#3460</a>)</li>
<li>extract method to cache default extension name (<a href="https://github.com/apache/incubator-dubbo/pull/3456" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3456/hovercard">#3456</a>)</li>
<li>[Dubbo-3237]fix connectionMonitor in RestProtocol seems not work <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="399364595" data-permission-text="Title is private" data-url="https://github.com/apache/dubbo/issues/3237" data-hovercard-type="issue" data-hovercard-url="/apache/dubbo/issues/3237/hovercard" href="https://github.com/apache/dubbo/issues/3237">#3237</a> (<a href="https://github.com/apache/incubator-dubbo/pull/3455" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3455/hovercard">#3455</a>)</li>
<li>extract 2 methods: isSetter and getSetterProperty (<a href="https://github.com/apache/incubator-dubbo/pull/3453" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3453/hovercard">#3453</a>)</li>
<li>Bugfix/timeout queue full (<a href="https://github.com/apache/incubator-dubbo/pull/3451" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3451/hovercard">#3451</a>)</li>
<li>fix <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="368048090" data-permission-text="Title is private" data-url="https://github.com/apache/dubbo/issues/2619" data-hovercard-type="issue" data-hovercard-url="/apache/dubbo/issues/2619/hovercard" href="https://github.com/apache/dubbo/issues/2619">#2619</a>: is there a problem in NettyBackedChannelBuffer.setBytes(...)? (<a href="https://github.com/apache/incubator-dubbo/pull/3448" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3448/hovercard">#3448</a>)</li>
<li>Add delay export  test case (<a href="https://github.com/apache/incubator-dubbo/pull/3447" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3447/hovercard">#3447</a>)</li>
<li>remove duplicated unused method and move unit test (<a href="https://github.com/apache/incubator-dubbo/pull/3446" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3446/hovercard">#3446</a>)</li>
<li>Add checkstyle rule for redundant import (<a href="https://github.com/apache/incubator-dubbo/pull/3444" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3444/hovercard">#3444</a>)</li>
<li>Update junit to 5.4.0 release version (<a href="https://github.com/apache/incubator-dubbo/pull/3441" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3441/hovercard">#3441</a>)</li>
<li>remove duplicated import (<a href="https://github.com/apache/incubator-dubbo/pull/3440" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3440/hovercard">#3440</a>)</li>
<li>[Dubbo-Container] Fix Enhance the java doc of dubbo-container module (<a href="https://github.com/apache/incubator-dubbo/pull/3437" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3437/hovercard">#3437</a>)</li>
<li>refactor javassist compiler: extract class CtClassBuilder (<a href="https://github.com/apache/incubator-dubbo/pull/3424" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3424/hovercard">#3424</a>)</li>
<li>refactor adaptive extension class code creation: extract class AdaptiveClassCodeGenerator (<a href="https://github.com/apache/incubator-dubbo/pull/3419" data-hovercard-type="pull_request" data-hovercard-url="/apache/dubbo/pull/3419/hovercard">#3419</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/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">6</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">4</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">3</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">2</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">2</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">2</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">2</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/scxwhite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/scxwhite">@scxwhite</a></td>
<td align="center">2</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">1</td>
</tr>
<tr>
<td align="center"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wanghbxxxx/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wanghbxxxx">@wanghbxxxx</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/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">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>
</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/kamaci/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kamaci">@kamaci</a></p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dreamer-nitj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dreamer-nitj">@dreamer-nitj</a></p>
<p dir="auto">Thanks to you all.</p>
<p dir="auto"><em>Note: This robot is supported by <a href="https://github.com/AlibabaDR/Collabobot">Collabobot</a>.</em></p>