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/28 09:14:10 UTC

[19/99] [abbrv] [partial] incubator-rocketmq git commit: ROCKETMQ-18 Rename package name from com.alibaba to org.apache

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfig.java b/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfig.java
deleted file mode 100644
index ba80a3f..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfig.java
+++ /dev/null
@@ -1,549 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-import com.alibaba.rocketmq.common.annotation.ImportantField;
-import com.alibaba.rocketmq.common.constant.PermName;
-import com.alibaba.rocketmq.remoting.common.RemotingUtil;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-
-/**
- * @author shijia.wxr
- */
-public class BrokerConfig {
-    private String rocketmqHome = System.getProperty(MixAll.ROCKETMQ_HOME_PROPERTY, System.getenv(MixAll.ROCKETMQ_HOME_ENV));
-    @ImportantField
-    private String namesrvAddr = System.getProperty(MixAll.NAMESRV_ADDR_PROPERTY, System.getenv(MixAll.NAMESRV_ADDR_ENV));
-    @ImportantField
-    private String brokerIP1 = RemotingUtil.getLocalAddress();
-    private String brokerIP2 = RemotingUtil.getLocalAddress();
-    @ImportantField
-    private String brokerName = localHostName();
-    @ImportantField
-    private String brokerClusterName = "DefaultCluster";
-    @ImportantField
-    private long brokerId = MixAll.MASTER_ID;
-    private int brokerPermission = PermName.PERM_READ | PermName.PERM_WRITE;
-    private int defaultTopicQueueNums = 8;
-    @ImportantField
-    private boolean autoCreateTopicEnable = true;
-
-    private boolean clusterTopicEnable = true;
-
-    private boolean brokerTopicEnable = true;
-    @ImportantField
-    private boolean autoCreateSubscriptionGroup = true;
-    private String messageStorePlugIn = "";
-
-    private int sendMessageThreadPoolNums = 1; //16 + Runtime.getRuntime().availableProcessors() * 4;
-    private int pullMessageThreadPoolNums = 16 + Runtime.getRuntime().availableProcessors() * 2;
-    private int adminBrokerThreadPoolNums = 16;
-    private int clientManageThreadPoolNums = 32;
-    private int consumerManageThreadPoolNums = 32;
-
-    private int flushConsumerOffsetInterval = 1000 * 5;
-
-    private int flushConsumerOffsetHistoryInterval = 1000 * 60;
-
-    @ImportantField
-    private boolean rejectTransactionMessage = false;
-    @ImportantField
-    private boolean fetchNamesrvAddrByAddressServer = false;
-    private int sendThreadPoolQueueCapacity = 10000;
-    private int pullThreadPoolQueueCapacity = 100000;
-    private int clientManagerThreadPoolQueueCapacity = 1000000;
-    private int consumerManagerThreadPoolQueueCapacity = 1000000;
-
-    private int filterServerNums = 0;
-
-    private boolean longPollingEnable = true;
-
-    private long shortPollingTimeMills = 1000;
-
-    private boolean notifyConsumerIdsChangedEnable = true;
-
-    private boolean highSpeedMode = false;
-
-    private boolean commercialEnable = true;
-    private int commercialTimerCount = 1;
-    private int commercialTransCount = 1;
-    private int commercialBigCount = 1;
-    private int commercialBaseCount = 1;
-
-    private boolean transferMsgByHeap = true;
-    private int maxDelayTime = 40;
-
-
-    private String regionId = MixAll.DEFAULT_TRACE_REGION_ID;
-    private int registerBrokerTimeoutMills = 6000;
-
-    private boolean slaveReadEnable = false;
-
-    private boolean disableConsumeIfConsumerReadSlowly = false;
-    private long consumerFallbehindThreshold = 1024 * 1024 * 1024 * 16;
-
-    private long waitTimeMillsInSendQueue = 200;
-
-    private long startAcceptSendRequestTimeStamp = 0L;
-
-    private boolean traceOn = true;
-
-    public boolean isTraceOn() {
-        return traceOn;
-    }
-
-    public void setTraceOn(final boolean traceOn) {
-        this.traceOn = traceOn;
-    }
-
-    public long getStartAcceptSendRequestTimeStamp() {
-        return startAcceptSendRequestTimeStamp;
-    }
-
-    public void setStartAcceptSendRequestTimeStamp(final long startAcceptSendRequestTimeStamp) {
-        this.startAcceptSendRequestTimeStamp = startAcceptSendRequestTimeStamp;
-    }
-
-    public long getWaitTimeMillsInSendQueue() {
-        return waitTimeMillsInSendQueue;
-    }
-
-    public void setWaitTimeMillsInSendQueue(final long waitTimeMillsInSendQueue) {
-        this.waitTimeMillsInSendQueue = waitTimeMillsInSendQueue;
-    }
-
-    public long getConsumerFallbehindThreshold() {
-        return consumerFallbehindThreshold;
-    }
-
-    public void setConsumerFallbehindThreshold(final long consumerFallbehindThreshold) {
-        this.consumerFallbehindThreshold = consumerFallbehindThreshold;
-    }
-
-    public boolean isDisableConsumeIfConsumerReadSlowly() {
-        return disableConsumeIfConsumerReadSlowly;
-    }
-
-    public void setDisableConsumeIfConsumerReadSlowly(final boolean disableConsumeIfConsumerReadSlowly) {
-        this.disableConsumeIfConsumerReadSlowly = disableConsumeIfConsumerReadSlowly;
-    }
-
-    public boolean isSlaveReadEnable() {
-        return slaveReadEnable;
-    }
-
-    public void setSlaveReadEnable(final boolean slaveReadEnable) {
-        this.slaveReadEnable = slaveReadEnable;
-    }
-
-    public static String localHostName() {
-        try {
-            return InetAddress.getLocalHost().getHostName();
-        } catch (UnknownHostException e) {
-            e.printStackTrace();
-        }
-
-        return "DEFAULT_BROKER";
-    }
-
-    public int getRegisterBrokerTimeoutMills() {
-        return registerBrokerTimeoutMills;
-    }
-
-    public void setRegisterBrokerTimeoutMills(final int registerBrokerTimeoutMills) {
-        this.registerBrokerTimeoutMills = registerBrokerTimeoutMills;
-    }
-
-    public String getRegionId() {
-        return regionId;
-    }
-
-    public void setRegionId(final String regionId) {
-        this.regionId = regionId;
-    }
-
-    public boolean isTransferMsgByHeap() {
-        return transferMsgByHeap;
-    }
-
-    public void setTransferMsgByHeap(final boolean transferMsgByHeap) {
-        this.transferMsgByHeap = transferMsgByHeap;
-    }
-
-    public String getMessageStorePlugIn() {
-        return messageStorePlugIn;
-    }
-
-    public void setMessageStorePlugIn(String messageStorePlugIn) {
-        this.messageStorePlugIn = messageStorePlugIn;
-    }
-
-    public boolean isHighSpeedMode() {
-        return highSpeedMode;
-    }
-
-
-    public void setHighSpeedMode(final boolean highSpeedMode) {
-        this.highSpeedMode = highSpeedMode;
-    }
-
-
-    public String getRocketmqHome() {
-        return rocketmqHome;
-    }
-
-
-    public void setRocketmqHome(String rocketmqHome) {
-        this.rocketmqHome = rocketmqHome;
-    }
-
-
-    public String getBrokerName() {
-        return brokerName;
-    }
-
-
-    public void setBrokerName(String brokerName) {
-        this.brokerName = brokerName;
-    }
-
-
-    public int getBrokerPermission() {
-        return brokerPermission;
-    }
-
-
-    public void setBrokerPermission(int brokerPermission) {
-        this.brokerPermission = brokerPermission;
-    }
-
-
-    public int getDefaultTopicQueueNums() {
-        return defaultTopicQueueNums;
-    }
-
-
-    public void setDefaultTopicQueueNums(int defaultTopicQueueNums) {
-        this.defaultTopicQueueNums = defaultTopicQueueNums;
-    }
-
-
-    public boolean isAutoCreateTopicEnable() {
-        return autoCreateTopicEnable;
-    }
-
-
-    public void setAutoCreateTopicEnable(boolean autoCreateTopic) {
-        this.autoCreateTopicEnable = autoCreateTopic;
-    }
-
-
-    public String getBrokerClusterName() {
-        return brokerClusterName;
-    }
-
-
-    public void setBrokerClusterName(String brokerClusterName) {
-        this.brokerClusterName = brokerClusterName;
-    }
-
-
-    public String getBrokerIP1() {
-        return brokerIP1;
-    }
-
-
-    public void setBrokerIP1(String brokerIP1) {
-        this.brokerIP1 = brokerIP1;
-    }
-
-
-    public String getBrokerIP2() {
-        return brokerIP2;
-    }
-
-
-    public void setBrokerIP2(String brokerIP2) {
-        this.brokerIP2 = brokerIP2;
-    }
-
-    public int getSendMessageThreadPoolNums() {
-        return sendMessageThreadPoolNums;
-    }
-
-    public void setSendMessageThreadPoolNums(int sendMessageThreadPoolNums) {
-        this.sendMessageThreadPoolNums = sendMessageThreadPoolNums;
-    }
-
-
-    public int getPullMessageThreadPoolNums() {
-        return pullMessageThreadPoolNums;
-    }
-
-
-    public void setPullMessageThreadPoolNums(int pullMessageThreadPoolNums) {
-        this.pullMessageThreadPoolNums = pullMessageThreadPoolNums;
-    }
-
-
-    public int getAdminBrokerThreadPoolNums() {
-        return adminBrokerThreadPoolNums;
-    }
-
-
-    public void setAdminBrokerThreadPoolNums(int adminBrokerThreadPoolNums) {
-        this.adminBrokerThreadPoolNums = adminBrokerThreadPoolNums;
-    }
-
-
-    public int getFlushConsumerOffsetInterval() {
-        return flushConsumerOffsetInterval;
-    }
-
-
-    public void setFlushConsumerOffsetInterval(int flushConsumerOffsetInterval) {
-        this.flushConsumerOffsetInterval = flushConsumerOffsetInterval;
-    }
-
-
-    public int getFlushConsumerOffsetHistoryInterval() {
-        return flushConsumerOffsetHistoryInterval;
-    }
-
-
-    public void setFlushConsumerOffsetHistoryInterval(int flushConsumerOffsetHistoryInterval) {
-        this.flushConsumerOffsetHistoryInterval = flushConsumerOffsetHistoryInterval;
-    }
-
-
-    public boolean isClusterTopicEnable() {
-        return clusterTopicEnable;
-    }
-
-
-    public void setClusterTopicEnable(boolean clusterTopicEnable) {
-        this.clusterTopicEnable = clusterTopicEnable;
-    }
-
-
-    public String getNamesrvAddr() {
-        return namesrvAddr;
-    }
-
-
-    public void setNamesrvAddr(String namesrvAddr) {
-        this.namesrvAddr = namesrvAddr;
-    }
-
-
-    public long getBrokerId() {
-        return brokerId;
-    }
-
-
-    public void setBrokerId(long brokerId) {
-        this.brokerId = brokerId;
-    }
-
-
-    public boolean isAutoCreateSubscriptionGroup() {
-        return autoCreateSubscriptionGroup;
-    }
-
-
-    public void setAutoCreateSubscriptionGroup(boolean autoCreateSubscriptionGroup) {
-        this.autoCreateSubscriptionGroup = autoCreateSubscriptionGroup;
-    }
-
-
-    public boolean isRejectTransactionMessage() {
-        return rejectTransactionMessage;
-    }
-
-
-    public void setRejectTransactionMessage(boolean rejectTransactionMessage) {
-        this.rejectTransactionMessage = rejectTransactionMessage;
-    }
-
-
-    public boolean isFetchNamesrvAddrByAddressServer() {
-        return fetchNamesrvAddrByAddressServer;
-    }
-
-
-    public void setFetchNamesrvAddrByAddressServer(boolean fetchNamesrvAddrByAddressServer) {
-        this.fetchNamesrvAddrByAddressServer = fetchNamesrvAddrByAddressServer;
-    }
-
-
-    public int getSendThreadPoolQueueCapacity() {
-        return sendThreadPoolQueueCapacity;
-    }
-
-
-    public void setSendThreadPoolQueueCapacity(int sendThreadPoolQueueCapacity) {
-        this.sendThreadPoolQueueCapacity = sendThreadPoolQueueCapacity;
-    }
-
-
-    public int getPullThreadPoolQueueCapacity() {
-        return pullThreadPoolQueueCapacity;
-    }
-
-
-    public void setPullThreadPoolQueueCapacity(int pullThreadPoolQueueCapacity) {
-        this.pullThreadPoolQueueCapacity = pullThreadPoolQueueCapacity;
-    }
-
-
-    public boolean isBrokerTopicEnable() {
-        return brokerTopicEnable;
-    }
-
-
-    public void setBrokerTopicEnable(boolean brokerTopicEnable) {
-        this.brokerTopicEnable = brokerTopicEnable;
-    }
-
-
-    public int getFilterServerNums() {
-        return filterServerNums;
-    }
-
-
-    public void setFilterServerNums(int filterServerNums) {
-        this.filterServerNums = filterServerNums;
-    }
-
-
-    public boolean isLongPollingEnable() {
-        return longPollingEnable;
-    }
-
-
-    public void setLongPollingEnable(boolean longPollingEnable) {
-        this.longPollingEnable = longPollingEnable;
-    }
-
-
-    public boolean isNotifyConsumerIdsChangedEnable() {
-        return notifyConsumerIdsChangedEnable;
-    }
-
-
-    public void setNotifyConsumerIdsChangedEnable(boolean notifyConsumerIdsChangedEnable) {
-        this.notifyConsumerIdsChangedEnable = notifyConsumerIdsChangedEnable;
-    }
-
-
-    public long getShortPollingTimeMills() {
-        return shortPollingTimeMills;
-    }
-
-
-    public void setShortPollingTimeMills(long shortPollingTimeMills) {
-        this.shortPollingTimeMills = shortPollingTimeMills;
-    }
-
-
-    public int getClientManageThreadPoolNums() {
-        return clientManageThreadPoolNums;
-    }
-
-
-    public void setClientManageThreadPoolNums(int clientManageThreadPoolNums) {
-        this.clientManageThreadPoolNums = clientManageThreadPoolNums;
-    }
-
-
-    public boolean isCommercialEnable() {
-        return commercialEnable;
-    }
-
-
-    public void setCommercialEnable(final boolean commercialEnable) {
-        this.commercialEnable = commercialEnable;
-    }
-
-    public int getCommercialTimerCount() {
-        return commercialTimerCount;
-    }
-
-    public void setCommercialTimerCount(final int commercialTimerCount) {
-        this.commercialTimerCount = commercialTimerCount;
-    }
-
-    public int getCommercialTransCount() {
-        return commercialTransCount;
-    }
-
-    public void setCommercialTransCount(final int commercialTransCount) {
-        this.commercialTransCount = commercialTransCount;
-    }
-
-    public int getCommercialBigCount() {
-        return commercialBigCount;
-    }
-
-    public void setCommercialBigCount(final int commercialBigCount) {
-        this.commercialBigCount = commercialBigCount;
-    }
-
-    public int getMaxDelayTime() {
-        return maxDelayTime;
-    }
-
-
-    public void setMaxDelayTime(final int maxDelayTime) {
-        this.maxDelayTime = maxDelayTime;
-    }
-
-    public int getClientManagerThreadPoolQueueCapacity() {
-        return clientManagerThreadPoolQueueCapacity;
-    }
-
-    public void setClientManagerThreadPoolQueueCapacity(int clientManagerThreadPoolQueueCapacity) {
-        this.clientManagerThreadPoolQueueCapacity = clientManagerThreadPoolQueueCapacity;
-    }
-
-    public int getConsumerManagerThreadPoolQueueCapacity() {
-        return consumerManagerThreadPoolQueueCapacity;
-    }
-
-    public void setConsumerManagerThreadPoolQueueCapacity(int consumerManagerThreadPoolQueueCapacity) {
-        this.consumerManagerThreadPoolQueueCapacity = consumerManagerThreadPoolQueueCapacity;
-    }
-
-    public int getConsumerManageThreadPoolNums() {
-        return consumerManageThreadPoolNums;
-    }
-
-    public void setConsumerManageThreadPoolNums(int consumerManageThreadPoolNums) {
-        this.consumerManageThreadPoolNums = consumerManageThreadPoolNums;
-    }
-
-    public int getCommercialBaseCount() {
-        return commercialBaseCount;
-    }
-
-    public void setCommercialBaseCount(int commercialBaseCount) {
-        this.commercialBaseCount = commercialBaseCount;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfigSingleton.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfigSingleton.java b/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfigSingleton.java
deleted file mode 100644
index f1bc453..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/BrokerConfigSingleton.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * 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.
- */
-
-package com.alibaba.rocketmq.common;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-public class BrokerConfigSingleton {
-    private static AtomicBoolean isInit = new AtomicBoolean();
-    private static BrokerConfig brokerConfig;
-
-    public static BrokerConfig getBrokerConfig() {
-        if (brokerConfig == null) {
-            throw new IllegalArgumentException("brokerConfig Cannot be null !");
-        }
-        return brokerConfig;
-    }
-
-    public static void setBrokerConfig(BrokerConfig brokerConfig) {
-        if (!isInit.compareAndSet(false, true)) {
-            throw new IllegalArgumentException("broker config have inited !");
-        }
-        BrokerConfigSingleton.brokerConfig = brokerConfig;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/ConfigManager.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/ConfigManager.java b/common/src/main/java/com/alibaba/rocketmq/common/ConfigManager.java
deleted file mode 100644
index 3191509..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/ConfigManager.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-import com.alibaba.rocketmq.common.constant.LoggerName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-
-/**
- * @author shijia.wxr
- */
-public abstract class ConfigManager {
-    private static final Logger PLOG = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
-
-
-    public abstract String encode();
-
-    public boolean load() {
-        String fileName = null;
-        try {
-            fileName = this.configFilePath();
-            String jsonString = MixAll.file2String(fileName);
-
-            if (null == jsonString || jsonString.length() == 0) {
-                return this.loadBak();
-            } else {
-                this.decode(jsonString);
-                PLOG.info("load {} OK", fileName);
-                return true;
-            }
-        } catch (Exception e) {
-            PLOG.error("load " + fileName + " Failed, and try to load backup file", e);
-            return this.loadBak();
-        }
-    }
-
-    public abstract String configFilePath();
-
-    private boolean loadBak() {
-        String fileName = null;
-        try {
-            fileName = this.configFilePath();
-            String jsonString = MixAll.file2String(fileName + ".bak");
-            if (jsonString != null && jsonString.length() > 0) {
-                this.decode(jsonString);
-                PLOG.info("load " + fileName + " OK");
-                return true;
-            }
-        } catch (Exception e) {
-            PLOG.error("load " + fileName + " Failed", e);
-            return false;
-        }
-
-        return true;
-    }
-
-    public abstract void decode(final String jsonString);
-
-    public synchronized void persist() {
-        String jsonString = this.encode(true);
-        if (jsonString != null) {
-            String fileName = this.configFilePath();
-            try {
-                MixAll.string2File(jsonString, fileName);
-            } catch (IOException e) {
-                PLOG.error("persist file Exception, " + fileName, e);
-            }
-        }
-    }
-
-    public abstract String encode(final boolean prettyFormat);
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/Configuration.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/Configuration.java b/common/src/main/java/com/alibaba/rocketmq/common/Configuration.java
deleted file mode 100644
index 8b69c1f..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/Configuration.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/**
- * 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.
- */
-
-package com.alibaba.rocketmq.common;
-
-import org.slf4j.Logger;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-/**
- * @author xigu.lx
- */
-public class Configuration {
-
-    private final Logger log;
-
-    private List<Object> configObjectList = new ArrayList<Object>(4);
-    private String storePath;
-    private boolean storePathFromConfig = false;
-    private Object storePathObject;
-    private Field storePathField;
-    private DataVersion dataVersion = new DataVersion();
-    private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
-    /**
-     * All properties include configs in object and extend properties.
-     */
-    private Properties allConfigs = new Properties();
-
-    public Configuration(Logger log) {
-        this.log = log;
-    }
-
-    public Configuration(Logger log, Object... configObjects) {
-        this.log = log;
-        if (configObjects == null || configObjects.length == 0) {
-            return;
-        }
-        for (Object configObject : configObjects) {
-            registerConfig(configObject);
-        }
-    }
-
-    public Configuration(Logger log, String storePath, Object... configObjects) {
-        this(log, configObjects);
-        this.storePath = storePath;
-    }
-
-    /**
-     * register config object
-     *
-     * @param configObject
-     * @return the current Configuration object
-     */
-    public Configuration registerConfig(Object configObject) {
-        try {
-            readWriteLock.writeLock().lockInterruptibly();
-
-            try {
-
-                Properties registerProps = MixAll.object2Properties(configObject);
-
-                merge(registerProps, this.allConfigs);
-
-                configObjectList.add(configObject);
-            } finally {
-                readWriteLock.writeLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("registerConfig lock error");
-        }
-        return this;
-    }
-
-    /**
-     * register config properties
-     *
-     * @param extProperties
-     * @return the current Configuration object
-     */
-    public Configuration registerConfig(Properties extProperties) {
-        if (extProperties == null) {
-            return this;
-        }
-
-        try {
-            readWriteLock.writeLock().lockInterruptibly();
-
-            try {
-                merge(extProperties, this.allConfigs);
-            } finally {
-                readWriteLock.writeLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("register lock error. {}" + extProperties);
-        }
-
-        return this;
-    }
-
-    /**
-     * The store path will be gotten from the field of object.
-     *
-     * @param object
-     * @param fieldName
-     *
-     * @throws java.lang.RuntimeException if the field of object is not exist.
-     */
-    public void setStorePathFromConfig(Object object, String fieldName) {
-        assert object != null;
-
-        try {
-            readWriteLock.writeLock().lockInterruptibly();
-
-            try {
-                this.storePathFromConfig = true;
-                this.storePathObject = object;
-                // check
-                this.storePathField = object.getClass().getDeclaredField(fieldName);
-                assert this.storePathField != null
-                        && !Modifier.isStatic(this.storePathField.getModifiers());
-                this.storePathField.setAccessible(true);
-            } catch (NoSuchFieldException e) {
-                throw new RuntimeException(e);
-            } finally {
-                readWriteLock.writeLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("setStorePathFromConfig lock error");
-        }
-    }
-
-    private String getStorePath() {
-        String realStorePath = null;
-        try {
-            readWriteLock.readLock().lockInterruptibly();
-
-            try {
-                realStorePath = this.storePath;
-
-                if (this.storePathFromConfig) {
-                    try {
-                        realStorePath = (String) storePathField.get(this.storePathObject);
-                    } catch (IllegalAccessException e) {
-                        log.error("getStorePath error, ", e);
-                    }
-                }
-            } finally {
-                readWriteLock.readLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("getStorePath lock error");
-        }
-
-        return realStorePath;
-    }
-
-    public void update(Properties properties) {
-        try {
-            readWriteLock.writeLock().lockInterruptibly();
-
-            try {
-                // the property must be exist when update
-                mergeIfExist(properties, this.allConfigs);
-
-                for (Object configObject : configObjectList) {
-                    // not allConfigs to update...
-                    MixAll.properties2Object(properties, configObject);
-                }
-
-                this.dataVersion.nextVersion();
-
-            } finally {
-                readWriteLock.writeLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("update lock error, {}", properties);
-            return;
-        }
-
-        persist();
-    }
-
-    public void persist() {
-        try {
-            readWriteLock.readLock().lockInterruptibly();
-
-            try {
-                String allConfigs = getAllConfigsInternal();
-
-                MixAll.string2File(allConfigs, getStorePath());
-            } catch (IOException e) {
-                log.error("persist string2File error, ", e);
-            } finally {
-                readWriteLock.readLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("persist lock error");
-        }
-    }
-
-    public String getAllConfigsFormatString() {
-        try {
-            readWriteLock.readLock().lockInterruptibly();
-
-            try {
-
-                return getAllConfigsInternal();
-
-            } finally {
-                readWriteLock.readLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("getAllConfigsFormatString lock error");
-        }
-
-        return null;
-    }
-
-    public String getDataVersionJson() {
-        return this.dataVersion.toJson();
-    }
-
-    public Properties getAllConfigs() {
-        try {
-            readWriteLock.readLock().lockInterruptibly();
-
-            try {
-
-                return this.allConfigs;
-
-            } finally {
-                readWriteLock.readLock().unlock();
-            }
-        } catch (InterruptedException e) {
-            log.error("getAllConfigs lock error");
-        }
-
-        return null;
-    }
-
-    private String getAllConfigsInternal() {
-        StringBuilder stringBuilder = new StringBuilder();
-
-        // reload from config object ?
-        for (Object configObject : this.configObjectList) {
-            Properties properties = MixAll.object2Properties(configObject);
-            if (properties != null) {
-                merge(properties, this.allConfigs);
-            } else {
-                log.warn("getAllConfigsInternal object2Properties is null, {}", configObject.getClass());
-            }
-        }
-
-        {
-            stringBuilder.append(MixAll.properties2String(this.allConfigs));
-        }
-
-        return stringBuilder.toString();
-    }
-
-    public void setStorePath(final String storePath) {
-        this.storePath = storePath;
-    }
-
-    private void merge(Properties from, Properties to) {
-        for (Object key : from.keySet()) {
-            Object fromObj = from.get(key), toObj = to.get(key);
-            if (toObj != null && !toObj.equals(fromObj)) {
-                log.info("Replace, key: {}, value: {} -> {}", key, toObj, fromObj);
-            }
-            to.put(key, fromObj);
-        }
-    }
-
-    private void mergeIfExist(Properties from, Properties to) {
-        for (Object key : from.keySet()) {
-            if (!to.containsKey(key)) {
-                continue;
-            }
-
-            Object fromObj = from.get(key), toObj = to.get(key);
-            if (toObj != null && !toObj.equals(fromObj)) {
-                log.info("Replace, key: {}, value: {} -> {}", key, toObj, fromObj);
-            }
-            to.put(key, fromObj);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/CountDownLatch.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/CountDownLatch.java b/common/src/main/java/com/alibaba/rocketmq/common/CountDownLatch.java
deleted file mode 100644
index a5cc9a1..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/CountDownLatch.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * 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.
- */
-
-package com.alibaba.rocketmq.common;
-
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.AbstractQueuedSynchronizer;
-
-/**
- * Add reset feature for @see java.util.concurrent.CountDownLatch
- *
- * @author xinyuzhou.zxy
- */
-public class CountDownLatch {
-    /**
-     * Synchronization control For CountDownLatch.
-     * Uses AQS state to represent count.
-     */
-    private static final class Sync extends AbstractQueuedSynchronizer {
-        private static final long serialVersionUID = 4982264981922014374L;
-
-        private final int startCount;
-
-        Sync(int count) {
-            this.startCount = count;
-            setState(count);
-        }
-
-        int getCount() {
-            return getState();
-        }
-
-        protected int tryAcquireShared(int acquires) {
-            return (getState() == 0) ? 1 : -1;
-        }
-
-        protected boolean tryReleaseShared(int releases) {
-            // Decrement count; signal when transition to zero
-            for (;;) {
-                int c = getState();
-                if (c == 0)
-                    return false;
-                int nextc = c - 1;
-                if (compareAndSetState(c, nextc))
-                    return nextc == 0;
-            }
-        }
-
-        protected void reset() {
-            setState(startCount);
-        }
-    }
-
-    private final Sync sync;
-
-    /**
-     * Constructs a {@code CountDownLatch} initialized with the given count.
-     *
-     * @param count
-     *         the number of times {@link #countDown} must be invoked
-     *         before threads can pass through {@link #await}
-     *
-     * @throws IllegalArgumentException
-     *         if {@code count} is negative
-     */
-    public CountDownLatch(int count) {
-        if (count < 0) throw new IllegalArgumentException("count < 0");
-        this.sync = new Sync(count);
-    }
-
-    /**
-     * Causes the current thread to wait until the latch has counted down to
-     * zero, unless the thread is {@linkplain Thread#interrupt interrupted}.
-     *
-     * <p>If the current count is zero then this method returns immediately.
-     *
-     * <p>If the current count is greater than zero then the current
-     * thread becomes disabled for thread scheduling purposes and lies
-     * dormant until one of two things happen:
-     * <ul>
-     * <li>The count reaches zero due to invocations of the
-     * {@link #countDown} method; or
-     * <li>Some other thread {@linkplain Thread#interrupt interrupts}
-     * the current thread.
-     * </ul>
-     *
-     * <p>If the current thread:
-     * <ul>
-     * <li>has its interrupted status set on entry to this method; or
-     * <li>is {@linkplain Thread#interrupt interrupted} while waiting,
-     * </ul>
-     * then {@link InterruptedException} is thrown and the current thread's
-     * interrupted status is cleared.
-     *
-     * @throws InterruptedException
-     *         if the current thread is interrupted
-     *         while waiting
-     */
-    public void await() throws InterruptedException {
-        sync.acquireSharedInterruptibly(1);
-    }
-
-    /**
-     * Causes the current thread to wait until the latch has counted down to
-     * zero, unless the thread is {@linkplain Thread#interrupt interrupted},
-     * or the specified waiting time elapses.
-     *
-     * <p>If the current count is zero then this method returns immediately
-     * with the value {@code true}.
-     *
-     * <p>If the current count is greater than zero then the current
-     * thread becomes disabled for thread scheduling purposes and lies
-     * dormant until one of three things happen:
-     * <ul>
-     * <li>The count reaches zero due to invocations of the
-     * {@link #countDown} method; or
-     * <li>Some other thread {@linkplain Thread#interrupt interrupts}
-     * the current thread; or
-     * <li>The specified waiting time elapses.
-     * </ul>
-     *
-     * <p>If the count reaches zero then the method returns with the
-     * value {@code true}.
-     *
-     * <p>If the current thread:
-     * <ul>
-     * <li>has its interrupted status set on entry to this method; or
-     * <li>is {@linkplain Thread#interrupt interrupted} while waiting,
-     * </ul>
-     * then {@link InterruptedException} is thrown and the current thread's
-     * interrupted status is cleared.
-     *
-     * <p>If the specified waiting time elapses then the value {@code false}
-     * is returned.  If the time is less than or equal to zero, the method
-     * will not wait at all.
-     *
-     * @param timeout
-     *         the maximum time to wait
-     * @param unit
-     *         the time unit of the {@code timeout} argument
-     *
-     * @return {@code true} if the count reached zero and {@code false}
-     * if the waiting time elapsed before the count reached zero
-     *
-     * @throws InterruptedException
-     *         if the current thread is interrupted
-     *         while waiting
-     */
-    public boolean await(long timeout, TimeUnit unit)
-            throws InterruptedException {
-        return sync.tryAcquireSharedNanos(1, unit.toNanos(timeout));
-    }
-
-    /**
-     * Decrements the count of the latch, releasing all waiting threads if
-     * the count reaches zero.
-     *
-     * <p>If the current count is greater than zero then it is decremented.
-     * If the new count is zero then all waiting threads are re-enabled for
-     * thread scheduling purposes.
-     *
-     * <p>If the current count equals zero then nothing happens.
-     */
-    public void countDown() {
-        sync.releaseShared(1);
-    }
-
-    /**
-     * Returns the current count.
-     *
-     * <p>This method is typically used for debugging and testing purposes.
-     *
-     * @return the current count
-     */
-    public long getCount() {
-        return sync.getCount();
-    }
-
-    public void reset() {
-        sync.reset();
-    }
-
-    /**
-     * Returns a string identifying this latch, as well as its state.
-     * The state, in brackets, includes the String {@code "Count ="}
-     * followed by the current count.
-     *
-     * @return a string identifying this latch, as well as its state
-     */
-    public String toString() {
-        return super.toString() + "[Count = " + sync.getCount() + "]";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/DataVersion.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/DataVersion.java b/common/src/main/java/com/alibaba/rocketmq/common/DataVersion.java
deleted file mode 100644
index eb78ba1..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/DataVersion.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-import com.alibaba.rocketmq.remoting.protocol.RemotingSerializable;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-
-/**
- * @author shijia.wxr
- */
-public class DataVersion extends RemotingSerializable {
-    private long timestatmp = System.currentTimeMillis();
-    private AtomicLong counter = new AtomicLong(0);
-
-
-    public void assignNewOne(final DataVersion dataVersion) {
-        this.timestatmp = dataVersion.timestatmp;
-        this.counter.set(dataVersion.counter.get());
-    }
-
-
-    public void nextVersion() {
-        this.timestatmp = System.currentTimeMillis();
-        this.counter.incrementAndGet();
-    }
-
-
-    public long getTimestatmp() {
-        return timestatmp;
-    }
-
-
-    public void setTimestatmp(long timestatmp) {
-        this.timestatmp = timestatmp;
-    }
-
-
-    public AtomicLong getCounter() {
-        return counter;
-    }
-
-
-    public void setCounter(AtomicLong counter) {
-        this.counter = counter;
-    }
-
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final DataVersion that = (DataVersion) o;
-
-        if (timestatmp != that.timestatmp) return false;
-        return counter != null ? counter.equals(that.counter) : that.counter == null;
-
-    }
-
-    @Override
-    public int hashCode() {
-        int result = (int) (timestatmp ^ (timestatmp >>> 32));
-        result = 31 * result + (counter != null ? counter.hashCode() : 0);
-        return result;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/MQVersion.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/MQVersion.java b/common/src/main/java/com/alibaba/rocketmq/common/MQVersion.java
deleted file mode 100644
index 19afb09..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/MQVersion.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-/**
- * @author shijia.wxr
- */
-public class MQVersion {
-
-    public static final int CURRENT_VERSION = Version.V4_0_0_SNAPSHOT.ordinal();
-
-
-    public static String getVersionDesc(int value) {
-        try {
-            Version v = Version.values()[value];
-            return v.name();
-        } catch (Exception e) {
-        }
-
-        return "HigherVersion";
-    }
-
-
-    public static Version value2Version(int value) {
-        return Version.values()[value];
-    }
-
-    public enum Version {
-        V3_0_0_SNAPSHOT,
-        V3_0_0_ALPHA1,
-        V3_0_0_BETA1,
-        V3_0_0_BETA2,
-        V3_0_0_BETA3,
-        V3_0_0_BETA4,
-        V3_0_0_BETA5,
-        V3_0_0_BETA6_SNAPSHOT,
-        V3_0_0_BETA6,
-        V3_0_0_BETA7_SNAPSHOT,
-        V3_0_0_BETA7,
-        V3_0_0_BETA8_SNAPSHOT,
-        V3_0_0_BETA8,
-        V3_0_0_BETA9_SNAPSHOT,
-        V3_0_0_BETA9,
-        V3_0_0_FINAL,
-        V3_0_1_SNAPSHOT,
-        V3_0_1,
-        V3_0_2_SNAPSHOT,
-        V3_0_2,
-        V3_0_3_SNAPSHOT,
-        V3_0_3,
-        V3_0_4_SNAPSHOT,
-        V3_0_4,
-        V3_0_5_SNAPSHOT,
-        V3_0_5,
-        V3_0_6_SNAPSHOT,
-        V3_0_6,
-        V3_0_7_SNAPSHOT,
-        V3_0_7,
-        V3_0_8_SNAPSHOT,
-        V3_0_8,
-        V3_0_9_SNAPSHOT,
-        V3_0_9,
-
-        V3_0_10_SNAPSHOT,
-        V3_0_10,
-
-        V3_0_11_SNAPSHOT,
-        V3_0_11,
-
-        V3_0_12_SNAPSHOT,
-        V3_0_12,
-
-        V3_0_13_SNAPSHOT,
-        V3_0_13,
-
-        V3_0_14_SNAPSHOT,
-        V3_0_14,
-
-        V3_0_15_SNAPSHOT,
-        V3_0_15,
-
-        V3_1_0_SNAPSHOT,
-        V3_1_0,
-
-        V3_1_1_SNAPSHOT,
-        V3_1_1,
-
-        V3_1_2_SNAPSHOT,
-        V3_1_2,
-
-        V3_1_3_SNAPSHOT,
-        V3_1_3,
-
-        V3_1_4_SNAPSHOT,
-        V3_1_4,
-
-        V3_1_5_SNAPSHOT,
-        V3_1_5,
-
-        V3_1_6_SNAPSHOT,
-        V3_1_6,
-
-        V3_1_7_SNAPSHOT,
-        V3_1_7,
-
-        V3_1_8_SNAPSHOT,
-        V3_1_8,
-
-        V3_1_9_SNAPSHOT,
-        V3_1_9,
-
-        V3_2_0_SNAPSHOT,
-        V3_2_0,
-
-        V3_2_1_SNAPSHOT,
-        V3_2_1,
-
-        V3_2_2_SNAPSHOT,
-        V3_2_2,
-
-        V3_2_3_SNAPSHOT,
-        V3_2_3,
-
-        V3_2_4_SNAPSHOT,
-        V3_2_4,
-
-        V3_2_5_SNAPSHOT,
-        V3_2_5,
-
-        V3_2_6_SNAPSHOT,
-        V3_2_6,
-
-        V3_2_7_SNAPSHOT,
-        V3_2_7,
-
-        V3_2_8_SNAPSHOT,
-        V3_2_8,
-
-        V3_2_9_SNAPSHOT,
-        V3_2_9,
-
-        V3_3_1_SNAPSHOT,
-        V3_3_1,
-
-        V3_3_2_SNAPSHOT,
-        V3_3_2,
-
-        V3_3_3_SNAPSHOT,
-        V3_3_3,
-
-        V3_3_4_SNAPSHOT,
-        V3_3_4,
-
-        V3_3_5_SNAPSHOT,
-        V3_3_5,
-
-        V3_3_6_SNAPSHOT,
-        V3_3_6,
-
-        V3_3_7_SNAPSHOT,
-        V3_3_7,
-
-        V3_3_8_SNAPSHOT,
-        V3_3_8,
-
-        V3_3_9_SNAPSHOT,
-        V3_3_9,
-
-        V3_4_1_SNAPSHOT,
-        V3_4_1,
-
-        V3_4_2_SNAPSHOT,
-        V3_4_2,
-
-        V3_4_3_SNAPSHOT,
-        V3_4_3,
-
-        V3_4_4_SNAPSHOT,
-        V3_4_4,
-
-        V3_4_5_SNAPSHOT,
-        V3_4_5,
-
-        V3_4_6_SNAPSHOT,
-        V3_4_6,
-
-        V3_4_7_SNAPSHOT,
-        V3_4_7,
-
-        V3_4_8_SNAPSHOT,
-        V3_4_8,
-
-        V3_4_9_SNAPSHOT,
-        V3_4_9,
-        V3_5_1_SNAPSHOT,
-        V3_5_1,
-
-        V3_5_2_SNAPSHOT,
-        V3_5_2,
-
-        V3_5_3_SNAPSHOT,
-        V3_5_3,
-
-        V3_5_4_SNAPSHOT,
-        V3_5_4,
-
-        V3_5_5_SNAPSHOT,
-        V3_5_5,
-
-        V3_5_6_SNAPSHOT,
-        V3_5_6,
-
-        V3_5_7_SNAPSHOT,
-        V3_5_7,
-
-        V3_5_8_SNAPSHOT,
-        V3_5_8,
-
-        V3_5_9_SNAPSHOT,
-        V3_5_9,
-
-        V3_6_1_SNAPSHOT,
-        V3_6_1,
-
-        V3_6_2_SNAPSHOT,
-        V3_6_2,
-
-        V3_6_3_SNAPSHOT,
-        V3_6_3,
-
-        V3_6_4_SNAPSHOT,
-        V3_6_4,
-
-        V3_6_5_SNAPSHOT,
-        V3_6_5,
-
-        V3_6_6_SNAPSHOT,
-        V3_6_6,
-
-        V3_6_7_SNAPSHOT,
-        V3_6_7,
-
-        V3_6_8_SNAPSHOT,
-        V3_6_8,
-
-        V3_6_9_SNAPSHOT,
-        V3_6_9,
-
-        V3_7_1_SNAPSHOT,
-        V3_7_1,
-
-        V3_7_2_SNAPSHOT,
-        V3_7_2,
-
-        V3_7_3_SNAPSHOT,
-        V3_7_3,
-
-        V3_7_4_SNAPSHOT,
-        V3_7_4,
-
-        V3_7_5_SNAPSHOT,
-        V3_7_5,
-
-        V3_7_6_SNAPSHOT,
-        V3_7_6,
-
-        V3_7_7_SNAPSHOT,
-        V3_7_7,
-
-        V3_7_8_SNAPSHOT,
-        V3_7_8,
-
-        V3_7_9_SNAPSHOT,
-        V3_7_9,
-
-        V3_8_1_SNAPSHOT,
-        V3_8_1,
-
-        V3_8_2_SNAPSHOT,
-        V3_8_2,
-
-        V3_8_3_SNAPSHOT,
-        V3_8_3,
-
-        V3_8_4_SNAPSHOT,
-        V3_8_4,
-
-        V3_8_5_SNAPSHOT,
-        V3_8_5,
-
-        V3_8_6_SNAPSHOT,
-        V3_8_6,
-
-        V3_8_7_SNAPSHOT,
-        V3_8_7,
-
-        V3_8_8_SNAPSHOT,
-        V3_8_8,
-
-        V3_8_9_SNAPSHOT,
-        V3_8_9,
-
-        V3_9_1_SNAPSHOT,
-        V3_9_1,
-
-        V3_9_2_SNAPSHOT,
-        V3_9_2,
-
-        V3_9_3_SNAPSHOT,
-        V3_9_3,
-
-        V3_9_4_SNAPSHOT,
-        V3_9_4,
-
-        V3_9_5_SNAPSHOT,
-        V3_9_5,
-
-        V3_9_6_SNAPSHOT,
-        V3_9_6,
-
-        V3_9_7_SNAPSHOT,
-        V3_9_7,
-
-        V3_9_8_SNAPSHOT,
-        V3_9_8,
-
-        V3_9_9_SNAPSHOT,
-        V3_9_9,
-
-        V4_0_0_SNAPSHOT,
-        V4_0_0,
-
-        V4_1_0_SNAPSHOT,
-        V4_1_0,
-
-        V4_2_0_SNAPSHOT,
-        V4_2_0,
-
-        V4_3_0_SNAPSHOT,
-        V4_3_0,
-
-        V4_4_0_SNAPSHOT,
-        V4_4_0,
-
-        V4_5_0_SNAPSHOT,
-        V4_5_0,
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/MixAll.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/MixAll.java b/common/src/main/java/com/alibaba/rocketmq/common/MixAll.java
deleted file mode 100644
index 508111c..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/MixAll.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-import com.alibaba.rocketmq.common.annotation.ImportantField;
-import com.alibaba.rocketmq.common.help.FAQUrl;
-import org.slf4j.Logger;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.NetworkInterface;
-import java.net.SocketException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicLong;
-
-
-/**
- * @author shijia.wxr
- */
-public class MixAll {
-    public static final String ROCKETMQ_HOME_ENV = "ROCKETMQ_HOME";
-    public static final String ROCKETMQ_HOME_PROPERTY = "rocketmq.home.dir";
-    public static final String NAMESRV_ADDR_ENV = "NAMESRV_ADDR";
-    public static final String NAMESRV_ADDR_PROPERTY = "rocketmq.namesrv.addr";
-    public static final String MESSAGE_COMPRESS_LEVEL = "rocketmq.message.compressLevel";
-    public static final String WS_DOMAIN_NAME = System.getProperty("rocketmq.namesrv.domain", "jmenv.tbsite.net");
-    public static final String WS_DOMAIN_SUBGROUP = System.getProperty("rocketmq.namesrv.domain.subgroup", "nsaddr");
-    // http://jmenv.tbsite.net:8080/rocketmq/nsaddr
-    public static final String WS_ADDR = "http://" + WS_DOMAIN_NAME + ":8080/rocketmq/" + WS_DOMAIN_SUBGROUP;
-    public static final String DEFAULT_TOPIC = "TBW102";
-    public static final String BENCHMARK_TOPIC = "BenchmarkTest";
-    public static final String DEFAULT_PRODUCER_GROUP = "DEFAULT_PRODUCER";
-    public static final String DEFAULT_CONSUMER_GROUP = "DEFAULT_CONSUMER";
-    public static final String TOOLS_CONSUMER_GROUP = "TOOLS_CONSUMER";
-    public static final String FILTERSRV_CONSUMER_GROUP = "FILTERSRV_CONSUMER";
-    public static final String MONITOR_CONSUMER_GROUP = "__MONITOR_CONSUMER";
-    public static final String CLIENT_INNER_PRODUCER_GROUP = "CLIENT_INNER_PRODUCER";
-    public static final String SELF_TEST_PRODUCER_GROUP = "SELF_TEST_P_GROUP";
-    public static final String SELF_TEST_CONSUMER_GROUP = "SELF_TEST_C_GROUP";
-    public static final String SELF_TEST_TOPIC = "SELF_TEST_TOPIC";
-    public static final String OFFSET_MOVED_EVENT = "OFFSET_MOVED_EVENT";
-    public static final String ONS_HTTP_PROXY_GROUP = "CID_ONS-HTTP-PROXY";
-    public static final String CID_ONSAPI_PERMISSION_GROUP = "CID_ONSAPI_PERMISSION";
-    public static final String CID_ONSAPI_OWNER_GROUP = "CID_ONSAPI_OWNER";
-    public static final String CID_ONSAPI_PULL_GROUP = "CID_ONSAPI_PULL";
-    public static final String CID_RMQ_SYS_PREFIX = "CID_RMQ_SYS_";
-
-    public static final List<String> LOCAL_INET_ADDRESS = getLocalInetAddress();
-    public static final String LOCALHOST = localhost();
-    public static final String DEFAULT_CHARSET = "UTF-8";
-    public static final long MASTER_ID = 0L;
-    public static final long CURRENT_JVM_PID = getPID();
-
-    public static final String RETRY_GROUP_TOPIC_PREFIX = "%RETRY%";
-
-    public static final String DLQ_GROUP_TOPIC_PREFIX = "%DLQ%";
-    public static final String SYSTEM_TOPIC_PREFIX = "rmq_sys_";
-    public static final String UNIQUE_MSG_QUERY_FLAG = "_UNIQUE_KEY_QUERY";
-    public static final String DEFAULT_TRACE_REGION_ID = "DefaultRegion";
-    public static final String CONSUME_CONTEXT_TYPE = "ConsumeContextType";
-
-    public static String getRetryTopic(final String consumerGroup) {
-        return RETRY_GROUP_TOPIC_PREFIX + consumerGroup;
-    }
-
-
-    public static boolean isSysConsumerGroup(final String consumerGroup) {
-        return consumerGroup.startsWith(CID_RMQ_SYS_PREFIX);
-    }
-
-    public static boolean isSystemTopic(final String topic) {
-        return topic.startsWith(SYSTEM_TOPIC_PREFIX);
-    }
-
-    public static String getDLQTopic(final String consumerGroup) {
-        return DLQ_GROUP_TOPIC_PREFIX + consumerGroup;
-    }
-
-
-    public static String brokerVIPChannel(final boolean isChange, final String brokerAddr) {
-        if (isChange) {
-            String[] ipAndPort = brokerAddr.split(":");
-            String brokerAddrNew = ipAndPort[0] + ":" + (Integer.parseInt(ipAndPort[1]) - 2);
-            return brokerAddrNew;
-        } else {
-            return brokerAddr;
-        }
-    }
-
-
-    public static long getPID() {
-        String processName = java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
-        if (processName != null && processName.length() > 0) {
-            try {
-                return Long.parseLong(processName.split("@")[0]);
-            } catch (Exception e) {
-                return 0;
-            }
-        }
-
-        return 0;
-    }
-
-
-    public static long createBrokerId(final String ip, final int port) {
-        InetSocketAddress isa = new InetSocketAddress(ip, port);
-        byte[] ipArray = isa.getAddress().getAddress();
-        ByteBuffer bb = ByteBuffer.allocate(8);
-        bb.put(ipArray);
-        bb.putInt(port);
-        long value = bb.getLong(0);
-        return Math.abs(value);
-    }
-
-    public static final void string2File(final String str, final String fileName) throws IOException {
-
-        String tmpFile = fileName + ".tmp";
-        string2FileNotSafe(str, tmpFile);
-
-
-        String bakFile = fileName + ".bak";
-        String prevContent = file2String(fileName);
-        if (prevContent != null) {
-            string2FileNotSafe(prevContent, bakFile);
-        }
-
-
-        File file = new File(fileName);
-        file.delete();
-
-
-        file = new File(tmpFile);
-        file.renameTo(new File(fileName));
-    }
-
-
-    public static final void string2FileNotSafe(final String str, final String fileName) throws IOException {
-        File file = new File(fileName);
-        File fileParent = file.getParentFile();
-        if (fileParent != null) {
-            fileParent.mkdirs();
-        }
-        FileWriter fileWriter = null;
-
-        try {
-            fileWriter = new FileWriter(file);
-            fileWriter.write(str);
-        } catch (IOException e) {
-            throw e;
-        } finally {
-            if (fileWriter != null) {
-                try {
-                    fileWriter.close();
-                } catch (IOException e) {
-                    throw e;
-                }
-            }
-        }
-    }
-
-
-    public static final String file2String(final String fileName) {
-        File file = new File(fileName);
-        return file2String(file);
-    }
-
-    public static final String file2String(final File file) {
-        if (file.exists()) {
-            char[] data = new char[(int) file.length()];
-            boolean result = false;
-
-            FileReader fileReader = null;
-            try {
-                fileReader = new FileReader(file);
-                int len = fileReader.read(data);
-                result = len == data.length;
-            } catch (IOException e) {
-                // e.printStackTrace();
-            } finally {
-                if (fileReader != null) {
-                    try {
-                        fileReader.close();
-                    } catch (IOException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-
-            if (result) {
-                return new String(data);
-            }
-        }
-        return null;
-    }
-
-    public static final String file2String(final URL url) {
-        InputStream in = null;
-        try {
-            URLConnection urlConnection = url.openConnection();
-            urlConnection.setUseCaches(false);
-            in = urlConnection.getInputStream();
-            int len = in.available();
-            byte[] data = new byte[len];
-            in.read(data, 0, len);
-            return new String(data, "UTF-8");
-        } catch (Exception e) {
-        } finally {
-            if (null != in) {
-                try {
-                    in.close();
-                } catch (IOException e) {
-                }
-            }
-        }
-
-        return null;
-    }
-
-    public static String findClassPath(Class<?> c) {
-        URL url = c.getProtectionDomain().getCodeSource().getLocation();
-        return url.getPath();
-    }
-
-
-    public static void printObjectProperties(final Logger log, final Object object) {
-        printObjectProperties(log, object, false);
-    }
-
-
-    public static void printObjectProperties(final Logger log, final Object object, final boolean onlyImportantField) {
-        Field[] fields = object.getClass().getDeclaredFields();
-        for (Field field : fields) {
-            if (!Modifier.isStatic(field.getModifiers())) {
-                String name = field.getName();
-                if (!name.startsWith("this")) {
-                    Object value = null;
-                    try {
-                        field.setAccessible(true);
-                        value = field.get(object);
-                        if (null == value) {
-                            value = "";
-                        }
-                    } catch (IllegalArgumentException e) {
-                        e.printStackTrace();
-                    } catch (IllegalAccessException e) {
-                        e.printStackTrace();
-                    }
-
-                    if (onlyImportantField) {
-                        Annotation annotation = field.getAnnotation(ImportantField.class);
-                        if (null == annotation) {
-                            continue;
-                        }
-                    }
-
-                    if (log != null) {
-                        log.info(name + "=" + value);
-                    } else {
-                    }
-                }
-            }
-        }
-    }
-
-
-    public static String properties2String(final Properties properties) {
-        StringBuilder sb = new StringBuilder();
-        for (Map.Entry<Object, Object> entry : properties.entrySet()) {
-            if (entry.getValue() != null) {
-                sb.append(entry.getKey().toString() + "=" + entry.getValue().toString() + "\n");
-            }
-        }
-        return sb.toString();
-    }
-
-    public static Properties string2Properties(final String str) {
-        Properties properties = new Properties();
-        try {
-            InputStream in = new ByteArrayInputStream(str.getBytes(DEFAULT_CHARSET));
-            properties.load(in);
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-            return null;
-        } catch (IOException e) {
-            e.printStackTrace();
-            return null;
-        }
-
-        return properties;
-    }
-
-    public static Properties object2Properties(final Object object) {
-        Properties properties = new Properties();
-
-        Field[] fields = object.getClass().getDeclaredFields();
-        for (Field field : fields) {
-            if (!Modifier.isStatic(field.getModifiers())) {
-                String name = field.getName();
-                if (!name.startsWith("this")) {
-                    Object value = null;
-                    try {
-                        field.setAccessible(true);
-                        value = field.get(object);
-                    } catch (IllegalArgumentException e) {
-                        e.printStackTrace();
-                    } catch (IllegalAccessException e) {
-                        e.printStackTrace();
-                    }
-
-                    if (value != null) {
-                        properties.setProperty(name, value.toString());
-                    }
-                }
-            }
-        }
-
-        return properties;
-    }
-
-    public static void properties2Object(final Properties p, final Object object) {
-        Method[] methods = object.getClass().getMethods();
-        for (Method method : methods) {
-            String mn = method.getName();
-            if (mn.startsWith("set")) {
-                try {
-                    String tmp = mn.substring(4);
-                    String first = mn.substring(3, 4);
-
-                    String key = first.toLowerCase() + tmp;
-                    String property = p.getProperty(key);
-                    if (property != null) {
-                        Class<?>[] pt = method.getParameterTypes();
-                        if (pt != null && pt.length > 0) {
-                            String cn = pt[0].getSimpleName();
-                            Object arg = null;
-                            if (cn.equals("int") || cn.equals("Integer")) {
-                                arg = Integer.parseInt(property);
-                            } else if (cn.equals("long") || cn.equals("Long")) {
-                                arg = Long.parseLong(property);
-                            } else if (cn.equals("double") || cn.equals("Double")) {
-                                arg = Double.parseDouble(property);
-                            } else if (cn.equals("boolean") || cn.equals("Boolean")) {
-                                arg = Boolean.parseBoolean(property);
-                            } else if (cn.equals("float") || cn.equals("Float")) {
-                                arg = Float.parseFloat(property);
-                            } else if (cn.equals("String")) {
-                                arg = property;
-                            } else {
-                                continue;
-                            }
-                            method.invoke(object, new Object[]{arg});
-                        }
-                    }
-                } catch (Throwable e) {
-                }
-            }
-        }
-    }
-
-
-    public static boolean isPropertiesEqual(final Properties p1, final Properties p2) {
-        return p1.equals(p2);
-    }
-
-
-    public static List<String> getLocalInetAddress() {
-        List<String> inetAddressList = new ArrayList<String>();
-        try {
-            Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
-            while (enumeration.hasMoreElements()) {
-                NetworkInterface networkInterface = enumeration.nextElement();
-                Enumeration<InetAddress> addrs = networkInterface.getInetAddresses();
-                while (addrs.hasMoreElements()) {
-                    inetAddressList.add(addrs.nextElement().getHostAddress());
-                }
-            }
-        } catch (SocketException e) {
-            throw new RuntimeException("get local inet address fail", e);
-        }
-
-        return inetAddressList;
-    }
-
-
-    public static boolean isLocalAddr(String address) {
-        for (String addr : LOCAL_INET_ADDRESS) {
-            if (address.contains(addr))
-                return true;
-        }
-        return false;
-    }
-
-
-    private static String localhost() {
-        try {
-            InetAddress addr = InetAddress.getLocalHost();
-            return addr.getHostAddress();
-        } catch (Throwable e) {
-            throw new RuntimeException("InetAddress java.net.InetAddress.getLocalHost() throws UnknownHostException"
-                    + FAQUrl.suggestTodo(FAQUrl.UNKNOWN_HOST_EXCEPTION),
-                    e);
-        }
-    }
-
-
-    public static boolean compareAndIncreaseOnly(final AtomicLong target, final long value) {
-        long prev = target.get();
-        while (value > prev) {
-            boolean updated = target.compareAndSet(prev, value);
-            if (updated)
-                return true;
-
-            prev = target.get();
-        }
-
-        return false;
-    }
-
-    public static String localhostName() {
-        try {
-            return InetAddress.getLocalHost().getHostName();
-        } catch (Throwable e) {
-            throw new RuntimeException("InetAddress java.net.InetAddress.getLocalHost() throws UnknownHostException"
-                    + FAQUrl.suggestTodo(FAQUrl.UNKNOWN_HOST_EXCEPTION),
-                    e);
-        }
-    }
-
-    public Set<String> list2Set(List<String> values) {
-        Set<String> result = new HashSet<String>();
-        for (String v : values) {
-            result.add(v);
-        }
-        return result;
-    }
-
-    public List<String> set2List(Set<String> values) {
-        List<String> result = new ArrayList<String>();
-        for (String v : values) {
-            result.add(v);
-        }
-        return result;
-    }
-
-    public static String humanReadableByteCount(long bytes, boolean si) {
-        int unit = si ? 1000 : 1024;
-        if (bytes < unit) return bytes + " B";
-        int exp = (int) (Math.log(bytes) / Math.log(unit));
-        String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i");
-        return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/Pair.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/Pair.java b/common/src/main/java/com/alibaba/rocketmq/common/Pair.java
deleted file mode 100644
index ada6144..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/Pair.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-/**
- * @author shijia.wxr
- */
-public class Pair<T1, T2> {
-    private T1 object1;
-    private T2 object2;
-
-
-    public Pair(T1 object1, T2 object2) {
-        this.object1 = object1;
-        this.object2 = object2;
-    }
-
-
-    public T1 getObject1() {
-        return object1;
-    }
-
-
-    public void setObject1(T1 object1) {
-        this.object1 = object1;
-    }
-
-
-    public T2 getObject2() {
-        return object2;
-    }
-
-
-    public void setObject2(T2 object2) {
-        this.object2 = object2;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/ServiceState.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/ServiceState.java b/common/src/main/java/com/alibaba/rocketmq/common/ServiceState.java
deleted file mode 100644
index a580cf4..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/ServiceState.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-/**
- * @author shijia.wxr
- */
-public enum ServiceState {
-    /**
-     * Service just created,not start
-     */
-    CREATE_JUST,
-    /**
-     * Service Running
-     */
-    RUNNING,
-    /**
-     * Service shutdown
-     */
-    SHUTDOWN_ALREADY,
-    /**
-     * Service Start failure
-     */
-    START_FAILED;
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/ServiceThread.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/ServiceThread.java b/common/src/main/java/com/alibaba/rocketmq/common/ServiceThread.java
deleted file mode 100644
index d6da0e3..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/ServiceThread.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-import com.alibaba.rocketmq.common.constant.LoggerName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-/**
- * @author shijia.wxr
- * @author xinyuzhou.zxy
- */
-public abstract class ServiceThread implements Runnable {
-    private static final Logger STLOG = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
-    private static final long JOIN_TIME = 90 * 1000;
-
-    protected final Thread thread;
-
-    protected volatile AtomicBoolean hasNotified = new AtomicBoolean(false);
-
-    protected volatile boolean stopped = false;
-
-    protected final CountDownLatch waitPoint = new CountDownLatch(1);
-
-
-    public ServiceThread() {
-        this.thread = new Thread(this, this.getServiceName());
-    }
-
-
-    public abstract String getServiceName();
-
-
-    public void start() {
-        this.thread.start();
-    }
-
-
-    public void shutdown() {
-        this.shutdown(false);
-    }
-
-    public void shutdown(final boolean interrupt) {
-        this.stopped = true;
-        STLOG.info("shutdown thread " + this.getServiceName() + " interrupt " + interrupt);
-
-        if (hasNotified.compareAndSet(false, true)) {
-            waitPoint.countDown(); // notify
-        }
-
-        try {
-            if (interrupt) {
-                this.thread.interrupt();
-            }
-
-            long beginTime = System.currentTimeMillis();
-            if (!this.thread.isDaemon()) {
-                this.thread.join(this.getJointime());
-            }
-            long eclipseTime = System.currentTimeMillis() - beginTime;
-            STLOG.info("join thread " + this.getServiceName() + " eclipse time(ms) " + eclipseTime + " "
-                    + this.getJointime());
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public long getJointime() {
-        return JOIN_TIME;
-    }
-
-    public void stop() {
-        this.stop(false);
-    }
-
-    public void stop(final boolean interrupt) {
-        this.stopped = true;
-        STLOG.info("stop thread " + this.getServiceName() + " interrupt " + interrupt);
-
-        if (hasNotified.compareAndSet(false, true)) {
-            waitPoint.countDown(); // notify
-        }
-
-        if (interrupt) {
-            this.thread.interrupt();
-        }
-    }
-
-    public void makeStop() {
-        this.stopped = true;
-        STLOG.info("makestop thread " + this.getServiceName());
-    }
-
-    public void wakeup() {
-        if (hasNotified.compareAndSet(false, true)) {
-            waitPoint.countDown(); // notify
-        }
-    }
-
-    protected void waitForRunning(long interval) {
-        if (hasNotified.compareAndSet(true, false)) {
-            this.onWaitEnd();
-            return;
-        }
-
-        //entry to wait
-        waitPoint.reset();
-
-        try {
-            waitPoint.await(interval, TimeUnit.MILLISECONDS);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        } finally {
-            hasNotified.set(false);
-            this.onWaitEnd();
-        }
-    }
-
-    protected void onWaitEnd() {
-    }
-
-    public boolean isStopped() {
-        return stopped;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/SystemClock.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/SystemClock.java b/common/src/main/java/com/alibaba/rocketmq/common/SystemClock.java
deleted file mode 100644
index 36c0448..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/SystemClock.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-/**
- * @author vintage.wang
- */
-public class SystemClock {
-    public long now() {
-        return System.currentTimeMillis();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/ThreadFactoryImpl.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/ThreadFactoryImpl.java b/common/src/main/java/com/alibaba/rocketmq/common/ThreadFactoryImpl.java
deleted file mode 100644
index b4d85cd..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/ThreadFactoryImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * 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.
- */
-
-package com.alibaba.rocketmq.common;
-
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicLong;
-
-
-public class ThreadFactoryImpl implements ThreadFactory {
-    private final AtomicLong threadIndex = new AtomicLong(0);
-    private final String threadNamePrefix;
-
-
-    public ThreadFactoryImpl(final String threadNamePrefix) {
-        this.threadNamePrefix = threadNamePrefix;
-    }
-
-
-    @Override
-    public Thread newThread(Runnable r) {
-        return new Thread(r, threadNamePrefix + this.threadIndex.incrementAndGet());
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/TopicConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/TopicConfig.java b/common/src/main/java/com/alibaba/rocketmq/common/TopicConfig.java
deleted file mode 100644
index 16019df..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/TopicConfig.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-import com.alibaba.rocketmq.common.constant.PermName;
-
-
-/**
- * @author shijia.wxr
- */
-public class TopicConfig {
-    private static final String SEPARATOR = " ";
-    public static int defaultReadQueueNums = 16;
-    public static int defaultWriteQueueNums = 16;
-    private String topicName;
-    private int readQueueNums = defaultReadQueueNums;
-    private int writeQueueNums = defaultWriteQueueNums;
-    private int perm = PermName.PERM_READ | PermName.PERM_WRITE;
-    private TopicFilterType topicFilterType = TopicFilterType.SINGLE_TAG;
-    private int topicSysFlag = 0;
-    private boolean order = false;
-
-
-    public TopicConfig() {
-    }
-
-
-    public TopicConfig(String topicName) {
-        this.topicName = topicName;
-    }
-
-
-    public TopicConfig(String topicName, int readQueueNums, int writeQueueNums, int perm) {
-        this.topicName = topicName;
-        this.readQueueNums = readQueueNums;
-        this.writeQueueNums = writeQueueNums;
-        this.perm = perm;
-    }
-
-
-    public String encode() {
-        StringBuilder sb = new StringBuilder();
-
-        // 1
-        sb.append(this.topicName);
-        sb.append(SEPARATOR);
-
-        // 2
-        sb.append(this.readQueueNums);
-        sb.append(SEPARATOR);
-
-        // 3
-        sb.append(this.writeQueueNums);
-        sb.append(SEPARATOR);
-
-        // 4
-        sb.append(this.perm);
-        sb.append(SEPARATOR);
-
-        // 5
-        sb.append(this.topicFilterType);
-
-        return sb.toString();
-    }
-
-
-    public boolean decode(final String in) {
-        String[] strs = in.split(SEPARATOR);
-        if (strs != null && strs.length == 5) {
-            this.topicName = strs[0];
-
-            this.readQueueNums = Integer.parseInt(strs[1]);
-
-            this.writeQueueNums = Integer.parseInt(strs[2]);
-
-            this.perm = Integer.parseInt(strs[3]);
-
-            this.topicFilterType = TopicFilterType.valueOf(strs[4]);
-
-            return true;
-        }
-
-        return false;
-    }
-
-
-    public String getTopicName() {
-        return topicName;
-    }
-
-
-    public void setTopicName(String topicName) {
-        this.topicName = topicName;
-    }
-
-
-    public int getReadQueueNums() {
-        return readQueueNums;
-    }
-
-
-    public void setReadQueueNums(int readQueueNums) {
-        this.readQueueNums = readQueueNums;
-    }
-
-
-    public int getWriteQueueNums() {
-        return writeQueueNums;
-    }
-
-
-    public void setWriteQueueNums(int writeQueueNums) {
-        this.writeQueueNums = writeQueueNums;
-    }
-
-
-    public int getPerm() {
-        return perm;
-    }
-
-
-    public void setPerm(int perm) {
-        this.perm = perm;
-    }
-
-
-    public TopicFilterType getTopicFilterType() {
-        return topicFilterType;
-    }
-
-
-    public void setTopicFilterType(TopicFilterType topicFilterType) {
-        this.topicFilterType = topicFilterType;
-    }
-
-
-    public int getTopicSysFlag() {
-        return topicSysFlag;
-    }
-
-
-    public void setTopicSysFlag(int topicSysFlag) {
-        this.topicSysFlag = topicSysFlag;
-    }
-
-
-    public boolean isOrder() {
-        return order;
-    }
-
-
-    public void setOrder(boolean isOrder) {
-        this.order = isOrder;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final TopicConfig that = (TopicConfig) o;
-
-        if (readQueueNums != that.readQueueNums) return false;
-        if (writeQueueNums != that.writeQueueNums) return false;
-        if (perm != that.perm) return false;
-        if (topicSysFlag != that.topicSysFlag) return false;
-        if (order != that.order) return false;
-        if (topicName != null ? !topicName.equals(that.topicName) : that.topicName != null) return false;
-        return topicFilterType == that.topicFilterType;
-
-    }
-
-    @Override
-    public int hashCode() {
-        int result = topicName != null ? topicName.hashCode() : 0;
-        result = 31 * result + readQueueNums;
-        result = 31 * result + writeQueueNums;
-        result = 31 * result + perm;
-        result = 31 * result + (topicFilterType != null ? topicFilterType.hashCode() : 0);
-        result = 31 * result + topicSysFlag;
-        result = 31 * result + (order ? 1 : 0);
-        return result;
-    }
-
-    @Override
-    public String toString() {
-        return "TopicConfig [topicName=" + topicName + ", readQueueNums=" + readQueueNums
-                + ", writeQueueNums=" + writeQueueNums + ", perm=" + PermName.perm2String(perm)
-                + ", topicFilterType=" + topicFilterType + ", topicSysFlag=" + topicSysFlag + ", order="
-                + order + "]";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/de6f9416/common/src/main/java/com/alibaba/rocketmq/common/TopicFilterType.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/com/alibaba/rocketmq/common/TopicFilterType.java b/common/src/main/java/com/alibaba/rocketmq/common/TopicFilterType.java
deleted file mode 100644
index 7a20dc9..0000000
--- a/common/src/main/java/com/alibaba/rocketmq/common/TopicFilterType.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.
- */
-package com.alibaba.rocketmq.common;
-
-/**
- * @author shijia.wxr
- */
-public enum TopicFilterType {
-    SINGLE_TAG,
-    MULTI_TAG
-}