This is an automated email from the ASF dual-hosted git repository.

dongeforever pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/rocketmq-site.git

commit b19de76da7ddb17b33c144268e2b8eb7a21f461e
Author: dongeforever <[email protected]>
AuthorDate: Wed Dec 13 22:55:37 2017 +0800

    Build
---
 content/about/contact/index.html                   |   4 +-
 content/about/rewards/index.html                   |   4 +-
 content/about/team/index.html                      |   4 +-
 content/categories/index.html                      |  32 ++
 content/collection-archive/index.html              |   2 +
 content/docs/batch-example/index.html              |   4 +-
 content/docs/best-practice-broker/index.html       |   4 +-
 content/docs/best-practice-consumer/index.html     |   4 +-
 content/docs/best-practice-namesvr/index.html      |   4 +-
 content/docs/best-practice-producer/index.html     |   4 +-
 content/docs/broadcast-example/index.html          |   4 +-
 content/docs/cli-admin-tool/index.html             |   4 +-
 content/docs/cluster-deployment/index.html         |   4 +-
 content/docs/code-guidelines/index.html            |   4 +-
 content/docs/core-concept/index.html               |   4 +-
 content/docs/create-pull-request/index.html        |   4 +-
 content/docs/documentation/index.html              |   4 +-
 content/docs/faq/index.html                        |   4 +-
 content/docs/filter-by-sql92-example/index.html    |   4 +-
 content/docs/how-to-contribute/index.html          |   4 +-
 content/docs/logappender-example/index.html        |   4 +-
 content/docs/motivation/index.html                 |   4 +-
 content/docs/openmessaging-example/index.html      |   4 +-
 content/docs/order-example/index.html              |   4 +-
 content/docs/pull-request/index.html               |   4 +-
 content/docs/quick-start/index.html                |   4 +-
 content/docs/release-manual.html                   |   4 +-
 content/docs/rmq-arc/index.html                    |   4 +-
 content/docs/rmq-deployment/index.html             |   4 +-
 content/docs/roadmap/index.html                    |   4 +-
 content/docs/schedule-example/index.html           |   4 +-
 content/docs/simple-example/index.html             |   4 +-
 content/docs/system-config/index.html              |   4 +-
 content/dowloading/releases/index.html             |   4 +-
 content/feed.xml                                   | 379 ++++---------
 .../release_notes/release-notes-4.2.0/index.html   | 606 +++++++++++++++++++++
 .../Field-Report-Meetup-Beijing/index.html         |   3 +-
 content/sitemap.xml                                |   8 +-
 content/tags/index.html                            |  96 ++++
 content/year-archive/index.html                    |  28 +
 40 files changed, 933 insertions(+), 349 deletions(-)

diff --git a/content/about/contact/index.html b/content/about/contact/index.html
index 118ed02..e798bc0 100644
--- a/content/about/contact/index.html
+++ b/content/about/contact/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="CONTACT">
     <meta itemprop="description" content="Contact.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 29, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/about/rewards/index.html b/content/about/rewards/index.html
index 31d0351..caacb56 100644
--- a/content/about/rewards/index.html
+++ b/content/about/rewards/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="REWARDS">
     <meta itemprop="description" content="Rewards.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="January 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/about/team/index.html b/content/about/team/index.html
index 8f6677b..fb9c2e7 100644
--- a/content/about/team/index.html
+++ b/content/about/team/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="TEAM">
     <meta itemprop="description" content="Project team.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 29, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/categories/index.html b/content/categories/index.html
index 5b02287..68a4e80 100644
--- a/content/categories/index.html
+++ b/content/categories/index.html
@@ -351,6 +351,12 @@
 <!-- If not equal to previous then it must be unique as sorted -->
 
 
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
 <!-- Push to group_names -->
 
 
@@ -525,6 +531,32 @@ January 5th 2017
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/release_notes/release-notes-4.2.0/" rel="permalink">Release 
Notes - Apache RocketMQ - Version 4.2.0
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">Below is a summary 
of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full 
documentation of the release, a guide to get started, please refer...</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/release_notes/release-notes-4.1.0-incubating/" 
rel="permalink">Release Notes - Apache RocketMQ - Version 4.1.0-incubating
 </a>
       
diff --git a/content/collection-archive/index.html 
b/content/collection-archive/index.html
index 8b38ef6..1181f4c 100644
--- a/content/collection-archive/index.html
+++ b/content/collection-archive/index.html
@@ -1030,6 +1030,8 @@ and the coordination is mainly achieved through 
managing...</p>
   
     
   
+    
+  
 
   
     
diff --git a/content/docs/batch-example/index.html 
b/content/docs/batch-example/index.html
index 31287cf..f5d624b 100644
--- a/content/docs/batch-example/index.html
+++ b/content/docs/batch-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Batch Example">
     <meta itemprop="description" content="How to use batch in Rocketmq">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-broker/index.html 
b/content/docs/best-practice-broker/index.html
index a365897..d1a0f66 100644
--- a/content/docs/best-practice-broker/index.html
+++ b/content/docs/best-practice-broker/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Best Practice For Broker">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-consumer/index.html 
b/content/docs/best-practice-consumer/index.html
index be4eeeb..f5d2d38 100644
--- a/content/docs/best-practice-consumer/index.html
+++ b/content/docs/best-practice-consumer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Best Practice For Consumer">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-namesvr/index.html 
b/content/docs/best-practice-namesvr/index.html
index 3750099..aba662b 100644
--- a/content/docs/best-practice-namesvr/index.html
+++ b/content/docs/best-practice-namesvr/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Best Practice For NameServer">
     <meta itemprop="description" content="In Apache RocketMQ, name servers are 
designed to coordinate each component of the distributed systemand the 
coordination is mainly achieved through managing topic routing information.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/best-practice-producer/index.html 
b/content/docs/best-practice-producer/index.html
index 3b9b4d5..23fb576 100644
--- a/content/docs/best-practice-producer/index.html
+++ b/content/docs/best-practice-producer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Best Practice For Producer">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/broadcast-example/index.html 
b/content/docs/broadcast-example/index.html
index abf273d..8bb53d0 100644
--- a/content/docs/broadcast-example/index.html
+++ b/content/docs/broadcast-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Broadcasting">
     <meta itemprop="description" content="How to send broadcast messages in 
Apache RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/cli-admin-tool/index.html 
b/content/docs/cli-admin-tool/index.html
index 694474b..cf2e0cd 100644
--- a/content/docs/cli-admin-tool/index.html
+++ b/content/docs/cli-admin-tool/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="CLI Admin Tool">
     <meta itemprop="description" content="RocketMQ provides a CLI admin tool 
belt to query, manage and diagnose various issues.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/cluster-deployment/index.html 
b/content/docs/cluster-deployment/index.html
index c3b6967..272184f 100644
--- a/content/docs/cluster-deployment/index.html
+++ b/content/docs/cluster-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Cluster Configuration and Deployment">
     <meta itemprop="description" content="Prerequisite">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/code-guidelines/index.html 
b/content/docs/code-guidelines/index.html
index dae844e..8de9e44 100644
--- a/content/docs/code-guidelines/index.html
+++ b/content/docs/code-guidelines/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Coding Guidelines">
     <meta itemprop="description" content="Apache RocketMQ Coding Guidelines">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 30, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/core-concept/index.html 
b/content/docs/core-concept/index.html
index f83bf37..06a1ab7 100644
--- a/content/docs/core-concept/index.html
+++ b/content/docs/core-concept/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Core Concept">
     <meta itemprop="description" content="">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/create-pull-request/index.html 
b/content/docs/create-pull-request/index.html
index 0f82bf1..087f987 100644
--- a/content/docs/create-pull-request/index.html
+++ b/content/docs/create-pull-request/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="How to create Pull Request">
     <meta itemprop="description" content="This page guides you through the 
pull request creation process.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/documentation/index.html 
b/content/docs/documentation/index.html
index 1da5233..05f86a3 100644
--- a/content/docs/documentation/index.html
+++ b/content/docs/documentation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Documentation">
     <meta itemprop="description" content="Apache RocketMQ Documentation">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="March 02, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
index 4467b40..73b6c27 100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Frequently Asked Questions">
     <meta itemprop="description" content="The following questions are 
frequently asked with regard to the RocketMQ project in general.General1. Why 
did we create rocketmq project instead of selecting other products?Please refer 
to Why RocketMQ">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 28, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/filter-by-sql92-example/index.html 
b/content/docs/filter-by-sql92-example/index.html
index 3d43910..0bc295e 100644
--- a/content/docs/filter-by-sql92-example/index.html
+++ b/content/docs/filter-by-sql92-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Filter Example">
     <meta itemprop="description" content="How to filter messages by SQL92 in 
