You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by do...@apache.org on 2017/03/16 03:46:52 UTC
[01/16] incubator-rocketmq-site git commit: Add built content
Repository: incubator-rocketmq-site
Updated Branches:
refs/heads/asf_site [created] 2d7f6a51d
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/tags/index.html
----------------------------------------------------------------------
diff --git a/content/tags/index.html b/content/tags/index.html
new file mode 100644
index 0000000..1d24256
--- /dev/null
+++ b/content/tags/index.html
@@ -0,0 +1,1142 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Posts by Tags - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="The homepage of RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Posts by Tags">
+
+
+ <link rel="canonical" href="http://localhost:4000/tags/">
+ <meta property="og:url" content="http://localhost:4000/tags/">
+
+
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Posts by Tags">
+ <meta name="twitter:description" content="The homepage of RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/tags/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--archive">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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>
+
+
+ <div class="archive">
+
+ <h1 class="page__title">Posts by Tags</h1>
+
+ <!--
+# Jekyll Group-By-Array 0.1.0
+# https://github.com/mushishi78/jekyll-group-by-array
+# � 2015 Max White <mu...@gmail.com>
+# MIT License
+-->
+
+<!-- Initialize -->
+
+
+
+
+<!-- Map -->
+
+
+<!-- Flatten -->
+
+
+<!-- Uniq -->
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+
+
+
+<!-- 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 -->
+
+
+
+
+
+
+
+<!-- group_items -->
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+
+
+ <h2 id="activity" class="archive__subtitle">Activity</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/activity/launch-rocketmq-code-marathon/" rel="permalink">Launch RocketMQ Code Marathon
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ less than 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">
+ROCKETMQ CODE MARATHON
+January 5th 2017
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="code" class="archive__subtitle">Code</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/activity/launch-rocketmq-code-marathon/" rel="permalink">Launch RocketMQ Code Marathon
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ less than 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">
+ROCKETMQ CODE MARATHON
+January 5th 2017
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="compatibility" class="archive__subtitle">Compatibility</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" rel="permalink">Mastering Component Compatible Dependency
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating ...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="dependency" class="archive__subtitle">Dependency</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" rel="permalink">Mastering Component Compatible Dependency
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating ...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="java" class="archive__subtitle">Java</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" rel="permalink">Mastering Component Compatible Dependency
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating ...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="marathon" class="archive__subtitle">Marathon</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/activity/launch-rocketmq-code-marathon/" rel="permalink">Launch RocketMQ Code Marathon
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ less than 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">
+ROCKETMQ CODE MARATHON
+January 5th 2017
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="maven" class="archive__subtitle">Maven</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" rel="permalink">Mastering Component Compatible Dependency
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating ...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="message-oriented-middleware" class="archive__subtitle">Message Oriented Middleware</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
+</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">Summary
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="name-server" class="archive__subtitle">Name Server</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" rel="permalink">Four Methods to Feed Name Server Address List
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="partition" class="archive__subtitle">Partition</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
+</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">Summary
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="queue" class="archive__subtitle">Queue</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
+</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">Summary
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="release-notes" class="archive__subtitle">Release_Notes</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+</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.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, p...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="rocketmq" class="archive__subtitle">RocketMQ</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" rel="permalink">Four Methods to Feed Name Server Address List
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing...</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="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+</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.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, p...</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="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
+</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">Summary
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="version" class="archive__subtitle">Version</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+</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.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, p...</p>
+ </article>
+</div>
+
+
+ </div>
+</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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/year-archive/index.html
----------------------------------------------------------------------
diff --git a/content/year-archive/index.html b/content/year-archive/index.html
new file mode 100644
index 0000000..a2bf039
--- /dev/null
+++ b/content/year-archive/index.html
@@ -0,0 +1,512 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Read and Comment - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="The homepage of RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Read and Comment">
+
+
+ <link rel="canonical" href="http://localhost:4000/year-archive/">
+ <meta property="og:url" content="http://localhost:4000/year-archive/">
+
+
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Read and Comment">
+ <meta name="twitter:description" content="The homepage of RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/year-archive/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--archive">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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>
+
+
+ <div class="archive">
+
+ <h1 class="page__title">Read and Comment</h1>
+
+
+
+
+
+ <h2 id="2017" class="archive__subtitle">2017</h2>
+
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" rel="permalink">Four Methods to Feed Name Server Address List
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing...</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="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+</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.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, p...</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="http://localhost:4000/activity/launch-rocketmq-code-marathon/" rel="permalink">Launch RocketMQ Code Marathon
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ less than 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">
+ROCKETMQ CODE MARATHON
+January 5th 2017
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="2016" class="archive__subtitle">2016</h2>
+
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" rel="permalink">Mastering Component Compatible Dependency
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating ...</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="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
+</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">Summary
+
+</p>
+ </article>
+</div>
+
+ </div>
+</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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
[10/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/categories/index.html
----------------------------------------------------------------------
diff --git a/content/categories/index.html b/content/categories/index.html
new file mode 100644
index 0000000..1c86e95
--- /dev/null
+++ b/content/categories/index.html
@@ -0,0 +1,615 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Posts by Category - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="The homepage of RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Posts by Category">
+
+
+ <link rel="canonical" href="http://localhost:4000/categories/">
+ <meta property="og:url" content="http://localhost:4000/categories/">
+
+
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Posts by Category">
+ <meta name="twitter:description" content="The homepage of RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/categories/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--archive">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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>
+
+
+ <div class="archive">
+
+ <h1 class="page__title">Posts by Category</h1>
+
+ <!--
+# Jekyll Group-By-Array 0.1.0
+# https://github.com/mushishi78/jekyll-group-by-array
+# � 2015 Max White <mu...@gmail.com>
+# MIT License
+-->
+
+<!-- Initialize -->
+
+
+
+
+<!-- Map -->
+
+
+<!-- Flatten -->
+
+
+<!-- Uniq -->
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+<!-- Push to group_names -->
+
+
+
+
+
+
+<!-- If not equal to previous then it must be unique as sorted -->
+
+
+
+
+
+
+<!-- group_items -->
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+<!-- Collect if contains -->
+
+
+
+<!-- Push to group_items -->
+
+
+
+
+
+ <h2 id="activity" class="archive__subtitle">Activity</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/activity/launch-rocketmq-code-marathon/" rel="permalink">Launch RocketMQ Code Marathon
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ less than 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">
+ROCKETMQ CODE MARATHON
+January 5th 2017
+
+</p>
+ </article>
+</div>
+
+
+
+ <h2 id="maven" class="archive__subtitle">Maven</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" rel="permalink">Mastering Component Compatible Dependency
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating ...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="release-notes" class="archive__subtitle">Release_Notes</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" rel="permalink">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+</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.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, p...</p>
+ </article>
+</div>
+
+
+
+ <h2 id="rocketmq" class="archive__subtitle">RocketMQ</h2>
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" rel="permalink">Four Methods to Feed Name Server Address List
+</a>
+
+ </h2>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 1 minute read
+</p>
+
+ <p class="archive__item-excerpt" itemprop="description">In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing...</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="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" rel="permalink">How to Support More Queues in RocketMQ?
+</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">Summary
+
+</p>
+ </article>
+</div>
+
+
+ </div>
+</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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/collection-archive/index.html
----------------------------------------------------------------------
diff --git a/content/collection-archive/index.html b/content/collection-archive/index.html
new file mode 100644
index 0000000..2e195c5
--- /dev/null
+++ b/content/collection-archive/index.html
@@ -0,0 +1,846 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Posts by Collection - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="The homepage of RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Posts by Collection">
+
+
+ <link rel="canonical" href="http://localhost:4000/collection-archive/">
+ <meta property="og:url" content="http://localhost:4000/collection-archive/">
+
+
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Posts by Collection">
+ <meta name="twitter:description" content="The homepage of RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/collection-archive/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--archive">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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>
+
+
+ <div class="archive">
+
+ <h1 class="page__title">Posts by Collection</h1>
+
+
+
+
+
+
+
+ <h2 id="about" class="archive__subtitle">about</h2>
+
+
+
+
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/about/team/" rel="permalink">TEAM
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Project team.
+</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="http://localhost:4000/about/contact/" rel="permalink">CONTACT
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Contact.
+</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="http://localhost:4000/about/rewards/" rel="permalink">REWARDS
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Rewards.
+</p>
+ </article>
+</div>
+
+
+
+
+
+
+ <h2 id="docs" class="archive__subtitle">docs</h2>
+
+
+
+
+
+
+
+
+
+<div class="list__item">
+ <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/docs/quick-start/" rel="permalink">Quick Start
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">How to quickly install and setup Apache RocketMQ.
+</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="http://localhost:4000/docs/motivation/" rel="permalink">Motivation
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for ...</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="http://localhost:4000/docs/core-concept/" rel="permalink">Core Concept
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">
+
+</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="http://localhost:4000/docs/cli-admin-tool/" rel="permalink">CLI Admin Tool
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.
+
+</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="http://localhost:4000/docs/cluster-deployment/" rel="permalink">Cluster Configuration and Deployment
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Prerequisite
+
+</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="http://localhost:4000/docs/pull-request/" rel="permalink">Best Practice in Pull Request
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">This page guides you through Git setup and contribution process.
+
+</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="http://localhost:4000/docs/code-guidelines/" rel="permalink">Coding Guidelines
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Coding Guidelines
+</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="http://localhost:4000/docs/documentation/" rel="permalink">Documentation
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Documentation
+</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="http://localhost:4000/docs/faq/" rel="permalink">Frequently Asked Questions
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">The following questions are frequently asked with regard to the RocketMQ project in general. If you have further questions, make sure to consult the document...</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="http://localhost:4000/docs/release-manual" rel="permalink">Release Manual
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Release Manual
+</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="http://localhost:4000/docs/branching-model" rel="permalink">Branching Model
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Branching Model
+</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="http://localhost:4000/dowloading/releases/" rel="permalink">Downloading the Apache RocketMQ Releases
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.
+
+</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="http://localhost:4000/docs/roadmap/" rel="permalink">The RoadMap of Apache RocketMQ
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">4.1.0~4.3.0-incubating RoadMap:
+
+</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="http://localhost:4000/docs/best-practice-broker/" rel="permalink">Best Practice For Broker
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Some useful tips for users.
+
+</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="http://localhost:4000/docs/best-practice-consumer/" rel="permalink">Best Practice For Consumer
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Some useful tips for users.
+
+</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="http://localhost:4000/docs/best-practice-namesvr/" rel="permalink">Best Practice For NameServer
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Some useful tips for users.
+
+</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="http://localhost:4000/docs/best-practice-producer/" rel="permalink">Best Practice For Producer
+</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Some useful tips for users.
+
+</p>
+ </article>
+</div>
+
+
+
+
+
+
+ <h2 id="pets" class="archive__subtitle">pets</h2>
+
+
+
+
+
+
+
+
+ <h2 id="portfolio" class="archive__subtitle">portfolio</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <h2 id="recipes" class="archive__subtitle">recipes</h2>
+
+
+
+
+
+ </div>
+</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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/community/index.html
----------------------------------------------------------------------
diff --git a/content/community/index.html b/content/community/index.html
new file mode 100644
index 0000000..e5aa7c9
--- /dev/null
+++ b/content/community/index.html
@@ -0,0 +1,497 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Apache RocketMQ - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Apache RocketMQ">
+
+
+ <link rel="canonical" href="http://localhost:4000/community/">
+ <meta property="og:url" content="http://localhost:4000/community/">
+
+
+
+ <meta property="og:description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Apache RocketMQ">
+ <meta name="twitter:description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+ <meta name="twitter:url" content="http://localhost:4000/community/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:image" content="http://localhost:4000/assets/images/rmq-home-page.jpg">
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--splash">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/about/team/">About</a></li>
+
+ </ul>
+ <ul class="hidden-links hidden"></ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+<div class="page__hero--overlay"
+ style="background-color: #5e616c; background-image: url('http://localhost:4000/assets/images/rmq-home-page.jpg');"
+>
+
+ <div class="wrapper">
+ <h1 class="page__title" itemprop="headline">
+
+ Apache RocketMQ
+
+
+ </h1>
+
+ <p class="page__lead">Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform.<br /> <small><a href="/release_notes/release-notes-4.0.0-incubating/">Latest release v4.0.0-incubating</a></small><br /><br /> <iframe style="display: inline-block;" src="https://ghbtns.com/github-btn.html?user=apache&repo=incubator-rocketmq&type=star&count=true&size=large" frameborder="0" scrolling="0" width="160px" height="30px"></iframe> <iframe style="display: inline-block;" src="https://ghbtns.com/github-btn.html?user=apache&repo=incubator-rocketmq&type=fork&count=true&size=large" frameborder="0" scrolling="0" width="158px" height="30px"></iframe>
+</p>
+
+
+
+ <p><a href="http://localhost:4000/docs/quick-start/" class="btn btn--light-outline btn--large"><i class='fa fa-rocket'></i> Getting Started</a></p>
+
+ </div>
+
+
+</div>
+
+
+<div id="main" role="main">
+ <article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Apache RocketMQ">
+ <meta itemprop="description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+
+
+
+ <section class="page__content" itemprop="text">
+
+<div class="feature__wrapper">
+
+
+
+
+
+ <div class="feature__item--center">
+ <div class="archive__item">
+
+
+ <div class="archive__item-body">
+
+
+
+ <div class="archive__item-excerpt">
+ <p>Who\u2019s Involved in RocketMQ ? � <a href="https://github.com/alibaba/RocketMQ/issues/1" class="btn btn--twitter"><i class="fa fa-github"></i> See the Full List</a></p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+<div class="feature__wrapper">
+
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/alibaba-logo.png" alt="Alibaba Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/ant-logo.png" alt="China Telecom Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/yeahmobi-logo.png" alt="YeahMobi Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+<div class="feature__wrapper">
+
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/egov-logo.png" alt="Egov Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/china-telecom-logo.png" alt="China Telecom Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/media-logo.jpg" alt="Media Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+<div class="feature__wrapper">
+
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/decent-logo.png" alt="Decent Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/yunpan-logo.png" alt="Yunpan Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/community/shihai-logo.jpg" alt="Shihai Group" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+ </section>
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/best-practice-broker/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-broker/index.html b/content/docs/best-practice-broker/index.html
new file mode 100644
index 0000000..f1c6ef9
--- /dev/null
+++ b/content/docs/best-practice-broker/index.html
@@ -0,0 +1,564 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Best Practice For Broker - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Some useful tips for users.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Best Practice For Broker">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/best-practice-broker/">
+ <meta property="og:url" content="http://localhost:4000/docs/best-practice-broker/">
+
+
+
+ <meta property="og:description" content="Some useful tips for users.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Best Practice For Broker">
+ <meta name="twitter:description" content="Some useful tips for users.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/best-practice-broker/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="active">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 25, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Best Practice For Broker
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>Some useful tips for users.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#broker-role" id="markdown-toc-broker-role">Broker Role</a></li>
+ <li><a href="#flushdisktype" id="markdown-toc-flushdisktype">FlushDiskType</a></li>
+ <li><a href="#reentrantlock-vs-cas" id="markdown-toc-reentrantlock-vs-cas">ReentrantLock vs CAS</a></li>
+ <li><a href="#ossh" id="markdown-toc-ossh">os.sh</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h2 id="broker-role">Broker Role</h2>
+<p>Broker Role is ASYNC_MASTER, SYNC_MASTER or SLAVE.
+If you cannot tolerate message missing, we suggest you deploy SYNC_MASTER and attach a SLAVE to it.
+If you feel ok about missing, but you want the Broker to be always available, you may deploy ASYNC_MASTER with SLAVE.
+If you just want to make it easy, you may only need a ASYNC_MASTER without SLAVE.</p>
+<h2 id="flushdisktype">FlushDiskType</h2>
+<p>ASYNC_FLUSH is recommended, for SYNC_FLUSH is expensive and will cause too much performance loss. If you want reliability, we recommend you use SYNC_MASTER with SLAVE.</p>
+<h2 id="reentrantlock-vs-cas">ReentrantLock vs CAS</h2>
+<p>to be finished</p>
+<h2 id="ossh">os.sh</h2>
+<p>to be finished</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-25">December 25, 2016</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=Best Practice For Broker http://localhost:4000/docs/best-practice-broker/" 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=http://localhost:4000/docs/best-practice-broker/" 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=http://localhost:4000/docs/best-practice-broker/" 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=http://localhost:4000/docs/best-practice-broker/" 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="http://localhost:4000/docs/roadmap/" class="pagination--pager" title="The RoadMap of Apache RocketMQ
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/best-practice-consumer/" class="pagination--pager" title="Best Practice For Consumer
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/best-practice-consumer/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-consumer/index.html b/content/docs/best-practice-consumer/index.html
new file mode 100644
index 0000000..8c22290
--- /dev/null
+++ b/content/docs/best-practice-consumer/index.html
@@ -0,0 +1,589 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Best Practice For Consumer - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Some useful tips for users.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Best Practice For Consumer">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/best-practice-consumer/">
+ <meta property="og:url" content="http://localhost:4000/docs/best-practice-consumer/">
+
+
+
+ <meta property="og:description" content="Some useful tips for users.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Best Practice For Consumer">
+ <meta name="twitter:description" content="Some useful tips for users.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/best-practice-consumer/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="active">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 25, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Best Practice For Consumer
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>Some useful tips for users.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#consumer-group-and-subscriptions" id="markdown-toc-consumer-group-and-subscriptions">Consumer Group and Subscriptions</a></li>
+ <li><a href="#messagelistener" id="markdown-toc-messagelistener">MessageListener</a> <ul>
+ <li><a href="#orderly" id="markdown-toc-orderly">Orderly</a></li>
+ <li><a href="#concurrently" id="markdown-toc-concurrently">Concurrently</a></li>
+ <li><a href="#consume-status" id="markdown-toc-consume-status">Consume Status</a></li>
+ <li><a href="#blocking" id="markdown-toc-blocking">Blocking</a></li>
+ </ul>
+ </li>
+ <li><a href="#thread-number" id="markdown-toc-thread-number">Thread Number</a></li>
+ <li><a href="#consumefromwhere" id="markdown-toc-consumefromwhere">ConsumeFromWhere</a></li>
+ <li><a href="#duplication" id="markdown-toc-duplication">Duplication</a></li>
+</ul>
+
+ </nav>
+</aside>
+<h2 id="consumer-group-and-subscriptions">Consumer Group and Subscriptions</h2>
+<p>The first thing you should be aware of is that different Consumer Group can consume the same topic independently, each of the group will have their own consuming offsets.
+And make sure each Consumer within the same Group to subscribe the same topics.</p>
+<h2 id="messagelistener">MessageListener</h2>
+<h3 id="orderly">Orderly</h3>
+<p>The Consumer will lock each MessageQueue to make sure it is consumed one by one orderly. This will cause performance loss, but it is useful when you are care about the order of the messages.
+It is not recommended to throw exception, you can return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT instead.</p>
+<h3 id="concurrently">Concurrently</h3>
+<p>As the name tells, the Consumer will consume the messages concurrently. It is recommended to use this for achieving good performance.
+It is not recommended to throw exception, you can return ConsumeConcurrentlyStatus.RECONSUME_LATER instead.</p>
+<h3 id="consume-status">Consume Status</h3>
+<p>For MessageListenerConcurrently, you can return RECONSUME_LATER to tell the consumer that you can not consume it right now and want to reconsume it later. Then you can continue to consume other messages.
+For MessageListenerOrderly, as that you care about the order, so you can not jump over the message, but you can return SUSPEND_CURRENT_QUEUE_A_MOMENT to tell the consumer to hold on for a moment.</p>
+<h3 id="blocking">Blocking</h3>
+<p>It is not recommend to block the Listener, for in return it will block the thread pool, and finally the consuming process may get stuck.</p>
+<h2 id="thread-number">Thread Number</h2>
+<p>The consumer use a ThreadPoolExecutor to process consuming internally. So you can tune it by using setConsumeThreadMin or setConsumeThreadMax.</p>
+<h2 id="consumefromwhere">ConsumeFromWhere</h2>
+<p>When a new Consumer Group is established, it will need to decide whether it need to consume the historical messages which had already existed in the Broker.
+CONSUME_FROM_LAST_OFFSET will ignore the historical messages, and consume any newly produced.
+CONSUME_FROM_FIRST_OFFSET will consume every message existed in the Broker.
+You can also use CONSUME_FROM_TIMESTAMP to consume messages produced after the specified timestamp.</p>
+<h2 id="duplication">Duplication</h2>
+<p>Many circumstances could cause duplication, such as:</p>
+<ul>
+ <li>Producer resend messages(i.e, in case of FLUSH_SLAVE_TIMEOUT)</li>
+ <li>Consumer shutdown with some offsets not updated to the Broker in time.</li>
+</ul>
+
+<p>So you may need to do some external work to handle this if your application cannot tolerate. For example, you may check the primary key of your DB.</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-25">December 25, 2016</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=Best Practice For Consumer http://localhost:4000/docs/best-practice-consumer/" 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=http://localhost:4000/docs/best-practice-consumer/" 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=http://localhost:4000/docs/best-practice-consumer/" 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=http://localhost:4000/docs/best-practice-consumer/" 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="http://localhost:4000/docs/best-practice-broker/" class="pagination--pager" title="Best Practice For Broker
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/best-practice-namesvr/" class="pagination--pager" title="Best Practice For NameServer
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
[08/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/cluster-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cluster-deployment/index.html b/content/docs/cluster-deployment/index.html
new file mode 100644
index 0000000..e939a07
--- /dev/null
+++ b/content/docs/cluster-deployment/index.html
@@ -0,0 +1,629 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Cluster Configuration and Deployment - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Prerequisite">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Cluster Configuration and Deployment">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/cluster-deployment/">
+ <meta property="og:url" content="http://localhost:4000/docs/cluster-deployment/">
+
+
+
+ <meta property="og:description" content="Prerequisite">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Cluster Configuration and Deployment">
+ <meta name="twitter:description" content="Prerequisite">
+ <meta name="twitter:url" content="http://localhost:4000/docs/cluster-deployment/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="active">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 17, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Cluster Configuration and Deployment
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <h1 id="prerequisite">Prerequisite</h1>
+
+<p>Before starting this section, make sure you have read Quick Start section, in which core concepts and components of RocketMQ are introduced.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#prerequisite" id="markdown-toc-prerequisite">Prerequisite</a></li>
+ <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+ <li><a href="#name-server" id="markdown-toc-name-server">Name Server</a></li>
+ <li><a href="#broker" id="markdown-toc-broker">Broker</a></li>
+ <li><a href="#disk-flush-type-sync_flush--async_flush" id="markdown-toc-disk-flush-type-sync_flush--async_flush">Disk Flush Type: SYNC_FLUSH / ASYNC_FLUSH</a></li>
+ <li><a href="#replication-sync--async-broker" id="markdown-toc-replication-sync--async-broker">Replication: Sync / Async Broker</a></li>
+ <li><a href="#configuration" id="markdown-toc-configuration">Configuration</a></li>
+ <li><a href="#deployment-example" id="markdown-toc-deployment-example">Deployment Example</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="introduction">Introduction</h1>
+
+<p>This section is to introduce deployment solution that may be considered production ready. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.</p>
+
+<h1 id="name-server">Name Server</h1>
+
+<p>To ensure the cluster can still operate normally when name server instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains serving.</p>
+
+<p>Name server follows share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any one of name servers available while sending / consuming messages.</p>
+
+<h1 id="broker">Broker</h1>
+
+<p>Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerId=0; brokerId of slave is non-zero.</p>
+
+<p>Brokers may also be grouped by the brokerName property. Slave brokers find their master through brokerName. One master broker along with zero, one or multiple slave brokers is called a broker set.</p>
+
+<p>In serious scenarios, we should have at least two broker sets. Each topic, as you guess, resides in two or more broker sets.</p>
+
+<h1 id="disk-flush-type-sync_flush--async_flush">Disk Flush Type: SYNC_FLUSH / ASYNC_FLUSH</h1>
+
+<p>Each broker can be configured to be sync or async in terms of IO flushing strategy. To put it simply, if your business tolerates none message loss at extreme scenarios like OS crash or power loss, SYNC_FLUSH mode is recommended. Broker of SYNC_FLUSH mode would flush each message it receives onto disk before acknowledging producer. Obviously, throughout of this mode is highly dependent on IOPS of your hard disk.</p>
+
+<p>Broker of ASYNC_FLUSH mode, on the other hand, takes advantage of group-committing: only flushes dirty page caches to disk periodically or when count of dirty page caches reaches certain amount. Hence, the latter yields better performance.</p>
+
+<h1 id="replication-sync--async-broker">Replication: Sync / Async Broker</h1>
+
+<p>Similar to many replication system, sync brokers await until commit log is replicated to a slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master.</p>
+
+<h1 id="configuration">Configuration</h1>
+
+<p>There are three pre-built configurations shipped with the distribution of RocketMQ under conf folder for your reference:</p>
+
+<ol>
+ <li>2m-2s-sync</li>
+ <li>2m-2s-async</li>
+ <li>2m-noslave</li>
+</ol>
+
+<p>Note: all configurations uses ASYNC_FLUSH.</p>
+
+<h1 id="deployment-example">Deployment Example</h1>
+
+<p>For example, We want to have a cluster with 2 name servers, 2 broker sets with general purpose:
+for this example, we choose <code class="highlighter-rouge">2m-2s-sync</code>
+Assuming binary RocketMQ is at <code class="highlighter-rouge">/home/rocketmq/dist</code></p>
+
+<ol>
+ <li>
+ <p>Start up two name servers as is shown in Quick Start guide. Assume their IPs are 192.168.0.2 and 192.168.0.3.</p>
+ </li>
+ <li>
+ <p>Start brokers</p>
+
+ <p><code class="highlighter-rouge">cd /home/rocketmq/dist/bin</code></p>
+
+ <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-a.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p>
+
+ <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p>
+
+ <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-b.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p>
+
+ <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p>
+ </li>
+ <li>
+ <p>Verify</p>
+
+ <p>Execute the following command to verify</p>
+
+ <p><code class="highlighter-rouge">bash mqadmin clusterList</code></p>
+ </li>
+</ol>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-17">December 17, 2016</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=Cluster Configuration and Deployment http://localhost:4000/docs/cluster-deployment/" 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=http://localhost:4000/docs/cluster-deployment/" 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=http://localhost:4000/docs/cluster-deployment/" 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=http://localhost:4000/docs/cluster-deployment/" 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="http://localhost:4000/docs/cli-admin-tool/" class="pagination--pager" title="CLI Admin Tool
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/pull-request/" class="pagination--pager" title="Best Practice in Pull Request
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/code-guidelines/index.html
----------------------------------------------------------------------
diff --git a/content/docs/code-guidelines/index.html b/content/docs/code-guidelines/index.html
new file mode 100644
index 0000000..1cb45ec
--- /dev/null
+++ b/content/docs/code-guidelines/index.html
@@ -0,0 +1,574 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Coding Guidelines - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Apache RocketMQ Coding Guidelines">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Coding Guidelines">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/code-guidelines/">
+ <meta property="og:url" content="http://localhost:4000/docs/code-guidelines/">
+
+
+
+ <meta property="og:description" content="Apache RocketMQ Coding Guidelines">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Coding Guidelines">
+ <meta name="twitter:description" content="Apache RocketMQ Coding Guidelines">
+ <meta name="twitter:url" content="http://localhost:4000/docs/code-guidelines/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="active">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 30, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Coding Guidelines
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+ <li><a href="#code-template-for-idea" id="markdown-toc-code-template-for-idea">Code template for idea</a> <ul>
+ <li><a href="#import-code-style" id="markdown-toc-import-code-style">Import code style</a></li>
+ <li><a href="#import-copyright" id="markdown-toc-import-copyright">Import copyright</a></li>
+ <li><a href="#choose-apache-copyright" id="markdown-toc-choose-apache-copyright">Choose Apache copyright</a></li>
+ <li><a href="#remove-author-javadoc-tag" id="markdown-toc-remove-author-javadoc-tag">Remove author javadoc tag</a></li>
+ </ul>
+ </li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="introduction">Introduction</h1>
+<p>This document describes formatting rules and guidelines for software source code. Note that this document does not cover best programming practices or techniques. It is solely concentrating on source code formatting and conventions.</p>
+
+<p>Studies have shown that 80% of development time is spent on software maintenance which involves software source code understanding, refactoring and support. Established and enforced code formatting rules and guidelines improve source code readability, promote team code ownership, allow engineers understand new code more quickly and thorough as well as simplify maintenance.</p>
+
+<h1 id="code-template-for-idea">Code template for idea</h1>
+<h2 id="import-code-style">Import code style</h2>
+<p><img src="/assets/images/code_guidelines/codestyle-pre.png" alt="codestyle" /></p>
+
+<p><img src="/assets/images/code_guidelines/codestyle.png" alt="codestyle" /></p>
+
+<h2 id="import-copyright">Import copyright</h2>
+<p><img src="/assets/images/code_guidelines/copyright.png" alt="copyright" /></p>
+
+<h2 id="choose-apache-copyright">Choose Apache copyright</h2>
+<p><img src="/assets/images/code_guidelines/copyright-choose.png" alt="copyright-choose" /></p>
+
+<h2 id="remove-author-javadoc-tag">Remove author javadoc tag</h2>
+<p><img src="/assets/images/code_guidelines/author-tag.png" alt="author-javadoc-tag" /></p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-30">December 30, 2016</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=Coding Guidelines http://localhost:4000/docs/code-guidelines/" 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=http://localhost:4000/docs/code-guidelines/" 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=http://localhost:4000/docs/code-guidelines/" 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=http://localhost:4000/docs/code-guidelines/" 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="http://localhost:4000/docs/pull-request/" class="pagination--pager" title="Best Practice in Pull Request
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/documentation/" class="pagination--pager" title="Documentation
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/core-concept/index.html
----------------------------------------------------------------------
diff --git a/content/docs/core-concept/index.html b/content/docs/core-concept/index.html
new file mode 100644
index 0000000..12ae5ea
--- /dev/null
+++ b/content/docs/core-concept/index.html
@@ -0,0 +1,664 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Core Concept - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Core Concept">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/core-concept/">
+ <meta property="og:url" content="http://localhost:4000/docs/core-concept/">
+
+
+
+ <meta property="og:description" content="">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Core Concept">
+ <meta name="twitter:description" content="">
+ <meta name="twitter:url" content="http://localhost:4000/docs/core-concept/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="active">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Core Concept">
+ <meta itemprop="description" content="">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 17, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Core Concept
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p><img src="/assets/images/rmq-model.png" alt="RocketMQ model" /></p>
+
+<p>From the above model, we can look deeper into some topics about messaging system design:</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#producer" id="markdown-toc-producer">Producer</a> <ul>
+ <li><a href="#producer-group" id="markdown-toc-producer-group">Producer Group</a></li>
+ </ul>
+ </li>
+ <li><a href="#consumer" id="markdown-toc-consumer">Consumer</a> <ul>
+ <li><a href="#pullconsumer" id="markdown-toc-pullconsumer">PullConsumer</a></li>
+ <li><a href="#pushconsumer" id="markdown-toc-pushconsumer">PushConsumer</a></li>
+ <li><a href="#consumer-group" id="markdown-toc-consumer-group">Consumer Group</a></li>
+ </ul>
+ </li>
+ <li><a href="#topic" id="markdown-toc-topic">Topic</a></li>
+ <li><a href="#message" id="markdown-toc-message">Message</a> <ul>
+ <li><a href="#message-queue" id="markdown-toc-message-queue">Message Queue</a></li>
+ <li><a href="#tag" id="markdown-toc-tag">Tag</a></li>
+ <li><a href="#broker" id="markdown-toc-broker">Broker</a></li>
+ </ul>
+ </li>
+ <li><a href="#name-server" id="markdown-toc-name-server">Name Server</a></li>
+ <li><a href="#message-model" id="markdown-toc-message-model">Message Model</a></li>
+ <li><a href="#message-order" id="markdown-toc-message-order">Message Order</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<ul>
+ <li>Consumer Concurrency</li>
+ <li>Consumer Hot Issues</li>
+ <li>Consumer Load Balance</li>
+ <li>Message Router</li>
+ <li>Connection Multiplex</li>
+ <li>Canary Deployments</li>
+</ul>
+
+<h1 id="producer">Producer</h1>
+
+<p>A producer sends messages generated by the business application systems to brokers. RocketMQ provides multiple paradigms of sending: synchronous, asynchronous and one-way.</p>
+
+<h2 id="producer-group">Producer Group</h2>
+
+<p>Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after starting the transaction.</p>
+
+<p><strong>Warning</strong>: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group and process to avoid unnecessarily initializing of producer instances.</p>
+
+<h1 id="consumer">Consumer</h1>
+
+<p>A Consumer pulls messages from brokers and feeds them into application. In perspective of user application, two types of consumers are provided:</p>
+
+<h2 id="pullconsumer">PullConsumer</h2>
+
+<p>Pull consumer actively pulls messages from brokers. Once batches of messages are pulled, user application initiates consuming process.</p>
+
+<h2 id="pushconsumer">PushConsumer</h2>
+
+<p>Push consumer, on the other hand, encapsulates message pulling, consuming progress maintaining and other effortful work inside, leaving a callback interface to end user to implement which will be executed on message arrival.</p>
+
+<h2 id="consumer-group">Consumer Group</h2>
+
+<p>Similar to previously mentioned producer group, consumers of the exactly same role are grouped together and named <strong>Consumer Group</strong>.</p>
+
+<p>Consumer Group is a great concept with which achieving goals of load-balance and fault-tolerance, in terms of message consuming, is super easy.</p>
+
+<p><strong>Warning</strong>: consumer instances of a consumer group <strong>must</strong> have exactly same topic subscription(s).</p>
+
+<h1 id="topic">Topic</h1>
+
+<p>Topic is a category to which producers deliver messages and from which consumers pull messages. Topics have very loose relation with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can sends messages of different topics. In consumer\u2019s view, a topic may be subscribed by zero, one or multiple consumer groups; and a consumer group, in the same paradigm, may subscribe one or multiple topics as long as instances of this group keep their subscription consistent as emphasized in the previous section.</p>
+
+<h1 id="message">Message</h1>
+
+<p>Message is the envelope of your information to deliver. A message must be specified with a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag set. Extra key-value pairs may also be included. For example, you may set a business key for your message and look up the message on broker server to diagnose issues during development.</p>
+
+<h2 id="message-queue">Message Queue</h2>
+
+<p>Topic, internally, is logically partitioned into one or more sub-topics. We call these sub-topics \u201cmessage queues\u201d. This concept plays a major role in implementing valuable features, including fail-over, maximum concurrency, etc.</p>
+
+<h2 id="tag">Tag</h2>
+
+<p>Tag, which can be thought as sub-topic, provides an extra flexibility for user. Through introducing tag, messages with different purposes from the same business module may have the same topic yet different tag. It would be helpful to keep your code clean and coherent.</p>
+
+<h2 id="broker">Broker</h2>
+
+<p>Broker is the major role of the RocketMQ system. It receives messages sent from producers, store them and being prepared to serve pull requests from consumers. It also stores message consuming related meta data, including consumer groups, consuming progress offsets and topic / queue info.</p>
+
+<h1 id="name-server">Name Server</h1>
+
+<p>Name server serves as the routing information provider. Producer/Consumer clients look up topics to find broker list to read from and write to.</p>
+
+<h1 id="message-model">Message Model</h1>
+
+<ul>
+ <li>
+ <p>Clustering</p>
+ </li>
+ <li>
+ <p>Broadcasting</p>
+ </li>
+</ul>
+
+<h1 id="message-order">Message Order</h1>
+
+<p>When DefaultMQPushConsumer is employed, you may decide to consume messages orderly or concurrently.</p>
+
+<ul>
+ <li>Orderly</li>
+</ul>
+
+<p>Consuming messages orderly means messages are consumed the same order they are sent by producers for each message queue. If you are dealing with scenario that global order is mandatory, make sure the topic you use has only one message queue.</p>
+
+<p><strong>Warn</strong>: If consuming orderly is specified, the maximum concurrency of message consuming is the number of message queues subscribed by the consumer group.</p>
+
+<ul>
+ <li>Concurrently</li>
+</ul>
+
+<p>When consuming concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.</p>
+
+<p><strong>Warn</strong>: Message order is no longer guaranteed in this mode.</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-17">December 17, 2016</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=Core Concept http://localhost:4000/docs/core-concept/" 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=http://localhost:4000/docs/core-concept/" 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=http://localhost:4000/docs/core-concept/" 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=http://localhost:4000/docs/core-concept/" 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="http://localhost:4000/docs/motivation/" class="pagination--pager" title="Motivation
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/cli-admin-tool/" class="pagination--pager" title="CLI Admin Tool
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/documentation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/documentation/index.html b/content/docs/documentation/index.html
new file mode 100644
index 0000000..ddc9512
--- /dev/null
+++ b/content/docs/documentation/index.html
@@ -0,0 +1,598 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Documentation - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Apache RocketMQ Documentation">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Documentation">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/documentation/">
+ <meta property="og:url" content="http://localhost:4000/docs/documentation/">
+
+
+
+ <meta property="og:description" content="Apache RocketMQ Documentation">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Documentation">
+ <meta name="twitter:description" content="Apache RocketMQ Documentation">
+ <meta name="twitter:url" content="http://localhost:4000/docs/documentation/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="March 02, 2017">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Documentation
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a> <ul>
+ <li><a href="#api-documentation" id="markdown-toc-api-documentation">API Documentation</a></li>
+ <li><a href="#documentation-content" id="markdown-toc-documentation-content">Documentation Content</a></li>
+ </ul>
+ </li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="introduction">Introduction</h1>
+
+<p>Quality documentation is critically important to develop and maintain a project. The better the documentation is, the
+easier it will be for other participants to understand and respond properly.</p>
+
+<h2 id="api-documentation">API Documentation</h2>
+
+<p>The API is documented through javadoc comments.</p>
+
+<p>All classes, interfaces, methods and field variables should be documented. Public methods, in particular, should be
+commented fully \u2013 method purpose, return value, parameters and exceptions.</p>
+
+<p>Below is an example:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>/**
+ * Send message in synchronous mode. This method returns only when the sending procedure totally completes.
+ * </p>
+ *
+ * <strong>Warn:</strong> this method has internal retry-mechanism, that is, internal implementation will retry
+ * {@link #retryTimesWhenSendFailed} times before claiming failure. As a result, multiple messages may potentially
+ * delivered to broker(s). It's up to the application developers to resolve potential duplication issue.
+ *
+ * @param msg Message to send.
+ * @return {@link SendResult} instance to inform senders details of the deliverable, say Message ID of the message,
+ * {@link SendStatus} indicating broker storage/replication status, message queue sent to, etc.
+ * @throws MQClientException if there is any client error.
+ * @throws RemotingException if there is any network-tier error.
+ * @throws MQBrokerException if there is any error with broker.
+ * @throws InterruptedException if the sending thread is interrupted.
+ */
+@Override
+public SendResult send(Message msg) throws MQClientException, RemotingException, MQBrokerException, InterruptedException {
+ return this.defaultMQProducerImpl.send(msg);
+}
+</code></pre>
+</div>
+
+<h2 id="documentation-content">Documentation Content</h2>
+
+<p>Every class and interface should have summary documentation, explaining its general function and purpose. Additionally,
+thread safety information should be included. If you are working on a class which represents a core concept, adding sample
+usage is always a good practice.</p>
+
+<p>When writing API documentation, please keep a professional tune: write in active voice, be as descriptive as possible.
+Keep in mind that the audience may be a developer who would use RocketMQ for the first time, or a contributor who just gets
+ involved with the codebase. Either of them is not as familiar with Apache RocketMQ as you are.</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-03-02">March 02, 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=Documentation http://localhost:4000/docs/documentation/" 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=http://localhost:4000/docs/documentation/" 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=http://localhost:4000/docs/documentation/" 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=http://localhost:4000/docs/documentation/" 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="http://localhost:4000/docs/code-guidelines/" class="pagination--pager" title="Coding Guidelines
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/faq/" class="pagination--pager" title="Frequently Asked Questions
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
[07/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/faq/index.html
----------------------------------------------------------------------
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
new file mode 100644
index 0000000..e091201
--- /dev/null
+++ b/content/docs/faq/index.html
@@ -0,0 +1,638 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Frequently Asked Questions - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="The following questions are frequently asked with regard to the RocketMQ project in general. If you have further questions, make sure to consult the documentation or ask the community.General1. Why create rocketmq project instead of selecting other products?In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability. So we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Frequently Asked Questions">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/faq/">
+ <meta property="og:url" content="http://localhost:4000/docs/faq/">
+
+
+
+ <meta property="og:description" content="The following questions are frequently asked with regard to the RocketMQ project in general. If you have further questions, make sure to consult the documentation or ask the community.General1. Why create rocketmq project instead of selecting other products?In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability. So we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Frequently Asked Questions">
+ <meta name="twitter:description" content="The following questions are frequently asked with regard to the RocketMQ project in general. If you have further questions, make sure to consult the documentation or ask the community.General1. Why create rocketmq project instead of selecting other products?In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability. So we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/faq/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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. If you have further questions, make sure to consult the documentation or ask the community.General1. Why create rocketmq project instead of selecting other products?In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability. So we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 28, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Frequently Asked Questions
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>The following questions are frequently asked with regard to the RocketMQ project in general. If you have further questions, make sure to consult the documentation or ask the community.</p>
+
+<h2 id="general">General</h2>
+<h3 id="1-why-create-rocketmq-project-instead-of-selecting-other-products">1. Why create rocketmq project instead of selecting other products?</h3>
+<p>In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability. So we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss.</p>
+
+<h3 id="2-do-i-have-to-install-other-softewares-such-as-zookeeper-to-use-rocketmq">2. Do I have to install other softewares, such as zookeeper, to use RocketMQ?</h3>
+<p>No. RocketMQ can run without any other softeware, you can run broker server and name server indepentently. Aslo, the topic can be created by using command, such as sh mqadmin updatetopic etc. After creating successfully, you enjoy yourself with RocketMQ.</p>
+
+<h2 id="usage">Usage</h2>
+<h3 id="1-where-does-the-newly-created-consumer-id-start-consuming-messages">1. Where does the newly created Consumer ID start consuming messages?</h3>
+
+<ol>
+ <li>If the topic sends a message within three days, then the consumer start consume message from the first message saved in the server.</li>
+ <li>If the topic sends a message in three days ago, the consumer start consume message from the latest message in the server, in other words, starting to consume the message queue tail.</li>
+ <li>If such consumer is the second reboot, then start to consumer message from the last consumption location.</li>
+</ol>
+
+<h3 id="2-how-to-reconsume-message-when-consumption-fails">2. How to reconsume message when consumption fails?</h3>
+<div class="highlighter-rouge"><pre class="highlight"><code>1.Cluster consumption pattern
+The consumer business logic code return Action.ReconsumerLater, or NULL, or throws an exception, the message will go up to 16 times retry procedure, if still fail to retry 16 times, then such message descarded.
+
+2.Broadcast consumption pattern
+The broadcaset consumption still ensures that a message is consumered at least once, but it is consumed fail without retry.
+</code></pre>
+</div>
+
+<h3 id="3-how-to-deal-with-consume-message-failed">3. How to deal with consume message failed?</h3>
+
+<ol>
+ <li>Use topic query by the time range, you can query to a period of time Topic received all the messages.</li>
+ <li>Using Topic and Message Id to accurately query the message.</li>
+ <li>Using Topic and Message Key accurately query a class of messages with the same Message Key.</li>
+</ol>
+
+<h3 id="4-delivery-exactly-once">4. Delivery exactly once?</h3>
+
+<p>In most cases, the message is not repeated. As a distributed message middleware, in the network jitter, application processing timeout and other abnormal circumstances, can not guarantee that the message is not repeated, but can ensure that the message is not lost.</p>
+
+<h3 id="5-how-to-add-a-new-broker">5. How to add a new broker?</h3>
+
+<ol>
+ <li>Start up a new broker and make it register to the same list of name servers.</li>
+ <li>On default, only internally system topics and consumer groups are created automatically. If you would like to have your business topic and consumer groups on the new node, remember to replicate them from the existing broker. You may turn to admin tool command to achieve this.</li>
+</ol>
+
+<h2 id="configuration-related">Configuration related</h2>
+<h3 id="1-how-long-the-message-is-saved-on-the-server">1. How long the message is saved on the server?</h3>
+
+<p>Stored messages are saved for up to 3 days, and messages that are not consumed for more than 3 days will be deleted.</p>
+
+<h3 id="2-what-is-the-length-limit-for-message-body">2. What is the length limit for message Body?</h3>
+<p>Generally 256KB, but can be modified by configuration.</p>
+
+<h3 id="3-how-to-set-the-number-of-consumer-threads">3. How to set the number of consumer threads?</h3>
+<p>When you start Consumer, set a ConsumeThreadNums property, example as follow.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>properties.put(PropertyKeyConst.ConsumeThreadNums,20);
+</code></pre>
+</div>
+
+<h2 id="errors">Errors</h2>
+<h3 id="1-start-producer-or-consumer-failed-and-producer-group-or-consumer-repeat">1. Start producer or consumer failed and producer group or consumer repeat?</h3>
+<p>Reason\uff1aIn the same JVM inside using the same Producer ID/Consumer ID launched multiple instances of Producer/Consumer, it may cause the client to start failure.</p>
+
+<p>Solution: Ensure that a JVM corresponds to a Producer ID/Consumer ID starts only with a Producer/Consumer instance.</p>
+
+<h3 id="2-in-broadcast-mode-consumer-start-loading-json-file-failed">2. In broadcast mode, consumer start loading json file failed?</h3>
+<p>Reason: Fastjson version is too low to cause the broadcast consumer to load a local offsets.json file failed, which causing the consumer boot failure.</p>
+
+<p>Solution: Fastjson version will be upgraded to rocketmq client dependent version, to ensure that the local offsets.json can be normal loading. By default offsets.json file is in /home/{user}/.rocketmq_offsets.</p>
+
+<h3 id="3-what-if-a-broker-crashes">3. What if a broker crashes?</h3>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>1. Master crashes
+ Messages can no longer be sent to this broker set, but if you have another broker set available, messages can be still sent there given the topic is present.Messages can still be consumed from slaves.
+2. One slaves crashes
+ As long as there is another working slave, no impact on writing messages;No impact on consuming messages except when the consumer group is set to consume from this slave preferably. By default, it is from master.
+3. All slaves crash
+ No impact on writing messages on master, but if master is a SYNC_MASTER, the producer will get a result of SLAVE_NOT_AVAILABLE indicating that the message is not replicated to any slaves.No impact on consuming messages except that if the consumer group is set to consume from slave preferably. By default, it is from master.
+</code></pre>
+</div>
+
+<h3 id="4-producer-complains-no-topic-route-info-how-to-diagnose">4. Producer complains \u201cNo Topic Route Info\u201d, how to diagnose?</h3>
+<p>This happens when you are trying to send message to a topic whose route info is not available to the producer.</p>
+
+<ol>
+ <li>Confirm the producer can connect to a name server and capable of fetching routing meta info from it.</li>
+ <li>Confirm that name servers do contain routing meta info of the topic. You may query the routing meta info from name server through topicRoute of admin tools or web console.</li>
+ <li>Confirm your brokers are sending heartbeats to the same list of name servers your producer is connecting to.</li>
+ <li>Confirm that the topic\u2019s perm is 6(rw-), or at least 2(-w-).</li>
+</ol>
+
+<p>If you can\u2019t find this topic, create it via admin tools command updateTopic or web console on a broker.</p>
+
+<h2 id="features">Features</h2>
+<h3 id="1-what-kind-of-consumption-pattern-does-rocketmq-provide">1. What kind of consumption pattern does RocketMQ provide?</h3>
+<p>In RocketMQ, it providers two types of consumption patterns, such as Clustering consumption patterns and broadcasting consumption patterns. See the documentation on cluster patterns for details.</p>
+
+<h3 id="2-how-many-kinds-of-message-type-are-supported">2. How many kinds of message type are supported?</h3>
+<p>There are several types of messages that are currently supported in rocketmq\uff0csuch as common message, timed message, transaction message, sequential message and delay message. User can select the appropriate message type according to the needs of the business.</p>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-28">December 28, 2016</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=Frequently Asked Questions http://localhost:4000/docs/faq/" 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=http://localhost:4000/docs/faq/" 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=http://localhost:4000/docs/faq/" 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=http://localhost:4000/docs/faq/" 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="http://localhost:4000/docs/documentation/" class="pagination--pager" title="Documentation
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/release-manual" class="pagination--pager" title="Release Manual
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/motivation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/motivation/index.html b/content/docs/motivation/index.html
new file mode 100644
index 0000000..c0035dc
--- /dev/null
+++ b/content/docs/motivation/index.html
@@ -0,0 +1,627 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Motivation - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for async communication, search, social network activity stream, data pipeline, even in our trade order process. As our trade business throughput rises more and more inconceivably, pressure originating from our messaging cluster also become more and more obvious.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Motivation">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/motivation/">
+ <meta property="og:url" content="http://localhost:4000/docs/motivation/">
+
+
+
+ <meta property="og:description" content="In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for async communication, search, social network activity stream, data pipeline, even in our trade order process. As our trade business throughput rises more and more inconceivably, pressure originating from our messaging cluster also become more and more obvious.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Motivation">
+ <meta name="twitter:description" content="In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for async communication, search, social network activity stream, data pipeline, even in our trade order process. As our trade business throughput rises more and more inconceivably, pressure originating from our messaging cluster also become more and more obvious.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/motivation/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="active">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Motivation">
+ <meta itemprop="description" content="In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for async communication, search, social network activity stream, data pipeline, even in our trade order process. As our trade business throughput rises more and more inconceivably, pressure originating from our messaging cluster also become more and more obvious.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 17, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Motivation
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for async communication, search, social network activity stream, data pipeline, even in our trade order process. As our trade business throughput rises more and more inconceivably, pressure originating from our messaging cluster also become more and more obvious.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#why-rocketmq-" id="markdown-toc-why-rocketmq-">Why RocketMQ ?</a></li>
+ <li><a href="#rocketmq-vs-activemq-vs-kafka" id="markdown-toc-rocketmq-vs-activemq-vs-kafka">RocketMQ vs. ActiveMQ vs. Kafka</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="why-rocketmq-">Why RocketMQ ?</h1>
+
+<p>Based on our observations and research, with more and more queues and virtual topics in use, ActiveMQ IO module becomes a bottleneck. In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability, see <a href="https://github.com/alibaba/RocketMQ/wiki/how_to_support_more_queues">here</a> for details.</p>
+
+<p>In this context, we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss. We also created a cornerstone product based on RocketMQ, a Platform as a Service (PaaS) product named the
+<a href="https://intl.aliyun.com/">Alibaba Cloud Platform</a>. Today, more than 100 companies are using the RocketMQ open source version in their business solutions. We believe RocketMQ can benefit more people, so we would like to share it around the world.</p>
+
+<p>The following are some different design between RocketMQ, ActiveMQ and Kafka\uff08They are the apache\u2019s most popular messaging solutions according to <a href="https://github.com/akullpp/awesome-java">awesome-java</a>):</p>
+
+<h1 id="rocketmq-vs-activemq-vs-kafka">RocketMQ vs. ActiveMQ vs. Kafka</h1>
+
+<table>
+ <thead>
+ <tr>
+ <th>Messaging Product</th>
+ <th>Client SDK</th>
+ <th>Protocol and Specification</th>
+ <th>Order Message</th>
+ <th>Message Filter</th>
+ <th>Server Triggered Redelivery</th>
+ <th>Persistent Message</th>
+ <th>Retroactive Consumers</th>
+ <th>Message Priority</th>
+ <th>High Availability and Failover</th>
+ <th>Message Track</th>
+ <th>Configuration</th>
+ <th>Management and Operation Tools</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>ActiveMQ</td>
+ <td>Java, .NET, C++ etc.</td>
+ <td>Push model, support OpenWire, STOMP, AMQP, MQTT, JMS</td>
+ <td>Exclusive Consumer or Exclusive Queues can ensure ordering</td>
+ <td>Supported</td>
+ <td>Not Supported</td>
+ <td>Supports very fast persistence using JDBC along with a high performance journal\uff0csuch as levelDB, kahaDB</td>
+ <td>Supported</td>
+ <td>Supported</td>
+ <td>Supported, depending on storage,if using kahadb it requires a ZooKeeper server</td>
+ <td>Not Supported</td>
+ <td>The default configuration is low level, user need to optimize the configuration parameters</td>
+ <td>Supported</td>
+ </tr>
+ <tr>
+ <td>Kafka</td>
+ <td>Java, Scala etc.</td>
+ <td>Pull model, support TCP</td>
+ <td>Ensure ordering of messages within a partition</td>
+ <td>Supported, you can use Kafka Streams to filter messages</td>
+ <td>Not Supported</td>
+ <td>High performance file storage</td>
+ <td>Supported offset indicate</td>
+ <td>Not Supported</td>
+ <td>Supported, requires a ZooKeeper server</td>
+ <td>Not Supported</td>
+ <td>Kafka uses key-value pairs format for configuration. These values can be supplied either from a file or programmatically.</td>
+ <td>Supported, use terminal command to expose core metrics</td>
+ </tr>
+ <tr>
+ <td>RocketMQ</td>
+ <td>Java, .NET, C++</td>
+ <td>Pull model, support TCP, JMS</td>
+ <td>Ensure strict ordering of messages, have no hot spot problem,and can scale out gracefully</td>
+ <td>Supported, you can even upload yourself custom-built filter code snippets</td>
+ <td>Supported</td>
+ <td>High performance and low latency file storage</td>
+ <td>Supported timestamp and offset 2 indicates</td>
+ <td>Not Supported</td>
+ <td>Supported, Master-Slave model, without another kit</td>
+ <td>Supported</td>
+ <td>Work out of box,user only need to pay attention to a few configurations</td>
+ <td>Supported, rich web and terminal command to expose core metrics</td>
+ </tr>
+ </tbody>
+</table>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-17">December 17, 2016</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=Motivation http://localhost:4000/docs/motivation/" 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=http://localhost:4000/docs/motivation/" 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=http://localhost:4000/docs/motivation/" 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=http://localhost:4000/docs/motivation/" 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="http://localhost:4000/docs/quick-start/" class="pagination--pager" title="Quick Start
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/core-concept/" class="pagination--pager" title="Core Concept
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/pull-request/index.html
----------------------------------------------------------------------
diff --git a/content/docs/pull-request/index.html b/content/docs/pull-request/index.html
new file mode 100644
index 0000000..0e29345
--- /dev/null
+++ b/content/docs/pull-request/index.html
@@ -0,0 +1,729 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Best Practice in Pull Request - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="This page guides you through Git setup and contribution process.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Best Practice in Pull Request">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/pull-request/">
+ <meta property="og:url" content="http://localhost:4000/docs/pull-request/">
+
+
+
+ <meta property="og:description" content="This page guides you through Git setup and contribution process.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Best Practice in Pull Request">
+ <meta name="twitter:description" content="This page guides you through Git setup and contribution process.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/pull-request/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="active">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Best Practice in Pull Request">
+ <meta itemprop="description" content="This page guides you through Git setup and contribution process.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 25, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Best Practice in Pull Request
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>This page guides you through Git setup and contribution process.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#git-setup-for-contributors" id="markdown-toc-git-setup-for-contributors">Git setup for Contributors</a></li>
+ <li><a href="#git-setup-for-committers" id="markdown-toc-git-setup-for-committers">Git setup for Committers</a></li>
+ <li><a href="#do-some-work-on-the-branch" id="markdown-toc-do-some-work-on-the-branch">Do some work on the branch</a></li>
+ <li><a href="#how-to-create-a-pr-committers" id="markdown-toc-how-to-create-a-pr-committers">How to create a PR (committers)</a></li>
+ <li><a href="#how-to-create-a-pr-contributors" id="markdown-toc-how-to-create-a-pr-contributors">How to create a PR (contributors)</a></li>
+ <li><a href="#merging-a-pr-yours-or-contributors" id="markdown-toc-merging-a-pr-yours-or-contributors">Merging a PR (yours or contributors)</a></li>
+ <li><a href="#closing-a-pr-without-committing-for-committers" id="markdown-toc-closing-a-pr-without-committing-for-committers">Closing a PR without committing (for committers)</a></li>
+ <li><a href="#apachegithub-integration-features" id="markdown-toc-apachegithub-integration-features">Apache/github integration features</a></li>
+ <li><a href="#best-practises" id="markdown-toc-best-practises">Best Practises</a> <ul>
+ <li><a href="#avoiding-accidentally-committing-private-branches-to-the-asf-repo" id="markdown-toc-avoiding-accidentally-committing-private-branches-to-the-asf-repo">Avoiding accidentally committing private branches to the ASF repo</a></li>
+ </ul>
+ </li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="git-setup-for-contributors">Git setup for Contributors</h1>
+<p>First of all, fork github\u2019s <code class="highlighter-rouge">apache/incubator-rocketmq</code> to your own account on github and clone it as follows,</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git clone https://github.com/<your_github_name>/incubator-rocketmq.git
+</code></pre>
+</div>
+
+<p>Cloning this locally will set up <code class="highlighter-rouge">origin</code> to point to your remote fork on github as the default remote.
+Now you can create your pull requests.</p>
+
+<p>You will need to update a local master sometimes (to merge to your development branches sometimes).
+For this, you have to add remote for RocketMQ mirror as follows,</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote add upstream https://github.com/apache/incubator-rocketmq.git
+</code></pre>
+</div>
+
+<p>and update your local master via <code class="highlighter-rouge">git fetch</code> followed by <code class="highlighter-rouge">git rebase</code>, for instance, as follows</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git fetch upstream master
+git rebase upstream/master
+</code></pre>
+</div>
+
+<h1 id="git-setup-for-committers">Git setup for Committers</h1>
+<p>In addition to contributors\u2019 configurations, committers will have to attach the apache git repo:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git
+</code></pre>
+</div>
+
+<p>To check your remote setup, issue</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote -v
+</code></pre>
+</div>
+
+<p>You should see something like this:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>origin https://github.com/<your_github_name>/incubator-rocketmq.git (fetch)
+origin https://github.com/<your_github_name>/incubator-rocketmq.git (push)
+upstream https://github.com/apache/incubator-rocketmq.git (fetch)
+upstream https://github.com/apache/incubator-rocketmq.git (push)
+apache https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (fetch)
+apache https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (push)
+</code></pre>
+</div>
+
+<p>Now if you want to experiment with a branch everything, by default, points to your github account because \u2018origin\u2019 is default. You can work as normal using only github until you are ready to merge with the apache remote. Some conventions will integrate with Apache JIRA ticket numbers.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout -b ROCKETMQ-xxxx #xxxx typically is a JIRA ticket number
+</code></pre>
+</div>
+
+<p><em>To guarantee code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers.</em></p>
+
+<h1 id="do-some-work-on-the-branch">Do some work on the branch</h1>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git commit -a -m "doing some work"
+git push origin ROCKETMQ-xxxx # notice pushing to **origin** not **apache**
+</code></pre>
+</div>
+
+<p>Once you are ready to commit to the apache remote you can merge and push them directly or better yet create a PR.</p>
+
+<h1 id="how-to-create-a-pr-committers">How to create a PR (committers)</h1>
+
+<p>Push your branch to Github:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout ROCKETMQ-xxxx
+git push origin ROCKETMQ-xxxx
+</code></pre>
+</div>
+
+<ol>
+ <li>
+ <p>Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github\u2019s apache/incubator-rocketmq. it will default any PR to go to apache/master.</p>
+ </li>
+ <li>Click the green \u201cCompare, review, and create pull request\u201d button.You can edit the to and from for the PR if it isn\u2019t correct. The \u201cbase fork\u201d should be apache/incubator-rocketmq unless you are collaborating separately with one of the committers on the list. The \u201cbase\u201d will be master. Don\u2019t submit a PR to one of the other branches unless you know what you are doing. The \u201chead fork\u201d will be your forked repo and the \u201ccompare\u201d will be your ROCKETMQ-xxxx branch.</li>
+ <li>Click the \u201cCreate pull request\u201d button and name the request \u201cROCKETMQ-xxxx\u201d all caps. This will connect the comments of the PR to the mailing list and JIRA comments.</li>
+ <li>From now on the PR lives on github\u2019s apache/incubator-rocketmq. You use the commenting UI there.</li>
+ <li>If you are looking for a review or sharing with someone else say so in the comments but don\u2019t worry about automated merging of your PR \u2013 you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to Jira and the mailing list.</li>
+ <li>When you are satisfied and want to push it to Apache\u2019s remote repo proceed with Merging a PR</li>
+</ol>
+
+<h1 id="how-to-create-a-pr-contributors">How to create a PR (contributors)</h1>
+<p>Before you create a pull request, make sure</p>
+<ol>
+ <li>A corresponding <a href="https://issues.apache.org/jira/browse/ROCKETMQ/">JIRA</a> issue is created and has a clear problem description.</li>
+ <li>You follow <a href="/docs/code-guidelines/">Coding Guidelines</a>.</li>
+</ol>
+
+<p>For information on creating pull requests, see <a href="https://help.github.com/articles/creating-a-pull-request/">GitHub PR docs</a>.</p>
+
+<p>Pull requests are made to <code class="highlighter-rouge">apache/incubator-rocketmq</code> repository on Github.
+In the Github UI you should pick the master branch to target the PR as described in the section for committers. <br />
+You pull request will be reviewed and commented by committers, and issues can be discussed the contribution in progress. When all reviewers are positive on the pull request, it will be merged.</p>
+
+<h1 id="merging-a-pr-yours-or-contributors">Merging a PR (yours or contributors)</h1>
+<p>Start with reading <a href="https://help.github.com/articles/checking-out-pull-requests-locally/">GitHub PR merging locally</a>. Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor\u2019s commits. In order to do that, as well as close the PR at the same time, it is recommended to use squash commits.
+Merging pull requests are equivalent to a \u201cpull\u201d of a contributor\u2019s branch:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout master # switch to local master branch
+git pull apache master # fast-forward to current remote HEAD
+git pull --squash https://github.com/cuser/incubator-rocketmq.git ROCKETMQ-xxxx # merge to master
+</code></pre>
+</div>
+
+<p><code class="highlighter-rouge">--squash</code> ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Read git help for merge or pull for more information about <code class="highlighter-rouge">--squash</code> option. In this example we assume that the contributor\u2019s Github handle is \u201ccuser\u201d and the PR branch name is \u201cROCKETMQ-xxxx\u201d. Next, resolve conflicts, if any, or ask a contributor to rebase on top of master, if PR went out of sync.</p>
+
+<p>If you are ready to merge your own (committer\u2019s) PR you probably only need to merge (not pull), since you have a local copy that you\u2019ve been working on. This is the branch that you used to create the PR.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout master # switch to local master branch
+git pull apache master # fast-forward to current remote HEAD
+git merge --squash ROCKETMQ-xxxx
+</code></pre>
+</div>
+
+<p>Remember to run regular patch checks, build with tests enabled, and change CHANGELOG.
+If everything is fine, you now can commit the squashed request along the lines</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git commit --author="contributor_name <contributor_email>" -a -m "ROCKETMQ-XXXX description closes apache/incubator-rocketmq#ZZ"
+</code></pre>
+</div>
+
+<p>ROCKETMQ-XXXX is all caps and where ZZ is the pull request number on apache/incubator-rocketmq repository. Including \u201ccloses apache/incubator-rocketmq#ZZ\u201d will close the PR automatically. More information is found here <a href="https://help.github.com/articles/closing-issues-via-commit-messages/">GitHub PR closing docs.</a>.
+Next, push to git-wip-us.apache.org:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git push apache master
+</code></pre>
+</div>
+
+<p>(this will require Apache handle credentials).
+The PR, once pushed, will get mirrored to github. To update your github version push there too:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git push origin master
+</code></pre>
+</div>
+
+<p>Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult for merging. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn to begin with. Anyway, watch for dupe PRs (based on same source branches). This is a bad practice.</p>
+
+<h1 id="closing-a-pr-without-committing-for-committers">Closing a PR without committing (for committers)</h1>
+<p>When we want to reject a PR (close without committing), we can just issue an empty commit on master\u2019s HEAD without merging the PR:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git commit --allow-empty -m "ROCKETMQ-XXXX closes apache/incubator-rocketmq#ZZ *Won't fix*"
+git push apache master
+</code></pre>
+</div>
+
+<p>that should close PR ZZ on github mirror without merging and any code modifications in the master repository.more detail please refer to RocketMQ PR https://github.com/apache/incubator-rocketmq/pull/15</p>
+
+<h1 id="apachegithub-integration-features">Apache/github integration features</h1>
+
+<p>Read <a href="https://blogs.apache.org/infra/entry/improved_integration_between_apache_and">infra blog</a>. Comments and PRs with RocketMQ issue handles should post to mailing lists and JIRA. RocketMQ issue handles must in the form ROCKETMQ-YYYYY (all capitals). Usually it makes sense to file a JIRA issue first, and then create a PR with description
+ROCKETMQ-YYYY: <jira-issue-description>
+In this case all subsequent comments will automatically be copied to jira without having to mention JIRA issue explicitly in each comment of the PR.</jira-issue-description></p>
+
+<h1 id="best-practises">Best Practises</h1>
+
+<h2 id="avoiding-accidentally-committing-private-branches-to-the-asf-repo">Avoiding accidentally committing private branches to the ASF repo</h2>
+
+<p>Its dangerously easy \u2014especially when using IDEs\u2014 to accidentally commit changes to the ASF repo, be it direct to the trunk, branch-2 or other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).</p>
+
+<p>Committers can avoid this by having the directory in which they develop code set up with read only access to the ASF repository on github, without the apache repository added. A separate directory should be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and pushes back to the ASF repo are done from this directory \u2014so isolated from all local development.</p>
+
+<p>If you accidentally commit a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.</p>
+
+<p>If you do accidentally commit a branch to the ASF repo, the infrastructure team can delete it \u2014but they cannot stop it propagating to github and potentially being visible. Try not to do that.</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-25">December 25, 2016</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=Best Practice in Pull Request http://localhost:4000/docs/pull-request/" 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=http://localhost:4000/docs/pull-request/" 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=http://localhost:4000/docs/pull-request/" 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=http://localhost:4000/docs/pull-request/" 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="http://localhost:4000/docs/cluster-deployment/" class="pagination--pager" title="Cluster Configuration and Deployment
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/code-guidelines/" class="pagination--pager" title="Coding Guidelines
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
[11/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/js/main.min.js
----------------------------------------------------------------------
diff --git a/content/assets/js/main.min.js b/content/assets/js/main.min.js
new file mode 100644
index 0000000..7c4f130
--- /dev/null
+++ b/content/assets/js/main.min.js
@@ -0,0 +1,5 @@
+function updateNav(){var e=$btn.hasClass("hidden")?$nav.width():$nav.width()-$btn.width()-30;$vlinks.width()>e?(breaks.push($vlinks.width()),$vlinks.children().last().prependTo($hlinks),$btn.hasClass("hidden")&&$btn.removeClass("hidden")):(e>breaks[breaks.length-1]&&($hlinks.children().first().appendTo($vlinks),breaks.pop()),breaks.length<1&&($btn.addClass("hidden"),$hlinks.addClass("hidden"))),$btn.attr("count",breaks.length),$vlinks.width()>e&&updateNav()}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"===n||pe.isWindow(e)?!1:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)retu
rn pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Te.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function r(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function a(){ie.addEventListener?(ie.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(ie.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(ie.addEventListener||"load"===e.event.type||"complete"===ie.readyState)&&(a(),pe.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(He,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:De.test(n)?pe.parseJSON(n):n}catch(r){}pe.data(e,t,n)}else n=void 0}return n}function u(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}functi
on c(e,t,n,i){if(Ie(e)){var r,o,a=pe.expando,s=e.nodeType,l=s?pe.cache:e,u=s?e[a]:e[a]&&a;if(u&&l[u]&&(i||l[u].data)||void 0!==n||"string"!=typeof t)return u||(u=s?e[a]=ne.pop()||pe.guid++:a),l[u]||(l[u]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(i?l[u]=pe.extend(l[u],t):l[u].data=pe.extend(l[u].data,t)),o=l[u],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(r=o[t],null==r&&(r=o[pe.camelCase(t)])):r=o,r}}function d(e,t,n){if(Ie(e)){var i,r,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(i=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in i?t=[t]:(t=pe.camelCase(t),t=t in i?[t]:t.split(" ")),r=t.length;for(;r--;)delete i[t[r]];if(n?!u(i):!pe.isEmptyObject(i))return}(n||(delete a[s].data,u(a[s])))&&(o?pe.cleanData([e],!0):de.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,i){var r,o=1,a=20,s=i?function(){return i.cur()}:function(){return pe.css(e,t,"")
},l=s(),u=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==u&&+l)&&Me.exec(pe.css(e,t));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do o=o||".5",c/=o,pe.style(e,t,c+u);while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(c=+c||+l||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=r)),r}function p(e){var t=We.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,i,r=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||pe.nodeName(i,t)?o.push(i):pe.merge(o,h(i,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function m(e,t){for(var n,i=0;null!=(n=e[i]);i++)pe._data(n,"globalEval",!t||pe._data(t[i],"globalEval"))}function g(e){qe.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,i,r){for(var o,a,s,l,u,c,d,f=e.length,v=p(t),y=[
],b=0;f>b;b++)if(a=e[b],a||0===a)if("object"===pe.type(a))pe.merge(y,a.nodeType?[a]:a);else if(Ye.test(a)){for(l=l||v.appendChild(t.createElement("div")),u=($e.exec(a)||["",""])[1].toLowerCase(),d=Xe[u]||Xe._default,l.innerHTML=d[1]+pe.htmlPrefilter(a)+d[2],o=d[0];o--;)l=l.lastChild;if(!de.leadingWhitespace&&Re.test(a)&&y.push(t.createTextNode(Re.exec(a)[0])),!de.tbody)for(a="table"!==u||Ue.test(a)?"<table>"!==d[1]||Ue.test(a)?0:l:l.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(y,l.childNodes),l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=v.lastChild}else y.push(t.createTextNode(a));for(l&&v.removeChild(l),de.appendChecked||pe.grep(h(y,"input"),g),b=0;a=y[b++];)if(i&&pe.inArray(a,i)>-1)r&&r.push(a);else if(s=pe.contains(a.ownerDocument,a),l=h(v.appendChild(a),"script"),s&&m(l),n)for(o=0;a=l[o++];)ze.test(a.type||"")&&n.push(a);return l=null,v}function y(){return!0}function b(){retur
n!1}function x(){try{return ie.activeElement}catch(e){}}function w(e,t,n,i,r,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)w(e,s,n,i,t[s],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),r===!1)r=b;else if(!r)return e;return 1===o&&(a=r,r=function(e){return pe().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,r,i,n)})}function C(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function T(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function k(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function E(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,i,r,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(i=0,r=s[n].length;r>i;i
++)pe.event.add(t,n,s[n][i])}a.data&&(a.data=pe.extend({},a.data))}}function S(e,t){var n,i,r;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!de.noCloneEvent&&t[pe.expando]){r=pe._data(t);for(i in r.events)pe.removeEvent(t,i,r.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(T(t).text=e.text,k(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),de.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&qe.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function N(e,t,n,i){t=oe.apply([],t);var r,o,a,s,l,u,c=0,d=e.length,f=d-1,p=t[0],m=pe.isFunction(p);if(m||d>1&&"string"==typeof p&&!de.checkClone&&it.test(p))return e.each(function(r){var o=e.eq(r);m&&(t[0]=p.call(this,r,o.html())),N(o,t,n,i)});if(d&&(u=v(t,e[0].ownerDocument,!1,e,i),r=u.firstChild,1===u.childNodes.
length&&(u=r),r||i)){for(s=pe.map(h(u,"script"),T),a=s.length;d>c;c++)o=u,c!==f&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(l=s[s.length-1].ownerDocument,pe.map(s,k),c=0;a>c;c++)o=s[c],ze.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(l,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));u=r=null}return e}function L(e,t,n){for(var i,r=t?pe.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||pe.cleanData(h(i)),i.parentNode&&(n&&pe.contains(i.ownerDocument,i)&&m(h(i,"script")),i.parentNode.removeChild(i));return e}function A(e,t){var n=pe(t.createElement(e)).appendTo(t.body),i=pe.css(n[0],"display");return n.detach(),i}function j(e){var t=ie,n=ut[e];return n||(n=A(e,t),"none"!==n&&n||(lt=(lt||pe("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(lt[0].contentWindow||lt[0].contentDocument).document,t.write(),t.close(),n=A(e,t),lt.detach()),ut[e]=
n),n}function _(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function I(e){if(e in kt)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Tt.length;n--;)if(e=Tt[n]+t,e in kt)return e}function D(e,t){for(var n,i,r,o=[],a=0,s=e.length;s>a;a++)i=e[a],i.style&&(o[a]=pe._data(i,"olddisplay"),n=i.style.display,t?(o[a]||"none"!==n||(i.style.display=""),""===i.style.display&&Be(i)&&(o[a]=pe._data(i,"olddisplay",j(i.nodeName)))):(r=Be(i),(n&&"none"!==n||!r)&&pe._data(i,"olddisplay",r?n:pe.css(i,"display"))));for(a=0;s>a;a++)i=e[a],i.style&&(t&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=t?o[a]||"":"none"));return e}function H(e,t,n){var i=xt.exec(t);return i?Math.max(0,i[1]-(n||0))+(i[2]||"px"):t}function O(e,t,n,i,r){for(var o=n===(i?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=pe.css(e,n+Pe[o],!0,r)),i?("content"===n&&(a-=pe.css(e,"padding"+Pe[o],!0,r)),"margin"!==n&&(a-=pe.css(e,"border"+
Pe[o]+"Width",!0,r))):(a+=pe.css(e,"padding"+Pe[o],!0,r),"padding"!==n&&(a+=pe.css(e,"border"+Pe[o]+"Width",!0,r)));return a}function M(e,t,n){var i=!0,r="width"===t?e.offsetWidth:e.offsetHeight,o=ht(e),a=de.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,o);if(0>=r||null==r){if(r=mt(e,t,o),(0>r||null==r)&&(r=e.style[t]),dt.test(r))return r;i=a&&(de.boxSizingReliable()||r===e.style[t]),r=parseFloat(r)||0}return r+O(e,t,n||(a?"border":"content"),i,o)+"px"}function P(e,t,n,i,r){return new P.prototype.init(e,t,n,i,r)}function B(){return e.setTimeout(function(){Et=void 0}),Et=pe.now()}function F(e,t){var n,i={height:e},r=0;for(t=t?1:0;4>r;r+=2-t)n=Pe[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function q(e,t,n){for(var i,r=(R.tweeners[t]||[]).concat(R.tweeners["*"]),o=0,a=r.length;a>o;o++)if(i=r[o].call(n,t,e))return i}function $(e,t,n){var i,r,o,a,s,l,u,c,d=this,f={},p=e.style,h=e.nodeType&&Be(e),m=pe._data(e,"fxshow");n.queue||(s=pe._queueHooks(e,"fx"),null==
s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,pe.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],u=pe.css(e,"display"),c="none"===u?pe._data(e,"olddisplay")||j(e.nodeName):u,"inline"===c&&"none"===pe.css(e,"float")&&(de.inlineBlockNeedsLayout&&"inline"!==j(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",de.shrinkWrapBlocks()||d.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(i in t)if(r=t[i],Nt.exec(r)){if(delete t[i],o=o||"toggle"===r,r===(h?"hide":"show")){if("show"!==r||!m||void 0===m[i])continue;h=!0}f[i]=m&&m[i]||pe.style(e,i)}else u=void 0;if(pe.isEmptyObject(f))"inline"===("none"===u?j(e.nodeName):u)&&(p.display=u);else{m?"hidden"in m&&(h=m.hidden):m=pe._data(e,"fxshow",{}),o&&(m.hidden=!h),h?pe(e).show
():d.done(function(){pe(e).hide()}),d.done(function(){var t;pe._removeData(e,"fxshow");for(t in f)pe.style(e,t,f[t])});for(i in f)a=q(h?m[i]:0,i,d),i in m||(m[i]=a.start,h&&(a.end=a.start,a.start="width"===i||"height"===i?1:0))}}function z(e,t){var n,i,r,o,a;for(n in e)if(i=pe.camelCase(n),r=t[i],o=e[n],pe.isArray(o)&&(r=o[1],o=e[n]=o[0]),n!==i&&(e[i]=o,delete e[n]),a=pe.cssHooks[i],a&&"expand"in a){o=a.expand(o),delete e[i];for(n in o)n in e||(e[n]=o[n],t[n]=r)}else t[i]=r}function R(e,t,n){var i,r,o=0,a=R.prefilters.length,s=pe.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var t=Et||B(),n=Math.max(0,u.startTime+u.duration-t),i=n/u.duration||0,o=1-i,a=0,l=u.tweens.length;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:pe.extend({},t),opts:pe.extend(!0,{specialEasing:{},easing:pe.easing._default},n),originalProperties:t,originalOptions:n,startTime:Et||B(),duration:n.duration,tweens:
[],createTween:function(t,n){var i=pe.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(i),i},stop:function(t){var n=0,i=t?u.tweens.length:0;if(r)return this;for(r=!0;i>n;n++)u.tweens[n].run(1);return t?(s.notifyWith(e,[u,1,0]),s.resolveWith(e,[u,t])):s.rejectWith(e,[u,t]),this}}),c=u.props;for(z(c,u.opts.specialEasing);a>o;o++)if(i=R.prefilters[o].call(u,e,c,u.opts))return pe.isFunction(i.stop)&&(pe._queueHooks(u.elem,u.opts.queue).stop=pe.proxy(i.stop,i)),i;return pe.map(c,q,u),pe.isFunction(u.opts.start)&&u.opts.start.call(e,u),pe.fx.timer(pe.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function W(e){return pe.attr(e,"class")||""}function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r=0,o=t.toLowerCase().match(Ae)||[];if(pe.isFunction(n))for(;i=o[r++];)"+"===i.charAt(0)?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]
).push(n)}}function Y(e,t,n,i){function r(s){var l;return o[s]=!0,pe.each(e[s]||[],function(e,s){var u=s(t,n,i);return"string"!=typeof u||a||o[u]?a?!(l=u):void 0:(t.dataTypes.unshift(u),r(u),!1)}),l}var o={},a=e===Jt;return r(t.dataTypes[0])||!o["*"]&&r("*")}function U(e,t){var n,i,r=pe.ajaxSettings.flatOptions||{};for(i in t)void 0!==t[i]&&((r[i]?e:n||(n={}))[i]=t[i]);return n&&pe.extend(!0,e,n),e}function V(e,t,n){for(var i,r,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(a in s)if(s[a]&&s[a].test(r)){l.unshift(a);break}if(l[0]in n)o=l[0];else{for(a in n){if(!l[0]||e.converters[a+" "+l[0]]){o=a;break}i||(i=a)}o=o||i}return o?(o!==l[0]&&l.unshift(o),n[o]):void 0}function G(e,t,n,i){var r,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)
),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(r in u)if(s=r.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[r]:u[r]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(d){return{state:"parsererror",error:a?d:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}function Q(e){return e.style&&e.style.display||pe.css(e,"display")}function Z(e){if(!pe.contains(e.ownerDocument||ie,e))return!0;for(;e&&1===e.nodeType;){if("none"===Q(e)||"hidden"===e.type)return!0;e=e.parentNode}return!1}function J(e,t,n,i){var r;if(pe.isArray(t))pe.each(t,function(t,r){n||rn.test(e)?i(e,r):J(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)});else if(n||"object"!==pe.type(t))i(e,t);else for(r in t)J(e+"["+r+"]",t[r],n,i)}function K(){try{return new e.XMLHttpRequest}catch(t){}}function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function te(e){return pe.isWindow(e)?e:
9===e.nodeType?e.defaultView||e.parentWindow:!1}var ne=[],ie=e.document,re=ne.slice,oe=ne.concat,ae=ne.push,se=ne.indexOf,le={},ue=le.toString,ce=le.hasOwnProperty,de={},fe="1.12.4",pe=function(e,t){return new pe.fn.init(e,t)},he=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,me=/^-ms-/,ge=/-([\da-z])/gi,ve=function(e,t){return t.toUpperCase()};pe.fn=pe.prototype={jquery:fe,constructor:pe,selector:"",length:0,toArray:function(){return re.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:re.call(this)},pushStack:function(e){var t=pe.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return pe.each(this,e)},map:function(e){return this.pushStack(pe.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(re.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},en
d:function(){return this.prevObject||this.constructor()},push:ae,sort:ne.sort,splice:ne.splice},pe.extend=pe.fn.extend=function(){var e,t,n,i,r,o,a=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[s]||{},s++),"object"==typeof a||pe.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(r=arguments[s]))for(i in r)e=a[i],n=r[i],a!==n&&(u&&n&&(pe.isPlainObject(n)||(t=pe.isArray(n)))?(t?(t=!1,o=e&&pe.isArray(e)?e:[]):o=e&&pe.isPlainObject(e)?e:{},a[i]=pe.extend(u,o,n)):void 0!==n&&(a[i]=n));return a},pe.extend({expando:"jQuery"+(fe+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===pe.type(e)},isArray:Array.isArray||function(e){return"array"===pe.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!pe.isArray(e)&&t-parseFloat(t)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isP
lainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!de.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?le[ue.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(me,"ms-").replace(ge,ve)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var i,r=0;if(n(e))for(i=e.length;i>r&&t.call(e[r],r,e[r])!==!1;r++);else for(r in e)if(t.call(e[r],r,e[r])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(he,"")},makeArray:function(e,t){var i=t||[];return null!=e&&(n(Object(e))?pe.merge(i,"string"==typeof e?[e]:e):ae.call(i,e)),i},inArray
:function(e,t,n){var i;if(t){if(se)return se.call(t,e,n);for(i=t.length,n=n?0>n?Math.max(0,i+n):n:0;i>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,i=0,r=e.length;n>i;)e[r++]=t[i++];if(n!==n)for(;void 0!==t[i];)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){for(var i,r=[],o=0,a=e.length,s=!n;a>o;o++)i=!t(e[o],o),i!==s&&r.push(e[o]);return r},map:function(e,t,i){var r,o,a=0,s=[];if(n(e))for(r=e.length;r>a;a++)o=t(e[a],a,i),null!=o&&s.push(o);else for(a in e)o=t(e[a],a,i),null!=o&&s.push(o);return oe.apply([],s)},guid:1,proxy:function(e,t){var n,i,r;return"string"==typeof t&&(r=e[t],t=e,e=r),pe.isFunction(e)?(n=re.call(arguments,2),i=function(){return e.apply(t||this,n.concat(re.call(arguments)))},i.guid=e.guid=e.guid||pe.guid++,i):void 0},now:function(){return+new Date},support:de}),"function"==typeof Symbol&&(pe.fn[Symbol.iterator]=ne[Symbol.iterator]),pe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split
(" "),function(e,t){le["[object "+t+"]"]=t.toLowerCase()});var ye=function(e){function t(e,t,n,i){var r,o,a,s,l,u,d,p,h=t&&t.ownerDocument,m=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==m&&9!==m&&11!==m)return n;if(!i&&((t?t.ownerDocument||t:q)!==I&&_(t),t=t||I,H)){if(11!==m&&(u=ve.exec(e)))if(r=u[1]){if(9===m){if(!(a=t.getElementById(r)))return n;if(a.id===r)return n.push(a),n}else if(h&&(a=h.getElementById(r))&&B(t,a)&&a.id===r)return n.push(a),n}else{if(u[2])return J.apply(n,t.getElementsByTagName(e)),n;if((r=u[3])&&w.getElementsByClassName&&t.getElementsByClassName)return J.apply(n,t.getElementsByClassName(r)),n}if(w.qsa&&!X[e+" "]&&(!O||!O.test(e))){if(1!==m)h=t,p=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(be,"\\$&"):t.setAttribute("id",s=F),d=E(e),o=d.length,l=fe.test(s)?"#"+s:"[id='"+s+"']";o--;)d[o]=l+" "+f(d[o]);p=d.join(","),h=ye.test(e)&&c(t.parentNode)||t}if(p)try{return J.apply(n,h.querySelectorAll(p)),n}catch(g){}fi
nally{s===F&&t.removeAttribute("id")}}}return N(e.replace(se,"$1"),t,n,i)}function n(){function e(n,i){return t.push(n+" ")>C.cacheLength&&delete e[t.shift()],e[n+" "]=i}var t=[];return e}function i(e){return e[F]=!0,e}function r(e){var t=I.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),i=n.length;i--;)C.attrHandle[n[i]]=t}function a(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||U)-(~e.sourceIndex||U);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return i(function(t){return t=+t,i(function(n,i){for(var r,o=e([],n.length,t),a=o.length;a--;)n[r=o[a]]&&(n[r]=!(i[r]=n[r]))})})}function c(e){return e&&"undefined"!=typ
eof e.getElementsByTagName&&e}function d(){}function f(e){for(var t=0,n=e.length,i="";n>t;t++)i+=e[t].value;return i}function p(e,t,n){var i=t.dir,r=n&&"parentNode"===i,o=z++;return t.first?function(t,n,o){for(;t=t[i];)if(1===t.nodeType||r)return e(t,n,o)}:function(t,n,a){var s,l,u,c=[$,o];if(a){for(;t=t[i];)if((1===t.nodeType||r)&&e(t,n,a))return!0}else for(;t=t[i];)if(1===t.nodeType||r){if(u=t[F]||(t[F]={}),l=u[t.uniqueID]||(u[t.uniqueID]={}),(s=l[i])&&s[0]===$&&s[1]===o)return c[2]=s[2];if(l[i]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,i){for(var r=e.length;r--;)if(!e[r](t,n,i))return!1;return!0}:e[0]}function m(e,n,i){for(var r=0,o=n.length;o>r;r++)t(e,n[r],i);return i}function g(e,t,n,i,r){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(n&&!n(o,i,r)||(a.push(o),u&&t.push(s)));return a}function v(e,t,n,r,o,a){return r&&!r[F]&&(r=v(r)),o&&!o[F]&&(o=v(o,a)),i(function(i,a,s,l){var u,c,d,f=[],p=[],h=a.length,v=i||m(t||"*",s.nodeType?[s]:s,[]
),y=!e||!i&&t?v:g(v,f,e,s,l),b=n?o||(i?e:h||r)?[]:a:y;if(n&&n(y,b,s,l),r)for(u=g(b,p),r(u,[],s,l),c=u.length;c--;)(d=u[c])&&(b[p[c]]=!(y[p[c]]=d));if(i){if(o||e){if(o){for(u=[],c=b.length;c--;)(d=b[c])&&u.push(y[c]=d);o(null,b=[],u,l)}for(c=b.length;c--;)(d=b[c])&&(u=o?ee(i,d):f[c])>-1&&(i[u]=!(a[u]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):J.apply(a,b)})}function y(e){for(var t,n,i,r=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),u=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,i){var r=!o&&(i||n!==L)||((t=n).nodeType?l(e,n,i):u(e,n,i));return t=null,r}];r>s;s++)if(n=C.relative[e[s].type])c=[p(h(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[F]){for(i=++s;r>i&&!C.relative[e[i].type];i++);return v(s>1&&h(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,i>s&&y(e.slice(s,i)),r>i&&y(e=e.slice(i)),r>i&&f(e))}c.push(n)}return h(c)}function b(e,n){var r=n.leng
th>0,o=e.length>0,a=function(i,a,s,l,u){var c,d,f,p=0,h="0",m=i&&[],v=[],y=L,b=i||o&&C.find.TAG("*",u),x=$+=null==y?1:Math.random()||.1,w=b.length;for(u&&(L=a===I||a||u);h!==w&&null!=(c=b[h]);h++){if(o&&c){for(d=0,a||c.ownerDocument===I||(_(c),s=!H);f=e[d++];)if(f(c,a||I,s)){l.push(c);break}u&&($=x)}r&&((c=!f&&c)&&p--,i&&m.push(c))}if(p+=h,r&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(i){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=Q.call(l));v=g(v)}J.apply(l,v),u&&!i&&v.length>0&&p+n.length>1&&t.uniqueSort(l)}return u&&($=x,L=y),m};return r?i(a):a}var x,w,C,T,k,E,S,N,L,A,j,_,I,D,H,O,M,P,B,F="sizzle"+1*new Date,q=e.document,$=0,z=0,R=n(),W=n(),X=n(),Y=function(e,t){return e===t&&(j=!0),0},U=1<<31,V={}.hasOwnProperty,G=[],Q=G.pop,Z=G.push,J=G.push,K=G.slice,ee=function(e,t){for(var n=0,i=e.length;i>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",ie="(?:\\\\.
|[\\w-]|[^\\x00-\\xa0])+",re="\\["+ne+"*("+ie+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",oe=":("+ie+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+re+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),se=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),le=new RegExp("^"+ne+"*,"+ne+"*"),ue=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),de=new RegExp(oe),fe=new RegExp("^"+ie+"$"),pe={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+re),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=
[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var i="0x"+t-65536;return i!==i||n?t:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},Ce=function(){_()};try{J.apply(G=K.call(q.childNodes),q.childNodes),G[q.childNodes.length].nodeType}catch(Te){J={apply:G.length?function(e,t){Z.apply(e,K.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}w=t.support={},k=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},_=t.setDocument=function(e){var t,n,i=e?e.ownerDocument||e:q;return i!==I&&9===i.nodeType&&i.documentElement?(I=i,D=I.documentElement,H=!k(I),(n=I.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),w.attributes=r(function(e)
{return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=r(function(e){return e.appendChild(I.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ge.test(I.getElementsByClassName),w.getById=r(function(e){return D.appendChild(e).id=F,!I.getElementsByName||!I.getElementsByName(F).length}),w.getById?(C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&H){var n=t.getElementById(e);return n?[n]:[]}},C.filter.ID=function(e){var t=e.replace(xe,we);return function(e){return e.getAttribute("id")===t}}):(delete C.find.ID,C.filter.ID=function(e){var t=e.replace(xe,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[r++];)1===n.nodeT
ype&&i.push(n);return i}return o},C.find.CLASS=w.getElementsByClassName&&function(e,t){return"undefined"!=typeof t.getElementsByClassName&&H?t.getElementsByClassName(e):void 0},M=[],O=[],(w.qsa=ge.test(I.querySelectorAll))&&(r(function(e){D.appendChild(e).innerHTML="<a id='"+F+"'></a><select id='"+F+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&O.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||O.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+F+"-]").length||O.push("~="),e.querySelectorAll(":checked").length||O.push(":checked"),e.querySelectorAll("a#"+F+"+*").length||O.push(".#.+[+~]")}),r(function(e){var t=I.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&O.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||O.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),O.pu
sh(",.*:")})),(w.matchesSelector=ge.test(P=D.matches||D.webkitMatchesSelector||D.mozMatchesSelector||D.oMatchesSelector||D.msMatchesSelector))&&r(function(e){w.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),M.push("!=",oe)}),O=O.length&&new RegExp(O.join("|")),M=M.length&&new RegExp(M.join("|")),t=ge.test(D.compareDocumentPosition),B=t||ge.test(D.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},Y=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===I||e.ownerDocument===q&&B(q,e)?-1:t===I||t.ownerDocument===q&&B(q,t)?1:A?ee(A,e)-ee(A,t):0:4&n?-1:1)}:function(e,t
){if(e===t)return j=!0,0;var n,i=0,r=e.parentNode,o=t.parentNode,s=[e],l=[t];if(!r||!o)return e===I?-1:t===I?1:r?-1:o?1:A?ee(A,e)-ee(A,t):0;if(r===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;s[i]===l[i];)i++;return i?a(s[i],l[i]):s[i]===q?-1:l[i]===q?1:0},I):I},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==I&&_(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&H&&!X[n+" "]&&(!M||!M.test(n))&&(!O||!O.test(n)))try{var i=P.call(e,n);if(i||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(r){}return t(n,I,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==I&&_(e),B(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==I&&_(e);var n=C.attrHandle[t.toLowerCase()],i=n&&V.call(C.attrHandle,t.toLowerCase())?n(e,t,!H):void 0;return void 0!==i?i:w.attributes||!H?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},t.error=funct
ion(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],i=0,r=0;if(j=!w.detectDuplicates,A=!w.sortStable&&e.slice(0),e.sort(Y),j){for(;t=e[r++];)t===e[r]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return A=null,e},T=t.getText=function(e){var t,n="",i=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=T(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[i++];)n+=T(t);return n},C=t.selectors={cacheLength:50,createPseudo:i,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,we),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]|
|1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=E(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=R[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&R(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,i){return function(r){var o=t.attr(r,e);return null==o?"!="===n:n?(o+="","="===n?o===i:"!="===n?o!==i:"^="===n?i&&0===o.indexOf(i):"*="===n?i&&o.indexOf(i)>-1:"$="===n?i&&o.slice(-i.length)===i:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(i)>-1:"|="===n?o===i||o.slice(0,i.leng
th+1)===i+"-":!1):!0}},CHILD:function(e,t,n,i,r){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;
+return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s,b=!1;if(g){if(o){for(;m;){for(f=t;f=f[m];)if(s?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(f=g,d=f[F]||(f[F]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),u=c[e]||[],p=u[0]===$&&u[1],b=p&&u[2],f=p&&g.childNodes[p];f=++p&&f&&f[m]||(b=p=0)||h.pop();)if(1===f.nodeType&&++b&&f===t){c[e]=[$,p,b];break}}else if(y&&(f=t,d=f[F]||(f[F]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),u=c[e]||[],p=u[0]===$&&u[1],b=p),b===!1)for(;(f=++p&&f&&f[m]||(b=p=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++b||(y&&(d=f[F]||(f[F]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),c[e]=[$,b]),f!==t)););return b-=r,b===i||b%i===0&&b/i>=0}}},PSEUDO:function(e,n){var r,o=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo:
"+e);return o[F]?o(n):o.length>1?(r=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,t){for(var i,r=o(e,n),a=r.length;a--;)i=ee(e,r[a]),e[i]=!(t[i]=r[a])}):function(e){return o(e,0,r)}):o}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(se,"$1"));return r[F]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:i(function(e){return function(n){return t(e,n).length>0}}),contains:i(function(e){return e=e.replace(xe,we),function(t){return(t.textContent||t.innerText||T(t)).indexOf(e)>-1}}),lang:i(function(e){return fe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,we).toLowerCase(),function(t){var n;do if(n=H?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(
1)===t.id},root:function(e){return e===D},focus:function(e){return e===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n)
{return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var i=0>n?n+t:n;--i>=0;)e.push(i);return e}),gt:u(function(e,t,n){for(var i=0>n?n+t:n;++i<t;)e.push(i);return e})}},C.pseudos.nth=C.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})C.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})C.pseudos[x]=l(x);return d.prototype=C.filters=C.pseudos,C.setFilters=new d,E=t.tokenize=function(e,n){var i,r,o,a,s,l,u,c=W[e+" "];if(c)return n?0:c.slice(0);for(s=e,l=[],u=C.preFilter;s;){i&&!(r=le.exec(s))||(r&&(s=s.slice(r[0].length)||s),l.push(o=[])),i=!1,(r=ue.exec(s))&&(i=r.shift(),o.push({value:i,type:r[0].replace(se," ")}),s=s.slice(i.length));for(a in C.filter)!(r=pe[a].exec(s))||u[a]&&!(r=u[a](r))||(i=r.shift(),o.push({value:i,type:a,matches:r}),s=s.slice(i.length));if(!i)break}return n?s.length:s?t.error(e):W(e,l).slice(0)},S=t.compile=function(e,t){var n,i=
[],r=[],o=X[e+" "];if(!o){for(t||(t=E(e)),n=t.length;n--;)o=y(t[n]),o[F]?i.push(o):r.push(o);o=X(e,b(r,i)),o.selector=e}return o},N=t.select=function(e,t,n,i){var r,o,a,s,l,u="function"==typeof e&&e,d=!i&&E(e=u.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&H&&C.relative[o[1].type]){if(t=(C.find.ID(a.matches[0].replace(xe,we),t)||[])[0],!t)return n;u&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(r=pe.needsContext.test(e)?0:o.length;r--&&(a=o[r],!C.relative[s=a.type]);)if((l=C.find[s])&&(i=l(a.matches[0].replace(xe,we),ye.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(r,1),e=i.length&&f(o),!e)return J.apply(n,i),n;break}}return(u||S(e,d))(i,t,!H,n,!t||ye.test(e)&&c(t.parentNode)||t),n},w.sortStable=F.split("").sort(Y).join("")===F,w.detectDuplicates=!!j,_(),w.sortDetached=r(function(e){return 1&e.compareDocumentPosition(I.createElement("div"))}),r(function(e){return e.innerHTML="<a href='#'></a>
","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&r(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),r(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var i;return n?void 0:e[t]===!0?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),t}(e);pe.find=ye,pe.expr=ye.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ye.uniqueSort,pe.text=ye.getText,pe.isXMLDoc=ye.isXML,pe.contains=ye.contains;var be=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&pe(e).is(n))break;i.push(e)}return i},xe=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Ce
=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Te=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?pe.find.matchesSelector(i,e)?[i]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],i=this,r=i.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;r>t;t++)if(pe.contains(i[t],this))return!0}));for(t=0;r>t;t++)pe.find(e,i[t],n);return n=this.pushStack(r>1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var ke,Ee=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,Se=pe.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||ke,"string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ee.exec(e),!i||!i[1]&
&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:ie,!0)),Ce.test(i[1])&&pe.isPlainObject(t))for(i in t)pe.isFunction(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}if(r=ie.getElementById(i[2]),r&&r.parentNode){if(r.id!==i[2])return ke.find(e);this.length=1,this[0]=r}return this.context=ie,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};Se.prototype=pe.fn,ke=pe(ie);var Ne=/^(?:parents|prev(?:Until|All))/,Le={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),i=n.length;return this.filter(function(){for(t=0;i>t;t++)if(pe.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,i=0,r=this.length,o=[],a=we.test(e)||"string"!=typeof
e?pe(e,t||this.context):0;r>i;i++)for(n=this[i];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return be(e,"parentNode")},parentsUntil:function(e,t,n){return be(e,"parentNode",n)},next:function(e){return r(e,"nextSibling")},prev:function(e){return r(e,"previousSibling")},nextAll:function(e){return be(e,"nextSibling")},prevAll:function(e){return be(e,"previousSibling")},nextUntil:function(e,t,n){return be(e,"nextSibling"
,n)},prevUntil:function(e,t,n){return be(e,"previousSibling",n)},siblings:function(e){return xe((e.parentNode||{}).firstChild,e)},children:function(e){return xe(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,i){var r=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=pe.filter(i,r)),this.length>1&&(Le[e]||(r=pe.uniqueSort(r)),Ne.test(e)&&(r=r.reverse())),this.pushStack(r)}});var Ae=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,i,r,a=[],s=[],l=-1,u=function(){for(r=e.once,i=t=!0;s.length;l=-1)for(n=s.shift();++l<a.length;)a[l].apply(n[0],n[1])===!1&&e.stopOnFalse&&(l=a.length,n=!1);e.memory||(n=!1),t=!1,r&&(a=n?[]:"")},c={add:function(){return a&&(n&&!t&&(l=a.length-1,s.push(n)),function i(t){pe.each(t,function(t,n){pe.isFunction(n)?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==pe.type(n)&&
i(n)})}(arguments),n&&!t&&u()),this},remove:function(){return pe.each(arguments,function(e,t){for(var n;(n=pe.inArray(t,a,n))>-1;)a.splice(n,1),l>=n&&l--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return r=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return r=!0,n||c.disable(),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var
a=pe.isFunction(e[t])&&e[t];r[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===i?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,i):i}},r={};return i.pipe=i.then,pe.each(t,function(e,o){var a=o[2],s=o[3];i[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),r[o[0]]=function(){return r[o[0]+"With"](this===r?i:this,arguments),this},r[o[0]+"With"]=a.fireWith}),i.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,i,r=0,o=re.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,l=1===s?e:pe.Deferred(),u=function(e,n,i){return function(r){n[e]=this,i[e]=arguments.length>1?re.call(arguments):r,i===t?l.notifyWith(n,i):--s||l.resolveWith(n,i)}};if(a>1)for(t=new Array(a),n=new Array(a),i=new Array(a);a>r;r++)o[r]&&pe.isFunction(o[r].promise)?o[r].promise().progress(u(r,n,t)).done(u(r,i,o)).fa
il(l.reject):--s;return s||l.resolveWith(i,o),l.promise()}});var je;pe.fn.ready=function(e){return pe.ready.promise().done(e),this},pe.extend({isReady:!1,readyWait:1,holdReady:function(e){e?pe.readyWait++:pe.ready(!0)},ready:function(e){(e===!0?--pe.readyWait:pe.isReady)||(pe.isReady=!0,e!==!0&&--pe.readyWait>0||(je.resolveWith(ie,[pe]),pe.fn.triggerHandler&&(pe(ie).triggerHandler("ready"),pe(ie).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===ie.readyState||"loading"!==ie.readyState&&!ie.documentElement.doScroll)e.setTimeout(pe.ready);else if(ie.addEventListener)ie.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{ie.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&ie.documentElement}catch(i){}n&&n.doScroll&&!function r(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(r,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var _e;for(_e in
pe(de))break;de.ownFirst="0"===_e,de.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,i;n=ie.getElementsByTagName("body")[0],n&&n.style&&(t=ie.createElement("div"),i=ie.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",de.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(i))}),function(){var e=ie.createElement("div");de.deleteExpando=!0;try{delete e.test}catch(t){de.deleteExpando=!1}e=null}();var Ie=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t},De=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,He=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e
[pe.expando],!!e&&!u(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return d(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return d(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,i,r,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(r=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(i=a[n].name,0===i.indexOf("data-")&&(i=pe.camelCase(i.slice(5)),l(o,i,r[i])));pe._data(o,"parsedAttrs",!0)}return r}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?l(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var i;return e?(t=(t||"fx")+"queue",i=pe._data(e,t),n&&(!i||pe.isArray(n)?i=pe._data(e,t,pe.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),i=n.length,r=n.shift(),o=pe._queueHooks(e,t),a=functi
on(){pe.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,a,o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?pe.queue(this[0],e):void 0===t?this:this.each(function(){var n=pe.queue(this,e,t);pe._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&pe.dequeue(this,e)})},dequeue:function(e){return this.each(function(){pe.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,i=1,r=pe.Deferred(),o=this,a=this.length,s=function(){--i||r.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=pe._data(o[a],e+"queueHooks"),n&&n.empty&&(i++,n.empty.add(s));return s(),r.promise(t)}}),function(){var e;de.s
hrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,i;return n=ie.getElementsByTagName("body")[0],n&&n.style?(t=ie.createElement("div"),i=ie.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(ie.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(i),e):void 0}}();var Oe=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Me=new RegExp("^(?:([+-])=|)("+Oe+")([a-z%]*)$","i"),Pe=["Top","Right","Bottom","Left"],Be=function(e,t){return e=t||e,"none"===pe.css(e,"display")||!pe.contains(e.ownerDocument,e)},Fe=function(e,t,n,i,r,o,a){var s=0,l=e.length,u=null==n;if("object"===pe.type(n)){r=!0;for(s in n)Fe(e,t,s,n[s],!0,o,a)}else if(void 0!==i&&(r=!0,pe.isFunction(i)||(a=!0),u&&(
a?(t.call(e,i),t=null):(u=t,t=function(e,t,n){return u.call(pe(e),n)})),t))for(;l>s;s++)t(e[s],n,a?i:i.call(e[s],s,t(e[s],n)));return r?e:u?t.call(e):l?t(e[0],n):o},qe=/^(?:checkbox|radio)$/i,$e=/<([\w:-]+)/,ze=/^$|\/(?:java|ecma)script/i,Re=/^\s+/,We="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";!function(){var e=ie.createElement("div"),t=ie.createDocumentFragment(),n=ie.createElement("input");e.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",de.leadingWhitespace=3===e.firstChild.nodeType,de.tbody=!e.getElementsByTagName("tbody").length,de.htmlSerialize=!!e.getElementsByTagName("link").length,de.html5Clone="<:nav></:nav>"!==ie.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),de.appendChecked=n.checked,e.innerHTML="<textarea>x</textarea>",de.noCloneChecked=!!e.cloneNode(!
0).lastChild.defaultValue,t.appendChild(e),n=ie.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),de.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,de.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,de.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:de.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ye=/<|&#?\w+;/,Ue=/<tbody/i;!function(){var t,n,i=ie.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(de[t]=n in e)||(i.setAttribute(n,
"t"),de[t]=i.attributes[n].expando===!1);i=null}();var Ve=/^(?:input|select|textarea)$/i,Ge=/^key/,Qe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^(?:focusinfocus|focusoutblur)$/,Je=/^([^.]*)(?:\.(.+)|)/;pe.event={global:{},add:function(e,t,n,i,r){var o,a,s,l,u,c,d,f,p,h,m,g=pe._data(e);if(g){for(n.handler&&(l=n,n=l.handler,r=l.selector),n.guid||(n.guid=pe.guid++),(a=g.events)||(a=g.events={}),(c=g.handle)||(c=g.handle=function(e){return"undefined"==typeof pe||e&&pe.event.triggered===e.type?void 0:pe.event.dispatch.apply(c.elem,arguments)},c.elem=e),t=(t||"").match(Ae)||[""],s=t.length;s--;)o=Je.exec(t[s])||[],p=m=o[1],h=(o[2]||"").split(".").sort(),p&&(u=pe.event.special[p]||{},p=(r?u.delegateType:u.bindType)||p,u=pe.event.special[p]||{},d=pe.extend({type:p,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&pe.expr.match.needsContext.test(r),namespace:h.join(".")},l),(f=a[p])||(f=a[p]=[],f.delegateCount=0,u.setup&&u.setup.call(e,i,h,c)!==!1||(e.addEventList
ener?e.addEventListener(p,c,!1):e.attachEvent&&e.attachEvent("on"+p,c))),u.add&&(u.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),r?f.splice(f.delegateCount++,0,d):f.push(d),pe.event.global[p]=!0);e=null}},remove:function(e,t,n,i,r){var o,a,s,l,u,c,d,f,p,h,m,g=pe.hasData(e)&&pe._data(e);if(g&&(c=g.events)){for(t=(t||"").match(Ae)||[""],u=t.length;u--;)if(s=Je.exec(t[u])||[],p=m=s[1],h=(s[2]||"").split(".").sort(),p){for(d=pe.event.special[p]||{},p=(i?d.delegateType:d.bindType)||p,f=c[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;o--;)a=f[o],!r&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||i&&i!==a.selector&&("**"!==i||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,d.remove&&d.remove.call(e,a));l&&!f.length&&(d.teardown&&d.teardown.call(e,h,g.handle)!==!1||pe.removeEvent(e,p,g.handle),delete c[p])}else for(p in c)pe.event.remove(e,p+t[u],n,i,!0);pe.isEmptyObject(c)&&(delete g.handle,pe._removeData(e,"events"))}
},trigger:function(t,n,i,r){var o,a,s,l,u,c,d,f=[i||ie],p=ce.call(t,"type")?t.type:t,h=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=c=i=i||ie,3!==i.nodeType&&8!==i.nodeType&&!Ze.test(p+pe.event.triggered)&&(p.indexOf(".")>-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:pe.makeArray(n,[t]),u=pe.event.special[p]||{},r||!u.trigger||u.trigger.apply(i,n)!==!1)){if(!r&&!u.noBubble&&!pe.isWindow(i)){for(l=u.delegateType||p,Ze.test(l+p)||(s=s.parentNode);s;s=s.parentNode)f.push(s),c=s;c===(i.ownerDocument||ie)&&f.push(c.defaultView||c.parentWindow||e)}for(d=0;(s=f[d++])&&!t.isPropagationStopped();)t.type=d>1?l:u.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&Ie(s)&&(t
.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!r&&!t.isDefaultPrevented()&&(!u._default||u._default.apply(f.pop(),n)===!1)&&Ie(i)&&a&&i[p]&&!pe.isWindow(i)){c=i[a],c&&(i[a]=null),pe.event.triggered=p;try{i[p]()}catch(m){}pe.event.triggered=void 0,c&&(i[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,i,r,o,a=[],s=re.call(arguments),l=(pe._data(this,"events")||{})[e.type]||[],u=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,l),t=0;(r=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,n=0;(o=r.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,i=((pe.event.special[o.origType]||{}).handle||o.handler).apply(r.elem,s),void 0!==i&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:
function(e,t){var n,i,r,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(i=[],n=0;s>n;n++)o=t[n],r=o.selector+" ",void 0===i[r]&&(i[r]=o.needsContext?pe(r,this).index(l)>-1:pe.find(r,this,null,[l]).length),i[r]&&i.push(o);i.length&&a.push({elem:l,handlers:i})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[pe.expando])return e;var t,n,i,r=e.type,o=e,a=this.fixHooks[r];for(a||(this.fixHooks[r]=a=Qe.test(r)?this.mouseHooks:Ge.test(r)?this.keyHooks:{}),i=a.props?this.props.concat(a.props):this.props,e=new pe.Event(o),t=i.length;t--;)n=i[t],e[n]=o[n];return e.target||(e.target=o.srcElement||ie),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target time
Stamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,i,r,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(i=e.target.ownerDocument||ie,r=i.documentElement,n=i.body,e.pageX=t.clientX+(r&&r.scrollLeft||n&&n.scrollLeft||0)-(r&&r.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||n&&n.scrollTop||0)-(r&&r.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==x()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===x()&&this.blur?(this.blur(),!1):vo
id 0},delegateType:"focusout"},click:{trigger:function(){return pe.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return pe.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n){var i=pe.extend(new pe.Event,n,{type:e,isSimulated:!0});pe.event.trigger(i,null,t),i.isDefaultPrevented()&&n.preventDefault()}},pe.removeEvent=ie.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)}:function(e,t,n){var i="on"+t;e.detachEvent&&("undefined"==typeof e[i]&&(e[i]=null),e.detachEvent(i,n))},pe.Event=function(e,t){return this instanceof pe.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?y:b):this.type=e,t&&pe.extend(this,t),this.timeStamp=e&&e.timeStamp||pe.now(),void(this[pe.expando]=!0)):new pe.E
vent(e,t)},pe.Event.prototype={constructor:pe.Event,isDefaultPrevented:b,isPropagationStopped:b,isImmediatePropagationStopped:b,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=y,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=y,e&&!this.isSimulated&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=y,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},pe.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){pe.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,i=this,r=e.relatedTarget,o=e.handleObj;return r&&(r===i||pe.contains(i,r))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),de.submit||(pe.event.special.submit={setup:functi
on(){return pe.nodeName(this,"form")?!1:void pe.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=pe.nodeName(t,"input")||pe.nodeName(t,"button")?pe.prop(t,"form"):void 0;n&&!pe._data(n,"submit")&&(pe.event.add(n,"submit._submit",function(e){e._submitBubble=!0}),pe._data(n,"submit",!0))})},postDispatch:function(e){e._submitBubble&&(delete e._submitBubble,this.parentNode&&!e.isTrigger&&pe.event.simulate("submit",this.parentNode,e))},teardown:function(){return pe.nodeName(this,"form")?!1:void pe.event.remove(this,"._submit")}}),de.change||(pe.event.special.change={setup:function(){return Ve.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(pe.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._justChanged=!0)}),pe.event.add(this,"click._change",function(e){this._justChanged&&!e.isTrigger&&(this._justChanged=!1),pe.event.simulate("change",this,e)})),!1):void pe.event.add(this,"beforeactivate._c
hange",function(e){var t=e.target;Ve.test(t.nodeName)&&!pe._data(t,"change")&&(pe.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||pe.event.simulate("change",this.parentNode,e)}),pe._data(t,"change",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return pe.event.remove(this,"._change"),!Ve.test(this.nodeName)}}),de.focusin||pe.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){pe.event.simulate(t,e.target,pe.event.fix(e))};pe.event.special[t]={setup:function(){var i=this.ownerDocument||this,r=pe._data(i,t);r||i.addEventListener(e,n,!0),pe._data(i,t,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this,r=pe._data(i,t)-1;r?pe._data(i,t,r):(i.removeEventListener(e,n,!0),pe._removeData(i,t))}}}),pe.fn.extend({on:function(e,t,n,i){return w(this,e,t,n,i)},one:function(e,t,n,i){re
turn w(this,e,t,n,i,1)},off:function(e,t,n){var i,r;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,pe(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(r in e)this.off(r,t,e[r]);return this}return t!==!1&&"function"!=typeof t||(n=t,t=void 0),n===!1&&(n=b),this.each(function(){pe.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){pe.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?pe.event.trigger(e,t,n,!0):void 0}});var Ke=/ jQuery\d+="(?:null|\d+)"/g,et=new RegExp("<(?:"+We+")[\\s/>]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/<script|<style|<link/i,it=/checked\s*(?:[^=]|=\s*.checked.)/i,rt=/^true\/(.*)/,ot=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,at=p(ie),st=at.appendChild(ie.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1></$2>")},clone:function(e,t,n){var i,
r,o,a,s,l=pe.contains(e.ownerDocument,e);if(de.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(de.noCloneEvent&&de.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(i=h(o),s=h(e),a=0;null!=(r=s[a]);++a)i[a]&&S(r,i[a]);if(t)if(n)for(s=s||h(e),i=i||h(o),a=0;null!=(r=s[a]);a++)E(r,i[a]);else E(e,o);return i=h(o,"script"),i.length>0&&m(i,!l&&h(e,"script")),i=s=r=null,o},cleanData:function(e,t){for(var n,i,r,o,a=0,s=pe.expando,l=pe.cache,u=de.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||Ie(n))&&(r=n[s],o=r&&l[r])){if(o.events)for(i in o.events)c[i]?pe.event.remove(n,i):pe.removeEvent(n,i,o.handle);l[r]&&(delete l[r],u||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(r))}}}),pe.fn.extend({domManip:N,detach:function(e){return L(this,e,!0)},remove:function(e){return L(this,e)},text:function(e){return Fe(this,function(e){return void 0===e?pe.tex
t(this):this.empty().append((this[0]&&this[0].ownerDocument||ie).createTextNode(e))},null,e,arguments.length)},append:function(){return N(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.appendChild(e)}})},prepend:function(){return N(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return N(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return N(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){retu
rn Fe(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ke,""):void 0;
+if("string"==typeof e&&!nt.test(e)&&(de.htmlSerialize||!et.test(e))&&(de.leadingWhitespace||!Re.test(e))&&!Xe[($e.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;i>n;n++)t=this[n]||{},1===t.nodeType&&(pe.cleanData(h(t,!1)),t.innerHTML=e);t=0}catch(r){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return N(this,arguments,function(t){var n=this.parentNode;pe.inArray(this,e)<0&&(pe.cleanData(h(this)),n&&n.replaceChild(t,this))},e)}}),pe.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){pe.fn[e]=function(e){for(var n,i=0,r=[],o=pe(e),a=o.length-1;a>=i;i++)n=i===a?this:this.clone(!0),pe(o[i])[t](n),ae.apply(r,n.get());return this.pushStack(r)}});var lt,ut={HTML:"block",BODY:"block"},ct=/^margin/,dt=new RegExp("^("+Oe+")(?!px)[a-z%]+$","i"),ft=function(e,t,n,i){var r,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];r=n.apply(e,i||[]);for(o in t)e.style[o
]=a[o];return r},pt=ie.documentElement;!function(){function t(){var t,c,d=ie.documentElement;d.appendChild(l),u.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",n=r=s=!1,i=a=!0,e.getComputedStyle&&(c=e.getComputedStyle(u),n="1%"!==(c||{}).top,s="2px"===(c||{}).marginLeft,r="4px"===(c||{width:"4px"}).width,u.style.marginRight="50%",i="4px"===(c||{marginRight:"4px"}).marginRight,t=u.appendChild(ie.createElement("div")),t.style.cssText=u.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",u.style.width="1px",a=!parseFloat((e.getComputedStyle(t)||{}).marginRight),u.removeChild(t)),u.style.display="none",o=0===u.getClientRects().length,o&&(u.style.display="",u.innerHTML="<table><tr><td></td><td>t</td></tr></table>",u.childNodes[0].style.borderCollapse="separate",
t=u.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),d.removeChild(l)}var n,i,r,o,a,s,l=ie.createElement("div"),u=ie.createElement("div");u.style&&(u.style.cssText="float:left;opacity:.5",de.opacity="0.5"===u.style.opacity,de.cssFloat=!!u.style.cssFloat,u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",de.clearCloneStyle="content-box"===u.style.backgroundClip,l=ie.createElement("div"),l.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",u.innerHTML="",l.appendChild(u),de.boxSizing=""===u.style.boxSizing||""===u.style.MozBoxSizing||""===u.style.WebkitBoxSizing,pe.extend(de,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),r},pixelMarginRight:function(){return null==n&&t(),i},pixelPosition:function(){return nu
ll==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,mt,gt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},mt=function(e,t,n){var i,r,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!de.pixelMarginRight()&&dt.test(a)&&ct.test(t)&&(i=s.width,r=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=i,s.minWidth=r,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},mt=function(e,t,n){var i,r,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),dt.test(a)&&!gt.test(t)&&(i=s.left,r=e.runtimeStyle,o=r&&r.left,o&&(r.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=i,o&&(r.left=o)),void 0===a?a:a+""||"auto"});v
ar vt=/alpha\([^)]*\)/i,yt=/opacity\s*=\s*([^)]*)/i,bt=/^(none|table(?!-c[ea]).+)/,xt=new RegExp("^("+Oe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Ct={letterSpacing:"0",fontWeight:"400"},Tt=["Webkit","O","Moz","ms"],kt=ie.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=mt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":de.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,o,a,s=pe.camelCase(t),l=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=I(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(r=a.get(e,!1,i))?r:l[t];if(o=typeof n,"string"===o&&(r=Me.exec(n))&&r[1]&&(n=f(e,t,r),o="number"),null!=n&&n===n&&("number"===o&&(n+=r&&r[3]||(pe.css
Number[s]?"":"px")),de.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,i)))))try{l[t]=n}catch(u){}}},css:function(e,t,n,i){var r,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=I(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=mt(e,t,i)),"normal"===o&&t in Ct&&(o=Ct[t]),""===n||n?(r=parseFloat(o),n===!0||isFinite(r)?r||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,i){return n?bt.test(pe.css(e,"display"))&&0===e.offsetWidth?ft(e,wt,function(){return M(e,t,i)}):M(e,t,i):void 0},set:function(e,n,i){var r=i&&ht(e);return H(e,n,i?O(e,t,i,de.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,r),r):0)}}}),de.opacity||(pe.cssHooks.opacity={get:function(e,t){return yt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,i=e.currentStyle,r=pe.isNumeric(t)?"alp
ha(opacity="+100*t+")":"",o=i&&i.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(vt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||i&&!i.filter)||(n.filter=vt.test(o)?o.replace(vt,r):o+" "+r)}}),pe.cssHooks.marginRight=_(de.reliableMarginRight,function(e,t){return t?ft(e,{display:"inline-block"},mt,[e,"marginRight"]):void 0}),pe.cssHooks.marginLeft=_(de.reliableMarginLeft,function(e,t){return t?(parseFloat(mt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-ft(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px":void 0}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var i=0,r={},o="string"==typeof n?n.split(" "):[n];4>i;i++)r[e+Pe[i]+t]=o[i]||o[i-2]||o[0];return r}},ct.test(e)||(pe.cssHooks[e+t].set=H)}),pe.fn.extend({css:function(e,t){return Fe(this,function(e,t,n){var i,r,o={},a=0;if(pe.isArray(t)){for(i=ht(e),r=t.length;r>a;a++)o[t[a]]
=pe.css(e,t[a],!1,i);return o}return void 0!==n?pe.style(e,t,n):pe.css(e,t)},e,t,arguments.length>1)},show:function(){return D(this,!0)},hide:function(){return D(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Be(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=P,P.prototype={constructor:P,init:function(e,t,n,i,r,o){this.elem=e,this.prop=n,this.easing=r||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=P.propHooks[this.prop];return e&&e.get?e.get(this):P.propHooks._default.get(this)},run:function(e){var t,n=P.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):P.propHooks._default.set(this),this}},P.prototype.init.pro
totype=P.prototype,P.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},P.propHooks.scrollTop=P.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=P.prototype.init,pe.fx.step={};var Et,St,Nt=/^(?:toggle|show|hide)$/,Lt=/queueHooks$/;pe.Animation=pe.extend(R,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return f(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(Ae);for(var n,i=0,r=e.length;r>i;i++)n=e[i],R.tweeners[n]=R.tweeners[n]||[],R.tweeners
[n].unshift(t)},prefilters:[$],prefilter:function(e,t){t?R.prefilters.unshift(e):R.prefilters.push(e)}}),pe.speed=function(e,t,n){var i=e&&"object"==typeof e?pe.extend({},e):{complete:n||!n&&t||pe.isFunction(e)&&e,duration:e,easing:n&&t||t&&!pe.isFunction(t)&&t};return i.duration=pe.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in pe.fx.speeds?pe.fx.speeds[i.duration]:pe.fx.speeds._default,null!=i.queue&&i.queue!==!0||(i.queue="fx"),i.old=i.complete,i.complete=function(){pe.isFunction(i.old)&&i.old.call(this),i.queue&&pe.dequeue(this,i.queue)},i},pe.fn.extend({fadeTo:function(e,t,n,i){return this.filter(Be).css("opacity",0).show().end().animate({opacity:t},e,n,i)},animate:function(e,t,n,i){var r=pe.isEmptyObject(e),o=pe.speed(t,n,i),a=function(){var t=R(this,pe.extend({},e),o);(r||pe._data(this,"finish"))&&t.stop(!0)};return a.finish=a,r||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var i=function(e){var t=e.stop;delete e.stop,t(n)};return"strin
g"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,r=null!=e&&e+"queueHooks",o=pe.timers,a=pe._data(this);if(r)a[r]&&a[r].stop&&i(a[r]);else for(r in a)a[r]&&a[r].stop&&Lt.test(r)&&i(a[r]);for(r=o.length;r--;)o[r].elem!==this||null!=e&&o[r].queue!==e||(o[r].anim.stop(n),t=!1,o.splice(r,1));!t&&n||pe.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=pe._data(this),i=n[e+"queue"],r=n[e+"queueHooks"],o=pe.timers,a=i?i.length:0;for(n.finish=!0,pe.queue(this,e,[]),r&&r.stop&&r.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)i[t]&&i[t].finish&&i[t].finish.call(this);delete n.finish})}}),pe.each(["toggle","show","hide"],function(e,t){var n=pe.fn[t];pe.fn[t]=function(e,i,r){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(F(t,!0),e,i,r)}}),pe.each({slideDown:F("show"),slideUp:F("hide"),slideToggle:F("toggle"
),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){pe.fn[e]=function(e,n,i){return this.animate(t,e,n,i)}}),pe.timers=[],pe.fx.tick=function(){var e,t=pe.timers,n=0;for(Et=pe.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||pe.fx.stop(),Et=void 0},pe.fx.timer=function(e){pe.timers.push(e),e()?pe.fx.start():pe.timers.pop()},pe.fx.interval=13,pe.fx.start=function(){St||(St=e.setInterval(pe.fx.tick,pe.fx.interval))},pe.fx.stop=function(){e.clearInterval(St),St=null},pe.fx.speeds={slow:600,fast:200,_default:400},pe.fn.delay=function(t,n){return t=pe.fx?pe.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,i){var r=e.setTimeout(n,t);i.stop=function(){e.clearTimeout(r)}})},function(){var e,t=ie.createElement("input"),n=ie.createElement("div"),i=ie.createElement("select"),r=i.appendChild(ie.createElement("option"));n=ie.createElement("div"),n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</
a><input type='checkbox'/>",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",de.getSetAttribute="t"!==n.className,de.style=/top/.test(e.getAttribute("style")),de.hrefNormalized="/a"===e.getAttribute("href"),de.checkOn=!!t.value,de.optSelected=r.selected,de.enctype=!!ie.createElement("form").enctype,i.disabled=!0,de.optDisabled=!r.disabled,t=ie.createElement("input"),t.setAttribute("value",""),de.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),de.radioValue="t"===t.value}();var At=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,i,r=this[0];return arguments.length?(i=pe.isFunction(e),this.each(function(n){var r;1===this.nodeType&&(r=i?e.call(this,n,pe(this).val()):e,null==r?r="":"number"==typeof r?r+="":pe.isArray(r)&&(r=pe.map(r,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t
&&void 0!==t.set(this,r,"value")||(this.value=r))})):r?(t=pe.valHooks[r.type]||pe.valHooks[r.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(At,""):null==n?"":n)):void 0}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,i=e.options,r=e.selectedIndex,o="select-one"===e.type||0>r,a=o?null:[],s=o?r+1:i.length,l=0>r?s:o?r:0;s>l;l++)if(n=i[l],(n.selected||l===r)&&(de.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!pe.nodeName(n.parentNode,"optgroup"))){if(t=pe(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,i,r=e.options,o=pe.makeArray(t),a=r.length;a--;)if(i=r[a],pe.inArray(pe.valHooks.option.get(i),o)>-1)try{i.selected=n=!0}catch(s){i.scrollHeight}else i.selected=!1;return n||(e.selectedIndex=-1),r}}}}),pe.each(["radio","checkbox"],function(){pe.valHo
oks[this]={set:function(e,t){return pe.isArray(t)?e.checked=pe.inArray(pe(e).val(),t)>-1:void 0}},de.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var _t,It,Dt=pe.expr.attrHandle,Ht=/^(?:checked|selected)$/i,Ot=de.getSetAttribute,Mt=de.input;pe.fn.extend({attr:function(e,t){return Fe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var i,r,o=e.nodeType;return 3!==o&&8!==o&&2!==o?"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),r=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?It:_t)),void 0!==n?null===n?void pe.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=pe.find.attr(e,t),null==i?void 0:i)):void 0},attrHooks:{type:{set:function(e,t){if(!de.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.se
tAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i,r=0,o=t&&t.match(Ae);if(o&&1===e.nodeType)for(;n=o[r++];)i=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ot||!Ht.test(n)?e[i]=!1:e[pe.camelCase("default-"+n)]=e[i]=!1:pe.attr(e,n,""),e.removeAttribute(Ot?n:i)}}),It={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ot||!Ht.test(n)?e.setAttribute(!Ot&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Dt[t]||pe.find.attr;Mt&&Ot||!Ht.test(t)?Dt[t]=function(e,t,i){var r,o;return i||(o=Dt[t],Dt[t]=r,r=null!=n(e,t,i)?t.toLowerCase():null,Dt[t]=o),r}:Dt[t]=function(e,t,n){return n?void 0:e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ot||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):_t&&_t.set(e,t,n)}}),Ot||(_t={set:function(e,t,n){var i=e.getAttributeNode(n);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute
(n)),i.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},Dt.id=Dt.name=Dt.coords=function(e,t,n){var i;return n?void 0:(i=e.getAttributeNode(t))&&""!==i.value?i.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:_t.set},pe.attrHooks.contenteditable={set:function(e,t,n){_t.set(e,""===t?!1:t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),de.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Pt=/^(?:input|select|textarea|button|object)$/i,Bt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Fe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var i,r,o=e.nodeType;return 3!==o&&8!==o&&2!==o?(1===o&&pe.isX
MLDoc(e)||(t=pe.propFix[t]||t,r=pe.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]):void 0},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Pt.test(e.nodeName)||Bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),de.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),de.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),de.enctype||(pe.propFix.enctype="encoding");var Ft=/[\t\r\n\f]/g;pe.fn.extend({addCla
ss:function(e){var t,n,i,r,o,a,s,l=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,W(this)))});if("string"==typeof e&&e)for(t=e.match(Ae)||[];n=this[l++];)if(r=W(n),i=1===n.nodeType&&(" "+r+" ").replace(Ft," ")){for(a=0;o=t[a++];)i.indexOf(" "+o+" ")<0&&(i+=o+" ");s=pe.trim(i),r!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,i,r,o,a,s,l=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,W(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Ae)||[];n=this[l++];)if(r=W(n),i=1===n.nodeType&&(" "+r+" ").replace(Ft," ")){for(a=0;o=t[a++];)for(;i.indexOf(" "+o+" ")>-1;)i=i.replace(" "+o+" "," ");s=pe.trim(i),r!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,W(this),t),
t)}):this.each(function(){var t,i,r,o;if("string"===n)for(i=0,r=pe(this),o=e.match(Ae)||[];t=o[i++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else void 0!==e&&"boolean"!==n||(t=W(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,i=0;for(t=" "+e+" ";n=this[i++];)if(1===n.nodeType&&(" "+W(n)+" ").replace(Ft," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var qt=e.location,$t=pe.now(),zt=/\?/,Rt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\
d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,i=null,r=pe.trim(t+"");return r&&!pe.trim(r.replace(Rt,function(e,t,r,o){return n&&t&&(i=0),0===i?e:(n=r||t,i+=!o-!r,"")}))?Function("return "+r)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,i;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(i=new e.DOMParser,n=i.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(r){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var Wt=/#.*$/,Xt=/([?&])_=[^&]*/,Yt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ut=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Vt=/^(?:GET|HEAD)$/,Gt=/^\/\//,Qt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Zt={},Jt={},Kt="*/".concat("*"),en=qt.href,tn=Qt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET"
,isLocal:Ut.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?U(U(e,pe.ajaxSettings),t):U(pe.ajaxSettings,e)},ajaxPrefilter:X(Zt),ajaxTransport:X(Jt),ajax:function(t,n){function i(t,n,i,r){var o,d,y,b,w,T=n;2!==x&&(x=2,l&&e.clearTimeout(l),c=void 0,s=r||"",C.readyState=t>0?4:0,o=t>=200&&300>t||304===t,i&&(b=V(f,C,i)),b=G(f,b,C,o),o?(f.ifModified&&(w=C.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=C.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===f.type?T="nocontent":304===t?T="notmodified
":(T=b.state,d=b.data,y=b.error,o=!y)):(y=T,!t&&T||(T="error",0>t&&(t=0))),C.status=t,C.statusText=(n||T)+"",o?m.resolveWith(p,[d,T,C]):m.rejectWith(p,[C,T,y]),C.statusCode(v),v=void 0,u&&h.trigger(o?"ajaxSuccess":"ajaxError",[C,f,o?d:y]),g.fireWith(p,[C,T]),u&&(h.trigger("ajaxComplete",[C,f]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var r,o,a,s,l,u,c,d,f=pe.ajaxSetup({},n),p=f.context||f,h=f.context&&(p.nodeType||p.jquery)?pe(p):pe.event,m=pe.Deferred(),g=pe.Callbacks("once memory"),v=f.statusCode||{},y={},b={},x=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!d)for(d={};t=Yt.exec(s);)d[t[1].toLowerCase()]=t[2];t=d[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t
in e)v[t]=[v[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),i(0,t),this}};if(m.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,f.url=((t||f.url||en)+"").replace(Wt,"").replace(Gt,tn[1]+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=pe.trim(f.dataType||"*").toLowerCase().match(Ae)||[""],null==f.crossDomain&&(r=Qt.exec(f.url.toLowerCase()),f.crossDomain=!(!r||r[1]===tn[1]&&r[2]===tn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),f.data&&f.processData&&"string"!=typeof f.data&&(f.data=pe.param(f.data,f.traditional)),Y(Zt,f,n,C),2===x)return C;u=pe.event&&f.global,u&&0===pe.active++&&pe.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Vt.test(f.type),a=f.url,f.hasContent||(f.data&&(a=f.url+=(zt.test(a)?"&":"?")+f.data,delete f.data),f.cache===!1&&(f.url=Xt.test(a)?a.replace(Xt,"$1_="+$t++):a+(zt.test(a)?"&":"?")+"_="+$t++)),f.ifModified&&(pe.lastModified[a]&&
C.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&C.setRequestHeader("If-None-Match",pe.etag[a])),(f.data&&f.hasContent&&f.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Kt+"; q=0.01":""):f.accepts["*"]);for(o in f.headers)C.setRequestHeader(o,f.headers[o]);if(f.beforeSend&&(f.beforeSend.call(p,C,f)===!1||2===x))return C.abort();w="abort";for(o in{success:1,error:1,complete:1})C[o](f[o]);if(c=Y(Jt,f,n,C)){if(C.readyState=1,u&&h.trigger("ajaxSend",[C,f]),2===x)return C;f.async&&f.timeout>0&&(l=e.setTimeout(function(){C.abort("timeout")},f.timeout));try{x=1,c.send(y,i)}catch(T){if(!(2>x))throw T;i(-1,T)}}else i(-1,"No Transport");return C},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,
i,r){return pe.isFunction(n)&&(r=r||i,i=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:r,data:n,success:i},pe.isPlainObject(e)&&e))}}),pe
<TRUNCATED>
[05/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/dowloading/releases/index.html
----------------------------------------------------------------------
diff --git a/content/dowloading/releases/index.html b/content/dowloading/releases/index.html
new file mode 100644
index 0000000..931b2ac
--- /dev/null
+++ b/content/dowloading/releases/index.html
@@ -0,0 +1,545 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Downloading the Apache RocketMQ Releases - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Downloading the Apache RocketMQ Releases">
+
+
+ <link rel="canonical" href="http://localhost:4000/dowloading/releases/">
+ <meta property="og:url" content="http://localhost:4000/dowloading/releases/">
+
+
+
+ <meta property="og:description" content="Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Downloading the Apache RocketMQ Releases">
+ <meta name="twitter:description" content="Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.">
+ <meta name="twitter:url" content="http://localhost:4000/dowloading/releases/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="active">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Downloading the Apache RocketMQ Releases">
+ <meta itemprop="description" content="Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="February 21, 2017">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Downloading the Apache RocketMQ Releases
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.</p>
+
+<h1 id="400-incubating-release">4.0.0-incubating release</h1>
+
+<ul>
+ <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="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.sha1">SHA1</a>]</li>
+ <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.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.sha1">SHA1</a>]</li>
+</ul>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-02-21">February 21, 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=Downloading the Apache RocketMQ Releases http://localhost:4000/dowloading/releases/" 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=http://localhost:4000/dowloading/releases/" 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=http://localhost:4000/dowloading/releases/" 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=http://localhost:4000/dowloading/releases/" 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="http://localhost:4000/docs/branching-model" class="pagination--pager" title="Branching Model
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/roadmap/" class="pagination--pager" title="The RoadMap of Apache RocketMQ
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/favicon.ico
----------------------------------------------------------------------
diff --git a/content/favicon.ico b/content/favicon.ico
new file mode 100644
index 0000000..bbfd062
Binary files /dev/null and b/content/favicon.ico differ
[03/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/feed.xslt.xml
----------------------------------------------------------------------
diff --git a/content/feed.xslt.xml b/content/feed.xslt.xml
new file mode 100644
index 0000000..15901c1
--- /dev/null
+++ b/content/feed.xslt.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?><xsl:transform version="1.0"
+ xmlns:a="http://www.w3.org/2005/Atom"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+><xsl:strip-space elements="*"/><xsl:output method="text"/><xsl:template match="*"/><xsl:template match="a:feed"><xsl:text>Atom Feed:</xsl:text><xsl:value-of select="a:id"/><xsl:text> </xsl:text><xsl:apply-templates/></xsl:template><xsl:template match="a:entry"><xsl:text> ---------------------------------------- </xsl:text><xsl:text> Feed entry:</xsl:text><xsl:value-of select="a:id"/><xsl:text> </xsl:text><xsl:apply-templates/></xsl:template><xsl:template match="a:title"><xsl:if test="parent::a:entry"><xsl:value-of select="' '"/></xsl:if><xsl:value-of select="local-name()"/>:<xsl:apply-templates/><xsl:text> </xsl:text></xsl:template><xsl:template match="a:published|a:updated"><xsl:if test="parent::a:entry"><xsl:value-of select="' '"/></xsl:if><xsl:value-of select="local-name()"/>:<xsl:apply-templates/><xsl:text> </xsl:text></xsl:template></xsl:transform>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
new file mode 100644
index 0000000..2f0fea0
--- /dev/null
+++ b/content/index.html
@@ -0,0 +1,445 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Apache RocketMQ">
+
+
+ <link rel="canonical" href="http://localhost:4000/">
+ <meta property="og:url" content="http://localhost:4000/">
+
+
+
+ <meta property="og:description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Apache RocketMQ">
+ <meta name="twitter:description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+ <meta name="twitter:url" content="http://localhost:4000/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:image" content="http://localhost:4000/assets/images/rmq-home-page.jpg">
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--splash">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/about/team/">About</a></li>
+
+ </ul>
+ <ul class="hidden-links hidden"></ul>
+ </nav>
+ </div>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+<div class="page__hero--overlay"
+ style="background-color: #5e616c; background-image: url('http://localhost:4000/assets/images/rmq-home-page.jpg');"
+>
+
+ <div class="wrapper">
+ <h1 class="page__title" itemprop="headline">
+
+ Apache RocketMQ
+
+
+ </h1>
+
+ <p class="page__lead">Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform.<br /> <small><a href="/release_notes/release-notes-4.0.0-incubating/">Latest release v4.0.0-incubating</a></small><br /><br /> <iframe style="display: inline-block;" src="https://ghbtns.com/github-btn.html?user=apache&repo=incubator-rocketmq&type=star&count=true&size=large" frameborder="0" scrolling="0" width="160px" height="30px"></iframe> <iframe style="display: inline-block;" src="https://ghbtns.com/github-btn.html?user=apache&repo=incubator-rocketmq&type=fork&count=true&size=large" frameborder="0" scrolling="0" width="158px" height="30px"></iframe>
+</p>
+
+
+
+ <p><a href="http://localhost:4000/docs/quick-start/" class="btn btn--light-outline btn--large"><i class='fa fa-rocket'></i> Getting Started</a></p>
+
+ </div>
+
+
+</div>
+
+
+<div id="main" role="main">
+ <article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
+
+ <meta itemprop="description" content="Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating ">
+
+
+
+ <section class="page__content" itemprop="text">
+
+<div class="feature__wrapper">
+
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/rmq-feature-lowlatency.png" alt="Low Latency" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+ <h2 class="archive__item-title">Low Latency</h2>
+
+
+
+ <div class="archive__item-excerpt">
+ <p>More than 99.6% response latency within 1 millisecond under high stress.</p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/rmq-feature-finance.png" alt="Finance Oriented" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+ <h2 class="archive__item-title">Finance Oriented</h2>
+
+
+
+ <div class="archive__item-excerpt">
+ <p>High availability with tracking and auditing characteristics.</p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/rmq-feature-bigdata.png" alt="BigData Friendly" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+ <h2 class="archive__item-title">BigData Friendly</h2>
+
+
+
+ <div class="archive__item-excerpt">
+ <p>Batch transferring with versatile integration for flooding throughput.</p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+<div class="feature__wrapper">
+
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/rmq-feature-industry.png" alt="Industry Sustainable" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+ <h2 class="archive__item-title">Industry Sustainable</h2>
+
+
+
+ <div class="archive__item-excerpt">
+ <p>Trillions of messages capacity guarantee especially in 11.11 Global Shopping Festival.</p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/rmq-feature-massiveaccumulation.png" alt="Massive Accumulation" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+ <h2 class="archive__item-title">Massive Accumulation</h2>
+
+
+
+ <div class="archive__item-excerpt">
+ <p>Accumulate messages as long as having enough disk without performance loss.</p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+ <div class="feature__item">
+ <div class="archive__item">
+
+ <div class="archive__item-teaser">
+ <img src="http://localhost:4000/assets/images/rmq-feature-neutral.png" alt="Vendor Neutral" />
+ </div>
+
+
+ <div class="archive__item-body">
+
+ <h2 class="archive__item-title">Vendor Neutral</h2>
+
+
+
+ <div class="archive__item-excerpt">
+ <p>A new open distributed messaging and streaming standard since latest 4.x version.</p>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+<h2 id="disclaimer">Disclaimer</h2>
+<p>Apache RocketMQ is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+
+ </section>
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/maven/mastering-component-compatible-dependency/index.html
----------------------------------------------------------------------
diff --git a/content/maven/mastering-component-compatible-dependency/index.html b/content/maven/mastering-component-compatible-dependency/index.html
new file mode 100644
index 0000000..d7eca89
--- /dev/null
+++ b/content/maven/mastering-component-compatible-dependency/index.html
@@ -0,0 +1,795 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Mastering Component Compatible Dependency - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about Dependency Mediator project.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Mastering Component Compatible Dependency">
+
+
+ <link rel="canonical" href="http://localhost:4000/maven/mastering-component-compatible-dependency/">
+ <meta property="og:url" content="http://localhost:4000/maven/mastering-component-compatible-dependency/">
+
+
+
+ <meta property="og:description" content="This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about Dependency Mediator project.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Mastering Component Compatible Dependency">
+ <meta name="twitter:description" content="This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about Dependency Mediator project.">
+ <meta name="twitter:url" content="http://localhost:4000/maven/mastering-component-compatible-dependency/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2016-12-23T00:00:00+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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="Mastering Component Compatible Dependency">
+ <meta itemprop="description" content="This article mainly includes three parts.at first,I will introduce compatibility principle(more details see here) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about Dependency Mediator project.">
+ <meta itemprop="datePublished" content="December 23, 2016">
+
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Mastering Component Compatible Dependency
+</h1>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 11 minute read
+</p>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>This article mainly includes three parts.at first,I will introduce compatibility principle(more details see <a href="http://blog.csdn.net/fengjia10/article/details/7799227">here</a>) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about <strong>Dependency Mediator</strong> project.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#compatibility" id="markdown-toc-compatibility">Compatibility</a></li>
+ <li><a href="#component-compatible-dependency" id="markdown-toc-component-compatible-dependency">Component Compatible Dependency</a> <ul>
+ <li><a href="#interface-oriented-programming" id="markdown-toc-interface-oriented-programming">Interface-oriented programming</a></li>
+ <li><a href="#single-component-signature-protection" id="markdown-toc-single-component-signature-protection">Single component signature protection</a></li>
+ <li><a href="#single-component-compatibility-protection" id="markdown-toc-single-component-compatibility-protection">Single component compatibility protection</a></li>
+ <li><a href="#multi-component-compatibility-compile-time-checking" id="markdown-toc-multi-component-compatibility-compile-time-checking">Multi-component compatibility compile time checking</a></li>
+ </ul>
+ </li>
+ <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="compatibility">Compatibility</h1>
+
+<p>what is compatibility\uff1fit is also the key to understanding the compatible dependency.Compatibility, often catch our eyes through two forms,<strong>binary compatibility</strong>,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 \u201895), Java programming language binaries are binary compatible under all relevant transformations that the authors identify (with some caveats with respect to the addition of instance variables). here is a list of some important binary compatible changes that the Java programming language supports:</p>
+
+<ul>
+ <li>Reimplementing existing methods, constructors, and initializers to improve performance.</li>
+ <li>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.</li>
+ <li>Adding new fields, methods, or constructors to an existing class or interface.</li>
+ <li>Deleting private fields, methods, or constructors of a class.</li>
+ <li>When an entire package is updated, deleting default (package-only) access fields, methods, or constructors of classes and interfaces in the package.</li>
+ <li>Reordering the fields, methods, or constructors in an existing type declaration.</li>
+ <li>Moving a method upward in the class hierarchy.</li>
+ <li>Reordering the list of direct superinterfaces of a class or interface.</li>
+ <li>Inserting new class or interface types in the type hierarchy.</li>
+</ul>
+
+<p>Generally,java language is <strong>upwards binary-compatible</strong> 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 <a href="http://www.oracle.com/technetwork/java/javase/compatibility-137541.html#binary">here</a>.</p>
+
+<p>Another compatibility form,we call it <strong>source compatibility</strong>,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:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">UnsupportedClassVersionError</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">core</span><span class="o">.</span><span class="na">MessageConsumer</span> <span class="o">:</span>
+ <span class="n">Unsupported</span> <span class="n">major</span><span class="o">.</span><span class="na">minor</span> <span class="n">version</span> <span class="mf">51.0</span>
+ <span class="n">at</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">ClassLoader</span><span class="o">.</span><span class="na">defineClass1</span><span class="o">(</span><span class="n">Native</span> <span class="n">Method</span><span class="o">)</span>
+ <span class="n">at</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">ClassLoader</span><span class="o">.</span><span class="na">defineClassCond</span><span class="o">(</span><span class="n">Unknown</span> <span class="n">Source</span><span class="o">)</span>
+</code></pre>
+</div>
+
+<p>Java language source compatibility policy is as follows,except for any incompatibilities listed further below:</p>
+
+<ul>
+ <li>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.</li>
+ <li>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.</li>
+</ul>
+
+<p>Let\u2019s sum up before going on:</p>
+
+<ul>
+ <li>Document those incompatibility cases as much as possible, even some rare circumstances and corner cases.</li>
+ <li>Recommend developer to provide facilities that alert developers to the impact of changes on pre-existing binaries that cannot be recompiled.</li>
+ <li>Generally speaking,Binary Compatibility problems may occur in the following situations:</li>
+ <li><strong>Replacing the old with the new</strong>,such as the Java platform Profiling Architecture in the Java SE6,JVMDI was removed and JVMPI was disabled in Java SE 6.</li>
+ <li><strong>Combinatorial resolution</strong>,such as Non class files have been moved from rt.jar in Java SE 6.if -Xbootclasspath:<path to="" rt.jar=""> is specified,and request any resource files will fail since these resources now reside in a different jar file called resources.jar.</path></li>
+ <li><strong>Behavior change</strong>,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=true to achieve backward compatibility.</li>
+ <li><strong>Structure change</strong>,this is also the key problem to solve in <strong>Dependency Mediator</strong> 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 <a href="http://blog.csdn.net/fengjia10/article/details/7799227">article</a> I wrote before. also you can read the the thirteenth chapter of Java language specification.</li>
+</ul>
+
+<h1 id="component-compatible-dependency">Component Compatible Dependency</h1>
+
+<p>This article don\u2019t talk about <strong>dependency analysis</strong> and <strong>dependency decoupling</strong>,if you care these topics,please read <a href="http://java.dzone.com/articles/dependency-analysis-and-1">Dependency Analysis and the Modularisation of Java Programs</a>.highly recommending you try to dive into open source project <a href="http://xplrarc.massey.ac.nz/">Architecture Explorer</a>,through bcel technology,analyzing and measuring component\u2019s dependency relationship.but in my opinion,<a href="http://clarkware.com/software/JDepend.html">Jdepend</a> was surely the most distinguished tool in dependency analysis and dependency decoupling area.it traverses Java class file directories and generates design quality metrics for each Java package,also allows you to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to manage package dependencies effectively.</p>
+
+<p>Let\u2019s return,ask yourself\uff0chave you ever been disturbed by the following problems?</p>
+
+<ul>
+ <li>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 <strong>NoSuchMethodError</strong>,<strong>NoSuchFieldError</strong> and <strong>NoClassDefFoundError</strong> etc.</li>
+ <li>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.</li>
+ <li>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.</li>
+</ul>
+
+<p>It is the time to introduce the key idea - <strong>Mediating Components Compatible Dependency</strong>.Specifically,it includs the following basic principles:</p>
+
+<ul>
+ <li>Interface-oriented programming</li>
+ <li>Single component signature protection</li>
+ <li>Single component compatibility protection</li>
+ <li>Multi-component compatibility compile time checking</li>
+</ul>
+
+<h2 id="interface-oriented-programming">Interface-oriented programming</h2>
+
+<p>Interface-oriented programming,It\u2019s easier said than done.I will cite SLF4J design philosophy explain this principle.</p>
+
+<p>Differing from commons logging,SLF4J use <strong>static binder technology</strong> so as to avoid notorious <a href="http://articles.qos.ch/classloader.html">classloader problem</a>,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\uff0cI can also depend commons logging api but not concret implementation\uff1fit\u2019s 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 unexpected behavior,hard to debug classloading problems resulting in increased complexity.This is nicely captured by Ceki (the author of Log4J, SLF4J and Logback) in Think again before adopting the commons-logging API (which also mentions memory leaks problems observed with JCL).and this is why SLF4J, which uses static bindings, has been created. Let\u2019s see.how to find the concrete realizations in SLF4J:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="c1">// We need to use the name of the StaticLoggerBinder class, but we can't reference</span>
+<span class="c1">// the class itself.</span>
+<span class="kd">private</span> <span class="kd">static</span> <span class="n">String</span> <span class="n">STATIC_LOGGER_BINDER_PATH</span> <span class="o">=</span> <span class="s">"org/slf4j/impl/StaticLoggerBinder.class"</span><span class="o">;</span>
+ <span class="cm">/**
+ * 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.
+ */</span>
+<span class="kd">static</span> <span class="kd">private</span> <span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">API_COMPATIBILITY_LIST</span> <span class="o">=</span> <span class="k">new</span> <span class="n">String</span><span class="o">[]{</span><span class="s">"1.6"</span><span class="o">,</span> <span class="s">"1.7"</span><span class="o">};</span>
+
+<span class="c1">// private constructor prevents instantiation</span>
+<span class="kd">private</span> <span class="nf">LoggerFactory</span><span class="o">()</span> <span class="o">{}</span>
+<span class="kd">private</span> <span class="kd">final</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">versionSanityCheck</span><span class="o">()</span> <span class="o">{</span>
+ <span class="k">try</span> <span class="o">{</span>
+ <span class="n">String</span> <span class="n">requested</span> <span class="o">=</span> <span class="n">StaticLoggerBinder</span><span class="o">.</span><span class="na">REQUESTED_API_VERSION</span><span class="o">;</span>
+ <span class="kt">boolean</span> <span class="n">match</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
+ <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">API_COMPATIBILITY_LIST</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">requested</span><span class="o">.</span><span class="na">startsWith</span><span class="o">(</span><span class="n">API_COMPATIBILITY_LIST</span><span class="o">[</span><span class="n">i</span><span class="o">]))</span> <span class="o">{</span>
+ <span class="n">match</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
+ <span class="k">if</span> <span class="o">(!</span><span class="n">match</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">Util</span><span class="o">.</span><span class="na">report</span><span class="o">(</span><span class="s">"The requested version "</span> <span class="o">+</span> <span class="n">requested</span>
+ <span class="o">+</span> <span class="s">" by your slf4j binding is not compatible with "</span>
+ <span class="o">+</span> <span class="n">Arrays</span><span class="o">.</span><span class="na">asList</span><span class="o">(</span><span class="n">API_COMPATIBILITY_LIST</span><span class="o">).</span><span class="na">toString</span><span class="o">());</span>
+ <span class="n">Util</span><span class="o">.</span><span class="na">report</span><span class="o">(</span><span class="s">"See "</span> <span class="o">+</span> <span class="n">VERSION_MISMATCH</span> <span class="o">+</span> <span class="s">" for further details."</span><span class="o">);</span>
+ <span class="o">}</span>
+<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">NoSuchFieldError</span> <span class="n">nsfe</span><span class="o">)</span> <span class="o">{</span>
+ <span class="c1">// given our large user base and SLF4J's commitment to backward</span>
+ <span class="c1">// compatibility, we cannot cry here. Only for implementations</span>
+ <span class="c1">// which willingly declare a REQUESTED_API_VERSION field do we</span>
+ <span class="c1">// emit compatibility warnings.</span>
+<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Throwable</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+ <span class="c1">// we should never reach here</span>
+ <span class="n">Util</span><span class="o">.</span><span class="na">report</span><span class="o">(</span><span class="s">"Unexpected problem occured during version sanity check"</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
+ <span class="o">}</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<p>you can use these skills at your library.just Let others depend on your interface package,detecting certain implementation statically.</p>
+
+<p>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:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">String</span> <span class="n">hint</span> <span class="o">=</span> <span class="n">isMaven31</span><span class="o">()</span> <span class="o">?</span> <span class="s">"maven31"</span> <span class="o">:</span> <span class="n">isMaven2x</span><span class="o">()</span> <span class="o">?</span> <span class="s">"maven2"</span> <span class="o">:</span> <span class="s">"maven3"</span><span class="o">;</span>
+
+<span class="cm">/**
+* Check the current Maven version to see if it's Maven 2.x.
+*/</span>
+<span class="kd">protected</span> <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">isMaven2x</span><span class="o">()</span>
+<span class="o">{</span>
+ <span class="k">return</span> <span class="o">!</span><span class="n">canFindCoreClass</span><span class="o">(</span> <span class="s">"org.apache.maven.project.DependencyResolutionRequest"</span> <span class="o">);</span> <span class="c1">// Maven 3 specific</span>
+<span class="o">}</span>
+
+<span class="cm">/**
+* Check the current Maven version to see if it's Maven 3.1.
+*/</span>
+<span class="kd">protected</span> <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">isMaven31</span><span class="o">()</span>
+<span class="o">{</span>
+ <span class="k">return</span> <span class="nf">canFindCoreClass</span><span class="o">(</span> <span class="s">"org.eclipse.aether.artifact.Artifact"</span> <span class="o">);</span> <span class="c1">// Maven 3.1 specific</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="single-component-signature-protection">Single component signature protection</h2>
+
+<p>Secondly,Single component signature protection,you can using <a href="http://mojo.codehaus.org/animal-sniffer/">Animal Sniffer project</a> 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.</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o"><</span><span class="n">plugin</span><span class="o">></span>
+ <span class="o"><</span><span class="n">groupId</span><span class="o">></span><span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o"></</span><span class="n">groupId</span><span class="o">></span>
+ <span class="o"><</span><span class="n">artifactId</span><span class="o">></span><span class="n">animal</span><span class="o">-</span><span class="n">sniffer</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="n">plugin</span><span class="o"></</span><span class="n">artifactId</span><span class="o">></span>
+ <span class="o"><</span><span class="n">configuration</span><span class="o">></span>
+ <span class="o"><</span><span class="n">signature</span><span class="o">></span>
+ <span class="o"><</span><span class="n">groupId</span><span class="o">></span><span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o">.</span><span class="na">signature</span><span class="o"></</span><span class="n">groupId</span><span class="o">></span>
+ <span class="o"><</span><span class="n">artifactId</span><span class="o">></span><span class="n">java16</span><span class="o">-</span><span class="n">sun</span><span class="o"></</span><span class="n">artifactId</span><span class="o">></span>
+ <span class="o"><</span><span class="n">version</span><span class="o">></span><span class="mf">1.0</span><span class="o"></</span><span class="n">version</span><span class="o">></span>
+ <span class="o"></</span><span class="n">signature</span><span class="o">></span>
+ <span class="o"></</span><span class="n">configuration</span><span class="o">></span>
+ <span class="o"><</span><span class="n">executions</span><span class="o">></span>
+ <span class="o"><</span><span class="n">execution</span><span class="o">></span>
+ <span class="o"><</span><span class="n">id</span><span class="o">></span><span class="n">check</span><span class="o">-</span><span class="n">java16</span><span class="o">-</span><span class="n">sun</span><span class="o"></</span><span class="n">id</span><span class="o">></span>
+ <span class="o"><</span><span class="n">phase</span><span class="o">></span><span class="n">test</span><span class="o"></</span><span class="n">phase</span><span class="o">></span>
+ <span class="o"><</span><span class="n">goals</span><span class="o">></span>
+ <span class="o"><</span><span class="n">goal</span><span class="o">></span><span class="n">check</span><span class="o"></</span><span class="n">goal</span><span class="o">></span>
+ <span class="o"></</span><span class="n">goals</span><span class="o">></span>
+ <span class="o"></</span><span class="n">execution</span><span class="o">></span>
+ <span class="o"></</span><span class="n">executions</span><span class="o">></span>
+ <span class="o"></</span><span class="n">plugin</span><span class="o">></span>
+</code></pre>
+</div>
+
+<p>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:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="o">[</span><span class="n">animal</span><span class="o">-</span><span class="nl">sniffer:</span><span class="n">check</span> <span class="o">{</span><span class="nl">execution:</span> <span class="n">check</span><span class="o">-</span><span class="n">java</span><span class="o">-</span><span class="n">api</span><span class="o">}]</span>
+<span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="n">Checking</span> <span class="n">unresolved</span> <span class="n">references</span> <span class="n">to</span> <span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o">.</span><span class="na">signature</span><span class="o">:</span><span class="n">java16</span><span class="o">-</span><span class="nl">sun:</span><span class="mf">1.0</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="n">Undefined</span> <span class="nl">reference:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">String</span><span class="o">.</span><span class="na">contains</span><span class="o">(</span><span class="n">Ljava</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">CharSequence</span><span class="o">;)</span><span class="n">Z</span> <span class="n">in</span> <span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">admin</span><span class="o">/</span><span class="n">workspace</span><span class="o">/</span><span class="n">kafka</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">classes</span><span class="o">/</span><span class="n">org</span><span class="o">/</span><span class="n">kafka</span><span c
lass="o">/</span><span class="n">tools</span><span class="o">...</span><span class="na">Producer</span><span class="o">.</span><span class="na">class</span>
+</code></pre>
+</div>
+
+<p>More details please see <a href="http://blog.gvsig.org/2011/07/25/hunting-api-incompatibilities-with-the-animal-sniffer-project/">here</a>.</p>
+
+<h2 id="single-component-compatibility-protection">Single component compatibility protection</h2>
+
+<p>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 integration process Clirr can automatically prevent accidental introduction of binary or source compatibility problems.</p>
+
+<p>How to use it\uff1fjust add some config snippets in your pom :</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o"><</span><span class="n">plugin</span><span class="o">></span>
+ <span class="o"><</span><span class="n">groupId</span><span class="o">></span><span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o"></</span><span class="n">groupId</span><span class="o">></span>
+ <span class="o"><</span><span class="n">artifactId</span><span class="o">></span><span class="n">clirr</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="n">plugin</span><span class="o"></</span><span class="n">artifactId</span><span class="o">></span>
+ <span class="o"><</span><span class="n">version</span><span class="o">></span><span class="mf">2.6</span><span class="o">.</span><span class="mi">1</span><span class="o"></</span><span class="n">version</span><span class="o">></span>
+<span class="o"></</span><span class="n">plugin</span><span class="o">></span>
+</code></pre>
+</div>
+
+<p>then,run <code class="highlighter-rouge">mvn clirr:check</code>,output may be like this:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="o">---</span> <span class="n">clirr</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="nl">plugin:</span><span class="mf">2.6</span><span class="o">.</span><span class="mi">1</span><span class="o">:</span><span class="n">check</span> <span class="o">(</span><span class="k">default</span><span class="o">-</span><span class="n">cli</span><span class="o">)</span> <span class="err">@</span> <span class="n">cmq</span><span class="o">.</span><span class="na">common</span> <span class="o">---</span>
+<span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="n">artifact</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">intl</span><span class="o">.</span><span class="na">base</span><span class="o">.</span><span class="na">cmq</span><span class="o">:</span><span class="n">cmq</span><span class="o">.</span><span class="na">common</span><span class="o">:</span> <span class="n">checking</span> <span class="k">for</span> <span class="n">updates</span> <span class="n">from</span> <span class="n">b2bmirror</span><span class="o">-</span><span class="n">all</span>
+<span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="n">Comparing</span> <span class="n">to</span> <span class="nl">version:</span> <span class="mf">2.0</span><span class="o">.</span><span class="mi">1</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CompletionListener</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span class="kt">void</span> <span class="nf">onCompletion</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o">)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span
class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CompletionListener</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span class="kt">void</span> <span class="nf">onException</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o">,</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class=
"o">.</span><span class="na">Exception</span><span class="o">)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">MessageProducer</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CommonResult</span> <span class="nf">send</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span
><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o">)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">MessageProducer</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CommonResult</span> <span class="nf">send</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span
><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o">,</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CompletionListener</span><span class="o">)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+</code></pre>
+</div>
+
+<p>Some inspiration in <strong>Dependency Mediator</strong> project just come from here.more topics about compatible,you can reference from series article <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">Evolving Java-based APIs</a></p>
+
+<h2 id="multi-component-compatibility-compile-time-checking">Multi-component compatibility compile time checking</h2>
+
+<p>Last but not least,Multi-component compatibility compile time checking.it\u2019s the time to formally recommend project <strong>Dependency Mediator</strong>.</p>
+
+<p>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),<strong>Dependency Mediator</strong> try to remedy component dependency conflicting problem before the runtime rather than using customized <a href="http://www.onjava.com/pub/a/onjava/2005/04/13/dependencies.html">classLoader</a> to agree with the coexistence of different version components,thus avoid some well-konwn errors,such as <strong>NoSuchMethodError</strong>,<strong>NoSuchFieldError</strong> and <strong>NoClassDefFoundError</strong> etc.</p>
+
+<p>What is the principle of <strong>Dependency Mediator</strong>\uff1f<strong>Dependency Mediator</strong> try to mediate various component conflicting problems.It uses jar or class as the smallest component unit,that is ComponentEntry:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">ComponentEntry</span> <span class="kd">implements</span> <span class="n">Comparable</span><span class="o"><</span><span class="n">ComponentEntry</span><span class="o">></span> <span class="o">{</span>
+ <span class="cm">/**
+ * Similar file name
+ */</span>
+ <span class="kd">private</span> <span class="n">String</span> <span class="n">pathName</span><span class="o">;</span>
+ <span class="cm">/**
+ * Component name ,such as fully-qualified class name or jar name
+ */</span>
+ <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span>
+ <span class="cm">/**
+ * Name of the jar which contains this entry,this field may be null
+ */</span>
+ <span class="kd">private</span> <span class="n">String</span> <span class="n">jarName</span><span class="o">;</span>
+ <span class="cm">/**
+ * Jar entry meta info,if it is a jar file,this field may be null
+ */</span>
+ <span class="kd">private</span> <span class="n">JarEntry</span> <span class="n">entry</span><span class="o">;</span>
+ <span class="o">....</span>
+</code></pre>
+</div>
+
+<p>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 <strong>Build-Jdk</strong> and <strong>Built-By</strong> 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.</p>
+
+<p>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.</p>
+
+<p><strong>Dependency Mediator</strong> take advantage of <strong>nearest definition</strong> dependency mediation strategy. this determines what version of a dependency will be used when multiple versions of an artifact are encountered. <strong>nearest definition</strong>,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 project\u2019s POM. Note that if two dependency versions are at the same depth in the dependency tree, until Maven 2.0.8 it was not defined which one would win, but since Maven 2.0.9 it\u2019s the order in the declaration that counts: the first declaration wins.
+<strong>nearest definition</strong> 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 -> B -> C -> D 2.0 and A -> E -> 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.</p>
+
+<p>If you consider the dependency hierarchy as a binary tree structure,Undoubtedly,<strong>nearest definition</strong> means the <strong>minimum depth</strong>. 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 :</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">[</span><span class="n">WARNING</span><span class="o">]</span> <span class="n">Founded</span> <span class="n">conflicting</span> <span class="n">dependency</span> <span class="nl">component:</span><span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">thrift</span><span class="o">:</span><span class="nl">libthrift:</span><span class="n">jar</span> <span class="n">Resolved</span> <span class="n">version</span> <span class="n">is</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">thrift</span><span class="o">:</span><span class="nl">libthrift:jar:</span><span class="mf">0.8</span><span class="o">.</span><span class="mi">0</span><span class="o">:</span><span class="n">compile</span> <span class="n">But</span> <span class="n">found</span> <span class="n">con
flicting</span> <span class="n">artifact</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">thrift</span><span class="o">:</span><span class="nl">libthrift:</span><span class="mf">0.9</span><span class="o">.</span><span class="mi">1</span>
+</code></pre>
+</div>
+
+<p>In this case,you could fix this problem through place libthrift 0.9.1 before the library imported through transitive dependency.</p>
+
+<p>of course,all the establishment must meet a premise,that is:</p>
+<ul>
+ <li><strong>Functionality releases and major releases(such as 1.4.x, 1.5.x,2.x.x,3.x.x) have source compatibility problems.</strong></li>
+</ul>
+
+<p>In <strong>Dependency Mediator</strong> 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.</p>
+
+<h1 id="summary">Summary</h1>
+
+<p>Through this article, you almost calculated the evolution process of the <strong>Dependency Mediator</strong> project.in my opinion,integration with the maven enforcer plugin may be a better choice.After all,I hope <strong>Dependency Mediator</strong> can keep sustainable development.I would try and donate this project to codehaus in the near future.</p>
+
+<p>If you have better idea or improving suggestion, please contact <a href="mailto:dev@rocketmq.incubator.apache.org">dev@rocketmq.incubator.apache.org</a>.</p>
+
+
+ </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="http://localhost:4000/tags/#compatibility" class="page__taxonomy-item" rel="tag">Compatibility</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#dependency" class="page__taxonomy-item" rel="tag">Dependency</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#java" class="page__taxonomy-item" rel="tag">Java</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#maven" class="page__taxonomy-item" rel="tag">Maven</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="http://localhost:4000/categories/#maven" class="page__taxonomy-item" rel="tag">Maven</a>
+
+ </span>
+ </p>
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-23T00:00:00+08:00">December 23, 2016</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=Mastering Component Compatible Dependency http://localhost:4000/maven/mastering-component-compatible-dependency/" 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=http://localhost:4000/maven/mastering-component-compatible-dependency/" 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=http://localhost:4000/maven/mastering-component-compatible-dependency/" 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=http://localhost:4000/maven/mastering-component-compatible-dependency/" 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="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" class="pagination--pager" title="How to Support More Queues in RocketMQ?
+">Previous</a>
+
+
+ <a href="http://localhost:4000/activity/launch-rocketmq-code-marathon/" class="pagination--pager" title="Launch RocketMQ Code Marathon
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
[09/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/best-practice-namesvr/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-namesvr/index.html b/content/docs/best-practice-namesvr/index.html
new file mode 100644
index 0000000..835c0f8
--- /dev/null
+++ b/content/docs/best-practice-namesvr/index.html
@@ -0,0 +1,552 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Best Practice For NameServer - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Some useful tips for users.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Best Practice For NameServer">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/best-practice-namesvr/">
+ <meta property="og:url" content="http://localhost:4000/docs/best-practice-namesvr/">
+
+
+
+ <meta property="og:description" content="Some useful tips for users.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Best Practice For NameServer">
+ <meta name="twitter:description" content="Some useful tips for users.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/best-practice-namesvr/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="active">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Best Practice For NameServer">
+ <meta itemprop="description" content="Some useful tips for users.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 25, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Best Practice For NameServer
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>Some useful tips for users.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#ordered-message" id="markdown-toc-ordered-message">Ordered Message</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h2 id="ordered-message">Ordered Message</h2>
+<p>to be finished</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-25">December 25, 2016</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=Best Practice For NameServer http://localhost:4000/docs/best-practice-namesvr/" 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=http://localhost:4000/docs/best-practice-namesvr/" 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=http://localhost:4000/docs/best-practice-namesvr/" 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=http://localhost:4000/docs/best-practice-namesvr/" 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="http://localhost:4000/docs/best-practice-consumer/" class="pagination--pager" title="Best Practice For Consumer
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/best-practice-producer/" class="pagination--pager" title="Best Practice For Producer
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/best-practice-producer/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-producer/index.html b/content/docs/best-practice-producer/index.html
new file mode 100644
index 0000000..6486f7e
--- /dev/null
+++ b/content/docs/best-practice-producer/index.html
@@ -0,0 +1,597 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Best Practice For Producer - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Some useful tips for users.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Best Practice For Producer">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/best-practice-producer/">
+ <meta property="og:url" content="http://localhost:4000/docs/best-practice-producer/">
+
+
+
+ <meta property="og:description" content="Some useful tips for users.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Best Practice For Producer">
+ <meta name="twitter:description" content="Some useful tips for users.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/best-practice-producer/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="active">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 25, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Best Practice For Producer
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>Some useful tips for users.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#sendstatus" id="markdown-toc-sendstatus">SendStatus</a> <ul>
+ <li><a href="#flush_disk_timeout" id="markdown-toc-flush_disk_timeout">FLUSH_DISK_TIMEOUT</a></li>
+ <li><a href="#flush_slave_timeout" id="markdown-toc-flush_slave_timeout">FLUSH_SLAVE_TIMEOUT</a></li>
+ <li><a href="#slave_not_available" id="markdown-toc-slave_not_available">SLAVE_NOT_AVAILABLE</a></li>
+ <li><a href="#send_ok" id="markdown-toc-send_ok">SEND_OK</a></li>
+ <li><a href="#duplication-or-missing" id="markdown-toc-duplication-or-missing">Duplication or Missing</a></li>
+ </ul>
+ </li>
+ <li><a href="#timeout" id="markdown-toc-timeout">Timeout</a></li>
+ <li><a href="#message-size" id="markdown-toc-message-size">Message Size</a></li>
+ <li><a href="#async-sending" id="markdown-toc-async-sending">Async Sending</a></li>
+ <li><a href="#producer-group" id="markdown-toc-producer-group">Producer Group</a></li>
+ <li><a href="#thread-safety" id="markdown-toc-thread-safety">Thread Safety</a></li>
+ <li><a href="#performance" id="markdown-toc-performance">Performance</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h2 id="sendstatus">SendStatus</h2>
+<p>When sending a message, you will get SendResult and it will contain the SendStatus. Firstly, we assume that Message\u2019s isWaitStoreMsgOK=true(default is true). If not, we will always get SEND_OK if no exception is thrown.
+Follow are the descriptions about each status.</p>
+<h3 id="flush_disk_timeout">FLUSH_DISK_TIMEOUT</h3>
+<p>If the Broker set MessageStoreConfig\u2019s FlushDiskType=SYNC_FLUSH(default is ASYNC_FLUSH), and the Broker dose not finish flushing disk within MessageStoreConfig\u2019s syncFlushTimeout(default is 5 secs), you will get such status.</p>
+<h3 id="flush_slave_timeout">FLUSH_SLAVE_TIMEOUT</h3>
+<p>If the Broker\u2019s role is SYNC_MASTER(default is ASYNC_MASTER), and the slave Broker dose not finish synchronizing with the master within the MessageStoreConfig\u2019s syncFlushTimeout(default is 5 secs), you will get such status.</p>
+<h3 id="slave_not_available">SLAVE_NOT_AVAILABLE</h3>
+<p>If the Broker\u2019s role is SYNC_MASTER(default is ASYNC_MASTER), but no slave Broker is configured, you will get such status.</p>
+<h3 id="send_ok">SEND_OK</h3>
+<p>You should be aware that SEND_OK does not mean it is reliable. If you cannot tolerate message missing, you should also enable SYNC_MASTER or SYNC_FLUSH.</p>
+<h3 id="duplication-or-missing">Duplication or Missing</h3>
+<p>If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you may get your message missing.
+At this time, you have two choices, one is letting it go, which may get message missing; another is resending, which may get message duplication.
+Often we suggest resend and make a way to handle the duplication removal when consuming. Unless you feel it does not matter when some messages are missed.
+But be ware that resending has no use when you get SLAVE_NOT_AVAILABLE, you\u2019d better keep the scene and send some alerts to the Cluster Manager.</p>
+<h2 id="timeout">Timeout</h2>
+<p>The Client send requests to Broker, and wait the responses, but if the max wait time is elapsed and no response is return, the Client will throw a RemotingTimeoutException.
+The default wait time is 3 seconds.You can also pass timeout argument using send(msg, timeout) instead of send(msg).
+Note that we do not suggest the value to be too small, for the Broker need some time to flush disk or synchronize with slave. Also the value may have little effect if it is too bigger than syncFlushTimeout for Broker may return a response with FLUSH_SLAVE_TIMEOUT or FLUSH_SLAVE_TIMEOUT before the timeout.</p>
+<h2 id="message-size">Message Size</h2>
+<p>We suggest the message should be no more than 512K.</p>
+<h2 id="async-sending">Async Sending</h2>
+<p>Default send(msg) will block until the response is return. So if you care about performance, we suggest you use send(msg, callback) which will act in a async way.</p>
+<h2 id="producer-group">Producer Group</h2>
+<p>Normally, the producer group has no effects. But if you are involved in transaction, you should pay attention to it.
+In default, you can only create only one producer with the same producer group in the same JVM. Usually, this is enough.</p>
+<h2 id="thread-safety">Thread Safety</h2>
+<p>The producer is thread-safe, you can just use it in your business logic.</p>
+<h2 id="performance">Performance</h2>
+<p>If you want more than one producer in one JVM, maybe for big data processing, we suggest you:</p>
+<ul>
+ <li>use async sending with a few producers(3~5 is enough)</li>
+ <li>setInstanceName for each producer</li>
+</ul>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-25">December 25, 2016</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=Best Practice For Producer http://localhost:4000/docs/best-practice-producer/" 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=http://localhost:4000/docs/best-practice-producer/" 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=http://localhost:4000/docs/best-practice-producer/" 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=http://localhost:4000/docs/best-practice-producer/" 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="http://localhost:4000/docs/best-practice-namesvr/" class="pagination--pager" title="Best Practice For NameServer
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/branching-model.html
----------------------------------------------------------------------
diff --git a/content/docs/branching-model.html b/content/docs/branching-model.html
new file mode 100644
index 0000000..832e9ea
--- /dev/null
+++ b/content/docs/branching-model.html
@@ -0,0 +1,718 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Branching Model - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Apache RocketMQ Branching Model">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Branching Model">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/branching-model">
+ <meta property="og:url" content="http://localhost:4000/docs/branching-model">
+
+
+
+ <meta property="og:description" content="Apache RocketMQ Branching Model">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Branching Model">
+ <meta name="twitter:description" content="Apache RocketMQ Branching Model">
+ <meta name="twitter:url" content="http://localhost:4000/docs/branching-model">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="active">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="Branching Model">
+ <meta itemprop="description" content="Apache RocketMQ Branching Model">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="February 08, 2017">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Branching Model
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#the-main-branches" id="markdown-toc-the-main-branches">The main branches</a></li>
+ <li><a href="#supporting-branches" id="markdown-toc-supporting-branches">Supporting branches</a> <ul>
+ <li><a href="#feature-branches" id="markdown-toc-feature-branches">Feature branches</a> <ul>
+ <li><a href="#creating-a-feature-branch" id="markdown-toc-creating-a-feature-branch">Creating a feature branch</a></li>
+ <li><a href="#incorporating-a-finished-feature-on-develop" id="markdown-toc-incorporating-a-finished-feature-on-develop">Incorporating a finished feature on develop</a></li>
+ </ul>
+ </li>
+ <li><a href="#release-branches" id="markdown-toc-release-branches">Release branches</a> <ul>
+ <li><a href="#creating-a-release-branch" id="markdown-toc-creating-a-release-branch">Creating a release branch</a></li>
+ </ul>
+ </li>
+ <li><a href="#hotfix-branches" id="markdown-toc-hotfix-branches">Hotfix branches</a></li>
+ </ul>
+ </li>
+ <li><a href="#references" id="markdown-toc-references">References</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<p>A summary of RocketMQ branching model:</p>
+
+<p><img src="/assets/images/release-manual/14864364524873.jpg" alt="" /></p>
+
+<h1 id="the-main-branches">The main branches</h1>
+
+<p>At the core, the development model is greatly inspired by existing models out there. The central repo holds two main branches with an infinite lifetime:</p>
+
+<ul>
+ <li>master</li>
+ <li>develop</li>
+</ul>
+
+<p>The <strong>master</strong> branch at origin should be familiar to every Git user. Parallel to the master branch, another branch exists called <strong>develop</strong>.</p>
+
+<p>We consider <strong>origin/master</strong> to be the main branch where the source code of HEAD always reflects a production-ready state.</p>
+
+<p>We consider <strong>origin/develop</strong> to be the main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release. Some would call this the \u201cintegration branch\u201d. This is where any automatic nightly builds are built from.</p>
+
+<p>When the source code in the develop branch reaches a stable point and is ready to be released, all of the changes should be merged back into master somehow and then tagged with a release number. How this is done in detail will be discussed further on.</p>
+
+<p>Therefore, each time when changes are merged back into master, this is a new production release by definition. We tend to be very strict at this, so that theoretically, we could use a Git hook script to automatically build and roll-out our software to our production servers everytime there was a commit on <strong>master</strong>.</p>
+
+<p><img src="/assets/images/release-manual/14864365609580.jpg" alt="" /></p>
+
+<h1 id="supporting-branches">Supporting branches</h1>
+
+<p>Next to the main branches master and develop, our development model uses a variety of supporting branches to aid parallel development between team members, ease tracking of features, prepare for production releases and to assist in quickly fixing live production problems. Unlike the main branches, these branches always have a limited life time, since they will be removed eventually.</p>
+
+<p>The different types of branches we may use are:</p>
+
+<ul>
+ <li>Feature branches</li>
+ <li>Release branches</li>
+ <li>Hotfix branches</li>
+</ul>
+
+<p>Each of these branches have a specific purpose and are bound to strict rules as to which branches may be their originating branch and which branches must be their merge targets. We will walk through them in a minute.</p>
+
+<p>By no means are these branches \u201cspecial\u201d from a technical perspective. The branch types are categorized by how we use them. They are of course plain old Git branches.</p>
+
+<h2 id="feature-branches">Feature branches</h2>
+
+<p>May branch off from:</p>
+<blockquote>
+ <p><strong>develop</strong></p>
+</blockquote>
+
+<p>Must merge back into:</p>
+<blockquote>
+ <p><strong>develop</strong></p>
+</blockquote>
+
+<p>Branch naming convention:</p>
+<blockquote>
+ <p>anything except master, develop, release-*, or hotfix-*</p>
+</blockquote>
+
+<p>Feature branches (or sometimes called topic branches) are used to develop new features for the upcoming or a distant future release. When starting development of a feature, the target release in which this feature will be incorporated may well be unknown at that point. The essence of a feature branch is that it exists as long as the feature is in development, but will eventually be merged back into <strong>develop</strong> (to definitely add the new feature to the upcoming release) or discarded (in case of a disappointing experiment).</p>
+
+<p>Feature branches typically exist in developer repos only, not in <strong>origin</strong>.</p>
+
+<p><img src="/assets/images/release-manual/14864367062507.jpg" alt="" /></p>
+
+<h3 id="creating-a-feature-branch">Creating a feature branch</h3>
+
+<p>When starting work on a new feature, branch off from the <strong>develop</strong> branch.</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git checkout -b myfeature develop
+Switched to a new branch <span class="s2">"myfeature"</span>
+</code></pre>
+</div>
+<h3 id="incorporating-a-finished-feature-on-develop">Incorporating a finished feature on develop</h3>
+
+<p>Finished features may be merged into the <strong>develop</strong> branch to definitely add them to the upcoming release:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git checkout develop
+Switched to branch <span class="s1">'develop'</span>
+<span class="gp">$ </span>git merge --no-ff myfeature
+Updating ea1b82a..05e9557
+<span class="o">(</span>Summary of changes<span class="o">)</span>
+<span class="gp">$ </span>git branch -d myfeature
+Deleted branch myfeature <span class="o">(</span>was 05e9557<span class="o">)</span>.
+<span class="gp">$ </span>git push origin develop
+</code></pre>
+</div>
+
+<p>The \u2013no-ff flag causes the merge to always create a new commit object, even if the merge could be performed with a fast-forward. This avoids losing information about the historical existence of a feature branch and groups together all commits that together added the feature. Compare:</p>
+
+<p><img src="/assets/images/release-manual/14864368514198.jpg" alt="" /></p>
+
+<p>In the latter case, it is impossible to see from the Git history which of the commit objects together have implemented a feature\u2014you would have to manually read all the log messages. Reverting a whole feature (i.e. a group of commits), is a true headache in the latter situation, whereas it is easily done if the <strong>\u2013no-ff</strong> flag was used.</p>
+
+<p>Yes, it will create a few more (empty) commit objects, but the gain is much bigger than the cost.</p>
+
+<h2 id="release-branches">Release branches</h2>
+
+<p>May branch off from:</p>
+<blockquote>
+ <p><strong>develop</strong></p>
+</blockquote>
+
+<p>Must merge back into:</p>
+<blockquote>
+ <p><strong>develop and master</strong></p>
+</blockquote>
+
+<p>Branch naming convention:</p>
+<blockquote>
+ <p><strong>release-</strong>*</p>
+</blockquote>
+
+<p>Release branches support preparation of a new production release. They allow for last-minute dotting of i\u2019s and crossing t\u2019s. Furthermore, they allow for minor bug fixes and preparing meta-data for a release (version number, build dates, etc.). By doing all of this work on a release branch, the <strong>develop</strong> branch is cleared to receive features for the next big release.</p>
+
+<p>The key moment to branch off a new release branch from <strong>develop</strong> is when develop (almost) reflects the desired state of the new release. At least all features that are targeted for the release-to-be-built must be merged in to develop at this point in time. All features targeted at future releases may not\u2014they must wait until after the release branch is branched off.</p>
+
+<p>It is exactly at the start of a release branch that the upcoming release gets assigned a version number\u2014not any earlier. Up until that moment, the develop branch reflected changes for the \u201cnext release\u201d, but it is unclear whether that \u201cnext release\u201d will eventually become 0.3 or 1.0, until the release branch is started. That decision is made on the start of the release branch and is carried out by the project\u2019s rules on version number bumping.</p>
+
+<h3 id="creating-a-release-branch">Creating a release branch</h3>
+
+<p>Release branches are created from the develop branch:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>git checkout -b release-4.0.0-incubating develop
+Switched to a new branch <span class="s2">"release-4.0.0-incubating"</span>
+</code></pre>
+</div>
+
+<p>Please refer to <a href="/docs/release-manual">here</a> for the following process.</p>
+
+<p>After the Apache release process is done, remember to merge back into <strong>develop</strong> and <strong>master</strong> branches.</p>
+
+<h2 id="hotfix-branches">Hotfix branches</h2>
+
+<p>May branch off from:</p>
+<blockquote>
+ <p><strong>master</strong></p>
+</blockquote>
+
+<p>Must merge back into:</p>
+<blockquote>
+ <p><strong>develop and master</strong></p>
+</blockquote>
+
+<p>Branch naming convention:</p>
+<blockquote>
+ <p><strong>hotfix-*</strong></p>
+</blockquote>
+
+<p>Hotfix branches are very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned. They arise from the necessity to act immediately upon an undesired state of a live production version. When a critical bug in a production version must be resolved immediately, a hotfix branch may be branched off from the corresponding tag on the master branch that marks the production version.</p>
+
+<p>The essence is that work of team members (on the develop branch) can continue, while another person is preparing a quick production fix.
+<img src="/assets/images/release-manual/14864376551544.jpg" alt="" /></p>
+
+<h1 id="references">References</h1>
+
+<p>[1] http://nvie.com/posts/a-successful-git-branching-model/</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-02-08">February 08, 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=Branching Model http://localhost:4000/docs/branching-model" 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=http://localhost:4000/docs/branching-model" 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=http://localhost:4000/docs/branching-model" 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=http://localhost:4000/docs/branching-model" 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="http://localhost:4000/docs/release-manual" class="pagination--pager" title="Release Manual
+">Previous</a>
+
+
+ <a href="http://localhost:4000/dowloading/releases/" class="pagination--pager" title="Downloading the Apache RocketMQ Releases
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/cli-admin-tool/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cli-admin-tool/index.html b/content/docs/cli-admin-tool/index.html
new file mode 100644
index 0000000..eee1e2d
--- /dev/null
+++ b/content/docs/cli-admin-tool/index.html
@@ -0,0 +1,625 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>CLI Admin Tool - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="CLI Admin Tool">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/cli-admin-tool/">
+ <meta property="og:url" content="http://localhost:4000/docs/cli-admin-tool/">
+
+
+
+ <meta property="og:description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="CLI Admin Tool">
+ <meta name="twitter:description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/cli-admin-tool/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="active">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 17, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">CLI Admin Tool
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#prerequisite" id="markdown-toc-prerequisite">Prerequisite</a></li>
+ <li><a href="#how-to-get-it" id="markdown-toc-how-to-get-it">How To Get it</a></li>
+ <li><a href="#how-to-use" id="markdown-toc-how-to-use">How to use</a></li>
+ <li><a href="#command-manual" id="markdown-toc-command-manual">Command Manual</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="prerequisite">Prerequisite</h1>
+
+<p>Make sure you have walked through <a href="/docs/quick-start/">Quick Start</a> and <a href="/docs/core-concept/">Core Concept</a> sections.</p>
+
+<h1 id="how-to-get-it">How To Get it</h1>
+
+<p>The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.</p>
+
+<p>In case you have source code, the <a href="https://github.com/alibaba/RocketMQ/tree/master/rocketmq-tools">rocketmq-tools module</a> contains its source code.</p>
+
+<h1 id="how-to-use">How to use</h1>
+
+<p>The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.</p>
+
+<p>Change directory to ${PACKAGE}/bin, command <code class="highlighter-rouge">bash mqadmin</code>, you should see the following help menu pops out.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>The most commonly used mqadmin commands are:
+ updateTopic Update or create topic
+ deleteTopic Delete topic from broker and NameServer.
+ updateSubGroup Update or create subscription group
+ deleteSubGroup Delete subscription group from broker.
+ updateBrokerConfig Update broker's config
+ updateTopicPerm Update topic perm
+ topicRoute Examine topic route info
+ topicStatus Examine topic Status info
+ topicClusterList get cluster info for topic
+ brokerStatus Fetch broker runtime status data
+ queryMsgById Query Message by Id
+ queryMsgByKey Query Message by Key
+ queryMsgByUniqueKey Query Message by Unique key
+ queryMsgByOffset Query Message by offset
+ queryMsgByUniqueKey Query Message by Unique key
+ printMsg Print Message Detail
+ sendMsgStatus send msg to broker.
+ brokerConsumeStats Fetch broker consume stats data
+ producerConnection Query producer's socket connection and client version
+ consumerConnection Query consumer's socket connection, client version and subscription
+ consumerProgress Query consumers's progress, speed
+ consumerStatus Query consumer's internal data structure
+ cloneGroupOffset clone offset from other group.
+ clusterList List all of clusters
+ topicList Fetch all topic list from name server
+ updateKvConfig Create or update KV config.
+ deleteKvConfig Delete KV config.
+ wipeWritePerm Wipe write perm of broker in all name server
+ resetOffsetByTime Reset consumer offset by timestamp(without client restart).
+ updateOrderConf Create or update or delete order conf
+ cleanExpiredCQ Clean expired ConsumeQueue on broker.
+ cleanUnusedTopic Clean unused topic on broker.
+ startMonitoring Start Monitoring
+ statsAll Topic and Consumer tps stats
+ syncDocs Synchronize wiki and issue to github.com
+ allocateMQ Allocate MQ
+ checkMsgSendRT check message send response time
+ clusterRT List All clusters Message Send RT
+
+See 'mqadmin help <command>' for more information on a specific command.
+</code></pre>
+</div>
+
+<p>As you see, the most commonly used commands are listed with a brief description. To get detailed manual of each command, <code class="highlighter-rouge">bash mqadmin help <command></code>. For example, command <code class="highlighter-rouge">bash mqadmin help clusterList</code> will bring out the following help text:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>usage: mqadmin clusterList [-h] [-i <arg>] [-m] [-n <arg>]
+ -h,--help Print help
+ -i,--interval <arg> specify intervals numbers, it is in seconds
+ -m,--moreStats Print more stats
+ -n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
+</code></pre>
+</div>
+
+<p>The help text lists possible options and interpretation of each option.</p>
+
+<h1 id="command-manual">Command Manual</h1>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-17">December 17, 2016</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=CLI Admin Tool http://localhost:4000/docs/cli-admin-tool/" 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=http://localhost:4000/docs/cli-admin-tool/" 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=http://localhost:4000/docs/cli-admin-tool/" 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=http://localhost:4000/docs/cli-admin-tool/" 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="http://localhost:4000/docs/core-concept/" class="pagination--pager" title="Core Concept
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/cluster-deployment/" class="pagination--pager" title="Cluster Configuration and Deployment
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
[15/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/archive-layout-with-content/index.html
----------------------------------------------------------------------
diff --git a/content/archive-layout-with-content/index.html b/content/archive-layout-with-content/index.html
new file mode 100644
index 0000000..2e63111
--- /dev/null
+++ b/content/archive-layout-with-content/index.html
@@ -0,0 +1,1065 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Archive Layout with Content - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="The homepage of RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Archive Layout with Content">
+
+
+ <link rel="canonical" href="http://localhost:4000/archive-layout-with-content/">
+ <meta property="og:url" content="http://localhost:4000/archive-layout-with-content/">
+
+
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Archive Layout with Content">
+ <meta name="twitter:description" content="The homepage of RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/archive-layout-with-content/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--archive">
+
+ <!--[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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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>
+
+
+ <div class="archive">
+
+ <h1 class="page__title">Archive Layout with Content</h1>
+
+ <p>A variety of common markup showing how the theme styles them.</p>
+
+<h1 id="header-one">Header one</h1>
+
+<h2 id="header-two">Header two</h2>
+
+<h3 id="header-three">Header three</h3>
+
+<h4 id="header-four">Header four</h4>
+
+<h5 id="header-five">Header five</h5>
+
+<h6 id="header-six">Header six</h6>
+
+<h2 id="blockquotes">Blockquotes</h2>
+
+<p>Single line blockquote:</p>
+
+<blockquote>
+ <p>Stay hungry. Stay foolish.</p>
+</blockquote>
+
+<p>Multi line blockquote with a cite reference:</p>
+
+<blockquote>
+ <p>People think focus means saying yes to the thing you\u2019ve got to focus on. But that\u2019s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I\u2019m actually as proud of the things we haven\u2019t done as the things I have done. Innovation is saying no to 1,000 things.</p>
+</blockquote>
+
+<p class="small"><cite>Steve Jobs</cite> \u2014 Apple Worldwide Developers\u2019 Conference, 1997</p>
+
+<h2 id="tables">Tables</h2>
+
+<table>
+ <thead>
+ <tr>
+ <th>Employee</th>
+ <th>Salary</th>
+ <th>�</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="#">John Doe</a></td>
+ <td>$1</td>
+ <td>Because that\u2019s all Steve Jobs needed for a salary.</td>
+ </tr>
+ <tr>
+ <td><a href="#">Jane Doe</a></td>
+ <td>$100K</td>
+ <td>For all the blogging she does.</td>
+ </tr>
+ <tr>
+ <td><a href="#">Fred Bloggs</a></td>
+ <td>$100M</td>
+ <td>Pictures are worth a thousand words, right? So Jane � 1,000.</td>
+ </tr>
+ <tr>
+ <td><a href="#">Jane Bloggs</a></td>
+ <td>$100B</td>
+ <td>With hair like that?! Enough said.</td>
+ </tr>
+ </tbody>
+</table>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Header1</th>
+ <th style="text-align: center">Header2</th>
+ <th style="text-align: right">Header3</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">cell1</td>
+ <td style="text-align: center">cell2</td>
+ <td style="text-align: right">cell3</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">cell4</td>
+ <td style="text-align: center">cell5</td>
+ <td style="text-align: right">cell6</td>
+ </tr>
+ </tbody>
+ <tbody>
+ <tr>
+ <td style="text-align: left">cell1</td>
+ <td style="text-align: center">cell2</td>
+ <td style="text-align: right">cell3</td>
+ </tr>
+ <tr>
+ <td style="text-align: left">cell4</td>
+ <td style="text-align: center">cell5</td>
+ <td style="text-align: right">cell6</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td style="text-align: left">Foot1</td>
+ <td style="text-align: center">Foot2</td>
+ <td style="text-align: right">Foot3</td>
+ </tr>
+ </tfoot>
+</table>
+
+<h2 id="definition-lists">Definition Lists</h2>
+
+<dl>
+ <dt>Definition List Title</dt>
+ <dd>Definition list division.</dd>
+ <dt>Startup</dt>
+ <dd>A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.</dd>
+ <dt>#dowork</dt>
+ <dd>Coined by Rob Dyrdek and his personal body guard Christopher \u201cBig Black\u201d Boykins, \u201cDo Work\u201d works as a self motivator, to motivating your friends.</dd>
+ <dt>Do It Live</dt>
+ <dd>I\u2019ll let Bill O\u2019Reilly <a href="https://www.youtube.com/watch?v=O_HyZ5aW76c" title="We'll Do It Live">explain</a> this one.</dd>
+</dl>
+
+<h2 id="unordered-lists-nested">Unordered Lists (Nested)</h2>
+
+<ul>
+ <li>List item one
+ <ul>
+ <li>List item one
+ <ul>
+ <li>List item one</li>
+ <li>List item two</li>
+ <li>List item three</li>
+ <li>List item four</li>
+ </ul>
+ </li>
+ <li>List item two</li>
+ <li>List item three</li>
+ <li>List item four</li>
+ </ul>
+ </li>
+ <li>List item two</li>
+ <li>List item three</li>
+ <li>List item four</li>
+</ul>
+
+<h2 id="ordered-list-nested">Ordered List (Nested)</h2>
+
+<ol>
+ <li>List item one
+ <ol>
+ <li>List item one
+ <ol>
+ <li>List item one</li>
+ <li>List item two</li>
+ <li>List item three</li>
+ <li>List item four</li>
+ </ol>
+ </li>
+ <li>List item two</li>
+ <li>List item three</li>
+ <li>List item four</li>
+ </ol>
+ </li>
+ <li>List item two</li>
+ <li>List item three</li>
+ <li>List item four</li>
+</ol>
+
+<h2 id="buttons">Buttons</h2>
+
+<p>Make any link standout more when applying the <code class="highlighter-rouge">.btn</code> class.</p>
+
+<div class="language-html highlighter-rouge"><pre class="highlight"><code><span class="nt"><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"btn--success"</span><span class="nt">></span>Success Button<span class="nt"></a></span>
+</code></pre>
+</div>
+
+<p><a href="#" class="btn">Primary Button</a>
+<a href="#" class="btn btn--success">Success Button</a>
+<a href="#" class="btn btn--warning">Warning Button</a>
+<a href="#" class="btn btn--danger">Danger Button</a>
+<a href="#" class="btn btn--info">Info Button</a>
+<a href="#" class="btn btn--inverse">Inverse Button</a>
+<a href="#" class="btn btn--light-outline">Light Outline Button</a></p>
+
+<div class="language-markdown highlighter-rouge"><pre class="highlight"><code><span class="p">[</span><span class="nv">Primary Button Text</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn}
+<span class="p">[</span><span class="nv">Success Button Text</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--success}
+<span class="p">[</span><span class="nv">Warning Button Text</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--warning}
+<span class="p">[</span><span class="nv">Danger Button Text</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--danger}
+<span class="p">[</span><span class="nv">Info Button Text</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--info}
+<span class="p">[</span><span class="nv">Inverse Button</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--inverse}
+<span class="p">[</span><span class="nv">Light Outline Button</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--light-outline}
+</code></pre>
+</div>
+
+<p><a href="#" class="btn btn--x-large">X-Large Button</a>
+<a href="#" class="btn btn--large">Large Button</a>
+<a href="#" class="btn">Default Button</a>
+<a href="#" class="btn btn--small">Small Button</a></p>
+
+<div class="language-markdown highlighter-rouge"><pre class="highlight"><code><span class="p">[</span><span class="nv">X-Large Button</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--x-large}
+<span class="p">[</span><span class="nv">Large Button</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--large}
+<span class="p">[</span><span class="nv">Default Button</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn}
+<span class="p">[</span><span class="nv">Small Button</span><span class="p">](</span><span class="sx">#link</span><span class="p">)</span>{: .btn .btn--small}
+</code></pre>
+</div>
+
+<h2 id="notices">Notices</h2>
+
+<p class="notice"><strong>Watch out!</strong> You can also add notices by appending <code class="highlighter-rouge"><span class="p">{</span><span class="err">:</span><span class="w"> </span><span class="err">.notice</span><span class="p">}</span></code> to a paragraph.</p>
+
+<h2 id="html-tags">HTML Tags</h2>
+
+<h3 id="address-tag">Address Tag</h3>
+
+<address>
+ 1 Infinite Loop<br /> Cupertino, CA 95014<br /> United States
+</address>
+
+<h3 id="anchor-tag-aka-link">Anchor Tag (aka. Link)</h3>
+
+<p>This is an example of a <a href="http://apple.com" title="Apple">link</a>.</p>
+
+<h3 id="abbreviation-tag">Abbreviation Tag</h3>
+
+<p>The abbreviation <abbr title="Cascading Style Sheets">CSS</abbr> stands for \u201cCascading Style Sheets\u201d.</p>
+
+<h3 id="cite-tag">Cite Tag</h3>
+
+<p>\u201cCode is poetry.\u201d \u2014<cite>Automattic</cite></p>
+
+<h3 id="code-tag">Code Tag</h3>
+
+<p>You will learn later on in these tests that <code class="highlighter-rouge">word-wrap: break-word;</code> will be your best friend.</p>
+
+<h3 id="strike-tag">Strike Tag</h3>
+
+<p>This tag will let you <strike>strikeout text</strike>.</p>
+
+<h3 id="emphasize-tag">Emphasize Tag</h3>
+
+<p>The emphasize tag should <em>italicize</em> text.</p>
+
+<h3 id="insert-tag">Insert Tag</h3>
+
+<p>This tag should denote <ins>inserted</ins> text.</p>
+
+<h3 id="keyboard-tag">Keyboard Tag</h3>
+
+<p>This scarcely known tag emulates <kbd>keyboard text</kbd>, which is usually styled like the <code class="highlighter-rouge"><code></code> tag.</p>
+
+<h3 id="preformatted-tag">Preformatted Tag</h3>
+
+<p>This tag styles large blocks of code.</p>
+
+<pre>
+.post-title {
+ margin: 0 0 5px;
+ font-weight: bold;
+ font-size: 38px;
+ line-height: 1.2;
+ and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
+}
+</pre>
+
+<h3 id="quote-tag">Quote Tag</h3>
+
+<p><q>Developers, developers, developers\u2026</q> \u2013Steve Ballmer</p>
+
+<h3 id="strong-tag">Strong Tag</h3>
+
+<p>This tag shows <strong>bold text</strong>.</p>
+
+<h3 id="subscript-tag">Subscript Tag</h3>
+
+<p>Getting our science styling on with H<sub>2</sub>O, which should push the \u201c2\u201d down.</p>
+
+<h3 id="superscript-tag">Superscript Tag</h3>
+
+<p>Still sticking with science and Isaac Newton\u2019s E = MC<sup>2</sup>, which should lift the 2 up.</p>
+
+<h3 id="variable-tag">Variable Tag</h3>
+
+<p>This allows you to denote <var>variables</var>.</p>
+
+<div class="list__item">
+ <article class="archive__item" itemscope="" itemtype="http://schema.org/CreativeWork">
+
+ <h2 class="archive__item-title" itemprop="headline">
+
+ <a href="http://localhost:4000/docs/quick-start/" rel="permalink">Quick Start</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">How to quickly install and setup Apache RocketMQ.
+</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="http://localhost:4000/about/team/" rel="permalink">TEAM</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Project team.
+</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="http://localhost:4000/about/contact/" rel="permalink">CONTACT</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Contact.
+</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="http://localhost:4000/docs/motivation/" rel="permalink">Motivation</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/core-concept/" rel="permalink">Core Concept</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/about/rewards/" rel="permalink">REWARDS</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Rewards.
+</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="http://localhost:4000/docs/cli-admin-tool/" rel="permalink">CLI Admin Tool</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/cluster-deployment/" rel="permalink">Cluster Configuration and Deployment</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/pull-request/" rel="permalink">Best Practice in Pull Request</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/code-guidelines/" rel="permalink">Coding Guidelines</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Coding Guidelines
+</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="http://localhost:4000/docs/documentation/" rel="permalink">Documentation</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Documentation
+</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="http://localhost:4000/docs/faq/" rel="permalink">Frequently Asked Questions</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/release-manual" rel="permalink">Release Manual</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Release Manual
+</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="http://localhost:4000/docs/branching-model" rel="permalink">Branching Model</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ Branching Model
+</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="http://localhost:4000/dowloading/releases/" rel="permalink">Downloading the Apache RocketMQ Releases</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/roadmap/" rel="permalink">The RoadMap of Apache RocketMQ</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/404.html" rel="permalink">Page Not Found</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Page not found. Your pixels are in another canvas.
+</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="http://localhost:4000/about/" rel="permalink">About</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Anything about RocketMQ.
+</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="http://localhost:4000/archive-layout-with-content/" rel="permalink">Archive Layout with Content</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/best-practice-broker/" rel="permalink">Best Practice For Broker</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/best-practice-consumer/" rel="permalink">Best Practice For Consumer</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/best-practice-namesvr/" rel="permalink">Best Practice For NameServer</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/docs/best-practice-producer/" rel="permalink">Best Practice For Producer</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/categories/" rel="permalink">Posts by Category</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/collection-archive/" rel="permalink">Posts by Collection</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/community/" rel="permalink">Apache RocketMQ</a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating
+</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="http://localhost:4000/" rel="permalink"></a>
+
+ </h2>
+
+ <p class="archive__item-excerpt" itemprop="description">Apache RocketMQ\u2122 is an open source distributed messaging and streaming data platform. Latest release v4.0.0-incubating
+</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="http://localhost:4000/assets/css/main.css" rel="permalink"></a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/tags/" rel="permalink">Posts by Tags</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/year-archive/" rel="permalink">Read and Comment</a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/feed.xml" rel="permalink"></a>
+
+ </h2>
+
+
+ </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="http://localhost:4000/feed.xslt.xml" rel="permalink"></a>
+
+ </h2>
+
+
+ </article>
+</div>
+
+ </div>
+</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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/attachment/launch-rocketmq-code-marathon.pdf
----------------------------------------------------------------------
diff --git a/content/assets/attachment/launch-rocketmq-code-marathon.pdf b/content/assets/attachment/launch-rocketmq-code-marathon.pdf
new file mode 100644
index 0000000..ac11c8d
Binary files /dev/null and b/content/assets/attachment/launch-rocketmq-code-marathon.pdf differ
[02/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/release_notes/release-notes-4.0.0-incubating/index.html
----------------------------------------------------------------------
diff --git a/content/release_notes/release-notes-4.0.0-incubating/index.html b/content/release_notes/release-notes-4.0.0-incubating/index.html
new file mode 100644
index 0000000..d3bd18f
--- /dev/null
+++ b/content/release_notes/release-notes-4.0.0-incubating/index.html
@@ -0,0 +1,658 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Release Notes - Apache RocketMQ - Version 4.0.0-incubating - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating 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.0.0-incubating">
+
+
+ <link rel="canonical" href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/">
+ <meta property="og:url" content="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/">
+
+
+
+ <meta property="og:description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating 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.0.0-incubating">
+ <meta name="twitter:description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.">
+ <meta name="twitter:url" content="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-01-24T00:00:00+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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.0.0-incubating">
+ <meta itemprop="description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.">
+ <meta itemprop="datePublished" content="January 24, 2017">
+
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+</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.0.0-incubating 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.0.0-incubating release
+</h2>
+
+<ul>
+ <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="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.sha1">SHA1</a>]</li>
+ <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.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.sha1">SHA1</a>]</li>
+</ul>
+
+<h2> Bug
+</h2>
+<ul>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-2">ROCKETMQ-2</a>] - Broker tests fail with "Address
+ already in use"
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-5">ROCKETMQ-5</a>] - Avoid creating directories in
+ UtilAll#getDiskPartitionSpaceUsedPercent()
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-19">ROCKETMQ-19</a>] - Thread-unsafe in
+ MQAdminImpl#queryMessage
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-22">ROCKETMQ-22</a>] - new funciton 'printWaterMark'
+ in version 3.5.8(4.0.0) will cause a ClassCastException
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-25">ROCKETMQ-25</a>] - Query Msg by key: Possible
+ concurrent access to LinkedList
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-30">ROCKETMQ-30</a>] - Message Filter example has
+ incorrect method signature
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-31">ROCKETMQ-31</a>] - Deletion needed for
+ `$HOME/rmq_bk_gc.log` in `bin/mqbroker`
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-33">ROCKETMQ-33</a>] - CPU Occupy 100%
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-34">ROCKETMQ-34</a>] - Potential NPE in
+ NettyConnetManageHandler#connect
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-35">ROCKETMQ-35</a>] - Consumer client can\u2019t persist
+ consume offset table to Broker
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-45">ROCKETMQ-45</a>] - Delete consume queue hang file
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-47">ROCKETMQ-47</a>] - Broker updates NameServer
+ address list on startup twice
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-59">ROCKETMQ-59</a>] - Charset misusage in
+ RocketMQSerializable
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-64">ROCKETMQ-64</a>] - Remove duplication code line in
+ BrokerOuterAPI.registerBroker method
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-70">ROCKETMQ-70</a>] - Duplicate methods in
+ NettyRemotingClient
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-74">ROCKETMQ-74</a>] - DataVersion equals not working
+ as expected.
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-83">ROCKETMQ-83</a>] - Fail in quickstart-sample
+ </li>
+</ul>
+
+<h2> Improvement
+</h2>
+<ul>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-8">ROCKETMQ-8</a>] - Standardize build script using
+ maven wrapper
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-11">ROCKETMQ-11</a>] - Improve concision - Reuse local
+ variable 'brokerAddrs' in RouteInfoManager.getSystemTopicList method
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-14">ROCKETMQ-14</a>] - Remoting invoke callback shoule
+ be invoked in an executor rather than in current thread.
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-16">ROCKETMQ-16</a>] - Improve the codes of setting
+ topic.json's and subscriptionGroup.json's path
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-18">ROCKETMQ-18</a>] - Repackage com.alibaba to
+ org.apache and change maven coordinate
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-20">ROCKETMQ-20</a>] - Default 'consumeFromWhere'
+ is inconsist with example's
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-29">ROCKETMQ-29</a>] -
+ org.apache.rocketmq.common.help.FAQUrl refers to docs in Chinese
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-32">ROCKETMQ-32</a>] - Improve concision - Reuse local
+ variable 'brokerAddrs' in RouteInfoManager.getSystemTopicList method
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-37">ROCKETMQ-37</a>] - Log output information is not
+ accurate
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-43">ROCKETMQ-43</a>] - code style file didn't match
+ check-style in typecast
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-50">ROCKETMQ-50</a>] - Polish unit tests for RocketMQ
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-60">ROCKETMQ-60</a>] - Checklist review for
+ 4.0.0-incubating release
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-69">ROCKETMQ-69</a>] - Add link to RocketMQ web page
+ into README.md
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-85">ROCKETMQ-85</a>] - Polish README file and remove
+ all the 3rd party links in it.
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-87">ROCKETMQ-87</a>] - Polish the LICENSE and NOTICE
+ files to match all the dependencies
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-1">ROCKETMQ-1</a>] - Update build and clean up ip for
+ 4.0.0-incubating
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-38">ROCKETMQ-38</a>] - Polish unit tests for
+ rocketmq-remoting
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-51">ROCKETMQ-51</a>] - Polish unit tests for
+ rocketmq-broker
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-52">ROCKETMQ-52</a>] - Polish unit tests for
+ rocketmq-client
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-53">ROCKETMQ-53</a>] - Polish unit tests for
+ rocketmq-commons
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-54">ROCKETMQ-54</a>] - Polish unit tests for
+ rocketmq-namesrv
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-56">ROCKETMQ-56</a>] - Polish unit tests for
+ rocketmq-store
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-57">ROCKETMQ-57</a>] - Polish unit tests for
+ rocketmq-tools
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-58">ROCKETMQ-58</a>] - Add integration test for
+ RocketMQ
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-62">ROCKETMQ-62</a>] - Polish Maven assembly release
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-3">ROCKETMQ-3</a>] - Clean up the unit test of rocketmq
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-13">ROCKETMQ-13</a>] - Wrong log level for
+ AcceptSocketService termination
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-9">ROCKETMQ-9</a>] - Errors in rocketmq-store module
+ </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="http://localhost:4000/tags/#release-notes" class="page__taxonomy-item" rel="tag">Release_Notes</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/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="http://localhost:4000/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-01-24T00:00:00+08:00">January 24, 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.0.0-incubating http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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=http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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=http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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=http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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="http://localhost:4000/activity/launch-rocketmq-code-marathon/" class="pagination--pager" title="Launch RocketMQ Code Marathon
+">Previous</a>
+
+
+ <a href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" class="pagination--pager" title="Four Methods to Feed Name Server Address List
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html
----------------------------------------------------------------------
diff --git a/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html b/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html
new file mode 100644
index 0000000..1fcdf33
--- /dev/null
+++ b/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html
@@ -0,0 +1,583 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Four Methods to Feed Name Server Address List - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Four Methods to Feed Name Server Address List">
+
+
+ <link rel="canonical" href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/">
+ <meta property="og:url" content="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/">
+
+
+
+ <meta property="og:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Four Methods to Feed Name Server Address List">
+ <meta name="twitter:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+ <meta name="twitter:url" content="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-02-10T00:00:00+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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="Four Methods to Feed Name Server Address List">
+ <meta itemprop="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+ <meta itemprop="datePublished" content="February 10, 2017">
+
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Four Methods to Feed Name Server Address List
+</h1>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ 1 minute read
+</p>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing topic route information.</p>
+
+<p>The management, roughly speaking, consists two parts:</p>
+<ul>
+ <li>Brokers periodically renew meta data, including topics they have, which are kept in every name servers.</li>
+ <li>Name servers are serving clients, including producers, consumers and command line clients with the latest routing information.</li>
+</ul>
+
+<p>Therefore, before launching brokers and clients, we need to tell them how to reach name servers by feeding them with a name server address list.
+In Apache RocketMQ, this can be done in four ways.</p>
+
+<ol>
+ <li>
+ <p>Programmatic Way</p>
+
+ <p>For broker, we may specify <code class="highlighter-rouge">namesrvAddr=name-server-ip1:port;name-server-ip2:port</code> in broker configuration file.</p>
+
+ <p>For producers and consumers, we may feed name server address list to them as follows:</p>
+
+ <p><code class="highlighter-rouge">
+DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
+producer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p>
+
+ <p><code class="highlighter-rouge">
+DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
+consumer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p>
+
+ <p>If you use admin command line from shell, you may specify this way:
+<code class="highlighter-rouge">sh mqadmin command-name -n name-server-ip1:port;name-server-ip2:port -X OTHER-OPTION</code></p>
+
+ <p>a simple example is:
+<code class="highlighter-rouge">sh mqadmin -n localhost:9876 clusterList</code>
+assuming to query cluster info on the name server node.</p>
+
+ <p>If integrating admin tool into your own dashboard, you may
+<code class="highlighter-rouge">DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt("please_rename_unique_group_name");
+ defaultMQAdminExt.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p>
+ </li>
+ <li>
+ <p>Java Options</p>
+
+ <p>Name server address list may also be fed to your application through specifying the sequel java option
+ <code class="highlighter-rouge">rocketmq.namesrv.addr</code> before launching.</p>
+ </li>
+ <li>
+ <p>Environment Variable</p>
+
+ <p>You can export <code class="highlighter-rouge">NAMESRV_ADDR</code> environment variable. Brokers and clients will examine and use its value if set.</p>
+ </li>
+ <li>
+ <p>HTTP Endpoint</p>
+
+ <p>If you do not specify name server address list using previously mentioned methods, Apache RocketMQ will access
+ the following HTTP end point to acquire and update name server address list every two minutes with initial delay of
+ ten seconds.</p>
+
+ <p>On default, the end point is:</p>
+
+ <p><code class="highlighter-rouge">http://jmenv.tbsite.net:8080/rocketmq/nsaddr</code></p>
+
+ <p>You may override <code class="highlighter-rouge">jmenv.tbsite.net</code> by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain</code>,
+ You may also override <code class="highlighter-rouge">nsaddr</code> part by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain.subgroup</code></p>
+
+ <p>If you are running Apache RocketMQ in production, this method is recommended because it gives you maximum flexibility
+ \u2013 you can dynamically add or remove name server nodes without necessity of rebooting your brokers and clients
+ according to your name servers\u2019 system load.</p>
+ </li>
+</ol>
+
+<ul>
+ <li>
+ <p>Priority</p>
+
+ <p>Methods introduced first take precedence over the latter, namely, <br />
+ <code class="highlighter-rouge">Programmatic Way > Java Options > Environment Variable > HTTP Endpoint</code></p>
+ </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="http://localhost:4000/tags/#name-server" class="page__taxonomy-item" rel="tag">Name Server</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</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="http://localhost:4000/categories/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a>
+
+ </span>
+ </p>
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-02-10T00:00:00+08:00">February 10, 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=Four Methods to Feed Name Server Address List http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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=http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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=http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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=http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="pagination--pager" title="Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html
----------------------------------------------------------------------
diff --git a/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html b/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html
new file mode 100644
index 0000000..401d52f
--- /dev/null
+++ b/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html
@@ -0,0 +1,588 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>How to Support More Queues in RocketMQ? - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Summary">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="How to Support More Queues in RocketMQ?">
+
+
+ <link rel="canonical" href="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/">
+ <meta property="og:url" content="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/">
+
+
+
+ <meta property="og:description" content="Summary">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="How to Support More Queues in RocketMQ?">
+ <meta name="twitter:description" content="Summary">
+ <meta name="twitter:url" content="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2016-12-23T00:00:00+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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="How to Support More Queues in RocketMQ?">
+ <meta itemprop="description" content="Summary">
+ <meta itemprop="datePublished" content="December 23, 2016">
+
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">How to Support More Queues in RocketMQ?
+</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">
+ <h1 id="summary">Summary</h1>
+
+<p>Kafka is a distributed streaming platform, which was born from <a href="https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying">logging aggregation cases</a>. It does not need too high concurrency. In some large scale cases in alibaba, we found that the original model has been unable to meet our actual needs. So, we developed a messaging middleware, named RocketMQ, which can handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss. Now, in alibaba, RocketMQ clusters process more than 500 billion events every day, provide services for more than 3000 core applications.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+ <li><a href="#partition-design-in-kafka" id="markdown-toc-partition-design-in-kafka">Partition design in kafka</a> <ul>
+ <li><a href="#why-kafka-cant-support-more-partitions" id="markdown-toc-why-kafka-cant-support-more-partitions">Why Kafka can\u2019t support more partitions</a></li>
+ </ul>
+ </li>
+ <li><a href="#how-to-support-more-partition-in-rocketmq" id="markdown-toc-how-to-support-more-partition-in-rocketmq">How to support more partition in RocketMQ?</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="partition-design-in-kafka">Partition design in kafka</h1>
+<ol>
+ <li>Producer parallelism of writing is bounded by the number of partitions.</li>
+ <li>The degree of consumer consumption parallelism, is also bounded by the number of partitions being consumed. Assuming that the number of partitions is 20, the maximum number of concurrent consuming consumers is 20.</li>
+ <li>Each topic consists of a fixed number of partitions. Partition number determines the maximum number of topics that single broker may have without significantly affecting performance.</li>
+</ol>
+
+<p>More details please refer to <a href="http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/">here</a>.</p>
+
+<h2 id="why-kafka-cant-support-more-partitions">Why Kafka can\u2019t support more partitions</h2>
+<ol>
+ <li>Each partition stores the whole message data. Although each partition is orderly written to the disk, as number of concurrently writing partitions increases, writing become random in the perspective of operating system.</li>
+ <li>Due to the scattered data files, it is difficult to use the Linux IO Group Commit mechanism.</li>
+</ol>
+
+<h1 id="how-to-support-more-partition-in-rocketmq">How to support more partition in RocketMQ?</h1>
+
+<p><img src="/assets/images/blog/rocketmq-queues.png" alt="screenshot" /></p>
+
+<ol>
+ <li>All message data are stored in commit log files. All writes are completely sequential whilst reads are random.</li>
+ <li>ConsumeQueue stores the actual user consumption location information, which are also flushed to disk in sequential manner.</li>
+</ol>
+
+<blockquote>
+ <p>pros\uff1a</p>
+</blockquote>
+
+<ol>
+ <li>Each consume queue is lightweight and contains limited amount of meta data.</li>
+ <li>Access to disk is totally sequential, which avoids disk lock contention, and will not incur high disk IO wait when a large number of queues has been created.</li>
+</ol>
+
+<blockquote>
+ <p>cons\uff1a</p>
+</blockquote>
+
+<ol>
+ <li>Message consumption will first read consume queue, then commit log. This process brings in certain cost in worst cases.</li>
+ <li>Commit log and consume queues need to be logically consistent, which introduces extra complexities to programming model.</li>
+</ol>
+
+<blockquote>
+ <p>Design Motivation\uff1a</p>
+</blockquote>
+
+<ol>
+ <li>Random read. Read as much as possible to increase the page cache hit rate, and reduce read IO operations. So large memory is still preferable. If massive messages are accumulated, would the read performance degrade badly? The answer is negative, reasons are as follows:
+ <ul>
+ <li>Even if size of the message is only 1KB, the system will read more data in advance, see <a href="https://en.wikipedia.org/wiki/Cache_prefetching">PAGECACHE prefetch</a> for reference. This means for the sequel data read, it is access to main memory that will be carried out instead of slow disk IO read.</li>
+ <li>Random access CommitLog from disk. If set the I/O scheduler to NOOP in case of SSD, the read qps will be greatly accelerated thus much faster than other elevator scheduler algorithm.</li>
+ </ul>
+ </li>
+ <li>Given ConsumeQueue stores fixed-size metadata only, which is mainly used to record consuming progress, random read is well supported. Taking advantage of page cache prefetch, accessing ConsumeQueue is as efficiently fast as accessing main memory, even if it\u2019s in the case of massive message accumulation. As a result\uff0cConsumeQueue will NOT bring in noticeable penalty to the read performance.</li>
+ <li>CommitLog stores virtually all information, including the message data. Similar to redo log of relational database, consume queues, message key indexes and all other required data can be completely recovered as long as commit log exists..</li>
+</ol>
+
+
+ </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="http://localhost:4000/tags/#message-oriented-middleware" class="page__taxonomy-item" rel="tag">Message Oriented Middleware</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#partition" class="page__taxonomy-item" rel="tag">Partition</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#queue" class="page__taxonomy-item" rel="tag">Queue</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</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="http://localhost:4000/categories/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a>
+
+ </span>
+ </p>
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-23T00:00:00+08:00">December 23, 2016</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=How to Support More Queues in RocketMQ? http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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=http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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=http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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=http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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="#" class="pagination--pager disabled">Previous</a>
+
+
+ <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" class="pagination--pager" title="Mastering Component Compatible Dependency
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/sitemap.xml
----------------------------------------------------------------------
diff --git a/content/sitemap.xml b/content/sitemap.xml
new file mode 100644
index 0000000..5a072eb
--- /dev/null
+++ b/content/sitemap.xml
@@ -0,0 +1,171 @@
+<?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>http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/</loc>
+<lastmod>2017-02-10T00:00:00+08:00</lastmod>
+</url>
+<url>
+<loc>http://localhost:4000/release_notes/release-notes-4.0.0-incubating/</loc>
+<lastmod>2017-01-24T00:00:00+08:00</lastmod>
+</url>
+<url>
+<loc>http://localhost:4000/activity/launch-rocketmq-code-marathon/</loc>
+<lastmod>2017-01-05T00:00:00+08:00</lastmod>
+</url>
+<url>
+<loc>http://localhost:4000/maven/mastering-component-compatible-dependency/</loc>
+<lastmod>2016-12-23T00:00:00+08:00</lastmod>
+</url>
+<url>
+<loc>http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/</loc>
+<lastmod>2016-12-23T00:00:00+08:00</lastmod>
+</url>
+<url>
+<loc>http://localhost:4000/docs/quick-start/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/team/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/contact/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/motivation/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/core-concept/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/rewards/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/cli-admin-tool/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/cluster-deployment/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/pull-request/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/code-guidelines/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/documentation/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/faq/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/release-manual</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/branching-model</loc>
+</url>
+<url>
+<loc>http://localhost:4000/dowloading/releases/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/roadmap/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/archive-layout-with-content/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-broker/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-consumer/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-namesvr/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-producer/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/categories/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/collection-archive/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/community/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/tags/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/year-archive/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/team/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/contact/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/about/rewards/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/quick-start/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/motivation/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/core-concept/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/cli-admin-tool/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/cluster-deployment/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/pull-request/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/code-guidelines/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/documentation/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/faq/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/release-manual</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/branching-model</loc>
+</url>
+<url>
+<loc>http://localhost:4000/dowloading/releases/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/roadmap/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-broker/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-consumer/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-namesvr/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/docs/best-practice-producer/</loc>
+</url>
+<url>
+<loc>http://localhost:4000/assets/attachment/launch-rocketmq-code-marathon.pdf</loc>
+<lastmod>2017-03-16T10:34:03+08:00</lastmod>
+</url>
+</urlset>
[16/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
Add built content
Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/2d7f6a51
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/2d7f6a51
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/2d7f6a51
Branch: refs/heads/asf_site
Commit: 2d7f6a51dd3a6b6199ca801f5667ede00d374a3a
Parents: 0cc114a
Author: dongeforever <do...@apache.org>
Authored: Thu Mar 16 11:43:41 2017 +0800
Committer: dongeforever <do...@apache.org>
Committed: Thu Mar 16 11:43:41 2017 +0800
----------------------------------------------------------------------
.gitignore | 1 -
content/404.html | 402 ++++++
content/DISCLAIMER | 1 +
content/NOTICE | 5 +
content/about/contact/index.html | 393 ++++++
content/about/index.html | 395 ++++++
content/about/rewards/index.html | 349 ++++++
content/about/team/index.html | 535 ++++++++
.../launch-rocketmq-code-marathon/index.html | 556 +++++++++
content/alibaba-rocketmq-jekyll.gemspec | 28 +
content/archive-layout-with-content/index.html | 1065 ++++++++++++++++
.../launch-rocketmq-code-marathon.pdf | Bin 0 -> 135771 bytes
content/assets/css/main.css | 4 +
content/assets/fonts/FontAwesome.otf | Bin 0 -> 124988 bytes
content/assets/fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes
content/assets/fonts/fontawesome-webfont.svg | 685 +++++++++++
content/assets/fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes
content/assets/fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes
content/assets/fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes
content/assets/images/about/Jaskey.jpeg | Bin 0 -> 2760 bytes
content/assets/images/about/StyleTang.jpeg | Bin 0 -> 2768 bytes
content/assets/images/about/WillemJiang.jpeg | Bin 0 -> 4484 bytes
content/assets/images/about/brianm.jpeg | Bin 0 -> 2818 bytes
content/assets/images/about/bsnyder.jpeg | Bin 0 -> 3672 bytes
content/assets/images/about/dongeforever.jpeg | Bin 0 -> 23023 bytes
content/assets/images/about/justinmclean.jpeg | Bin 0 -> 4352 bytes
content/assets/images/about/lizhanhui.jpg | Bin 0 -> 2571 bytes
content/assets/images/about/lollipop.jpeg | Bin 0 -> 3254 bytes
content/assets/images/about/longdafeng.jpeg | Bin 0 -> 2651 bytes
content/assets/images/about/lukehan.jpeg | Bin 0 -> 2871 bytes
content/assets/images/about/stevenschew.png | Bin 0 -> 14987 bytes
content/assets/images/about/tcrow.png | Bin 0 -> 11772 bytes
content/assets/images/about/vintagewang.jpeg | Bin 0 -> 2366 bytes
content/assets/images/about/vongosling.jpeg | Bin 0 -> 2604 bytes
content/assets/images/about/zhangke.png | Bin 0 -> 13097 bytes
content/assets/images/about/zhaoqun911.png | Bin 0 -> 4737 bytes
content/assets/images/about/zhouxinyu.png | Bin 0 -> 16148 bytes
content/assets/images/blog/banner.jpg | Bin 0 -> 96315 bytes
content/assets/images/blog/rocketmq-queues.png | Bin 0 -> 46754 bytes
.../images/code_guidelines/author-tag.png | Bin 0 -> 42774 bytes
.../images/code_guidelines/codestyle-pre.png | Bin 0 -> 216377 bytes
.../assets/images/code_guidelines/codestyle.png | Bin 0 -> 76123 bytes
.../images/code_guidelines/copyright-choose.png | Bin 0 -> 76573 bytes
.../assets/images/code_guidelines/copyright.png | Bin 0 -> 125994 bytes
content/assets/images/community/2dfire-logo.jpg | Bin 0 -> 12185 bytes
.../assets/images/community/alibaba-logo.png | Bin 0 -> 4627 bytes
content/assets/images/community/ant-logo.png | Bin 0 -> 16801 bytes
.../images/community/china-telecom-logo.png | Bin 0 -> 9254 bytes
content/assets/images/community/decent-logo.png | Bin 0 -> 5358 bytes
content/assets/images/community/egov-logo.png | Bin 0 -> 70043 bytes
content/assets/images/community/media-logo.jpg | Bin 0 -> 6222 bytes
content/assets/images/community/meizu-logo.png | Bin 0 -> 1900 bytes
content/assets/images/community/shihai-logo.jpg | Bin 0 -> 58158 bytes
.../assets/images/community/yeahmobi-logo.png | Bin 0 -> 6553 bytes
content/assets/images/community/yunpan-logo.png | Bin 0 -> 2819 bytes
content/assets/images/feather-small.gif | Bin 0 -> 129292 bytes
.../images/release-manual/14864364524873.jpg | Bin 0 -> 347275 bytes
.../images/release-manual/14864365609580.jpg | Bin 0 -> 84289 bytes
.../images/release-manual/14864367062507.jpg | Bin 0 -> 45304 bytes
.../images/release-manual/14864368514198.jpg | Bin 0 -> 87040 bytes
.../images/release-manual/14864376551544.jpg | Bin 0 -> 103860 bytes
content/assets/images/rewards/2016_oschina.jpg | Bin 0 -> 572055 bytes
content/assets/images/rmq-feature-bigdata.png | Bin 0 -> 39087 bytes
content/assets/images/rmq-feature-finance.png | Bin 0 -> 40051 bytes
content/assets/images/rmq-feature-industry.png | Bin 0 -> 45315 bytes
.../assets/images/rmq-feature-lowlatency.png | Bin 0 -> 47445 bytes
.../images/rmq-feature-massiveaccumulation.png | Bin 0 -> 46075 bytes
content/assets/images/rmq-feature-neutral.png | Bin 0 -> 46387 bytes
content/assets/images/rmq-home-page.jpg | Bin 0 -> 98953 bytes
content/assets/images/rmq-logo.png | Bin 0 -> 6094 bytes
content/assets/images/rmq-model.png | Bin 0 -> 90694 bytes
content/assets/js/main.min.js | 5 +
content/categories/index.html | 615 ++++++++++
content/collection-archive/index.html | 846 +++++++++++++
content/community/index.html | 497 ++++++++
content/docs/best-practice-broker/index.html | 564 +++++++++
content/docs/best-practice-consumer/index.html | 589 +++++++++
content/docs/best-practice-namesvr/index.html | 552 +++++++++
content/docs/best-practice-producer/index.html | 597 +++++++++
content/docs/branching-model.html | 718 +++++++++++
content/docs/cli-admin-tool/index.html | 625 ++++++++++
content/docs/cluster-deployment/index.html | 629 ++++++++++
content/docs/code-guidelines/index.html | 574 +++++++++
content/docs/core-concept/index.html | 664 ++++++++++
content/docs/documentation/index.html | 598 +++++++++
content/docs/faq/index.html | 638 ++++++++++
content/docs/motivation/index.html | 627 ++++++++++
content/docs/pull-request/index.html | 729 +++++++++++
content/docs/quick-start/index.html | 613 ++++++++++
content/docs/release-manual.html | 895 ++++++++++++++
content/docs/roadmap/index.html | 637 ++++++++++
content/dowloading/releases/index.html | 545 +++++++++
content/favicon.ico | Bin 0 -> 6094 bytes
content/feed.xml | 625 ++++++++++
content/feed.xslt.xml | 4 +
content/index.html | 445 +++++++
.../index.html | 795 ++++++++++++
.../release-notes-4.0.0-incubating/index.html | 658 ++++++++++
.../index.html | 583 +++++++++
.../index.html | 588 +++++++++
content/sitemap.xml | 171 +++
content/tags/index.html | 1142 ++++++++++++++++++
content/year-archive/index.html | 512 ++++++++
103 files changed, 22698 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 928dad0..3ed93ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,6 @@
_asset_bundler_cache
_site
.idea/
-content
codekit-config.json
example/_site
Gemfile.lock
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/404.html
----------------------------------------------------------------------
diff --git a/content/404.html b/content/404.html
new file mode 100644
index 0000000..dceae97
--- /dev/null
+++ b/content/404.html
@@ -0,0 +1,402 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Page Not Found - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Page not found. Your pixels are in another canvas.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Page Not Found">
+
+
+ <link rel="canonical" href="http://localhost:4000/404.html">
+ <meta property="og:url" content="http://localhost:4000/404.html">
+
+
+
+ <meta property="og:description" content="Page not found. Your pixels are in another canvas.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Page Not Found">
+ <meta name="twitter:description" content="Page not found. Your pixels are in another canvas.">
+ <meta name="twitter:url" content="http://localhost:4000/404.html">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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="Page Not Found">
+ <meta itemprop="description" content="Page not found. Your pixels are in another canvas.">
+
+
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Page Not Found
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>Sorry, but the page you were trying to view does not exist \u2014 perhaps you can try searching for it below.</p>
+
+<script type="text/javascript">
+ var GOOG_FIXURL_LANG = 'en';
+ var GOOG_FIXURL_SITE = 'http://localhost:4000'
+</script>
+
+<script type="text/javascript" src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js">
+</script>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ </footer>
+
+
+
+
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/DISCLAIMER
----------------------------------------------------------------------
diff --git a/content/DISCLAIMER b/content/DISCLAIMER
new file mode 100644
index 0000000..cf4d044
--- /dev/null
+++ b/content/DISCLAIMER
@@ -0,0 +1 @@
+Apache RocketMQ is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/NOTICE
----------------------------------------------------------------------
diff --git a/content/NOTICE b/content/NOTICE
new file mode 100644
index 0000000..5384857
--- /dev/null
+++ b/content/NOTICE
@@ -0,0 +1,5 @@
+Apache RocketMQ (incubating)
+Copyright 2016-2017 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/about/contact/index.html
----------------------------------------------------------------------
diff --git a/content/about/contact/index.html b/content/about/contact/index.html
new file mode 100644
index 0000000..a243ad0
--- /dev/null
+++ b/content/about/contact/index.html
@@ -0,0 +1,393 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>CONTACT - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Contact.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="CONTACT">
+
+
+ <link rel="canonical" href="http://localhost:4000/about/contact/">
+ <meta property="og:url" content="http://localhost:4000/about/contact/">
+
+
+
+ <meta property="og:description" content="Contact.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="CONTACT">
+ <meta name="twitter:description" content="Contact.">
+ <meta name="twitter:url" content="http://localhost:4000/about/contact/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--about_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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/team/"><span class="nav__sub-title">Team</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/contact/"><span class="nav__sub-title">Contact</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/rewards/"><span class="nav__sub-title">Rewards</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="CONTACT">
+ <meta itemprop="description" content="Contact.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 29, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">CONTACT
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <h2 id="mailing-lists">Mailing Lists</h2>
+
+<p>These are the mailing lists that have been established for RocketMQ. For each list, there is a subscribe, unsubscribe, and an archive link.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Name</th>
+ <th style="text-align: left">Description</th>
+ <th style="text-align: left">Subscribe</th>
+ <th style="text-align: left">Unsubscribe</th>
+ <th style="text-align: left">Archive</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">Users</td>
+ <td style="text-align: left">User support and questions mailing list</td>
+ <td style="text-align: left"><a href="mailto:users-subscribe@rocketmq.incubator.apache.org">Subscribe</a></td>
+ <td style="text-align: left"><a href="mailto:users-unsubscribe@rocketmq.incubator.apache.org">Unsubscribe</a></td>
+ <td style="text-align: left"><a href="http://mail-archives.apache.org/mod_mbox/incubator-rocketmq-users/">mail-archives.apache.org</a></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">Issues</td>
+ <td style="text-align: left">Mirror of all JIRA activity</td>
+ <td style="text-align: left"><a href="mailto:issues-subscribe@rocketmq.incubator.apache.org">Subscribe</a></td>
+ <td style="text-align: left"><a href="mailto:issues-unsubscribe@rocketmq.incubator.apache.org">Unsubscribe</a></td>
+ <td style="text-align: left"><a href="http://mail-archives.apache.org/mod_mbox/incubator-rocketmq-issues/">mail-archives.apache.org</a></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">Development</td>
+ <td style="text-align: left">Development related discussions</td>
+ <td style="text-align: left"><a href="mailto:dev-subscribe@rocketmq.incubator.apache.org">Subscribe</a></td>
+ <td style="text-align: left"><a href="mailto:dev-unsubscribe@rocketmq.incubator.apache.org">Unsubscribe</a></td>
+ <td style="text-align: left"><a href="http://mail-archives.apache.org/mod_mbox/incubator-rocketmq-dev//">mail-archives.apache.org</a></td>
+ </tr>
+ <tr>
+ <td style="text-align: left">Commits</td>
+ <td style="text-align: left">All commits to repositories</td>
+ <td style="text-align: left"><a href="mailto:commits-subscribe@rocketmq.incubator.apache.org">Subscribe</a></td>
+ <td style="text-align: left"><a href="mailto:commits-unsubscribe@rocketmq.incubator.apache.org">Unsubscribe</a></td>
+ <td style="text-align: left"><a href="http://mail-archives.apache.org/mod_mbox/incubator-rocketmq-commits/">mail-archives.apache.org</a></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Besides, we hold tagged questions on <a href="http://stackoverflow.com/questions/tagged/rocketmq">stackoverflow.com</a> where you can launch an interactive discussion. Also, you can try to find answers to your question about RocketMQ on Quora <a href="https://www.quora.com/topic/RocketMQ">here</a>.</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-29">December 29, 2016</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=CONTACT http://localhost:4000/about/contact/" 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=http://localhost:4000/about/contact/" 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=http://localhost:4000/about/contact/" 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=http://localhost:4000/about/contact/" 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="http://localhost:4000/about/team/" class="pagination--pager" title="TEAM
+">Previous</a>
+
+
+ <a href="http://localhost:4000/about/rewards/" class="pagination--pager" title="REWARDS
+">Next</a>
+
+ </nav>
+
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/about/index.html
----------------------------------------------------------------------
diff --git a/content/about/index.html b/content/about/index.html
new file mode 100644
index 0000000..4f3caa3
--- /dev/null
+++ b/content/about/index.html
@@ -0,0 +1,395 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>About - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Anything about RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="About">
+
+
+ <link rel="canonical" href="http://localhost:4000/about/">
+ <meta property="og:url" content="http://localhost:4000/about/">
+
+
+
+ <meta property="og:description" content="Anything about RocketMQ.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="About">
+ <meta name="twitter:description" content="Anything about RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/about/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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="About">
+ <meta itemprop="description" content="Anything about RocketMQ.">
+
+ <meta itemprop="dateModified" content="December 16, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">About
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p><strong>TODO</strong></p>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-16">December 16, 2016</time></p>
+
+ </footer>
+
+
+
+
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/about/rewards/index.html
----------------------------------------------------------------------
diff --git a/content/about/rewards/index.html b/content/about/rewards/index.html
new file mode 100644
index 0000000..205d135
--- /dev/null
+++ b/content/about/rewards/index.html
@@ -0,0 +1,349 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>REWARDS - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Rewards.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="REWARDS">
+
+
+ <link rel="canonical" href="http://localhost:4000/about/rewards/">
+ <meta property="og:url" content="http://localhost:4000/about/rewards/">
+
+
+
+ <meta property="og:description" content="Rewards.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="REWARDS">
+ <meta name="twitter:description" content="Rewards.">
+ <meta name="twitter:url" content="http://localhost:4000/about/rewards/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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--about_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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/team/"><span class="nav__sub-title">Team</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/contact/"><span class="nav__sub-title">Contact</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/rewards/"><span class="nav__sub-title">Rewards</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="REWARDS">
+ <meta itemprop="description" content="Rewards.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="January 25, 2017">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">REWARDS
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <h2 id="2016-chinas-most-popular-open-source-software-award-">2016 China\u2019s most popular open source software award <a href="https://www.oschina.net/question/2886655_2216338"><i class="fa fa-link"></i></a></h2>
+
+<div>
+<img src="/assets/images/rewards/2016_oschina.jpg" width="80%" height="80%" alt="oschina" />
+</div>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-01-25">January 25, 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=REWARDS http://localhost:4000/about/rewards/" 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=http://localhost:4000/about/rewards/" 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=http://localhost:4000/about/rewards/" 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=http://localhost:4000/about/rewards/" 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="http://localhost:4000/about/contact/" class="pagination--pager" title="CONTACT
+">Previous</a>
+
+
+ <a href="#" class="pagination--pager disabled">Next</a>
+
+ </nav>
+
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/about/team/index.html
----------------------------------------------------------------------
diff --git a/content/about/team/index.html b/content/about/team/index.html
new file mode 100644
index 0000000..0bc5a10
--- /dev/null
+++ b/content/about/team/index.html
@@ -0,0 +1,535 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>TEAM - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Project team.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="TEAM">
+
+
+ <link rel="canonical" href="http://localhost:4000/about/team/">
+ <meta property="og:url" content="http://localhost:4000/about/team/">
+
+
+
+ <meta property="og:description" content="Project team.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="TEAM">
+ <meta name="twitter:description" content="Project team.">
+ <meta name="twitter:url" content="http://localhost:4000/about/team/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/team/"><span class="nav__sub-title">Team</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/contact/"><span class="nav__sub-title">Contact</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/about/rewards/"><span class="nav__sub-title">Rewards</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+ <meta itemprop="headline" content="TEAM">
+ <meta itemprop="description" content="Project team.">
+ <meta itemprop="datePublished" content="March 16, 2017">
+ <meta itemprop="dateModified" content="December 29, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">TEAM
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>The RocketMQ team is comprised of Members and Contributors. Members have direct access to the source of RocketMQ project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. All contributions to RocketMQ are greatly appreciated, whether for trivial cleanups, big new features or other material rewards. More details see <a href="https://github.com/apache/incubator-rocketmq/blob/master/CONTRIBUTING.md">here</a>.</p>
+
+<h3 id="members">Members</h3>
+
+<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Image</th>
+ <th style="text-align: left">Id</th>
+ <th style="text-align: left">Github Id</th>
+ <th style="text-align: left">Email</th>
+ <th style="text-align: left"><a href="https://www.apache.org/foundation/how-it-works.html#roles">Roles</a></th>
+ <th style="text-align: left">Time Zone</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/bsnyder.jpeg" alt="bsnyde" /></td>
+ <td style="text-align: left">bsnyder</td>
+ <td style="text-align: left"><a href="https://github.com/bsnyder">@bsnyder</a></td>
+ <td style="text-align: left">bsnyder@apache.org</td>
+ <td style="text-align: left">Mentor/PMC Member</td>
+ <td style="text-align: left">-7</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/brianm.jpeg" alt="brian" /></td>
+ <td style="text-align: left">brianm</td>
+ <td style="text-align: left"><a href="https://github.com/brianm">@brianm</a></td>
+ <td style="text-align: left">brianm@apache.org</td>
+ <td style="text-align: left">Mentor/PMC Member</td>
+ <td style="text-align: left">-8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/WillemJiang.jpeg" alt="WillemJiang" /></td>
+ <td style="text-align: left">ningjiang</td>
+ <td style="text-align: left"><a href="https://github.com/WillemJiang">@WillemJiang</a></td>
+ <td style="text-align: left">ningjiang@apache.org</td>
+ <td style="text-align: left">Mentor/PMC Member</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/lukehan.jpeg" alt="lukehan" /></td>
+ <td style="text-align: left">lukehan</td>
+ <td style="text-align: left"><a href="https://github.com/lukehan">@lukehan</a></td>
+ <td style="text-align: left">lukehan@apache.org</td>
+ <td style="text-align: left">Mentor/PMC Member</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/justinmclean.jpeg" alt="justinmclean" /></td>
+ <td style="text-align: left">jmclean</td>
+ <td style="text-align: left"><a href="https://github.com/justinmclean">@justinmclean</a></td>
+ <td style="text-align: left">jmclean@apache.org</td>
+ <td style="text-align: left">Mentor/PMC Member</td>
+ <td style="text-align: left">+11</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/vongosling.jpeg" alt="vongosling" /></td>
+ <td style="text-align: left">vongosling</td>
+ <td style="text-align: left"><a href="https://github.com/vongosling">@vongosling</a></td>
+ <td style="text-align: left">vongosling@apache.org</td>
+ <td style="text-align: left">Committer/PMC Member</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/vintagewang.jpeg" alt="vintagewang" /></td>
+ <td style="text-align: left">vintagewang</td>
+ <td style="text-align: left"><a href="https://github.com/vintagewang">@vintagewang</a></td>
+ <td style="text-align: left">vintagewang@apache.org</td>
+ <td style="text-align: left">Committer/PMC Member</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/zhouxinyu.png" alt="zhouxinyu" /></td>
+ <td style="text-align: left">yukon</td>
+ <td style="text-align: left"><a href="https://github.com/zhouxinyu">@zhouxinyu</a></td>
+ <td style="text-align: left">yukon@apache.org</td>
+ <td style="text-align: left">Committer/PMC Member</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/lizhanhui.jpg" alt="lizhanhui" /></td>
+ <td style="text-align: left">lizhanhui</td>
+ <td style="text-align: left"><a href="https://github.com/lizhanhui">@lizhanhui</a></td>
+ <td style="text-align: left">lizhanhui@apache.org</td>
+ <td style="text-align: left">Committer</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/stevenschew.png" alt="stevensche" /></td>
+ <td style="text-align: left">stevenschew</td>
+ <td style="text-align: left"><a href="https://github.com/stevenschew">@stevenschew</a></td>
+ <td style="text-align: left">stevenschew@apache.org</td>
+ <td style="text-align: left">Committer</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/lollipop.jpeg" alt="lollipop" /></td>
+ <td style="text-align: left">lollipop</td>
+ <td style="text-align: left"><a href="https://github.com/lollipopjin">@lollipopjin</a></td>
+ <td style="text-align: left">lollipop@apache.org</td>
+ <td style="text-align: left">Committer</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/longdafeng.jpeg" alt="longdafeng" /></td>
+ <td style="text-align: left">longda</td>
+ <td style="text-align: left"><a href="https://github.com/longdafeng">@longdafeng</a></td>
+ <td style="text-align: left">longda@apache.org</td>
+ <td style="text-align: left">Committer</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="https://avatars2.githubusercontent.com/u/3435166?v=3&s=400" alt="shroman" /></td>
+ <td style="text-align: left">shroman</td>
+ <td style="text-align: left"><a href="https://github.com/shroman">@shroman</a></td>
+ <td style="text-align: left">shroman@apache.org</td>
+ <td style="text-align: left">Committer</td>
+ <td style="text-align: left">+9</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/dongeforever.jpeg" alt="dongeforever" /></td>
+ <td style="text-align: left">dongeforever</td>
+ <td style="text-align: left"><a href="https://github.com/dongeforever">@dongeforever</a></td>
+ <td style="text-align: left">dongeforever@apache.org</td>
+ <td style="text-align: left">Committer</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="top-contributors">Top Contributors</h3>
+<p>There are a lot of contributors who improve the RocketMQ project through submission of patches and suggestions to the Members, top contributors to be added.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">Image</th>
+ <th style="text-align: left">Id</th>
+ <th style="text-align: left">Github Id</th>
+ <th style="text-align: left">Email</th>
+ <th style="text-align: left"><a href="https://www.apache.org/foundation/how-it-works.html#roles">Roles</a></th>
+ <th style="text-align: left">Time Zone</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/zhangke.png" alt="Zhang-Ke" /></td>
+ <td style="text-align: left">Zhang-Ke</td>
+ <td style="text-align: left"><a href="https://github.com/Zhang-Ke">@Zhang-Ke</a></td>
+ <td style="text-align: left">zhangke_beijing@qq.com</td>
+ <td style="text-align: left">Contributor</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/StyleTang.jpeg" alt="StyleTang" /></td>
+ <td style="text-align: left">StyleTang</td>
+ <td style="text-align: left"><a href="https://github.com/StyleTang">@StyleTang</a></td>
+ <td style="text-align: left">styletang.me@gmail.com</td>
+ <td style="text-align: left">Contributor</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/tcrow.png" alt="tcrow" /></td>
+ <td style="text-align: left">tcrow</td>
+ <td style="text-align: left"><a href="https://github.com/tcrow">@tcrow</a></td>
+ <td style="text-align: left">�</td>
+ <td style="text-align: left">Contributor</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/Jaskey.jpeg" alt="Jaskey" /></td>
+ <td style="text-align: left">Jaskey</td>
+ <td style="text-align: left"><a href="https://github.com/Jaskey">@Jaskey</a></td>
+ <td style="text-align: left">linjunjie1103@gmail.com</td>
+ <td style="text-align: left">Contributor</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ <tr>
+ <td style="text-align: left"><img src="/assets/images/about/zhaoqun911.png" alt="zhaoqun911" /></td>
+ <td style="text-align: left">zhaoqun911</td>
+ <td style="text-align: left"><a href="https://github.com/zhaoqun911">@zhaoqun911</a></td>
+ <td style="text-align: left">�</td>
+ <td style="text-align: left">Contributor</td>
+ <td style="text-align: left">+8</td>
+ </tr>
+ </tbody>
+</table>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-29">December 29, 2016</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=TEAM http://localhost:4000/about/team/" 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=http://localhost:4000/about/team/" 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=http://localhost:4000/about/team/" 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=http://localhost:4000/about/team/" 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="#" class="pagination--pager disabled">Previous</a>
+
+
+ <a href="http://localhost:4000/about/contact/" class="pagination--pager" title="CONTACT
+">Next</a>
+
+ </nav>
+
+ </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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
+
+
+
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/activity/launch-rocketmq-code-marathon/index.html
----------------------------------------------------------------------
diff --git a/content/activity/launch-rocketmq-code-marathon/index.html b/content/activity/launch-rocketmq-code-marathon/index.html
new file mode 100644
index 0000000..0d40e04
--- /dev/null
+++ b/content/activity/launch-rocketmq-code-marathon/index.html
@@ -0,0 +1,556 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Launch RocketMQ Code Marathon - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="ROCKETMQ CODE MARATHON January 5th 2017">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Launch RocketMQ Code Marathon">
+
+
+ <link rel="canonical" href="http://localhost:4000/activity/launch-rocketmq-code-marathon/">
+ <meta property="og:url" content="http://localhost:4000/activity/launch-rocketmq-code-marathon/">
+
+
+
+ <meta property="og:description" content="ROCKETMQ CODE MARATHON January 5th 2017">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Launch RocketMQ Code Marathon">
+ <meta name="twitter:description" content="ROCKETMQ CODE MARATHON January 5th 2017">
+ <meta name="twitter:url" content="http://localhost:4000/activity/launch-rocketmq-code-marathon/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-01-05T00:00:00+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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="http://localhost:4000/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">
+ A fast, low latency, reliable, scalable, distributed MOM.
+ </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://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url">
+ <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website
+ </a>
+ </li>
+
+
+
+ <li>
+ <a href="mailto:dev@rocketmq.incubator.apache.org">
+ <meta itemprop="email" content="dev@rocketmq.incubator.apache.org" />
+ <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/incubator-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="Launch RocketMQ Code Marathon">
+ <meta itemprop="description" content="ROCKETMQ CODE MARATHON January 5th 2017">
+ <meta itemprop="datePublished" content="January 05, 2017">
+
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Launch RocketMQ Code Marathon
+</h1>
+
+ <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i>
+
+
+
+
+ less than 1 minute read
+</p>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p><img src="/assets/images/blog/banner.jpg" alt="Banner" /></p>
+<h1 id="rocketmq-code-marathon-">ROCKETMQ CODE MARATHON <a href="/assets/attachment/launch-rocketmq-code-marathon.pdf"><i class="fa fa-link"></i></a></h1>
+<h5 id="january-5th-2017">January 5th 2017</h5>
+
+<h2 id="objective">Objective:</h2>
+<ol>
+ <li>Foster Community</li>
+ <li>Prosper Ecology</li>
+ <li>Incubate Committers</li>
+</ol>
+
+<h2 id="output">Output:</h2>
+<ol>
+ <li>1~3 Milestone Releases Per Project</li>
+</ol>
+
+<h2 id="rewards">Rewards:</h2>
+<ol>
+ <li>Two Potential Committers Per Project</li>
+ <li>Free Offers to Active Participants for On-Site Meetup</li>
+ <li>PMC Memberships for Qualified Committers</li>
+</ol>
+
+<h2 id="projects">PROJECTS</h2>
+
+<h3 id="rocketmq-console">RocketMQ-Console</h3>
+<ol>
+ <li>Brand New UI</li>
+ <li>I18n Support</li>
+ <li><a href="https://projects.spring.io/spring-boot/">Spring Boot</a> + <a href="http://getbootstrap.com/">Bootstrap</a> Recommended</li>
+ <li>Join by Creating Pull Requests against <a href="https://github.com/rocketmq/rocketmq-console-ng">RocketMQ Console Repository</a></li>
+</ol>
+
+<h3 id="rocketmq-jms">RocketMQ-JMS</h3>
+<ol>
+ <li>Supporting JMS 2.0 Protocol</li>
+ <li>Rich Documentation and Good Test Cases Coverage</li>
+ <li>Join by Creating Pull Requests against <a href="https://github.com/rocketmq/rocketmq-jms">RocketMQ JMS Repository</a></li>
+</ol>
+
+<h3 id="rocketmq-flume">RocketMQ-Flume</h3>
+<ol>
+ <li>Supporting Latest <a href="http://flume.apache.org/">Flume</a></li>
+ <li>Rich Documentation and Good Test Cases Coverage</li>
+ <li>Join by Creating Pull Requests against <a href="https://github.com/rocketmq/rocketmq-flume-ng">RocketMQ Flume Repository</a></li>
+</ol>
+
+
+ </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="http://localhost:4000/tags/#activity" class="page__taxonomy-item" rel="tag">Activity</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#code" class="page__taxonomy-item" rel="tag">Code</a><span class="sep">, </span>
+
+
+
+ <a href="http://localhost:4000/tags/#marathon" class="page__taxonomy-item" rel="tag">Marathon</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="http://localhost:4000/categories/#activity" class="page__taxonomy-item" rel="tag">Activity</a>
+
+ </span>
+ </p>
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-01-05T00:00:00+08:00">January 05, 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=Launch RocketMQ Code Marathon http://localhost:4000/activity/launch-rocketmq-code-marathon/" 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=http://localhost:4000/activity/launch-rocketmq-code-marathon/" 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=http://localhost:4000/activity/launch-rocketmq-code-marathon/" 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=http://localhost:4000/activity/launch-rocketmq-code-marathon/" 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="http://localhost:4000/maven/mastering-component-compatible-dependency/" class="pagination--pager" title="Mastering Component Compatible Dependency
+">Previous</a>
+
+
+ <a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="pagination--pager" title="Release Notes - Apache RocketMQ - Version 4.0.0-incubating
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/alibaba-rocketmq-jekyll.gemspec
----------------------------------------------------------------------
diff --git a/content/alibaba-rocketmq-jekyll.gemspec b/content/alibaba-rocketmq-jekyll.gemspec
new file mode 100644
index 0000000..25a1cfa
--- /dev/null
+++ b/content/alibaba-rocketmq-jekyll.gemspec
@@ -0,0 +1,28 @@
+# coding: utf-8
+
+Gem::Specification.new do |spec|
+ spec.name = "minimal-mistakes-jekyll"
+ spec.version = "4.1.0"
+ spec.authors = ["Michael Rose"]
+
+ spec.summary = %q{A flexible two-column Jekyll theme.}
+ spec.homepage = "https://github.com/alibaba/RocketMQ/"
+ spec.license = "MIT"
+
+ spec.metadata["plugin_type"] = "theme"
+
+ spec.files = `git ls-files -z`.split("\x0").select do |f|
+ f.match(%r{^(assets|_(includes|layouts|sass)/|(LICENSE|README|CHANGELOG)((\.(txt|md|markdown)|$)))}i)
+ end
+
+ spec.add_dependency "jekyll", "~> 3.3"
+
+ spec.add_development_dependency "bundler", "~> 1.12"
+ spec.add_development_dependency "rake", "~> 10.0"
+
+ spec.add_runtime_dependency "jekyll-paginate", "~> 1.1"
+ spec.add_runtime_dependency "jekyll-sitemap", "~> 0.12"
+ spec.add_runtime_dependency "jekyll-gist", "~> 1.4"
+ spec.add_runtime_dependency "jekyll-feed", "~> 0.8"
+ spec.add_runtime_dependency "jemoji", "~> 0.7"
+end
[13/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/fonts/fontawesome-webfont.svg
----------------------------------------------------------------------
diff --git a/content/assets/fonts/fontawesome-webfont.svg b/content/assets/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..8b66187
--- /dev/null
+++ b/content/assets/fonts/fontawesome-webfont.svg
@@ -0,0 +1,685 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" " horiz-adv-x="448" />
+<glyph unicode="	" horiz-adv-x="448" />
+<glyph unicode=" " horiz-adv-x="448" />
+<glyph unicode="¨" horiz-adv-x="1792" />
+<glyph unicode="©" horiz-adv-x="1792" />
+<glyph unicode="®" horiz-adv-x="1792" />
+<glyph unicode="´" horiz-adv-x="1792" />
+<glyph unicode="Æ" horiz-adv-x="1792" />
+<glyph unicode="Ø" horiz-adv-x="1792" />
+<glyph unicode=" " horiz-adv-x="768" />
+<glyph unicode=" " horiz-adv-x="1537" />
+<glyph unicode=" " horiz-adv-x="768" />
+<glyph unicode=" " horiz-adv-x="1537" />
+<glyph unicode=" " horiz-adv-x="512" />
+<glyph unicode=" " horiz-adv-x="384" />
+<glyph unicode=" " horiz-adv-x="256" />
+<glyph unicode=" " horiz-adv-x="256" />
+<glyph unicode=" " horiz-adv-x="192" />
+<glyph unicode=" " horiz-adv-x="307" />
+<glyph unicode=" " horiz-adv-x="85" />
+<glyph unicode=" " horiz-adv-x="307" />
+<glyph unicode=" " horiz-adv-x="384" />
+<glyph unicode="™" horiz-adv-x="1792" />
+<glyph unicode="∞" horiz-adv-x="1792" />
+<glyph unicode="≠" horiz-adv-x="1792" />
+<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+<glyph unicode="" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t1
9 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28
t28 -68z" />
+<glyph unicode="" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
+<glyph unicode="" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+<glyph unicode="" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+<glyph unicode="" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
+<glyph unicode="" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+<glyph unicode="" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -1
13 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
+<glyph unicode="" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+<glyph unicode="" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+<glyph unicode="" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+<glyph unicode="" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+<glyph unicode="" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+<glyph unicode="" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41
.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t
-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+<glyph unicode="" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+<glyph unicode="" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
+<glyph unicode="" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
+<glyph unicode="" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+<glyph unicode="" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+<glyph unicode="" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+<glyph unicode="" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152
-23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+<glyph unicode="" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+<glyph unicode="" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
+<glyph unicode="" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
+<glyph unicode="" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+<glyph unicode="" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+<glyph unicode="" d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98
300.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+<glyph unicode="" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+<glyph unicode="" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+<glyph unicode="" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -
19 -7t13 -15q15 -6 19 6z M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" />
+<glyph unicode="" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+<glyph unicode="" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
+<glyph unicode="" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+<glyph unicode="" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+<glyph unicode="" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+<glyph unicode="" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+<glyph unicode="" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+<glyph unicode="" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17
t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-1
5 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q
-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 35
<TRUNCATED>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/fonts/fontawesome-webfont.ttf
----------------------------------------------------------------------
diff --git a/content/assets/fonts/fontawesome-webfont.ttf b/content/assets/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..f221e50
Binary files /dev/null and b/content/assets/fonts/fontawesome-webfont.ttf differ
[04/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/feed.xml
----------------------------------------------------------------------
diff --git a/content/feed.xml b/content/feed.xml
new file mode 100644
index 0000000..903c0ee
--- /dev/null
+++ b/content/feed.xml
@@ -0,0 +1,625 @@
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://localhost:4000/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2017-03-16T11:42:05+08:00</updated><id>http://localhost:4000//</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{"name"=>nil, "avatar"=>"/assets/images/rmq-logo.png", "bio"=>"A fast, low latency, reliable, scalable, distributed MOM.", "location"=>"Hangzhou, China", "email"=>"dev@rocketmq.incubator.apache.org", "uri"=>"http://incubator.staging.apache.org/projects/rocketmq.html", "bitbucket"=>nil, "c
odepen"=>nil, "dribbble"=>nil, "flickr"=>nil, "facebook"=>nil, "foursquare"=>nil, "github"=>"apache/incubator-rocketmq", "google_plus"=>nil, "keybase"=>nil, "instagram"=>nil, "lastfm"=>nil, "linkedin"=>nil, "pinterest"=>nil, "soundcloud"=>nil, "stackoverflow"=>"questions/tagged/rocketmq", "steam"=>nil, "tumblr"=>nil, "twitter"=>"ApacheRocketMQ", "vine"=>nil, "weibo"=>nil, "xing"=>nil, "youtube"=>nil, "quora"=>"topic/RocketMQ"}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><entry><title type="html">Four Methods to Feed Name Server Address List</title><link href="http://localhost:4000/
rocketmq/four-methods-to-feed-name-server-address-list/" rel="alternate" type="text/html" title="Four Methods to Feed Name Server Address List" /><published>2017-02-10T00:00:00+08:00</published><updated>2017-02-10T00:00:00+08:00</updated><id>http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list</id><content type="html" xml:base="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/"><p>In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing topic route information.</p>
+
+<p>The management, roughly speaking, consists two parts:</p>
+<ul>
+ <li>Brokers periodically renew meta data, including topics they have, which are kept in every name servers.</li>
+ <li>Name servers are serving clients, including producers, consumers and command line clients with the latest routing information.</li>
+</ul>
+
+<p>Therefore, before launching brokers and clients, we need to tell them how to reach name servers by feeding them with a name server address list.
+In Apache RocketMQ, this can be done in four ways.</p>
+
+<ol>
+ <li>
+ <p>Programmatic Way</p>
+
+ <p>For broker, we may specify <code class="highlighter-rouge">namesrvAddr=name-server-ip1:port;name-server-ip2:port</code> in broker configuration file.</p>
+
+ <p>For producers and consumers, we may feed name server address list to them as follows:</p>
+
+ <p><code class="highlighter-rouge">
+DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
+producer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p>
+
+ <p><code class="highlighter-rouge">
+DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
+consumer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p>
+
+ <p>If you use admin command line from shell, you may specify this way:
+<code class="highlighter-rouge">sh mqadmin command-name -n name-server-ip1:port;name-server-ip2:port -X OTHER-OPTION</code></p>
+
+ <p>a simple example is:
+<code class="highlighter-rouge">sh mqadmin -n localhost:9876 clusterList</code>
+assuming to query cluster info on the name server node.</p>
+
+ <p>If integrating admin tool into your own dashboard, you may
+<code class="highlighter-rouge">DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt("please_rename_unique_group_name");
+ defaultMQAdminExt.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p>
+ </li>
+ <li>
+ <p>Java Options</p>
+
+ <p>Name server address list may also be fed to your application through specifying the sequel java option
+ <code class="highlighter-rouge">rocketmq.namesrv.addr</code> before launching.</p>
+ </li>
+ <li>
+ <p>Environment Variable</p>
+
+ <p>You can export <code class="highlighter-rouge">NAMESRV_ADDR</code> environment variable. Brokers and clients will examine and use its value if set.</p>
+ </li>
+ <li>
+ <p>HTTP Endpoint</p>
+
+ <p>If you do not specify name server address list using previously mentioned methods, Apache RocketMQ will access
+ the following HTTP end point to acquire and update name server address list every two minutes with initial delay of
+ ten seconds.</p>
+
+ <p>On default, the end point is:</p>
+
+ <p><code class="highlighter-rouge">http://jmenv.tbsite.net:8080/rocketmq/nsaddr</code></p>
+
+ <p>You may override <code class="highlighter-rouge">jmenv.tbsite.net</code> by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain</code>,
+ You may also override <code class="highlighter-rouge">nsaddr</code> part by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain.subgroup</code></p>
+
+ <p>If you are running Apache RocketMQ in production, this method is recommended because it gives you maximum flexibility
+ \u2013 you can dynamically add or remove name server nodes without necessity of rebooting your brokers and clients
+ according to your name servers\u2019 system load.</p>
+ </li>
+</ol>
+
+<ul>
+ <li>
+ <p>Priority</p>
+
+ <p>Methods introduced first take precedence over the latter, namely, <br />
+ <code class="highlighter-rouge">Programmatic Way &gt; Java Options &gt; Environment Variable &gt; HTTP Endpoint</code></p>
+ </li>
+</ul></content><author><name>{"name"=>nil, "avatar"=>"/assets/images/rmq-logo.png", "bio"=>"A fast, low latency, reliable, scalable, distributed MOM.", "location"=>"Hangzhou, China", "email"=>"dev@rocketmq.incubator.apache.org", "uri"=>"http://incubator.staging.apache.org/projects/rocketmq.html", "bitbucket"=>nil, "codepen"=>nil, "dribbble"=>nil, "flickr"=>nil, "facebook"=>nil, "foursquare"=>nil, "github"=>"apache/incubator-rocketmq", "google_plus"=>nil, "keybase"=>nil, "instagram"=>nil, "lastfm"=>nil, "linkedin"=>nil, "pinterest"=>nil, "soundcloud"=>nil, "stackoverflow"=>"questions/tagged/rocketmq", "steam"=>nil, "tumblr&
quot;=>nil, "twitter"=>"ApacheRocketMQ", "vine"=>nil, "weibo"=>nil, "xing"=>nil, "youtube"=>nil, "quora"=>"topic/RocketMQ"}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><category term="RocketMQ" /><category term="Name Server" /><summary type="html">In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
+and fulfill much of this responsibility through managing topic route information.</summary></entry><entry><title type="html">Release Notes - Apache RocketMQ - Version 4.0.0-incubating</title><link href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" rel="alternate" type="text/html" title="Release Notes - Apache RocketMQ - Version 4.0.0-incubating" /><published>2017-01-24T00:00:00+08:00</published><updated>2017-01-24T00:00:00+08:00</updated><id>http://localhost:4000/release_notes/release-notes-4.0.0-incubating</id><content type="html" xml:base="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/"><p>Below is a summary of the JIRA issues addressed in the 4.0.0-incubating 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.0.0-incubating release
+</h2>
+
+<ul>
+ <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="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.sha1">SHA1</a>]</li>
+ <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.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.sha1">SHA1</a>]</li>
+</ul>
+
+<h2> Bug
+</h2>
+<ul>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-2">ROCKETMQ-2</a>] - Broker tests fail with &quot;Address
+ already in use&quot;
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-5">ROCKETMQ-5</a>] - Avoid creating directories in
+ UtilAll#getDiskPartitionSpaceUsedPercent()
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-19">ROCKETMQ-19</a>] - Thread-unsafe in
+ MQAdminImpl#queryMessage
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-22">ROCKETMQ-22</a>] - new funciton &#39;printWaterMark&#39;
+ in version 3.5.8(4.0.0) will cause a ClassCastException
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-25">ROCKETMQ-25</a>] - Query Msg by key: Possible
+ concurrent access to LinkedList
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-30">ROCKETMQ-30</a>] - Message Filter example has
+ incorrect method signature
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-31">ROCKETMQ-31</a>] - Deletion needed for
+ `$HOME/rmq_bk_gc.log` in `bin/mqbroker`
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-33">ROCKETMQ-33</a>] - CPU Occupy 100%
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-34">ROCKETMQ-34</a>] - Potential NPE in
+ NettyConnetManageHandler#connect
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-35">ROCKETMQ-35</a>] - Consumer client can\u2019t persist
+ consume offset table to Broker
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-45">ROCKETMQ-45</a>] - Delete consume queue hang file
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-47">ROCKETMQ-47</a>] - Broker updates NameServer
+ address list on startup twice
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-59">ROCKETMQ-59</a>] - Charset misusage in
+ RocketMQSerializable
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-64">ROCKETMQ-64</a>] - Remove duplication code line in
+ BrokerOuterAPI.registerBroker method
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-70">ROCKETMQ-70</a>] - Duplicate methods in
+ NettyRemotingClient
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-74">ROCKETMQ-74</a>] - DataVersion equals not working
+ as expected.
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-83">ROCKETMQ-83</a>] - Fail in quickstart-sample
+ </li>
+</ul>
+
+<h2> Improvement
+</h2>
+<ul>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-8">ROCKETMQ-8</a>] - Standardize build script using
+ maven wrapper
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-11">ROCKETMQ-11</a>] - Improve concision - Reuse local
+ variable &#39;brokerAddrs&#39; in RouteInfoManager.getSystemTopicList method
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-14">ROCKETMQ-14</a>] - Remoting invoke callback shoule
+ be invoked in an executor rather than in current thread.
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-16">ROCKETMQ-16</a>] - Improve the codes of setting
+ topic.json&#39;s and subscriptionGroup.json&#39;s path
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-18">ROCKETMQ-18</a>] - Repackage com.alibaba to
+ org.apache and change maven coordinate
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-20">ROCKETMQ-20</a>] - Default &#39;consumeFromWhere&#39;
+ is inconsist with example&#39;s
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-29">ROCKETMQ-29</a>] -
+ org.apache.rocketmq.common.help.FAQUrl refers to docs in Chinese
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-32">ROCKETMQ-32</a>] - Improve concision - Reuse local
+ variable &#39;brokerAddrs&#39; in RouteInfoManager.getSystemTopicList method
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-37">ROCKETMQ-37</a>] - Log output information is not
+ accurate
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-43">ROCKETMQ-43</a>] - code style file didn&#39;t match
+ check-style in typecast
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-50">ROCKETMQ-50</a>] - Polish unit tests for RocketMQ
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-60">ROCKETMQ-60</a>] - Checklist review for
+ 4.0.0-incubating release
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-69">ROCKETMQ-69</a>] - Add link to RocketMQ web page
+ into README.md
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-85">ROCKETMQ-85</a>] - Polish README file and remove
+ all the 3rd party links in it.
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-87">ROCKETMQ-87</a>] - Polish the LICENSE and NOTICE
+ files to match all the dependencies
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-1">ROCKETMQ-1</a>] - Update build and clean up ip for
+ 4.0.0-incubating
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-38">ROCKETMQ-38</a>] - Polish unit tests for
+ rocketmq-remoting
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-51">ROCKETMQ-51</a>] - Polish unit tests for
+ rocketmq-broker
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-52">ROCKETMQ-52</a>] - Polish unit tests for
+ rocketmq-client
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-53">ROCKETMQ-53</a>] - Polish unit tests for
+ rocketmq-commons
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-54">ROCKETMQ-54</a>] - Polish unit tests for
+ rocketmq-namesrv
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-56">ROCKETMQ-56</a>] - Polish unit tests for
+ rocketmq-store
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-57">ROCKETMQ-57</a>] - Polish unit tests for
+ rocketmq-tools
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-58">ROCKETMQ-58</a>] - Add integration test for
+ RocketMQ
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-62">ROCKETMQ-62</a>] - Polish Maven assembly release
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-3">ROCKETMQ-3</a>] - Clean up the unit test of rocketmq
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-13">ROCKETMQ-13</a>] - Wrong log level for
+ AcceptSocketService termination
+ </li>
+ <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-9">ROCKETMQ-9</a>] - Errors in rocketmq-store module
+ </li>
+</ul></content><author><name>{"name"=>nil, "avatar"=>"/assets/images/rmq-logo.png", "bio"=>"A fast, low latency, reliable, scalable, distributed MOM.", "location"=>"Hangzhou, China", "email"=>"dev@rocketmq.incubator.apache.org", "uri"=>"http://incubator.staging.apache.org/projects/rocketmq.html", "bitbucket"=>nil, "codepen"=>nil, "dribbble"=>nil, "flickr"=>nil, "facebook"=>nil, "foursquare"=>nil, "github"=>"apache/incubator-rocketmq", "google_plus"=>nil, "keybase"=>nil, "instagram"=>nil, "lastfm"=>nil, "linkedin"=>nil, "pinterest"=>nil, "soundcloud"=>nil, "stackoverflow"=>"questions/tagged/rocketmq", "steam"=>nil, "tumblr&
quot;=>nil, "twitter"=>"ApacheRocketMQ", "vine"=>nil, "weibo"=>nil, "xing"=>nil, "youtube"=>nil, "quora"=>"topic/RocketMQ"}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><category term="Release_Notes" /><category term="RocketMQ" /><category term="Version" /><summary type="html">Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.</summary></entry><entry><title type="html">Launch RocketMQ Code Marathon</title><link href="http://localhost:4000/activity/launch-rocketmq-code-marathon/" rel="alternate" type="text/html" title="Launch RocketMQ Code Marathon" /><published>2017-01-05T00:00:00+08:00</published><updated>2017-01-05T00:00:00+08:00</updated><id>http://localhost:4000/
activity/launch-rocketmq-code-marathon</id><content type="html" xml:base="http://localhost:4000/activity/launch-rocketmq-code-marathon/"><p><img src="/assets/images/blog/banner.jpg" alt="Banner" /></p>
+<h1 id="rocketmq-code-marathon-">ROCKETMQ CODE MARATHON <a href="/assets/attachment/launch-rocketmq-code-marathon.pdf"><i class="fa fa-link"></i></a></h1>
+<h5 id="january-5th-2017">January 5th 2017</h5>
+
+<h2 id="objective">Objective:</h2>
+<ol>
+ <li>Foster Community</li>
+ <li>Prosper Ecology</li>
+ <li>Incubate Committers</li>
+</ol>
+
+<h2 id="output">Output:</h2>
+<ol>
+ <li>1~3 Milestone Releases Per Project</li>
+</ol>
+
+<h2 id="rewards">Rewards:</h2>
+<ol>
+ <li>Two Potential Committers Per Project</li>
+ <li>Free Offers to Active Participants for On-Site Meetup</li>
+ <li>PMC Memberships for Qualified Committers</li>
+</ol>
+
+<h2 id="projects">PROJECTS</h2>
+
+<h3 id="rocketmq-console">RocketMQ-Console</h3>
+<ol>
+ <li>Brand New UI</li>
+ <li>I18n Support</li>
+ <li><a href="https://projects.spring.io/spring-boot/">Spring Boot</a> + <a href="http://getbootstrap.com/">Bootstrap</a> Recommended</li>
+ <li>Join by Creating Pull Requests against <a href="https://github.com/rocketmq/rocketmq-console-ng">RocketMQ Console Repository</a></li>
+</ol>
+
+<h3 id="rocketmq-jms">RocketMQ-JMS</h3>
+<ol>
+ <li>Supporting JMS 2.0 Protocol</li>
+ <li>Rich Documentation and Good Test Cases Coverage</li>
+ <li>Join by Creating Pull Requests against <a href="https://github.com/rocketmq/rocketmq-jms">RocketMQ JMS Repository</a></li>
+</ol>
+
+<h3 id="rocketmq-flume">RocketMQ-Flume</h3>
+<ol>
+ <li>Supporting Latest <a href="http://flume.apache.org/">Flume</a></li>
+ <li>Rich Documentation and Good Test Cases Coverage</li>
+ <li>Join by Creating Pull Requests against <a href="https://github.com/rocketmq/rocketmq-flume-ng">RocketMQ Flume Repository</a></li>
+</ol></content><author><name>{"name"=>nil, "avatar"=>"/assets/images/rmq-logo.png", "bio"=>"A fast, low latency, reliable, scalable, distributed MOM.", "location"=>"Hangzhou, China", "email"=>"dev@rocketmq.incubator.apache.org", "uri"=>"http://incubator.staging.apache.org/projects/rocketmq.html", "bitbucket"=>nil, "codepen"=>nil, "dribbble"=>nil, "flickr"=>nil, "facebook"=>nil, "foursquare"=>nil, "github"=>"apache/incubator-rocketmq", "google_plus"=>nil, "keybase"=>nil, "instagram"=>nil, "lastfm"=>nil, "linkedin"=>nil, "pinterest"=>nil, "soundcloud"=>nil, "stackoverflow"=>"questions/tagged/rocketmq", "steam"=>nil, "tumblr&
quot;=>nil, "twitter"=>"ApacheRocketMQ", "vine"=>nil, "weibo"=>nil, "xing"=>nil, "youtube"=>nil, "quora"=>"topic/RocketMQ"}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><category term="Activity" /><category term="Code" /><category term="Marathon" /><summary type="html">ROCKETMQ CODE MARATHON
+January 5th 2017</summary></entry><entry><title type="html">Mastering Component Compatible Dependency</title><link href="http://localhost:4000/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>http://localhost:4000/maven/mastering-component-compatible-dependency</id><content type="html" xml:base="http://localhost:4000/maven/mastering-component-compatible-dependency/"><p>This article mainly includes three parts.at first,I will introduce compatibility principle(more details see <a href="http://blog.csdn.net/fengjia10/article/details/7799227">here</a>) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component c
ompatibility compile time checking.Finally is the review and prospect,especially about <strong>Dependency Mediator</strong> project.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#compatibility" id="markdown-toc-compatibility">Compatibility</a></li>
+ <li><a href="#component-compatible-dependency" id="markdown-toc-component-compatible-dependency">Component Compatible Dependency</a> <ul>
+ <li><a href="#interface-oriented-programming" id="markdown-toc-interface-oriented-programming">Interface-oriented programming</a></li>
+ <li><a href="#single-component-signature-protection" id="markdown-toc-single-component-signature-protection">Single component signature protection</a></li>
+ <li><a href="#single-component-compatibility-protection" id="markdown-toc-single-component-compatibility-protection">Single component compatibility protection</a></li>
+ <li><a href="#multi-component-compatibility-compile-time-checking" id="markdown-toc-multi-component-compatibility-compile-time-checking">Multi-component compatibility compile time checking</a></li>
+ </ul>
+ </li>
+ <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="compatibility">Compatibility</h1>
+
+<p>what is compatibility\uff1fit is also the key to understanding the compatible dependency.Compatibility, often catch our eyes through two forms,<strong>binary compatibility</strong>,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 \u201895), Java programming language binaries are binary compatible under all relevant transformations that the authors identify (with some caveats with respect to the addition of instance variables). here is a list of some important binary compatible changes that the Java programming language supports:</p>
+
+<ul>
+ <li>Reimplementing existing methods, constructors, and initializers to improve performance.</li>
+ <li>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.</li>
+ <li>Adding new fields, methods, or constructors to an existing class or interface.</li>
+ <li>Deleting private fields, methods, or constructors of a class.</li>
+ <li>When an entire package is updated, deleting default (package-only) access fields, methods, or constructors of classes and interfaces in the package.</li>
+ <li>Reordering the fields, methods, or constructors in an existing type declaration.</li>
+ <li>Moving a method upward in the class hierarchy.</li>
+ <li>Reordering the list of direct superinterfaces of a class or interface.</li>
+ <li>Inserting new class or interface types in the type hierarchy.</li>
+</ul>
+
+<p>Generally,java language is <strong>upwards binary-compatible</strong> 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 <a href="http://www.oracle.com/technetwork/java/javase/compatibility-137541.html#binary">here</a>.</p>
+
+<p>Another compatibility form,we call it <strong>source compatibility</strong>,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:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">UnsupportedClassVersionError</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">core</span><span class="o">.</span><span class="na">MessageConsumer</span> <span class="o">:</span>
+ <span class="n">Unsupported</span> <span class="n">major</span><span class="o">.</span><span class="na">minor</span> <span class="n">version</span> <span class="mf">51.0</span>
+ <span class="n">at</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">ClassLoader</span><span class="o">.</span><span class="na">defineClass1</span><span class="o">(</span><span class="n">Native</span> <span class="n">Method</span><span class="o">)</span>
+ <span class="n">at</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">ClassLoader</span><span class="o">.</span><span class="na">defineClassCond</span><span class="o">(</span><span class="n">Unknown</span> <span class="n">Source</span><span class="o">)</span>
+</code></pre>
+</div>
+
+<p>Java language source compatibility policy is as follows,except for any incompatibilities listed further below:</p>
+
+<ul>
+ <li>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.</li>
+ <li>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.</li>
+</ul>
+
+<p>Let\u2019s sum up before going on:</p>
+
+<ul>
+ <li>Document those incompatibility cases as much as possible, even some rare circumstances and corner cases.</li>
+ <li>Recommend developer to provide facilities that alert developers to the impact of changes on pre-existing binaries that cannot be recompiled.</li>
+ <li>Generally speaking,Binary Compatibility problems may occur in the following situations:</li>
+ <li><strong>Replacing the old with the new</strong>,such as the Java platform Profiling Architecture in the Java SE6,JVMDI was removed and JVMPI was disabled in Java SE 6.</li>
+ <li><strong>Combinatorial resolution</strong>,such as Non class files have been moved from rt.jar in Java SE 6.if -Xbootclasspath:<path to="" rt.jar=""> is specified,and request any resource files will fail since these resources now reside in a different jar file called resources.jar.</path></li>
+ <li><strong>Behavior change</strong>,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=true to achieve backward compatibility.</li>
+ <li><strong>Structure change</strong>,this is also the key problem to solve in <strong>Dependency Mediator</strong> 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 <a href="http://blog.csdn.net/fengjia10/article/details/7799227">article</a> I wrote before. also you can read the the thirteenth chapter of Java language specification.</li>
+</ul>
+
+<h1 id="component-compatible-dependency">Component Compatible Dependency</h1>
+
+<p>This article don\u2019t talk about <strong>dependency analysis</strong> and <strong>dependency decoupling</strong>,if you care these topics,please read <a href="http://java.dzone.com/articles/dependency-analysis-and-1">Dependency Analysis and the Modularisation of Java Programs</a>.highly recommending you try to dive into open source project <a href="http://xplrarc.massey.ac.nz/">Architecture Explorer</a>,through bcel technology,analyzing and measuring component\u2019s dependency relationship.but in my opinion,<a href="http://clarkware.com/software/JDepend.html">Jdepend</a> was surely the most distinguished tool in dependency analysis and dependency decoupling area.it traverses Java class file directories and generates design quality metrics for each Java package,also allows you to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability t
o manage package dependencies effectively.</p>
+
+<p>Let\u2019s return,ask yourself\uff0chave you ever been disturbed by the following problems?</p>
+
+<ul>
+ <li>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 <strong>NoSuchMethodError</strong>,<strong>NoSuchFieldError</strong> and <strong>NoClassDefFoundError</strong> etc.</li>
+ <li>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.</li>
+ <li>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.</li>
+</ul>
+
+<p>It is the time to introduce the key idea - <strong>Mediating Components Compatible Dependency</strong>.Specifically,it includs the following basic principles:</p>
+
+<ul>
+ <li>Interface-oriented programming</li>
+ <li>Single component signature protection</li>
+ <li>Single component compatibility protection</li>
+ <li>Multi-component compatibility compile time checking</li>
+</ul>
+
+<h2 id="interface-oriented-programming">Interface-oriented programming</h2>
+
+<p>Interface-oriented programming,It\u2019s easier said than done.I will cite SLF4J design philosophy explain this principle.</p>
+
+<p>Differing from commons logging,SLF4J use <strong>static binder technology</strong> so as to avoid notorious <a href="http://articles.qos.ch/classloader.html">classloader problem</a>,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\uff0cI can also depend commons logging api but not concret implementation\uff1fit\u2019s 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 unexpected behavior,hard to debug classloading problems resulting in increased complexity.This is nicely captured by Ceki (the author of Log4J, SLF4J and Logback) in Think again before adopting the commons-logging API (which also mentions memory leaks problems observed with JCL).and this is why SLF4J, which uses static bindings, has been created. Let\u2019s see.how to find the concrete realizations in SLF4J:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="c1">// We need to use the name of the StaticLoggerBinder class, but we can't reference</span>
+<span class="c1">// the class itself.</span>
+<span class="kd">private</span> <span class="kd">static</span> <span class="n">String</span> <span class="n">STATIC_LOGGER_BINDER_PATH</span> <span class="o">=</span> <span class="s">"org/slf4j/impl/StaticLoggerBinder.class"</span><span class="o">;</span>
+ <span class="cm">/**
+ * 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.
+ */</span>
+<span class="kd">static</span> <span class="kd">private</span> <span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">API_COMPATIBILITY_LIST</span> <span class="o">=</span> <span class="k">new</span> <span class="n">String</span><span class="o">[]{</span><span class="s">"1.6"</span><span class="o">,</span> <span class="s">"1.7"</span><span class="o">};</span>
+
+<span class="c1">// private constructor prevents instantiation</span>
+<span class="kd">private</span> <span class="nf">LoggerFactory</span><span class="o">()</span> <span class="o">{}</span>
+<span class="kd">private</span> <span class="kd">final</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">versionSanityCheck</span><span class="o">()</span> <span class="o">{</span>
+ <span class="k">try</span> <span class="o">{</span>
+ <span class="n">String</span> <span class="n">requested</span> <span class="o">=</span> <span class="n">StaticLoggerBinder</span><span class="o">.</span><span class="na">REQUESTED_API_VERSION</span><span class="o">;</span>
+ <span class="kt">boolean</span> <span class="n">match</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
+ <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">API_COMPATIBILITY_LIST</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">requested</span><span class="o">.</span><span class="na">startsWith</span><span class="o">(</span><span class="n">API_COMPATIBILITY_LIST</span><span class="o">[</span><span class="n">i</span><span class="o">]))</span> <span class="o">{</span>
+ <span class="n">match</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
+ <span class="k">if</span> <span class="o">(!</span><span class="n">match</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">Util</span><span class="o">.</span><span class="na">report</span><span class="o">(</span><span class="s">"The requested version "</span> <span class="o">+</span> <span class="n">requested</span>
+ <span class="o">+</span> <span class="s">" by your slf4j binding is not compatible with "</span>
+ <span class="o">+</span> <span class="n">Arrays</span><span class="o">.</span><span class="na">asList</span><span class="o">(</span><span class="n">API_COMPATIBILITY_LIST</span><span class="o">).</span><span class="na">toString</span><span class="o">());</span>
+ <span class="n">Util</span><span class="o">.</span><span class="na">report</span><span class="o">(</span><span class="s">"See "</span> <span class="o">+</span> <span class="n">VERSION_MISMATCH</span> <span class="o">+</span> <span class="s">" for further details."</span><span class="o">);</span>
+ <span class="o">}</span>
+<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">NoSuchFieldError</span> <span class="n">nsfe</span><span class="o">)</span> <span class="o">{</span>
+ <span class="c1">// given our large user base and SLF4J's commitment to backward</span>
+ <span class="c1">// compatibility, we cannot cry here. Only for implementations</span>
+ <span class="c1">// which willingly declare a REQUESTED_API_VERSION field do we</span>
+ <span class="c1">// emit compatibility warnings.</span>
+<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Throwable</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+ <span class="c1">// we should never reach here</span>
+ <span class="n">Util</span><span class="o">.</span><span class="na">report</span><span class="o">(</span><span class="s">"Unexpected problem occured during version sanity check"</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
+ <span class="o">}</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<p>you can use these skills at your library.just Let others depend on your interface package,detecting certain implementation statically.</p>
+
+<p>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:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">String</span> <span class="n">hint</span> <span class="o">=</span> <span class="n">isMaven31</span><span class="o">()</span> <span class="o">?</span> <span class="s">"maven31"</span> <span class="o">:</span> <span class="n">isMaven2x</span><span class="o">()</span> <span class="o">?</span> <span class="s">"maven2"</span> <span class="o">:</span> <span class="s">"maven3"</span><span class="o">;</span>
+
+<span class="cm">/**
+* Check the current Maven version to see if it's Maven 2.x.
+*/</span>
+<span class="kd">protected</span> <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">isMaven2x</span><span class="o">()</span>
+<span class="o">{</span>
+ <span class="k">return</span> <span class="o">!</span><span class="n">canFindCoreClass</span><span class="o">(</span> <span class="s">"org.apache.maven.project.DependencyResolutionRequest"</span> <span class="o">);</span> <span class="c1">// Maven 3 specific</span>
+<span class="o">}</span>
+
+<span class="cm">/**
+* Check the current Maven version to see if it's Maven 3.1.
+*/</span>
+<span class="kd">protected</span> <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">isMaven31</span><span class="o">()</span>
+<span class="o">{</span>
+ <span class="k">return</span> <span class="nf">canFindCoreClass</span><span class="o">(</span> <span class="s">"org.eclipse.aether.artifact.Artifact"</span> <span class="o">);</span> <span class="c1">// Maven 3.1 specific</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="single-component-signature-protection">Single component signature protection</h2>
+
+<p>Secondly,Single component signature protection,you can using <a href="http://mojo.codehaus.org/animal-sniffer/">Animal Sniffer project</a> 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.</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">&lt;</span><span class="n">plugin</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">groupId</span><span class="o">&gt;</span><span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o">&lt;/</span><span class="n">groupId</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">artifactId</span><span class="o">&gt;</span><span class="n">animal</span><span class="o">-</span><span class="n">sniffer</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="n">plugin</span><span class="o">&lt;/</span><span class="n">artifactId</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">configuration</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">signature</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">groupId</span><span class="o">&gt;</span><span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o">.</span><span class="na">signature</span><span class="o">&lt;/</span><span class="n">groupId</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">artifactId</span><span class="o">&gt;</span><span class="n">java16</span><span class="o">-</span><span class="n">sun</span><span class="o">&lt;/</span><span class="n">artifactId</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span><span class="mf">1.0</span><span class="o">&lt;/</span><span class="n">version</span><span class="o">&gt;</span>
+ <span class="o">&lt;/</span><span class="n">signature</span><span class="o">&gt;</span>
+ <span class="o">&lt;/</span><span class="n">configuration</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">executions</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">execution</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">id</span><span class="o">&gt;</span><span class="n">check</span><span class="o">-</span><span class="n">java16</span><span class="o">-</span><span class="n">sun</span><span class="o">&lt;/</span><span class="n">id</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">phase</span><span class="o">&gt;</span><span class="n">test</span><span class="o">&lt;/</span><span class="n">phase</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">goals</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">goal</span><span class="o">&gt;</span><span class="n">check</span><span class="o">&lt;/</span><span class="n">goal</span><span class="o">&gt;</span>
+ <span class="o">&lt;/</span><span class="n">goals</span><span class="o">&gt;</span>
+ <span class="o">&lt;/</span><span class="n">execution</span><span class="o">&gt;</span>
+ <span class="o">&lt;/</span><span class="n">executions</span><span class="o">&gt;</span>
+ <span class="o">&lt;/</span><span class="n">plugin</span><span class="o">&gt;</span>
+</code></pre>
+</div>
+
+<p>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:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="o">[</span><span class="n">animal</span><span class="o">-</span><span class="nl">sniffer:</span><span class="n">check</span> <span class="o">{</span><span class="nl">execution:</span> <span class="n">check</span><span class="o">-</span><span class="n">java</span><span class="o">-</span><span class="n">api</span><span class="o">}]</span>
+<span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="n">Checking</span> <span class="n">unresolved</span> <span class="n">references</span> <span class="n">to</span> <span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o">.</span><span class="na">signature</span><span class="o">:</span><span class="n">java16</span><span class="o">-</span><span class="nl">sun:</span><span class="mf">1.0</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="n">Undefined</span> <span class="nl">reference:</span> <span class="n">java</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">String</span><span class="o">.</span><span class="na">contains</span><span class="o">(</span><span class="n">Ljava</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">CharSequence</span><span class="o">;)</span><span class="n">Z</span> <span clas
s="n">in</span> <span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">admin</span><span class="o">/</span><span class="n">workspace</span><span class="o">/</span><span class="n">kafka</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">classes</span><span class="o">/</span><span class="n">org</span><span class="o">/</span><span class="n">kafka</span><span class="o">/</span><span class="n">tools</span><span class="o">...</span><span class="na">Producer</
span><span class="o">.</span><span class="na">class</span>
+</code></pre>
+</div>
+
+<p>More details please see <a href="http://blog.gvsig.org/2011/07/25/hunting-api-incompatibilities-with-the-animal-sniffer-project/">here</a>.</p>
+
+<h2 id="single-component-compatibility-protection">Single component compatibility protection</h2>
+
+<p>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 integration process Clirr can automatically prevent accidental introduction of binary or source compatibility problems.</p>
+
+<p>How to use it\uff1fjust add some config snippets in your pom :</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">&lt;</span><span class="n">plugin</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">groupId</span><span class="o">&gt;</span><span class="n">org</span><span class="o">.</span><span class="na">codehaus</span><span class="o">.</span><span class="na">mojo</span><span class="o">&lt;/</span><span class="n">groupId</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">artifactId</span><span class="o">&gt;</span><span class="n">clirr</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="n">plugin</span><span class="o">&lt;/</span><span class="n">artifactId</span><span class="o">&gt;</span>
+ <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span><span class="mf">2.6</span><span class="o">.</span><span class="mi">1</span><span class="o">&lt;/</span><span class="n">version</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">plugin</span><span class="o">&gt;</span>
+</code></pre>
+</div>
+
+<p>then,run <code class="highlighter-rouge">mvn clirr:check</code>,output may be like this:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="o">---</span> <span class="n">clirr</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="nl">plugin:</span><span class="mf">2.6</span><span class="o">.</span><span class="mi">1</span><span class="o">:</span><span class="n">check</span> <span class="o">(</span><span class="k">default</span><span class="o">-</span><span class="n">cli</span><span class=&qu
ot;o">)</span> <span class="err">@</span> <span class="n">cmq</span><span class="o">.</span><span class="na">common</span> <span class="o">---</span>
+<span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="n">artifact</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">intl</span><span class="o">.</span><span class="na">base</span><span class="o">.</span><span class="na">cmq</span><span class="o">:</span><span class="n">cmq</span><span class="o">.</span><span class="na">common</span><span class="o">:</span> <span class="n">checking</span> <span class="k">for</span> <span class="n&qu
ot;>updates</span> <span class="n">from</span> <span class="n">b2bmirror</span><span class="o">-</span><span class="n">all</span>
+<span class="o">[</span><span class="n">INFO</span><span class="o">]</span> <span class="n">Comparing</span> <span class="n">to</span> <span class="nl">version:</span> <span class="mf">2.0</span><span class="o">.</span><span class="mi">1</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CompletionListener</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span
class="kt">void</span> <span class="nf">onCompletion</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o">)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class
="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CompletionListener</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span
class="kt">void</span> <span class="nf">onException</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o">,</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">Exception</span><span class="o">)</span><span class="err">'</span> <span class="
n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">MessageProducer</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span cla
ss="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CommonResult</span> <span class="nf">send</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o&quo
t;>)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+<span class="o">[</span><span class="n">ERROR</span><span class="o">]</span> <span class="mi">7005</span><span class="o">:</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">MessageProducer</span><span class="o">:</span> <span class="n">Parameter</span> <span class="mi">1</span> <span class="n">of</span> <span class="err">'</span><span class="kd">public</span> <span cla
ss="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CommonResult</span> <span class="nf">send</span><span class="o">(</span><span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">model</span><span class="o">.</span><span class="na">CommonMessage</span><span class="o&quo
t;>,</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.</span><span class="na">mq</span><span class="o">.</span><span class="na">client</span><span class="o">.</span><span class="na">CompletionListener</span><span class="o">)</span><span class="err">'</span> <span class="n">has</span> <span class="n">changed</span> <span class="n">its</span> <span class="n">type</span> <span class="n">to</span> <span class="n">com</span><span class="o">.</span><span class="na">alibaba</span><span class="o">.<
;/span><span class="na">mq</span><span class="o">.</span><span class="na">common</span><span class="o">.</span><span class="na">CommonMessage</span>
+</code></pre>
+</div>
+
+<p>Some inspiration in <strong>Dependency Mediator</strong> project just come from here.more topics about compatible,you can reference from series article <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">Evolving Java-based APIs</a></p>
+
+<h2 id="multi-component-compatibility-compile-time-checking">Multi-component compatibility compile time checking</h2>
+
+<p>Last but not least,Multi-component compatibility compile time checking.it\u2019s the time to formally recommend project <strong>Dependency Mediator</strong>.</p>
+
+<p>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),<strong>Dependency Mediator</strong> try to remedy component dependency conflicting problem before the runtime rather than using customized <a href="http://www.onjava.com/pub/a/onjava/2005/04/13/dependencies.html">classLoader</a> to agree with the coexistence of different version components,thus avoid some well-konwn errors,such as <strong>NoSuchMethodError</strong>,<strong>NoSuchFieldError</strong> and <strong>NoClassDefFoundError</strong> etc.</p>
+
+<p>What is the principle of <strong>Dependency Mediator</strong>\uff1f<strong>Dependency Mediator</strong> try to mediate various component conflicting problems.It uses jar or class as the smallest component unit,that is ComponentEntry:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">ComponentEntry</span> <span class="kd">implements</span> <span class="n">Comparable</span><span class="o">&lt;</span><span class="n">ComponentEntry</span><span class="o">&gt;</span> <span class="o">{</span>
+ <span class="cm">/**
+ * Similar file name
+ */</span>
+ <span class="kd">private</span> <span class="n">String</span> <span class="n">pathName</span><span class="o">;</span>
+ <span class="cm">/**
+ * Component name ,such as fully-qualified class name or jar name
+ */</span>
+ <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span>
+ <span class="cm">/**
+ * Name of the jar which contains this entry,this field may be null
+ */</span>
+ <span class="kd">private</span> <span class="n">String</span> <span class="n">jarName</span><span class="o">;</span>
+ <span class="cm">/**
+ * Jar entry meta info,if it is a jar file,this field may be null
+ */</span>
+ <span class="kd">private</span> <span class="n">JarEntry</span> <span class="n">entry</span><span class="o">;</span>
+ <span class="o">....</span>
+</code></pre>
+</div>
+
+<p>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 <strong>Build-Jdk</strong> and <strong>Built-By</strong> 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.</p>
+
+<p>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.</p>
+
+<p><strong>Dependency Mediator</strong> take advantage of <strong>nearest definition</strong> dependency mediation strategy. this determines what version of a dependency will be used when multiple versions of an artifact are encountered. <strong>nearest definition</strong>,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 project\u2019s POM. Note that if two dependency versions are at the same depth in the dependency tree, until Maven 2.0.8 it was not defined which one would win, but since Maven 2.0.9 it\u2019s the order in the declaration that counts: the first declaration wins.
+<strong>nearest definition</strong> 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 -&gt; B -&gt; C -&gt; D 2.0 and A -&gt; E -&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.</p>
+
+<p>If you consider the dependency hierarchy as a binary tree structure,Undoubtedly,<strong>nearest definition</strong> means the <strong>minimum depth</strong>. 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 :</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o">[</span><span class="n">WARNING</span><span class="o">]</span> <span class="n">Founded</span> <span class="n">conflicting</span> <span class="n">dependency</span> <span class="nl">component:</span><span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">thrift</span><span class="o">:</span><span class="nl">libthrift:</span><span class="n">jar</span> <span class="n">Resolved</span> <span class="n">version</span> <span class=&
quot;n">is</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">thrift</span><span class="o">:</span><span class="nl">libthrift:jar:</span><span class="mf">0.8</span><span class="o">.</span><span class="mi">0</span><span class="o">:</span><span class="n">compile</span> <span class="n">But</span> <span class="n">found</span> <span class="n">conflicting</span> <span class="n">artifact</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class=&q
uot;o">.</span><span class="na">thrift</span><span class="o">:</span><span class="nl">libthrift:</span><span class="mf">0.9</span><span class="o">.</span><span class="mi">1</span>
+</code></pre>
+</div>
+
+<p>In this case,you could fix this problem through place libthrift 0.9.1 before the library imported through transitive dependency.</p>
+
+<p>of course,all the establishment must meet a premise,that is:</p>
+<ul>
+ <li><strong>Functionality releases and major releases(such as 1.4.x, 1.5.x,2.x.x,3.x.x) have source compatibility problems.</strong></li>
+&l
<TRUNCATED>
[06/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/quick-start/index.html
----------------------------------------------------------------------
diff --git a/content/docs/quick-start/index.html b/content/docs/quick-start/index.html
new file mode 100644
index 0000000..d0263e9
--- /dev/null
+++ b/content/docs/quick-start/index.html
@@ -0,0 +1,613 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Quick Start - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="How to quickly install and setup Apache RocketMQ.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Quick Start">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/quick-start/">
+ <meta property="og:url" content="http://localhost:4000/docs/quick-start/">
+
+
+
+ <meta property="og:description" content="How to quickly install and setup Apache RocketMQ.">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Quick Start">
+ <meta name="twitter:description" content="How to quickly install and setup Apache RocketMQ.">
+ <meta name="twitter:url" content="http://localhost:4000/docs/quick-start/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="active">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="December 30, 2016">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Quick Start
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <p>This quick start guide is to give detailed instructions, helping you setup RocketMQ messaging system on a single local machine and send/receive the very first message.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#prerequisite" id="markdown-toc-prerequisite">Prerequisite</a></li>
+ <li><a href="#clone--build" id="markdown-toc-clone--build">Clone & Build</a></li>
+ <li><a href="#start-name-server" id="markdown-toc-start-name-server">Start Name Server</a></li>
+ <li><a href="#start-broker" id="markdown-toc-start-broker">Start Broker</a></li>
+ <li><a href="#send--receive-messages" id="markdown-toc-send--receive-messages">Send & Receive Messages</a></li>
+ <li><a href="#shutdown-servers" id="markdown-toc-shutdown-servers">Shutdown Servers</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h1 id="prerequisite">Prerequisite</h1>
+
+<p>The following softwares are assumed installed:</p>
+<ol>
+ <li>64bit OS, Linux/Unix/Mac is recommended;</li>
+ <li>64bit JDK 1.7+;</li>
+ <li>Maven 3.2.x</li>
+ <li>Git</li>
+</ol>
+
+<h1 id="clone--build">Clone & Build</h1>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> > git clone https://github.com/apache/incubator-rocketmq.git
+ > <span class="nb">cd </span>incubator-rocketmq
+ > mvn clean package install -Prelease-all assembly:assembly -U
+ > <span class="nb">cd </span>target/apache-rocketmq-all/
+</code></pre>
+</div>
+
+<h1 id="start-name-server">Start Name Server</h1>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> > nohup sh bin/mqnamesrv &
+ > tail -f ~/logs/rocketmqlogs/namesrv.log
+ The Name Server boot success...
+</code></pre>
+</div>
+
+<h1 id="start-broker">Start Broker</h1>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> > nohup sh bin/mqbroker -n localhost:9876 &
+ > tail -f ~/logs/rocketmqlogs/broker.log
+ The broker[%s, 172.30.30.233:10911] boot success...
+</code></pre>
+</div>
+<p>you may need to pay attention to the broker ip, for that the broker will not use the loopback network interface, So you should make sure you have connected to other network.</p>
+
+<h1 id="send--receive-messages">Send & Receive Messages</h1>
+
+<p>Before sending/receiving messages, we need to tell clients where name servers are located. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable <code class="highlighter-rouge">NAMESRV_ADDR</code></p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> > <span class="nb">export </span><span class="nv">NAMESRV_ADDR</span><span class="o">=</span>localhost:9876
+ > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
+ SendResult <span class="o">[</span><span class="nv">sendStatus</span><span class="o">=</span>SEND_OK, <span class="nv">msgId</span><span class="o">=</span> ...
+
+ > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
+ ConsumeMessageThread_%d Receive New Messages: <span class="o">[</span>MessageExt...
+</code></pre>
+</div>
+
+<h1 id="shutdown-servers">Shutdown Servers</h1>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code><span class="gp">> </span>sh bin/mqshutdown broker
+The mqbroker<span class="o">(</span>36695<span class="o">)</span> is running...
+Send shutdown request to mqbroker<span class="o">(</span>36695<span class="o">)</span> OK
+
+<span class="gp">> </span>sh bin/mqshutdown namesrv
+The mqnamesrv<span class="o">(</span>36664<span class="o">)</span> is running...
+Send shutdown request to mqnamesrv<span class="o">(</span>36664<span class="o">)</span> OK
+</code></pre>
+</div>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-30">December 30, 2016</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=Quick Start http://localhost:4000/docs/quick-start/" 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=http://localhost:4000/docs/quick-start/" 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=http://localhost:4000/docs/quick-start/" 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=http://localhost:4000/docs/quick-start/" 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="#" class="pagination--pager disabled">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/motivation/" class="pagination--pager" title="Motivation
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/release-manual.html
----------------------------------------------------------------------
diff --git a/content/docs/release-manual.html b/content/docs/release-manual.html
new file mode 100644
index 0000000..de3f817
--- /dev/null
+++ b/content/docs/release-manual.html
@@ -0,0 +1,895 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>Release Manual - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="Apache RocketMQ Release Manual">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="Release Manual">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/release-manual">
+ <meta property="og:url" content="http://localhost:4000/docs/release-manual">
+
+
+
+ <meta property="og:description" content="Apache RocketMQ Release Manual">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="Release Manual">
+ <meta name="twitter:description" content="Apache RocketMQ Release Manual">
+ <meta name="twitter:url" content="http://localhost:4000/docs/release-manual">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="active">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="February 08, 2017">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">Release Manual
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#preliminaries" id="markdown-toc-preliminaries">Preliminaries</a> <ul>
+ <li><a href="#apache-release-documentation" id="markdown-toc-apache-release-documentation">Apache Release Documentation</a></li>
+ <li><a href="#code-signing-key" id="markdown-toc-code-signing-key">Code Signing Key</a></li>
+ <li><a href="#prepare-your-maven-settings" id="markdown-toc-prepare-your-maven-settings">Prepare Your Maven Settings</a></li>
+ <li><a href="#cleanup-jira-issues" id="markdown-toc-cleanup-jira-issues">Cleanup JIRA issues</a></li>
+ <li><a href="#publish-the-release-notes" id="markdown-toc-publish-the-release-notes">Publish the Release Notes</a></li>
+ </ul>
+ </li>
+ <li><a href="#build-the-release-candidate" id="markdown-toc-build-the-release-candidate">Build the Release Candidate</a> <ul>
+ <li><a href="#build-the-candidate-release-artifacts" id="markdown-toc-build-the-candidate-release-artifacts">Build the Candidate Release Artifacts</a></li>
+ <li><a href="#validate-the-release-candidate" id="markdown-toc-validate-the-release-candidate">Validate the Release Candidate</a></li>
+ <li><a href="#release-artifacts-to-dev-repository" id="markdown-toc-release-artifacts-to-dev-repository">Release Artifacts to Dev-Repository</a></li>
+ </ul>
+ </li>
+ <li><a href="#vote-on-the-release" id="markdown-toc-vote-on-the-release">Vote on the Release</a> <ul>
+ <li><a href="#apache-rocketmq-community-vote" id="markdown-toc-apache-rocketmq-community-vote">Apache RocketMQ Community Vote</a></li>
+ <li><a href="#incubator-pmc-vote" id="markdown-toc-incubator-pmc-vote">Incubator PMC Vote</a></li>
+ </ul>
+ </li>
+ <li><a href="#publish-the-release" id="markdown-toc-publish-the-release">Publish the Release</a></li>
+ <li><a href="#announce-the-release" id="markdown-toc-announce-the-release">Announce the Release</a></li>
+ <li><a href="#references" id="markdown-toc-references">References</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<p>This is a guide to making a release of Apache RocketMQ (incubating). Please follow the steps below.</p>
+
+<h2 id="preliminaries">Preliminaries</h2>
+<h3 id="apache-release-documentation">Apache Release Documentation</h3>
+<p>There are some release documentations provided by The ASF, including the incubator release documentation, can be found here:</p>
+
+<ul>
+ <li><a href="http://www.apache.org/dev/release-publishing">Apache Release Guide</a></li>
+ <li><a href="http://www.apache.org/dev/release.html">Apache Release Policy</a></li>
+ <li><a href="http://incubator.apache.org/guides/releasemanagement.html">Apache Incubator Release Guidelines</a></li>
+ <li><a href="http://incubator.apache.org/incubation/Incubation_Policy.html#Releases">Apache Incubator Release Policy</a></li>
+ <li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html">Maven Release Info</a></li>
+</ul>
+
+<h3 id="code-signing-key">Code Signing Key</h3>
+<p>Create a code signing gpg key for release signing, use <strong><your Apache ID>@apache.org</strong> as your primary ID for the code signing key. See the <a href="https://www.apache.org/dev/release-signing">Apache Release Signing documentation</a> for more details.</p>
+
+<ul>
+ <li>Create new pgp key. How to use pgp please refer to <a href="http://www.apache.org/dev/openpgp.html">here</a>.</li>
+ <li>Generate a new key via <code class="highlighter-rouge">gpg --gen-key</code>, and answer 4096 bits with no expiration time.</li>
+ <li>Upload your key to a public key server, like <code class="highlighter-rouge">gpg --keyserver pgpkeys.mit.edu --send-key <your key id></code>.</li>
+ <li>Get the key signed by other committers(Optional).</li>
+ <li>Add the key to the RocketMQ <a href="https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS">KEYS file</a>.</li>
+</ul>
+
+<p><strong>Tips:</strong> If you have more than one key in your gpg, set the code signing key to <code class="highlighter-rouge">~/.gnupg/gpg.conf</code> as default key is recommended.</p>
+
+<h3 id="prepare-your-maven-settings">Prepare Your Maven Settings</h3>
+<p>Make sure that your Maven settings.xml file contains the following:</p>
+
+<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt"><settings></span>
+ <span class="nt"><profiles></span>
+ <span class="nt"><profile></span>
+ <span class="nt"><id></span>signed_release<span class="nt"></id></span>
+ <span class="nt"><properties></span>
+ <span class="nt"><mavenExecutorId></span>forked-path<span class="nt"></mavenExecutorId></span>
+ <span class="nt"><gpg.keyname></span>yourKeyName<span class="nt"></gpg.keyname></span>
+ <span class="nt"><username></span>yourApacheID<span class="nt"></username></span>
+ <span class="nt"><deploy.url></span>https://dist.apache.org/repos/dist/dev/incubator/rocketmq/<span class="nt"></deploy.url></span>
+ <span class="nt"></properties></span>
+ <span class="nt"></profile></span>
+ <span class="nt"></profiles></span>
+ <span class="nt"><servers></span>
+ <span class="c"><!-- To publish a snapshot of some part of Maven --></span>
+ <span class="nt"><server></span>
+ <span class="nt"><id></span>apache.snapshots.https<span class="nt"></id></span>
+ <span class="nt"><username></span>yourApacheID<span class="nt"></username></span>
+ <span class="nt"><password></span>yourApachePassword<span class="nt"></password></span>
+ <span class="nt"></server></span>
+ <span class="c"><!-- To stage a release of some part of Maven --></span>
+ <span class="nt"><server></span>
+ <span class="nt"><id></span>apache.releases.https<span class="nt"></id></span>
+ <span class="nt"><username></span>yourApacheID<span class="nt"></username></span>
+ <span class="nt"><password></span>yourApachePassword<span class="nt"></password></span>
+ <span class="nt"></server></span>
+ <span class="nt"><server></span>
+ <span class="nt"><id></span>gpg.passphrase<span class="nt"></id></span>
+ <span class="nt"><passphrase></span>yourKeyPassword<span class="nt"></passphrase></span>
+ <span class="nt"></server></span>
+ <span class="nt"></servers></span>
+<span class="nt"></settings></span>
+</code></pre>
+</div>
+
+<p><strong>Tips:</strong> It is highly recommended to use <a href="http://maven.apache.org/guides/mini/guide-encryption.html">Maven\u2019s password encryption capabilities</a> for your passwords.</p>
+
+<h3 id="cleanup-jira-issues">Cleanup JIRA issues</h3>
+<p>Cleanup JIRA issues related to this release version, and check all the issues has been marked with right version in the <code class="highlighter-rouge">FixVersion</code> field.</p>
+
+<h3 id="publish-the-release-notes">Publish the Release Notes</h3>
+<p>Generate the release notes via <a href="https://issues.apache.org/jira/browse/ROCKETMQ/">RocketMQ JIRA</a> and publish it to the <a href="https://github.com/apache/incubator-rocketmq-site">rocketmq-site</a>, there is a <a href="http://rocketmq.incubator.apache.org/release_notes/release-notes-4.0.0-incubating/">release notes</a> of <code class="highlighter-rouge">4.0.0-incubating</code> available for reference, include the link to the release notes in the voting emails.</p>
+
+<h2 id="build-the-release-candidate">Build the Release Candidate</h2>
+<p>Firstly, checkout a new branch from <code class="highlighter-rouge">master</code> with its name equal to the release version, like <code class="highlighter-rouge">release-4.0.0-incubating</code>.</p>
+
+<h3 id="build-the-candidate-release-artifacts">Build the Candidate Release Artifacts</h3>
+<p>Before building the release artifacts, do some verifications below:</p>
+
+<ul>
+ <li>Ensure that now your are in the candidate release branch.</li>
+ <li>Ensure that all the unit tests can pass via <code class="highlighter-rouge">mvn clean install</code>.</li>
+ <li>Ensure that all the integration tests can pass via <code class="highlighter-rouge">mvn clean test -Pit-test</code>.</li>
+</ul>
+
+<p>Perform the following to generate and stage the artifacts:</p>
+
+<ol>
+ <li><code class="highlighter-rouge">mvn clean release:clean</code></li>
+ <li><code class="highlighter-rouge">mvn release:prepare -Psigned_release -Darguments="-DskipTests"</code>, answer the right release version, SCM release tag, and the new development version.</li>
+ <li><code class="highlighter-rouge">mvn -Psigned_release release:perform -Darguments="-DskipTests"</code>, generate the artifacts and push them to the <a href="https://repository.apache.org/#stagingRepositories">Nexus repo</a>. If you would like to perform a dry run first (without pushing the artifacts to the repo), add the arg -DdryRun=true</li>
+</ol>
+
+<p>Now, the candidate release artifacts can be found in the <a href="https://repository.apache.org/#stagingRepositories">Nexus staging repo</a> and in the <code class="highlighter-rouge">target</code> folder of your local branch.</p>
+
+<p><strong>Tips:</strong> If you are performing a source-only release, please remove all artifacts from the staging repo except for the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select <code class="highlighter-rouge">Delete</code>.</p>
+
+<h3 id="validate-the-release-candidate">Validate the Release Candidate</h3>
+<p>Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following checklist:</p>
+
+<ul>
+ <li>Checksums and PGP signatures are valid.</li>
+ <li>Build is successful including unit and integration tests.</li>
+ <li>DISCLAIMER is correct, filenames include \u201cincubating\u201d.</li>
+ <li>LICENSE and NOTICE files are correct and dependency licenses are acceptable.</li>
+ <li>All source files have license headers where appropriate, RAT checks pass</li>
+ <li>Javadocs have been generated correctly and are accurate.</li>
+ <li>The provenance of all source files is clear (ASF or software grants).</li>
+</ul>
+
+<p>Please follow the steps below to verify the checksums and PGP signatures:</p>
+
+<ol>
+ <li>Download the release artifacts, PGP signature file, MD5/SHA hash files.</li>
+ <li>On unix platforms the following command can be executed:</li>
+</ol>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> <span class="k">for </span>file <span class="k">in</span> <span class="sb">`</span>find . -type f -iname <span class="s1">'*.asc'</span><span class="sb">`</span>
+ <span class="k">do
+ </span>gpg --verify <span class="k">${</span><span class="nv">file</span><span class="k">}</span>
+ <span class="k">done</span>
+</code></pre>
+</div>
+
+<p>or</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> gpg --verify rocketmq-all-%version-number%-incubating-source-release.zip.asc rocketmq-all-%version-number%-incubating-source-release.zip
+</code></pre>
+</div>
+<p>Check the output to ensure it contains only good signatures:</p>
+
+<div class="language-text highlighter-rouge"><pre class="highlight"><code> gpg: Good signature from ... gpg: Signature made ...
+</code></pre>
+</div>
+
+<ol>
+ <li>Compare MD5, SHA hash generated from the below command with the downloaded hash files.</li>
+</ol>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code> gpg --print-mds rocketmq-all-%version-number%-incubating-source-release.zip
+</code></pre>
+</div>
+
+<h3 id="release-artifacts-to-dev-repository">Release Artifacts to Dev-Repository</h3>
+<p>If the release candidate appears to pass the validation checklist, close the staging repository in Nexus by selecting the staging repository <code class="highlighter-rouge">orgapacherocketmq-XXX</code> and clicking on the <code class="highlighter-rouge">Close</code> icon.</p>
+
+<p>Nexus will now run through a series of checksum and signature validations.</p>
+
+<p>If the checks pass, Nexus will close the repository and give a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.</p>
+
+<p>If the checks do not pass, fix the issues, roll back and restart the release process.</p>
+
+<p>If everything is ok, use svn to copy the candidate release artifacts to RocketMQ repo: https://dist.apache.org/repos/dist/dev/incubator/rocketmq/${release version}.</p>
+
+<h2 id="vote-on-the-release">Vote on the Release</h2>
+
+<p>As per the Apache Incubator <a href="http://incubator.apache.org/incubation/Incubation_Policy.html#Releases">release guidelines</a>, all releases for incubating projects must go through a two-step voting process. First, release voting must successfully pass within the Apache RocketMQ community via the <strong>dev@rocketmq.incubator.apache.org</strong> mailing list. Then, release voting must successfully pass within the Apache Incubator PMC via the <strong>general@incubator.apache.org</strong> mailing list.</p>
+
+<p>General information regarding the Apache voting process can be found <a href="http://www.apache.org/foundation/voting.html">here</a>.</p>
+
+<h3 id="apache-rocketmq-community-vote">Apache RocketMQ Community Vote</h3>
+<p>To vote on a candidate release, send an email to the <a href="mailto:dev@rocketmq.apache.incubator.org">dev list</a> with subject <strong>[VOTE]: Release Apache RocketMQ <release version>(incubating) RC<RC Number></strong> and a body along the lines of:</p>
+
+<blockquote>
+ <p>Hello RocketMQ Community,</p>
+
+ <p>This is the vote for <release version> of Apache RocketMQ (incubating).</p>
+
+ <p><strong>The artifacts:</strong><br />
+https://dist.apache.org/repos/dist/dev/incubator/rocketmq/${release version}</p>
+
+ <p><strong>The staging repo:</strong><br />
+https://repository.apache.org/content/repositories/orgapacherocketmq-XXX/</p>
+
+ <p><strong>Git tag for the release:</strong><br />
+<link to the tag of GitHub repo></p>
+
+ <p><strong>Hash for the release tag:</strong><br />
+<Hash value of the release tag></p>
+
+ <p><strong>Release Notes:</strong><br />
+<insert link to the rocketmq release notes></p>
+
+ <p>The artifacts have been signed with Key : <ID of signing key>, which can be found in the keys file:<br />
+https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS</p>
+
+ <p>The vote will be open for at least 72 hours or until necessary number of votes are reached.</p>
+
+ <p>Please vote accordingly:</p>
+
+ <p>[ ] +1 approve <br />
+[ ] +0 no opinion <br />
+[ ] -1 disapprove with the reason</p>
+
+ <p>Thanks,<br />
+The Apache RocketMQ Team</p>
+</blockquote>
+
+<p>Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and pronouncing the release candidate a success. Please use the subject: <strong>[RESULT][VOTE]: Release Apache RocketMQ <release version>(incubating) RC<RC Number></strong> :</p>
+
+<blockquote>
+ <p>Hello RocketMQ Community,</p>
+
+ <p>The Apache RocketMQ <release version=""> vote is now closed and has passed with [number] binding +1s, [number] non-binding +1s and no 0 or -1:</release></p>
+
+ <p><strong>Binding votes +1s:</strong><br />
+User Name (Apache ID) <br />
+User Name (Apache ID) <br />
+User Name (Apache ID) <br />
+\u2026.</p>
+
+ <p><strong>Non-binding votes +1s:</strong><br />
+User Name (Apache ID)<br />
+\u2026.</p>
+
+ <p>A vote Apache RocketMQ <release version> will now be called on general@incubator.apache.org.</p>
+
+ <p>Thanks, <br />
+The Apache RocketMQ Team</p>
+</blockquote>
+
+<p>If we do not pass the VOTE, fix the related issues, roll back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: <strong>[RESTART][VOTE][#<Attempt Number>]: Release Apache RocketMQ <release version>(incubating) RC<RC Number></strong></p>
+
+<h3 id="incubator-pmc-vote">Incubator PMC Vote</h3>
+<p>Once the candidate release vote passes on dev@rocketmq, send an email to <a href="mailto:general@incubator.apache.org">IMPC</a> with subject <strong>[VOTE]: Release Apache RocketMQ <release version>(incubating) RC<RC Number></strong> and a body along the lines of:</p>
+
+<blockquote>
+ <p>Hello Incubator PMC,</p>
+
+ <p>The Apache RocketMQ community has voted and approved the proposal to release Apache RocketMQ <release version> (incubating). We now kindly request the IPMC review and vote on this incubator release.</p>
+
+ <p><strong>[VOTE] Thread:</strong><br />
+<link to the dev voting mail-archive></p>
+
+ <p><strong>[RESULT][VOTE] Thread:</strong><br />
+<link to the dev voting mail-archive></p>
+
+ <p><strong>The artifacts:</strong><br />
+https://dist.apache.org/repos/dist/dev/incubator/rocketmq/${release version}</p>
+
+ <p><strong>The staging repo:</strong><br />
+https://repository.apache.org/content/repositories/orgapacherocketmq-XXX/</p>
+
+ <p><strong>Git tag for the release:</strong><br />
+<link to the tag of GitHub repo></p>
+
+ <p><strong>Hash for the release tag:</strong><br />
+<Hash value of the release tag></p>
+
+ <p><strong>Release Notes:</strong><br />
+<insert link to the rocketmq release notes></p>
+
+ <p>The artifacts have been signed with Key : <ID of signing key>, which can be found in the keys file:<br />
+https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS</p>
+
+ <p>The vote will be open for at least 72 hours or until necessary number of votes are reached.</p>
+
+ <p>Please vote accordingly:</p>
+
+ <p>[ ] +1 approve <br />
+[ ] +0 no opinion <br />
+[ ] -1 disapprove with the reason</p>
+
+ <p>Thanks,<br />
+The Apache RocketMQ Team</p>
+</blockquote>
+
+<p>Also don\u2019t forget announce the vote result:</p>
+
+<blockquote>
+ <p>Hello Incubator PMC,</p>
+
+ <p>The Apache RocketMQ <release version=""> vote is now closed and has passed wit [number] binding +1s, [number] non-binding +1s and no 0 or -1:</release></p>
+
+ <p><strong>Binding votes +1s:</strong><br />
+User Name (Apache ID) <br />
+User Name (Apache ID) <br />
+User Name (Apache ID) <br />
+\u2026.</p>
+
+ <p><strong>Non-binding votes +1s:</strong><br />
+User Name (Apache ID) <br />
+\u2026.</p>
+
+ <p>The Apache RocketMQ (incubating) community will proceed with the release.</p>
+
+ <p>Thanks,<br />
+The Apache RocketMQ Team</p>
+</blockquote>
+
+<h2 id="publish-the-release">Publish the Release</h2>
+<p>Once the Apache RocketMQ PPMC and IPMC votes both pass, publish the release artifacts to the Nexus Maven repository and to the Apache release repository.</p>
+
+<ol>
+ <li>Publish the Maven Artifacts, release the Maven artifacts in Nexus by selecting the staging repository <strong>orgapacherocketmq-XXX</strong> and clicking on the <code class="highlighter-rouge">Release</code> icon.</li>
+ <li>Publish the Artifacts to the Apache Release Repository, use svn copy candidate release artifacts to https://dist.apache.org/repos/dist/release/incubator/rocketmq/${release version}</li>
+</ol>
+
+<h2 id="announce-the-release">Announce the Release</h2>
+<p>Send an email to <strong>announce@apache.org</strong>, <strong>general@incubator.apache.org</strong>, and <strong>dev@rocketmq.apache.incubator.org</strong> with the subject <strong>[ANNOUNCE] Release Apache RocketMQ <release version>(incubating)</strong> and a body along the lines of:</p>
+
+<blockquote>
+ <p>Hi all,</p>
+
+ <p>The Apache RocketMQ team would like to announce the release of Apache RocketMQ <release version> (incubating).</p>
+
+ <p>More details regarding Apache RocketMQ can be found at:<br />
+http://rocketmq.incubator.apache.org/</p>
+
+ <p>The release artifacts can be downloaded here:<br />
+https://dist.apache.org/repos/dist/release/incubator/rocketmq/${release version}</p>
+
+ <p>The release notes can be found here:<br />
+<insert link to the rocketmq release notes></p>
+
+ <p>Thanks,<br />
+The Apache RocketMQ Team</p>
+
+ <p>\u2014 DISCLAIMER Apache RocketMQ is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code,it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+</blockquote>
+
+<h2 id="references">References</h2>
+
+<p>[1]. http://pirk.incubator.apache.org/releasing<br />
+[2]. http://htrace.incubator.apache.org/building.html<br />
+[3]. http://slider.incubator.apache.org/developing/releasing.html<br />
+[4]. http://streams.incubator.apache.org/release-management.html</p>
+
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-02-08">February 08, 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 Manual http://localhost:4000/docs/release-manual" 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=http://localhost:4000/docs/release-manual" 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=http://localhost:4000/docs/release-manual" 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=http://localhost:4000/docs/release-manual" 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="http://localhost:4000/docs/faq/" class="pagination--pager" title="Frequently Asked Questions
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/branching-model" class="pagination--pager" title="Branching Model
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/docs/roadmap/index.html
----------------------------------------------------------------------
diff --git a/content/docs/roadmap/index.html b/content/docs/roadmap/index.html
new file mode 100644
index 0000000..471d11a
--- /dev/null
+++ b/content/docs/roadmap/index.html
@@ -0,0 +1,637 @@
+<!doctype html>
+<html lang="en" class="no-js">
+ <head>
+ <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>The RoadMap of Apache RocketMQ - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="4.1.0~4.3.0-incubating RoadMap:">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="The RoadMap of Apache RocketMQ">
+
+
+ <link rel="canonical" href="http://localhost:4000/docs/roadmap/">
+ <meta property="og:url" content="http://localhost:4000/docs/roadmap/">
+
+
+
+ <meta property="og:description" content="4.1.0~4.3.0-incubating RoadMap:">
+
+
+
+ <meta name="twitter:site" content="@ApacheRocketMQ">
+ <meta name="twitter:title" content="The RoadMap of Apache RocketMQ">
+ <meta name="twitter:description" content="4.1.0~4.3.0-incubating RoadMap:">
+ <meta name="twitter:url" content="http://localhost:4000/docs/roadmap/">
+
+
+ <meta name="twitter:card" content="summary">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta property="og:type" content="article">
+ <meta property="article:published_time" content="2017-03-16T11:42:05+08:00">
+
+
+
+
+
+
+
+
+ <script type="application/ld+json">
+ {
+ "@context" : "http://schema.org",
+ "@type" : "Person",
+ "name" : "Apache RocketMQ",
+ "url" : "http://localhost:4000",
+ "sameAs" : null
+ }
+ </script>
+
+
+
+ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+ <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li>
+
+
+ <li class="masthead__menu-item"><a href="http://localhost:4000/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">
+
+
+
+
+
+
+
+
+
+
+<nav class="nav__list">
+
+ <input id="ac-toc" name="accordion-toc" type="checkbox" />
+ <label for="ac-toc">Toggle Menu</label>
+ <ul class="nav__items">
+
+ <li>
+
+ <span class="nav__sub-title">User Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/quick-start/" class="">Quick Start</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/motivation/" class="">Motivation</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/core-concept/" class="">Core Concept</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Developer Guide</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/code-guidelines/" class="">Code Guidelines</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/branching-model" class="">Branching Model</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/pull-request/" class="">Best Practice in PR</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/release-manual" class="">Release Manual</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Best Practice</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-broker/" class="">Broker</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-producer/" class="">Producer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-consumer/" class="">Consumer</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/docs/best-practice-namesvr/" class="">NameServer</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+ <span class="nav__sub-title">Release Notes</span>
+
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/dowloading/releases/" class="">Download</a></li>
+
+
+
+
+
+
+
+ <li><a href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+
+ </ul>
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+
+
+
+ </li>
+
+ <li>
+
+
+
+
+ <a href="http://localhost:4000/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
+
+
+
+ </li>
+
+ </ul>
+</nav>
+
+
+ </div>
+
+
+ <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="March 16, 2017">
+ <meta itemprop="dateModified" content="March 08, 2017">
+
+ <div class="page__inner-wrap">
+
+ <header>
+ <h1 class="page__title" itemprop="headline">The RoadMap of Apache RocketMQ
+</h1>
+
+ </header>
+
+
+ <section class="page__content" itemprop="text">
+ <h2 id="410430-incubating-roadmap">4.1.0~4.3.0-incubating RoadMap:</h2>
+
+<h3 id="openmessaging">OpenMessaging</h3>
+<p>OpenMessaging is a redefinition of the application of the access message service programming API standard. It is only API, non wire-level protocol. OpenMessaging covers large data message processing, stream computing message processing, the traditional transaction model of message processing. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-17">JIRA</a></p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+ <li><a href="#410430-incubating-roadmap" id="markdown-toc-410430-incubating-roadmap">4.1.0~4.3.0-incubating RoadMap:</a> <ul>
+ <li><a href="#openmessaging" id="markdown-toc-openmessaging">OpenMessaging</a></li>
+ <li><a href="#message-filtering" id="markdown-toc-message-filtering">Message Filtering</a></li>
+ <li><a href="#batch-messaging" id="markdown-toc-batch-messaging">Batch Messaging</a></li>
+ <li><a href="#consistent-hash-allocate-strategychas" id="markdown-toc-consistent-hash-allocate-strategychas">Consistent Hash Allocate Strategy(CHAS)</a></li>
+ <li><a href="#global-order-messaging" id="markdown-toc-global-order-messaging">Global Order Messaging</a></li>
+ <li><a href="#distributed-transaction-messaging" id="markdown-toc-distributed-transaction-messaging">Distributed Transaction Messaging</a></li>
+ <li><a href="#non-redundant-message-delivery-mechanism" id="markdown-toc-non-redundant-message-delivery-mechanism">Non-Redundant Message Delivery Mechanism</a></li>
+ <li><a href="#intellective-ha-architecture" id="markdown-toc-intellective-ha-architecture">Intellective HA Architecture</a></li>
+ <li><a href="#docker-image" id="markdown-toc-docker-image">Docker Image</a></li>
+ <li><a href="#mqtt" id="markdown-toc-mqtt">MQTT</a></li>
+ </ul>
+ </li>
+ <li><a href="#440-incubating-roadmap" id="markdown-toc-440-incubating-roadmap">4.4.0-incubating+ RoadMap:</a></li>
+ <li><a href="#rocketmq-externals" id="markdown-toc-rocketmq-externals">RocketMQ Externals</a></li>
+</ul>
+
+ </nav>
+</aside>
+
+<h3 id="message-filtering">Message Filtering</h3>
+<p>So far, RocketMQ only support message filtering feature by <code class="highlighter-rouge">TAG</code>, but one message only can own one tag, this is too limited to meet complex business requirements.</p>
+
+<p>So, we want to define and implement a reasonable filter language based on a subset of the SQL 92 expression syntax to support customized message filtering. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-121">JIRA</a></p>
+
+<h3 id="batch-messaging">Batch Messaging</h3>
+
+<p>In order to use RocketMQ in big data related scenarios, batch messaging is necessary, which will bring million-level TPS for RocketMQ. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-80">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/53">PR</a></p>
+
+<h3 id="consistent-hash-allocate-strategychas">Consistent Hash Allocate Strategy(CHAS)</h3>
+
+<p>Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continually.</p>
+
+<p>A Consistent Hash allocate strategy is valuable for the developer who cares more about stabilization than averaging.</p>
+
+<p>So it\u2019s better for us to support CHAS as a extra choice in consumer load balancing. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-67">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/67">PR</a></p>
+
+<h3 id="global-order-messaging">Global Order Messaging</h3>
+
+<p>As we know, messages in the same queue can be consumed sequentially. So we always send the congeneric messages to the same queue to guarantee ordering, which will cause hot-point issue.</p>
+
+<p>So It\u2019s cool if we support a new global order messaging mechanism, without hot-points problem. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-122">JIRA</a></p>
+
+<h3 id="distributed-transaction-messaging">Distributed Transaction Messaging</h3>
+<p>Undoubtedly, transaction messaging is very frequently-used in most business.</p>
+
+<p>But it is unfortunate that users must implement transaction mechanism by themselves until now, may be they need DataBase to implement it.</p>
+
+<p>It\u2019s time to support distributed transaction messaging to make it convenient for the user, help them handle complex business with skill and ease. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-123">JIRA</a></p>
+
+<h3 id="non-redundant-message-delivery-mechanism">Non-Redundant Message Delivery Mechanism</h3>
+
+<p>The duplicated messages are worrisome. It will cost much if user need non-repeating messages.</p>
+
+<p>In most cases, user need store the consume records to judge a message is replicated or not, and the store stage should guarantee strong consistency. As you see, it\u2019s very complicated, so support a strict and non-redundant message delivery mechanism is impending. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-124">JIRA</a></p>
+
+<h3 id="intellective-ha-architecture">Intellective HA Architecture</h3>
+
+<p>RocketMQ uses master-slave as HA architecture, which has low latency and high throughput features, but this program need human intervention to recover from abnormal situations.</p>
+
+<p>So, we want to support a multi-replication high availability\uff0freliability mechanism, without human intervention. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-125">JIRA</a></p>
+
+<h3 id="docker-image">Docker Image</h3>
+<p>Provide a docker image for easy deployment and management, optimize for the latest version. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-126">JIRA</a></p>
+
+<h3 id="mqtt">MQTT</h3>
+<p>MQTT is a machine-to-machine (M2M)/\u201dInternet of Things\u201d connectivity protocol, which has been widely used in IoT. Support MQTT, give RocketMQ the power to connect everything. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-127">JIRA</a></p>
+
+<h2 id="440-incubating-roadmap">4.4.0-incubating+ RoadMap:</h2>
+
+<ol>
+ <li>Support more application layer protocol: WebSocket, HTTP2, etc.</li>
+ <li>Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are the result of surveying many cloud platforms.</li>
+ <li>Support advanced message queuing protocol(AMQP).</li>
+</ol>
+
+<h2 id="rocketmq-externals">RocketMQ Externals</h2>
+
+<p>RocketMQ, as a message-oriented middleware, plays a connector role in distributed environment, so in order to embrace the ecological preferably, RocketMQ community needs a series of external projects to integrate with other excellent projects.</p>
+
+<ol>
+ <li>rocketmq-console, provide a ops dashboard for RocketMQ. <a href="https://github.com/rocketmq/rocketmq-console-ng">REPO</a></li>
+ <li>rocketmq-jms, provide a new client to support JMS 2.0. <a href="https://github.com/rocketmq/rocketmq-jms">REPO</a></li>
+ <li>rocketmq-flume-ng, integrate RocketMQ with Apache Flume.<a href="https://github.com/rocketmq/rocketmq-flume-ng">REPO</a>, <a href="https://issues.apache.org/jira/browse/FLUME-3058">FLUME-JIRA</a></li>
+ <li>rocketmq-storm, integrate RocketMQ with storm. <a href="https://github.com/rocketmq/rocketmq-storm">REPO</a></li>
+ <li>rocketmq-ignite, integrate RocketMQ with ignite. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-41">JIRA</a>, <a href="https://issues.apache.org/jira/browse/IGNITE-4539">IGNITE-JIRA</a></li>
+ <li>rocketmq-spark, integrate RocketMQ with spark. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-81">JIRA</a></li>
+ <li>rocketmq-flink, integrate RocketMQ with flink. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-82">JIRA</a></li>
+ <li>rocketmq-distributedlog integrate RocketMQ with distributedlog. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-21">JIRA</a></li>
+ <li>rocketmq-spring, provide a adapter for spring and spring-boot. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-120">JIRA</a></li>
+</ol>
+
+
+ </section>
+
+ <footer class="page__meta">
+
+
+
+
+
+ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-03-08">March 08, 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=The RoadMap of Apache RocketMQ http://localhost:4000/docs/roadmap/" 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=http://localhost:4000/docs/roadmap/" 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=http://localhost:4000/docs/roadmap/" 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=http://localhost:4000/docs/roadmap/" 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="http://localhost:4000/dowloading/releases/" class="pagination--pager" title="Downloading the Apache RocketMQ Releases
+">Previous</a>
+
+
+ <a href="http://localhost:4000/docs/best-practice-broker/" class="pagination--pager" title="Best Practice For Broker
+">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/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+
+
+ <li><a href="http://localhost:4000/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 © 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="http://localhost:4000/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>
[14/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/css/main.css
----------------------------------------------------------------------
diff --git a/content/assets/css/main.css b/content/assets/css/main.css
new file mode 100644
index 0000000..1461afc
--- /dev/null
+++ b/content/assets/css/main.css
@@ -0,0 +1,4 @@
+/*!
+ * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.6.3");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;wi
dth:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate
(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{pos
ition:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\uf000"}.fa-music:before{content:"\uf001"}.fa-search:before{content:"\uf002"}.fa-envelope-o:before{content:"\uf003"}.fa-heart:before{content:"\uf004"}.fa-star:before{content:"\uf005"}.fa-star-o:before{content:"\uf006"}.fa-user:before{content:"\uf007"}.fa-film:before{content:"\uf008"}.fa-th-large:before{content:"\uf009"}.fa-th:before{content:"\uf00a"}.fa-th-list:before{content:"\uf00b"}.fa-check:before{content:"\uf00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\uf00d"}.fa-search-plus:before{content:"\uf00e"}.fa-search-minus:before{content:"\uf010"}.fa-power-off:before{content:"\uf011"}.fa-signal:before{content:"\uf012"}.fa-gear:before,.fa-cog:before{content:"\uf013"}.fa-trash-o:before{content:"\uf014"}.fa-home:before{content:"\uf015"}.fa-file-o:before{content:"\uf016"}.fa-clock-o:before{content:"\uf017"}.fa-road:before{content:"\uf018"}.fa-download:before{content:"\uf019"}.fa-arrow
-circle-o-down:before{content:"\uf01a"}.fa-arrow-circle-o-up:before{content:"\uf01b"}.fa-inbox:before{content:"\uf01c"}.fa-play-circle-o:before{content:"\uf01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\uf01e"}.fa-refresh:before{content:"\uf021"}.fa-list-alt:before{content:"\uf022"}.fa-lock:before{content:"\uf023"}.fa-flag:before{content:"\uf024"}.fa-headphones:before{content:"\uf025"}.fa-volume-off:before{content:"\uf026"}.fa-volume-down:before{content:"\uf027"}.fa-volume-up:before{content:"\uf028"}.fa-qrcode:before{content:"\uf029"}.fa-barcode:before{content:"\uf02a"}.fa-tag:before{content:"\uf02b"}.fa-tags:before{content:"\uf02c"}.fa-book:before{content:"\uf02d"}.fa-bookmark:before{content:"\uf02e"}.fa-print:before{content:"\uf02f"}.fa-camera:before{content:"\uf030"}.fa-font:before{content:"\uf031"}.fa-bold:before{content:"\uf032"}.fa-italic:before{content:"\uf033"}.fa-text-height:before{content:"\uf034"}.fa-text-width:before{content:"\uf035"}.fa-align-left:before{content:"\uf036"}.fa-align-center:before{content:"\uf037"}.fa-align-right:before{content:
"\uf038"}.fa-align-justify:before{content:"\uf039"}.fa-list:before{content:"\uf03a"}.fa-dedent:before,.fa-outdent:before{content:"\uf03b"}.fa-indent:before{content:"\uf03c"}.fa-video-camera:before{content:"\uf03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\uf03e"}.fa-pencil:before{content:"\uf040"}.fa-map-marker:before{content:"\uf041"}.fa-adjust:before{content:"\uf042"}.fa-tint:before{content:"\uf043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\uf044"}.fa-share-square-o:before{content:"\uf045"}.fa-check-square-o:before{content:"\uf046"}.fa-arrows:before{content:"\uf047"}.fa-step-backward:before{content:"\uf048"}.fa-fast-backward:before{content:"\uf049"}.fa-backward:before{content:"\uf04a"}.fa-play:before{content:"\uf04b"}.fa-pause:before{content:"\uf04c"}.fa-stop:before{content:"\uf04d"}.fa-forward:before{content:"\uf04e"}.fa-fast-forward:before{content:"\uf050"}.fa-step-forward:before{content:"\uf051"}.fa-eject:before{content:"\uf052"}.fa-chevron-left:before{content:"\uf053"}.fa-chevron-right:before{content:"\uf054"}.fa-plus-circ
le:before{content:"\uf055"}.fa-minus-circle:before{content:"\uf056"}.fa-times-circle:before{content:"\uf057"}.fa-check-circle:before{content:"\uf058"}.fa-question-circle:before{content:"\uf059"}.fa-info-circle:before{content:"\uf05a"}.fa-crosshairs:before{content:"\uf05b"}.fa-times-circle-o:before{content:"\uf05c"}.fa-check-circle-o:before{content:"\uf05d"}.fa-ban:before{content:"\uf05e"}.fa-arrow-left:before{content:"\uf060"}.fa-arrow-right:before{content:"\uf061"}.fa-arrow-up:before{content:"\uf062"}.fa-arrow-down:before{content:"\uf063"}.fa-mail-forward:before,.fa-share:before{content:"\uf064"}.fa-expand:before{content:"\uf065"}.fa-compress:before{content:"\uf066"}.fa-plus:before{content:"\uf067"}.fa-minus:before{content:"\uf068"}.fa-asterisk:before{content:"\uf069"}.fa-exclamation-circle:before{content:"\uf06a"}.fa-gift:before{content:"\uf06b"}.fa-leaf:before{content:"\uf06c"}.fa-fire:before{content:"\uf06d"}.fa-eye:before{content:"\uf06e"}.fa-eye-slash:before{content:"\uf070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\uf071"}.fa-plane:befo
re{content:"\uf072"}.fa-calendar:before{content:"\uf073"}.fa-random:before{content:"\uf074"}.fa-comment:before{content:"\uf075"}.fa-magnet:before{content:"\uf076"}.fa-chevron-up:before{content:"\uf077"}.fa-chevron-down:before{content:"\uf078"}.fa-retweet:before{content:"\uf079"}.fa-shopping-cart:before{content:"\uf07a"}.fa-folder:before{content:"\uf07b"}.fa-folder-open:before{content:"\uf07c"}.fa-arrows-v:before{content:"\uf07d"}.fa-arrows-h:before{content:"\uf07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\uf080"}.fa-twitter-square:before{content:"\uf081"}.fa-facebook-square:before{content:"\uf082"}.fa-camera-retro:before{content:"\uf083"}.fa-key:before{content:"\uf084"}.fa-gears:before,.fa-cogs:before{content:"\uf085"}.fa-comments:before{content:"\uf086"}.fa-thumbs-o-up:before{content:"\uf087"}.fa-thumbs-o-down:before{content:"\uf088"}.fa-star-half:before{content:"\uf089"}.fa-heart-o:before{content:"\uf08a"}.fa-sign-out:before{content:"\uf08b"}.fa-linkedin-square:before{content:"\uf08c"}.fa-thumb-tack:before{content:"\uf08d"}.fa-external-link:before
{content:"\uf08e"}.fa-sign-in:before{content:"\uf090"}.fa-trophy:before{content:"\uf091"}.fa-github-square:before{content:"\uf092"}.fa-upload:before{content:"\uf093"}.fa-lemon-o:before{content:"\uf094"}.fa-phone:before{content:"\uf095"}.fa-square-o:before{content:"\uf096"}.fa-bookmark-o:before{content:"\uf097"}.fa-phone-square:before{content:"\uf098"}.fa-twitter:before{content:"\uf099"}.fa-facebook-f:before,.fa-facebook:before{content:"\uf09a"}.fa-github:before{content:"\uf09b"}.fa-unlock:before{content:"\uf09c"}.fa-credit-card:before{content:"\uf09d"}.fa-feed:before,.fa-rss:before{content:"\uf09e"}.fa-hdd-o:before{content:"\uf0a0"}.fa-bullhorn:before{content:"\uf0a1"}.fa-bell:before{content:"\uf0f3"}.fa-certificate:before{content:"\uf0a3"}.fa-hand-o-right:before{content:"\uf0a4"}.fa-hand-o-left:before{content:"\uf0a5"}.fa-hand-o-up:before{content:"\uf0a6"}.fa-hand-o-down:before{content:"\uf0a7"}.fa-arrow-circle-left:before{content:"\uf0a8"}.fa-arrow-circle-right:before{content:"\uf0a9"}.fa-arrow-circle-up:before{content:"\uf0aa"}.fa-arrow-circle-down:before{con
tent:"\uf0ab"}.fa-globe:before{content:"\uf0ac"}.fa-wrench:before{content:"\uf0ad"}.fa-tasks:before{content:"\uf0ae"}.fa-filter:before{content:"\uf0b0"}.fa-briefcase:before{content:"\uf0b1"}.fa-arrows-alt:before{content:"\uf0b2"}.fa-group:before,.fa-users:before{content:"\uf0c0"}.fa-chain:before,.fa-link:before{content:"\uf0c1"}.fa-cloud:before{content:"\uf0c2"}.fa-flask:before{content:"\uf0c3"}.fa-cut:before,.fa-scissors:before{content:"\uf0c4"}.fa-copy:before,.fa-files-o:before{content:"\uf0c5"}.fa-paperclip:before{content:"\uf0c6"}.fa-save:before,.fa-floppy-o:before{content:"\uf0c7"}.fa-square:before{content:"\uf0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\uf0c9"}.fa-list-ul:before{content:"\uf0ca"}.fa-list-ol:before{content:"\uf0cb"}.fa-strikethrough:before{content:"\uf0cc"}.fa-underline:before{content:"\uf0cd"}.fa-table:before{content:"\uf0ce"}.fa-magic:before{content:"\uf0d0"}.fa-truck:before{content:"\uf0d1"}.fa-pinterest:before{content:"\uf0d2"}.fa-pinterest-square:before{content:"\uf0d3"}.fa-google-plus-square:before{content:"
\uf0d4"}.fa-google-plus:before{content:"\uf0d5"}.fa-money:before{content:"\uf0d6"}.fa-caret-down:before{content:"\uf0d7"}.fa-caret-up:before{content:"\uf0d8"}.fa-caret-left:before{content:"\uf0d9"}.fa-caret-right:before{content:"\uf0da"}.fa-columns:before{content:"\uf0db"}.fa-unsorted:before,.fa-sort:before{content:"\uf0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\uf0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\uf0de"}.fa-envelope:before{content:"\uf0e0"}.fa-linkedin:before{content:"\uf0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\uf0e2"}.fa-legal:before,.fa-gavel:before{content:"\uf0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\uf0e4"}.fa-comment-o:before{content:"\uf0e5"}.fa-comments-o:before{content:"\uf0e6"}.fa-flash:before,.fa-bolt:before{content:"\uf0e7"}.fa-sitemap:before{content:"\uf0e8"}.fa-umbrella:before{content:"\uf0e9"}.fa-paste:before,.fa-clipboard:before{content:"\uf0ea"}.fa-lightbulb-o:before{content:"\uf0eb"}.fa-exchange:before{content:"\uf0ec"}.fa-cloud-download:before{content:"\uf0ed"}.fa-cloud-uploa
d:before{content:"\uf0ee"}.fa-user-md:before{content:"\uf0f0"}.fa-stethoscope:before{content:"\uf0f1"}.fa-suitcase:before{content:"\uf0f2"}.fa-bell-o:before{content:"\uf0a2"}.fa-coffee:before{content:"\uf0f4"}.fa-cutlery:before{content:"\uf0f5"}.fa-file-text-o:before{content:"\uf0f6"}.fa-building-o:before{content:"\uf0f7"}.fa-hospital-o:before{content:"\uf0f8"}.fa-ambulance:before{content:"\uf0f9"}.fa-medkit:before{content:"\uf0fa"}.fa-fighter-jet:before{content:"\uf0fb"}.fa-beer:before{content:"\uf0fc"}.fa-h-square:before{content:"\uf0fd"}.fa-plus-square:before{content:"\uf0fe"}.fa-angle-double-left:before{content:"\uf100"}.fa-angle-double-right:before{content:"\uf101"}.fa-angle-double-up:before{content:"\uf102"}.fa-angle-double-down:before{content:"\uf103"}.fa-angle-left:before{content:"\uf104"}.fa-angle-right:before{content:"\uf105"}.fa-angle-up:before{content:"\uf106"}.fa-angle-down:before{content:"\uf107"}.fa-desktop:before{content:"\uf108"}.fa-laptop:before{content:"\uf109"}.fa-tablet:before{content:"\uf10a"}.fa-mobile-phone:before,.fa-mobile:before{conten
t:"\uf10b"}.fa-circle-o:before{content:"\uf10c"}.fa-quote-left:before{content:"\uf10d"}.fa-quote-right:before{content:"\uf10e"}.fa-spinner:before{content:"\uf110"}.fa-circle:before{content:"\uf111"}.fa-mail-reply:before,.fa-reply:before{content:"\uf112"}.fa-github-alt:before{content:"\uf113"}.fa-folder-o:before{content:"\uf114"}.fa-folder-open-o:before{content:"\uf115"}.fa-smile-o:before{content:"\uf118"}.fa-frown-o:before{content:"\uf119"}.fa-meh-o:before{content:"\uf11a"}.fa-gamepad:before{content:"\uf11b"}.fa-keyboard-o:before{content:"\uf11c"}.fa-flag-o:before{content:"\uf11d"}.fa-flag-checkered:before{content:"\uf11e"}.fa-terminal:before{content:"\uf120"}.fa-code:before{content:"\uf121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\uf122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\uf123"}.fa-location-arrow:before{content:"\uf124"}.fa-crop:before{content:"\uf125"}.fa-code-fork:before{content:"\uf126"}.fa-unlink:before,.fa-chain-broken:before{content:"\uf127"}.fa-question:before{content:"\uf128"}.fa-inf
o:before{content:"\uf129"}.fa-exclamation:before{content:"\uf12a"}.fa-superscript:before{content:"\uf12b"}.fa-subscript:before{content:"\uf12c"}.fa-eraser:before{content:"\uf12d"}.fa-puzzle-piece:before{content:"\uf12e"}.fa-microphone:before{content:"\uf130"}.fa-microphone-slash:before{content:"\uf131"}.fa-shield:before{content:"\uf132"}.fa-calendar-o:before{content:"\uf133"}.fa-fire-extinguisher:before{content:"\uf134"}.fa-rocket:before{content:"\uf135"}.fa-maxcdn:before{content:"\uf136"}.fa-chevron-circle-left:before{content:"\uf137"}.fa-chevron-circle-right:before{content:"\uf138"}.fa-chevron-circle-up:before{content:"\uf139"}.fa-chevron-circle-down:before{content:"\uf13a"}.fa-html5:before{content:"\uf13b"}.fa-css3:before{content:"\uf13c"}.fa-anchor:before{content:"\uf13d"}.fa-unlock-alt:before{content:"\uf13e"}.fa-bullseye:before{content:"\uf140"}.fa-ellipsis-h:before{content:"\uf141"}.fa-ellipsis-v:before{content:"\uf142"}.fa-rss-square:before{content:"\uf143"}.fa-play-circle:before{content:"\uf144"}.fa-ticket:before{content:"\uf145"}.fa-minus-square:before
{content:"\uf146"}.fa-minus-square-o:before{content:"\uf147"}.fa-level-up:before{content:"\uf148"}.fa-level-down:before{content:"\uf149"}.fa-check-square:before{content:"\uf14a"}.fa-pencil-square:before{content:"\uf14b"}.fa-external-link-square:before{content:"\uf14c"}.fa-share-square:before{content:"\uf14d"}.fa-compass:before{content:"\uf14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\uf150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\uf151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\uf152"}.fa-euro:before,.fa-eur:before{content:"\uf153"}.fa-gbp:before{content:"\uf154"}.fa-dollar:before,.fa-usd:before{content:"\uf155"}.fa-rupee:before,.fa-inr:before{content:"\uf156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\uf157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\uf158"}.fa-won:before,.fa-krw:before{content:"\uf159"}.fa-bitcoin:before,.fa-btc:before{content:"\uf15a"}.fa-file:before{content:"\uf15b"}.fa-file-text:before{content:"\uf15c"}.fa-sort-alpha
-asc:before{content:"\uf15d"}.fa-sort-alpha-desc:before{content:"\uf15e"}.fa-sort-amount-asc:before{content:"\uf160"}.fa-sort-amount-desc:before{content:"\uf161"}.fa-sort-numeric-asc:before{content:"\uf162"}.fa-sort-numeric-desc:before{content:"\uf163"}.fa-thumbs-up:before{content:"\uf164"}.fa-thumbs-down:before{content:"\uf165"}.fa-youtube-square:before{content:"\uf166"}.fa-youtube:before{content:"\uf167"}.fa-xing:before{content:"\uf168"}.fa-xing-square:before{content:"\uf169"}.fa-youtube-play:before{content:"\uf16a"}.fa-dropbox:before{content:"\uf16b"}.fa-stack-overflow:before{content:"\uf16c"}.fa-instagram:before{content:"\uf16d"}.fa-flickr:before{content:"\uf16e"}.fa-adn:before{content:"\uf170"}.fa-bitbucket:before{content:"\uf171"}.fa-bitbucket-square:before{content:"\uf172"}.fa-tumblr:before{content:"\uf173"}.fa-tumblr-square:before{content:"\uf174"}.fa-long-arrow-down:before{content:"\uf175"}.fa-long-arrow-up:before{content:"\uf176"}.fa-long-arrow-left:before{content:"\uf177"}.fa-long-arrow-right:before{content:"\uf178"}.fa-apple:before{content:"\uf179"}.
fa-windows:before{content:"\uf17a"}.fa-android:before{content:"\uf17b"}.fa-linux:before{content:"\uf17c"}.fa-dribbble:before{content:"\uf17d"}.fa-skype:before{content:"\uf17e"}.fa-foursquare:before{content:"\uf180"}.fa-trello:before{content:"\uf181"}.fa-female:before{content:"\uf182"}.fa-male:before{content:"\uf183"}.fa-gittip:before,.fa-gratipay:before{content:"\uf184"}.fa-sun-o:before{content:"\uf185"}.fa-moon-o:before{content:"\uf186"}.fa-archive:before{content:"\uf187"}.fa-bug:before{content:"\uf188"}.fa-vk:before{content:"\uf189"}.fa-weibo:before{content:"\uf18a"}.fa-renren:before{content:"\uf18b"}.fa-pagelines:before{content:"\uf18c"}.fa-stack-exchange:before{content:"\uf18d"}.fa-arrow-circle-o-right:before{content:"\uf18e"}.fa-arrow-circle-o-left:before{content:"\uf190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\uf191"}.fa-dot-circle-o:before{content:"\uf192"}.fa-wheelchair:before{content:"\uf193"}.fa-vimeo-square:before{content:"\uf194"}.fa-turkish-lira:before,.fa-try:before{content:"\uf195"}.fa-plus-square-o:before{content:"\uf196"}
.fa-space-shuttle:before{content:"\uf197"}.fa-slack:before{content:"\uf198"}.fa-envelope-square:before{content:"\uf199"}.fa-wordpress:before{content:"\uf19a"}.fa-openid:before{content:"\uf19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\uf19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\uf19d"}.fa-yahoo:before{content:"\uf19e"}.fa-google:before{content:"\uf1a0"}.fa-reddit:before{content:"\uf1a1"}.fa-reddit-square:before{content:"\uf1a2"}.fa-stumbleupon-circle:before{content:"\uf1a3"}.fa-stumbleupon:before{content:"\uf1a4"}.fa-delicious:before{content:"\uf1a5"}.fa-digg:before{content:"\uf1a6"}.fa-pied-piper-pp:before{content:"\uf1a7"}.fa-pied-piper-alt:before{content:"\uf1a8"}.fa-drupal:before{content:"\uf1a9"}.fa-joomla:before{content:"\uf1aa"}.fa-language:before{content:"\uf1ab"}.fa-fax:before{content:"\uf1ac"}.fa-building:before{content:"\uf1ad"}.fa-child:before{content:"\uf1ae"}.fa-paw:before{content:"\uf1b0"}.fa-spoon:before{content:"\uf1b1"}.fa-cube:before{content:"\uf1b2"}.fa-cubes:before{content:"\uf1b3"}.fa-beha
nce:before{content:"\uf1b4"}.fa-behance-square:before{content:"\uf1b5"}.fa-steam:before{content:"\uf1b6"}.fa-steam-square:before{content:"\uf1b7"}.fa-recycle:before{content:"\uf1b8"}.fa-automobile:before,.fa-car:before{content:"\uf1b9"}.fa-cab:before,.fa-taxi:before{content:"\uf1ba"}.fa-tree:before{content:"\uf1bb"}.fa-spotify:before{content:"\uf1bc"}.fa-deviantart:before{content:"\uf1bd"}.fa-soundcloud:before{content:"\uf1be"}.fa-database:before{content:"\uf1c0"}.fa-file-pdf-o:before{content:"\uf1c1"}.fa-file-word-o:before{content:"\uf1c2"}.fa-file-excel-o:before{content:"\uf1c3"}.fa-file-powerpoint-o:before{content:"\uf1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\uf1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\uf1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\uf1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\uf1c8"}.fa-file-code-o:before{content:"\uf1c9"}.fa-vine:before{content:"\uf1ca"}.fa-codepen:before{content:"\uf1cb"}.fa-jsfiddle:before{content:"\uf1cc"}.fa
-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\uf1cd"}.fa-circle-o-notch:before{content:"\uf1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\uf1d0"}.fa-ge:before,.fa-empire:before{content:"\uf1d1"}.fa-git-square:before{content:"\uf1d2"}.fa-git:before{content:"\uf1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\uf1d4"}.fa-tencent-weibo:before{content:"\uf1d5"}.fa-qq:before{content:"\uf1d6"}.fa-wechat:before,.fa-weixin:before{content:"\uf1d7"}.fa-send:before,.fa-paper-plane:before{content:"\uf1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\uf1d9"}.fa-history:before{content:"\uf1da"}.fa-circle-thin:before{content:"\uf1db"}.fa-header:before{content:"\uf1dc"}.fa-paragraph:before{content:"\uf1dd"}.fa-sliders:before{content:"\uf1de"}.fa-share-alt:before{content:"\uf1e0"}.fa-share-alt-square:before{content:"\uf1e1"}.fa-bomb:before{content:"\uf1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\uf1e3"}.fa-tty:befo
re{content:"\uf1e4"}.fa-binoculars:before{content:"\uf1e5"}.fa-plug:before{content:"\uf1e6"}.fa-slideshare:before{content:"\uf1e7"}.fa-twitch:before{content:"\uf1e8"}.fa-yelp:before{content:"\uf1e9"}.fa-newspaper-o:before{content:"\uf1ea"}.fa-wifi:before{content:"\uf1eb"}.fa-calculator:before{content:"\uf1ec"}.fa-paypal:before{content:"\uf1ed"}.fa-google-wallet:before{content:"\uf1ee"}.fa-cc-visa:before{content:"\uf1f0"}.fa-cc-mastercard:before{content:"\uf1f1"}.fa-cc-discover:before{content:"\uf1f2"}.fa-cc-amex:before{content:"\uf1f3"}.fa-cc-paypal:before{content:"\uf1f4"}.fa-cc-stripe:before{content:"\uf1f5"}.fa-bell-slash:before{content:"\uf1f6"}.fa-bell-slash-o:before{content:"\uf1f7"}.fa-trash:before{content:"\uf1f8"}.fa-copyright:before{content:"\uf1f9"}.fa-at:before{content:"\uf1fa"}.fa-eyedropper:before{content:"\uf1fb"}.fa-paint-brush:before{content:"\uf1fc"}.fa-birthday-cake:before{content:"\uf1fd"}.fa-area-chart:before{content:"\uf1fe"}.fa-pie-chart:before{content:"\uf200"}.fa-line-chart:before{content:"\uf201"}.fa-lastfm:before{content:"\uf202"}.fa-lastfm-
square:before{content:"\uf203"}.fa-toggle-off:before{content:"\uf204"}.fa-toggle-on:before{content:"\uf205"}.fa-bicycle:before{content:"\uf206"}.fa-bus:before{content:"\uf207"}.fa-ioxhost:before{content:"\uf208"}.fa-angellist:before{content:"\uf209"}.fa-cc:before{content:"\uf20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\uf20b"}.fa-meanpath:before{content:"\uf20c"}.fa-buysellads:before{content:"\uf20d"}.fa-connectdevelop:before{content:"\uf20e"}.fa-dashcube:before{content:"\uf210"}.fa-forumbee:before{content:"\uf211"}.fa-leanpub:before{content:"\uf212"}.fa-sellsy:before{content:"\uf213"}.fa-shirtsinbulk:before{content:"\uf214"}.fa-simplybuilt:before{content:"\uf215"}.fa-skyatlas:before{content:"\uf216"}.fa-cart-plus:before{content:"\uf217"}.fa-cart-arrow-down:before{content:"\uf218"}.fa-diamond:before{content:"\uf219"}.fa-ship:before{content:"\uf21a"}.fa-user-secret:before{content:"\uf21b"}.fa-motorcycle:before{content:"\uf21c"}.fa-street-view:before{content:"\uf21d"}.fa-heartbeat:before{content:"\uf21e"}.fa-venus:before{content:"\uf221"}.fa-mars
:before{content:"\uf222"}.fa-mercury:before{content:"\uf223"}.fa-intersex:before,.fa-transgender:before{content:"\uf224"}.fa-transgender-alt:before{content:"\uf225"}.fa-venus-double:before{content:"\uf226"}.fa-mars-double:before{content:"\uf227"}.fa-venus-mars:before{content:"\uf228"}.fa-mars-stroke:before{content:"\uf229"}.fa-mars-stroke-v:before{content:"\uf22a"}.fa-mars-stroke-h:before{content:"\uf22b"}.fa-neuter:before{content:"\uf22c"}.fa-genderless:before{content:"\uf22d"}.fa-facebook-official:before{content:"\uf230"}.fa-pinterest-p:before{content:"\uf231"}.fa-whatsapp:before{content:"\uf232"}.fa-server:before{content:"\uf233"}.fa-user-plus:before{content:"\uf234"}.fa-user-times:before{content:"\uf235"}.fa-hotel:before,.fa-bed:before{content:"\uf236"}.fa-viacoin:before{content:"\uf237"}.fa-train:before{content:"\uf238"}.fa-subway:before{content:"\uf239"}.fa-medium:before{content:"\uf23a"}.fa-yc:before,.fa-y-combinator:before{content:"\uf23b"}.fa-optin-monster:before{content:"\uf23c"}.fa-opencart:before{content:"\uf23d"}.fa-expeditedssl:before{content:"
"}.fa-battery-4:before,.fa-battery-full:before{content:"\uf240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\uf241"}.fa-battery-2:before,.fa-battery-half:before{content:"\uf242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\uf243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\uf244"}.fa-mouse-pointer:before{content:"\uf245"}.fa-i-cursor:before{content:"\uf246"}.fa-object-group:before{content:"\uf247"}.fa-object-ungroup:before{content:"\uf248"}.fa-sticky-note:before{content:"\uf249"}.fa-sticky-note-o:before{content:"\uf24a"}.fa-cc-jcb:before{content:"\uf24b"}.fa-cc-diners-club:before{content:"\uf24c"}.fa-clone:before{content:"\uf24d"}.fa-balance-scale:before{content:"\uf24e"}.fa-hourglass-o:before{content:"\uf250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\uf251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\uf252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\uf253"}.fa-hourglass:before{content:"\uf254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:
"\uf255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\uf256"}.fa-hand-scissors-o:before{content:"\uf257"}.fa-hand-lizard-o:before{content:"\uf258"}.fa-hand-spock-o:before{content:"\uf259"}.fa-hand-pointer-o:before{content:"\uf25a"}.fa-hand-peace-o:before{content:"\uf25b"}.fa-trademark:before{content:"\uf25c"}.fa-registered:before{content:"\uf25d"}.fa-creative-commons:before{content:"\uf25e"}.fa-gg:before{content:"\uf260"}.fa-gg-circle:before{content:"\uf261"}.fa-tripadvisor:before{content:"\uf262"}.fa-odnoklassniki:before{content:"\uf263"}.fa-odnoklassniki-square:before{content:"\uf264"}.fa-get-pocket:before{content:"\uf265"}.fa-wikipedia-w:before{content:"\uf266"}.fa-safari:before{content:"\uf267"}.fa-chrome:before{content:"\uf268"}.fa-firefox:before{content:"\uf269"}.fa-opera:before{content:"\uf26a"}.fa-internet-explorer:before{content:"\uf26b"}.fa-tv:before,.fa-television:before{content:"\uf26c"}.fa-contao:before{content:"\uf26d"}.fa-500px:before{content:"\uf26e"}.fa-amazon:before{content:"\uf270"}.fa-calendar-plus-o:before{content:"\uf271"}.fa-ca
lendar-minus-o:before{content:"\uf272"}.fa-calendar-times-o:before{content:"\uf273"}.fa-calendar-check-o:before{content:"\uf274"}.fa-industry:before{content:"\uf275"}.fa-map-pin:before{content:"\uf276"}.fa-map-signs:before{content:"\uf277"}.fa-map-o:before{content:"\uf278"}.fa-map:before{content:"\uf279"}.fa-commenting:before{content:"\uf27a"}.fa-commenting-o:before{content:"\uf27b"}.fa-houzz:before{content:"\uf27c"}.fa-vimeo:before{content:"\uf27d"}.fa-black-tie:before{content:"\uf27e"}.fa-fonticons:before{content:"\uf280"}.fa-reddit-alien:before{content:"\uf281"}.fa-edge:before{content:"\uf282"}.fa-credit-card-alt:before{content:"\uf283"}.fa-codiepie:before{content:"\uf284"}.fa-modx:before{content:"\uf285"}.fa-fort-awesome:before{content:"\uf286"}.fa-usb:before{content:"\uf287"}.fa-product-hunt:before{content:"\uf288"}.fa-mixcloud:before{content:"\uf289"}.fa-scribd:before{content:"\uf28a"}.fa-pause-circle:before{content:"\uf28b"}.fa-pause-circle-o:before{content:"\uf28c"}.fa-stop-circle:before{content:"\uf28d"}.fa-stop-circle-o:before{content:"\uf28e"}.fa-shoppin
g-bag:before{content:"\uf290"}.fa-shopping-basket:before{content:"\uf291"}.fa-hashtag:before{content:"\uf292"}.fa-bluetooth:before{content:"\uf293"}.fa-bluetooth-b:before{content:"\uf294"}.fa-percent:before{content:"\uf295"}.fa-gitlab:before{content:"\uf296"}.fa-wpbeginner:before{content:"\uf297"}.fa-wpforms:before{content:"\uf298"}.fa-envira:before{content:"\uf299"}.fa-universal-access:before{content:"\uf29a"}.fa-wheelchair-alt:before{content:"\uf29b"}.fa-question-circle-o:before{content:"\uf29c"}.fa-blind:before{content:"\uf29d"}.fa-audio-description:before{content:"\uf29e"}.fa-volume-control-phone:before{content:"\uf2a0"}.fa-braille:before{content:"\uf2a1"}.fa-assistive-listening-systems:before{content:"\uf2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\uf2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\uf2a4"}.fa-glide:before{content:"\uf2a5"}.fa-glide-g:before{content:"\uf2a6"}.fa-signing:before,.fa-sign-language:before{content:"\uf2a7"}.fa-low-vision:before{content:"\uf2a8"}.fa
-viadeo:before{content:"\uf2a9"}.fa-viadeo-square:before{content:"\uf2aa"}.fa-snapchat:before{content:"\uf2ab"}.fa-snapchat-ghost:before{content:"\uf2ac"}.fa-snapchat-square:before{content:"\uf2ad"}.fa-pied-piper:before{content:"\uf2ae"}.fa-first-order:before{content:"\uf2b0"}.fa-yoast:before{content:"\uf2b1"}.fa-themeisle:before{content:"\uf2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\uf2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\uf2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.mfp-counter{font-family:Georgia,Times,serif}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#000;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visi
bility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !importa
nt}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:1;filter:alpha(opacity=100);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Georgia,Times,serif}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#fff}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;rig
ht:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:1;filter:alpha(opacity=100);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:0.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border
-right:27px solid #fff}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #fff}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background
:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-figure figcaption{margin-top:0;margin-bottom:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-ba
r:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}a:focus{outline:thin dotted #f89406;outline:5px auto #f89406;outline-offset:-2px}*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{box-sizing:border-box;background-color:#fff;font-size:16px;-webkit-te
xt-size-adjust:100%;-ms-text-size-adjust:100%}@media (min-width: 48em){html{font-size:18px}}@media (min-width: 64em){html{font-size:20px}}@media (min-width: 80em){html{font-size:22px}}body{margin:0}::-moz-selection{color:#fff;background:#000}::selection{color:#fff;background:#000}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}a{color:#52adc8}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=
"button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}html{position:relative;min-height:100%}body{margin:0;padding:0;color:#494e52;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;line-height:1.5}body.overflow--hidden{overflow:hidden}h1,h2,h3,h4,h5,h6{margin:2em 0 0.5em;line-height:1.2;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}h1{margin-top:0;font-size:1.563em}h2{font-size:1.25em}h3{font-
size:1em}h4{font-size:.75em}h5{font-size:.75em}h6{font-size:.75em}small,.small{font-size:.75em}p{margin-bottom:1.3em}u,ins{text-decoration:none;border-bottom:1px solid #494e52}u a,ins a{color:inherit}del a{color:inherit}p,pre,blockquote,ul,ol,dl,figure,table,fieldset{orphans:3;widows:3}abbr[title],abbr[data-original-title]{text-decoration:none;cursor:help;border-bottom:1px dotted #494e52}blockquote{margin:2em 1em 2em 0;padding-left:1em;padding-right:1em;font-style:italic;border-left:0.25em solid #7a8288}blockquote cite{font-style:italic}blockquote cite:before{content:"\2014";padding-right:5px}a:hover,a:active{outline:0}tt,code,kbd,samp,pre{font-family:Monaco,Consolas,"Lucida Console",monospace}pre{overflow-x:auto}p>code,a>code,li>code,figcaption>code,td>code{padding-top:0.1rem;padding-bottom:0.1rem;font-size:.75em;background:#fafafa;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}p>code:before,p>code:after,a>code:before,a>code:after,li>code:before,l
i>code:after,figcaption>code:before,figcaption>code:after,td>code:before,td>code:after{letter-spacing:-0.2em;content:"\00a0"}hr{display:block;margin:1em 0;border:0;border-top:1px solid #f2f3f3}ul li,ol li{margin-bottom:0.5em}li ul,li ol{margin-top:0.5em}figure{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;flex-wrap:wrap;margin:2em 0}figure img,figure iframe,figure .fluid-width-video-wrapper{margin-bottom:1em}figure img{width:100%;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}figure>a{display:block}@media (min-width: 37.5em){figure.half>a,figure.half>img{width:calc(50% - 0.5em)}}figure.half figcaption{width:100%}@media (min-width: 37.5em){figure.third>a,figure.third>img{width:calc(33.3333% - 0.5em)}}figure.third figcaption{width:100%}figcaption{margin-bottom:0.5em;color:#777a7d;font-family:Georgia,Times,serif;font-size:.75em}figcaption a{color:inherit;t
ext-decoration:none;border-bottom:1px solid #bdc1c4;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}figcaption a:hover{color:#000;border-bottom-color:#000}svg:not(:root){overflow:hidden}nav ul{margin:0;padding:0}nav li{list-style:none}nav a{text-decoration:none}nav ul li,nav ol li{margin-bottom:0}nav li ul,nav li ol{margin-top:0}b,i,strong,em,blockquote,p,q,span,figure,img,h1,h2,header,input,a,tr,td,form button,input[type="submit"],.btn,#goog-wm-sb,.highlight,.archive__item-teaser{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.hidden{display:none;visibility:hidden}.load{display:none}.transparent{opacity:0}.visually-hidden,.screen-reader-text,.screen-reader-text span,.screen-reader-shortcut{position:absolute !important;clip:rect(1px, 1px, 1px, 1px);height:1px !important;width:1px !important;border:0 !important;overflow:hidden}body:hover .visually-hidden a,body:hover .visually-hidden input,body:hover .visually-hidden button{display:non
e !important}.screen-reader-text:focus,.screen-reader-shortcut:focus{clip:auto !important;height:auto !important;width:auto !important;display:block;font-size:1em;font-weight:bold;padding:15px 23px 14px;background:#fff;z-index:100000;text-decoration:none;box-shadow:0 0 2px 2px rgba(0,0,0,0.6)}.skip-link{position:fixed;z-index:20;margin:0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;white-space:nowrap}.skip-link li{height:0;width:0;list-style:none}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.cf{clear:both}.wrapper{max-width:1024px;margin-left:auto;margin-right:auto}.wrapper:after{content:" ";display:block;clear:both}.align-left{display:block;margin-left:auto;margin-right:auto}@media (min-width: 37.5em){.align-left{float:left;margin-right:1em}}.align-right{display:block;margin-left:auto;margin
-right:auto}@media (min-width: 37.5em){.align-right{float:right;margin-left:1em}}.align-center{display:block;margin-left:auto;margin-right:auto}@media (min-width: 64em){.full{margin-right:-19.49153% !important}}.icon{display:inline-block;fill:currentColor;width:1em;height:1.1em;line-height:1;position:relative;top:-0.1em;vertical-align:middle}.social-icons .fa{color:#000}.social-icons .fa-behance,.social-icons .fa-behance-square{color:#1769FF}.social-icons .fa-dribbble{color:#ea4c89}.social-icons .fa-facebook,.social-icons .fa-facebook-square{color:#3b5998}.social-icons .fa-flickr{color:#ff0084}.social-icons .fa-foursquare{color:#0072b1}.social-icons .fa-github,.social-icons .fa-github-alt,.social-icons .fa-github-square{color:#171516}.social-icons .fa-google-plus,.social-icons .fa-google-plus-square{color:#dd4b39}.social-icons .fa-instagram{color:#517fa4}.social-icons .fa-lastfm,.social-icons .fa-lastfm-square{color:#d51007}.social-icons .fa-linkedin,.social-icons .fa-linkedin-squar
e{color:#007bb6}.social-icons .fa-pinterest,.social-icons .fa-pinterest-p,.social-icons .fa-pinterest-square{color:#cb2027}.social-icons .fa-rss,.social-icons .fa-rss-square{color:#fa9b39}.social-icons .fa-soundcloud{color:#f30}.social-icons .fa-stack-exchange,.social-icons .fa-stack-overflow{color:#fe7a15}.social-icons .fa-tumblr,.social-icons .fa-tumblr-square{color:#32506d}.social-icons .fa-twitter,.social-icons .fa-twitter-square{color:#55acee}.social-icons .fa-vimeo,.social-icons .fa-vimeo-square{color:#1ab7ea}.social-icons .fa-vine{color:#00bf8f}.social-icons .fa-youtube,.social-icons .fa-youtube-square,.social-icons .fa-youtube-play{color:#b00}.social-icons .fa-xing,.social-icons .fa-xing-square{color:#006567}.navicon{position:relative;width:28px;height:4px;background:#fff;margin:auto;-webkit-transition:0.3s;transition:0.3s}.navicon:before,.navicon:after{content:"";position:absolute;left:0;width:28px;height:4px;background:#fff;-webkit-transition:0.3s;transition:0.3s}.navicon:
before{top:-8px}.navicon:after{bottom:-8px}.close .navicon{background:transparent}.close .navicon:before,.close .navicon:after{-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;top:0;width:28px}.close .navicon:before{-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg)}.close .navicon:after{-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg)}@media (min-width: 64em){.sticky{clear:both;position:-webkit-sticky;position:sticky;top:2em}.sticky::after{clear:both;content:"";display:table}.sticky>*{display:block}}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.show-modal{overflow:hidden;position:relative}.show-modal:before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;z-index:999;background-color:rgba(255,255,255,0.85)}.show-modal .modal{display:block}.modal{display
:none;position:fixed;width:300px;top:50%;left:50%;margin-left:-150px;margin-top:-150px;min-height:0;z-index:9999;background:#fff;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}.modal__title{margin:0;padding:0.5em 1em}.modal__supporting-text{padding:0 1em 0.5em 1em}.modal__actions{padding:0.5em 1em;border-top:1px solid #f2f3f3}.footnote{color:#9ba1a6;text-decoration:none}.footnotes{color:#9ba1a6}.footnotes ol,.footnotes li,.footnotes p{margin-bottom:0;font-size:.75em}a.reversefootnote{color:#7a8288;text-decoration:none}a.reversefootnote:hover{text-decoration:underline}.required{color:#ee5f5b;font-weight:bold}@-webkit-keyframes intro{0%{opacity:0}100%{opacity:1}}@keyframes intro{0%{opacity:0}100%{opacity:1}}table{margin-bottom:1em;width:100%;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;border-collapse:collapse;border:1px solid #bdc1c4}table+table{ma
rgin-top:1em}thead{background-color:#f2f3f3;border-bottom:1px solid #bdc1c4}th{padding:0.5em;font-weight:bold;text-align:left;border-right:1px solid #bdc1c4}td{padding:0.5em;border-bottom:1px solid #bdc1c4;border-right:1px solid #bdc1c4}tr,td,th{vertical-align:middle}.btn,#goog-wm-sb{display:inline-block;margin-bottom:0.25em;padding:0.5em 1em;color:#fff !important;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-align:center;text-decoration:none;background-color:#7a8288;border:0 !important;border-radius:4px;cursor:pointer}.btn:hover,#goog-wm-sb:hover{background-color:#333}.btn .icon,#goog-wm-sb .icon{margin-right:0.5em}.btn .icon+.hidden,#goog-wm-sb .icon+.hidden{margin-left:-0.5em}.btn--block{display:block;width:100%}.btn--block+.btn--block{margin-top:0.25em}.btn--inverse{color:#7a8288 !important;border:1px solid #bdc1c4 !important;background-color:#fff}.btn--inv
erse:hover{color:#fff !important;border-color:#7a8288}.btn--light-outline{border:1px solid #fff !important;background-color:transparent}.btn--info{background-color:#52adc8}.btn--info:hover{background-color:#428aa0}.btn--warning{background-color:#f89406}.btn--warning:hover{background-color:#c67605}.btn--success{background-color:#62c462}.btn--success:hover{background-color:#4e9d4e}.btn--danger{background-color:#ee5f5b}.btn--danger:hover{background-color:#be4c49}.btn--disabled{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:0.65}.btn--facebook{background-color:#3b5998}.btn--facebook:hover{background-color:#2f477a}.btn--twitter{background-color:#55acee}.btn--twitter:hover{background-color:#448abe}.btn--google-plus{background-color:#dd4b39}.btn--google-plus:hover{background-color:#b13c2e}.btn--linkedin{background-color:#007bb6}.btn--linkedin:hover{background-color:#006292}.btn--x-large{font-size:1.25em}.btn--large{font-size:1em}.btn--small{font-siz
e:.6875em}.notice{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#f8f9f9;border-radius:4px;box-shadow:0 1px 1px rgba(189,193,196,0.25)}.notice h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice h4{margin-bottom:0;font-size:1em}.notice p:last-child{margin-bottom:0 !important}.notice h4+p{margin-top:0;padding-top:0}.notice a{color:#bdc1c4}.notice a:hover{color:#717476}.notice code{background-color:#fcfcfc}.notice ul:last-child{margin-bottom:0}.notice--primary{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(122,130,136,0.25)}.notice--primary h4{margin-t
op:0 !important;margin-bottom:0.75em}.page__content .notice--primary h4{margin-bottom:0;font-size:1em}.notice--primary p:last-child{margin-bottom:0 !important}.notice--primary h4+p{margin-top:0;padding-top:0}.notice--primary a{color:#7a8288}.notice--primary a:hover{color:#494e52}.notice--primary code{background-color:#f8f9f9}.notice--primary ul:last-child{margin-bottom:0}.notice--info{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#eef7fa;border-radius:4px;box-shadow:0 1px 1px rgba(82,173,200,0.25)}.notice--info h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--info h4{margin-bottom:0;font-size:1em}.notice--info p:last-child{margin-bottom:0 !important}.notice--info h4+p{margin-top:0;padding-top:0}.notice--info a{color:#52adc8}.notice--info a:hover{color:#316878}.notice--info code
{background-color:#f6fbfc}.notice--info ul:last-child{margin-bottom:0}.notice--warning{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#fef4e6;border-radius:4px;box-shadow:0 1px 1px rgba(248,148,6,0.25)}.notice--warning h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--warning h4{margin-bottom:0;font-size:1em}.notice--warning p:last-child{margin-bottom:0 !important}.notice--warning h4+p{margin-top:0;padding-top:0}.notice--warning a{color:#f89406}.notice--warning a:hover{color:#955904}.notice--warning code{background-color:#fffaf3}.notice--warning ul:last-child{margin-bottom:0}.notice--success{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !import
ant;text-indent:initial;background-color:#eff9ef;border-radius:4px;box-shadow:0 1px 1px rgba(98,196,98,0.25)}.notice--success h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--success h4{margin-bottom:0;font-size:1em}.notice--success p:last-child{margin-bottom:0 !important}.notice--success h4+p{margin-top:0;padding-top:0}.notice--success a{color:#62c462}.notice--success a:hover{color:#3b763b}.notice--success code{background-color:#f7fcf7}.notice--success ul:last-child{margin-bottom:0}.notice--danger{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#fdefef;border-radius:4px;box-shadow:0 1px 1px rgba(238,95,91,0.25)}.notice--danger h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--danger h4{margin-bottom:0;font-size:1em}.notice--danger p:last-child{margin-bottom
:0 !important}.notice--danger h4+p{margin-top:0;padding-top:0}.notice--danger a{color:#ee5f5b}.notice--danger a:hover{color:#8f3937}.notice--danger code{background-color:#fef7f7}.notice--danger ul:last-child{margin-bottom:0}.masthead{position:relative;border-bottom:1px solid #f2f3f3;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.15s;animation-delay:0.15s;z-index:20}.masthead__inner-wrap{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;padding:1em 1em 1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.masthead__inner-wrap:after{content:" ";display:block;clear:both}.masthead__inner-wrap::after{clear:both;content:"";display:table}@media (min-width: 80em){.masthead__inner-wrap{max-width:1280px}}.masthead__inner-wrap nav{z-index:10}.masthead__inner-wrap a{text-decoration:none}.masthead__menu ul{margin:0;padding:0;clear:both;list-style-type:none}.masth
ead__menu-item{display:block;list-style-type:none;white-space:nowrap}.masthead__menu-item--lg{padding-right:2em;font-weight:700}.breadcrumbs{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:0;margin-bottom:0;padding-left:2em;padding-right:2em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.30s;animation-delay:0.30s}.breadcrumbs:after{content:" ";display:block;clear:both}.breadcrumbs::after{clear:both;content:"";display:table}@media (min-width: 64em){.breadcrumbs{padding-left:1em;padding-right:1em}}@media (min-width: 80em){.breadcrumbs{max-width:1280px}}.breadcrumbs ol{padding:0;list-style:none;font-size:.75em}@media (min-width: 64em){.breadcrumbs ol{width:83.05085%;float:right;margin-right:0}}@media (min-width: 80em){.breadcrumbs ol{padding-left:4.23729%}}.breadcrumbs li{display:inline}.brea
dcrumbs .current{font-weight:bold}.pagination{clear:both;width:100%;float:left;margin-left:0;margin-right:0;clear:both;margin-top:1em;padding-top:1em}.pagination::after{clear:both;content:"";display:table}.pagination ul{margin:0;padding:0;list-style-type:none;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.pagination li{display:block;float:left;margin-left:-1px}.pagination li a{display:block;margin-bottom:0.25em;padding:0.5em 1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:14px;font-weight:bold;line-height:1.5;text-align:center;text-decoration:none;color:#9ba1a6;border:1px solid #bdc1c4;border-radius:0}.pagination li a:hover{color:#3e8296}.pagination li a.current{color:#fff;background:#7a8288}.pagination li a.disabled{color:#dee0e1;pointer-events:none;cursor:not-allowed}.pagination li:first-child{margin
-left:0}.pagination li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination--pager{display:block;padding:1em 2em;float:left;width:50%;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em;font-weight:bold;text-align:center;text-decoration:none;color:#52adc8;border:1px solid #bdc1c4;border-radius:4px}.pagination--pager:hover{color:#3e8296}.pagination--pager:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pagination--pager:last-child{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.pagination--pager.disabled{color:#dee0e1;pointer-events:none;cursor:not-allowed}.page__content+.pagination,.page__meta+.pagination,.comment__date+.pagination,.page__share+.pagination,.page__comments+.pagination{margin-top:2em;padding-top:2em;border-top:1px soli
d #f2f3f3}.greedy-nav{position:relative;min-width:250px;background:#fff}.greedy-nav a{display:block;margin:0 1rem;padding:0.5rem 0;color:#7a8288;text-decoration:none}.greedy-nav a:hover{color:#5c6266}.greedy-nav button{position:absolute;height:100%;right:0;padding:0 0.5rem;border:0;outline:none;background-color:#7a8288;color:#fff;cursor:pointer}.greedy-nav .visible-links{display:table}.greedy-nav .visible-links li{display:table-cell;vertical-align:middle}.greedy-nav .visible-links li:first-child{font-weight:bold}.greedy-nav .visible-links li:first-child a{margin-left:0}.greedy-nav .visible-links li:last-child a{margin-right:0}.greedy-nav .visible-links a{position:relative}.greedy-nav .visible-links a:before{content:"";position:absolute;left:0;bottom:0;height:4px;background:#bdc1c4;width:100%;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;-webkit-transform:scaleX(0) translate3d(0, 0, 0);-ms-transform:scaleX(0) translate3d(0, 0, 0);transform:scaleX(0) translat
e3d(0, 0, 0)}.greedy-nav .visible-links a:hover:before{-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.greedy-nav .hidden-links{position:absolute;top:100%;right:0;margin-top:15px;padding:5px;border:1px solid #f2f3f3;border-radius:4px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,0.25)}.greedy-nav .hidden-links a{margin:0;padding:10px 20px;font-size:1em}.greedy-nav .hidden-links a:hover{color:#5c6266;background:#dee0e1}.greedy-nav .hidden-links:before{content:"";position:absolute;top:-11px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#f2f3f3 transparent;display:block;z-index:0}.greedy-nav .hidden-links:after{content:"";position:absolute;top:-10px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff transparent;display:block;z-index:1}.greedy-nav .hidden-links li{display:block;border-bottom:1px solid #f2f3f3}.greedy-nav .hidden-links li:last-child{border-bottom:none}.nav__list{margin-bottom:1.5em}.nav
__list input[type="checkbox"],.nav__list label{display:none}@media (max-width: 63.9375em){.nav__list label{position:relative;display:inline-block;padding:0.5em 2.5em 0.5em 1em;color:#7a8288;font-size:.75em;font-weight:bold;border:1px solid #bdc1c4;border-radius:4px;z-index:20;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;cursor:pointer}.nav__list label:before,.nav__list label:after{content:'';position:absolute;right:1em;top:1.25em;width:0.75em;height:0.125em;line-height:1;background-color:#7a8288;transition:0.2s ease-out}.nav__list label:after{transform:rotate(90deg)}.nav__list label:hover{color:#fff;border-color:#7a8288;background-color:#333}.nav__list label:hover:before,.nav__list label:hover:after{background-color:#fff}.nav__list input:checked+label{color:white;background-color:#333}.nav__list input:checked+label:before,.nav__list input:checked+label:after{background-color:#fff}.nav__list label:hover:after{transform:rotate(90deg)}.nav__list input:checked+label:hover:a
fter{transform:rotate(0)}.nav__list ul{margin-bottom:1em}.nav__list a{display:block;padding:0.25em 0}}@media (max-width: 63.9375em) and (min-width: 64em){.nav__list a{padding-top:0.125em;padding-bottom:0.125em}}@media (max-width: 63.9375em){.nav__list a:hover{text-decoration:underline}}.nav__list .nav__items{margin:0;font-size:1.25rem}.nav__list .nav__items a{color:inherit}.nav__list .nav__items .active{margin-left:-0.5em;padding-left:0.5em;padding-right:0.5em;color:#fff;font-weight:bold;background:#7a8288;border-radius:4px}.nav__list .nav__items .active:hover{color:#fff}@media (max-width: 63.9375em){.nav__list .nav__items{position:relative;max-height:0;opacity:0%;overflow:hidden;z-index:10;-webkit-transition:0.3s ease-in-out;transition:0.3s ease-in-out;-webkit-transform:translate(0, 10%);-ms-transform:translate(0, 10%);transform:translate(0, 10%)}}@media (max-width: 63.9375em){.nav__list input:checked ~ .nav__items{-webkit-transition:0.5s ease-in-out;transition:0.5s ease-in-out;max
-height:9999px;overflow:visible;opacity:1;margin-top:1em;-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}}.nav__title{margin:0;padding:0.5rem 1rem;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em;font-weight:bold}.nav__sub-title{display:block;margin:0.5rem 0;padding:0.5rem 0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-transform:uppercase;border-bottom:1px solid #f2f3f3}.toc{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;color:#7a8288;text-transform:uppercase;letter-spacing:1px;background-color:#fff;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}.toc .nav__title{color:#fff;font-size:.75em;background:#7a828
8;border-top-left-radius:4px;border-top-right-radius:4px}.toc__menu{margin:0;padding:0;width:100%;list-style:none;font-size:0.8rem}.toc__menu a{display:block;padding:0.5rem 1rem;color:#7a8288;font-size:.6875em;font-weight:bold;line-height:1.5;border-bottom:1px solid #f2f3f3}.toc__menu a:hover{color:#000;background:#f2f3f3}.toc__menu>li:last-child a{border-bottom:none}.toc__menu li ul>li a{padding-left:2rem;font-weight:normal}.toc__menu li>ul li{display:none}@media (min-width: 48em){.toc__menu li>ul li{display:block}}.page__footer{clear:both;width:100%;float:left;margin-left:0;margin-right:0;clear:both;position:absolute;bottom:0;width:100%;clear:both;height:auto;margin-top:3em;color:#9ba1a6;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.45s;animation-delay:0.45s;background-color:#f2f3f3;border-top:1px solid #bdc1c4}.page__footer::after{clear:both;content:"";display:table}.page__footer footer{max-width:1024px;margin-left:auto;margin-right:auto;cl
ear:both;margin-top:2em;padding:0 1em 2em}.page__footer footer:after{content:" ";display:block;clear:both}.page__footer footer::after{clear:both;content:"";display:table}@media (min-width: 80em){.page__footer footer{max-width:1280px}}.page__footer a{color:inherit;text-decoration:none}.page__footer a:hover{text-decoration:underline}.page__footer .fa{color:#9ba1a6}.page__footer-copyright{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.6875em}.page__footer-follow ul{margin:0;padding:0;list-style-type:none}.page__footer-follow li{display:inline-block;padding-top:5px;padding-bottom:5px;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;text-transform:uppercase}.page__footer-follow li+li:before{content:"";padding-right:5px}.page__footer-follow a{padding-right:10px;font-weight:bold}div.highlighter-rou
ge,figure.highlight{position:relative;margin-bottom:1em;font-family:Monaco,Consolas,"Lucida Console",monospace;font-size:.6875em;line-height:1.8;border:1px solid #f2f3f3;border-radius:4px;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,0.125)}div.highlighter-rouge:before,figure.highlight:before{position:absolute;top:0;right:0;padding:0.5em;background-color:#f2f3f3;content:"\f121";font-family:"fontawesome" !important;line-height:1;text-transform:none;speak:none}div.highlighter-rouge .highlight,figure.highlight .highlight{margin:0;padding:1em}figure.highlight{padding-left:1em;padding-right:1em}.highlight table{font-size:1em;border:0}.highlight table td{padding:5px;border:0}.highlight table td.gutter{padding-right:1em;color:#bdc1c4}.highlight table pre{margin:0}.highlight pre{width:100%}.highlight .c{color:#93a1a1}.highlight .err{color:#586e75}.highlight .g{color:#586e75}.highlight .k{color:#859900}.highlight .l{color:#586e75}.highlight .n{color:#586e75}.highlight .o{color:#85
9900}.highlight .x{color:#cb4b16}.highlight .p{color:#586e75}.highlight .cm{color:#93a1a1}.highlight .cp{color:#859900}.highlight .c1{color:#93a1a1}.highlight .cs{color:#859900}.highlight .gd{color:#2aa198}.highlight .ge{color:#586e75;font-style:italic}.highlight .gr{color:#dc322f}.highlight .gh{color:#cb4b16}.highlight .gi{color:#859900}.highlight .go{color:#586e75}.highlight .gp{color:#586e75}.highlight .gs{color:#586e75;font-weight:bold}.highlight .gu{color:#cb4b16}.highlight .gt{color:#586e75}.highlight .kc{color:#cb4b16}.highlight .kd{color:#22b3eb}.highlight .kn{color:#859900}.highlight .kp{color:#859900}.highlight .kr{color:#22b3eb}.highlight .kt{color:#dc322f}.highlight .ld{color:#586e75}.highlight .m{color:#2aa198}.highlight .s{color:#2aa198}.highlight .na{color:#586e75}.highlight .nb{color:#B58900}.highlight .nc{color:#22b3eb}.highlight .no{color:#cb4b16}.highlight .nd{color:#22b3eb}.highlight .ni{color:#cb4b16}.highlight .ne{color:#cb4b16}.highlight .nf{color:#22b3eb}.hig
hlight .nl{color:#586e75}.highlight .nn{color:#586e75}.highlight .nx{color:#586e75}.highlight .py{color:#586e75}.highlight .nt{color:#22b3eb}.highlight .nv{color:#22b3eb}.highlight .ow{color:#859900}.highlight .w{color:#586e75}.highlight .mf{color:#2aa198}.highlight .mh{color:#2aa198}.highlight .mi{color:#2aa198}.highlight .mo{color:#2aa198}.highlight .sb{color:#93a1a1}.highlight .sc{color:#2aa198}.highlight .sd{color:#586e75}.highlight .s2{color:#2aa198}.highlight .se{color:#cb4b16}.highlight .sh{color:#586e75}.highlight .si{color:#2aa198}.highlight .sx{color:#2aa198}.highlight .sr{color:#dc322f}.highlight .s1{color:#2aa198}.highlight .ss{color:#2aa198}.highlight .bp{color:#22b3eb}.highlight .vc{color:#22b3eb}.highlight .vg{color:#22b3eb}.highlight .vi{color:#22b3eb}.highlight .il{color:#2aa198}form{margin:0 0 5px 0}form fieldset{margin-bottom:5px;padding:0;border-width:0}form legend{display:block;width:100%;margin-bottom:10px;*margin-left:-7px;padding:0;color:#494e52;border:0;bord
er-bottom:1px solid #ccc;white-space:normal}form p{margin-bottom:5px / 2}form ul{list-style-type:none;margin:0 0 5px 0;padding:0}form br{display:none}label,input,button,select,textarea{vertical-align:baseline;*vertical-align:middle}input,button,select,textarea{box-sizing:border-box;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}label{display:block;margin-bottom:0.25em;color:#494e52;cursor:pointer}label small{font-size:.75em}label input,label textarea,label select{display:block}input,textarea,select{display:inline-block;width:100%;padding:0.25em;margin-bottom:0.5em;color:#494e52;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}input:hover,textarea:hover,select:hover{border-color:#bdc1c4}.input-mini{width:60px}.input-small{width:90px}input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-t
op:0;line-height:normal;cursor:pointer;border-radius:0;border:0 \9}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="image"]{border:0;box-shadow:none}input[type="file"]{width:auto;padding:initial;line-height:initial;border:initial;background-color:transparent;background-color:initial;box-shadow:none}input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;cursor:pointer;*overflow:visible}select,input[type="file"]{*margin-top:4px}select{width:auto;background-color:#fff}select[multiple],select[size]{height:auto}textarea{resize:vertical;height:auto;overflow:auto;vertical-align:top}input[type="hidden"]{display:none}.form{position:relative}.radio,.checkbox{padding-left:18px;font-weight:normal}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.
radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{opacity:0.5;cursor:not-allowed}input:focus,textarea:focus{border-color:#7a8288;outline:0;outline:thin dotted \9}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{box-shadow:none}.help-block,.help-inline{color:#52adc8}.help-block{display:block;margin-bottom:1em;line-height:1em}.help-inline{display:inline-block;vertical-align:middle;padding-left:5px}.form-inline input,.form-inline textarea,.form-inline select{display:inline-block;margin-bottom:0}.form-inline label{display:inline-block}.form-inline .radio,.form-inline .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px}.form-search input,.form-search textarea,.form-search
select{display:inline-block;margin-bottom:0}.form-search .search-query{padding-left:14px;padding-right:14px;margin-bottom:0;border-radius:14px}.form-search label{display:inline-block}.form-search .radio,.form-search .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px}.form--loading:before{content:''}.form--loading .form__spinner{display:block}.form:before{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.7);z-index:10}.form__spinner{display:none;position:absolute;top:50%;left:50%;z-index:11}#goog-fixurl ul{list-style:none;margin-left:0;padding-left:0}#goog-fixurl ul li{list-style-type:none}#goog-wm-qt{width:auto;margin-right:10px;margin-bottom:20px;padding:8px 20px;display:inline-block;font-size:.75em;background-color:#fff;color:#000;border-width:2px !important;border-style:solid !import
ant;border-color:gray;border-radius:4px}#main{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:2em;padding-left:1em;padding-right:1em;animation:intro 0.3s both;animation-delay:0.35s}#main:after{content:" ";display:block;clear:both}#main::after{clear:both;content:"";display:table}@media (min-width: 80em){#main{max-width:1280px}}@media (min-width: 64em){.page{width:83.05085%;float:right;margin-right:0;padding-left:4.23729%;padding-right:16.94915%}}.page .page__inner-wrap{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page .page__inner-wrap .page__content,.page .page__inner-wrap .page__meta,.page .page__inner-wrap .comment__date,.page .page__inner-wrap .page__share{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page__title{margin-top:0;line-height:1}.page__title+.page__meta,.page__title+.comment__date{margin-top:-0.5em}.page__lead{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","
Lucida Grande",Arial,sans-serif;font-size:1.25em}.page__content h2{padding-bottom:0.5em;border-bottom:1px solid #f2f3f3}.page__content p,.page__content li,.page__content dl{font-size:1em}.page__content p{margin:0 0 1.3em}.page__content a{text-decoration:none}.page__content a:hover{text-decoration:underline}.page__content a:hover img{box-shadow:0 0 10px rgba(0,0,0,0.25)}.page__content dt{margin-top:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}.page__content dd{margin-left:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.page__content .small{font-size:.75em}.page__content blockquote+.small{margin-top:-1.5em;padding-left:1.25rem}.page__hero{position:relative;margin-bottom:2em;clear:both;animation:intro 0.3s both;animation-delay:0.25s}.page__hero::after{clear:both;content:"";dis
play:table}.page__hero--overlay{position:relative;margin-bottom:2em;padding:3em 0;clear:both;background-size:cover;background-repeat:no-repeat;background-position:center;animation:intro 0.3s both;animation-delay:0.25s}.page__hero--overlay::after{clear:both;content:"";display:table}.page__hero--overlay a{color:#fff}.page__hero--overlay .wrapper{padding-left:1em;padding-right:1em}@media (min-width: 80em){.page__hero--overlay .wrapper{max-width:1280px}}.page__hero--overlay .page__title,.page__hero--overlay .page__meta,.page__hero--overlay .comment__date,.page__hero--overlay .page__lead,.page__hero--overlay .btn,.page__hero--overlay #goog-wm-sb{color:#fff;text-shadow:1px 1px 4px rgba(0,0,0,0.5)}.page__hero--overlay .page__lead{max-width:768px}.page__hero--overlay .page__title{font-size:1.953em}@media (min-width: 37.5em){.page__hero--overlay .page__title{font-size:2.441em}}.page__hero-image{width:100%;height:auto;-ms-interpolation-mode:bicubic}.page__hero-caption{position:absolute;bottom
:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.6875em;background:#000;text-align:right;z-index:5;opacity:0.5;border-radius:4px 0 4px 0}@media (min-width: 64em){.page__hero-caption{padding:5px 10px}}.page__hero-caption a{color:#fff;text-decoration:none}.page__share{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3}@media (max-width: 37.5em){.page__share .btn span,.page__share #goog-wm-sb span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}}.page__share-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}.page__meta,.comment__date{margin-top:2em;color:#9ba1a6;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.page__meta p,.comment__date p{margin:0}.page__meta a,.comment__date a{color:inherit}.page__meta-title{margin-bottom:10px;font-size:.75em;text-transform:up
percase}.page__taxonomy .sep{display:none}.page__taxonomy strong{margin-right:10px}.page__taxonomy-item{display:inline-block;margin-right:5px;margin-bottom:8px;padding:5px 10px;text-decoration:none;border:1px solid #bdc1c4;border-radius:4px}.page__taxonomy-item:hover{text-decoration:none;color:#3e8296}.page__comments{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page__comments-title{margin-top:2rem;margin-bottom:10px;padding-top:2rem;font-size:.75em;border-top:1px solid #f2f3f3;text-transform:uppercase}.page__comments-form{padding:1em;background:#f2f3f3;transition:all 0.2s ease-in-out}.page__comments-form.disabled input,.page__comments-form.disabled button,.page__comments-form.disabled textarea,.page__comments-form.disabled label{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:0.65}.comment{clear:both;margin:1em 0}.comment::after{clear:both;content:"";display:table}.comment:not(:last-child){border-bottom:1px solid #f2f3f3}.com
ment__avatar-wrapper{float:left;width:60px;height:60px}@media (min-width: 64em){.comment__avatar-wrapper{width:100px;height:100px}}.comment__avatar{width:40px;height:40px;border-radius:50%}@media (min-width: 64em){.comment__avatar{width:80px;height:80px;padding:5px;border:1px solid #f2f3f3}}.comment__content-wrapper{float:right;width:calc(100% - 60px)}@media (min-width: 64em){.comment__content-wrapper{width:calc(100% - 100px)}}.comment__author{margin:0}.comment__author a{text-decoration:none}.comment__date{margin:0}.comment__date a{text-decoration:none}.page__related{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3;clear:both;float:left}.page__related::after{clear:both;content:"";display:table}@media (min-width: 64em){.page__related{margin-left:21.18644%}}.page__related a{color:inherit;text-decoration:none}.page__related-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}.archive{margin-bottom:2em}@media (min-width: 48em){.archive{width:100%;float:left;marg
in-left:0;margin-right:0}}@media (min-width: 64em){.archive{width:83.05085%;float:right;margin-right:0;padding-left:4.23729%}}.archive a{color:inherit;text-decoration:none}.archive__subtitle{margin:1.414em 0 0;padding-bottom:0.5em;font-size:1em;color:#9ba1a6;border-bottom:1px solid #f2f3f3}.archive__subtitle+.list__item .archive__item-title{margin-top:0.5em}.archive__item-title{margin-bottom:0.25em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.archive__item-title a+a{opacity:0.5}.page__content .archive__item-title{margin-top:1em;border-bottom:none}.archive__item-excerpt{margin-top:0;font-size:.75em}.archive__item-excerpt+p{text-indent:0}.archive__item-teaser{border-radius:4px;overflow:hidden}.archive__item-teaser img{width:100%}.archive__item:hover .archive__item-teaser{box-shadow:0 0 10px rgba(0,0,0,0.25)}.archive__item:hover .archive__item-title{text-decoration:underline}@media (min-width: 48em)
{.list__item{padding-right:200px}}@media (min-width: 64em){.list__item{padding-right:300px}}@media (min-width: 80em){.list__item{padding-right:400px}}.list__item .page__meta,.list__item .comment__date{margin:0 0 4px}.grid__item{margin-bottom:2em}.grid__item .page__meta,.grid__item .comment__date{margin:0 0 4px}.grid__item .archive__item-title{margin-top:0.5em;font-size:1em}.grid__item .archive__item-excerpt{display:none}@media (min-width: 37.5em){.grid__item{width:48.97959%;float:left}.grid__item:nth-child(2n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.grid__item:nth-child(2n+2){margin-left:51.02041%;margin-right:-100%;clear:none}.grid__item .archive__item-teaser{max-height:200px}}@media (min-width: 48em){.grid__item{margin-left:0;margin-right:0;width:23.46939%;float:left}.grid__item:nth-child(4n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.grid__item:nth-child(4n+2){margin-left:25.5102%;margin-right:-100%;clear:none}.grid__item:nth-child(4n+3){mar
gin-left:51.02041%;margin-right:-100%;clear:none}.grid__item:nth-child(4n+4){margin-left:76.53061%;margin-right:-100%;clear:none}.grid__item .archive__item-teaser{max-height:120px}.grid__item .archive__item-excerpt{display:block;font-size:.75em}}.feature__wrapper{clear:both;margin-bottom:2em;border-bottom:1px solid #f2f3f3}.feature__wrapper::after{clear:both;content:"";display:table}.feature__item{margin-bottom:2em;font-size:1.25rem}@media (min-width: 37.5em){.feature__item{margin-bottom:0;width:32.20339%;float:left}.feature__item:nth-child(3n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.feature__item:nth-child(3n+2){margin-left:33.89831%;margin-right:-100%;clear:none}.feature__item:nth-child(3n+3){margin-left:67.79661%;margin-right:-100%;clear:none}.feature__item .feature__item-teaser{max-height:200px;overflow:hidden}}.feature__item--left{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--left .archive__item-teaser{margi
n-bottom:2em}@media (min-width: 37.5em){.feature__item--left .archive__item-teaser{width:40.67797%;float:left;margin-right:1.69492%}.feature__item--left .archive__item-body{width:57.62712%;float:right;margin-right:0;padding-left:4.23729%;padding-right:8.47458%}}.feature__item--right{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--right .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--right{text-align:right}.feature__item--right .archive__item-teaser{width:40.67797%;float:right;margin-left:1.69492%}.feature__item--right .archive__item-body{width:57.62712%;float:left;margin-left:0;padding-left:4.23729%;padding-right:8.47458%}}.feature__item--center{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--center .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--center{text-align:center}.feature__item--center .archive__item-teaser{marg
in:0 auto;width:40.67797%}.feature__item--center .archive__item-body{margin:0 auto;width:57.62712%}}.sidebar{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);clear:both;margin-bottom:1em}.sidebar::after{clear:both;content:"";display:table}@media (min-width: 64em){.sidebar{width:15.25424%;float:left;margin-right:1.69492%;opacity:0.75;-webkit-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out}.sidebar:hover{opacity:1}}@media (min-width: 80em){.sidebar{padding-right:0}}.sidebar h2,.sidebar h3,.sidebar h4,.sidebar h5,.sidebar h6{margin-bottom:0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.sidebar p,.sidebar li{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;line-height:1.5}.sidebar img{width:100%}.sidebar__right{margin-bottom:1em}@media (min-width: 64em){.sideb
ar__right{position:relative;float:right;width:200px;margin-left:2.54237%;z-index:10}}@media (min-width: 80em){.sidebar__right{width:300px}}.author__avatar{display:table-cell;vertical-align:top;width:36px;height:36px}@media (min-width: 64em){.author__avatar{display:block;width:auto;height:auto}}.author__avatar img{max-width:110px;border-radius:50%}@media (min-width: 64em){.author__avatar img{padding:5px;border:1px solid #f2f3f3}}.author__content{display:table-cell;vertical-align:top;padding-left:15px;padding-right:25px;line-height:1}@media (min-width: 64em){.author__content{display:block;width:100%;padding-left:0;padding-right:0}}.author__name{margin:0}@media (min-width: 64em){.author__name{margin-top:10px;margin-bottom:10px}}.sidebar .author__name{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em}.author__bio{margin:0}@media (min-width: 64em){.author__bio{margin-top:10px;margin-bottom:20p
x}}.author__urls-wrapper{position:relative;display:table-cell;vertical-align:middle;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;z-index:10;position:relative;cursor:pointer}.author__urls-wrapper li:last-child a{margin-bottom:0}@media (min-width: 64em){.author__urls-wrapper{display:block}}.author__urls-wrapper button{margin-bottom:0}@media (min-width: 64em){.author__urls-wrapper button{display:none}}.author__urls{display:none;position:absolute;right:0;margin-top:15px;padding:10px;list-style-type:none;border:1px solid #f2f3f3;border-radius:4px;background:#fff;z-index:-1;box-shadow:0 0 10px rgba(0,0,0,0.25);cursor:default}@media (min-width: 64em){.author__urls{display:block;position:relative;margin:0;padding:0;border:0;background:transparent;box-shadow:none}}.author__urls:before{display:block;content:"";position:absolute;top:-11px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 1
0px;border-color:#f2f3f3 transparent;z-index:0}@media (min-width: 64em){.author__urls:before{display:none}}.author__urls:after{display:block;content:"";position:absolute;top:-10px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff transparent;z-index:1}@media (min-width: 64em){.author__urls:after{display:none}}.author__urls li{white-space:nowrap}.author__urls a{display:block;margin-bottom:5px;padding-right:5px;padding-top:2px;padding-bottom:2px;color:inherit;font-size:1em;text-decoration:none}.author__urls a:hover{text-decoration:underline}@media print{.masthead,.toc,.page__share,.page__related,.ads,.page__footer{display:none}}
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/fonts/FontAwesome.otf
----------------------------------------------------------------------
diff --git a/content/assets/fonts/FontAwesome.otf b/content/assets/fonts/FontAwesome.otf
new file mode 100644
index 0000000..d4de13e
Binary files /dev/null and b/content/assets/fonts/FontAwesome.otf differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/fonts/fontawesome-webfont.eot
----------------------------------------------------------------------
diff --git a/content/assets/fonts/fontawesome-webfont.eot b/content/assets/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..c7b00d2
Binary files /dev/null and b/content/assets/fonts/fontawesome-webfont.eot differ
[12/16] incubator-rocketmq-site git commit: Add built content
Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/fonts/fontawesome-webfont.woff
----------------------------------------------------------------------
diff --git a/content/assets/fonts/fontawesome-webfont.woff b/content/assets/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..6e7483c
Binary files /dev/null and b/content/assets/fonts/fontawesome-webfont.woff differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/fonts/fontawesome-webfont.woff2
----------------------------------------------------------------------
diff --git a/content/assets/fonts/fontawesome-webfont.woff2 b/content/assets/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..7eb74fd
Binary files /dev/null and b/content/assets/fonts/fontawesome-webfont.woff2 differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/Jaskey.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/Jaskey.jpeg b/content/assets/images/about/Jaskey.jpeg
new file mode 100644
index 0000000..8f02307
Binary files /dev/null and b/content/assets/images/about/Jaskey.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/StyleTang.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/StyleTang.jpeg b/content/assets/images/about/StyleTang.jpeg
new file mode 100644
index 0000000..3b25cd6
Binary files /dev/null and b/content/assets/images/about/StyleTang.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/WillemJiang.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/WillemJiang.jpeg b/content/assets/images/about/WillemJiang.jpeg
new file mode 100644
index 0000000..5cade33
Binary files /dev/null and b/content/assets/images/about/WillemJiang.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/brianm.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/brianm.jpeg b/content/assets/images/about/brianm.jpeg
new file mode 100644
index 0000000..4f3c3cf
Binary files /dev/null and b/content/assets/images/about/brianm.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/bsnyder.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/bsnyder.jpeg b/content/assets/images/about/bsnyder.jpeg
new file mode 100644
index 0000000..b1c5a71
Binary files /dev/null and b/content/assets/images/about/bsnyder.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/dongeforever.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/dongeforever.jpeg b/content/assets/images/about/dongeforever.jpeg
new file mode 100644
index 0000000..71250c0
Binary files /dev/null and b/content/assets/images/about/dongeforever.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/justinmclean.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/justinmclean.jpeg b/content/assets/images/about/justinmclean.jpeg
new file mode 100644
index 0000000..51339e2
Binary files /dev/null and b/content/assets/images/about/justinmclean.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/lizhanhui.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/lizhanhui.jpg b/content/assets/images/about/lizhanhui.jpg
new file mode 100644
index 0000000..3d054af
Binary files /dev/null and b/content/assets/images/about/lizhanhui.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/lollipop.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/lollipop.jpeg b/content/assets/images/about/lollipop.jpeg
new file mode 100644
index 0000000..8606c1e
Binary files /dev/null and b/content/assets/images/about/lollipop.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/longdafeng.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/longdafeng.jpeg b/content/assets/images/about/longdafeng.jpeg
new file mode 100644
index 0000000..6039558
Binary files /dev/null and b/content/assets/images/about/longdafeng.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/lukehan.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/lukehan.jpeg b/content/assets/images/about/lukehan.jpeg
new file mode 100644
index 0000000..758ae60
Binary files /dev/null and b/content/assets/images/about/lukehan.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/stevenschew.png
----------------------------------------------------------------------
diff --git a/content/assets/images/about/stevenschew.png b/content/assets/images/about/stevenschew.png
new file mode 100644
index 0000000..f52080a
Binary files /dev/null and b/content/assets/images/about/stevenschew.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/tcrow.png
----------------------------------------------------------------------
diff --git a/content/assets/images/about/tcrow.png b/content/assets/images/about/tcrow.png
new file mode 100644
index 0000000..4240121
Binary files /dev/null and b/content/assets/images/about/tcrow.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/vintagewang.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/vintagewang.jpeg b/content/assets/images/about/vintagewang.jpeg
new file mode 100644
index 0000000..bc2b881
Binary files /dev/null and b/content/assets/images/about/vintagewang.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/vongosling.jpeg
----------------------------------------------------------------------
diff --git a/content/assets/images/about/vongosling.jpeg b/content/assets/images/about/vongosling.jpeg
new file mode 100644
index 0000000..276118b
Binary files /dev/null and b/content/assets/images/about/vongosling.jpeg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/zhangke.png
----------------------------------------------------------------------
diff --git a/content/assets/images/about/zhangke.png b/content/assets/images/about/zhangke.png
new file mode 100644
index 0000000..7bdc881
Binary files /dev/null and b/content/assets/images/about/zhangke.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/zhaoqun911.png
----------------------------------------------------------------------
diff --git a/content/assets/images/about/zhaoqun911.png b/content/assets/images/about/zhaoqun911.png
new file mode 100644
index 0000000..341b7b8
Binary files /dev/null and b/content/assets/images/about/zhaoqun911.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/about/zhouxinyu.png
----------------------------------------------------------------------
diff --git a/content/assets/images/about/zhouxinyu.png b/content/assets/images/about/zhouxinyu.png
new file mode 100644
index 0000000..35b5018
Binary files /dev/null and b/content/assets/images/about/zhouxinyu.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/blog/banner.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/blog/banner.jpg b/content/assets/images/blog/banner.jpg
new file mode 100755
index 0000000..7c149a8
Binary files /dev/null and b/content/assets/images/blog/banner.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/blog/rocketmq-queues.png
----------------------------------------------------------------------
diff --git a/content/assets/images/blog/rocketmq-queues.png b/content/assets/images/blog/rocketmq-queues.png
new file mode 100644
index 0000000..228f313
Binary files /dev/null and b/content/assets/images/blog/rocketmq-queues.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/code_guidelines/author-tag.png
----------------------------------------------------------------------
diff --git a/content/assets/images/code_guidelines/author-tag.png b/content/assets/images/code_guidelines/author-tag.png
new file mode 100644
index 0000000..61344cf
Binary files /dev/null and b/content/assets/images/code_guidelines/author-tag.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/code_guidelines/codestyle-pre.png
----------------------------------------------------------------------
diff --git a/content/assets/images/code_guidelines/codestyle-pre.png b/content/assets/images/code_guidelines/codestyle-pre.png
new file mode 100644
index 0000000..967964e
Binary files /dev/null and b/content/assets/images/code_guidelines/codestyle-pre.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/code_guidelines/codestyle.png
----------------------------------------------------------------------
diff --git a/content/assets/images/code_guidelines/codestyle.png b/content/assets/images/code_guidelines/codestyle.png
new file mode 100644
index 0000000..5136e6e
Binary files /dev/null and b/content/assets/images/code_guidelines/codestyle.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/code_guidelines/copyright-choose.png
----------------------------------------------------------------------
diff --git a/content/assets/images/code_guidelines/copyright-choose.png b/content/assets/images/code_guidelines/copyright-choose.png
new file mode 100644
index 0000000..044130f
Binary files /dev/null and b/content/assets/images/code_guidelines/copyright-choose.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/code_guidelines/copyright.png
----------------------------------------------------------------------
diff --git a/content/assets/images/code_guidelines/copyright.png b/content/assets/images/code_guidelines/copyright.png
new file mode 100644
index 0000000..f653adb
Binary files /dev/null and b/content/assets/images/code_guidelines/copyright.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/2dfire-logo.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/community/2dfire-logo.jpg b/content/assets/images/community/2dfire-logo.jpg
new file mode 100644
index 0000000..2a5ba59
Binary files /dev/null and b/content/assets/images/community/2dfire-logo.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/alibaba-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/alibaba-logo.png b/content/assets/images/community/alibaba-logo.png
new file mode 100644
index 0000000..81dd2e7
Binary files /dev/null and b/content/assets/images/community/alibaba-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/ant-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/ant-logo.png b/content/assets/images/community/ant-logo.png
new file mode 100644
index 0000000..d753a6a
Binary files /dev/null and b/content/assets/images/community/ant-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/china-telecom-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/china-telecom-logo.png b/content/assets/images/community/china-telecom-logo.png
new file mode 100644
index 0000000..ee4001d
Binary files /dev/null and b/content/assets/images/community/china-telecom-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/decent-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/decent-logo.png b/content/assets/images/community/decent-logo.png
new file mode 100644
index 0000000..51dbec4
Binary files /dev/null and b/content/assets/images/community/decent-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/egov-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/egov-logo.png b/content/assets/images/community/egov-logo.png
new file mode 100644
index 0000000..619f526
Binary files /dev/null and b/content/assets/images/community/egov-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/media-logo.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/community/media-logo.jpg b/content/assets/images/community/media-logo.jpg
new file mode 100644
index 0000000..a8e1732
Binary files /dev/null and b/content/assets/images/community/media-logo.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/meizu-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/meizu-logo.png b/content/assets/images/community/meizu-logo.png
new file mode 100644
index 0000000..664f636
Binary files /dev/null and b/content/assets/images/community/meizu-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/shihai-logo.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/community/shihai-logo.jpg b/content/assets/images/community/shihai-logo.jpg
new file mode 100644
index 0000000..b39687f
Binary files /dev/null and b/content/assets/images/community/shihai-logo.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/yeahmobi-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/yeahmobi-logo.png b/content/assets/images/community/yeahmobi-logo.png
new file mode 100644
index 0000000..ef52dae
Binary files /dev/null and b/content/assets/images/community/yeahmobi-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/community/yunpan-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/yunpan-logo.png b/content/assets/images/community/yunpan-logo.png
new file mode 100644
index 0000000..d374780
Binary files /dev/null and b/content/assets/images/community/yunpan-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/feather-small.gif
----------------------------------------------------------------------
diff --git a/content/assets/images/feather-small.gif b/content/assets/images/feather-small.gif
new file mode 100644
index 0000000..5a8a79b
Binary files /dev/null and b/content/assets/images/feather-small.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/release-manual/14864364524873.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/release-manual/14864364524873.jpg b/content/assets/images/release-manual/14864364524873.jpg
new file mode 100644
index 0000000..3b8ce4e
Binary files /dev/null and b/content/assets/images/release-manual/14864364524873.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/release-manual/14864365609580.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/release-manual/14864365609580.jpg b/content/assets/images/release-manual/14864365609580.jpg
new file mode 100644
index 0000000..7c88571
Binary files /dev/null and b/content/assets/images/release-manual/14864365609580.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/release-manual/14864367062507.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/release-manual/14864367062507.jpg b/content/assets/images/release-manual/14864367062507.jpg
new file mode 100644
index 0000000..df6d858
Binary files /dev/null and b/content/assets/images/release-manual/14864367062507.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/release-manual/14864368514198.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/release-manual/14864368514198.jpg b/content/assets/images/release-manual/14864368514198.jpg
new file mode 100644
index 0000000..cb241eb
Binary files /dev/null and b/content/assets/images/release-manual/14864368514198.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/release-manual/14864376551544.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/release-manual/14864376551544.jpg b/content/assets/images/release-manual/14864376551544.jpg
new file mode 100644
index 0000000..1792e8d
Binary files /dev/null and b/content/assets/images/release-manual/14864376551544.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rewards/2016_oschina.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/rewards/2016_oschina.jpg b/content/assets/images/rewards/2016_oschina.jpg
new file mode 100644
index 0000000..25612bd
Binary files /dev/null and b/content/assets/images/rewards/2016_oschina.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-feature-bigdata.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-feature-bigdata.png b/content/assets/images/rmq-feature-bigdata.png
new file mode 100755
index 0000000..b5d0978
Binary files /dev/null and b/content/assets/images/rmq-feature-bigdata.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-feature-finance.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-feature-finance.png b/content/assets/images/rmq-feature-finance.png
new file mode 100755
index 0000000..56f04cc
Binary files /dev/null and b/content/assets/images/rmq-feature-finance.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-feature-industry.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-feature-industry.png b/content/assets/images/rmq-feature-industry.png
new file mode 100755
index 0000000..91eb933
Binary files /dev/null and b/content/assets/images/rmq-feature-industry.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-feature-lowlatency.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-feature-lowlatency.png b/content/assets/images/rmq-feature-lowlatency.png
new file mode 100755
index 0000000..994fcc1
Binary files /dev/null and b/content/assets/images/rmq-feature-lowlatency.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-feature-massiveaccumulation.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-feature-massiveaccumulation.png b/content/assets/images/rmq-feature-massiveaccumulation.png
new file mode 100755
index 0000000..7944360
Binary files /dev/null and b/content/assets/images/rmq-feature-massiveaccumulation.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-feature-neutral.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-feature-neutral.png b/content/assets/images/rmq-feature-neutral.png
new file mode 100755
index 0000000..ca0ae83
Binary files /dev/null and b/content/assets/images/rmq-feature-neutral.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-home-page.jpg
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-home-page.jpg b/content/assets/images/rmq-home-page.jpg
new file mode 100755
index 0000000..8d5fe01
Binary files /dev/null and b/content/assets/images/rmq-home-page.jpg differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-logo.png b/content/assets/images/rmq-logo.png
new file mode 100644
index 0000000..bbfd062
Binary files /dev/null and b/content/assets/images/rmq-logo.png differ
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/assets/images/rmq-model.png
----------------------------------------------------------------------
diff --git a/content/assets/images/rmq-model.png b/content/assets/images/rmq-model.png
new file mode 100644
index 0000000..a5eebf8
Binary files /dev/null and b/content/assets/images/rmq-model.png differ