You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by yu...@apache.org on 2016/12/19 09:41:00 UTC

[43/43] incubator-rocketmq git commit: Finish code dump. Reviewed by: @yukon @vongosling @stevenschew @vintagewang @lollipop @zander

Finish code dump.
Reviewed by:
@yukon
@vongosling
@stevenschew
@vintagewang
@lollipop
@zander


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/057d0e9b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/057d0e9b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/057d0e9b

Branch: refs/heads/master
Commit: 057d0e9b152ccb1e563d2e41847f45dcd783d114
Parents: 
Author: xinyuzhou.zxy <xi...@alibaba-inc.com>
Authored: Mon Dec 19 17:34:19 2016 +0800
Committer: xinyuzhou.zxy <xi...@alibaba-inc.com>
Committed: Mon Dec 19 17:34:19 2016 +0800

----------------------------------------------------------------------
 .gitignore                                      |   11 +
 .travis.yml                                     |    5 +
 CONTRIBUTING.md                                 |   17 +
 LICENSE                                         |  201 ++
 NOTICE                                          |    8 +
 README.md                                       |   52 +
 benchmark/consumer.sh                           |    6 +
 benchmark/producer.sh                           |    6 +
 benchmark/runclass.sh                           |   32 +
 benchmark/tproducer.sh                          |    6 +
 checkstyle/checkstyle.xml                       |  128 ++
 conf/2m-2s-async/broker-a-s.properties          |   22 +
 conf/2m-2s-async/broker-a.properties            |   22 +
 conf/2m-2s-async/broker-b-s.properties          |   22 +
 conf/2m-2s-async/broker-b.properties            |   22 +
 conf/2m-2s-sync/broker-a-s.properties           |   22 +
 conf/2m-2s-sync/broker-a.properties             |   22 +
 conf/2m-2s-sync/broker-b-s.properties           |   22 +
 conf/2m-2s-sync/broker-b.properties             |   22 +
 conf/2m-noslave/broker-a.properties             |   22 +
 conf/2m-noslave/broker-b.properties             |   22 +
 conf/broker.conf                                |   22 +
 conf/logback_broker.xml                         |  328 +++
 conf/logback_filtersrv.xml                      |   91 +
 conf/logback_namesrv.xml                        |   91 +
 conf/logback_tools.xml                          |   96 +
 deploy.bat                                      |   16 +
 eclipse.bat                                     |   16 +
 install.bat                                     |   17 +
 install.sh                                      |   28 +
 pom.xml                                         |  518 +++++
 release-client.xml                              |   52 +
 release.xml                                     |   60 +
 rocketmq-broker/pom.xml                         |   79 +
 .../rocketmq/broker/BrokerController.java       |  773 +++++++
 .../rocketmq/broker/BrokerPathConfigHelper.java |   52 +
 .../alibaba/rocketmq/broker/BrokerStartup.java  |  266 +++
 .../broker/client/ClientChannelInfo.java        |  115 +
 .../client/ClientHousekeepingService.java       |  100 +
 .../broker/client/ConsumerGroupInfo.java        |  273 +++
 .../client/ConsumerIdsChangeListener.java       |   29 +
 .../rocketmq/broker/client/ConsumerManager.java |  187 ++
 .../DefaultConsumerIdsChangeListener.java       |   45 +
 .../rocketmq/broker/client/ProducerManager.java |  199 ++
 .../broker/client/net/Broker2Client.java        |  317 +++
 .../client/rebalance/RebalanceLockManager.java  |  281 +++
 .../broker/filtersrv/FilterServerManager.java   |  175 ++
 .../broker/filtersrv/FilterServerUtil.java      |   43 +
 .../broker/latency/BrokerFastFailure.java       |  115 +
 .../latency/BrokerFixedThreadPoolExecutor.java  |   46 +
 .../rocketmq/broker/latency/FutureTaskExt.java  |   42 +
 .../broker/longpolling/ManyPullRequest.java     |   49 +
 .../NotifyMessageArrivingListener.java          |   36 +
 .../broker/longpolling/PullRequest.java         |   74 +
 .../longpolling/PullRequestHoldService.java     |  169 ++
 .../broker/mqtrace/ConsumeMessageContext.java   |  172 ++
 .../broker/mqtrace/ConsumeMessageHook.java      |   27 +
 .../broker/mqtrace/SendMessageContext.java      |  261 +++
 .../broker/mqtrace/SendMessageHook.java         |   27 +
 .../broker/offset/ConsumerOffsetManager.java    |  249 +++
 .../rocketmq/broker/out/BrokerOuterAPI.java     |  302 +++
 .../broker/pagecache/ManyMessageTransfer.java   |   90 +
 .../broker/pagecache/OneMessageTransfer.java    |   79 +
 .../broker/pagecache/QueryMessageTransfer.java  |   90 +
 .../plugin/AbstractPluginMessageStore.java      |  236 +++
 .../broker/plugin/MessageStoreFactory.java      |   50 +
 .../plugin/MessageStorePluginContext.java       |   61 +
 .../processor/AbstractSendMessageProcessor.java |  332 +++
 .../broker/processor/AdminBrokerProcessor.java  | 1212 +++++++++++
 .../broker/processor/ClientManageProcessor.java |  164 ++
 .../processor/ConsumerManageProcessor.java      |  157 ++
 .../processor/EndTransactionProcessor.java      |  236 +++
 .../processor/ForwardRequestProcessor.java      |   51 +
 .../broker/processor/PullMessageProcessor.java  |  540 +++++
 .../broker/processor/QueryMessageProcessor.java |  178 ++
 .../broker/processor/SendMessageProcessor.java  |  496 +++++
 .../rocketmq/broker/slave/SlaveSynchronize.java |  158 ++
 .../subscription/SubscriptionGroupManager.java  |  203 ++
 .../broker/topic/TopicConfigManager.java        |  440 ++++
 .../broker/transaction/TransactionRecord.java   |   44 +
 .../broker/transaction/TransactionStore.java    |   46 +
 .../transaction/jdbc/JDBCTransactionStore.java  |  240 +++
 .../jdbc/JDBCTransactionStoreConfig.java        |   65 +
 .../src/main/resources/transaction.sql          |    4 +
 .../rocketmq/broker/api/SendMessageTest.java    |   87 +
 .../offset/ConsumerOffsetManagerTest.java       |   68 +
 .../broker/topic/TopicConfigManagerTest.java    |   71 +
 rocketmq-client/deploy.bat                      |    1 +
 rocketmq-client/install.bat                     |    2 +
 rocketmq-client/pom.xml                         |   97 +
 .../alibaba/rocketmq/client/ClientConfig.java   |  202 ++
 .../com/alibaba/rocketmq/client/MQAdmin.java    |  173 ++
 .../com/alibaba/rocketmq/client/MQHelper.java   |   94 +
 .../alibaba/rocketmq/client/QueryResult.java    |   53 +
 .../com/alibaba/rocketmq/client/Validators.java |  150 ++
 .../rocketmq/client/admin/MQAdminExtInner.java  |   24 +
 .../rocketmq/client/common/ClientErrorCode.java |   26 +
 .../client/common/ThreadLocalIndex.java         |   51 +
 .../consumer/AllocateMessageQueueStrategy.java  |   60 +
 .../client/consumer/DefaultMQPullConsumer.java  |  381 ++++
 .../client/consumer/DefaultMQPushConsumer.java  |  519 +++++
 .../rocketmq/client/consumer/MQConsumer.java    |   78 +
 .../client/consumer/MQPullConsumer.java         |  229 ++
 .../consumer/MQPullConsumerScheduleService.java |  212 ++
 .../client/consumer/MQPushConsumer.java         |  117 +
 .../client/consumer/MessageQueueListener.java   |   41 +
 .../rocketmq/client/consumer/PullCallback.java  |   28 +
 .../rocketmq/client/consumer/PullResult.java    |   82 +
 .../rocketmq/client/consumer/PullStatus.java    |   39 +
 .../client/consumer/PullTaskCallback.java       |   24 +
 .../client/consumer/PullTaskContext.java        |   44 +
 .../listener/ConsumeConcurrentlyContext.java    |   66 +
 .../listener/ConsumeConcurrentlyStatus.java     |   31 +
 .../listener/ConsumeOrderlyContext.java         |   61 +
 .../consumer/listener/ConsumeOrderlyStatus.java |   41 +
 .../consumer/listener/ConsumeReturnType.java    |   44 +
 .../consumer/listener/MessageListener.java      |   25 +
 .../listener/MessageListenerConcurrently.java   |   42 +
 .../listener/MessageListenerOrderly.java        |   42 +
 .../AllocateMessageQueueAveragely.java          |   75 +
 .../AllocateMessageQueueAveragelyByCircle.java  |   71 +
 .../rebalance/AllocateMessageQueueByConfig.java |   50 +
 .../AllocateMessageQueueByMachineRoom.java      |   75 +
 .../consumer/store/LocalFileOffsetStore.java    |  228 ++
 .../consumer/store/OffsetSerializeWrapper.java  |   42 +
 .../client/consumer/store/OffsetStore.java      |   97 +
 .../client/consumer/store/ReadOffsetType.java   |   32 +
 .../consumer/store/RemoteBrokerOffsetStore.java |  261 +++
 .../client/exception/MQBrokerException.java     |   48 +
 .../client/exception/MQClientException.java     |   62 +
 .../client/hook/CheckForbiddenContext.java      |  148 ++
 .../client/hook/CheckForbiddenHook.java         |   31 +
 .../client/hook/ConsumeMessageContext.java      |  104 +
 .../client/hook/ConsumeMessageHook.java         |   25 +
 .../client/hook/FilterMessageContext.java       |   91 +
 .../rocketmq/client/hook/FilterMessageHook.java |   27 +
 .../client/hook/SendMessageContext.java         |  157 ++
 .../rocketmq/client/hook/SendMessageHook.java   |   25 +
 .../client/impl/ClientRemotingProcessor.java    |  199 ++
 .../rocketmq/client/impl/CommunicationMode.java |   26 +
 .../rocketmq/client/impl/FindBrokerResult.java  |   41 +
 .../rocketmq/client/impl/MQAdminImpl.java       |  418 ++++
 .../rocketmq/client/impl/MQClientAPIImpl.java   | 1996 ++++++++++++++++++
 .../rocketmq/client/impl/MQClientManager.java   |   71 +
 .../ConsumeMessageConcurrentlyService.java      |  471 +++++
 .../consumer/ConsumeMessageOrderlyService.java  |  536 +++++
 .../impl/consumer/ConsumeMessageService.java    |   56 +
 .../consumer/DefaultMQPullConsumerImpl.java     |  706 +++++++
 .../consumer/DefaultMQPushConsumerImpl.java     | 1071 ++++++++++
 .../client/impl/consumer/MQConsumerInner.java   |   66 +
 .../client/impl/consumer/MessageQueueLock.java  |   46 +
 .../client/impl/consumer/ProcessQueue.java      |  451 ++++
 .../client/impl/consumer/PullAPIWrapper.java    |  255 +++
 .../impl/consumer/PullMessageService.java       |  109 +
 .../client/impl/consumer/PullRequest.java       |  114 +
 .../client/impl/consumer/PullResultExt.java     |   55 +
 .../client/impl/consumer/RebalanceImpl.java     |  481 +++++
 .../client/impl/consumer/RebalancePullImpl.java |   85 +
 .../client/impl/consumer/RebalancePushImpl.java |  196 ++
 .../client/impl/consumer/RebalanceService.java  |   58 +
 .../client/impl/factory/MQClientInstance.java   | 1147 ++++++++++
 .../impl/producer/DefaultMQProducerImpl.java    | 1080 ++++++++++
 .../client/impl/producer/MQProducerInner.java   |   49 +
 .../client/impl/producer/TopicPublishInfo.java  |  133 ++
 .../client/latency/LatencyFaultTolerance.java   |   31 +
 .../latency/LatencyFaultToleranceImpl.java      |  191 ++
 .../client/latency/MQFaultStrategy.java         |  108 +
 .../rocketmq/client/log/ClientLogger.java       |  116 +
 .../client/producer/DefaultMQProducer.java      |  380 ++++
 .../producer/LocalTransactionExecuter.java      |   27 +
 .../client/producer/LocalTransactionState.java  |   26 +
 .../rocketmq/client/producer/MQProducer.java    |  106 +
 .../client/producer/MessageQueueSelector.java   |   30 +
 .../rocketmq/client/producer/SendCallback.java  |   27 +
 .../rocketmq/client/producer/SendResult.java    |  143 ++
 .../rocketmq/client/producer/SendStatus.java    |   27 +
 .../producer/TransactionCheckListener.java      |   27 +
 .../client/producer/TransactionMQProducer.java  |  109 +
 .../client/producer/TransactionSendResult.java  |   38 +
 .../selector/SelectMessageQueueByHash.java      |   41 +
 .../SelectMessageQueueByMachineRoom.java        |   48 +
 .../selector/SelectMessageQueueByRandoom.java   |   44 +
 .../client/stat/ConsumerStatsManager.java       |  165 ++
 .../main/resources/log4j_rocketmq_client.xml    |   58 +
 .../main/resources/logback_rocketmq_client.xml  |   58 +
 .../alibaba/rocketmq/client/ValidatorsTest.java |   39 +
 .../AllocateMessageQueueAveragelyTest.java      |  272 +++
 rocketmq-common/pom.xml                         |   43 +
 .../alibaba/rocketmq/common/BrokerConfig.java   |  540 +++++
 .../rocketmq/common/BrokerConfigSingleton.java  |   39 +
 .../alibaba/rocketmq/common/ConfigManager.java  |   89 +
 .../alibaba/rocketmq/common/Configuration.java  |  310 +++
 .../alibaba/rocketmq/common/CountDownLatch.java |  207 ++
 .../alibaba/rocketmq/common/DataVersion.java    |   82 +
 .../com/alibaba/rocketmq/common/MQVersion.java  |  362 ++++
 .../com/alibaba/rocketmq/common/MixAll.java     |  486 +++++
 .../java/com/alibaba/rocketmq/common/Pair.java  |   51 +
 .../alibaba/rocketmq/common/ServiceState.java   |   39 +
 .../alibaba/rocketmq/common/ServiceThread.java  |  142 ++
 .../alibaba/rocketmq/common/SystemClock.java    |   26 +
 .../rocketmq/common/ThreadFactoryImpl.java      |   39 +
 .../alibaba/rocketmq/common/TopicConfig.java    |  206 ++
 .../rocketmq/common/TopicFilterType.java        |   25 +
 .../com/alibaba/rocketmq/common/UtilAll.java    |  525 +++++
 .../rocketmq/common/admin/ConsumeStats.java     |   67 +
 .../rocketmq/common/admin/OffsetWrapper.java    |   59 +
 .../rocketmq/common/admin/RollbackStats.java    |   91 +
 .../rocketmq/common/admin/TopicOffset.java      |   58 +
 .../rocketmq/common/admin/TopicStatsTable.java  |   42 +
 .../common/annotation/ImportantField.java       |   29 +
 .../common/constant/DBMsgConstants.java         |   22 +
 .../rocketmq/common/constant/LoggerName.java    |   40 +
 .../rocketmq/common/constant/PermName.java      |   56 +
 .../common/consumer/ConsumeFromWhere.java       |   34 +
 .../rocketmq/common/filter/FilterAPI.java       |   72 +
 .../rocketmq/common/filter/FilterContext.java   |   32 +
 .../rocketmq/common/filter/MessageFilter.java   |   25 +
 .../alibaba/rocketmq/common/filter/impl/Op.java |   38 +
 .../rocketmq/common/filter/impl/Operand.java    |   26 +
 .../rocketmq/common/filter/impl/Operator.java   |   71 +
 .../rocketmq/common/filter/impl/PolishExpr.java |  189 ++
 .../rocketmq/common/filter/impl/Type.java       |   26 +
 .../alibaba/rocketmq/common/help/FAQUrl.java    |  101 +
 .../rocketmq/common/hook/FilterCheckHook.java   |   33 +
 .../rocketmq/common/message/Message.java        |  212 ++
 .../common/message/MessageAccessor.java         |  104 +
 .../common/message/MessageClientExt.java        |   45 +
 .../common/message/MessageClientIDSetter.java   |  142 ++
 .../rocketmq/common/message/MessageConst.java   |   75 +
 .../rocketmq/common/message/MessageDecoder.java |  395 ++++
 .../rocketmq/common/message/MessageExt.java     |  238 +++
 .../rocketmq/common/message/MessageId.java      |   54 +
 .../rocketmq/common/message/MessageQueue.java   |  134 ++
 .../common/message/MessageQueueForC.java        |  152 ++
 .../rocketmq/common/message/MessageType.java    |   25 +
 .../rocketmq/common/namesrv/NamesrvConfig.java  |  100 +
 .../rocketmq/common/namesrv/NamesrvUtil.java    |   25 +
 .../common/namesrv/RegisterBrokerResult.java    |   60 +
 .../rocketmq/common/namesrv/TopAddressing.java  |  116 +
 .../common/protocol/MQProtosHelper.java         |   57 +
 .../rocketmq/common/protocol/RequestCode.java   |  166 ++
 .../rocketmq/common/protocol/ResponseCode.java  |   77 +
 .../common/protocol/body/BrokerStatsData.java   |   60 +
 .../common/protocol/body/BrokerStatsItem.java   |   54 +
 .../rocketmq/common/protocol/body/CMResult.java |   27 +
 .../common/protocol/body/ClusterInfo.java       |   76 +
 .../common/protocol/body/Connection.java        |   71 +
 .../common/protocol/body/ConsumeByWho.java      |   84 +
 .../body/ConsumeMessageDirectlyResult.java      |   87 +
 .../common/protocol/body/ConsumeStatsList.java  |   58 +
 .../common/protocol/body/ConsumeStatus.java     |   88 +
 .../protocol/body/ConsumerConnection.java       |  102 +
 .../body/ConsumerOffsetSerializeWrapper.java    |   41 +
 .../protocol/body/ConsumerRunningInfo.java      |  315 +++
 .../protocol/body/GetConsumerStatusBody.java    |   55 +
 .../common/protocol/body/GroupList.java         |   40 +
 .../rocketmq/common/protocol/body/KVTable.java  |   40 +
 .../protocol/body/LockBatchRequestBody.java     |   65 +
 .../protocol/body/LockBatchResponseBody.java    |   45 +
 .../common/protocol/body/ProcessQueueInfo.java  |  185 ++
 .../protocol/body/ProducerConnection.java       |   40 +
 .../protocol/body/QueryConsumeTimeSpanBody.java |   41 +
 .../body/QueryCorrectionOffsetBody.java         |   40 +
 .../common/protocol/body/QueueTimeSpan.java     |  100 +
 .../protocol/body/RegisterBrokerBody.java       |   49 +
 .../common/protocol/body/ResetOffsetBody.java   |   42 +
 .../protocol/body/ResetOffsetBodyForC.java      |   38 +
 .../protocol/body/SubscriptionGroupWrapper.java |   55 +
 .../body/TopicConfigSerializeWrapper.java       |   51 +
 .../common/protocol/body/TopicList.java         |   51 +
 .../protocol/body/UnlockBatchRequestBody.java   |   64 +
 .../CheckTransactionStateRequestHeader.java     |   79 +
 .../CheckTransactionStateResponseHeader.java    |   97 +
 .../header/CloneGroupOffsetRequestHeader.java   |   84 +
 ...nsumeMessageDirectlyResultRequestHeader.java |   80 +
 .../ConsumerSendMsgBackRequestHeader.java       |  125 ++
 .../header/CreateTopicRequestHeader.java        |  143 ++
 .../DeleteSubscriptionGroupRequestHeader.java   |   46 +
 .../header/DeleteTopicRequestHeader.java        |   49 +
 .../header/EndTransactionRequestHeader.java     |  145 ++
 .../header/EndTransactionResponseHeader.java    |   37 +
 .../header/GetAllTopicConfigResponseHeader.java |   35 +
 .../header/GetBrokerConfigResponseHeader.java   |   49 +
 .../header/GetConsumeStatsInBrokerHeader.java   |   41 +
 .../header/GetConsumeStatsRequestHeader.java    |   58 +
 .../GetConsumerConnectionListRequestHeader.java |   50 +
 .../GetConsumerListByGroupRequestHeader.java    |   46 +
 .../GetConsumerListByGroupResponseBody.java     |   40 +
 .../GetConsumerListByGroupResponseHeader.java   |   32 +
 .../GetConsumerRunningInfoRequestHeader.java    |   71 +
 .../header/GetConsumerStatusRequestHeader.java  |   73 +
 .../GetEarliestMsgStoretimeRequestHeader.java   |   62 +
 .../GetEarliestMsgStoretimeResponseHeader.java  |   49 +
 .../header/GetMaxOffsetRequestHeader.java       |   61 +
 .../header/GetMaxOffsetResponseHeader.java      |   49 +
 .../header/GetMinOffsetRequestHeader.java       |   61 +
 .../header/GetMinOffsetResponseHeader.java      |   49 +
 .../GetProducerConnectionListRequestHeader.java |   48 +
 .../header/GetTopicStatsInfoRequestHeader.java  |   47 +
 .../header/GetTopicsByClusterRequestHeader.java |   47 +
 .../NotifyConsumerIdsChangedRequestHeader.java  |   46 +
 .../header/PullMessageRequestHeader.java        |  158 ++
 .../header/PullMessageResponseHeader.java       |   85 +
 .../QueryConsumeTimeSpanRequestHeader.java      |   59 +
 .../QueryConsumerOffsetRequestHeader.java       |   73 +
 .../QueryConsumerOffsetResponseHeader.java      |   49 +
 .../header/QueryCorrectionOffsetHeader.java     |   75 +
 .../header/QueryMessageRequestHeader.java       |   98 +
 .../header/QueryMessageResponseHeader.java      |   61 +
 .../QueryTopicConsumeByWhoRequestHeader.java    |   50 +
 .../header/ResetOffsetRequestHeader.java        |   85 +
 .../header/SearchOffsetRequestHeader.java       |   76 +
 .../header/SearchOffsetResponseHeader.java      |   49 +
 .../header/SendMessageRequestHeader.java        |  181 ++
 .../header/SendMessageRequestHeaderV2.java      |  211 ++
 .../header/SendMessageResponseHeader.java       |   82 +
 .../header/UnregisterClientRequestHeader.java   |   77 +
 .../header/UnregisterClientResponseHeader.java  |   38 +
 .../UpdateConsumerOffsetRequestHeader.java      |   85 +
 .../UpdateConsumerOffsetResponseHeader.java     |   35 +
 .../ViewBrokerStatsDataRequestHeader.java       |   56 +
 .../header/ViewMessageRequestHeader.java        |   49 +
 .../header/ViewMessageResponseHeader.java       |   35 +
 .../RegisterFilterServerRequestHeader.java      |   43 +
 .../RegisterFilterServerResponseHeader.java     |   55 +
 ...RegisterMessageFilterClassRequestHeader.java |   79 +
 .../namesrv/DeleteKVConfigRequestHeader.java    |   59 +
 .../DeleteTopicInNamesrvRequestHeader.java      |   46 +
 .../namesrv/GetKVConfigRequestHeader.java       |   59 +
 .../namesrv/GetKVConfigResponseHeader.java      |   47 +
 .../GetKVListByNamespaceRequestHeader.java      |   47 +
 .../namesrv/GetRouteInfoRequestHeader.java      |   49 +
 .../namesrv/GetRouteInfoResponseHeader.java     |   37 +
 .../namesrv/PutKVConfigRequestHeader.java       |   67 +
 .../namesrv/RegisterBrokerRequestHeader.java    |   97 +
 .../namesrv/RegisterBrokerResponseHeader.java   |   59 +
 .../RegisterOrderTopicRequestHeader.java        |   62 +
 .../namesrv/UnRegisterBrokerRequestHeader.java  |   85 +
 .../WipeWritePermOfBrokerRequestHeader.java     |   47 +
 .../WipeWritePermOfBrokerResponseHeader.java    |   46 +
 .../common/protocol/heartbeat/ConsumeType.java  |   42 +
 .../common/protocol/heartbeat/ConsumerData.java |  107 +
 .../protocol/heartbeat/HeartbeatData.java       |   73 +
 .../common/protocol/heartbeat/MessageModel.java |   48 +
 .../common/protocol/heartbeat/ProducerData.java |   44 +
 .../protocol/heartbeat/SubscriptionData.java    |  188 ++
 .../common/protocol/route/BrokerData.java       |  113 +
 .../common/protocol/route/QueueData.java        |  118 ++
 .../common/protocol/route/TopicRouteData.java   |  146 ++
 .../common/protocol/topic/OffsetMovedEvent.java |   76 +
 .../common/queue/ConcurrentTreeMap.java         |   81 +
 .../rocketmq/common/queue/RoundQueue.java       |   53 +
 .../rocketmq/common/running/RunningStats.java   |   25 +
 .../rocketmq/common/stats/MomentStatsItem.java  |   82 +
 .../common/stats/MomentStatsItemSet.java        |   94 +
 .../rocketmq/common/stats/StatsItem.java        |  272 +++
 .../rocketmq/common/stats/StatsItemSet.java     |  210 ++
 .../rocketmq/common/stats/StatsSnapshot.java    |   54 +
 .../subscription/SubscriptionGroupConfig.java   |  194 ++
 .../rocketmq/common/sysflag/MessageSysFlag.java |   44 +
 .../rocketmq/common/sysflag/PullSysFlag.java    |   76 +
 .../common/sysflag/SubscriptionSysFlag.java     |   55 +
 .../rocketmq/common/sysflag/TopicSysFlag.java   |   79 +
 .../rocketmq/common/utils/ChannelUtil.java      |   35 +
 .../rocketmq/common/utils/HttpTinyClient.java   |  154 ++
 .../rocketmq/common/utils/IOTinyUtils.java      |  167 ++
 .../com/alibaba/rocketmq/common/MixAllTest.java |   39 +
 .../rocketmq/common/RemotingUtilTest.java       |   29 +
 .../alibaba/rocketmq/common/UtilAllTest.java    |  164 ++
 .../rocketmq/common/filter/FilterAPITest.java   |   46 +
 .../rocketmq/common/filter/PolishExprTest.java  |   67 +
 .../common/protocol/ConsumeStatusTest.java      |   36 +
 .../common/protocol/MQProtosHelperTest.java     |   25 +
 rocketmq-example/pom.xml                        |   58 +
 .../rocketmq/example/benchmark/Consumer.java    |  214 ++
 .../rocketmq/example/benchmark/Producer.java    |  262 +++
 .../example/benchmark/TransactionProducer.java  |  265 +++
 .../example/broadcast/PushConsumer.java         |   54 +
 .../rocketmq/example/filter/Consumer.java       |   53 +
 .../rocketmq/example/filter/Producer.java       |   46 +
 .../rocketmq/example/operation/Consumer.java    |  114 +
 .../rocketmq/example/operation/Producer.java    |  104 +
 .../rocketmq/example/ordermessage/Consumer.java |   67 +
 .../rocketmq/example/ordermessage/Producer.java |   68 +
 .../rocketmq/example/quickstart/Consumer.java   |   51 +
 .../rocketmq/example/quickstart/Producer.java   |   53 +
 .../rocketmq/example/simple/AsyncProducer.java  |   61 +
 .../rocketmq/example/simple/CachedQueue.java    |   32 +
 .../rocketmq/example/simple/Producer.java       |   50 +
 .../rocketmq/example/simple/PullConsumer.java   |   80 +
 .../example/simple/PullConsumerTest.java        |   47 +
 .../example/simple/PullScheduleService.java     |   72 +
 .../rocketmq/example/simple/PushConsumer.java   |   50 +
 .../example/simple/RandomAsyncCommit.java       |   60 +
 .../rocketmq/example/simple/TestProducer.java   |   54 +
 .../TransactionCheckListenerImpl.java           |   45 +
 .../transaction/TransactionExecuterImpl.java    |   43 +
 .../transaction/TransactionProducer.java        |   61 +
 .../src/main/resources/MessageFilterImpl.java   |   22 +
 rocketmq-filtersrv/pom.xml                      |   62 +
 .../filtersrv/FilterServerOuterAPI.java         |   82 +
 .../rocketmq/filtersrv/FiltersrvConfig.java     |  158 ++
 .../rocketmq/filtersrv/FiltersrvController.java |  226 ++
 .../rocketmq/filtersrv/FiltersrvStartup.java    |  183 ++
 .../rocketmq/filtersrv/filter/DynaCode.java     |  393 ++++
 .../filter/FilterClassFetchMethod.java          |   22 +
 .../filtersrv/filter/FilterClassInfo.java       |   57 +
 .../filtersrv/filter/FilterClassLoader.java     |   24 +
 .../filtersrv/filter/FilterClassManager.java    |  175 ++
 .../filter/HttpFilterClassFetchMethod.java      |   53 +
 .../processor/DefaultRequestProcessor.java      |  355 ++++
 .../stats/FilterServerStatsManager.java         |   65 +
 rocketmq-namesrv/pom.xml                        |   58 +
 .../rocketmq/namesrv/NamesrvController.java     |  167 ++
 .../rocketmq/namesrv/NamesrvStartup.java        |  184 ++
 .../namesrv/kvconfig/KVConfigManager.java       |  203 ++
 .../kvconfig/KVConfigSerializeWrapper.java      |   39 +
 .../processor/ClusterTestRequestProcessor.java  |   91 +
 .../processor/DefaultRequestProcessor.java      |  491 +++++
 .../routeinfo/BrokerHousekeepingService.java    |   61 +
 .../namesrv/routeinfo/RouteInfoManager.java     |  815 +++++++
 rocketmq-remoting/pom.xml                       |   51 +
 .../rocketmq/remoting/ChannelEventListener.java |   37 +
 .../rocketmq/remoting/CommandCustomHeader.java  |   27 +
 .../rocketmq/remoting/InvokeCallback.java       |   28 +
 .../com/alibaba/rocketmq/remoting/RPCHook.java  |   29 +
 .../rocketmq/remoting/RemotingClient.java       |   62 +
 .../rocketmq/remoting/RemotingServer.java       |   63 +
 .../rocketmq/remoting/RemotingService.java      |   28 +
 .../rocketmq/remoting/annotation/CFNotNull.java |   32 +
 .../remoting/annotation/CFNullable.java         |   32 +
 .../alibaba/rocketmq/remoting/common/Pair.java  |   51 +
 .../remoting/common/RemotingHelper.java         |  212 ++
 .../rocketmq/remoting/common/RemotingUtil.java  |  215 ++
 .../common/SemaphoreReleaseOnlyOnce.java        |   48 +
 .../rocketmq/remoting/common/ServiceThread.java |  141 ++
 .../exception/RemotingCommandException.java     |   34 +
 .../exception/RemotingConnectException.java     |   34 +
 .../remoting/exception/RemotingException.java   |   34 +
 .../exception/RemotingSendRequestException.java |   34 +
 .../exception/RemotingTimeoutException.java     |   40 +
 .../RemotingTooMuchRequestException.java        |   29 +
 .../remoting/netty/NettyClientConfig.java       |  151 ++
 .../rocketmq/remoting/netty/NettyDecoder.java   |   69 +
 .../rocketmq/remoting/netty/NettyEncoder.java   |   56 +
 .../rocketmq/remoting/netty/NettyEvent.java     |   57 +
 .../rocketmq/remoting/netty/NettyEventType.java |   28 +
 .../remoting/netty/NettyRemotingAbstract.java   |  452 ++++
 .../remoting/netty/NettyRemotingClient.java     |  682 ++++++
 .../remoting/netty/NettyRemotingServer.java     |  384 ++++
 .../remoting/netty/NettyRequestProcessor.java   |   33 +
 .../remoting/netty/NettyServerConfig.java       |  161 ++
 .../remoting/netty/NettySystemConfig.java       |   42 +
 .../rocketmq/remoting/netty/RequestTask.java    |   83 +
 .../rocketmq/remoting/netty/ResponseFuture.java |  146 ++
 .../remoting/protocol/LanguageCode.java         |   49 +
 .../remoting/protocol/RemotingCommand.java      |  569 +++++
 .../remoting/protocol/RemotingCommandType.java  |   26 +
 .../remoting/protocol/RemotingSerializable.java |   67 +
 .../protocol/RemotingSysResponseCode.java       |   31 +
 .../remoting/protocol/RocketMQSerializable.java |  214 ++
 .../remoting/protocol/SerializeType.java        |   42 +
 .../remoting/protocol/protocol.sevialize.txt    |    6 +
 .../rocketmq/remoting/protocol/protocol.txt     |    6 +
 .../rocketmq/remoting/ExceptionTest.java        |   94 +
 .../com/alibaba/rocketmq/remoting/MixTest.java  |   34 +
 .../rocketmq/remoting/NettyConnectionTest.java  |   61 +
 .../rocketmq/remoting/NettyIdleTest.java        |   91 +
 .../alibaba/rocketmq/remoting/NettyRPCTest.java |  253 +++
 .../rocketmq/remoting/SyncInvokeTest.java       |   54 +
 .../rocketmq/subclass/TestSubClassAuto.java     |   34 +
 rocketmq-srvutil/pom.xml                        |   51 +
 .../alibaba/rocketmq/srvutil/ServerUtil.java    |   83 +
 rocketmq-store/pom.xml                          |   46 +
 .../store/AllocateMappedFileService.java        |  342 +++
 .../rocketmq/store/AppendMessageCallback.java   |   41 +
 .../rocketmq/store/AppendMessageResult.java     |  138 ++
 .../rocketmq/store/AppendMessageStatus.java     |   31 +
 .../com/alibaba/rocketmq/store/CommitLog.java   | 1296 ++++++++++++
 .../alibaba/rocketmq/store/ConsumeQueue.java    |  495 +++++
 .../rocketmq/store/DefaultMessageFilter.java    |   47 +
 .../rocketmq/store/DefaultMessageStore.java     | 1748 +++++++++++++++
 .../alibaba/rocketmq/store/DispatchRequest.java |  174 ++
 .../rocketmq/store/GetMessageResult.java        |  158 ++
 .../rocketmq/store/GetMessageStatus.java        |   41 +
 .../com/alibaba/rocketmq/store/MappedFile.java  |  591 ++++++
 .../alibaba/rocketmq/store/MappedFileQueue.java |  606 ++++++
 .../rocketmq/store/MessageArrivingListener.java |   22 +
 .../rocketmq/store/MessageExtBrokerInner.java   |   57 +
 .../alibaba/rocketmq/store/MessageFilter.java   |   27 +
 .../alibaba/rocketmq/store/MessageStore.java    |  135 ++
 .../rocketmq/store/PutMessageResult.java        |   64 +
 .../rocketmq/store/PutMessageStatus.java        |   33 +
 .../rocketmq/store/QueryMessageResult.java      |   81 +
 .../rocketmq/store/ReferenceResource.java       |   87 +
 .../alibaba/rocketmq/store/RunningFlags.java    |  139 ++
 .../store/SelectMappedBufferResult.java         |   84 +
 .../alibaba/rocketmq/store/StoreCheckpoint.java |  141 ++
 .../rocketmq/store/StoreStatsService.java       |  615 ++++++
 .../com/alibaba/rocketmq/store/StoreUtil.java   |   41 +
 .../rocketmq/store/TransientStorePool.java      |   93 +
 .../rocketmq/store/config/BrokerRole.java       |   26 +
 .../rocketmq/store/config/FlushDiskType.java    |   25 +
 .../store/config/MessageStoreConfig.java        |  727 +++++++
 .../store/config/StorePathConfigHelper.java     |   58 +
 .../alibaba/rocketmq/store/ha/HAConnection.java |  429 ++++
 .../alibaba/rocketmq/store/ha/HAService.java    |  654 ++++++
 .../rocketmq/store/ha/WaitNotifyObject.java     |  101 +
 .../alibaba/rocketmq/store/index/IndexFile.java |  290 +++
 .../rocketmq/store/index/IndexHeader.java       |  141 ++
 .../rocketmq/store/index/IndexService.java      |  389 ++++
 .../rocketmq/store/index/QueryOffsetResult.java |   52 +
 .../schedule/DelayOffsetSerializeWrapper.java   |   41 +
 .../store/schedule/ScheduleMessageService.java  |  386 ++++
 .../rocketmq/store/stats/BrokerStats.java       |  111 +
 .../store/stats/BrokerStatsManager.java         |  220 ++
 .../com/alibaba/rocketmq/store/util/LibC.java   |   54 +
 .../rocketmq/store/DefaultMessageStoreTest.java |  154 ++
 .../rocketmq/store/MappedFileQueueTest.java     |  197 ++
 .../alibaba/rocketmq/store/MappedFileTest.java  |   93 +
 .../com/alibaba/rocketmq/store/RecoverTest.java |  212 ++
 .../rocketmq/store/StoreCheckpointTest.java     |   61 +
 .../rocketmq/store/index/IndexFileTest.java     |   80 +
 .../store/schedule/ScheduleMessageTest.java     |  135 ++
 rocketmq-tools/pom.xml                          |   66 +
 .../rocketmq/tools/admin/DefaultMQAdminExt.java |  458 ++++
 .../tools/admin/DefaultMQAdminExtImpl.java      |  933 ++++++++
 .../rocketmq/tools/admin/MQAdminExt.java        |  229 ++
 .../rocketmq/tools/admin/api/MessageTrack.java  |   61 +
 .../rocketmq/tools/admin/api/TrackType.java     |   27 +
 .../rocketmq/tools/command/CommandUtil.java     |  157 ++
 .../rocketmq/tools/command/MQAdminStartup.java  |  219 ++
 .../rocketmq/tools/command/SubCommand.java      |   38 +
 .../broker/BrokerConsumeStatsSubCommad.java     |  143 ++
 .../command/broker/BrokerStatusSubCommand.java  |  117 +
 .../broker/CleanExpiredCQSubCommand.java        |   84 +
 .../command/broker/CleanUnusedTopicCommand.java |   84 +
 .../command/broker/GetBrokerConfigCommand.java  |  132 ++
 .../command/broker/SendMsgStatusCommand.java    |  104 +
 .../broker/UpdateBrokerConfigSubCommand.java    |  117 +
 .../cluster/CLusterSendMsgRTCommand.java        |  211 ++
 .../command/cluster/ClusterListSubCommand.java  |  280 +++
 .../ConsumerConnectionSubCommand.java           |  106 +
 .../ProducerConnectionSubCommand.java           |   88 +
 .../consumer/ConsumerProgressSubCommand.java    |  285 +++
 .../consumer/ConsumerStatusSubCommand.java      |  143 ++
 .../command/consumer/ConsumerSubCommand.java    |  142 ++
 .../DeleteSubscriptionGroupCommand.java         |  113 +
 .../consumer/StartMonitoringSubCommand.java     |   67 +
 .../consumer/UpdateSubGroupSubCommand.java      |  196 ++
 .../command/message/CheckMsgSendRTCommand.java  |  135 ++
 .../command/message/DecodeMessageIdCommond.java |   63 +
 .../message/PrintMessageByQueueCommand.java     |  259 +++
 .../command/message/PrintMessageSubCommand.java |  177 ++
 .../command/message/QueryMsgByIdSubCommand.java |  294 +++
 .../message/QueryMsgByKeySubCommand.java        |   91 +
 .../message/QueryMsgByOffsetSubCommand.java     |  109 +
 .../message/QueryMsgByUniqueKeySubCommand.java  |  211 ++
 .../rocketmq/tools/command/message/Store.java   |  271 +++
 .../command/namesrv/DeleteKvConfigCommand.java  |   78 +
 .../namesrv/GetNamesrvConfigCommand.java        |   85 +
 .../command/namesrv/UpdateKvConfigCommand.java  |   84 +
 .../namesrv/UpdateNamesrvConfigCommand.java     |   94 +
 .../namesrv/WipeWritePermSubCommand.java        |   86 +
 .../command/offset/CloneGroupOffsetCommand.java |  104 +
 .../offset/GetConsumerStatusCommand.java        |  101 +
 .../offset/ResetOffsetByTimeCommand.java        |  147 ++
 .../offset/ResetOffsetByTimeOldCommand.java     |  136 ++
 .../tools/command/stats/StatsAllSubCommand.java |  208 ++
 .../command/topic/AllocateMQSubCommand.java     |  100 +
 .../command/topic/DeleteTopicSubCommand.java    |  112 +
 .../tools/command/topic/RebalanceResult.java    |   36 +
 .../command/topic/TopicClusterSubCommand.java   |   73 +
 .../command/topic/TopicListSubCommand.java      |  142 ++
 .../command/topic/TopicRouteSubCommand.java     |   76 +
 .../command/topic/TopicStatusSubCommand.java    |  108 +
 .../command/topic/UpdateOrderConfCommand.java   |  115 +
 .../topic/UpdateTopicPermSubCommand.java        |  123 ++
 .../command/topic/UpdateTopicSubCommand.java    |  193 ++
 .../tools/monitor/DefaultMonitorListener.java   |   97 +
 .../rocketmq/tools/monitor/DeleteMsgsEvent.java |   53 +
 .../rocketmq/tools/monitor/FailedMsgs.java      |   61 +
 .../rocketmq/tools/monitor/MonitorConfig.java   |   48 +
 .../rocketmq/tools/monitor/MonitorListener.java |   36 +
 .../rocketmq/tools/monitor/MonitorService.java  |  325 +++
 .../rocketmq/tools/monitor/UndoneMsgs.java      |   87 +
 586 files changed, 77479 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..30f07f3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+*dependency-reduced-pom.xml