Apache RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 27, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/how-to-contribute/index.html 
b/content/docs/how-to-contribute/index.html
index 915de94..1835da1 100644
--- a/content/docs/how-to-contribute/index.html
+++ b/content/docs/how-to-contribute/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="How To Contribute">
     <meta itemprop="description" content="Apache RocketMQ is developed by an 
open and friendly community. Everybody is cordially welcome to join the 
community and contribute to Apache RocketMQ. There are several ways to interact 
with the community and to contribute to RocketMQ including asking questions, 
filing bug reports, proposing new features, joining discussions on the mailing 
lists, contributing code or documentation, improving the website, or testing 
release candidates.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="August 24, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/logappender-example/index.html 
b/content/docs/logappender-example/index.html
index 80268fb..ba6108d 100644
--- a/content/docs/logappender-example/index.html
+++ b/content/docs/logappender-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Logappender Example">
     <meta itemprop="description" content="How to use logappender in RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="June 09, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/motivation/index.html 
b/content/docs/motivation/index.html
index b415a3a..44bf7c2 100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Motivation">
     <meta itemprop="description" content="At early stages, we constructed our 
distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our 
multinational business uses it for asynchronous communication, search, social 
network activity stream, data pipeline,even in its trade processes. As our 
trade business throughput rises, pressure originating from our messaging 
clusteralso becomes urgent.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/openmessaging-example/index.html 
b/content/docs/openmessaging-example/index.html
index c7d9958..7aa4e23 100644
--- a/content/docs/openmessaging-example/index.html
+++ b/content/docs/openmessaging-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="OpenMessaging Example">
     <meta itemprop="description" content="How to use OpenMessaging in 
RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="June 09, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/order-example/index.html 
b/content/docs/order-example/index.html
index d42fb8d..e5b8088 100644
--- a/content/docs/order-example/index.html
+++ b/content/docs/order-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Order Message">
     <meta itemprop="description" content="How to send and receive ordered 
messages in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/pull-request/index.html 
b/content/docs/pull-request/index.html
index ccb696c..fe8f800 100644
--- a/content/docs/pull-request/index.html
+++ b/content/docs/pull-request/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="How to manage Pull Request">
     <meta itemprop="description" content="This page guides you through Git 
setup and contribution process.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/quick-start/index.html 
b/content/docs/quick-start/index.html
index 450e333..e890ee7 100644
--- a/content/docs/quick-start/index.html
+++ b/content/docs/quick-start/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Quick Start">
     <meta itemprop="description" content="How to quickly install and setup 
Apache RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="December 30, 2016">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/release-manual.html b/content/docs/release-manual.html
index b5dc07d..199b57d 100644
--- a/content/docs/release-manual.html
+++ b/content/docs/release-manual.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Release Manual">
     <meta itemprop="description" content="Apache RocketMQ Release Manual">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="February 08, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/rmq-arc/index.html b/content/docs/rmq-arc/index.html
index dd08459..4c9914d 100644
--- a/content/docs/rmq-arc/index.html
+++ b/content/docs/rmq-arc/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="RocketMQ Architecture">
     <meta itemprop="description" content="The main Architecture of Apache 
RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/rmq-deployment/index.html 
b/content/docs/rmq-deployment/index.html
index 1844635..15ce460 100644
--- a/content/docs/rmq-deployment/index.html
+++ b/content/docs/rmq-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Deployment">
     <meta itemprop="description" content="How to deploy the Apache RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/roadmap/index.html b/content/docs/roadmap/index.html
index 05b3778..011cd3a 100644
--- a/content/docs/roadmap/index.html
+++ b/content/docs/roadmap/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="The RoadMap of Apache RocketMQ">
     <meta itemprop="description" content="4.1.0~4.3.0-incubating RoadMap:">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="March 08, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/schedule-example/index.html 
b/content/docs/schedule-example/index.html
index 2c425f4..1842fe3 100644
--- a/content/docs/schedule-example/index.html
+++ b/content/docs/schedule-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Schedule example">
     <meta itemprop="description" content="How to use schedule component to 
reduce pull in RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/simple-example/index.html 
b/content/docs/simple-example/index.html
index c215a06..887bcfe 100644
--- a/content/docs/simple-example/index.html
+++ b/content/docs/simple-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Simple Message Example">
     <meta itemprop="description" content="How to send simple message to reduce 
pull in RocketMQ.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/docs/system-config/index.html 
b/content/docs/system-config/index.html
index 40f633f..cb85b75 100644
--- a/content/docs/system-config/index.html
+++ b/content/docs/system-config/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="RocketMQ JVM/Linux Configuration">
     <meta itemprop="description" content="This is an introduction for 
configuring RocketMQ broker JVM/OS parameters. It points out certain specified 
configurations that should be thinking about before deploying RocketMQ 
cluster.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="July 15, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/dowloading/releases/index.html 
b/content/dowloading/releases/index.html
index 464c59a..eb3be02 100644
--- a/content/dowloading/releases/index.html
+++ b/content/dowloading/releases/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-10-09T19:05:19+08:00">
+  <meta property="article:published_time" content="2017-12-13T22:55:11+08:00">
 
 
 
@@ -466,7 +466,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
     <meta itemprop="headline" content="Downloading the Apache RocketMQ 
Releases">
     <meta itemprop="description" content="Compatibility GuideThe table below 
shows the supported jre environment for components of each release.">
-    <meta itemprop="datePublished" content="October 09, 2017">
+    <meta itemprop="datePublished" content="December 13, 2017">
     <meta itemprop="dateModified" content="February 21, 2017">
 
     <div class="page__inner-wrap">
diff --git a/content/feed.xml b/content/feed.xml
index b87696e..60b2238 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -1,4 +1,99 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" 
href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom";><generator 
uri="http://jekyllrb.com"; version="3.3.1">Jekyll</generator><link 
href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" 
rel="alternate" type="text/html" 
/><updated>2017-10-09T19:05:19+08:00</updated><id>//</id><title 
type="html">Apache RocketMQ</title><subtitle>The homepage of 
RocketMQ.</subtitle><author><name>{&quot;name&qu [...]
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" 
href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom";><generator 
uri="http://jekyllrb.com"; version="3.3.1">Jekyll</generator><link 
href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" 
rel="alternate" type="text/html" 
/><updated>2017-12-13T22:55:11+08:00</updated><id>//</id><title 
type="html">Apache RocketMQ</title><subtitle>The homepage of 
RocketMQ.</subtitle><author><name>{&quot;name&qu [...]
+
+&lt;h2&gt; Download the 4.2.0 release
+&lt;/h2&gt;
+&lt;ul&gt;
+  &lt;li&gt;to be changed&lt;/li&gt;
+  &lt;li&gt;Source: &lt;a 
href=&quot;https://www.apache.org/dyn/closer.cgi?path=incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip&quot;&gt;rocketmq-all-4.0.0-incubating-source-release.zip&lt;/a&gt;
 [&lt;a 
href=&quot;https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.asc&quot;&gt;PGP&lt;/a&gt;]
 [&lt;a 
href=&quot;https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0
 [...]
+  &lt;li&gt;Binary: &lt;a 
href=&quot;https://www.apache.org/dyn/closer.cgi?path=incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip&quot;&gt;rocketmq-all-4.0.0-incubating-bin-release.zip&lt;/a&gt;
 [&lt;a 
href=&quot;https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.asc&quot;&gt;PGP&lt;/a&gt;]
 [&lt;a 
href=&quot;https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubati
 [...]
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;new-feature&quot;&gt;New Feature&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-28&quot;&gt;ROCKETMQ-28&lt;/a&gt;]
 -         Support transportation layer security
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-224&quot;&gt;ROCKETMQ-224&lt;/a&gt;]
 -       Suppport log4j2 in Client
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-294&quot;&gt;ROCKETMQ-294&lt;/a&gt;]
 -       Support flow control by number and size dimensions for PushConsumer
+&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;improvement&quot;&gt;Improvement&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-6&quot;&gt;ROCKETMQ-6&lt;/a&gt;]
 -         Use logger for exceptions instead of e.printStackTrace()
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-23&quot;&gt;ROCKETMQ-23&lt;/a&gt;]
 -     Better to return true when MappedFileQueue#flush is successful
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-96&quot;&gt;ROCKETMQ-96&lt;/a&gt;]
 -     Rename tmp variable 
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-258&quot;&gt;ROCKETMQ-258&lt;/a&gt;]
 -   Move benchmark scripts to distribution module
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-259&quot;&gt;ROCKETMQ-259&lt;/a&gt;]
 -   Reduce reflection calls when decode remoting command header
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-263&quot;&gt;ROCKETMQ-263&lt;/a&gt;]
 -   Reduce the cost of the unit test in OpenMessaging modules
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-266&quot;&gt;ROCKETMQ-266&lt;/a&gt;]
 -   Polish the exception message when  consumerThreadMax is smaller than 
consumerThreadMin
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-273&quot;&gt;ROCKETMQ-273&lt;/a&gt;]
 -   Simplify the code when the method has no write operation
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-279&quot;&gt;ROCKETMQ-279&lt;/a&gt;]
 -   Add consistent check for commit log data and consume queue data when start 
the broker
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-281&quot;&gt;ROCKETMQ-281&lt;/a&gt;]
 -       Add check to prevent repeating starting broker
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-307&quot;&gt;ROCKETMQ-307&lt;/a&gt;]
 -   Change JVM arguments for java 8 and direct memory GC
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-308&quot;&gt;ROCKETMQ-308&lt;/a&gt;]
 -   Improve broker register speed by increasing socket buffer size of name 
server 
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-311&quot;&gt;ROCKETMQ-311&lt;/a&gt;]
 -   Add fast failure mechanism for pull-request queue of broker
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-312&quot;&gt;ROCKETMQ-312&lt;/a&gt;]
 -   Use independent thread pool for QueryMessageProcessor
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-315&quot;&gt;ROCKETMQ-315&lt;/a&gt;]
 -   Enhance default settings of TLS
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-323&quot;&gt;ROCKETMQ-323&lt;/a&gt;]
 -   Release semaphore after callback is finished in async process
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-324&quot;&gt;ROCKETMQ-324&lt;/a&gt;]
 -   Expose an interface for client to specify the async call back executor
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-327&quot;&gt;ROCKETMQ-327&lt;/a&gt;]
 -   Add an interface to support decrypt a encrypted private key file
+&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;bug&quot;&gt;Bug&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-231&quot;&gt;ROCKETMQ-231&lt;/a&gt;]
 -   Fix the pull result size
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-234&quot;&gt;ROCKETMQ-234&lt;/a&gt;]
 -   Fix double-return bug in batch scenario
+&lt;/li&gt;
+
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-238&quot;&gt;ROCKETMQ-238&lt;/a&gt;]
 -    Make sure catch the exception in a periodic task of 
ScheduledExecutorService 
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-242&quot;&gt;ROCKETMQ-242&lt;/a&gt;]
 -   Make sure the client could fetch nameSrvAddr periodly
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-254&quot;&gt;ROCKETMQ-254&lt;/a&gt;]
 -   Fix the random test failure of LoggerAppender and reduce the cost time
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-260&quot;&gt;ROCKETMQ-260&lt;/a&gt;]
 -   Fix the wrong lock when destroy IndexService
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-270&quot;&gt;ROCKETMQ-270&lt;/a&gt;]
 -   Make sure the slave broker could start normally if master broker has 
cleaned commit log
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-277&quot;&gt;ROCKETMQ-277&lt;/a&gt;]
 -   Fix the exception in getLocalHost when server hostname not in hosts
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-284&quot;&gt;ROCKETMQ-284&lt;/a&gt;]
 -   Make sure the sql filter is not conflict with old tag filter
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-285&quot;&gt;ROCKETMQ-285&lt;/a&gt;]
 -   Fix the file test error when make link
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-291&quot;&gt;ROCKETMQ-291&lt;/a&gt;]
 -   Fix the UnknownFormatConversionException of System.out.printf
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-292&quot;&gt;ROCKETMQ-292&lt;/a&gt;]
 -   Fix exit problem in main thread when args parsing problem occurs
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-320&quot;&gt;ROCKETMQ-320&lt;/a&gt;]
 -   Make sure no message loss when shutdown with dispatch behind
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/ROCKETMQ-321&quot;&gt;ROCKETMQ-321&lt;/a&gt;]
 -   Make sure do not delete mapped files in the middle