+.classpath
+.project
+.settings/
+target/
+devenv
+*.log*
+*.iml
+.idea/
+*.versionsBackup
+*bin

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..d67d8f6
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: java
+jdk:
+  - oraclejdk8
+  - oraclejdk7
+  - openjdk6

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..a3f3baa
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,17 @@
+## How To Contribute
+
+We are always very happy to have contributions, whether for trivial cleanups or big new features.
+We want to have high quality, well documented codes for each programming language. These, as well as the surrounding [ecosystem](https://github.com/rocketmq) of integration tools that people use with RocketMQ, are critical aspects of the project.
+
+Nor is code the only way to contribute to the project. We strongly value documentation and gladly accept improvements to the documentation.
+
+## Contributing code
+
+To submit a change for inclusion, please do the following:
+#### If the change is non-trivial please include some unit tests that cover the new functionality.
+#### If you are introducing a completely new feature or API it is a good idea to start a wiki and get consensus on the basic design first.
+#### It is our job to follow up on patches in a timely fashion. Nag us if we aren't doing our job (sometimes we drop things).
+
+## Becoming a Committer
+
+We are always interested in adding new contributors. What we look for a series of contributions, good taste, and an ongoing interest in the project. If you are interested in becoming a committer, let one of the existing committers know and they can help guide you through the process.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..715fb67
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (properties) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2016 Alibaba Group
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..913ef38
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,8 @@
+RocketMQ
+Copyright 2016 Alibaba Group.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This distribution has producerGroup binary dependency on mysql-connector-java, which is available under gpl 2.0.
+The source code of mysql-connector-java can be found at http://dev.mysql.com/downloads/connector/reconsumeTimes/.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9b4cee4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,52 @@
+## RocketMQ -- Alibaba's MQ [![Build Status](https://travis-ci.org/alibaba/RocketMQ.svg?branch=master)](https://travis-ci.org/alibaba/RocketMQ)
+[![Maven Central](https://img.shields.io/badge/maven--center-stable--version-green.svg)](http://search.maven.org/#search%7Cga%7C1%7Ccom.alibaba.rocketmq)
+[![GitHub release](https://img.shields.io/badge/release-download-orange.svg)](https://github.com/alibaba/RocketMQ/releases)
+[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
+
+**RocketMQ is a low latency, reliable, scalable, easy to use message oriented middleware born from alibaba massive messaging business.**
+
+It offers a variety of features as follows:
+
+* Pub/Sub and P2P messaging model
+* Reliable FIFO and strict sequential messaging in the same queue
+* Long pull queue model,also support push consumption style
+* Million message accumulation ability in single queue
+* Over a variety of messaging protocols.such as JMS,MQTT,HTTP etc.
+* Distributed high available deploy architecture, meets at least once message delivery semantics
+* Docker images for isolated testing and cloud Isolated clusters
+* Feature-rich administrative dashboard for configuration,metrics and monitoring [![Cloud Charge](https://img.shields.io/badge/cloud-charge-red.svg)](https://www.aliyun.com/product/ons/?spm=5176.7960203.237031.135.67OdNO)
+* Message full-link tracking [![Cloud Charge] (https://img.shields.io/badge/cloud-charge-red.svg)](https://www.aliyun.com/product/ons/?spm=5176.7960203.237031.135.67OdNO)
+* Producer transaction message,making producer and local database transaction in one atomic operation [![Cloud Charge](https://img.shields.io/badge/cloud-charge-red.svg)](https://www.aliyun.com/product/ons/?spm=5176.7960203.237031.135.67OdNO)
+* Message Schedule delivery,similar JMS2 spec's delivery delay [![Cloud Charge] (https://img.shields.io/badge/cloud-charge-red.svg)](https://www.aliyun.com/product/ons/?spm=5176.7960203.237031.135.67OdNO)
+
+----------
+
+## Learn it & Contact us
+* Homepage: <https://github.com/alibaba/RocketMQ>
+* Mailing list: <https://groups.google.com/forum/?hl=en#!forum/rocketmq>
+* Documentation: <https://github.com/alibaba/RocketMQ/wiki>
+* Wiki: <https://github.com/alibaba/RocketMQ/wiki>
+* Issues: <https://github.com/alibaba/RocketMQ/issues>
+* Ask: <http://stackoverflow.com/questions/tagged/rocketmq> or <https://www.quora.com/topic/RocketMQ>
+* [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/alibaba/RocketMQ?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
+ 
+
+----------
+
+## How can I develop with RocketMQ?
+* [Download the latest release package](https://github.com/alibaba/RocketMQ/releases)
+* [Get the latest document & Who using RocketMQ](https://github.com/alibaba/RocketMQ/issues/1)
+* [`Using RocketMQ in Aliyun`](http://www.aliyun.com/product/ons)
+* [`Docker images`](https://registry.hub.docker.com/u/vongosling/rocketmq/)
+* [Integrate with Alibaba JStorm](https://github.com/alibaba/jstorm)
+* [Integrate with Alibaba Canal](https://github.com/alibaba/canal)
+* [RocketMQ Community Projects](https://github.com/rocketmq)
+
+----------
+
+## Contributing
+We are always very happy to have contributions, whether for trivial cleanups,big new features or other material rewards. more details see [here](https://github.com/alibaba/RocketMQ/wiki/How-to-donate) 
+ 
+----------
+## License
+[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) Copyright (C) 2010-2013 Alibaba Group Holding Limited

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/benchmark/consumer.sh
----------------------------------------------------------------------
diff --git a/benchmark/consumer.sh b/benchmark/consumer.sh
new file mode 100644
index 0000000..e516439
--- /dev/null
+++ b/benchmark/consumer.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+#
+# $Id: consumer.sh 1831 2013-05-16 01:39:51Z shijia.wxr $
+#
+sh ./runclass.sh com.alibaba.rocketmq.example.benchmark.Consumer $@ &

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/benchmark/producer.sh
----------------------------------------------------------------------
diff --git a/benchmark/producer.sh b/benchmark/producer.sh
new file mode 100644
index 0000000..1462257
--- /dev/null
+++ b/benchmark/producer.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+#
+# $Id: producer.sh 1831 2013-05-16 01:39:51Z shijia.wxr $
+#
+sh ./runclass.sh -Dcom.alibaba.rocketmq.client.sendSmartMsg=true com.alibaba.rocketmq.example.benchmark.Producer $@ &

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/benchmark/runclass.sh
----------------------------------------------------------------------
diff --git a/benchmark/runclass.sh b/benchmark/runclass.sh
new file mode 100644
index 0000000..afe6b6e
--- /dev/null
+++ b/benchmark/runclass.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+#
+# $Id: runserver.sh 1831 2013-05-16 01:39:51Z shijia.wxr $
+#
+
+if [ $# -lt 1 ];
+then
+  echo "USAGE: $0 classname opts"
+  exit 1
+fi
+
+BASE_DIR=$(dirname $0)/..
+CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
+
+JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=320m"
+JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC"
+JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
+JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
+JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib"
+JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
+JAVA_OPT="${JAVA_OPT}  -XX:+PerfDisableSharedMem"
+#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
+JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
+
+if [ -z "$JAVA_HOME" ]; then
+  JAVA_HOME=/usr/java
+fi
+
+JAVA="$JAVA_HOME/bin/java"
+
+$JAVA ${JAVA_OPT} $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/benchmark/tproducer.sh
----------------------------------------------------------------------
diff --git a/benchmark/tproducer.sh b/benchmark/tproducer.sh
new file mode 100644
index 0000000..f19d2c6
--- /dev/null
+++ b/benchmark/tproducer.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+#
+# $Id: producer.sh 1831 2013-05-16 01:39:51Z shijia.wxr $
+#
+sh ./runclass.sh com.alibaba.rocketmq.example.benchmark.TransactionProducer  $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/checkstyle/checkstyle.xml
----------------------------------------------------------------------
diff --git a/checkstyle/checkstyle.xml b/checkstyle/checkstyle.xml
new file mode 100644
index 0000000..ac562fa
--- /dev/null
+++ b/checkstyle/checkstyle.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC
+        "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
+        "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
+<!--Refer http://checkstyle.sourceforge.net/reports/google-java-style.html#s2.2-file-encoding -->
+<module name="Checker">
+
+    <property name="localeLanguage" value="en"/>
+
+    <!--To configure the check to report on the first instance in each file-->
+    <module name="FileTabCharacter"/>
+
+    <!-- header -->
+    <module name="RegexpHeader">
+        <property name="header" value="/\*\*\nLicensed to the Apache.*"/>
+    </module>
+
+    <module name="RegexpSingleline">
+        <property name="format" value="System\.out\.println" />
+        <property name="message" value="Prohibit invoking System.out.println in source code !" />
+    </module>
+
+    <module name="RegexpSingleline">
+        <property name="format" value="//FIXME"/>
+        <property name="message" value="Recommended fix FIXME task !"/>
+    </module>
+
+    <module name="RegexpSingleline">
+        <property name="format" value="//TODO"/>
+        <property name="message" value="Recommended fix TODO task !"/>
+    </module>
+
+    <module name="RegexpSingleline">
+        <property name="format" value="@alibaba"/>
+        <property name="message" value="Recommended remove @alibaba keyword!"/>
+    </module>
+
+    <module name="RegexpSingleline">
+        <property name="format"
+                  value=".*[\u3400-\u4DB5\u4E00-\u9FA5\u9FA6-\u9FBB\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFF00-\uFFEF\u2E80-\u2EFF\u3000-\u303F\u31C0-\u31EF]+.*"/>
+        <property name="message" value="Not allow chinese character !"/>
+    </module>
+
+    <module name="FileLength">
+        <property name="max" value="2000"/>
+    </module>
+
+    <module name="TreeWalker">
+
+        <module name="UnusedImports">
+            <property name="processJavadoc" value="true"/>
+        </module>
+        <module name="RedundantImport"/>
+
+        <!--<module name="IllegalImport" />-->
+
+        <!--Checks that classes that override equals() also override hashCode()-->
+        <module name="EqualsHashCode"/>
+        <!--Checks for over-complicated boolean expressions. Currently finds code like if (topic == true), topic || true, !false, etc.-->
+        <module name="SimplifyBooleanExpression"/>
+        <module name="OneStatementPerLine"/>
+        <module name="UnnecessaryParentheses"/>
+        <!--Checks for over-complicated boolean return statements. For example the following code-->
+        <module name="SimplifyBooleanReturn"/>
+
+        <!--Check that the default is after all the cases in producerGroup switch statement-->
+        <module name="DefaultComesLast"/>
+        <!--Detects empty statements (standalone ";" semicolon)-->
+        <module name="EmptyStatement"/>
+        <!--Checks that long constants are defined with an upper ell-->
+        <module name="UpperEll"/>
+        <module name="ConstantName">
+            <property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^log$)"/>
+        </module>
+        <!--Checks that local, non-final variable names conform to producerGroup format specified by the format property-->
+        <module name="LocalVariableName"/>
+        <!--Validates identifiers for local, final variables, including catch parameters-->
+        <module name="LocalFinalVariableName"/>
+        <!--Validates identifiers for non-static fields-->
+        <module name="MemberName"/>
+        <!--Validates identifiers for class type parameters-->
+        <module name="ClassTypeParameterName">
+            <property name="format" value="^[A-Z0-9]*$"/>
+        </module>
+        <!--Validates identifiers for method type parameters-->
+        <module name="MethodTypeParameterName">
+            <property name="format" value="^[A-Z0-9]*$"/>
+        </module>
+        <module name="PackageName"/>
+        <module name="ParameterName"/>
+        <module name="StaticVariableName"/>
+        <module name="TypeName"/>
+        <!--Checks that there are no import statements that use the * notation-->
+        <!--
+        <module name="AvoidStarImport"/>
+        -->
+
+        <!--whitespace-->
+        <module name="GenericWhitespace"/>
+        <module name="NoWhitespaceBefore"/>
+        <module name="WhitespaceAfter"/>
+        <module name="NoWhitespaceAfter"/>
+        <module name="WhitespaceAround">
+            <property name="allowEmptyConstructors" value="true"/>
+            <property name="allowEmptyMethods" value="true"/>
+        </module>
+        <module name="Indentation"/>
+        <module name="MethodParamPad"/>
+        <module name="ParenPad"/>
+        <module name="TypecastParenPad"/>
+    </module>
+</module>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-async/broker-a-s.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-async/broker-a-s.properties b/conf/2m-2s-async/broker-a-s.properties
new file mode 100644
index 0000000..a4401f8
--- /dev/null
+++ b/conf/2m-2s-async/broker-a-s.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=1
+deleteWhen=04
+fileReservedTime=48
+brokerRole=SLAVE
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-async/broker-a.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-async/broker-a.properties b/conf/2m-2s-async/broker-a.properties
new file mode 100644
index 0000000..6ca12f1
--- /dev/null
+++ b/conf/2m-2s-async/broker-a.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=ASYNC_MASTER
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-async/broker-b-s.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-async/broker-b-s.properties b/conf/2m-2s-async/broker-b-s.properties
new file mode 100644
index 0000000..51f8daf
--- /dev/null
+++ b/conf/2m-2s-async/broker-b-s.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-b
+brokerId=1
+deleteWhen=04
+fileReservedTime=48
+brokerRole=SLAVE
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-async/broker-b.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-async/broker-b.properties b/conf/2m-2s-async/broker-b.properties
new file mode 100644
index 0000000..f7f3791
--- /dev/null
+++ b/conf/2m-2s-async/broker-b.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-b
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=ASYNC_MASTER
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-sync/broker-a-s.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-sync/broker-a-s.properties b/conf/2m-2s-sync/broker-a-s.properties
new file mode 100644
index 0000000..a4401f8
--- /dev/null
+++ b/conf/2m-2s-sync/broker-a-s.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=1
+deleteWhen=04
+fileReservedTime=48
+brokerRole=SLAVE
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-sync/broker-a.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-sync/broker-a.properties b/conf/2m-2s-sync/broker-a.properties
new file mode 100644
index 0000000..135552d
--- /dev/null
+++ b/conf/2m-2s-sync/broker-a.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=SYNC_MASTER
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-sync/broker-b-s.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-sync/broker-b-s.properties b/conf/2m-2s-sync/broker-b-s.properties
new file mode 100644
index 0000000..51f8daf
--- /dev/null
+++ b/conf/2m-2s-sync/broker-b-s.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-b
+brokerId=1
+deleteWhen=04
+fileReservedTime=48
+brokerRole=SLAVE
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-2s-sync/broker-b.properties
----------------------------------------------------------------------
diff --git a/conf/2m-2s-sync/broker-b.properties b/conf/2m-2s-sync/broker-b.properties
new file mode 100644
index 0000000..97162a7
--- /dev/null
+++ b/conf/2m-2s-sync/broker-b.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-b
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=SYNC_MASTER
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-noslave/broker-a.properties
----------------------------------------------------------------------
diff --git a/conf/2m-noslave/broker-a.properties b/conf/2m-noslave/broker-a.properties
new file mode 100644
index 0000000..6ca12f1
--- /dev/null
+++ b/conf/2m-noslave/broker-a.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=ASYNC_MASTER
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/2m-noslave/broker-b.properties
----------------------------------------------------------------------
diff --git a/conf/2m-noslave/broker-b.properties b/conf/2m-noslave/broker-b.properties
new file mode 100644
index 0000000..f7f3791
--- /dev/null
+++ b/conf/2m-noslave/broker-b.properties
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-b
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=ASYNC_MASTER
+flushDiskType=ASYNC_FLUSH

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/057d0e9b/conf/broker.conf
----------------------------------------------------------------------
diff --git a/conf/broker.conf b/conf/broker.conf
new file mode 100644
index 0000000..6ca12f1
--- /dev/null
+++ b/conf/broker.conf
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+brokerClusterName=DefaultCluster
+brokerName=broker-a
+brokerId=0
+deleteWhen=04
+fileReservedTime=48
+brokerRole=ASYNC_MASTER
+flushDiskType=ASYNC_FLUSH