+&lt;/li&gt;
+
+&lt;/ul&gt;</content><author><name>{&quot;name&quot;=&gt;nil, 
&quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, 
&quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming 
data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, 
&quot;email&quot;=&gt;&quot;[email protected]&quot;, 
&quot;uri&quot;=&gt;&quot;http://rocketmq.apache.org&quot;, 
&quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, 
&quot;dribbble&quot;=&gt;nil, &quo [...]
 
 &lt;p&gt;It is really appreciated that over 300 RocketMQ or open source 
enthusiasts gathered in Institute of Software, Chinese Academy of Sciences, to 
attend this meetup in such a hot summer day.
 &lt;img src=&quot;/assets/images/blog/meetup_beijing_group.jpg&quot; 
alt=&quot;meetup_beijing_group&quot; /&gt;&lt;/p&gt;
@@ -635,284 +730,4 @@ and fulfill much of this responsibility through managing 
topic route information
   &lt;li&gt;Rich Documentation and Good Test Cases Coverage&lt;/li&gt;
   &lt;li&gt;Join by Creating Pull Requests against &lt;a 
href=&quot;https://github.com/apache/rocketmq-externals/tree/master/rocketmq-flume&quot;&gt;RocketMQ
 Flume Repository&lt;/a&gt;&lt;/li&gt;
 &lt;/ol&gt;</content><author><name>{&quot;name&quot;=&gt;nil, 
&quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, 
&quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming 
data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, 
&quot;email&quot;=&gt;&quot;[email protected]&quot;, 
&quot;uri&quot;=&gt;&quot;http://rocketmq.apache.org&quot;, 
&quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, 
&quot;dribbble&quot;=&gt;nil, &quo [...]
-January 5th 2017</summary></entry><entry><title type="html">Mastering 
Component Compatible Dependency</title><link 
href="/maven/mastering-component-compatible-dependency/" rel="alternate" 
type="text/html" title="Mastering Component Compatible Dependency" 
/><published>2016-12-23T00:00:00+08:00</published><updated>2016-12-23T00:00:00+08:00</updated><id>/maven/mastering-component-compatible-dependency</id><content
 type="html" xml:base="/maven/mastering-component-compatible-dependency/">&lt; 
[...]
-
-&lt;aside class=&quot;sidebar__right&quot;&gt;
-&lt;nav class=&quot;toc&quot;&gt;
-    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa 
fa-file-text&quot;&gt;&lt;/i&gt; On This Page&lt;/h4&gt;&lt;/header&gt;
-&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
-  &lt;li&gt;&lt;a href=&quot;#compatibility&quot; 
id=&quot;markdown-toc-compatibility&quot;&gt;Compatibility&lt;/a&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;#component-compatible-dependency&quot; 
id=&quot;markdown-toc-component-compatible-dependency&quot;&gt;Component 
Compatible Dependency&lt;/a&gt;    &lt;ul&gt;
-      &lt;li&gt;&lt;a href=&quot;#interface-oriented-programming&quot; 
id=&quot;markdown-toc-interface-oriented-programming&quot;&gt;Interface-oriented
 programming&lt;/a&gt;&lt;/li&gt;
-      &lt;li&gt;&lt;a href=&quot;#single-component-signature-protection&quot; 
id=&quot;markdown-toc-single-component-signature-protection&quot;&gt;Single 
component signature protection&lt;/a&gt;&lt;/li&gt;
-      &lt;li&gt;&lt;a 
href=&quot;#single-component-compatibility-protection&quot; 
id=&quot;markdown-toc-single-component-compatibility-protection&quot;&gt;Single 
component compatibility protection&lt;/a&gt;&lt;/li&gt;
-      &lt;li&gt;&lt;a 
href=&quot;#multi-component-compatibility-compile-time-checking&quot; 
id=&quot;markdown-toc-multi-component-compatibility-compile-time-checking&quot;&gt;Multi-component
 compatibility compile time checking&lt;/a&gt;&lt;/li&gt;
-    &lt;/ul&gt;
-  &lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;#summary&quot; 
id=&quot;markdown-toc-summary&quot;&gt;Summary&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-  &lt;/nav&gt;
-&lt;/aside&gt;
-
-&lt;h1 id=&quot;compatibility&quot;&gt;Compatibility&lt;/h1&gt;
-
-&lt;p&gt;what is compatibility?it is also the key to understanding the 
compatible dependency.Compatibility, often catch our eyes through two 
forms,&lt;strong&gt;binary compatibility&lt;/strong&gt;,that means they can run 
the same executable code, typically machine code for a general purpose computer 
CPU.within the framework of Release-to-Release Binary Compatibility in SOM 
(Forman, Conner, Danforth, and Raper, Proceedings of OOPSLA ‘95), Java 
programming language binaries are binary comp [...]
-
-&lt;ul&gt;
-  &lt;li&gt;Reimplementing existing methods, constructors, and initializers to 
improve performance.&lt;/li&gt;
-  &lt;li&gt;Changing methods or constructors to return values on inputs for 
which they previously either threw exceptions that normally should not occur or 
failed by going into an infinite loop or causing a deadlock.&lt;/li&gt;
-  &lt;li&gt;Adding new fields, methods, or constructors to an existing class 
or interface.&lt;/li&gt;
-  &lt;li&gt;Deleting private fields, methods, or constructors of a 
class.&lt;/li&gt;
-  &lt;li&gt;When an entire package is updated, deleting default (package-only) 
access fields, methods, or constructors of classes and interfaces in the 
package.&lt;/li&gt;
-  &lt;li&gt;Reordering the fields, methods, or constructors in an existing 
type declaration.&lt;/li&gt;
-  &lt;li&gt;Moving a method upward in the class hierarchy.&lt;/li&gt;
-  &lt;li&gt;Reordering the list of direct superinterfaces of a class or 
interface.&lt;/li&gt;
-  &lt;li&gt;Inserting new class or interface types in the type 
hierarchy.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;Generally,java language is &lt;strong&gt;upwards 
binary-compatible&lt;/strong&gt; with previous version,such as Java SE 6 is 
upwards binary-compatible with J2SE 5.0 except for some minor 
incompatibilities.You can get details from &lt;a 
href=&quot;http://www.oracle.com/technetwork/java/javase/compatibility-137541.html#binary&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
-
-&lt;p&gt;Another compatibility form,we call it &lt;strong&gt;source 
compatibility&lt;/strong&gt;,meaning that recompilation is necessary.Java 
language does not support downward source compatibility. Such as if source 
files use new language features or Java SE platform APIs, they will not be 
usable with an earlier version of the Java platform. Usually it will throw 
similar error like this:&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;n&quot;&gt;java&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;UnsupportedClassVersionError&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span class=&quot [...]
-         &lt;span class=&quot;n&quot;&gt;Unsupported&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;major&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;minor&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span 
class=&quot;mf&quot;&gt;51.0&lt;/span&gt;
-         &lt;span class=&quot;n&quot;&gt;at&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;java&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;ClassLoader&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;defineClass1&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Nativ [...]
-         &lt;span class=&quot;n&quot;&gt;at&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;java&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;ClassLoader&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;defineClassCond&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Un [...]
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;Java language source compatibility policy is as follows,except for 
any incompatibilities listed further below:&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Maintenance releases (such as 1.7.25, 1.7.26) do not introduce any 
new language features or APIs. They will maintain source-compatibility with 
each other.&lt;/li&gt;
-  &lt;li&gt;Functionality releases and major releases (such as 
1.4.0,5.0,6.0,7.0,8.0) maintain upwards but not downwards 
source-compatibility.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;Let’s sum up before going on:&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Document those incompatibility cases as much as possible, even 
some rare circumstances and corner cases.&lt;/li&gt;
-  &lt;li&gt;Recommend developer to provide facilities that alert developers to 
the impact of changes on pre-existing binaries that cannot be 
recompiled.&lt;/li&gt;
-  &lt;li&gt;Generally speaking,Binary Compatibility problems may occur in the 
following situations:&lt;/li&gt;
-  &lt;li&gt;&lt;strong&gt;Replacing the old with the new&lt;/strong&gt;,such 
as the Java platform Profiling Architecture in the Java SE6,JVMDI was removed 
and JVMPI was disabled in Java SE 6.&lt;/li&gt;
-  &lt;li&gt;&lt;strong&gt;Combinatorial resolution&lt;/strong&gt;,such as Non 
class files have been moved from rt.jar in Java SE 6.if 
-Xbootclasspath:&lt;path to=&quot;&quot; rt.jar=&quot;&quot;&gt; is 
specified,and request any resource files will fail since these resources now 
reside in a different jar file called resources.jar.&lt;/path&gt;&lt;/li&gt;
-  &lt;li&gt;&lt;strong&gt;Behavior change&lt;/strong&gt;,such as Java SE 6 
will throw an OverlappingFileLockException,if the application attempts to lock 
the overlapping region other instances of FileChannel that has been locked, in 
order to realize the backward compatibility, it provides 
disableSystemWideOverlappingFileLockCheck system properties. again, also in 
Java SE 6, jar will preserve file modification dates and times during extract, 
through the sun.tools.jar.useExtractionTime=tru [...]
-  &lt;li&gt;&lt;strong&gt;Structure change&lt;/strong&gt;,this is also the key 
problem to solve in &lt;strong&gt;Dependency Mediator&lt;/strong&gt; project. 
generally speaking,modification and deletion belonging to incompatible 
operations.and more attentions must be paid in the RPC service maintenance, 
more detailed description,please refer to an &lt;a 
href=&quot;http://blog.csdn.net/fengjia10/article/details/7799227&quot;&gt;article&lt;/a&gt;
 I wrote before. also you can read the the th [...]
-&lt;/ul&gt;
-
-&lt;h1 id=&quot;component-compatible-dependency&quot;&gt;Component Compatible 
Dependency&lt;/h1&gt;
-
-&lt;p&gt;This article don’t talk about &lt;strong&gt;dependency 
analysis&lt;/strong&gt; and &lt;strong&gt;dependency 
decoupling&lt;/strong&gt;,if you care these topics,please read &lt;a 
href=&quot;http://java.dzone.com/articles/dependency-analysis-and-1&quot;&gt;Dependency
 Analysis and the Modularisation of Java Programs&lt;/a&gt;.highly recommending 
you try to dive into open source project &lt;a 
href=&quot;http://xplrarc.massey.ac.nz/&quot;&gt;Architecture 
Explorer&lt;/a&gt;,through bce [...]
-
-&lt;p&gt;Let’s return,ask yourself,have you ever been disturbed by the 
following problems?&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Your service depend a volatile service,volatile means your service 
depending neither an abstract class nor a interface,this class update at 
irregular intervals,you often encountered errors such as 
&lt;strong&gt;NoSuchMethodError&lt;/strong&gt;,&lt;strong&gt;NoSuchFieldError&lt;/strong&gt;
 and &lt;strong&gt;NoClassDefFoundError&lt;/strong&gt; etc.&lt;/li&gt;
-  &lt;li&gt;You are developing a new feature,but this feature can not backward 
compatible with previous version,
-what should you do ? How do you give a incompatible list in your release 
report.&lt;/li&gt;
-  &lt;li&gt;Java language library is a superb collection of beautiful 
things,how do you make a rational dependency exclusion and effective mediate 
various dependency problems when developing.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;It is the time to introduce the key idea - &lt;strong&gt;Mediating 
Components Compatible Dependency&lt;/strong&gt;.Specifically,it includs the 
following basic principles:&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Interface-oriented programming&lt;/li&gt;
-  &lt;li&gt;Single component signature protection&lt;/li&gt;
-  &lt;li&gt;Single component compatibility protection&lt;/li&gt;
-  &lt;li&gt;Multi-component compatibility compile time checking&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id=&quot;interface-oriented-programming&quot;&gt;Interface-oriented 
programming&lt;/h2&gt;
-
-&lt;p&gt;Interface-oriented programming,It’s easier said than done.I will cite 
SLF4J design philosophy explain this principle.&lt;/p&gt;
-
-&lt;p&gt;Differing from commons logging,SLF4J use &lt;strong&gt;static binder 
technology&lt;/strong&gt; so as to avoid notorious &lt;a 
href=&quot;http://articles.qos.ch/classloader.html&quot;&gt;classloader 
problem&lt;/a&gt;,every concrete log implementation must 
-have a class named StaticLoggerBinder and implementing SLF4J spi 
LoggerFactoryBinder.thus you just depend SLF4J api,not concerned about 
underlying implementation.some people may asking,why choose SLF4J not commons 
logging,I can also depend commons logging api but not concret 
implementation?it’s not performance but classloader problem.JCL discovery 
process relies on classloader hacks to find the logging framework at runtime 
but this mechanism leads to numerous problems including unexpecte [...]
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// 
We need to use the name of the StaticLoggerBinder class, but we can't 
reference&lt;/span&gt;
-&lt;span class=&quot;c1&quot;&gt;// the class itself.&lt;/span&gt;
-&lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;STATIC_LOGGER_BINDER_PATH&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&quot;org/slf4j/impl/StaticLoggerBinder.class&quot;&lt;/span&gt;&lt;span
 class=&quot;o&quot;&gt;;&lt;/span&gt;
- &lt;span class=&quot;cm&quot;&gt;/**
-  * It is LoggerFactory's responsibility to track version changes and manage
-  * the compatibility list.
-  * It is assumed that all versions in the 1.6 are mutually compatible.
-  */&lt;/span&gt;
-&lt;span class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;final&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;[]&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;API_COMPATIBILITY_LIST&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span class=&quo [...]
-
-&lt;span class=&quot;c1&quot;&gt;// private constructor prevents 
instantiation&lt;/span&gt;
-&lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;LoggerFactory&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;{}&lt;/span&gt;
-&lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;final&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span 
class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;versionSanityCheck&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;{&lt;/span&gt;
- &lt;span class=&quot;k&quot;&gt;try&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;{&lt;/span&gt;
-    &lt;span class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;requested&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StaticLoggerBinder&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;REQUESTED_API_VERSION&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-    &lt;span class=&quot;kt&quot;&gt;boolean&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;match&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;API_COMPATIBILITY_LIST [...]
-      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;requested&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;startsWith&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;API_COMPATIBILITY_LIST&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt [...]
-          &lt;span class=&quot;n&quot;&gt;match&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-      &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-     &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;(!&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;match&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;{&lt;/span&gt;
-      &lt;span class=&quot;n&quot;&gt;Util&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;report&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;The 
requested version &quot;&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;requested&lt;/span&gt;
-           &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&quot; by your slf4j binding is not compatible with 
&quot;&lt;/span&gt;
-           &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;Arrays&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;asList&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;API_COMPATIBILITY_LIST&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;).&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;toString&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;());&lt;/span&gt;
-      &lt;span class=&quot;n&quot;&gt;Util&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;report&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;See 
&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;VERSION_MISMATCH&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot; 
for further details.&quot;&lt;/span& [...]
-    &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;catch&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;java&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;NoSuchFieldError&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;nsfe&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt [...]
- &lt;span class=&quot;c1&quot;&gt;// given our large user base and SLF4J's 
commitment to backward&lt;/span&gt;
- &lt;span class=&quot;c1&quot;&gt;// compatibility, we cannot cry here. Only 
for implementations&lt;/span&gt;
- &lt;span class=&quot;c1&quot;&gt;// which willingly declare a 
REQUESTED_API_VERSION field do we&lt;/span&gt;
- &lt;span class=&quot;c1&quot;&gt;// emit compatibility warnings.&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;catch&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;Throwable&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;{&lt;/span&gt;
- &lt;span class=&quot;c1&quot;&gt;// we should never reach here&lt;/span&gt;
- &lt;span class=&quot;n&quot;&gt;Util&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;report&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&quot;Unexpected problem occured during version sanity 
check&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;);&lt;/span&gt;
-  &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;you can use these skills at your library.just Let others depend on 
your interface package,detecting certain implementation statically.&lt;/p&gt;
-
-&lt;p&gt;If you have developed an old version library,naming it as 2.x.x.next 
version,you hope to refactor some implementations,how to process multi-version 
compatibility?here is a skill from maven dependency plugin:&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;hint&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;isMaven31&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;?&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&quot;maven31&quot;&lt;/span&gt; &lt;span class=&q [...]
-
-&lt;span class=&quot;cm&quot;&gt;/**
-* Check the current Maven version to see if it's Maven 2.x.
-*/&lt;/span&gt;
-&lt;span class=&quot;kd&quot;&gt;protected&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span 
class=&quot;kt&quot;&gt;boolean&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;isMaven2x&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
-   &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;!&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;canFindCoreClass&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&quot;org.apache.maven.project.DependencyResolutionRequest&quot;&lt;/span&gt;
 &lt;span class=&quot;o&quot;&gt;);&lt;/span&gt; &lt;span 
class=&quot;c1&quot;&gt;// Maven 3 specific&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-
-&lt;span class=&quot;cm&quot;&gt;/**
-* Check the current Maven version to see if it's Maven 3.1.
-*/&lt;/span&gt;
-&lt;span class=&quot;kd&quot;&gt;protected&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span 
class=&quot;kt&quot;&gt;boolean&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;isMaven31&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
-   &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;canFindCoreClass&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&quot;org.eclipse.aether.artifact.Artifact&quot;&lt;/span&gt;
 &lt;span class=&quot;o&quot;&gt;);&lt;/span&gt; &lt;span 
class=&quot;c1&quot;&gt;// Maven 3.1 specific&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;h2 id=&quot;single-component-signature-protection&quot;&gt;Single 
component signature protection&lt;/h2&gt;
-
-&lt;p&gt;Secondly,Single component signature protection,you can using &lt;a 
href=&quot;http://mojo.codehaus.org/animal-sniffer/&quot;&gt;Animal Sniffer 
project&lt;/a&gt; as well-known Guava library,Animal Sniffer provides tools to 
assist verifying that classes compiled with a newer JDK/API are compatible with 
an older JDK/API.&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;plugin&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-   &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;groupId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;org&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;codehaus&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mojo&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;g 
[...]
-   &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;artifactId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;animal&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;sniffer&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;maven&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plugi [...]
-   &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;configuration&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-     &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;signature&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;groupId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;org&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;codehaus&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mojo&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;sign [...]
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;artifactId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;java16&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;sun&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;artifactId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;version&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;mf&quot;&gt;1.0&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;version&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-     &lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;signature&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-   &lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;configuration&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-   &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;executions&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-     &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;execution&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;check&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;java16&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;sun&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;id&lt [...]
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;phase&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;test&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;phase&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;goals&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-         &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;goal&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;check&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;goal&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-       &lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;goals&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-     &lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;execution&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-   &lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;executions&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
- &lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;plugin&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;So from now on, when you performing a mvn test or mvn install 
operation. If there is an incompatibility in one of the projects, you would 
find some output like this:&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;INFO&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;animal&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;nl&quot;&gt;sniffer:&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;check&lt; [...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;INFO&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;Checking&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;unresolved&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;references&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;org&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;codehaus& 
[...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ERROR&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;Undefined&lt;/span&gt; &lt;span 
class=&quot;nl&quot;&gt;reference:&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;java&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;lang&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;String&lt;/span [...]
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;More details please see &lt;a 
href=&quot;http://blog.gvsig.org/2011/07/25/hunting-api-incompatibilities-with-the-animal-sniffer-project/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;single-component-compatibility-protection&quot;&gt;Single 
component compatibility protection&lt;/h2&gt;
-
-&lt;p&gt;If your a SOA develper,you almost concerned with single component 
compatibility protection.[Clirr project] (http://clirr.sourceforge.net/) may be 
your best choice.Clirr is a tool that checks Java libraries for binary and 
source compatibility with older releases. Basically you give it two sets of jar 
files and Clirr dumps out a list of changes in the public api. The Clirr Ant 
task can be configured to break the build if it detects incompatible api 
changes. In a continuous integra [...]
-
-&lt;p&gt;How to use it?just add some config snippets in your pom :&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;plugin&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-  &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;groupId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;org&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;codehaus&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mojo&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gr 
[...]
-  &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;artifactId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;clirr&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;maven&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;plugin&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt; 
[...]
-  &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;version&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;mf&quot;&gt;2.6&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;version&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;plugin&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;then,run &lt;code class=&quot;highlighter-rouge&quot;&gt;mvn 
clirr:check&lt;/code&gt;,output may be like this:&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;INFO&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;---&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;clirr&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;maven&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span& [...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;INFO&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;artifact&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;alibaba&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;intl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;spa [...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;INFO&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;Comparing&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span 
class=&quot;nl&quot;&gt;version:&lt;/span&gt; &lt;span 
class=&quot;mf&quot;&gt;2.0&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;mi&quot;&gt;1&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ERROR&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;mi&quot;&gt;7005&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;alibaba&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mq&lt;/span&gt;&lt;span cl [...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ERROR&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;mi&quot;&gt;7005&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;alibaba&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mq&lt;/span&gt;&lt;span cl [...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ERROR&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;mi&quot;&gt;7005&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;alibaba&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mq&lt;/span&gt;&lt;span cl [...]
-&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ERROR&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;mi&quot;&gt;7005&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;alibaba&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;mq&lt;/span&gt;&lt;span cl [...]
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;Some inspiration in &lt;strong&gt;Dependency Mediator&lt;/strong&gt; 
project just come from here.more topics about compatible,you can reference from 
series article &lt;a 
href=&quot;http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs&quot;&gt;Evolving
 Java-based APIs&lt;/a&gt;&lt;/p&gt;
-
-&lt;h2 
id=&quot;multi-component-compatibility-compile-time-checking&quot;&gt;Multi-component
 compatibility compile time checking&lt;/h2&gt;
-
-&lt;p&gt;Last but not least,Multi-component compatibility compile time 
checking.it’s the time to formally recommend project &lt;strong&gt;Dependency 
Mediator&lt;/strong&gt;.&lt;/p&gt;
-
-&lt;p&gt;unlike karaf and other lightness modular technology(like osgi,class 
names do not need to be unique,but the combination of class names and their 
defining ClassLoader must to be unique),&lt;strong&gt;Dependency 
Mediator&lt;/strong&gt; try to remedy component dependency conflicting problem 
before the runtime rather than using customized &lt;a 
href=&quot;http://www.onjava.com/pub/a/onjava/2005/04/13/dependencies.html&quot;&gt;classLoader&lt;/a&gt;
 to agree with the coexistence of di [...]
-
-&lt;p&gt;What is the principle of &lt;strong&gt;Dependency 
Mediator&lt;/strong&gt;?&lt;strong&gt;Dependency Mediator&lt;/strong&gt; try to 
mediate various component conflicting problems.It uses jar or class as the 
smallest component unit,that is ComponentEntry:&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span 
class=&quot;nc&quot;&gt;ComponentEntry&lt;/span&gt; &lt;span 
class=&quot;kd&quot;&gt;implements&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;Comparable&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ComponentEntry&lt [...]
-  &lt;span class=&quot;cm&quot;&gt;/**
-   * Similar file name
-   */&lt;/span&gt;
-  &lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;   &lt;span 
class=&quot;n&quot;&gt;pathName&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-  &lt;span class=&quot;cm&quot;&gt;/**
-   * Component name ,such as fully-qualified class name or jar name
-   */&lt;/span&gt;
-  &lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;   &lt;span 
class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-  &lt;span class=&quot;cm&quot;&gt;/**
-   * Name of the jar which contains this entry,this field may be null
-   */&lt;/span&gt;
-  &lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;   &lt;span 
class=&quot;n&quot;&gt;jarName&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-  &lt;span class=&quot;cm&quot;&gt;/**
-   * Jar entry meta info,if it is a jar file,this field may be null
-   */&lt;/span&gt;
-  &lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;JarEntry&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;entry&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;;&lt;/span&gt;
-  &lt;span class=&quot;o&quot;&gt;....&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;It could scan directory(also including classpath,if you set system 
property scanClasspath) and POM.if it happen to jar,but you setting checkJars 
to false,it could detect inner MANIFEST file,using 
&lt;strong&gt;Build-Jdk&lt;/strong&gt; and 
&lt;strong&gt;Built-By&lt;/strong&gt; properties to decide whether duplicated 
jars.thus,output only report whether including duplicated jar.but if you 
-setting checkJars to true or nothing to do with this property,it will further 
analyzes whether existing incompatible cases.&lt;/p&gt;
-
-&lt;p&gt;It also provides a maven plugin,if your project is a web project,you 
must run mvn insall before next step. Maven plugin also comply with the latest 
annotation mojo api rather than version 2.x.x doclet api.&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Dependency Mediator&lt;/strong&gt; take advantage of 
&lt;strong&gt;nearest definition&lt;/strong&gt; dependency mediation strategy. 
this determines what version of a dependency will be used when multiple 
versions of an artifact are encountered. &lt;strong&gt;nearest 
definition&lt;/strong&gt;,means that it will use the version of the closest 
dependency to your project in the tree of dependencies. You can always 
guarantee a version by declaring it explicitly in your  [...]
-&lt;strong&gt;nearest definition&lt;/strong&gt; means that the version used 
will be the closest one to your project in the tree of dependencies, eg. if 
dependencies for A, B, and C are defined as A -&amp;gt; B -&amp;gt; C -&amp;gt; 
D 2.0 and A -&amp;gt; E -&amp;gt; D 1.0, then D 1.0 will be used when building 
A because the path from A to D through E is shorter. You could explicitly add a 
dependency to D 2.0 in A to force the use of D 2.0.&lt;/p&gt;
-
-&lt;p&gt;If you consider the dependency hierarchy as a binary tree 
structure,Undoubtedly,&lt;strong&gt;nearest definition&lt;/strong&gt; means the 
&lt;strong&gt;minimum depth&lt;/strong&gt;. so if you put some higher version 
dependency library after lower version one(may be transitive dependency),you 
will face incompatible conflicting problems.Such as :&lt;/p&gt;
-
-&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre 
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span 
class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;WARNING&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;Founded&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;conflicting&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;dependency&lt;/span&gt; &lt;span 
class=&quot;nl&quot;&gt;component:&lt;/span&gt;&lt;span clas [...]
-&lt;/code&gt;&lt;/pre&gt;
-&lt;/div&gt;
-
-&lt;p&gt;In this case,you could fix this problem through place libthrift 0.9.1 
before the library imported through transitive dependency.&lt;/p&gt;
-
-&lt;p&gt;of course,all the establishment must meet a premise,that is:&lt;/p&gt;
-&lt;ul&gt;
-  &lt;li&gt;&lt;strong&gt;Functionality releases and major releases(such as 
1.4.x, 1.5.x,2.x.x,3.x.x) have source compatibility 
problems.&lt;/strong&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;In &lt;strong&gt;Dependency Mediator&lt;/strong&gt; 2.0 version,you 
could customize version differentiation strategy,not limited the 
aformentioned.by the way, also in 2.0,I will improvement compatible dependency 
mediator, please wait and see.&lt;/p&gt;
-
-&lt;h1 id=&quot;summary&quot;&gt;Summary&lt;/h1&gt;
-
-&lt;p&gt;Through this article, you almost calculated the evolution process of 
the &lt;strong&gt;Dependency Mediator&lt;/strong&gt; project.in my 
opinion,integration with the maven enforcer plugin may be a better choice.After 
all,I hope &lt;strong&gt;Dependency Mediator&lt;/strong&gt; can keep 
sustainable development.I would try and donate this project to codehaus in the 
near future.&lt;/p&gt;
-
-&lt;p&gt;If you have better idea or improving suggestion, please contact &lt;a 
href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.&lt;/p&gt;</content><author><name>{&quot;name&quot;=&gt;nil,
 &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, 
&quot;bio&quot;=&gt;&quot;An open source distributed messaging and streaming 
data platform.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, 
&quot;email&quot;=&gt;&quot;[email protected] [...]
+January 5th 2017</summary></entry></feed>
diff --git a/content/release_notes/release-notes-4.2.0/index.html 
b/content/release_notes/release-notes-4.2.0/index.html
new file mode 100644
index 0000000..92bf6b2
--- /dev/null
+++ b/content/release_notes/release-notes-4.2.0/index.html
@@ -0,0 +1,606 @@
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Release Notes - Apache RocketMQ - Version 4.2.0 - Apache 
RocketMQ</title>
+
+
+
+
+<meta name="description" content="Below is a summary of the JIRA issues 
addressed in the 4.2.0 release of RocketMQ. For full documentation of the 
release, a guide to get started, please refer to Quick Start.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Release Notes - Apache RocketMQ - Version 
4.2.0">
+
+
+
+
+  <meta property="og:description" content="Below is a summary of the JIRA 
issues addressed in the 4.2.0 release of RocketMQ. For full documentation of 
the release, a guide to get started, please refer to Quick Start.">
+
+
+
+  <meta name="twitter:site" content="@ApacheRocketMQ">
+  <meta name="twitter:title" content="Release Notes - Apache RocketMQ - 
Version 4.2.0">
+  <meta name="twitter:description" content="Below is a summary of the JIRA 
issues addressed in the 4.2.0 release of RocketMQ. For full documentation of 
the release, a guide to get started, please refer to Quick Start.">
+  <meta name="twitter:url" content="">
+
+  
+    <meta name="twitter:card" content="summary">
+    
+  
+
+  
+
+
+
+  
+
+  
+
+
+
+
+
+  <meta property="og:type" content="article">
+  <meta property="article:published_time" content="2017-12-13T00:00:00+08:00">
+
+
+
+
+
+
+
+
+  <script type="application/ld+json">
+    {
+      "@context" : "http://schema.org";,
+      "@type" : "Person",
+      "name" : "Apache RocketMQ",
+      "url" : null,
+      "sameAs" : null
+    }
+  </script>
+
+
+
+  <meta name="google-site-verification" 
content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+  <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache RocketMQ Feed">
+
+<!-- http://t.co/dKP3o1e -->
+<meta name="HandheldFriendly" content="True">
+<meta name="MobileOptimized" content="320">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<script>
+  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
+</script>
+
+<!-- For all browsers -->
+<link rel="stylesheet" href="/assets/css/main.css">
+
+<meta http-equiv="cleartype" content="on">
+    <!-- start custom head snippets -->
+
+<!-- insert favicons. use http://realfavicongenerator.net/ -->
+
+<!-- end custom head snippets -->
+  </head>
+
+  <body class="layout--single">
+
+    <!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
+<![endif]-->
+    <div class="masthead">
+  <div class="masthead__inner-wrap">
+    <div class="masthead__menu">
+      <nav id="site-nav" class="greedy-nav">
+        <button><div class="navicon"></div></button>
+        <ul class="visible-links">
+          <li class="masthead__menu-item masthead__menu-item--lg"><a 
href="/">Apache RocketMQ</a></li>
+          
+            
+            <li class="masthead__menu-item"><a 
href="/docs/quick-start/">Documentation</a></li>
+          
+            
+            <li class="masthead__menu-item"><a 
href="/year-archive/">Blog</a></li>
+          
+            
+            <li class="masthead__menu-item"><a 
href="/community/">Community</a></li>
+          
+            
+            <li class="masthead__menu-item"><a href="/users/">Users</a></li>
+          
+            
+            <li class="masthead__menu-item"><a 
href="/about/team/">About</a></li>
+          
+        </ul>
+        <ul class="hidden-links hidden"></ul>
+      </nav>
+    </div>
+  </div>
+</div>
+
+    
+
+
+
+<div id="main" role="main">
+  
+  <div class="sidebar sticky">
+  
+
+<div itemscope itemtype="http://schema.org/Person";>
+
+  
+    <div class="author__avatar">
+      
+        <img src="/assets/images/rmq-logo.png" class="author__avatar" alt="" 
itemprop="image">
+      
+    </div>
+  
+
+  <div class="author__content">
+    <h3 class="author__name" itemprop="name"></h3>
+    
+      <p class="author__bio" itemprop="description">
+        An open source distributed messaging and streaming data platform.
+      </p>
+    
+  </div>
+
+  <div class="author__urls-wrapper">
+    <button class="btn btn--inverse">Follow</button>
+    <ul class="author__urls social-icons">
+      
+        <li itemprop="homeLocation" itemscope 
itemtype="http://schema.org/Place";>
+          <i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> <span 
itemprop="name">Hangzhou, China</span>
+        </li>
+      
+
+      
+        <li>
+          <a href="http://rocketmq.apache.org"; itemprop="url">
+            <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+          </a>
+        </li>
+      
+
+      
+        <li>
+          <a href="mailto:[email protected]";>
+            <meta itemprop="email" content="[email protected]" />
+            <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> 
Email
+          </a>
+        </li>
+      
+
+      
+
+      
+        <li>
+          <a href="https://twitter.com/ApacheRocketMQ"; itemprop="sameAs">
+            <i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> 
Twitter
+          </a>
+        </li>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+        <li>
+          <a href="https://github.com/apache/rocketmq"; itemprop="sameAs">
+            <i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub
+          </a>
+        </li>
+      
+
+      
+        <li>
+          <a href="https://www.stackoverflow.com/questions/tagged/rocketmq"; 
itemprop="sameAs">
+            <i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> 
Stackoverflow
+          </a>
+        </li>
+      
+
+      
+        <li>
+          <a href="https://www.quora.com/topic/RocketMQ"; itemprop="sameAs">
+            <i class="fa fa-fw" aria-hidden="true"><strong>Q</strong></i> Quora
+          </a>
+        </li>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      <!--
+  <li>
+    <a href="http://link-to-whatever-social-network.com/user/"; 
itemprop="sameAs">
+      <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
+    </a>
+  </li>
+-->
+    </ul>
+  </div>
+</div>
+
+  
+  </div>
+
+
+  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
+    <meta itemprop="headline" content="Release Notes - Apache RocketMQ - 
Version 4.2.0">
+    <meta itemprop="description" content="Below is a summary of the JIRA 
issues addressed in the 4.2.0 release of RocketMQ. For full documentation of 
the release, a guide to get started, please refer to Quick Start.">
+    <meta itemprop="datePublished" content="December 13, 2017">
+    
+
+    <div class="page__inner-wrap">
+      
+        <header>
+          <h1 class="page__title" itemprop="headline">Release Notes - Apache 
RocketMQ - Version 4.2.0
+</h1>
+          
+            <p class="page__meta"><i class="fa fa-clock-o" 
aria-hidden="true"></i> 
+
+
+
+
+  2 minute read
+</p>
+          
+        </header>
+      
+
+      <section class="page__content" itemprop="text">
+        <p>Below is a summary of the JIRA issues addressed in the 4.2.0 
release of RocketMQ. For full documentation of the release, a guide to get 
started, please refer to <a href="/docs/quick-start/">Quick Start</a>.</p>
+
+<h2> Download the 4.2.0 release
+</h2>
+<ul>
+  <li>to be changed</li>
+  <li>Source: <a 
href="https://www.apache.org/dyn/closer.cgi?path=incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip";>rocketmq-all-4.0.0-incubating-source-release.zip</a>
 [<a 
href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.asc";>PGP</a>]
 [<a 
href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.md5";>MD5</a>]
 [<a href="htt [...]
+  <li>Binary: <a 
href="https://www.apache.org/dyn/closer.cgi?path=incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip";>rocketmq-all-4.0.0-incubating-bin-release.zip</a>
 [<a 
href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.asc";>PGP</a>]
 [<a 
href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.md5";>MD5</a>]
 [<a href="https://www.apa [...]
+</ul>
+
+<h2 id="new-feature">New Feature</h2>
+
+<ul>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-28";>ROCKETMQ-28</a>] -     
    Support transportation layer security
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-224";>ROCKETMQ-224</a>] -   
    Suppport log4j2 in Client
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-294";>ROCKETMQ-294</a>] -   
    Support flow control by number and size dimensions for PushConsumer
+</li>
+</ul>
+
+<h2 id="improvement">Improvement</h2>
+
+<ul>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-6";>ROCKETMQ-6</a>] -       
  Use logger for exceptions instead of e.printStackTrace()
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-23";>ROCKETMQ-23</a>] -     
Better to return true when MappedFileQueue#flush is successful
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-96";>ROCKETMQ-96</a>] -     
Rename tmp variable 
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-258";>ROCKETMQ-258</a>] -   
Move benchmark scripts to distribution module
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-259";>ROCKETMQ-259</a>] -   
Reduce reflection calls when decode remoting command header
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-263";>ROCKETMQ-263</a>] -   
Reduce the cost of the unit test in OpenMessaging modules
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-266";>ROCKETMQ-266</a>] -   
Polish the exception message when  consumerThreadMax is smaller than 
consumerThreadMin
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-273";>ROCKETMQ-273</a>] -   
Simplify the code when the method has no write operation
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-279";>ROCKETMQ-279</a>] -   
Add consistent check for commit log data and consume queue data when start the 
broker
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-281";>ROCKETMQ-281</a>] -   
    Add check to prevent repeating starting broker
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-307";>ROCKETMQ-307</a>] -   
Change JVM arguments for java 8 and direct memory GC
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-308";>ROCKETMQ-308</a>] -   
Improve broker register speed by increasing socket buffer size of name server 
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-311";>ROCKETMQ-311</a>] -   
Add fast failure mechanism for pull-request queue of broker
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-312";>ROCKETMQ-312</a>] -   
Use independent thread pool for QueryMessageProcessor
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-315";>ROCKETMQ-315</a>] -   
Enhance default settings of TLS
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-323";>ROCKETMQ-323</a>] -   
Release semaphore after callback is finished in async process
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-324";>ROCKETMQ-324</a>] -   
Expose an interface for client to specify the async call back executor
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-327";>ROCKETMQ-327</a>] -   
Add an interface to support decrypt a encrypted private key file
+</li>
+</ul>
+
+<h2 id="bug">Bug</h2>
+
+<ul>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-231";>ROCKETMQ-231</a>] -   
Fix the pull result size
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-234";>ROCKETMQ-234</a>] -   
Fix double-return bug in batch scenario
+</li>
+
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-238";>ROCKETMQ-238</a>] -   
 Make sure catch the exception in a periodic task of ScheduledExecutorService 
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-242";>ROCKETMQ-242</a>] -   
Make sure the client could fetch nameSrvAddr periodly
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-254";>ROCKETMQ-254</a>] -   
Fix the random test failure of LoggerAppender and reduce the cost time
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-260";>ROCKETMQ-260</a>] -   
Fix the wrong lock when destroy IndexService
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-270";>ROCKETMQ-270</a>] -   
Make sure the slave broker could start normally if master broker has cleaned 
commit log
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-277";>ROCKETMQ-277</a>] -   
Fix the exception in getLocalHost when server hostname not in hosts
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-284";>ROCKETMQ-284</a>] -   
Make sure the sql filter is not conflict with old tag filter
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-285";>ROCKETMQ-285</a>] -   
Fix the file test error when make link
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-291";>ROCKETMQ-291</a>] -   
Fix the UnknownFormatConversionException of System.out.printf
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-292";>ROCKETMQ-292</a>] -   
Fix exit problem in main thread when args parsing problem occurs
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-320";>ROCKETMQ-320</a>] -   
Make sure no message loss when shutdown with dispatch behind
+</li>
+<li>[<a 
href="https://issues.apache.org/jira/browse/ROCKETMQ-321";>ROCKETMQ-321</a>] -   
Make sure do not delete mapped files in the middle
+</li>
+
+</ul>
+
+
+        
+      </section>
+
+      <footer class="page__meta">
+        
+        
+  
+
+
+  
+  
+  
+
+  <p class="page__taxonomy">
+    <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> Tags: </strong>
+    <span itemprop="keywords">
+    
+      
+      
+      <a href="/tags/#release-notes" class="page__taxonomy-item" 
rel="tag">Release_Notes</a><span class="sep">, </span>
+    
+      
+      
+      <a href="/tags/#rocketmq" class="page__taxonomy-item" 
rel="tag">RocketMQ</a><span class="sep">, </span>
+    
+      
+      
+      <a href="/tags/#version" class="page__taxonomy-item" 
rel="tag">Version</a>
+    
+    </span>
+  </p>
+
+
+
+
+  
+
+
+  
+  
+  
+
+  <p class="page__taxonomy">
+    <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> 
Categories: </strong>
+    <span itemprop="keywords">
+    
+      
+      
+      <a href="/categories/#release-notes" class="page__taxonomy-item" 
rel="tag">Release_Notes</a>
+    
+    </span>
+  </p>
+
+
+        
+          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> Updated:</strong> <time 
datetime="2017-12-13T00:00:00+08:00">December 13, 2017</time></p>
+        
+      </footer>
+
+      <section class="page__share">
+  
+    <h4 class="page__share-title">Share on</h4>
+  
+
+  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Release 
Notes - Apache RocketMQ - Version 4.2.0 /release_notes/release-notes-4.2.0/" 
class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw 
fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+
+  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/release_notes/release-notes-4.2.0/";
 class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+
+  <a 
href="https://plus.google.com/share?url=/release_notes/release-notes-4.2.0/"; 
class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+
+  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/release_notes/release-notes-4.2.0/";
 class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+</section>
+
+
+      
+  <nav class="pagination">
+    
+      <a href="/rocketmq/Field-Report-Meetup-Beijing/" 
class="pagination--pager" title="Field Report of Apache RocketMQ Meetup Beijing
+">Previous</a>
+    
+    
+      <a href="#" class="pagination--pager disabled">Next</a>
+    
+  </nav>
+
+    </div>
+
+    
+      <div class="page__comments">
+  
+  
+    <h4 class="page__comments-title">Leave a Comment</h4>
+    <section id="disqus_thread"></section>
+  
+</div>
+    
+  </article>
+
+  
+  
+</div>
+
+    <div class="page__footer">
+      <footer>
+        <!-- start custom footer snippets -->
+
+<!-- end custom footer snippets -->
+        <style type="text/css">
+  div.columns   { float: left; margin-left: 10px;}
+  div.clear     { clear: both; } 
+</style>
+<div>
+  <div class="columns">
+    <a href="https://www.apache.org/";><img 
src="/assets/images/feather-small.gif" alt="Apache Software Foundation" 
style="height: 88px !important" /></a>
+  </div>
+  <div class="columns" style="width: 80%">
+    <div class="page__footer-follow">
+      <ul class="social-icons">
+        
+          <li><strong>Follow:</strong></li>
+        
+        
+          <li><a href="https://twitter.com/ApacheRocketMQ";><i class="fa fa-fw 
fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
+        
+        
+        
+          <li><a href="http://github.com/apache/rocketmq";><i class="fa fa-fw 
fa-github" aria-hidden="true"></i> GitHub</a></li>
+        
+        
+        <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" 
aria-hidden="true"></i> Feed</a></li>
+      </ul>
+    </div>
+
+    <div class="page__footer-copyright">Copyright &copy; 2017 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</div>
+  </div>
+</div>
+<div class="clear"></div>
+      </footer>
+    </div>
+
+    <script src="/assets/js/main.min.js"></script>
+
+
+
+
+  <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-89603173-1', 'auto');
+  ga('send', 'pageview');
+</script>
+
+<script>
+var _hmt = _hmt || [];
+(function() {
+  var hm = document.createElement("script");
+  hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";;
+  var s = document.getElementsByTagName("script")[0]; 
+  s.parentNode.insertBefore(hm, s);
+})();
+</script>
+
+
+
+
+  
+  <script type="text/javascript">
+       /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * 
* */
+       var disqus_shortname = 'rocketmq';
+
+       /* * * DON'T EDIT BELOW THIS LINE * * */
+       (function() {
+               var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
+               dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+               (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
+       })();
+
+       /* * * DON'T EDIT BELOW THIS LINE * * */
+       (function () {
+               var s = document.createElement('script'); s.async = true;
+               s.type = 'text/javascript';
+               s.src = '//' + disqus_shortname + '.disqus.com/count.js';
+               (document.getElementsByTagName('HEAD')[0] || 
document.getElementsByTagName('BODY')[0]).appendChild(s);
+       }());
+  </script>
+  <noscript>Please enable JavaScript to view the <a 
href="http://disqus.com/?ref_noscript";>comments powered by 
Disqus.</a></noscript>
+
+
+
+
+
+
+  </body>
+</html>
diff --git a/content/rocketmq/Field-Report-Meetup-Beijing/index.html 
b/content/rocketmq/Field-Report-Meetup-Beijing/index.html
index afd3bcd..282da02 100644
--- a/content/rocketmq/Field-Report-Meetup-Beijing/index.html
+++ b/content/rocketmq/Field-Report-Meetup-Beijing/index.html
@@ -419,7 +419,8 @@
 ">Previous</a>
     
     
-      <a href="#" class="pagination--pager disabled">Next</a>
+      <a href="/release_notes/release-notes-4.2.0/" class="pagination--pager" 
title="Release Notes - Apache RocketMQ - Version 4.2.0
+">Next</a>
     
   </nav>
 
diff --git a/content/sitemap.xml b/content/sitemap.xml
index f8ef4cf..9540589 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -1,6 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"; 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";>
 <url>
+<loc>/release_notes/release-notes-4.2.0/</loc>
+<lastmod>2017-12-13T00:00:00+08:00</lastmod>
+</url>
+<url>
 <loc>/rocketmq/Field-Report-Meetup-Beijing/</loc>
 <lastmod>2017-07-02T00:00:00+08:00</lastmod>
 </url>
@@ -265,10 +269,10 @@
 </url>
 <url>
 <loc>/assets/attachment/launch-rocketmq-code-marathon.pdf</loc>
-<lastmod>2017-01-09T17:53:23+08:00</lastmod>
+<lastmod>2017-03-16T18:55:20+08:00</lastmod>
 </url>
 <url>
 <loc>/assets/attachment/launch-second-rocketmq-code-marathon.pdf</loc>
-<lastmod>2017-04-25T01:00:49+08:00</lastmod>
+<lastmod>2017-04-26T16:48:16+08:00</lastmod>
 </url>
 </urlset>
diff --git a/content/tags/index.html b/content/tags/index.html
index 2958777..a3c0020 100644
--- a/content/tags/index.html
+++ b/content/tags/index.html
@@ -457,6 +457,12 @@
 <!-- If not equal to previous then it must be unique as sorted -->
 
 
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
 <!-- Push to group_names -->
 
 
@@ -485,6 +491,12 @@
 <!-- If not equal to previous then it must be unique as sorted -->
 
 
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
 <!-- Push to group_names -->
 
 
@@ -492,6 +504,12 @@
 
 
 
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+
+
+
 
 <!-- group_items -->
 
@@ -1098,6 +1116,32 @@ and fulfill much of this responsibility through 
managing...</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/release_notes/release-notes-4.2.0/" rel="permalink">Release 
Notes - Apache RocketMQ - Version 4.2.0
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">Below is a summary 
of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full 
documentation of the release, a guide to get started, please refer...</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/release_notes/release-notes-4.0.0-incubating/" 
rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
 </a>
       
@@ -1128,6 +1172,32 @@ and fulfill much of this responsibility through 
managing...</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/release_notes/release-notes-4.2.0/" rel="permalink">Release 
Notes - Apache RocketMQ - Version 4.2.0
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">Below is a summary 
of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full 
documentation of the release, a guide to get started, please refer...</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/rocketmq/filter-messages-by-sql92-in-rocketmq/" 
rel="permalink">Filter Messages By SQL92 In RocketMQ
 </a>
       
@@ -1239,6 +1309,32 @@ and fulfill much of this responsibility through 
managing...</p>
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/release_notes/release-notes-4.2.0/" rel="permalink">Release 
Notes - Apache RocketMQ - Version 4.2.0
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">Below is a summary 
of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full 
documentation of the release, a guide to get started, please refer...</p>
+  </article>
+</div>
+  
+    
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/release_notes/release-notes-4.0.0-incubating/" 
rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
 </a>
       
diff --git a/content/year-archive/index.html b/content/year-archive/index.html
index 2d62ab2..0ff5205 100644
--- a/content/year-archive/index.html
+++ b/content/year-archive/index.html
@@ -300,6 +300,34 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/release_notes/release-notes-4.2.0/" rel="permalink">Release 
Notes - Apache RocketMQ - Version 4.2.0
+</a>
+      
+    </h2>
+    
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 
+
+
+
+
+  2 minute read
+</p>
+    
+    <p class="archive__item-excerpt" itemprop="description">Below is a summary 
of the JIRA issues addressed in the 4.2.0 release of RocketMQ. For full 
documentation of the release, a guide to get started, please refer...</p>
+  </article>
+</div>
+
+  
+  
+  
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope 
itemtype="http://schema.org/CreativeWork";>
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/rocketmq/Field-Report-Meetup-Beijing/" rel="permalink">Field 
Report of Apache RocketMQ Meetup Beijing
 </a>
       

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to