You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tubemq.apache.org by os...@apache.org on 2020/02/13 02:49:12 UTC

[incubator-tubemq] branch master updated: [TUBEMQ-29] Change the package name to "org.apache.tubemq." (#21)

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

osgooli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tubemq.git


The following commit(s) were added to refs/heads/master by this push:
     new f311e5d  [TUBEMQ-29] Change the package name to "org.apache.tubemq." (#21)
f311e5d is described below

commit f311e5ddbca7a369d0ad102afccf26287e661f51
Author: gosonzhang <46...@qq.com>
AuthorDate: Thu Feb 13 10:49:01 2020 +0800

    [TUBEMQ-29] Change the package name to "org.apache.tubemq." (#21)
    
    * [TUBEMQ-29] Change the package name to "org.apache.tubemq."
    
    * [TUBEMQ-29] Change the package name to "org.apache.tubemq."
    
    * [TUBEMQ-29] Change the package name to "org.apache.tubemq."
    
    * [TUBEMQ-29] Change the package name to "org.apache.tubemq."
    
    Compatible with older versions
---
 .travis.yml                                        |   2 +-
 bin/broker.sh                                      |   4 +-
 bin/groupAdmin.sh                                  |   2 +-
 bin/indexReBuilder.sh                              |   2 +-
 bin/master.sh                                      |   4 +-
 docs/tubemq_basic_introduction_cn.md               |   2 +-
 docs/tubemq_clients_cn.md                          |   6 +-
 docs/tubemq_user_guide.md                          |  20 +--
 pom.xml                                            |   8 +-
 tubemq-client/pom.xml                              |   4 +-
 .../apache}/client/common/TClientConstants.java    |   2 +-
 .../apache}/client/config/ConsumerConfig.java      |  10 +-
 .../apache}/client/config/TubeClientConfig.java    |  16 +--
 .../client/config/TubeClientConfigUtils.java       |   6 +-
 .../client/consumer/BaseMessageConsumer.java       |  58 ++++----
 .../apache}/client/consumer/ClientSubInfo.java     |   4 +-
 .../apache}/client/consumer/ConsumeOffsetInfo.java |   6 +-
 .../apache}/client/consumer/ConsumerResult.java    |   6 +-
 .../client/consumer/ConsumerSamplePrint.java       |   4 +-
 .../apache}/client/consumer/FetchContext.java      |  10 +-
 .../apache}/client/consumer/MessageConsumer.java   |   8 +-
 .../client/consumer/MessageFetchManager.java       |   8 +-
 .../apache}/client/consumer/MessageListener.java   |   4 +-
 .../apache}/client/consumer/PartitionExt.java      |  18 +--
 .../client/consumer/PartitionSelectResult.java     |   4 +-
 .../client/consumer/PullMessageConsumer.java       |   4 +-
 .../client/consumer/PushMessageConsumer.java       |   4 +-
 .../apache}/client/consumer/RmtDataCache.java      |  16 +--
 .../client/consumer/SimplePullMessageConsumer.java |  22 +--
 .../client/consumer/SimplePushMessageConsumer.java |  12 +-
 .../apache}/client/consumer/TopicProcessor.java    |   2 +-
 .../client/exception/TubeClientException.java      |   2 +-
 .../client/factory/InnerSessionFactory.java        |   8 +-
 .../client/factory/MessageSessionFactory.java      |  16 +--
 .../client/factory/TubeBaseSessionFactory.java     |  38 ++---
 .../client/factory/TubeMultiSessionFactory.java    |  22 +--
 .../client/factory/TubeSingleSessionFactory.java   |  22 +--
 .../apache}/client/producer/MessageProducer.java   |   8 +-
 .../client/producer/MessageSentCallback.java       |   2 +-
 .../apache}/client/producer/MessageSentResult.java |   8 +-
 .../apache}/client/producer/PartitionRouter.java   |   8 +-
 .../apache}/client/producer/ProducerManager.java   |  46 +++---
 .../client/producer/RoundRobinPartitionRouter.java |   8 +-
 .../client/producer/SimpleMessageProducer.java     |  40 +++---
 .../producer/qltystats/BrokerRcvQltyStats.java     |   6 +-
 .../producer/qltystats/BrokerStatsDltTuple.java    |   2 +-
 .../producer/qltystats/BrokerStatsItemSet.java     |   4 +-
 .../qltystats/DefaultBrokerRcvQltyStats.java       |  14 +-
 tubemq-client/src/saveClientVersion.cmd            |   6 +-
 tubemq-client/src/saveClientVersion.sh             |   6 +-
 .../client/consumer/MessageFetchManagerTest.java   |  16 +--
 .../tubemq/client/consumer/PartitionExtTest.java   |   6 +-
 .../tubemq/client/consumer/RmtDataCacheTest.java   |   8 +-
 .../client/factory/TubeBaseSessionFactoryTest.java |  20 +--
 .../factory/TubeMultiSessionFactoryTest.java       |   8 +-
 .../factory/TubeSingleSessionFactoryTest.java      |   8 +-
 .../producer/RoundRobinPartitionRouterTest.java    |  10 +-
 .../qltystats/DefaultBrokerRcvQltyStatsTest.java   |  10 +-
 tubemq-core/pom.xml                                |   2 +-
 .../apache}/tubemq/corebase/Message.java           |   4 +-
 .../apache}/tubemq/corebase/MessageExt.java        |   2 +-
 .../apache}/tubemq/corebase/Shutdownable.java      |   2 +-
 .../apache}/tubemq/corebase/TBaseConstants.java    |   2 +-
 .../apache}/tubemq/corebase/TErrCodeConstants.java |   2 +-
 .../apache}/tubemq/corebase/TokenConstants.java    |   2 +-
 .../aaaclient/ClientAuthenticateHandler.java       |   4 +-
 .../aaaclient/SimpleClientAuthenticateHandler.java |   8 +-
 .../tubemq/corebase/balance/ConsumerEvent.java     |   4 +-
 .../tubemq/corebase/balance/EventStatus.java       |   2 +-
 .../apache}/tubemq/corebase/balance/EventType.java |   2 +-
 .../tubemq/corebase/cluster/BrokerInfo.java        |   8 +-
 .../tubemq/corebase/cluster/ConsumerInfo.java      |   4 +-
 .../tubemq/corebase/cluster/MasterInfo.java        |   6 +-
 .../tubemq/corebase/cluster/NodeAddrInfo.java      |   6 +-
 .../apache}/tubemq/corebase/cluster/Partition.java |   6 +-
 .../tubemq/corebase/cluster/ProducerInfo.java      |   4 +-
 .../tubemq/corebase/cluster/SubscribeInfo.java     |   4 +-
 .../apache}/tubemq/corebase/cluster/TopicInfo.java |   4 +-
 .../apache}/tubemq/corebase/config/TLSConfig.java  |   4 +-
 .../corebase/daemon/AbstractDaemonService.java     |   2 +-
 .../apache}/tubemq/corebase/daemon/Service.java    |   2 +-
 .../tubemq/corebase/policies/FlowCtrlItem.java     |   4 +-
 .../tubemq/corebase/policies/FlowCtrlResult.java   |   2 +-
 .../corebase/policies/FlowCtrlRuleHandler.java     |   8 +-
 .../tubemq/corebase/policies/SSDCtrlResult.java    |   2 +-
 .../tubemq/corebase/utils/AbstractSamplePrint.java |   2 +-
 .../tubemq/corebase/utils/AddressUtils.java        |   2 +-
 .../apache}/tubemq/corebase/utils/CheckSum.java    |   2 +-
 .../tubemq/corebase/utils/ConcurrentHashSet.java   |   2 +-
 .../tubemq/corebase/utils/DataConverterUtil.java   |  20 +--
 .../tubemq/corebase/utils/MapBackedSet.java        |   2 +-
 .../tubemq/corebase/utils/MessageFlagUtils.java    |   4 +-
 .../tubemq/corebase/utils/ServiceStatusHolder.java |   2 +-
 .../tubemq/corebase/utils/TStringUtils.java        |   6 +-
 .../apache}/tubemq/corebase/utils/ThreadUtils.java |   2 +-
 .../tubemq/corerpc/AbstractServiceInvoker.java     |   8 +-
 .../apache}/tubemq/corerpc/RemoteConErrStats.java  |   2 +-
 .../apache}/tubemq/corerpc/RequestWrapper.java     |   4 +-
 .../apache}/tubemq/corerpc/ResponseWrapper.java    |  25 ++--
 .../apache}/tubemq/corerpc/RpcConfig.java          |   4 +-
 .../apache}/tubemq/corerpc/RpcConstants.java       |   2 +-
 .../apache}/tubemq/corerpc/RpcDataPack.java        |   2 +-
 .../apache}/tubemq/corerpc/RpcServiceFactory.java  |  24 ++--
 .../tubemq/corerpc/RpcServiceFailoverInvoker.java  |  20 +--
 .../apache}/tubemq/corerpc/RpcServiceInvoker.java  |  20 +--
 .../corerpc/benchemark/DefaultSimpleService.java   |   2 +-
 .../benchemark/RcpService4BenchmarkClient.java     |  12 +-
 .../benchemark/RpcService4BenchmarkServer.java     |   6 +-
 .../tubemq/corerpc/benchemark/SimpleService.java   |   2 +-
 .../apache}/tubemq/corerpc/client/CallFuture.java  |   2 +-
 .../apache}/tubemq/corerpc/client/Callback.java    |   2 +-
 .../apache}/tubemq/corerpc/client/Client.java      |   8 +-
 .../tubemq/corerpc/client/ClientFactory.java       |   6 +-
 .../apache}/tubemq/corerpc/codec/PbEnDecoder.java  |  16 +--
 .../apache}/tubemq/corerpc/codec/Protocol.txt      |   0
 .../corerpc/exception/ClientClosedException.java   |   2 +-
 .../corerpc/exception/LocalConnException.java      |   2 +-
 .../tubemq/corerpc/exception/NetworkException.java |   2 +-
 .../corerpc/exception/OverflowException.java       |   2 +-
 .../tubemq/corerpc/exception/RemoteException.java  |   2 +-
 .../corerpc/exception/ServerNotReadyException.java |   2 +-
 .../exception/ServiceStoppingException.java        |   2 +-
 .../tubemq/corerpc/exception/StandbyException.java |   2 +-
 .../exception/UnknownProtocolException.java        |   2 +-
 .../corerpc/netty/ByteBufferInputStream.java       |   2 +-
 .../corerpc/netty/ByteBufferOutputStream.java      |   4 +-
 .../apache}/tubemq/corerpc/netty/NettyClient.java  |  42 +++---
 .../tubemq/corerpc/netty/NettyClientFactory.java   |  16 +--
 .../tubemq/corerpc/netty/NettyProtocolDecoder.java |  10 +-
 .../tubemq/corerpc/netty/NettyProtocolEncoder.java |   6 +-
 .../tubemq/corerpc/netty/NettyRequestContext.java  |  14 +-
 .../tubemq/corerpc/netty/NettyRpcServer.java       |  42 +++---
 .../tubemq/corerpc/netty/ReadTimeoutHandler.java   |   2 +-
 .../apache}/tubemq/corerpc/protocol/Protocol.java  |   4 +-
 .../tubemq/corerpc/protocol/ProtocolFactory.java   |   2 +-
 .../tubemq/corerpc/protocol/RpcProtocol.java       |  27 ++--
 .../tubemq/corerpc/server/RequestContext.java      |   6 +-
 .../apache}/tubemq/corerpc/server/RpcServer.java   |   2 +-
 .../tubemq/corerpc/server/ServiceRpcServer.java    |   2 +-
 .../tubemq/corerpc/service/BrokerReadService.java  |   4 +-
 .../tubemq/corerpc/service/BrokerWriteService.java |   6 +-
 .../tubemq/corerpc/service/MasterService.java      |   4 +-
 .../apache}/tubemq/corerpc/utils/MixUtils.java     |  15 +-
 .../tubemq/corerpc/utils/TSSLEngineUtil.java       |   2 +-
 tubemq-core/src/main/protobuf/BrokerService.proto  |   2 +-
 tubemq-core/src/main/protobuf/MasterService.proto  |   2 +-
 tubemq-core/src/main/protobuf/RPC.proto            |   2 +-
 .../corebase/policies/TestFlowCtrlRuleHandler.java |   2 +-
 .../corerpc/codec/DataConverterUtilTest.java       |  12 +-
 .../tubemq/corerpc/codec/PbEnDecoderTest.java      |   6 +-
 .../corerpc/netty/NettyProtocolEncoderTest.java    |   4 +-
 .../tubemq/corerpc/utils/TSSLEngineUtilTest.java   |   2 +-
 tubemq-example/pom.xml                             |   4 +-
 .../tubemq/example/MAMessageProducerExample.java   |  24 ++--
 .../tubemq/example/MessageConsumerExample.java     |  18 +--
 .../tubemq/example/MessageProducerExample.java     |  22 +--
 .../tubemq/example/MessagePullConsumerExample.java |  22 +--
 .../example/MessagePullSetConsumerExample.java     |  22 +--
 .../apache}/tubemq/example/MsgRecvStats.java       |   4 +-
 tubemq-server/pom.xml                              |   8 +-
 .../apache}/tubemq/server/Server.java              |   2 +-
 .../apache}/tubemq/server/Stoppable.java           |   2 +-
 .../apache}/tubemq/server/broker/BrokerConfig.java |  18 +--
 .../tubemq/server/broker/BrokerServiceServer.java  |  98 ++++++-------
 .../apache}/tubemq/server/broker/TubeBroker.java   |  62 ++++----
 .../broker/exception/OffsetStoreException.java     |   2 +-
 .../server/broker/exception/StartupException.java  |   2 +-
 .../server/broker/metadata/BrokerDefMetadata.java  |   6 +-
 .../broker/metadata/BrokerMetadataManage.java      |   8 +-
 .../server/broker/metadata/MetadataManage.java     |   4 +-
 .../server/broker/metadata/TopicMetadata.java      |   8 +-
 .../server/broker/msgstore/MessageStore.java       |  36 ++---
 .../broker/msgstore/MessageStoreManager.java       |  34 ++---
 .../server/broker/msgstore/StoreService.java       |   2 +-
 .../server/broker/msgstore/disk/FileReadView.java  |   2 +-
 .../server/broker/msgstore/disk/FileSegment.java   |   6 +-
 .../broker/msgstore/disk/FileSegmentList.java      |   6 +-
 .../broker/msgstore/disk/GetMessageResult.java     |   6 +-
 .../broker/msgstore/disk/MsgFileStatisInfo.java    |   4 +-
 .../server/broker/msgstore/disk/MsgFileStore.java  |  24 ++--
 .../server/broker/msgstore/disk/RecordView.java    |   2 +-
 .../server/broker/msgstore/disk/Segment.java       |   2 +-
 .../server/broker/msgstore/disk/SegmentList.java   |   2 +-
 .../server/broker/msgstore/disk/SegmentType.java   |   2 +-
 .../broker/msgstore/mem/GetCacheMsgResult.java     |   2 +-
 .../broker/msgstore/mem/MsgMemStatisInfo.java      |   4 +-
 .../server/broker/msgstore/mem/MsgMemStore.java    |  12 +-
 .../server/broker/msgstore/ssd/MsgSSDSegment.java  |  22 +--
 .../broker/msgstore/ssd/MsgSSDStoreManager.java    |  28 ++--
 .../server/broker/msgstore/ssd/SSDSegEvent.java    |   2 +-
 .../server/broker/msgstore/ssd/SSDSegFound.java    |   2 +-
 .../server/broker/msgstore/ssd/SSDSegIndex.java    |   2 +-
 .../server/broker/msgstore/ssd/SSDVisitInfo.java   |   2 +-
 .../server/broker/nodeinfo/ConsumerNodeInfo.java   |  16 +--
 .../server/broker/offset/DefaultOffsetManager.java |  20 +--
 .../tubemq/server/broker/offset/OffsetService.java |   6 +-
 .../tubemq/server/broker/stats/CountItem.java      |   2 +-
 .../tubemq/server/broker/stats/CountService.java   |   2 +-
 .../server/broker/stats/GroupCountService.java     |   4 +-
 .../server/broker/utils/BrokerSamplePrint.java     |   4 +-
 .../tubemq/server/broker/utils/DataStoreUtils.java |  14 +-
 .../server/broker/utils/DiskSamplePrint.java       |   4 +-
 .../server/broker/web/BrokerAdminServlet.java      |  20 +--
 .../tubemq/server/broker/web/WebServer.java        |   6 +-
 .../tubemq/server/common/TServerConstants.java     |   4 +-
 .../tubemq/server/common/TStatusConstants.java     |   2 +-
 .../common/aaaserver/CertificateBrokerHandler.java |   6 +-
 .../common/aaaserver/CertificateMasterHandler.java |   4 +-
 .../server/common/aaaserver/CertifiedResult.java   |   4 +-
 .../aaaserver/SimpleCertificateBrokerHandler.java  |  16 +--
 .../aaaserver/SimpleCertificateMasterHandler.java  |  10 +-
 .../common/exception/HeartbeatException.java       |   2 +-
 .../common/exception/IllegalConfigException.java   |   2 +-
 .../common/fileconfig/AbstractFileConfig.java      |   8 +-
 .../tubemq/server/common/fileconfig/BDBConfig.java |   2 +-
 .../tubemq/server/common/fileconfig/ZKConfig.java  |   4 +-
 .../server/common/heartbeat/HeartbeatManager.java  |   6 +-
 .../server/common/heartbeat/TimeoutInfo.java       |   2 +-
 .../server/common/heartbeat/TimeoutListener.java   |   2 +-
 .../server/common/offsetstorage/OffsetStorage.java |   2 +-
 .../common/offsetstorage/OffsetStorageInfo.java    |   6 +-
 .../common/offsetstorage/ZkOffsetStorage.java      |  14 +-
 .../common/offsetstorage/zookeeper/Abortable.java  |   2 +-
 .../zookeeper/RecoverableZooKeeper.java            |   4 +-
 .../offsetstorage/zookeeper/RetryCounter.java      |   2 +-
 .../zookeeper/RetryCounterFactory.java             |   2 +-
 .../common/offsetstorage/zookeeper/ZKUtil.java     |   6 +-
 .../zookeeper/ZooKeeperConnectionException.java    |   2 +-
 .../offsetstorage/zookeeper/ZooKeeperListener.java |   2 +-
 .../offsetstorage/zookeeper/ZooKeeperWatcher.java  |   6 +-
 .../server/common/paramcheck/PBParameterUtils.java |  26 ++--
 .../server/common/paramcheck/ParamCheckResult.java |   4 +-
 .../apache}/tubemq/server/common/utils/Bytes.java  |   3 +-
 .../tubemq/server/common/utils/FileUtil.java       |   2 +-
 .../tubemq/server/common/utils/HasThread.java      |   2 +-
 .../tubemq/server/common/utils/HashedBytes.java    |   2 +-
 .../tubemq/server/common/utils/IdWorker.java       |   2 +-
 .../tubemq/server/common/utils/JVMClusterUtil.java |  12 +-
 .../tubemq/server/common/utils/RowLock.java        |   2 +-
 .../tubemq/server/common/utils/Sleeper.java        |   4 +-
 .../server/common/utils/WebParameterUtils.java     |  20 +--
 .../server/common/utils/WritableComparator.java    |   2 +-
 .../apache}/tubemq/server/master/MasterConfig.java |  22 +--
 .../apache}/tubemq/server/master/TMaster.java      | 160 ++++++++++-----------
 .../server/master/balance/DefaultLoadBalancer.java |  30 ++--
 .../tubemq/server/master/balance/LoadBalancer.java |  16 +--
 .../server/master/bdbstore/BdbStoreService.java    |  20 +--
 .../master/bdbstore/DefaultBdbStoreService.java    |  36 ++---
 .../server/master/bdbstore/MasterGroupStatus.java  |   2 +-
 .../server/master/bdbstore/MasterNodeInfo.java     |   2 +-
 .../bdbstore/bdbentitys/BdbBlackGroupEntity.java   |   6 +-
 .../bdbstore/bdbentitys/BdbBrokerConfEntity.java   |  12 +-
 .../bdbentitys/BdbConsumeGroupSettingEntity.java   |   4 +-
 .../bdbentitys/BdbConsumerGroupEntity.java         |   6 +-
 .../bdbentitys/BdbGroupFilterCondEntity.java       |   6 +-
 .../bdbentitys/BdbGroupFlowCtrlEntity.java         |  12 +-
 .../bdbentitys/BdbTopicAuthControlEntity.java      |   4 +-
 .../bdbstore/bdbentitys/BdbTopicConfEntity.java    |  12 +-
 .../nodemanage/nodebroker/BrokerConfManage.java    |  48 +++----
 .../nodemanage/nodebroker/BrokerInfoHolder.java    |  18 +--
 .../nodebroker/BrokerSyncStatusInfo.java           |  16 +--
 .../nodemanage/nodebroker/TargetValidResult.java   |   2 +-
 .../nodemanage/nodebroker/TopicPSInfoManager.java  |  12 +-
 .../nodemanage/nodeconsumer/ConsumerBandInfo.java  |   4 +-
 .../nodeconsumer/ConsumerEventManager.java         |   6 +-
 .../nodeconsumer/ConsumerInfoHolder.java           |   4 +-
 .../nodemanage/nodeconsumer/NodeRebInfo.java       |   2 +-
 .../nodemanage/nodeconsumer/RebProcessInfo.java    |   2 +-
 .../nodeproducer/ProducerInfoHolder.java           |   4 +-
 .../server/master/utils/BdbStoreSamplePrint.java   |   4 +-
 .../apache}/tubemq/server/master/utils/Chore.java  |   8 +-
 .../master/utils/SimpleVisitTokenManage.java       |   8 +-
 .../server/master/web/MasterStatusCheckFilter.java |   8 +-
 .../tubemq/server/master/web/UserAuthFilter.java   |   2 +-
 .../tubemq/server/master/web/WebServer.java        |  34 ++---
 .../server/master/web/action/layout/Default.java   |   6 +-
 .../server/master/web/action/screen/Master.java    |  34 ++---
 .../server/master/web/action/screen/Tubeweb.java   |  10 +-
 .../server/master/web/action/screen/Webapi.java    |  46 +++---
 .../web/action/screen/cluster/ClusterManage.java   |  18 +--
 .../web/action/screen/config/BrokerDetail.java     |   8 +-
 .../web/action/screen/config/BrokerList.java       |  22 +--
 .../web/action/screen/config/TopicDetail.java      |   8 +-
 .../master/web/action/screen/config/TopicList.java |   8 +-
 .../master/web/action/screen/consume/Detail.java   |   8 +-
 .../server/master/web/common/BaseResult.java       |   4 +-
 .../master/web/common/BrokerQueryResult.java       |   4 +-
 .../master/web/common/ClusterQueryResult.java      |   4 +-
 .../server/master/web/common/QueryResult.java      |   2 +-
 .../web/handler/WebAdminFlowRuleHandler.java       |  20 +--
 .../web/handler/WebAdminGroupCtrlHandler.java      |  32 ++---
 .../web/handler/WebAdminTopicAuthHandler.java      |  18 +--
 .../web/handler/WebBrokerDefConfHandler.java       |  30 ++--
 .../web/handler/WebBrokerTopicConfHandler.java     |  36 ++---
 .../tubemq/server/master/web/model/BrokerVO.java   |   2 +-
 .../server/master/web/model/ClusterGroupVO.java    |   2 +-
 .../server/master/web/model/ClusterNodeVO.java     |   2 +-
 .../tubemq/server/master/web/simplemvc/Action.java |   2 +-
 .../server/master/web/simplemvc/Context.java       |   2 +-
 .../server/master/web/simplemvc/ControlTool.java   |   2 +-
 .../server/master/web/simplemvc/MappedContext.java |   2 +-
 .../master/web/simplemvc/RequestContext.java       |   6 +-
 .../master/web/simplemvc/RequestDispatcher.java    |   8 +-
 .../master/web/simplemvc/TemplateEngine.java       |   2 +-
 .../web/simplemvc/VelocityTemplateEngine.java      |   8 +-
 .../server/master/web/simplemvc/WebFilter.java     |  10 +-
 .../web/simplemvc/conf/ConfigFileParser.java       |   4 +-
 .../master/web/simplemvc/conf/WebConfig.java       |   6 +-
 .../exception/InvalidConfigException.java          |   2 +-
 .../exception/TemplateNotFoundException.java       |   2 +-
 .../apache}/tubemq/server/tools/BdbGroupAdmin.java |   2 +-
 .../apache}/tubemq/server/tools/BrokerStartup.java |   6 +-
 .../apache}/tubemq/server/tools/MasterStartup.java |   6 +-
 .../tubemq/server/tools/StoreRepairAdmin.java      |  20 +--
 .../apache}/tubemq/server/tools/ToolUtils.java     |  10 +-
 tubemq-server/src/saveServerVersion.cmd            |   6 +-
 tubemq-server/src/saveServerVersion.sh             |   6 +-
 .../broker/metadata/BrokerMetadataManageTest.java  |   2 +-
 .../broker/msgstore/disk/FileReadViewTest.java     |   2 +-
 .../broker/msgstore/disk/FileSegmentListTest.java  |   4 +-
 .../broker/msgstore/disk/FileSegmentTest.java      |   2 +-
 .../broker/msgstore/mem/MsgMemStoreTest.java       |   2 +-
 .../server/broker/stats/GroupCountServiceTest.java |   2 +-
 .../server/broker/utils/DataStoreUtilsTest.java    |   2 +-
 .../tubemq/server/common/HeartbeatManagerTest.java |   8 +-
 .../tubemq/server/common/PBParameterTest.java      |   8 +-
 .../tubemq/server/common/WebParameterTest.java     |   6 +-
 .../tubemq/server/master/MasterConfigTest.java     |   2 +-
 .../nodebroker/BrokerInfoHolderTest.java           |   4 +-
 .../nodebroker/TopicPSInfoManagerTest.java         |   4 +-
 .../nodeconsumer/ConsumerEventManagerTest.java     |   4 +-
 331 files changed, 1547 insertions(+), 1519 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 91b5ad8..eb75fff 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,7 +23,7 @@ jdk:
   - openjdk8
 
 before_cache:
-  - rm -rf $HOME/.m2/repository/com/tencent/tubemq/
+  - rm -rf $HOME/.m2/repository/org/apache/tubemq/
 
 cache:
   directories:
diff --git a/bin/broker.sh b/bin/broker.sh
index 85311f0..a80d006 100644
--- a/bin/broker.sh
+++ b/bin/broker.sh
@@ -76,9 +76,9 @@ function start_server() {
 	
 	echo "Starting TubeMQ broker..."
     
-   	echo "$JAVA $BROKER_ARGS  com.tencent.tubemq.server.tools.BrokerStartup $config_files"
+   	echo "$JAVA $BROKER_ARGS  org.apache.tubemq.server.tools.BrokerStartup $config_files"
     sleep 1
-    nohup $JAVA $BROKER_ARGS  com.tencent.tubemq.server.tools.BrokerStartup $config_files 2>&1 >>$LOG_FILE &
+    nohup $JAVA $BROKER_ARGS  org.apache.tubemq.server.tools.BrokerStartup $config_files 2>&1 >>$LOG_FILE &
     echo $! > $PID_FILE
     chmod 755 $PID_FILE
 }
diff --git a/bin/groupAdmin.sh b/bin/groupAdmin.sh
index 6bb0ee3..a05cfa1 100644
--- a/bin/groupAdmin.sh
+++ b/bin/groupAdmin.sh
@@ -38,6 +38,6 @@ if [ -z "$BASE_DIR" ] ; then
   #echo "TubeMQ master is at $BASE_DIR"
 fi
 source $BASE_DIR/bin/env.sh
-nohup $JAVA $TOOLS_ARGS  com.tencent.tubemq.server.tools.BdbGroupAdmin $1 $2 $3 2>&1 &
+nohup $JAVA $TOOLS_ARGS  org.apache.tubemq.server.tools.BdbGroupAdmin $1 $2 $3 2>&1 &
 
 
diff --git a/bin/indexReBuilder.sh b/bin/indexReBuilder.sh
index a6e033e..41a8396 100644
--- a/bin/indexReBuilder.sh
+++ b/bin/indexReBuilder.sh
@@ -49,7 +49,7 @@ chown -R $AS_USER $LOG_DIR
 
 echo "Starting index file(s) repair..."
 
-nohup $JAVA $TOOL_REPAIR_ARGS  com.tencent.tubemq.server.tools.StoreRepairAdmin $1 $2 2>&1 >>$LOG_FILE  &
+nohup $JAVA $TOOL_REPAIR_ARGS  org.apache.tubemq.server.tools.StoreRepairAdmin $1 $2 2>&1 >>$LOG_FILE  &
 
 
 
diff --git a/bin/master.sh b/bin/master.sh
index 175527c..8b8693b 100644
--- a/bin/master.sh
+++ b/bin/master.sh
@@ -76,9 +76,9 @@ function start_server() {
     
 	echo "Starting Master server..."
     
-   	echo "$JAVA $MASTER_ARGS  com.tencent.tubemq.server.tools.MasterStartup $config_files"
+   	echo "$JAVA $MASTER_ARGS  org.apache.tubemq.server.tools.MasterStartup $config_files"
     sleep 1
-    nohup $JAVA $MASTER_ARGS  com.tencent.tubemq.server.tools.MasterStartup $config_files 2>&1 >>$LOG_FILE &
+    nohup $JAVA $MASTER_ARGS  org.apache.tubemq.server.tools.MasterStartup $config_files 2>&1 >>$LOG_FILE &
     echo $! > $PID_FILE
     chmod 755 $PID_FILE
 }
diff --git a/docs/tubemq_basic_introduction_cn.md b/docs/tubemq_basic_introduction_cn.md
index 9db0044..2928b9b 100644
--- a/docs/tubemq_basic_introduction_cn.md
+++ b/docs/tubemq_basic_introduction_cn.md
@@ -1,6 +1,6 @@
 # TubeMQ总体介绍
 
-> TubeMQ是腾讯大数据在2013年开始研发的分布式消息中间件系统(MQ),专注服务大数据场景下海量数据的高性能存储和传输。经过近7年上万亿的海量数据沉淀,较之于众多的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有一定的优势,近期我们在开源TubeMQ的相关代码及设计,更多资料正在陆续整理和上传之中。更多疑问,请联系: gosonzhang@tencent.com, junpingdu@tencent.com
+> TubeMQ是分布式消息中间件系统(MQ),专注服务大数据场景下海量数据的高性能存储和传输。经过近7年上万亿的海量数据沉淀,较之于众多的开源MQ组件,TubeMQ在海量实践(稳定性+性能)和低成本方面有一定的优势
 
 ## TubeMQ的性能: ##
 从TubeMQ架构图可以很清晰的看到,作为分布式的消息中间件系统,Broker单节点的性能情况直接影响到集群总体的性能表现,即相同的节点数下Broker节点性能越高则TubeMQ的总体性能越强。下表是根据我们多年的线上运营经验总结的典型场景:
diff --git a/docs/tubemq_clients_cn.md b/docs/tubemq_clients_cn.md
index 238823f..34f9ef3 100644
--- a/docs/tubemq_clients_cn.md
+++ b/docs/tubemq_clients_cn.md
@@ -60,13 +60,13 @@ Message类是TubeMQ里传递的消息对象类,业务设置的data会从生产
 
 #### **a) 环境准备:**
 
-TubeMQ开源包com.tencent.tube.example里提供了生产和消费的具体代码示例,这里我们通过一个实际的例子来介绍如何填参和调用对应接口。首先我们搭建一个带3个Master节点的TubeMQ集群,3个Master地址及端口分别为test_1.domain.com,test_2.domain.com,test_3.domain.com,端口均为8080,在该集群里我们建立了若干个Broker,并且针对Broker我们创建了3个topic:topic_1,topic_2,topic_3等Topic配置;然后我们启动对应的Broker等待Consumer和Producer的创建。
+TubeMQ开源包org.apache.tube.example里提供了生产和消费的具体代码示例,这里我们通过一个实际的例子来介绍如何填参和调用对应接口。首先我们搭建一个带3个Master节点的TubeMQ集群,3个Master地址及端口分别为test_1.domain.com,test_2.domain.com,test_3.domain.com,端口均为8080,在该集群里我们建立了若干个Broker,并且针对Broker我们创建了3个topic:topic_1,topic_2,topic_3等Topic配置;然后我们启动对应的Broker等待Consumer和Producer的创建。
 
  
 
 #### **b) 创建Consumer:**
 
-见包com.tencent.tubemq.example.MessageConsumerExample类文件,Consumer是一个包含网络交互协调的客户端对象,需要做初始化并且长期驻留内存重复使用的模型,它不适合单次拉起消费的场景。如下图示,我们定义了MessageConsumerExample封装类,在该类中定义了进行网络交互的会话工厂MessageSessionFactory类,以及用来做Push消费的PushMessageConsumer类:
+见包org.apache.tubemq.example.MessageConsumerExample类文件,Consumer是一个包含网络交互协调的客户端对象,需要做初始化并且长期驻留内存重复使用的模型,它不适合单次拉起消费的场景。如下图示,我们定义了MessageConsumerExample封装类,在该类中定义了进行网络交互的会话工厂MessageSessionFactory类,以及用来做Push消费的PushMessageConsumer类:
 
 - ###### **i.初始化MessageConsumerExample类:**
 
@@ -163,7 +163,7 @@ public class DefaultMessageListener implements MessageListener {
 
 #### **c) 创建Producer:**
 
-现网环境中业务的数据都是通过代理层来做接收汇聚,包装了比较多的异常处理,大部分的业务都没有也不会接触到TubeSDK的Producer类,考虑到业务自己搭建集群使用TubeMQ进行使用的场景,这里提供对应的使用demo,见包com.tencent.tubemq.example.MessageProducerExample类文件供参考,**需要注意**的是,业务除非使用数据平台的TubeMQ集群做MQ服务,否则仍要按照现网的接入流程使用代理层来进行数据生产:
+现网环境中业务的数据都是通过代理层来做接收汇聚,包装了比较多的异常处理,大部分的业务都没有也不会接触到TubeSDK的Producer类,考虑到业务自己搭建集群使用TubeMQ进行使用的场景,这里提供对应的使用demo,见包org.apache.tubemq.example.MessageProducerExample类文件供参考,**需要注意**的是,业务除非使用数据平台的TubeMQ集群做MQ服务,否则仍要按照现网的接入流程使用代理层来进行数据生产:
 
 - **i. 初始化MessageProducerExample类:**
 
diff --git a/docs/tubemq_user_guide.md b/docs/tubemq_user_guide.md
index 8f3f237..fb15877 100644
--- a/docs/tubemq_user_guide.md
+++ b/docs/tubemq_user_guide.md
@@ -217,27 +217,27 @@ Now we can use the topic to send messages.
 Now we can run the example to test our cluster. First let's run the produce data demo. Please don't
 forget replace `YOUR_SERVER_IP` with your server ip.
 ```bash
-java -Dlog4j.configuration=file:/opt/tubemq-server/conf/tools.log4j.properties  -Djava.net.preferIPv4Stack=true -cp  /opt/tubemq-server/lib/*:/opt/tubemq-server/conf/*: com.tencent.tubemq.example.MessageProducerExample YOUR_SERVER_IP YOUR_SERVER_IP:8000 demo 10000000
+java -Dlog4j.configuration=file:/opt/tubemq-server/conf/tools.log4j.properties  -Djava.net.preferIPv4Stack=true -cp  /opt/tubemq-server/lib/*:/opt/tubemq-server/conf/*: org.apache.tubemq.example.MessageProducerExample YOUR_SERVER_IP YOUR_SERVER_IP:8000 demo 10000000
 ```
 From the log, we can see the message is sent out.
 ```bash
-[2019-09-11 16:09:08,287] INFO Send demo 1000 message, keyCount is 268 (com.tencent.tubemq.example.MessageProducerExample)
-[2019-09-11 16:09:08,505] INFO Send demo 2000 message, keyCount is 501 (com.tencent.tubemq.example.MessageProducerExample)
-[2019-09-11 16:09:08,958] INFO Send demo 3000 message, keyCount is 755 (com.tencent.tubemq.example.MessageProducerExample)
-[2019-09-11 16:09:09,085] INFO Send demo 4000 message, keyCount is 1001 (com.tencent.tubemq.example.MessageProducerExample)
+[2019-09-11 16:09:08,287] INFO Send demo 1000 message, keyCount is 268 (org.apache.tubemq.example.MessageProducerExample)
+[2019-09-11 16:09:08,505] INFO Send demo 2000 message, keyCount is 501 (org.apache.tubemq.example.MessageProducerExample)
+[2019-09-11 16:09:08,958] INFO Send demo 3000 message, keyCount is 755 (org.apache.tubemq.example.MessageProducerExample)
+[2019-09-11 16:09:09,085] INFO Send demo 4000 message, keyCount is 1001 (org.apache.tubemq.example.MessageProducerExample)
 ```
 
 Then we run the consume data demo. Also replace the server ip
 ```bash
-java -Xmx512m -Dlog4j.configuration=file:/opt/tubemq-server/conf/tools.log4j.properties -Djava.net.preferIPv4Stack=true -cp /opt/tubemq-server/lib/*:/opt/tubemq-server/conf/*: com.tencent.tubemq.example.MessageConsumerExample YOUR_SERVER_IP YOUR_SERVER_IP:8000 demo demoGroup 3 1 1
+java -Xmx512m -Dlog4j.configuration=file:/opt/tubemq-server/conf/tools.log4j.properties -Djava.net.preferIPv4Stack=true -cp /opt/tubemq-server/lib/*:/opt/tubemq-server/conf/*: org.apache.tubemq.example.MessageConsumerExample YOUR_SERVER_IP YOUR_SERVER_IP:8000 demo demoGroup 3 1 1
 ```
 From the log, we can see the message received by the consumer.
 
 ```bash
-[2019-09-11 16:09:29,720] INFO Receive messages:2500 (com.tencent.tubemq.example.MsgRecvStats)
-[2019-09-11 16:09:30,059] INFO Receive messages:5000 (com.tencent.tubemq.example.MsgRecvStats)
-[2019-09-11 16:09:34,493] INFO Receive messages:10000 (com.tencent.tubemq.example.MsgRecvStats)
-[2019-09-11 16:09:34,783] INFO Receive messages:12500 (com.tencent.tubemq.example.MsgRecvStats)
+[2019-09-11 16:09:29,720] INFO Receive messages:2500 (org.apache.tubemq.example.MsgRecvStats)
+[2019-09-11 16:09:30,059] INFO Receive messages:5000 (org.apache.tubemq.example.MsgRecvStats)
+[2019-09-11 16:09:34,493] INFO Receive messages:10000 (org.apache.tubemq.example.MsgRecvStats)
+[2019-09-11 16:09:34,783] INFO Receive messages:12500 (org.apache.tubemq.example.MsgRecvStats)
 ```
 
 ---
diff --git a/pom.xml b/pom.xml
index 7812ede..be34efa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
          xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.tencent.tubemq</groupId>
+    <groupId>org.apache.tubemq</groupId>
     <artifactId>tubemq</artifactId>
     <inceptionYear>2013</inceptionYear>
     <version>0.3.0-incubating-SNAPSHOT</version>
@@ -231,17 +231,17 @@
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>com.tencent.tubemq</groupId>
+                <groupId>org.apache.tubemq</groupId>
                 <artifactId>tubemq-core</artifactId>
                 <version>${tubemq-core-version}</version>
             </dependency>
             <dependency>
-                <groupId>com.tencent.tubemq</groupId>
+                <groupId>org.apache.tubemq</groupId>
                 <artifactId>tubemq-client</artifactId>
                 <version>${tubemq-client-version}</version>
             </dependency>
             <dependency>
-                <groupId>com.tencent.tubemq</groupId>
+                <groupId>org.apache.tubemq</groupId>
                 <artifactId>tubemq-example</artifactId>
                 <version>${tubemq-example-version}</version>
             </dependency>
diff --git a/tubemq-client/pom.xml b/tubemq-client/pom.xml
index 9356c6b..2dd342c 100644
--- a/tubemq-client/pom.xml
+++ b/tubemq-client/pom.xml
@@ -22,7 +22,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>tubemq</artifactId>
-        <groupId>com.tencent.tubemq</groupId>
+        <groupId>org.apache.tubemq</groupId>
         <version>0.3.0-incubating-SNAPSHOT</version>
     </parent>
     <artifactId>tubemq-client</artifactId>
@@ -93,7 +93,7 @@
 
     <dependencies>
         <dependency>
-            <groupId>com.tencent.tubemq</groupId>
+            <groupId>org.apache.tubemq</groupId>
             <artifactId>tubemq-core</artifactId>
         </dependency>
         <dependency>
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/common/TClientConstants.java b/tubemq-client/src/main/java/org/tencent/apache/client/common/TClientConstants.java
similarity index 97%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/common/TClientConstants.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/common/TClientConstants.java
index 1ac3c51..15c6d27 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/common/TClientConstants.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/common/TClientConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.common;
+package org.apache.tubemq.client.common;
 
 public class TClientConstants {
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/config/ConsumerConfig.java b/tubemq-client/src/main/java/org/tencent/apache/client/config/ConsumerConfig.java
similarity index 97%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/config/ConsumerConfig.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/config/ConsumerConfig.java
index 81d9a5e..6f9abc6 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/config/ConsumerConfig.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/config/ConsumerConfig.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.config;
+package org.apache.tubemq.client.config;
 
-import com.tencent.tubemq.client.common.TClientConstants;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.client.common.TClientConstants;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 /**
  * Contains configuration information of a consumer.
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/config/TubeClientConfig.java b/tubemq-client/src/main/java/org/tencent/apache/client/config/TubeClientConfig.java
similarity index 98%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/config/TubeClientConfig.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/config/TubeClientConfig.java
index 244a06b..5e9c175 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/config/TubeClientConfig.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/config/TubeClientConfig.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.config;
-
-import com.tencent.tubemq.client.common.TClientConstants;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.config.TLSConfig;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.RpcConstants;
+package org.apache.tubemq.client.config;
+
+import org.apache.tubemq.client.common.TClientConstants;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.config.TLSConfig;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.RpcConstants;
 
 /**
  * Configuration of the Tube client.
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/config/TubeClientConfigUtils.java b/tubemq-client/src/main/java/org/tencent/apache/client/config/TubeClientConfigUtils.java
similarity index 95%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/config/TubeClientConfigUtils.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/config/TubeClientConfigUtils.java
index a431b1d..5e6323e 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/config/TubeClientConfigUtils.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/config/TubeClientConfigUtils.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.config;
+package org.apache.tubemq.client.config;
 
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
 
 public class TubeClientConfigUtils {
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/BaseMessageConsumer.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/BaseMessageConsumer.java
similarity index 98%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/BaseMessageConsumer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/BaseMessageConsumer.java
index 521995c..b1d9331 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/BaseMessageConsumer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/BaseMessageConsumer.java
@@ -15,36 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.client.common.TubeClientVersion;
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.InnerSessionFactory;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.aaaclient.ClientAuthenticateHandler;
-import com.tencent.tubemq.corebase.aaaclient.SimpleClientAuthenticateHandler;
-import com.tencent.tubemq.corebase.balance.ConsumerEvent;
-import com.tencent.tubemq.corebase.balance.EventStatus;
-import com.tencent.tubemq.corebase.balance.EventType;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.SubscribeInfo;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.DataConverterUtil;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.service.BrokerReadService;
-import com.tencent.tubemq.corerpc.service.MasterService;
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
@@ -65,6 +37,34 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
+import org.apache.tubemq.client.common.TubeClientVersion;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.InnerSessionFactory;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.aaaclient.ClientAuthenticateHandler;
+import org.apache.tubemq.corebase.aaaclient.SimpleClientAuthenticateHandler;
+import org.apache.tubemq.corebase.balance.ConsumerEvent;
+import org.apache.tubemq.corebase.balance.EventStatus;
+import org.apache.tubemq.corebase.balance.EventType;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.SubscribeInfo;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.DataConverterUtil;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.service.BrokerReadService;
+import org.apache.tubemq.corerpc.service.MasterService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ClientSubInfo.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ClientSubInfo.java
similarity index 98%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ClientSubInfo.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/ClientSubInfo.java
index d8bc79b..bc4dae7 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ClientSubInfo.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ClientSubInfo.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.TokenConstants;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class ClientSubInfo {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumeOffsetInfo.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumeOffsetInfo.java
similarity index 90%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumeOffsetInfo.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumeOffsetInfo.java
index ebd0c7a..c6f4cc5 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumeOffsetInfo.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumeOffsetInfo.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class ConsumeOffsetInfo {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumerResult.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumerResult.java
similarity index 95%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumerResult.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumerResult.java
index c611756..dadaf67 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumerResult.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumerResult.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TBaseConstants;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TBaseConstants;
 
 
 public class ConsumerResult {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumerSamplePrint.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumerSamplePrint.java
similarity index 96%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumerSamplePrint.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumerSamplePrint.java
index 6d43e6e..2940022 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/ConsumerSamplePrint.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/ConsumerSamplePrint.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.utils.AbstractSamplePrint;
 import java.io.IOException;
+import org.apache.tubemq.corebase.utils.AbstractSamplePrint;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/FetchContext.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/FetchContext.java
similarity index 92%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/FetchContext.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/FetchContext.java
index a518147..81e9d5a 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/FetchContext.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/FetchContext.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.cluster.Partition;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.cluster.Partition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageConsumer.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageConsumer.java
similarity index 87%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageConsumer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageConsumer.java
index 392677e..4ccab91 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageConsumer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageConsumer.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.Shutdownable;
 import java.util.Map;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.Shutdownable;
 
 
 public interface MessageConsumer extends Shutdownable {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageFetchManager.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageFetchManager.java
similarity index 97%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageFetchManager.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageFetchManager.java
index 0d8fb9c..959f7f2 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageFetchManager.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageFetchManager.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.cluster.Partition;
 import java.util.Arrays;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.cluster.Partition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageListener.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageListener.java
similarity index 92%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageListener.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageListener.java
index 4a0da46..52395a8 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/MessageListener.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/MessageListener.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.Message;
 import java.util.List;
 import java.util.concurrent.Executor;
+import org.apache.tubemq.corebase.Message;
 
 
 public interface MessageListener {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PartitionExt.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PartitionExt.java
similarity index 95%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PartitionExt.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/PartitionExt.java
index c00fafd..6294f34 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PartitionExt.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PartitionExt.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
-
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.policies.FlowCtrlItem;
-import com.tencent.tubemq.corebase.policies.FlowCtrlResult;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
+package org.apache.tubemq.client.consumer;
+
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.policies.FlowCtrlItem;
+import org.apache.tubemq.corebase.policies.FlowCtrlResult;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
 
 /**
  * Partition Extension class. Add flow control mechanism.
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PartitionSelectResult.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PartitionSelectResult.java
similarity index 96%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PartitionSelectResult.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/PartitionSelectResult.java
index 871c24d..5548636 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PartitionSelectResult.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PartitionSelectResult.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.Partition;
 
 
 public class PartitionSelectResult {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PullMessageConsumer.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PullMessageConsumer.java
similarity index 92%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PullMessageConsumer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/PullMessageConsumer.java
index 4acca1a..af5d50f 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PullMessageConsumer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PullMessageConsumer.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.client.exception.TubeClientException;
 import java.util.TreeSet;
+import org.apache.tubemq.client.exception.TubeClientException;
 
 
 public interface PullMessageConsumer extends MessageConsumer {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PushMessageConsumer.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PushMessageConsumer.java
similarity index 91%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PushMessageConsumer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/PushMessageConsumer.java
index 221a577..433d51a 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/PushMessageConsumer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/PushMessageConsumer.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.client.exception.TubeClientException;
 import java.util.TreeSet;
+import org.apache.tubemq.client.exception.TubeClientException;
 
 
 public interface PushMessageConsumer extends MessageConsumer {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/RmtDataCache.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/RmtDataCache.java
similarity index 98%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/RmtDataCache.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/RmtDataCache.java
index 1ea500d..ba8139c 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/RmtDataCache.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/RmtDataCache.java
@@ -15,14 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
-
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.SubscribeInfo;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
+package org.apache.tubemq.client.consumer;
+
 import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -38,6 +32,12 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.SubscribeInfo;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.jboss.netty.util.HashedWheelTimer;
 import org.jboss.netty.util.Timeout;
 import org.jboss.netty.util.Timer;
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/SimplePullMessageConsumer.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/SimplePullMessageConsumer.java
similarity index 93%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/SimplePullMessageConsumer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/SimplePullMessageConsumer.java
index 2308516..24ec401 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/SimplePullMessageConsumer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/SimplePullMessageConsumer.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
-
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.InnerSessionFactory;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
+package org.apache.tubemq.client.consumer;
+
 import java.util.Map;
 import java.util.TreeSet;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.InnerSessionFactory;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/SimplePushMessageConsumer.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/SimplePushMessageConsumer.java
similarity index 97%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/SimplePushMessageConsumer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/SimplePushMessageConsumer.java
index 2ccd4c8..7721c57 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/SimplePushMessageConsumer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/SimplePushMessageConsumer.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.InnerSessionFactory;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeSet;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.InnerSessionFactory;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/TopicProcessor.java b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/TopicProcessor.java
similarity index 97%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/TopicProcessor.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/consumer/TopicProcessor.java
index 1946214..e18eaaf 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/consumer/TopicProcessor.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/consumer/TopicProcessor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/exception/TubeClientException.java b/tubemq-client/src/main/java/org/tencent/apache/client/exception/TubeClientException.java
similarity index 96%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/exception/TubeClientException.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/exception/TubeClientException.java
index a58861c..f25b19f 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/exception/TubeClientException.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/exception/TubeClientException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.exception;
+package org.apache.tubemq.client.exception;
 
 
 public class TubeClientException extends Exception {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/InnerSessionFactory.java b/tubemq-client/src/main/java/org/tencent/apache/client/factory/InnerSessionFactory.java
similarity index 81%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/factory/InnerSessionFactory.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/factory/InnerSessionFactory.java
index 6544c57..15be1e8 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/InnerSessionFactory.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/factory/InnerSessionFactory.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
+package org.apache.tubemq.client.factory;
 
-import com.tencent.tubemq.client.producer.ProducerManager;
-import com.tencent.tubemq.client.producer.qltystats.DefaultBrokerRcvQltyStats;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.client.producer.ProducerManager;
+import org.apache.tubemq.client.producer.qltystats.DefaultBrokerRcvQltyStats;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
 
 
 public interface InnerSessionFactory extends MessageSessionFactory {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/MessageSessionFactory.java b/tubemq-client/src/main/java/org/tencent/apache/client/factory/MessageSessionFactory.java
similarity index 76%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/factory/MessageSessionFactory.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/factory/MessageSessionFactory.java
index d8200e5..0db0385 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/MessageSessionFactory.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/factory/MessageSessionFactory.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
-
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.consumer.PushMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.corebase.Shutdownable;
+package org.apache.tubemq.client.factory;
+
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.consumer.PushMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.corebase.Shutdownable;
 
 
 public interface MessageSessionFactory extends Shutdownable {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeBaseSessionFactory.java b/tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeBaseSessionFactory.java
similarity index 87%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeBaseSessionFactory.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeBaseSessionFactory.java
index 21d399e..66c08e1 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeBaseSessionFactory.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeBaseSessionFactory.java
@@ -15,27 +15,27 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
-
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.consumer.PushMessageConsumer;
-import com.tencent.tubemq.client.consumer.SimplePullMessageConsumer;
-import com.tencent.tubemq.client.consumer.SimplePushMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.client.producer.ProducerManager;
-import com.tencent.tubemq.client.producer.SimpleMessageProducer;
-import com.tencent.tubemq.client.producer.qltystats.DefaultBrokerRcvQltyStats;
-import com.tencent.tubemq.corebase.Shutdownable;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
+package org.apache.tubemq.client.factory;
+
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.consumer.PushMessageConsumer;
+import org.apache.tubemq.client.consumer.SimplePullMessageConsumer;
+import org.apache.tubemq.client.consumer.SimplePushMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.client.producer.ProducerManager;
+import org.apache.tubemq.client.producer.SimpleMessageProducer;
+import org.apache.tubemq.client.producer.qltystats.DefaultBrokerRcvQltyStats;
+import org.apache.tubemq.corebase.Shutdownable;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.client.ClientFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeMultiSessionFactory.java b/tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeMultiSessionFactory.java
similarity index 80%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeMultiSessionFactory.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeMultiSessionFactory.java
index d58a2c5..b7e520a 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeMultiSessionFactory.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeMultiSessionFactory.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
+package org.apache.tubemq.client.factory;
 
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.config.TubeClientConfigUtils;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.consumer.PushMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.corebase.Shutdownable;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.netty.NettyClientFactory;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.config.TubeClientConfigUtils;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.consumer.PushMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.corebase.Shutdownable;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.netty.NettyClientFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeSingleSessionFactory.java b/tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeSingleSessionFactory.java
similarity index 82%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeSingleSessionFactory.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeSingleSessionFactory.java
index 551edbf..c9ff022 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/factory/TubeSingleSessionFactory.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/factory/TubeSingleSessionFactory.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
+package org.apache.tubemq.client.factory;
 
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.config.TubeClientConfigUtils;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.consumer.PushMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.corebase.Shutdownable;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.netty.NettyClientFactory;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.config.TubeClientConfigUtils;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.consumer.PushMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.corebase.Shutdownable;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.netty.NettyClientFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageProducer.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageProducer.java
similarity index 88%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageProducer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageProducer.java
index 29318c2..1edf236 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageProducer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageProducer.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.Shutdownable;
 import java.util.Set;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.Shutdownable;
 
 
 public interface MessageProducer extends Shutdownable {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageSentCallback.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageSentCallback.java
similarity index 95%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageSentCallback.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageSentCallback.java
index fa29b5e..fcd16ce 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageSentCallback.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageSentCallback.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
 
 public interface MessageSentCallback {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageSentResult.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageSentResult.java
similarity index 90%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageSentResult.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageSentResult.java
index d3ea204..c3fee61 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/MessageSentResult.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/MessageSentResult.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.cluster.Partition;
 
 
 public class MessageSentResult {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/PartitionRouter.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/PartitionRouter.java
similarity index 82%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/PartitionRouter.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/PartitionRouter.java
index 90af446..3dba132 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/PartitionRouter.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/PartitionRouter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.cluster.Partition;
 import java.util.List;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.cluster.Partition;
 
 
 public interface PartitionRouter {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/ProducerManager.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/ProducerManager.java
similarity index 95%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/ProducerManager.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/ProducerManager.java
index b4079f4..57688b3 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/ProducerManager.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/ProducerManager.java
@@ -15,30 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
-import com.tencent.tubemq.client.common.TubeClientVersion;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.InnerSessionFactory;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.aaaclient.ClientAuthenticateHandler;
-import com.tencent.tubemq.corebase.aaaclient.SimpleClientAuthenticateHandler;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.DataConverterUtil;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.exception.ClientClosedException;
-import com.tencent.tubemq.corerpc.exception.LocalConnException;
-import com.tencent.tubemq.corerpc.service.MasterService;
 import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -54,6 +32,28 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
+import org.apache.tubemq.client.common.TubeClientVersion;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.InnerSessionFactory;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.aaaclient.ClientAuthenticateHandler;
+import org.apache.tubemq.corebase.aaaclient.SimpleClientAuthenticateHandler;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.DataConverterUtil;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.exception.ClientClosedException;
+import org.apache.tubemq.corerpc.exception.LocalConnException;
+import org.apache.tubemq.corerpc.service.MasterService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/RoundRobinPartitionRouter.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/RoundRobinPartitionRouter.java
similarity index 93%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/RoundRobinPartitionRouter.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/RoundRobinPartitionRouter.java
index fb47d2d..1e9f4d7 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/RoundRobinPartitionRouter.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/RoundRobinPartitionRouter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.cluster.Partition;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.cluster.Partition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/SimpleMessageProducer.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/SimpleMessageProducer.java
similarity index 94%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/SimpleMessageProducer.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/SimpleMessageProducer.java
index fa8a052..5da8c92 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/SimpleMessageProducer.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/SimpleMessageProducer.java
@@ -15,28 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
 import com.google.protobuf.ByteString;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.InnerSessionFactory;
-import com.tencent.tubemq.client.producer.qltystats.DefaultBrokerRcvQltyStats;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.MessageFlagUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.client.Callback;
-import com.tencent.tubemq.corerpc.exception.LocalConnException;
-import com.tencent.tubemq.corerpc.service.BrokerWriteService;
 import java.nio.ByteBuffer;
 import java.util.HashSet;
 import java.util.List;
@@ -45,6 +26,25 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.InnerSessionFactory;
+import org.apache.tubemq.client.producer.qltystats.DefaultBrokerRcvQltyStats;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.MessageFlagUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.client.Callback;
+import org.apache.tubemq.corerpc.exception.LocalConnException;
+import org.apache.tubemq.corerpc.service.BrokerWriteService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerRcvQltyStats.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerRcvQltyStats.java
similarity index 88%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerRcvQltyStats.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerRcvQltyStats.java
index 96bc4cf..d204838 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerRcvQltyStats.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerRcvQltyStats.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer.qltystats;
+package org.apache.tubemq.client.producer.qltystats;
 
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.cluster.Partition;
 import java.util.List;
 import java.util.Map;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.cluster.Partition;
 
 
 public interface BrokerRcvQltyStats {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerStatsDltTuple.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerStatsDltTuple.java
similarity index 96%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerStatsDltTuple.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerStatsDltTuple.java
index eba4f62..93f57a7 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerStatsDltTuple.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerStatsDltTuple.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer.qltystats;
+package org.apache.tubemq.client.producer.qltystats;
 
 /**
  * Broker quality statistics.
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerStatsItemSet.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerStatsItemSet.java
similarity index 96%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerStatsItemSet.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerStatsItemSet.java
index 0a7434b..646b28f 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/BrokerStatsItemSet.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/BrokerStatsItemSet.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer.qltystats;
+package org.apache.tubemq.client.producer.qltystats;
 
-import com.tencent.tubemq.corebase.TokenConstants;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class BrokerStatsItemSet {
diff --git a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStats.java b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/DefaultBrokerRcvQltyStats.java
similarity index 98%
rename from tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStats.java
rename to tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/DefaultBrokerRcvQltyStats.java
index 021851f..5e72dc6 100644
--- a/tubemq-client/src/main/java/com/tencent/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStats.java
+++ b/tubemq-client/src/main/java/org/tencent/apache/client/producer/qltystats/DefaultBrokerRcvQltyStats.java
@@ -15,14 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer.qltystats;
+package org.apache.tubemq.client.producer.qltystats;
 
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -34,6 +28,12 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-client/src/saveClientVersion.cmd b/tubemq-client/src/saveClientVersion.cmd
index a613e70..7a350bc 100755
--- a/tubemq-client/src/saveClientVersion.cmd
+++ b/tubemq-client/src/saveClientVersion.cmd
@@ -19,13 +19,13 @@
 set version=%1
 set outputDirectory=%2
 
-md %outputDirectory%\com\tencent\tubemq\client\common
-set TubeClientVersion=%outputDirectory%\com\tencent\tubemq\client\common\TubeClientVersion.java"
+md %outputDirectory%\org\apache\tubemq\client\common
+set TubeClientVersion=%outputDirectory%\org\apache\tubemq\client\common\TubeClientVersion.java"
 
 echo /* > %TubeClientVersion%
 echo  * Generated by src/saveClientVersion.cmd>> %TubeClientVersion%
 echo  */>> %TubeClientVersion%
-echo package com.tencent.tubemq.client.common;>> %TubeClientVersion%
+echo package org.apache.tubemq.client.common;>> %TubeClientVersion%
 echo,>> %TubeClientVersion%
 echo public class TubeClientVersion {>> %TubeClientVersion%
 echo     public static final String CONSUMER_VERSION = "%version%";>> %TubeClientVersion%
diff --git a/tubemq-client/src/saveClientVersion.sh b/tubemq-client/src/saveClientVersion.sh
index eeb29bd..1c289f3 100755
--- a/tubemq-client/src/saveClientVersion.sh
+++ b/tubemq-client/src/saveClientVersion.sh
@@ -23,12 +23,12 @@ unset LC_CTYPE
 version=$1
 outputDirectory=$2
 
-mkdir -p "$outputDirectory/com/tencent/tubemq/client/common"
-cat >"$outputDirectory/com/tencent/tubemq/client/common/TubeClientVersion.java" <<EOF
+mkdir -p "$outputDirectory/org/apache/tubemq/client/common"
+cat >"$outputDirectory/org/apache/tubemq/client/common/TubeClientVersion.java" <<EOF
 /*
  * Generated by src/saveClientVersion.sh
  */
-package com.tencent.tubemq.client.common;
+package org.apache.tubemq.client.common;
 
 public class TubeClientVersion {
     public static final String CONSUMER_VERSION = "$version";
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/MessageFetchManagerTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/consumer/MessageFetchManagerTest.java
similarity index 83%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/MessageFetchManagerTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/consumer/MessageFetchManagerTest.java
index dd754f8..c645de7 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/MessageFetchManagerTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/consumer/MessageFetchManagerTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.factory.TubeBaseSessionFactory;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.netty.NettyClientFactory;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.factory.TubeBaseSessionFactory;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.netty.NettyClientFactory;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/PartitionExtTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/consumer/PartitionExtTest.java
similarity index 95%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/PartitionExtTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/consumer/PartitionExtTest.java
index a41af02..1a7e9f3 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/PartitionExtTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/consumer/PartitionExtTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
 import org.junit.Test;
 
 public class PartitionExtTest {
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/RmtDataCacheTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/consumer/RmtDataCacheTest.java
similarity index 93%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/RmtDataCacheTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/consumer/RmtDataCacheTest.java
index 3e28bf6..cc5422e 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/consumer/RmtDataCacheTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/consumer/RmtDataCacheTest.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.consumer;
+package org.apache.tubemq.client.consumer;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
 import org.junit.Test;
 
 public class RmtDataCacheTest {
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeBaseSessionFactoryTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeBaseSessionFactoryTest.java
similarity index 84%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeBaseSessionFactoryTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeBaseSessionFactoryTest.java
index 52e3430..7f323a1 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeBaseSessionFactoryTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeBaseSessionFactoryTest.java
@@ -15,23 +15,23 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
+package org.apache.tubemq.client.factory;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.consumer.PushMessageConsumer;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.client.producer.ProducerManager;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
 import java.lang.reflect.Field;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.consumer.PushMessageConsumer;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.client.producer.ProducerManager;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corerpc.client.ClientFactory;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.api.mockito.PowerMockito;
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeMultiSessionFactoryTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeMultiSessionFactoryTest.java
similarity index 89%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeMultiSessionFactoryTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeMultiSessionFactoryTest.java
index 6a067a7..5c0b893 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeMultiSessionFactoryTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeMultiSessionFactoryTest.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
+package org.apache.tubemq.client.factory;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.utils.AddressUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.api.mockito.PowerMockito;
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeSingleSessionFactoryTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeSingleSessionFactoryTest.java
similarity index 89%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeSingleSessionFactoryTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeSingleSessionFactoryTest.java
index 4976260..bbb29ea 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/factory/TubeSingleSessionFactoryTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/factory/TubeSingleSessionFactoryTest.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.factory;
+package org.apache.tubemq.client.factory;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.utils.AddressUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.api.mockito.PowerMockito;
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/producer/RoundRobinPartitionRouterTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/producer/RoundRobinPartitionRouterTest.java
similarity index 89%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/producer/RoundRobinPartitionRouterTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/producer/RoundRobinPartitionRouterTest.java
index 5e7cb01..f6788fd 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/producer/RoundRobinPartitionRouterTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/producer/RoundRobinPartitionRouterTest.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer;
+package org.apache.tubemq.client.producer;
 
 import static org.junit.Assert.assertEquals;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
 import org.junit.Test;
 
 public class RoundRobinPartitionRouterTest {
diff --git a/tubemq-client/src/test/java/com/tencent/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStatsTest.java b/tubemq-client/src/test/java/org/apache/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStatsTest.java
similarity index 90%
rename from tubemq-client/src/test/java/com/tencent/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStatsTest.java
rename to tubemq-client/src/test/java/org/apache/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStatsTest.java
index 5559369..0250933 100644
--- a/tubemq-client/src/test/java/com/tencent/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStatsTest.java
+++ b/tubemq-client/src/test/java/org/apache/tubemq/client/producer/qltystats/DefaultBrokerRcvQltyStatsTest.java
@@ -15,22 +15,22 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.client.producer.qltystats;
+package org.apache.tubemq.client.producer.qltystats;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
 import org.junit.Test;
 
 public class DefaultBrokerRcvQltyStatsTest {
diff --git a/tubemq-core/pom.xml b/tubemq-core/pom.xml
index c74e237..d167e78 100644
--- a/tubemq-core/pom.xml
+++ b/tubemq-core/pom.xml
@@ -22,7 +22,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>tubemq</artifactId>
-        <groupId>com.tencent.tubemq</groupId>
+        <groupId>org.apache.tubemq</groupId>
         <version>0.3.0-incubating-SNAPSHOT</version>
     </parent>
     <artifactId>tubemq-core</artifactId>
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/Message.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/Message.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/Message.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/Message.java
index 474d618..dc1190e 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/Message.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/Message.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase;
+package org.apache.tubemq.corebase;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.io.Serializable;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Date;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 /**
  * Message is a message object class passed in the Tube. The data of the
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/MessageExt.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/MessageExt.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/MessageExt.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/MessageExt.java
index b284691..57c1448 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/MessageExt.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/MessageExt.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase;
+package org.apache.tubemq.corebase;
 
 public class MessageExt extends Message {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/Shutdownable.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/Shutdownable.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/Shutdownable.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/Shutdownable.java
index cd7ceb6..3f56422 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/Shutdownable.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/Shutdownable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase;
+package org.apache.tubemq.corebase;
 
 
 public interface Shutdownable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/TBaseConstants.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/TBaseConstants.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/TBaseConstants.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/TBaseConstants.java
index b7b967b..3fc2f88 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/TBaseConstants.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/TBaseConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase;
+package org.apache.tubemq.corebase;
 
 public class TBaseConstants {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/TErrCodeConstants.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/TErrCodeConstants.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/TErrCodeConstants.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/TErrCodeConstants.java
index e9a79e2..8898533 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/TErrCodeConstants.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/TErrCodeConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase;
+package org.apache.tubemq.corebase;
 
 
 public class TErrCodeConstants {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/TokenConstants.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/TokenConstants.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/TokenConstants.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/TokenConstants.java
index 040d7c0..cc90562 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/TokenConstants.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/TokenConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase;
+package org.apache.tubemq.corebase;
 
 public class TokenConstants {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/aaaclient/ClientAuthenticateHandler.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/aaaclient/ClientAuthenticateHandler.java
similarity index 90%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/aaaclient/ClientAuthenticateHandler.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/aaaclient/ClientAuthenticateHandler.java
index 6a5382a..4ede5bf 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/aaaclient/ClientAuthenticateHandler.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/aaaclient/ClientAuthenticateHandler.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.aaaclient;
+package org.apache.tubemq.corebase.aaaclient;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
 
 public interface ClientAuthenticateHandler {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/aaaclient/SimpleClientAuthenticateHandler.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/aaaclient/SimpleClientAuthenticateHandler.java
similarity index 91%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/aaaclient/SimpleClientAuthenticateHandler.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/aaaclient/SimpleClientAuthenticateHandler.java
index 5a06c9a..ffb5768 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/aaaclient/SimpleClientAuthenticateHandler.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/aaaclient/SimpleClientAuthenticateHandler.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.aaaclient;
+package org.apache.tubemq.corebase.aaaclient;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.security.SecureRandom;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 
 public class SimpleClientAuthenticateHandler implements ClientAuthenticateHandler {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/ConsumerEvent.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/ConsumerEvent.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/ConsumerEvent.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/ConsumerEvent.java
index 33a5cf1..bfa3739 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/ConsumerEvent.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/ConsumerEvent.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.balance;
+package org.apache.tubemq.corebase.balance;
 
-import com.tencent.tubemq.corebase.cluster.SubscribeInfo;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.corebase.cluster.SubscribeInfo;
 
 
 public class ConsumerEvent {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/EventStatus.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/EventStatus.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/EventStatus.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/EventStatus.java
index 18c202c..33ae864 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/EventStatus.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/EventStatus.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.balance;
+package org.apache.tubemq.corebase.balance;
 
 public enum EventStatus {
     DONE() {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/EventType.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/EventType.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/EventType.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/EventType.java
index 42f4231..b0193c8 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/balance/EventType.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/balance/EventType.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.balance;
+package org.apache.tubemq.corebase.balance;
 
 public enum EventType {
     CONNECT() {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/BrokerInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/BrokerInfo.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/BrokerInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/BrokerInfo.java
index e086eef..0aacbdd 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/BrokerInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/BrokerInfo.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.io.Serializable;
 import java.net.URI;
 import java.net.URISyntaxException;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 /**
  * The BrokerInfo hold basic info of an tube broker the brokerId, the broker host
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/ConsumerInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/ConsumerInfo.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/ConsumerInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/ConsumerInfo.java
index 59b881a..93e847e 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/ConsumerInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/ConsumerInfo.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import org.apache.tubemq.corebase.TBaseConstants;
 
 
 public class ConsumerInfo implements Comparable<ConsumerInfo>, Serializable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/MasterInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/MasterInfo.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/MasterInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/MasterInfo.java
index 1aabfda..de236db 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/MasterInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/MasterInfo.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 
 public class MasterInfo {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/NodeAddrInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/NodeAddrInfo.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/NodeAddrInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/NodeAddrInfo.java
index 2867734..ba8a1c7 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/NodeAddrInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/NodeAddrInfo.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.io.Serializable;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 
 public class NodeAddrInfo implements Comparable<NodeAddrInfo>, Serializable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/Partition.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/Partition.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/Partition.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/Partition.java
index 19de380..41ca43d 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/Partition.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/Partition.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
 import java.io.Serializable;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class Partition implements Comparable<Partition>, Serializable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/ProducerInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/ProducerInfo.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/ProducerInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/ProducerInfo.java
index 88466d5..c550101 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/ProducerInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/ProducerInfo.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TokenConstants;
 import java.io.Serializable;
 import java.util.Set;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class ProducerInfo implements Serializable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/SubscribeInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/SubscribeInfo.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/SubscribeInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/SubscribeInfo.java
index 9778ba2..e6ddd25 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/SubscribeInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/SubscribeInfo.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class SubscribeInfo {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/TopicInfo.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/TopicInfo.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/TopicInfo.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/TopicInfo.java
index e46be63..2e4e075 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/cluster/TopicInfo.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/cluster/TopicInfo.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.cluster;
+package org.apache.tubemq.corebase.cluster;
 
-import com.tencent.tubemq.corebase.TokenConstants;
 import java.io.Serializable;
+import org.apache.tubemq.corebase.TokenConstants;
 
 
 public class TopicInfo implements Serializable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/config/TLSConfig.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/config/TLSConfig.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/config/TLSConfig.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/config/TLSConfig.java
index c32c900..e6cdcfd 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/config/TLSConfig.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/config/TLSConfig.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.config;
+package org.apache.tubemq.corebase.config;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TBaseConstants;
 
 public class TLSConfig {
     private boolean tlsEnable = false;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/daemon/AbstractDaemonService.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/daemon/AbstractDaemonService.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/daemon/AbstractDaemonService.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/daemon/AbstractDaemonService.java
index ca3a92a..fd479ae 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/daemon/AbstractDaemonService.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/daemon/AbstractDaemonService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.daemon;
+package org.apache.tubemq.corebase.daemon;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.slf4j.Logger;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/daemon/Service.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/daemon/Service.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/daemon/Service.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/daemon/Service.java
index de2db37..f609bfa 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/daemon/Service.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/daemon/Service.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.daemon;
+package org.apache.tubemq.corebase.daemon;
 
 public interface Service {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlItem.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlItem.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlItem.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlItem.java
index cd64c3c..5707d49 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlItem.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlItem.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.policies;
+package org.apache.tubemq.corebase.policies;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TBaseConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlResult.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlResult.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlResult.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlResult.java
index 2d269d1..2d7df28 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlResult.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.policies;
+package org.apache.tubemq.corebase.policies;
 
 
 public class FlowCtrlResult {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlRuleHandler.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlRuleHandler.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java
index ace2601..3811331 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/FlowCtrlRuleHandler.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/FlowCtrlRuleHandler.java
@@ -15,14 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.policies;
+package org.apache.tubemq.corebase.policies;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collections;
@@ -34,6 +31,9 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReentrantLock;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/SSDCtrlResult.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/SSDCtrlResult.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/SSDCtrlResult.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/SSDCtrlResult.java
index 11870bc..173ec8a 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/policies/SSDCtrlResult.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/policies/SSDCtrlResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.policies;
+package org.apache.tubemq.corebase.policies;
 
 
 public class SSDCtrlResult {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/AbstractSamplePrint.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/AbstractSamplePrint.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/AbstractSamplePrint.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/AbstractSamplePrint.java
index 82c3bb4..f7b0daf 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/AbstractSamplePrint.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/AbstractSamplePrint.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.util.concurrent.atomic.AtomicLong;
 import org.slf4j.Logger;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/AddressUtils.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/AddressUtils.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/AddressUtils.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/AddressUtils.java
index db6c920..eeb9b20 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/AddressUtils.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/AddressUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.net.InetAddress;
 import java.net.NetworkInterface;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/CheckSum.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/CheckSum.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/CheckSum.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/CheckSum.java
index b0997d5..b086227 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/CheckSum.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/CheckSum.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.util.zip.CRC32;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ConcurrentHashSet.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ConcurrentHashSet.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ConcurrentHashSet.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ConcurrentHashSet.java
index 1a19ad6..9860d09 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ConcurrentHashSet.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ConcurrentHashSet.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.util.Collection;
 import java.util.concurrent.ConcurrentHashMap;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/DataConverterUtil.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/DataConverterUtil.java
similarity index 94%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/DataConverterUtil.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/DataConverterUtil.java
index c0f1164..1e5b708 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/DataConverterUtil.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/DataConverterUtil.java
@@ -15,17 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.MessageExt;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.SubscribeInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
 import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -34,6 +25,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.MessageExt;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.SubscribeInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
 
 /**
  * Tube meta info converter tools
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/MapBackedSet.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/MapBackedSet.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/MapBackedSet.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/MapBackedSet.java
index 9f02767..1a1e531 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/MapBackedSet.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/MapBackedSet.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.io.Serializable;
 import java.util.AbstractSet;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/MessageFlagUtils.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/MessageFlagUtils.java
similarity index 93%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/MessageFlagUtils.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/MessageFlagUtils.java
index 7e6ef6f..95a88b3 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/MessageFlagUtils.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/MessageFlagUtils.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
-import com.tencent.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.Message;
 
 public class MessageFlagUtils {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ServiceStatusHolder.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ServiceStatusHolder.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ServiceStatusHolder.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ServiceStatusHolder.java
index 476a997..b8eae40 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ServiceStatusHolder.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ServiceStatusHolder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/TStringUtils.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/TStringUtils.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/TStringUtils.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/TStringUtils.java
index a656fda..3a16a6d 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/TStringUtils.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/TStringUtils.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.digest.HmacUtils;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
 
 /**
  * Utility to String operations.
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ThreadUtils.java b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ThreadUtils.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ThreadUtils.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ThreadUtils.java
index 5f5a8ba..d01137b 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corebase/utils/ThreadUtils.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corebase/utils/ThreadUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.utils;
+package org.apache.tubemq.corebase.utils;
 
 import java.lang.Thread.UncaughtExceptionHandler;
 import java.util.concurrent.atomic.AtomicInteger;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/AbstractServiceInvoker.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/AbstractServiceInvoker.java
similarity index 94%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/AbstractServiceInvoker.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/AbstractServiceInvoker.java
index f38e55b..8103387 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/AbstractServiceInvoker.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/AbstractServiceInvoker.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
-import com.tencent.tubemq.corerpc.client.Callback;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.utils.MixUtils;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
+import org.apache.tubemq.corerpc.client.Callback;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.utils.MixUtils;
 
 
 public abstract class AbstractServiceInvoker implements InvocationHandler {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RemoteConErrStats.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RemoteConErrStats.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RemoteConErrStats.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RemoteConErrStats.java
index 121b6a3..b9e6f23 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RemoteConErrStats.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RemoteConErrStats.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
 import java.util.concurrent.atomic.AtomicLong;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RequestWrapper.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RequestWrapper.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RequestWrapper.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RequestWrapper.java
index 4209fb4..3bc4a83 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RequestWrapper.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RequestWrapper.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
 import java.io.Serializable;
+import org.apache.tubemq.corebase.TBaseConstants;
 
 
 public class RequestWrapper implements Serializable {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/ResponseWrapper.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/ResponseWrapper.java
similarity index 85%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/ResponseWrapper.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/ResponseWrapper.java
index 329c880..0aa4a92 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/ResponseWrapper.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/ResponseWrapper.java
@@ -15,10 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
-import com.tencent.tubemq.corerpc.exception.StandbyException;
 import java.io.Serializable;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.corerpc.protocol.RpcProtocol;
+import org.apache.tubemq.corerpc.utils.MixUtils;
+
+
 
 
 public class ResponseWrapper implements Serializable {
@@ -37,11 +41,11 @@ public class ResponseWrapper implements Serializable {
 
 
     public ResponseWrapper(int flagId, int serialNo,
-                           int serviceType, int serverVersion,
+                           int serviceType, int locVersion,
                            int methodId, Object responseData) {
         this.serialNo = serialNo;
         this.serviceType = serviceType;
-        this.protocolVersion = serverVersion;
+        this.protocolVersion = locVersion;
         this.flagId = flagId;
         this.methodId = methodId;
         this.responseData = responseData;
@@ -49,12 +53,12 @@ public class ResponseWrapper implements Serializable {
     }
 
     public ResponseWrapper(int flagId, int serialNo,
-                           int serviceType, int serverVersion,
-                           Throwable exception) {
+                           int serviceType, int rmtVersion,
+                           int locVersion, Throwable exception) {
         this.serialNo = serialNo;
         this.flagId = flagId;
         this.serviceType = serviceType;
-        this.protocolVersion = serverVersion;
+        this.protocolVersion = locVersion;
         String errorClass = null;
         String error = null;
         if (exception.getCause() != null
@@ -65,6 +69,9 @@ public class ResponseWrapper implements Serializable {
             errorClass = exception.getClass().getName();
             error = exception.getMessage();
         }
+        if (rmtVersion == RpcProtocol.RPC_PROTOCOL_VERSION_OLD_1) {
+            errorClass = MixUtils.replaceClassNamePrefix(errorClass, true);
+        }
         this.errMsg = errorClass;
         this.stackTrace = error;
         if (this.errMsg == null) {
@@ -76,12 +83,12 @@ public class ResponseWrapper implements Serializable {
     }
 
     public ResponseWrapper(int flagId, int serialNo,
-                           int serviceType, int serverVersion,
+                           int serviceType, int locVersion,
                            String errorMsg, String stackTrace) {
         this.serialNo = serialNo;
         this.flagId = flagId;
         this.serviceType = serviceType;
-        this.protocolVersion = serverVersion;
+        this.protocolVersion = locVersion;
         this.errMsg = errorMsg;
         this.stackTrace = stackTrace;
         if (this.errMsg == null) {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcConfig.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcConfig.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcConfig.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcConfig.java
index e005415..7743195 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcConfig.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcConfig.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.util.HashMap;
 import java.util.Map;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 
 public class RpcConfig {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcConstants.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcConstants.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcConstants.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcConstants.java
index 12c56c1..e99ffc3 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcConstants.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
 
 public final class RpcConstants {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcDataPack.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcDataPack.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcDataPack.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcDataPack.java
index b1d11be..5b30700 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcDataPack.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcDataPack.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
 import java.nio.ByteBuffer;
 import java.util.List;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceFactory.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceFactory.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceFactory.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceFactory.java
index d9d83c4..fd15ad5 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceFactory.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceFactory.java
@@ -15,18 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
-
-import com.tencent.tubemq.corebase.Shutdownable;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.exception.LocalConnException;
-import com.tencent.tubemq.corerpc.netty.NettyRpcServer;
-import com.tencent.tubemq.corerpc.protocol.RpcProtocol;
-import com.tencent.tubemq.corerpc.server.ServiceRpcServer;
+package org.apache.tubemq.corerpc;
+
 import java.lang.reflect.Proxy;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -36,6 +26,16 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.Shutdownable;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.exception.LocalConnException;
+import org.apache.tubemq.corerpc.netty.NettyRpcServer;
+import org.apache.tubemq.corerpc.protocol.RpcProtocol;
+import org.apache.tubemq.corerpc.server.ServiceRpcServer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceFailoverInvoker.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceFailoverInvoker.java
similarity index 92%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceFailoverInvoker.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceFailoverInvoker.java
index 5766f41..9759528 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceFailoverInvoker.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceFailoverInvoker.java
@@ -15,21 +15,21 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corerpc.client.Callback;
-import com.tencent.tubemq.corerpc.client.Client;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.codec.PbEnDecoder;
-import com.tencent.tubemq.corerpc.exception.StandbyException;
-import com.tencent.tubemq.corerpc.protocol.RpcProtocol;
-import com.tencent.tubemq.corerpc.utils.MixUtils;
 import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corerpc.client.Callback;
+import org.apache.tubemq.corerpc.client.Client;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.codec.PbEnDecoder;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.corerpc.protocol.RpcProtocol;
+import org.apache.tubemq.corerpc.utils.MixUtils;
 
 
 public class RpcServiceFailoverInvoker extends AbstractServiceInvoker {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceInvoker.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceInvoker.java
similarity index 85%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceInvoker.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceInvoker.java
index 82f3163..4ccb3fb 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/RpcServiceInvoker.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/RpcServiceInvoker.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc;
+package org.apache.tubemq.corerpc;
 
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corerpc.client.Callback;
-import com.tencent.tubemq.corerpc.client.Client;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.codec.PbEnDecoder;
-import com.tencent.tubemq.corerpc.exception.NetworkException;
-import com.tencent.tubemq.corerpc.exception.OverflowException;
-import com.tencent.tubemq.corerpc.protocol.RpcProtocol;
-import com.tencent.tubemq.corerpc.utils.MixUtils;
 import java.util.concurrent.TimeUnit;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corerpc.client.Callback;
+import org.apache.tubemq.corerpc.client.Client;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.codec.PbEnDecoder;
+import org.apache.tubemq.corerpc.exception.NetworkException;
+import org.apache.tubemq.corerpc.exception.OverflowException;
+import org.apache.tubemq.corerpc.protocol.RpcProtocol;
+import org.apache.tubemq.corerpc.utils.MixUtils;
 
 
 public class RpcServiceInvoker extends AbstractServiceInvoker {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/DefaultSimpleService.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/DefaultSimpleService.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/DefaultSimpleService.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/DefaultSimpleService.java
index c613da2..0c09a24 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/DefaultSimpleService.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/DefaultSimpleService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.benchemark;
+package org.apache.tubemq.corerpc.benchemark;
 
 
 public class DefaultSimpleService implements SimpleService {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/RcpService4BenchmarkClient.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/RcpService4BenchmarkClient.java
similarity index 91%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/RcpService4BenchmarkClient.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/RcpService4BenchmarkClient.java
index fc65f39..fa272e6 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/RcpService4BenchmarkClient.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/RcpService4BenchmarkClient.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.benchemark;
+package org.apache.tubemq.corerpc.benchemark;
 
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.netty.NettyClientFactory;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.netty.NettyClientFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/RpcService4BenchmarkServer.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/RpcService4BenchmarkServer.java
similarity index 91%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/RpcService4BenchmarkServer.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/RpcService4BenchmarkServer.java
index 4eeda78..7a13334 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/RpcService4BenchmarkServer.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/RpcService4BenchmarkServer.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.benchemark;
+package org.apache.tubemq.corerpc.benchemark;
 
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
 import java.util.concurrent.Executors;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/SimpleService.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/SimpleService.java
similarity index 94%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/SimpleService.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/SimpleService.java
index 9203133..65513b8 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/benchemark/SimpleService.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/benchemark/SimpleService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.benchemark;
+package org.apache.tubemq.corerpc.benchemark;
 
 
 public interface SimpleService {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/CallFuture.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/CallFuture.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/CallFuture.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/CallFuture.java
index db3f5b9..33a309b 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/CallFuture.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/CallFuture.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.client;
+package org.apache.tubemq.corerpc.client;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/Callback.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/Callback.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/Callback.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/Callback.java
index cb9c010..ef2238f 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/Callback.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/Callback.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.client;
+package org.apache.tubemq.corerpc.client;
 
 /**
  * Interface for receiving asynchronous callbacks. For each request with an
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/Client.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/Client.java
similarity index 86%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/Client.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/Client.java
index 97954c8..d251378 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/Client.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/Client.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.client;
+package org.apache.tubemq.corerpc.client;
 
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corerpc.RequestWrapper;
-import com.tencent.tubemq.corerpc.ResponseWrapper;
 import java.util.concurrent.TimeUnit;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corerpc.RequestWrapper;
+import org.apache.tubemq.corerpc.ResponseWrapper;
 
 
 public interface Client {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/ClientFactory.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/ClientFactory.java
similarity index 87%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/ClientFactory.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/ClientFactory.java
index 55cc849..2efe236 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/client/ClientFactory.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/client/ClientFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.client;
+package org.apache.tubemq.corerpc.client;
 
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corerpc.RpcConfig;
 
 
 public interface ClientFactory {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/codec/PbEnDecoder.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/codec/PbEnDecoder.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/codec/PbEnDecoder.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/codec/PbEnDecoder.java
index 27a31c2..df4fae1 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/codec/PbEnDecoder.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/codec/PbEnDecoder.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.codec;
+package org.apache.tubemq.corerpc.codec;
 
 import com.google.protobuf.AbstractMessageLite;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corerpc.RpcConstants;
 import java.util.HashMap;
 import java.util.Map;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corerpc.RpcConstants;
 
 /***
  * PB corresponding method, service type codec util tools
@@ -52,13 +52,13 @@ public class PbEnDecoder {
         rpcMethodMap.put("consumerCommitC2B", RpcConstants.RPC_MSG_BROKER_CONSUMER_COMMIT);
         rpcMethodMap.put("sendMessageP2B", RpcConstants.RPC_MSG_BROKER_PRODUCER_SENDMESSAGE);
 
-        rpcServiceMap.put("com.tencent.tubemq.corerpc.service.MasterService",
+        rpcServiceMap.put("org.apache.tubemq.corerpc.service.MasterService",
                 RpcConstants.RPC_SERVICE_TYPE_MASTER_SERVICE);
-        rpcServiceMap.put("com.tencent.tubemq.corerpc.service.BrokerReadService",
+        rpcServiceMap.put("org.apache.tubemq.corerpc.service.BrokerReadService",
                 RpcConstants.RPC_SERVICE_TYPE_BROKER_READ_SERVICE);
-        rpcServiceMap.put("com.tencent.tubemq.corerpc.service.BrokerWriteService",
+        rpcServiceMap.put("org.apache.tubemq.corerpc.service.BrokerWriteService",
                 RpcConstants.RPC_SERVICE_TYPE_BROKER_WRITE_SERVICE);
-        rpcServiceMap.put("com.tencent.tubemq.corerpc.service.BrokerWriteService$AsyncService",
+        rpcServiceMap.put("org.apache.tubemq.corerpc.service.BrokerWriteService$AsyncService",
                 RpcConstants.RPC_SERVICE_TYPE_BROKER_WRITE_SERVICE);
 
     }
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/codec/Protocol.txt b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/codec/Protocol.txt
similarity index 100%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/codec/Protocol.txt
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/codec/Protocol.txt
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ClientClosedException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ClientClosedException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ClientClosedException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ClientClosedException.java
index fcb57d4..98b8844 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ClientClosedException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ClientClosedException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 
 public class ClientClosedException extends Exception {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/LocalConnException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/LocalConnException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/LocalConnException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/LocalConnException.java
index b4eecab..d8a058a 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/LocalConnException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/LocalConnException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 
 public class LocalConnException extends RuntimeException {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/NetworkException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/NetworkException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/NetworkException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/NetworkException.java
index 4a241e8..864fa9e 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/NetworkException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/NetworkException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 
 public class NetworkException extends Exception {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/OverflowException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/OverflowException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/OverflowException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/OverflowException.java
index acc2109..719f9db 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/OverflowException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/OverflowException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 
 public class OverflowException extends RuntimeException {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/RemoteException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/RemoteException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/RemoteException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/RemoteException.java
index e9f60ba..fcadf10 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/RemoteException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/RemoteException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 public class RemoteException extends Exception {
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ServerNotReadyException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ServerNotReadyException.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ServerNotReadyException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ServerNotReadyException.java
index 90356c2..0211789 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ServerNotReadyException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ServerNotReadyException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 import java.io.IOException;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ServiceStoppingException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ServiceStoppingException.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ServiceStoppingException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ServiceStoppingException.java
index 8f477b0..291df3d 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/ServiceStoppingException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/ServiceStoppingException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 
 public class ServiceStoppingException extends Exception {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/StandbyException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/StandbyException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/StandbyException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/StandbyException.java
index a3ff327..6bfdaea 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/StandbyException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/StandbyException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 import java.io.IOException;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/UnknownProtocolException.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/UnknownProtocolException.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/UnknownProtocolException.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/UnknownProtocolException.java
index fd4281f..3ef82dc 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/exception/UnknownProtocolException.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/exception/UnknownProtocolException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.exception;
+package org.apache.tubemq.corerpc.exception;
 
 import java.io.IOException;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ByteBufferInputStream.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ByteBufferInputStream.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ByteBufferInputStream.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ByteBufferInputStream.java
index f14d566..3c2d53f 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ByteBufferInputStream.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ByteBufferInputStream.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
 import java.io.EOFException;
 import java.io.IOException;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ByteBufferOutputStream.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ByteBufferOutputStream.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ByteBufferOutputStream.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ByteBufferOutputStream.java
index 063aed8..6625682 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ByteBufferOutputStream.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ByteBufferOutputStream.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
-import com.tencent.tubemq.corerpc.RpcConstants;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
 import java.util.LinkedList;
 import java.util.List;
+import org.apache.tubemq.corerpc.RpcConstants;
 
 
 /**
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyClient.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyClient.java
similarity index 92%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyClient.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyClient.java
index e4ac6ba..6d063e0 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyClient.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyClient.java
@@ -15,22 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
 import com.google.protobuf.ByteString;
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.RPCProtos;
-import com.tencent.tubemq.corerpc.RequestWrapper;
-import com.tencent.tubemq.corerpc.ResponseWrapper;
-import com.tencent.tubemq.corerpc.RpcDataPack;
-import com.tencent.tubemq.corerpc.client.CallFuture;
-import com.tencent.tubemq.corerpc.client.Callback;
-import com.tencent.tubemq.corerpc.client.Client;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.codec.PbEnDecoder;
-import com.tencent.tubemq.corerpc.exception.ClientClosedException;
-import com.tencent.tubemq.corerpc.exception.NetworkException;
-import com.tencent.tubemq.corerpc.utils.MixUtils;
 import java.io.EOFException;
 import java.io.IOException;
 import java.nio.channels.UnresolvedAddressException;
@@ -40,6 +27,20 @@ import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corebase.protobuf.generated.RPCProtos;
+import org.apache.tubemq.corerpc.RequestWrapper;
+import org.apache.tubemq.corerpc.ResponseWrapper;
+import org.apache.tubemq.corerpc.RpcDataPack;
+import org.apache.tubemq.corerpc.client.CallFuture;
+import org.apache.tubemq.corerpc.client.Callback;
+import org.apache.tubemq.corerpc.client.Client;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.codec.PbEnDecoder;
+import org.apache.tubemq.corerpc.exception.ClientClosedException;
+import org.apache.tubemq.corerpc.exception.NetworkException;
+import org.apache.tubemq.corerpc.protocol.RpcProtocol;
+import org.apache.tubemq.corerpc.utils.MixUtils;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandler;
 import org.jboss.netty.channel.ChannelHandlerContext;
@@ -105,8 +106,8 @@ public class NettyClient implements Client {
     }
 
     /* (non-Javadoc)
-     * @see com.tencent.tubemq.corerpc.client.Client#call(com.tencent.tubemq.corerpc.RequestWrapper,
-     *  com.tencent.tubemq.corerpc.client.Callback, long, java.util.concurrent.TimeUnit)
+     * @see org.apache.tubemq.corerpc.client.Client#call(org.apache.tubemq.corerpc.RequestWrapper,
+     *  org.apache.tubemq.corerpc.client.Callback, long, java.util.concurrent.TimeUnit)
      */
     @Override
     public ResponseWrapper call(RequestWrapper request, Callback callback,
@@ -330,11 +331,14 @@ public class NettyClient implements Client {
                                 // instead, it returns a null response object.
                                 throw new NetworkException("Not found RpcException data!");
                             }
+                            String exceptionName = exceptionResponse.getExceptionName();
+                            if (rpcResponse.getProtocolVer() == RpcProtocol.RPC_PROTOCOL_VERSION_OLD_1) {
+                                exceptionName = MixUtils.replaceClassNamePrefix(exceptionName, false);
+                            }
                             responseWrapper =
                                     new ResponseWrapper(connHeader.getFlag(), dataPack.getSerialNo(),
                                             rpcResponse.getServiceType(), rpcResponse.getProtocolVer(),
-                                            exceptionResponse.getExceptionName(),
-                                            exceptionResponse.getStackTrace());
+                                            exceptionName, exceptionResponse.getStackTrace());
                         }
                         if (!responseWrapper.isSuccess()) {
                             Throwable remote =
@@ -348,7 +352,7 @@ public class NettyClient implements Client {
                         callback.handleResult(responseWrapper);
                     } catch (Throwable ee) {
                         responseWrapper =
-                                new ResponseWrapper(-2, dataPack.getSerialNo(), -2, -2, ee);
+                                new ResponseWrapper(-2, dataPack.getSerialNo(), -2, -2, -2, ee);
                         if (ee instanceof EOFException) {
                             NettyClient.this.close();
                         }
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyClientFactory.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyClientFactory.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyClientFactory.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyClientFactory.java
index ad70a36..404d99d 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyClientFactory.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyClientFactory.java
@@ -15,15 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.client.Client;
-import com.tencent.tubemq.corerpc.client.ClientFactory;
-import com.tencent.tubemq.corerpc.exception.LocalConnException;
-import com.tencent.tubemq.corerpc.utils.TSSLEngineUtil;
 import java.net.InetSocketAddress;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
@@ -32,6 +25,13 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import javax.net.ssl.SSLEngine;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.client.Client;
+import org.apache.tubemq.corerpc.client.ClientFactory;
+import org.apache.tubemq.corerpc.exception.LocalConnException;
+import org.apache.tubemq.corerpc.utils.TSSLEngineUtil;
 import org.jboss.netty.bootstrap.ClientBootstrap;
 import org.jboss.netty.channel.ChannelFactory;
 import org.jboss.netty.channel.ChannelFuture;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyProtocolDecoder.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyProtocolDecoder.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyProtocolDecoder.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyProtocolDecoder.java
index 6341fa8..36178c4 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyProtocolDecoder.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyProtocolDecoder.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
-import static com.tencent.tubemq.corebase.utils.AddressUtils.getRemoteAddressIP;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcDataPack;
-import com.tencent.tubemq.corerpc.exception.UnknownProtocolException;
+import static org.apache.tubemq.corebase.utils.AddressUtils.getRemoteAddressIP;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcDataPack;
+import org.apache.tubemq.corerpc.exception.UnknownProtocolException;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandlerContext;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyProtocolEncoder.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyProtocolEncoder.java
similarity index 94%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyProtocolEncoder.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyProtocolEncoder.java
index 46bdecf..ae0a69a 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyProtocolEncoder.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyProtocolEncoder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcDataPack;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcDataPack;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandlerContext;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyRequestContext.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyRequestContext.java
similarity index 94%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyRequestContext.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyRequestContext.java
index b7985c9..bb2bba7 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyRequestContext.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyRequestContext.java
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
 import com.google.protobuf.ByteString;
-import com.tencent.tubemq.corebase.protobuf.generated.RPCProtos;
-import com.tencent.tubemq.corerpc.RequestWrapper;
-import com.tencent.tubemq.corerpc.ResponseWrapper;
-import com.tencent.tubemq.corerpc.RpcDataPack;
-import com.tencent.tubemq.corerpc.codec.PbEnDecoder;
-import com.tencent.tubemq.corerpc.server.RequestContext;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.net.SocketAddress;
 import java.nio.ByteBuffer;
 import java.util.List;
+import org.apache.tubemq.corebase.protobuf.generated.RPCProtos;
+import org.apache.tubemq.corerpc.RequestWrapper;
+import org.apache.tubemq.corerpc.ResponseWrapper;
+import org.apache.tubemq.corerpc.RpcDataPack;
+import org.apache.tubemq.corerpc.codec.PbEnDecoder;
+import org.apache.tubemq.corerpc.server.RequestContext;
 import org.jboss.netty.channel.ChannelFuture;
 import org.jboss.netty.channel.ChannelFutureListener;
 import org.jboss.netty.channel.ChannelHandlerContext;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyRpcServer.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyRpcServer.java
similarity index 92%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyRpcServer.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyRpcServer.java
index eab0d6f..a9b7c5e 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/NettyRpcServer.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/NettyRpcServer.java
@@ -15,23 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
-import static com.tencent.tubemq.corebase.utils.AddressUtils.getRemoteAddressIP;
+import static org.apache.tubemq.corebase.utils.AddressUtils.getRemoteAddressIP;
 import com.google.protobuf.Message;
-import com.tencent.tubemq.corebase.protobuf.generated.RPCProtos;
-import com.tencent.tubemq.corerpc.RequestWrapper;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcDataPack;
-import com.tencent.tubemq.corerpc.codec.PbEnDecoder;
-import com.tencent.tubemq.corerpc.exception.ServerNotReadyException;
-import com.tencent.tubemq.corerpc.protocol.Protocol;
-import com.tencent.tubemq.corerpc.protocol.ProtocolFactory;
-import com.tencent.tubemq.corerpc.protocol.RpcProtocol;
-import com.tencent.tubemq.corerpc.server.RequestContext;
-import com.tencent.tubemq.corerpc.server.ServiceRpcServer;
-import com.tencent.tubemq.corerpc.utils.TSSLEngineUtil;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -43,6 +30,20 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import javax.net.ssl.SSLEngine;
+import org.apache.tubemq.corebase.protobuf.generated.RPCProtos;
+import org.apache.tubemq.corerpc.RequestWrapper;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcDataPack;
+import org.apache.tubemq.corerpc.codec.PbEnDecoder;
+import org.apache.tubemq.corerpc.exception.ServerNotReadyException;
+import org.apache.tubemq.corerpc.protocol.Protocol;
+import org.apache.tubemq.corerpc.protocol.ProtocolFactory;
+import org.apache.tubemq.corerpc.protocol.RpcProtocol;
+import org.apache.tubemq.corerpc.server.RequestContext;
+import org.apache.tubemq.corerpc.server.ServiceRpcServer;
+import org.apache.tubemq.corerpc.utils.MixUtils;
+import org.apache.tubemq.corerpc.utils.TSSLEngineUtil;
 import org.jboss.netty.bootstrap.ServerBootstrap;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.channel.Channel;
@@ -274,6 +275,7 @@ public class NettyRpcServer implements ServiceRpcServer {
             RPCProtos.RpcConnHeader connHeader;
             RPCProtos.RequestHeader requestHeader;
             RPCProtos.RequestBody rpcRequestBody;
+            int rmtVersion = RpcProtocol.RPC_PROTOCOL_VERSION;
             Channel channel = ctx.getChannel();
             if (channel == null) {
                 return;
@@ -287,6 +289,7 @@ public class NettyRpcServer implements ServiceRpcServer {
                 ByteBufferInputStream dis = new ByteBufferInputStream(req);
                 connHeader = RPCProtos.RpcConnHeader.parseDelimitedFrom(dis);
                 requestHeader = RPCProtos.RequestHeader.parseDelimitedFrom(dis);
+                rmtVersion = requestHeader.getProtocolVer();
                 rpcRequestBody = RPCProtos.RequestBody.parseDelimitedFrom(dis);
             } catch (Throwable e1) {
                 if (!(e1 instanceof ServerNotReadyException)) {
@@ -313,7 +316,7 @@ public class NettyRpcServer implements ServiceRpcServer {
                     }
                 }
                 List<ByteBuffer> res =
-                        prepareResponse(null, RPCProtos.ResponseHeader.Status.FATAL,
+                        prepareResponse(null, rmtVersion, RPCProtos.ResponseHeader.Status.FATAL,
                                 e1.getClass().getName(), new StringBuilder(512)
                                         .append("IPC server unable to read call parameters:")
                                         .append(e1.getMessage()).toString());
@@ -337,7 +340,7 @@ public class NettyRpcServer implements ServiceRpcServer {
                 protocols.get(this.protocolType).handleRequest(context, rmtaddrIp);
             } catch (Throwable ee) {
                 List<ByteBuffer> res =
-                        prepareResponse(null, RPCProtos.ResponseHeader.Status.FATAL,
+                        prepareResponse(null, rmtVersion, RPCProtos.ResponseHeader.Status.FATAL,
                                 ee.getClass().getName(), new StringBuilder(512)
                                         .append("IPC server handle request error :")
                                         .append(ee.getMessage()).toString());
@@ -358,11 +361,14 @@ public class NettyRpcServer implements ServiceRpcServer {
          * @param error
          * @return
          */
-        protected List<ByteBuffer> prepareResponse(Object value,
+        protected List<ByteBuffer> prepareResponse(Object value, int rmtVersion,
                                                    RPCProtos.ResponseHeader.Status status,
                                                    String errorClass, String error) {
             ByteBufferOutputStream buf = new ByteBufferOutputStream();
             DataOutputStream out = new DataOutputStream(buf);
+            if (rmtVersion == RpcProtocol.RPC_PROTOCOL_VERSION_OLD_1) {
+                errorClass = MixUtils.replaceClassNamePrefix(errorClass, true);
+            }
             try {
                 RPCProtos.RpcConnHeader.Builder connBuilder =
                         RPCProtos.RpcConnHeader.newBuilder();
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ReadTimeoutHandler.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ReadTimeoutHandler.java
similarity index 99%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ReadTimeoutHandler.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ReadTimeoutHandler.java
index b99aeab..9dd2ca3 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/netty/ReadTimeoutHandler.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/netty/ReadTimeoutHandler.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
 import static org.jboss.netty.channel.Channels.fireExceptionCaught;
 import java.util.concurrent.TimeUnit;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/Protocol.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/Protocol.java
similarity index 92%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/Protocol.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/Protocol.java
index a3ab451..364ee19 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/Protocol.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/Protocol.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.protocol;
+package org.apache.tubemq.corerpc.protocol;
 
-import com.tencent.tubemq.corerpc.server.RequestContext;
 import java.util.concurrent.ExecutorService;
+import org.apache.tubemq.corerpc.server.RequestContext;
 
 
 public interface Protocol {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/ProtocolFactory.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/ProtocolFactory.java
similarity index 97%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/ProtocolFactory.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/ProtocolFactory.java
index 9e9e5dc..c95cb17 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/ProtocolFactory.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/ProtocolFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.protocol;
+package org.apache.tubemq.corerpc.protocol;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/RpcProtocol.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/RpcProtocol.java
similarity index 88%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/RpcProtocol.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/RpcProtocol.java
index e75b5c8..4f2c272 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/protocol/RpcProtocol.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/protocol/RpcProtocol.java
@@ -15,21 +15,22 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.protocol;
+package org.apache.tubemq.corerpc.protocol;
 
-import com.tencent.tubemq.corebase.utils.ServiceStatusHolder;
-import com.tencent.tubemq.corerpc.RequestWrapper;
-import com.tencent.tubemq.corerpc.ResponseWrapper;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.codec.PbEnDecoder;
-import com.tencent.tubemq.corerpc.exception.ServiceStoppingException;
-import com.tencent.tubemq.corerpc.exception.StandbyException;
-import com.tencent.tubemq.corerpc.server.RequestContext;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
+import org.apache.tubemq.corebase.utils.ServiceStatusHolder;
+import org.apache.tubemq.corerpc.RequestWrapper;
+import org.apache.tubemq.corerpc.ResponseWrapper;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.codec.PbEnDecoder;
+import org.apache.tubemq.corerpc.exception.ServiceStoppingException;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.corerpc.server.RequestContext;
+import org.apache.tubemq.corerpc.utils.MixUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,7 +39,8 @@ public class RpcProtocol implements Protocol {
 
     public static final int RPC_PROTOCOL_TCP = 10;
     public static final int RPC_PROTOCOL_TLS = 11;
-    public static final int RPC_PROTOCOL_VERSION = 1;
+    public static final int RPC_PROTOCOL_VERSION_OLD_1 = 1; // for com.tencent.tubemq
+    public static final int RPC_PROTOCOL_VERSION = 2; // for org.apache.tubemq
 
     private static final Logger logger =
             LoggerFactory.getLogger(RpcProtocol.class);
@@ -119,7 +121,7 @@ public class RpcProtocol implements Protocol {
         }
         if (ServiceStatusHolder.isServiceStopped()) {
             context.write(new ResponseWrapper(RpcConstants.RPC_FLAG_MSG_TYPE_RESPONSE,
-                    requestWrapper.getSerialNo(), requestWrapper.getServiceType(),
+                    requestWrapper.getSerialNo(), requestWrapper.getServiceType(), requestWrapper.getProtocolVersion(),
                     RPC_PROTOCOL_VERSION, new ServiceStoppingException("service is stopping...")));
         }
         Method method = null;
@@ -159,6 +161,9 @@ public class RpcProtocol implements Protocol {
                 errorClass = e2.getClass().getName();
                 errorInfo = e2.getMessage();
             }
+            if (requestWrapper.getProtocolVersion() == RPC_PROTOCOL_VERSION_OLD_1) {
+                errorClass = MixUtils.replaceClassNamePrefix(errorClass, true);
+            }
             responseWrapper =
                     new ResponseWrapper(RpcConstants.RPC_FLAG_MSG_TYPE_RESPONSE,
                             requestWrapper.getSerialNo(), requestWrapper.getServiceType(),
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/RequestContext.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/RequestContext.java
similarity index 87%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/RequestContext.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/RequestContext.java
index 5b1ca19..206bda2 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/RequestContext.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/RequestContext.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.server;
+package org.apache.tubemq.corerpc.server;
 
-import com.tencent.tubemq.corerpc.RequestWrapper;
-import com.tencent.tubemq.corerpc.ResponseWrapper;
 import java.net.SocketAddress;
+import org.apache.tubemq.corerpc.RequestWrapper;
+import org.apache.tubemq.corerpc.ResponseWrapper;
 
 
 public interface RequestContext {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/RpcServer.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/RpcServer.java
similarity index 95%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/RpcServer.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/RpcServer.java
index 8c5707e..700ea8e 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/RpcServer.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/RpcServer.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.server;
+package org.apache.tubemq.corerpc.server;
 
 
 public interface RpcServer {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/ServiceRpcServer.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/ServiceRpcServer.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/ServiceRpcServer.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/ServiceRpcServer.java
index 7d1a9ae..8df77a7 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/server/ServiceRpcServer.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/server/ServiceRpcServer.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.server;
+package org.apache.tubemq.corerpc.server;
 
 import java.util.concurrent.ExecutorService;
 
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/BrokerReadService.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/BrokerReadService.java
similarity index 93%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/BrokerReadService.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/BrokerReadService.java
index 316e86b..243cbc6 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/BrokerReadService.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/BrokerReadService.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.service;
+package org.apache.tubemq.corerpc.service;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
 
 
 public interface BrokerReadService {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/BrokerWriteService.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/BrokerWriteService.java
similarity index 88%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/BrokerWriteService.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/BrokerWriteService.java
index 010b906..7406db9 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/BrokerWriteService.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/BrokerWriteService.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.service;
+package org.apache.tubemq.corerpc.service;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corerpc.client.Callback;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corerpc.client.Callback;
 
 
 public interface BrokerWriteService {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/MasterService.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/MasterService.java
similarity index 96%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/MasterService.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/MasterService.java
index ea53e17..56aa6ce 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/service/MasterService.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/service/MasterService.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.service;
+package org.apache.tubemq.corerpc.service;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
 
 
 public interface MasterService {
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/utils/MixUtils.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/utils/MixUtils.java
similarity index 84%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/utils/MixUtils.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/utils/MixUtils.java
index 03695a5..d3c070e 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/utils/MixUtils.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/utils/MixUtils.java
@@ -15,16 +15,23 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.utils;
+package org.apache.tubemq.corerpc.utils;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.exception.RemoteException;
 import java.lang.reflect.Constructor;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.exception.RemoteException;
 
 
 public class MixUtils {
 
+    public static String replaceClassNamePrefix(String className, boolean toOldVersion) {
+        if (toOldVersion) {
+            return className.replace("org.apache.tubemq.", "com.tencent.tubemq.");
+        } else {
+            return className.replace("com.tencent.tubemq.", "org.apache.tubemq.");
+        }
+    }
 
     public static Throwable unwrapException(String exceptionMsg) {
         // Perform string to exception conversion processing
diff --git a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/utils/TSSLEngineUtil.java b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/utils/TSSLEngineUtil.java
similarity index 98%
rename from tubemq-core/src/main/java/com/tencent/tubemq/corerpc/utils/TSSLEngineUtil.java
rename to tubemq-core/src/main/java/org/apache/tubemq/corerpc/utils/TSSLEngineUtil.java
index 55e35de..6752153 100644
--- a/tubemq-core/src/main/java/com/tencent/tubemq/corerpc/utils/TSSLEngineUtil.java
+++ b/tubemq-core/src/main/java/org/apache/tubemq/corerpc/utils/TSSLEngineUtil.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.utils;
+package org.apache.tubemq.corerpc.utils;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/tubemq-core/src/main/protobuf/BrokerService.proto b/tubemq-core/src/main/protobuf/BrokerService.proto
index 5e98e5d..af6608f 100644
--- a/tubemq-core/src/main/protobuf/BrokerService.proto
+++ b/tubemq-core/src/main/protobuf/BrokerService.proto
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-option java_package = "com.tencent.tubemq.corebase.protobuf.generated";
+option java_package = "org.apache.tubemq.corebase.protobuf.generated";
 option java_outer_classname = "ClientBroker";
 option java_generate_equals_and_hash = true;
 option java_generic_services = true;
diff --git a/tubemq-core/src/main/protobuf/MasterService.proto b/tubemq-core/src/main/protobuf/MasterService.proto
index bdf4e8c..cea6838 100644
--- a/tubemq-core/src/main/protobuf/MasterService.proto
+++ b/tubemq-core/src/main/protobuf/MasterService.proto
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-option java_package = "com.tencent.tubemq.corebase.protobuf.generated";
+option java_package = "org.apache.tubemq.corebase.protobuf.generated";
 option java_outer_classname = "ClientMaster";
 option java_generate_equals_and_hash = true;
 option java_generic_services = true;
diff --git a/tubemq-core/src/main/protobuf/RPC.proto b/tubemq-core/src/main/protobuf/RPC.proto
index c9960b5..e60274b 100644
--- a/tubemq-core/src/main/protobuf/RPC.proto
+++ b/tubemq-core/src/main/protobuf/RPC.proto
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-option java_package = "com.tencent.tubemq.corebase.protobuf.generated";
+option java_package = "org.apache.tubemq.corebase.protobuf.generated";
 option java_outer_classname = "RPCProtos";
 option java_generate_equals_and_hash = true;
 option optimize_for = SPEED;
diff --git a/tubemq-core/src/test/java/com/tencent/tubemq/corebase/policies/TestFlowCtrlRuleHandler.java b/tubemq-core/src/test/java/org/apache/tubemq/corebase/policies/TestFlowCtrlRuleHandler.java
similarity index 98%
rename from tubemq-core/src/test/java/com/tencent/tubemq/corebase/policies/TestFlowCtrlRuleHandler.java
rename to tubemq-core/src/test/java/org/apache/tubemq/corebase/policies/TestFlowCtrlRuleHandler.java
index 33b7658..7da7c6b 100644
--- a/tubemq-core/src/test/java/com/tencent/tubemq/corebase/policies/TestFlowCtrlRuleHandler.java
+++ b/tubemq-core/src/test/java/org/apache/tubemq/corebase/policies/TestFlowCtrlRuleHandler.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corebase.policies;
+package org.apache.tubemq.corebase.policies;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
diff --git a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/codec/DataConverterUtilTest.java b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/codec/DataConverterUtilTest.java
similarity index 89%
rename from tubemq-core/src/test/java/com/tencent/tubemq/corerpc/codec/DataConverterUtilTest.java
rename to tubemq-core/src/test/java/org/apache/tubemq/corerpc/codec/DataConverterUtilTest.java
index 0fe52b7..5690a48 100644
--- a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/codec/DataConverterUtilTest.java
+++ b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/codec/DataConverterUtilTest.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.codec;
+package org.apache.tubemq.corerpc.codec;
 
 import static org.junit.Assert.assertEquals;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.SubscribeInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.utils.DataConverterUtil;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.SubscribeInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.utils.DataConverterUtil;
 import org.junit.Test;
 
 public class DataConverterUtilTest {
diff --git a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/codec/PbEnDecoderTest.java b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/codec/PbEnDecoderTest.java
similarity index 92%
rename from tubemq-core/src/test/java/com/tencent/tubemq/corerpc/codec/PbEnDecoderTest.java
rename to tubemq-core/src/test/java/org/apache/tubemq/corerpc/codec/PbEnDecoderTest.java
index 593d3eb..7795ab1 100644
--- a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/codec/PbEnDecoderTest.java
+++ b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/codec/PbEnDecoderTest.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.tencent.tubemq.corerpc.codec;
+package org.apache.tubemq.corerpc.codec;
 
 import static org.junit.Assert.assertTrue;
 import com.googlecode.protobuf.format.JsonFormat;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corerpc.RpcConstants;
 import org.junit.Test;
 
 public class PbEnDecoderTest {
diff --git a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/netty/NettyProtocolEncoderTest.java b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/netty/NettyProtocolEncoderTest.java
similarity index 95%
rename from tubemq-core/src/test/java/com/tencent/tubemq/corerpc/netty/NettyProtocolEncoderTest.java
rename to tubemq-core/src/test/java/org/apache/tubemq/corerpc/netty/NettyProtocolEncoderTest.java
index 547ba1a..27dea5c 100644
--- a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/netty/NettyProtocolEncoderTest.java
+++ b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/netty/NettyProtocolEncoderTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.netty;
+package org.apache.tubemq.corerpc.netty;
 
-import com.tencent.tubemq.corerpc.RpcDataPack;
 import java.nio.ByteBuffer;
 import java.util.LinkedList;
 import java.util.List;
+import org.apache.tubemq.corerpc.RpcDataPack;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/utils/TSSLEngineUtilTest.java b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/utils/TSSLEngineUtilTest.java
similarity index 97%
rename from tubemq-core/src/test/java/com/tencent/tubemq/corerpc/utils/TSSLEngineUtilTest.java
rename to tubemq-core/src/test/java/org/apache/tubemq/corerpc/utils/TSSLEngineUtilTest.java
index b025b23..853ff9f 100644
--- a/tubemq-core/src/test/java/com/tencent/tubemq/corerpc/utils/TSSLEngineUtilTest.java
+++ b/tubemq-core/src/test/java/org/apache/tubemq/corerpc/utils/TSSLEngineUtilTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.corerpc.utils;
+package org.apache.tubemq.corerpc.utils;
 
 import javax.net.ssl.SSLEngine;
 import org.junit.Assert;
diff --git a/tubemq-example/pom.xml b/tubemq-example/pom.xml
index cc6c1d6..09f2213 100644
--- a/tubemq-example/pom.xml
+++ b/tubemq-example/pom.xml
@@ -22,7 +22,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>tubemq</artifactId>
-        <groupId>com.tencent.tubemq</groupId>
+        <groupId>org.apache.tubemq</groupId>
         <version>0.3.0-incubating-SNAPSHOT</version>
     </parent>
     <artifactId>tubemq-example</artifactId>
@@ -56,7 +56,7 @@
 
     <dependencies>
         <dependency>
-            <groupId>com.tencent.tubemq</groupId>
+            <groupId>org.apache.tubemq</groupId>
             <artifactId>tubemq-client</artifactId>
             <version>${tubemq-client-version}</version>
         </dependency>
diff --git a/tubemq-example/src/main/java/com/tencent/tubemq/example/MAMessageProducerExample.java b/tubemq-example/src/main/java/org/apache/tubemq/example/MAMessageProducerExample.java
similarity index 93%
rename from tubemq-example/src/main/java/com/tencent/tubemq/example/MAMessageProducerExample.java
rename to tubemq-example/src/main/java/org/apache/tubemq/example/MAMessageProducerExample.java
index 83f3acf..818591d 100644
--- a/tubemq-example/src/main/java/com/tencent/tubemq/example/MAMessageProducerExample.java
+++ b/tubemq-example/src/main/java/org/apache/tubemq/example/MAMessageProducerExample.java
@@ -15,18 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.example;
-
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.MessageSessionFactory;
-import com.tencent.tubemq.client.factory.TubeMultiSessionFactory;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.client.producer.MessageSentCallback;
-import com.tencent.tubemq.client.producer.MessageSentResult;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
+package org.apache.tubemq.example;
+
 import java.nio.ByteBuffer;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -43,6 +33,16 @@ import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.MessageSessionFactory;
+import org.apache.tubemq.client.factory.TubeMultiSessionFactory;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.client.producer.MessageSentCallback;
+import org.apache.tubemq.client.producer.MessageSentResult;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessageConsumerExample.java b/tubemq-example/src/main/java/org/apache/tubemq/example/MessageConsumerExample.java
similarity index 93%
rename from tubemq-example/src/main/java/com/tencent/tubemq/example/MessageConsumerExample.java
rename to tubemq-example/src/main/java/org/apache/tubemq/example/MessageConsumerExample.java
index 5721480..6ac7356 100644
--- a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessageConsumerExample.java
+++ b/tubemq-example/src/main/java/org/apache/tubemq/example/MessageConsumerExample.java
@@ -15,15 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.example;
-
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.consumer.MessageListener;
-import com.tencent.tubemq.client.consumer.PushMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.MessageSessionFactory;
-import com.tencent.tubemq.client.factory.TubeSingleSessionFactory;
-import com.tencent.tubemq.corebase.Message;
+package org.apache.tubemq.example;
+
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -33,6 +26,13 @@ import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.consumer.MessageListener;
+import org.apache.tubemq.client.consumer.PushMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.MessageSessionFactory;
+import org.apache.tubemq.client.factory.TubeSingleSessionFactory;
+import org.apache.tubemq.corebase.Message;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessageProducerExample.java b/tubemq-example/src/main/java/org/apache/tubemq/example/MessageProducerExample.java
similarity index 93%
rename from tubemq-example/src/main/java/com/tencent/tubemq/example/MessageProducerExample.java
rename to tubemq-example/src/main/java/org/apache/tubemq/example/MessageProducerExample.java
index 4e1b1e9..3959d9c 100644
--- a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessageProducerExample.java
+++ b/tubemq-example/src/main/java/org/apache/tubemq/example/MessageProducerExample.java
@@ -15,17 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.example;
-
-import com.tencent.tubemq.client.config.TubeClientConfig;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.MessageSessionFactory;
-import com.tencent.tubemq.client.factory.TubeSingleSessionFactory;
-import com.tencent.tubemq.client.producer.MessageProducer;
-import com.tencent.tubemq.client.producer.MessageSentCallback;
-import com.tencent.tubemq.client.producer.MessageSentResult;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
+package org.apache.tubemq.example;
+
 import java.nio.ByteBuffer;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
@@ -37,6 +28,15 @@ import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.client.config.TubeClientConfig;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.MessageSessionFactory;
+import org.apache.tubemq.client.factory.TubeSingleSessionFactory;
+import org.apache.tubemq.client.producer.MessageProducer;
+import org.apache.tubemq.client.producer.MessageSentCallback;
+import org.apache.tubemq.client.producer.MessageSentResult;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessagePullConsumerExample.java b/tubemq-example/src/main/java/org/apache/tubemq/example/MessagePullConsumerExample.java
similarity index 91%
rename from tubemq-example/src/main/java/com/tencent/tubemq/example/MessagePullConsumerExample.java
rename to tubemq-example/src/main/java/org/apache/tubemq/example/MessagePullConsumerExample.java
index 1d9a251..8af4596 100644
--- a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessagePullConsumerExample.java
+++ b/tubemq-example/src/main/java/org/apache/tubemq/example/MessagePullConsumerExample.java
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.example;
-
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.consumer.ConsumeOffsetInfo;
-import com.tencent.tubemq.client.consumer.ConsumerResult;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.MessageSessionFactory;
-import com.tencent.tubemq.client.factory.TubeSingleSessionFactory;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
+package org.apache.tubemq.example;
+
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.consumer.ConsumeOffsetInfo;
+import org.apache.tubemq.client.consumer.ConsumerResult;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.MessageSessionFactory;
+import org.apache.tubemq.client.factory.TubeSingleSessionFactory;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessagePullSetConsumerExample.java b/tubemq-example/src/main/java/org/apache/tubemq/example/MessagePullSetConsumerExample.java
similarity index 94%
rename from tubemq-example/src/main/java/com/tencent/tubemq/example/MessagePullSetConsumerExample.java
rename to tubemq-example/src/main/java/org/apache/tubemq/example/MessagePullSetConsumerExample.java
index ddaff04..849b8c9 100644
--- a/tubemq-example/src/main/java/com/tencent/tubemq/example/MessagePullSetConsumerExample.java
+++ b/tubemq-example/src/main/java/org/apache/tubemq/example/MessagePullSetConsumerExample.java
@@ -15,17 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.example;
-
-import com.tencent.tubemq.client.config.ConsumerConfig;
-import com.tencent.tubemq.client.consumer.ConsumeOffsetInfo;
-import com.tencent.tubemq.client.consumer.ConsumerResult;
-import com.tencent.tubemq.client.consumer.PullMessageConsumer;
-import com.tencent.tubemq.client.exception.TubeClientException;
-import com.tencent.tubemq.client.factory.MessageSessionFactory;
-import com.tencent.tubemq.client.factory.TubeSingleSessionFactory;
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
+package org.apache.tubemq.example;
+
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -35,6 +26,15 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.client.config.ConsumerConfig;
+import org.apache.tubemq.client.consumer.ConsumeOffsetInfo;
+import org.apache.tubemq.client.consumer.ConsumerResult;
+import org.apache.tubemq.client.consumer.PullMessageConsumer;
+import org.apache.tubemq.client.exception.TubeClientException;
+import org.apache.tubemq.client.factory.MessageSessionFactory;
+import org.apache.tubemq.client.factory.TubeSingleSessionFactory;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-example/src/main/java/com/tencent/tubemq/example/MsgRecvStats.java b/tubemq-example/src/main/java/org/apache/tubemq/example/MsgRecvStats.java
similarity index 97%
rename from tubemq-example/src/main/java/com/tencent/tubemq/example/MsgRecvStats.java
rename to tubemq-example/src/main/java/org/apache/tubemq/example/MsgRecvStats.java
index 60b9b69..db16e5c 100644
--- a/tubemq-example/src/main/java/com/tencent/tubemq/example/MsgRecvStats.java
+++ b/tubemq-example/src/main/java/org/apache/tubemq/example/MsgRecvStats.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.example;
+package org.apache.tubemq.example;
 
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/pom.xml b/tubemq-server/pom.xml
index 9a24f11..c1190c9 100644
--- a/tubemq-server/pom.xml
+++ b/tubemq-server/pom.xml
@@ -22,7 +22,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>tubemq</artifactId>
-        <groupId>com.tencent.tubemq</groupId>
+        <groupId>org.apache.tubemq</groupId>
         <version>0.3.0-incubating-SNAPSHOT</version>
     </parent>
     <artifactId>tubemq-server</artifactId>
@@ -105,15 +105,15 @@
 
     <dependencies>
         <dependency>
-            <groupId>com.tencent.tubemq</groupId>
+            <groupId>org.apache.tubemq</groupId>
             <artifactId>tubemq-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.tencent.tubemq</groupId>
+            <groupId>org.apache.tubemq</groupId>
             <artifactId>tubemq-client</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.tencent.tubemq</groupId>
+            <groupId>org.apache.tubemq</groupId>
             <artifactId>tubemq-example</artifactId>
         </dependency>
         <dependency>
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/Server.java b/tubemq-server/src/main/java/org/apache/tubemq/server/Server.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/Server.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/Server.java
index a8b2aba..933c128 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/Server.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/Server.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server;
+package org.apache.tubemq.server;
 
 
 public interface Server {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/Stoppable.java b/tubemq-server/src/main/java/org/apache/tubemq/server/Stoppable.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/Stoppable.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/Stoppable.java
index faa9ceb..4bbb52a 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/Stoppable.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/Stoppable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server;
+package org.apache.tubemq.server;
 
 public interface Stoppable {
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/BrokerConfig.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/BrokerConfig.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/BrokerConfig.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/BrokerConfig.java
index 63962de..19ee59f 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/BrokerConfig.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/BrokerConfig.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker;
+package org.apache.tubemq.server.broker;
 
 import static java.lang.Math.abs;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.config.TLSConfig;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.fileconfig.AbstractFileConfig;
-import com.tencent.tubemq.server.common.fileconfig.ZKConfig;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.lang.builder.ToStringStyle;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.config.TLSConfig;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.fileconfig.AbstractFileConfig;
+import org.apache.tubemq.server.common.fileconfig.ZKConfig;
 import org.ini4j.Ini;
 import org.ini4j.Profile.Section;
 import org.slf4j.Logger;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/BrokerServiceServer.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/BrokerServiceServer.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/BrokerServiceServer.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/BrokerServiceServer.java
index 4f1986b..413c2bf 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/BrokerServiceServer.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/BrokerServiceServer.java
@@ -15,56 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker;
+package org.apache.tubemq.server.broker;
 
-import com.tencent.tubemq.corebase.Message;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.config.TLSConfig;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.CommitOffsetRequestC2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.CommitOffsetResponseB2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.GetMessageRequestC2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.GetMessageResponseB2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.HeartBeatRequestC2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.HeartBeatResponseB2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.RegisterRequestC2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.RegisterResponseB2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.SendMessageRequestP2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.SendMessageResponseB2P;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.TransferedMessage;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.CheckSum;
-import com.tencent.tubemq.corebase.utils.DataConverterUtil;
-import com.tencent.tubemq.corebase.utils.ServiceStatusHolder;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.service.BrokerReadService;
-import com.tencent.tubemq.corerpc.service.BrokerWriteService;
-import com.tencent.tubemq.server.Server;
-import com.tencent.tubemq.server.broker.metadata.MetadataManage;
-import com.tencent.tubemq.server.broker.msgstore.MessageStore;
-import com.tencent.tubemq.server.broker.msgstore.MessageStoreManager;
-import com.tencent.tubemq.server.broker.msgstore.disk.GetMessageResult;
-import com.tencent.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
-import com.tencent.tubemq.server.broker.offset.OffsetService;
-import com.tencent.tubemq.server.broker.stats.CountService;
-import com.tencent.tubemq.server.broker.stats.GroupCountService;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.common.aaaserver.CertificateBrokerHandler;
-import com.tencent.tubemq.server.common.aaaserver.CertifiedResult;
-import com.tencent.tubemq.server.common.exception.HeartbeatException;
-import com.tencent.tubemq.server.common.heartbeat.HeartbeatManager;
-import com.tencent.tubemq.server.common.heartbeat.TimeoutInfo;
-import com.tencent.tubemq.server.common.heartbeat.TimeoutListener;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorageInfo;
-import com.tencent.tubemq.server.common.paramcheck.PBParameterUtils;
-import com.tencent.tubemq.server.common.paramcheck.ParamCheckResult;
-import com.tencent.tubemq.server.common.utils.IdWorker;
-import com.tencent.tubemq.server.common.utils.RowLock;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -75,6 +27,54 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.corebase.Message;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.config.TLSConfig;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.CommitOffsetRequestC2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.CommitOffsetResponseB2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.GetMessageRequestC2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.GetMessageResponseB2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.HeartBeatRequestC2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.HeartBeatResponseB2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.RegisterRequestC2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.RegisterResponseB2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.SendMessageRequestP2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.SendMessageResponseB2P;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.TransferedMessage;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.CheckSum;
+import org.apache.tubemq.corebase.utils.DataConverterUtil;
+import org.apache.tubemq.corebase.utils.ServiceStatusHolder;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.service.BrokerReadService;
+import org.apache.tubemq.corerpc.service.BrokerWriteService;
+import org.apache.tubemq.server.Server;
+import org.apache.tubemq.server.broker.metadata.MetadataManage;
+import org.apache.tubemq.server.broker.msgstore.MessageStore;
+import org.apache.tubemq.server.broker.msgstore.MessageStoreManager;
+import org.apache.tubemq.server.broker.msgstore.disk.GetMessageResult;
+import org.apache.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
+import org.apache.tubemq.server.broker.offset.OffsetService;
+import org.apache.tubemq.server.broker.stats.CountService;
+import org.apache.tubemq.server.broker.stats.GroupCountService;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.common.aaaserver.CertificateBrokerHandler;
+import org.apache.tubemq.server.common.aaaserver.CertifiedResult;
+import org.apache.tubemq.server.common.exception.HeartbeatException;
+import org.apache.tubemq.server.common.heartbeat.HeartbeatManager;
+import org.apache.tubemq.server.common.heartbeat.TimeoutInfo;
+import org.apache.tubemq.server.common.heartbeat.TimeoutListener;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorageInfo;
+import org.apache.tubemq.server.common.paramcheck.PBParameterUtils;
+import org.apache.tubemq.server.common.paramcheck.ParamCheckResult;
+import org.apache.tubemq.server.common.utils.IdWorker;
+import org.apache.tubemq.server.common.utils.RowLock;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/TubeBroker.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/TubeBroker.java
similarity index 93%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/TubeBroker.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/TubeBroker.java
index 02f38dc..1c51c67 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/TubeBroker.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/TubeBroker.java
@@ -15,38 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker;
+package org.apache.tubemq.server.broker;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.aaaclient.ClientAuthenticateHandler;
-import com.tencent.tubemq.corebase.aaaclient.SimpleClientAuthenticateHandler;
-import com.tencent.tubemq.corebase.cluster.MasterInfo;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestB2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestB2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestB2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2B;
-import com.tencent.tubemq.corebase.utils.ServiceStatusHolder;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.netty.NettyClientFactory;
-import com.tencent.tubemq.corerpc.service.MasterService;
-import com.tencent.tubemq.server.Stoppable;
-import com.tencent.tubemq.server.broker.exception.StartupException;
-import com.tencent.tubemq.server.broker.metadata.BrokerMetadataManage;
-import com.tencent.tubemq.server.broker.metadata.MetadataManage;
-import com.tencent.tubemq.server.broker.msgstore.MessageStoreManager;
-import com.tencent.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
-import com.tencent.tubemq.server.broker.offset.DefaultOffsetManager;
-import com.tencent.tubemq.server.broker.offset.OffsetService;
-import com.tencent.tubemq.server.broker.utils.BrokerSamplePrint;
-import com.tencent.tubemq.server.broker.web.WebServer;
-import com.tencent.tubemq.server.common.TubeServerVersion;
-import com.tencent.tubemq.server.common.aaaserver.SimpleCertificateBrokerHandler;
-import com.tencent.tubemq.server.common.utils.Sleeper;
 import java.util.List;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -55,6 +25,36 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.log4j.LogManager;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.aaaclient.ClientAuthenticateHandler;
+import org.apache.tubemq.corebase.aaaclient.SimpleClientAuthenticateHandler;
+import org.apache.tubemq.corebase.cluster.MasterInfo;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestB2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestB2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestB2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2B;
+import org.apache.tubemq.corebase.utils.ServiceStatusHolder;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.netty.NettyClientFactory;
+import org.apache.tubemq.corerpc.service.MasterService;
+import org.apache.tubemq.server.Stoppable;
+import org.apache.tubemq.server.broker.exception.StartupException;
+import org.apache.tubemq.server.broker.metadata.BrokerMetadataManage;
+import org.apache.tubemq.server.broker.metadata.MetadataManage;
+import org.apache.tubemq.server.broker.msgstore.MessageStoreManager;
+import org.apache.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
+import org.apache.tubemq.server.broker.offset.DefaultOffsetManager;
+import org.apache.tubemq.server.broker.offset.OffsetService;
+import org.apache.tubemq.server.broker.utils.BrokerSamplePrint;
+import org.apache.tubemq.server.broker.web.WebServer;
+import org.apache.tubemq.server.common.TubeServerVersion;
+import org.apache.tubemq.server.common.aaaserver.SimpleCertificateBrokerHandler;
+import org.apache.tubemq.server.common.utils.Sleeper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/exception/OffsetStoreException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/exception/OffsetStoreException.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/exception/OffsetStoreException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/exception/OffsetStoreException.java
index fdf1aff..daac3c2 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/exception/OffsetStoreException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/exception/OffsetStoreException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.exception;
+package org.apache.tubemq.server.broker.exception;
 
 /***
  * Save offset occur error throw this Exception.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/exception/StartupException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/exception/StartupException.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/exception/StartupException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/exception/StartupException.java
index 8596ca4..05da40b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/exception/StartupException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/exception/StartupException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.exception;
+package org.apache.tubemq.server.broker.exception;
 
 /***
  * Service startup occur error throw this Exception. eg: startup config parameters illegal error.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/BrokerDefMetadata.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/BrokerDefMetadata.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/BrokerDefMetadata.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/BrokerDefMetadata.java
index 43d5f08..bae5ea1 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/BrokerDefMetadata.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/BrokerDefMetadata.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.metadata;
+package org.apache.tubemq.server.broker.metadata;
 
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 /***
  * Default metadata for broker, it mainly contains topic default config(partitions count, delete policy...).
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/BrokerMetadataManage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/BrokerMetadataManage.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/BrokerMetadataManage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/BrokerMetadataManage.java
index ee63ecd..bc8f85a 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/BrokerMetadataManage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/BrokerMetadataManage.java
@@ -15,11 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.metadata;
+package org.apache.tubemq.server.broker.metadata;
 
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TStatusConstants;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.util.ArrayList;
@@ -27,6 +24,9 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TStatusConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/MetadataManage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/MetadataManage.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/MetadataManage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/MetadataManage.java
index c13b765..ab423b3 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/MetadataManage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/MetadataManage.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.metadata;
+package org.apache.tubemq.server.broker.metadata;
 
 
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
 import java.beans.PropertyChangeListener;
 import java.util.List;
 import java.util.Map;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
 
 /***
  * Metadata's management interface.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/TopicMetadata.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/TopicMetadata.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/TopicMetadata.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/TopicMetadata.java
index 079a614..f541743 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/metadata/TopicMetadata.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/metadata/TopicMetadata.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.metadata;
+package org.apache.tubemq.server.broker.metadata;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TStatusConstants;
 
 /***
  * Topic's metadata. Contains topic name, partitions count, etc.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/MessageStore.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/MessageStore.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/MessageStore.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/MessageStore.java
index ad57a9d..229644f 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/MessageStore.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/MessageStore.java
@@ -15,24 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore;
-
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.metadata.TopicMetadata;
-import com.tencent.tubemq.server.broker.msgstore.disk.GetMessageResult;
-import com.tencent.tubemq.server.broker.msgstore.disk.MsgFileStatisInfo;
-import com.tencent.tubemq.server.broker.msgstore.disk.MsgFileStore;
-import com.tencent.tubemq.server.broker.msgstore.disk.RecordView;
-import com.tencent.tubemq.server.broker.msgstore.mem.GetCacheMsgResult;
-import com.tencent.tubemq.server.broker.msgstore.mem.MsgMemStatisInfo;
-import com.tencent.tubemq.server.broker.msgstore.mem.MsgMemStore;
-import com.tencent.tubemq.server.broker.msgstore.ssd.SSDSegFound;
-import com.tencent.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
-import com.tencent.tubemq.server.broker.stats.CountItem;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
+package org.apache.tubemq.server.broker.msgstore;
+
 import java.io.Closeable;
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -48,6 +32,22 @@ import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.metadata.TopicMetadata;
+import org.apache.tubemq.server.broker.msgstore.disk.GetMessageResult;
+import org.apache.tubemq.server.broker.msgstore.disk.MsgFileStatisInfo;
+import org.apache.tubemq.server.broker.msgstore.disk.MsgFileStore;
+import org.apache.tubemq.server.broker.msgstore.disk.RecordView;
+import org.apache.tubemq.server.broker.msgstore.mem.GetCacheMsgResult;
+import org.apache.tubemq.server.broker.msgstore.mem.MsgMemStatisInfo;
+import org.apache.tubemq.server.broker.msgstore.mem.MsgMemStore;
+import org.apache.tubemq.server.broker.msgstore.ssd.SSDSegFound;
+import org.apache.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
+import org.apache.tubemq.server.broker.stats.CountItem;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/MessageStoreManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/MessageStoreManager.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/MessageStoreManager.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/MessageStoreManager.java
index 74b5dca..c20cc2d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/MessageStoreManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/MessageStoreManager.java
@@ -15,23 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore;
-
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.TubeBroker;
-import com.tencent.tubemq.server.broker.exception.StartupException;
-import com.tencent.tubemq.server.broker.metadata.MetadataManage;
-import com.tencent.tubemq.server.broker.metadata.TopicMetadata;
-import com.tencent.tubemq.server.broker.msgstore.disk.GetMessageResult;
-import com.tencent.tubemq.server.broker.msgstore.ssd.MsgSSDStoreManager;
-import com.tencent.tubemq.server.broker.msgstore.ssd.SSDSegFound;
-import com.tencent.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.common.TStatusConstants;
+package org.apache.tubemq.server.broker.msgstore;
+
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;
@@ -56,6 +41,21 @@ import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.TubeBroker;
+import org.apache.tubemq.server.broker.exception.StartupException;
+import org.apache.tubemq.server.broker.metadata.MetadataManage;
+import org.apache.tubemq.server.broker.metadata.TopicMetadata;
+import org.apache.tubemq.server.broker.msgstore.disk.GetMessageResult;
+import org.apache.tubemq.server.broker.msgstore.ssd.MsgSSDStoreManager;
+import org.apache.tubemq.server.broker.msgstore.ssd.SSDSegFound;
+import org.apache.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.common.TStatusConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/StoreService.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/StoreService.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/StoreService.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/StoreService.java
index c165aa9..d5f7f32 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/StoreService.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/StoreService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore;
+package org.apache.tubemq.server.broker.msgstore;
 
 
 import java.util.Collection;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileReadView.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileReadView.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileReadView.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileReadView.java
index 796df92..f4f6211 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileReadView.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileReadView.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegment.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegment.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegment.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegment.java
index e2356cd..d0f50e9 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegment.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegment.java
@@ -15,10 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
-import com.tencent.tubemq.corebase.utils.CheckSum;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
 import java.io.File;
 import java.io.IOException;
 import java.io.RandomAccessFile;
@@ -26,6 +24,8 @@ import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.utils.CheckSum;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentList.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentList.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentList.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentList.java
index 11b89e4..b03994c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentList.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentList.java
@@ -15,10 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -26,6 +24,8 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/GetMessageResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/GetMessageResult.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/GetMessageResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/GetMessageResult.java
index 67e4d51..304ff33 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/GetMessageResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/GetMessageResult.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker.TransferedMessage;
-import com.tencent.tubemq.server.broker.stats.CountItem;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker.TransferedMessage;
+import org.apache.tubemq.server.broker.stats.CountItem;
 
 /***
  * Broker's reply to Consumer's GetMessage request.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/MsgFileStatisInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/MsgFileStatisInfo.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/MsgFileStatisInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/MsgFileStatisInfo.java
index a9febeb..ff4679f 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/MsgFileStatisInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/MsgFileStatisInfo.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
-import com.tencent.tubemq.server.common.TServerConstants;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.server.common.TServerConstants;
 
 /***
  * Statistics of message file. Contains read, write, failed, etc.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/MsgFileStore.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/MsgFileStore.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/MsgFileStore.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/MsgFileStore.java
index b083347..faa0997 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/MsgFileStore.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/MsgFileStore.java
@@ -15,19 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.utils.ServiceStatusHolder;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.msgstore.MessageStore;
-import com.tencent.tubemq.server.broker.msgstore.ssd.SSDSegFound;
-import com.tencent.tubemq.server.broker.stats.CountItem;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.broker.utils.DiskSamplePrint;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.utils.FileUtil;
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
@@ -40,6 +29,17 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReentrantLock;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.utils.ServiceStatusHolder;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.msgstore.MessageStore;
+import org.apache.tubemq.server.broker.msgstore.ssd.SSDSegFound;
+import org.apache.tubemq.server.broker.stats.CountItem;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.broker.utils.DiskSamplePrint;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.utils.FileUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/RecordView.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/RecordView.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/RecordView.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/RecordView.java
index 21e879b..96e01c7 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/RecordView.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/RecordView.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/Segment.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/Segment.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/Segment.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/Segment.java
index 7d857eb..f81697c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/Segment.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/Segment.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/SegmentList.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/SegmentList.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/SegmentList.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/SegmentList.java
index c8a9cd1..188ad98 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/SegmentList.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/SegmentList.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 import java.io.IOException;
 import java.util.List;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/SegmentType.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/SegmentType.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/SegmentType.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/SegmentType.java
index ca33b40..234e073 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/disk/SegmentType.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/disk/SegmentType.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 /***
  * Segment's type, data and index.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/GetCacheMsgResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/GetCacheMsgResult.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/GetCacheMsgResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/GetCacheMsgResult.java
index 3300a77..c02f5c5 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/GetCacheMsgResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/GetCacheMsgResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.mem;
+package org.apache.tubemq.server.broker.msgstore.mem;
 
 import java.nio.ByteBuffer;
 import java.util.List;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStatisInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStatisInfo.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStatisInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStatisInfo.java
index 77a263c..aa82495 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStatisInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStatisInfo.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.mem;
+package org.apache.tubemq.server.broker.msgstore.mem;
 
-import com.tencent.tubemq.server.common.TServerConstants;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.server.common.TServerConstants;
 
 /***
  * Statistics of message memory. Contains read, write, failed, etc. It's similar to MsgFileStatisInfo.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStore.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStore.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStore.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStore.java
index 7d2f167..07cb14b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStore.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStore.java
@@ -15,13 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.mem;
+package org.apache.tubemq.server.broker.msgstore.mem;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.msgstore.disk.MsgFileStore;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
 import java.io.Closeable;
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -31,6 +26,11 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantLock;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.msgstore.disk.MsgFileStore;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import sun.nio.ch.DirectBuffer;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/MsgSSDSegment.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/MsgSSDSegment.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/MsgSSDSegment.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/MsgSSDSegment.java
index d73f239..1e88f59 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/MsgSSDSegment.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/MsgSSDSegment.java
@@ -15,18 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.ssd;
+package org.apache.tubemq.server.broker.msgstore.ssd;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.server.broker.msgstore.disk.FileSegment;
-import com.tencent.tubemq.server.broker.msgstore.disk.GetMessageResult;
-import com.tencent.tubemq.server.broker.msgstore.disk.RecordView;
-import com.tencent.tubemq.server.broker.msgstore.disk.Segment;
-import com.tencent.tubemq.server.broker.msgstore.disk.SegmentType;
-import com.tencent.tubemq.server.broker.stats.CountItem;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
@@ -37,6 +27,16 @@ import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.server.broker.msgstore.disk.FileSegment;
+import org.apache.tubemq.server.broker.msgstore.disk.GetMessageResult;
+import org.apache.tubemq.server.broker.msgstore.disk.RecordView;
+import org.apache.tubemq.server.broker.msgstore.disk.Segment;
+import org.apache.tubemq.server.broker.msgstore.disk.SegmentType;
+import org.apache.tubemq.server.broker.stats.CountItem;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.common.TServerConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/MsgSSDStoreManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/MsgSSDStoreManager.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/MsgSSDStoreManager.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/MsgSSDStoreManager.java
index 49a783b..717276e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/MsgSSDStoreManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/MsgSSDStoreManager.java
@@ -15,21 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.ssd;
+package org.apache.tubemq.server.broker.msgstore.ssd;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.utils.ConcurrentHashSet;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.exception.StartupException;
-import com.tencent.tubemq.server.broker.metadata.MetadataManage;
-import com.tencent.tubemq.server.broker.metadata.TopicMetadata;
-import com.tencent.tubemq.server.broker.msgstore.MessageStoreManager;
-import com.tencent.tubemq.server.broker.msgstore.disk.GetMessageResult;
-import com.tencent.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.common.utils.FileUtil;
 import java.io.Closeable;
 import java.io.File;
 import java.io.FileInputStream;
@@ -50,6 +37,19 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.utils.ConcurrentHashSet;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.exception.StartupException;
+import org.apache.tubemq.server.broker.metadata.MetadataManage;
+import org.apache.tubemq.server.broker.metadata.TopicMetadata;
+import org.apache.tubemq.server.broker.msgstore.MessageStoreManager;
+import org.apache.tubemq.server.broker.msgstore.disk.GetMessageResult;
+import org.apache.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.common.utils.FileUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegEvent.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegEvent.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegEvent.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegEvent.java
index fcbac4d..1045d1e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegEvent.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegEvent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.ssd;
+package org.apache.tubemq.server.broker.msgstore.ssd;
 
 /***
  * Transfer files on disk to ssd event.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegFound.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegFound.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegFound.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegFound.java
index 9e4cc69..0e6d61b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegFound.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegFound.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.ssd;
+package org.apache.tubemq.server.broker.msgstore.ssd;
 
 import java.io.File;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegIndex.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegIndex.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegIndex.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegIndex.java
index 21d4911..a731596 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDSegIndex.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDSegIndex.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.ssd;
+package org.apache.tubemq.server.broker.msgstore.ssd;
 
 /**
  * SSD segment index.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDVisitInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDVisitInfo.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDVisitInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDVisitInfo.java
index e789bb3..6d06e42 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/msgstore/ssd/SSDVisitInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/msgstore/ssd/SSDVisitInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.ssd;
+package org.apache.tubemq.server.broker.msgstore.ssd;
 
 /***
  * SSD visit record.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java
index bd9a3f1..17f154c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.nodeinfo;
-
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.policies.FlowCtrlResult;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
-import com.tencent.tubemq.corebase.policies.SSDCtrlResult;
-import com.tencent.tubemq.server.broker.msgstore.MessageStoreManager;
-import com.tencent.tubemq.server.common.TServerConstants;
+package org.apache.tubemq.server.broker.nodeinfo;
+
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.policies.FlowCtrlResult;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.policies.SSDCtrlResult;
+import org.apache.tubemq.server.broker.msgstore.MessageStoreManager;
+import org.apache.tubemq.server.common.TServerConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/offset/DefaultOffsetManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/offset/DefaultOffsetManager.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/offset/DefaultOffsetManager.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/offset/DefaultOffsetManager.java
index 04bb0ac..5faac3b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/offset/DefaultOffsetManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/offset/DefaultOffsetManager.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.offset;
+package org.apache.tubemq.server.broker.offset;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.daemon.AbstractDaemonService;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.msgstore.MessageStore;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorage;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorageInfo;
-import com.tencent.tubemq.server.common.offsetstorage.ZkOffsetStorage;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.daemon.AbstractDaemonService;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.msgstore.MessageStore;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorage;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorageInfo;
+import org.apache.tubemq.server.common.offsetstorage.ZkOffsetStorage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/offset/OffsetService.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/offset/OffsetService.java
similarity index 91%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/offset/OffsetService.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/offset/OffsetService.java
index fcc543f..aa86ed1 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/offset/OffsetService.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/offset/OffsetService.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.offset;
+package org.apache.tubemq.server.broker.offset;
 
-import com.tencent.tubemq.server.broker.msgstore.MessageStore;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorageInfo;
+import org.apache.tubemq.server.broker.msgstore.MessageStore;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorageInfo;
 
 /***
  * Offset manager service interface.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/CountItem.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/CountItem.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/CountItem.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/CountItem.java
index 3a04d71..0bbf5f4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/CountItem.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/CountItem.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.stats;
+package org.apache.tubemq.server.broker.stats;
 
 import java.util.concurrent.atomic.AtomicLong;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/CountService.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/CountService.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/CountService.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/CountService.java
index 3a591de..34212e9 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/CountService.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/CountService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.stats;
+package org.apache.tubemq.server.broker.stats;
 
 import java.util.Map;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/GroupCountService.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/GroupCountService.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/GroupCountService.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/GroupCountService.java
index d68be8a..1f863d4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/stats/GroupCountService.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/stats/GroupCountService.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.stats;
+package org.apache.tubemq.server.broker.stats;
 
-import com.tencent.tubemq.corebase.daemon.AbstractDaemonService;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.daemon.AbstractDaemonService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/BrokerSamplePrint.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/BrokerSamplePrint.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/BrokerSamplePrint.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/BrokerSamplePrint.java
index d17d98a..d0c32a1 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/BrokerSamplePrint.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/BrokerSamplePrint.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.utils;
+package org.apache.tubemq.server.broker.utils;
 
-import com.tencent.tubemq.corebase.utils.AbstractSamplePrint;
 import java.io.IOException;
+import org.apache.tubemq.corebase.utils.AbstractSamplePrint;
 import org.slf4j.Logger;
 
 /***
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/DataStoreUtils.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/DataStoreUtils.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/DataStoreUtils.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/DataStoreUtils.java
index bcf6cc1..13db283 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/DataStoreUtils.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/DataStoreUtils.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.utils;
+package org.apache.tubemq.server.broker.utils;
 
 import com.google.protobuf.ByteString;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.utils.MessageFlagUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.stats.CountItem;
 import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.text.NumberFormat;
 import java.util.HashMap;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.utils.MessageFlagUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.stats.CountItem;
 
 /***
  * Storage util. Used for data and index file storage format.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/DiskSamplePrint.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/DiskSamplePrint.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/DiskSamplePrint.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/DiskSamplePrint.java
index d0f10f2..a1c29c0 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/utils/DiskSamplePrint.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/utils/DiskSamplePrint.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.utils;
+package org.apache.tubemq.server.broker.utils;
 
-import com.tencent.tubemq.corebase.utils.AbstractSamplePrint;
 import java.io.IOException;
+import org.apache.tubemq.corebase.utils.AbstractSamplePrint;
 import org.slf4j.Logger;
 
 /***
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/web/BrokerAdminServlet.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/web/BrokerAdminServlet.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
index 137087b..df557e6 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/web/BrokerAdminServlet.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
@@ -15,17 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.web;
+package org.apache.tubemq.server.broker.web;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.TubeBroker;
-import com.tencent.tubemq.server.broker.msgstore.MessageStore;
-import com.tencent.tubemq.server.broker.msgstore.MessageStoreManager;
-import com.tencent.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
-import com.tencent.tubemq.server.broker.offset.OffsetService;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.List;
@@ -37,6 +28,15 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.TubeBroker;
+import org.apache.tubemq.server.broker.msgstore.MessageStore;
+import org.apache.tubemq.server.broker.msgstore.MessageStoreManager;
+import org.apache.tubemq.server.broker.nodeinfo.ConsumerNodeInfo;
+import org.apache.tubemq.server.broker.offset.OffsetService;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 /***
  * Broker's web servlet. Used for admin operation, like query consumer's status etc.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/web/WebServer.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/WebServer.java
similarity index 93%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/broker/web/WebServer.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/WebServer.java
index b482ab6..70d51d8 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/broker/web/WebServer.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/WebServer.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.web;
+package org.apache.tubemq.server.broker.web;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import com.tencent.tubemq.server.Server;
-import com.tencent.tubemq.server.broker.TubeBroker;
+import org.apache.tubemq.server.Server;
+import org.apache.tubemq.server.broker.TubeBroker;
 import org.mortbay.jetty.servlet.ServletHolder;
 
 /***
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/TServerConstants.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/TServerConstants.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/TServerConstants.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/TServerConstants.java
index 7a79527..3691154 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/TServerConstants.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/TServerConstants.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common;
+package org.apache.tubemq.server.common;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TBaseConstants;
 
 
 public final class TServerConstants {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/TStatusConstants.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/TStatusConstants.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/TStatusConstants.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/TStatusConstants.java
index a455e18..1c60a36 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/TStatusConstants.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/TStatusConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common;
+package org.apache.tubemq.server.common;
 
 
 public class TStatusConstants {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertificateBrokerHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertificateBrokerHandler.java
similarity index 90%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertificateBrokerHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertificateBrokerHandler.java
index 9a78991..6faa7de 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertificateBrokerHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertificateBrokerHandler.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.aaaserver;
+package org.apache.tubemq.server.common.aaaserver;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
 import java.util.Set;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
 
 
 public interface CertificateBrokerHandler {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertificateMasterHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertificateMasterHandler.java
similarity index 92%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertificateMasterHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertificateMasterHandler.java
index c44d241..b1b78a8 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertificateMasterHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertificateMasterHandler.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.aaaserver;
+package org.apache.tubemq.server.common.aaaserver;
 
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
 
 
 public interface CertificateMasterHandler {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertifiedResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertifiedResult.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertifiedResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertifiedResult.java
index 2c7255d..479d0dc 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/CertifiedResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/CertifiedResult.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.aaaserver;
+package org.apache.tubemq.server.common.aaaserver;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
 
 
 public class CertifiedResult {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java
index c89cf09..e69c070 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/SimpleCertificateBrokerHandler.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.aaaserver;
-
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientBroker;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.TubeBroker;
+package org.apache.tubemq.server.common.aaaserver;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientBroker;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.TubeBroker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/SimpleCertificateMasterHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/SimpleCertificateMasterHandler.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/SimpleCertificateMasterHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/SimpleCertificateMasterHandler.java
index 09b28ea..085e393 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/aaaserver/SimpleCertificateMasterHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/aaaserver/SimpleCertificateMasterHandler.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.aaaserver;
+package org.apache.tubemq.server.common.aaaserver;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.MasterConfig;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.MasterConfig;
 
 
 public class SimpleCertificateMasterHandler implements CertificateMasterHandler {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/exception/HeartbeatException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/exception/HeartbeatException.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/exception/HeartbeatException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/exception/HeartbeatException.java
index 27897bc..482d02c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/exception/HeartbeatException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/exception/HeartbeatException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.exception;
+package org.apache.tubemq.server.common.exception;
 
 public class HeartbeatException extends Exception {
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/exception/IllegalConfigException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/exception/IllegalConfigException.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/exception/IllegalConfigException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/exception/IllegalConfigException.java
index 596194e..45ce2f8 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/exception/IllegalConfigException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/exception/IllegalConfigException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.exception;
+package org.apache.tubemq.server.common.exception;
 
 public class IllegalConfigException extends Exception {
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/AbstractFileConfig.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/AbstractFileConfig.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java
index 5e1dff7..5293652 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/AbstractFileConfig.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/AbstractFileConfig.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.fileconfig;
+package org.apache.tubemq.server.common.fileconfig;
 
-import com.tencent.tubemq.corebase.config.TLSConfig;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.exception.StartupException;
 import java.io.File;
 import java.io.IOException;
 import java.util.Set;
 import org.apache.commons.io.FileUtils;
+import org.apache.tubemq.corebase.config.TLSConfig;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.exception.StartupException;
 import org.ini4j.Ini;
 import org.ini4j.Profile;
 import org.slf4j.Logger;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/BDBConfig.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/BDBConfig.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/BDBConfig.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/BDBConfig.java
index 0075aee..fb36528 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/BDBConfig.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/BDBConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.fileconfig;
+package org.apache.tubemq.server.common.fileconfig;
 
 import com.sleepycat.je.Durability;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/ZKConfig.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/ZKConfig.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/ZKConfig.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/ZKConfig.java
index e3fe1af..03c685c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/fileconfig/ZKConfig.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/fileconfig/ZKConfig.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.fileconfig;
+package org.apache.tubemq.server.common.fileconfig;
 
-import com.tencent.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TServerConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/HeartbeatManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/HeartbeatManager.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/HeartbeatManager.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/HeartbeatManager.java
index a6675bf..41fab61 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/HeartbeatManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/HeartbeatManager.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.heartbeat;
+package org.apache.tubemq.server.common.heartbeat;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.exception.HeartbeatException;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.exception.HeartbeatException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/TimeoutInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/TimeoutInfo.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/TimeoutInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/TimeoutInfo.java
index 7b74d15..87147e7 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/TimeoutInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/TimeoutInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.heartbeat;
+package org.apache.tubemq.server.common.heartbeat;
 
 public class TimeoutInfo {
     private long timeoutTime = 0L;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/TimeoutListener.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/TimeoutListener.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/TimeoutListener.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/TimeoutListener.java
index 2859fd6..20aabbc 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/heartbeat/TimeoutListener.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/heartbeat/TimeoutListener.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.heartbeat;
+package org.apache.tubemq.server.common.heartbeat;
 
 
 public interface TimeoutListener {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/OffsetStorage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/OffsetStorage.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/OffsetStorage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/OffsetStorage.java
index e8db2ac..470aafd 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/OffsetStorage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/OffsetStorage.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage;
+package org.apache.tubemq.server.common.offsetstorage;
 
 import java.util.Collection;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/OffsetStorageInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/OffsetStorageInfo.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/OffsetStorageInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/OffsetStorageInfo.java
index c8ff7a6..a2170b7 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/OffsetStorageInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/OffsetStorageInfo.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage;
+package org.apache.tubemq.server.common.offsetstorage;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
 import java.io.Serializable;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
 
 
 public class OffsetStorageInfo implements Serializable {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/ZkOffsetStorage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/ZkOffsetStorage.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/ZkOffsetStorage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/ZkOffsetStorage.java
index 9dad7cc..72d4ee5 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/ZkOffsetStorage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/ZkOffsetStorage.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage;
+package org.apache.tubemq.server.common.offsetstorage;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.server.broker.exception.OffsetStoreException;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.fileconfig.ZKConfig;
-import com.tencent.tubemq.server.common.offsetstorage.zookeeper.ZKUtil;
-import com.tencent.tubemq.server.common.offsetstorage.zookeeper.ZooKeeperWatcher;
 import java.util.Collection;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.server.broker.exception.OffsetStoreException;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.fileconfig.ZKConfig;
+import org.apache.tubemq.server.common.offsetstorage.zookeeper.ZKUtil;
+import org.apache.tubemq.server.common.offsetstorage.zookeeper.ZooKeeperWatcher;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/Abortable.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/Abortable.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/Abortable.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/Abortable.java
index 5e0c129..f2aa9b2 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/Abortable.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/Abortable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
 /**
  * Interface to support the aborting of a given server or client.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RecoverableZooKeeper.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RecoverableZooKeeper.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RecoverableZooKeeper.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RecoverableZooKeeper.java
index 60d79fc..13e7008 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RecoverableZooKeeper.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RecoverableZooKeeper.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
-import com.tencent.tubemq.server.common.utils.Bytes;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.server.common.utils.Bytes;
 import org.apache.zookeeper.AsyncCallback;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RetryCounter.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RetryCounter.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RetryCounter.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RetryCounter.java
index 3393396..a8afcb6 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RetryCounter.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RetryCounter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
 import java.util.concurrent.TimeUnit;
 import org.slf4j.Logger;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RetryCounterFactory.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RetryCounterFactory.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RetryCounterFactory.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RetryCounterFactory.java
index 46a3632..76aa983 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/RetryCounterFactory.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/RetryCounterFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
 import java.util.concurrent.TimeUnit;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZKUtil.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZKUtil.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZKUtil.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZKUtil.java
index 20f70fb..d2f1cdf 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZKUtil.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZKUtil.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.server.common.fileconfig.ZKConfig;
 import java.io.IOException;
 import java.util.ArrayList;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.server.common.fileconfig.ZKConfig;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.KeeperException.NoNodeException;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperConnectionException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperConnectionException.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperConnectionException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperConnectionException.java
index 8bb63a4..8f322b6 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperConnectionException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperConnectionException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
 import java.io.IOException;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperListener.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperListener.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperListener.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperListener.java
index a7bdd52..3ce8799 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperListener.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperListener.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
 /**
  * Base class for internal listeners of ZooKeeper events.
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperWatcher.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperWatcher.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperWatcher.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperWatcher.java
index f4f28e1..4d62e4c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperWatcher.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/offsetstorage/zookeeper/ZooKeeperWatcher.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.offsetstorage.zookeeper;
+package org.apache.tubemq.server.common.offsetstorage.zookeeper;
 
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.server.common.fileconfig.ZKConfig;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CountDownLatch;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.server.common.fileconfig.ZKConfig;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/paramcheck/PBParameterUtils.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/paramcheck/PBParameterUtils.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/paramcheck/PBParameterUtils.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/paramcheck/PBParameterUtils.java
index 6c9dad0..f595be9 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/paramcheck/PBParameterUtils.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/paramcheck/PBParameterUtils.java
@@ -15,21 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.paramcheck;
+package org.apache.tubemq.server.common.paramcheck;
 
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.metadata.MetadataManage;
-import com.tencent.tubemq.server.broker.metadata.TopicMetadata;
-import com.tencent.tubemq.server.master.MasterConfig;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -37,6 +25,18 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.metadata.MetadataManage;
+import org.apache.tubemq.server.broker.metadata.TopicMetadata;
+import org.apache.tubemq.server.master.MasterConfig;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/paramcheck/ParamCheckResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/paramcheck/ParamCheckResult.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/paramcheck/ParamCheckResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/paramcheck/ParamCheckResult.java
index 0c3c653..ca29bf1 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/paramcheck/ParamCheckResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/paramcheck/ParamCheckResult.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.paramcheck;
+package org.apache.tubemq.server.common.paramcheck;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
 
 public class ParamCheckResult {
     public boolean result;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/Bytes.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/Bytes.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/Bytes.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/Bytes.java
index 493c318..dd442bc 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/Bytes.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/Bytes.java
@@ -15,14 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import java.lang.reflect.Field;
 import java.nio.ByteOrder;
 import java.nio.charset.StandardCharsets;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import sun.misc.Unsafe;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/FileUtil.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/FileUtil.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/FileUtil.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/FileUtil.java
index 461a9ab..00a3340 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/FileUtil.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/FileUtil.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/HasThread.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/HasThread.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/HasThread.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/HasThread.java
index eb8598a..ac0ed05 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/HasThread.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/HasThread.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import java.lang.Thread.UncaughtExceptionHandler;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/HashedBytes.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/HashedBytes.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/HashedBytes.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/HashedBytes.java
index bf458b1..ac74552 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/HashedBytes.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/HashedBytes.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import java.util.Arrays;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/IdWorker.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/IdWorker.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/IdWorker.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/IdWorker.java
index 603ee24..00e946d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/IdWorker.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/IdWorker.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 /**
  * 来自于twitter项目snowflake的id产生方案,全局唯一,时间有序
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/JVMClusterUtil.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/JVMClusterUtil.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/JVMClusterUtil.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/JVMClusterUtil.java
index 20cdd22..f7b59e8 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/JVMClusterUtil.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/JVMClusterUtil.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.TubeBroker;
-import com.tencent.tubemq.server.master.MasterConfig;
-import com.tencent.tubemq.server.master.TMaster;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.util.List;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.TubeBroker;
+import org.apache.tubemq.server.master.MasterConfig;
+import org.apache.tubemq.server.master.TMaster;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/RowLock.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/RowLock.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/RowLock.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/RowLock.java
index f0b8ad8..66c0817 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/RowLock.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/RowLock.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import java.io.IOException;
 import java.util.Random;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/Sleeper.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/Sleeper.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/Sleeper.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/Sleeper.java
index 074bc67..88fcc1c 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/Sleeper.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/Sleeper.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
-import com.tencent.tubemq.server.Stoppable;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.tubemq.server.Stoppable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/WebParameterUtils.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/WebParameterUtils.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java
index 303cb04..10fdb1e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/WebParameterUtils.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java
@@ -15,19 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.TypeReference;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.DateFormat;
@@ -38,6 +29,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
 
 
 public class WebParameterUtils {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/WritableComparator.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WritableComparator.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/WritableComparator.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WritableComparator.java
index 662cbb6..b098b0f 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/common/utils/WritableComparator.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WritableComparator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common.utils;
+package org.apache.tubemq.server.common.utils;
 
 import java.io.IOException;
 import java.util.HashMap;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/MasterConfig.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/MasterConfig.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/MasterConfig.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/MasterConfig.java
index 2cf6980..c30a7ee 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/MasterConfig.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/MasterConfig.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master;
-
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.config.TLSConfig;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.fileconfig.AbstractFileConfig;
-import com.tencent.tubemq.server.common.fileconfig.BDBConfig;
-import com.tencent.tubemq.server.common.fileconfig.ZKConfig;
+package org.apache.tubemq.server.master;
+
 import java.util.Set;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.config.TLSConfig;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.fileconfig.AbstractFileConfig;
+import org.apache.tubemq.server.common.fileconfig.BDBConfig;
+import org.apache.tubemq.server.common.fileconfig.ZKConfig;
 import org.ini4j.Ini;
 import org.ini4j.Profile;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/TMaster.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/TMaster.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/TMaster.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/TMaster.java
index dcc0cb2..82e7c85 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/TMaster.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/TMaster.java
@@ -15,87 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master;
+package org.apache.tubemq.server.master;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.balance.ConsumerEvent;
-import com.tencent.tubemq.corebase.balance.EventStatus;
-import com.tencent.tubemq.corebase.balance.EventType;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
-import com.tencent.tubemq.corebase.cluster.NodeAddrInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.ProducerInfo;
-import com.tencent.tubemq.corebase.cluster.SubscribeInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.config.TLSConfig;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestB2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestC2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestP2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseResponseM2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseResponseM2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.CloseResponseM2P;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.EnableBrokerFunInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.EventProto;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestB2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestC2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestP2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2P;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.MasterAuthorizedInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.MasterBrokerAuthorizedInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestB2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestC2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestP2M;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2B;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2C;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2P;
-import com.tencent.tubemq.corebase.utils.ConcurrentHashSet;
-import com.tencent.tubemq.corebase.utils.DataConverterUtil;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corebase.utils.ThreadUtils;
-import com.tencent.tubemq.corerpc.RpcConfig;
-import com.tencent.tubemq.corerpc.RpcConstants;
-import com.tencent.tubemq.corerpc.RpcServiceFactory;
-import com.tencent.tubemq.corerpc.exception.StandbyException;
-import com.tencent.tubemq.corerpc.service.MasterService;
-import com.tencent.tubemq.server.Stoppable;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.common.aaaserver.CertificateMasterHandler;
-import com.tencent.tubemq.server.common.aaaserver.CertifiedResult;
-import com.tencent.tubemq.server.common.aaaserver.SimpleCertificateMasterHandler;
-import com.tencent.tubemq.server.common.exception.HeartbeatException;
-import com.tencent.tubemq.server.common.heartbeat.HeartbeatManager;
-import com.tencent.tubemq.server.common.heartbeat.TimeoutInfo;
-import com.tencent.tubemq.server.common.heartbeat.TimeoutListener;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorage;
-import com.tencent.tubemq.server.common.offsetstorage.ZkOffsetStorage;
-import com.tencent.tubemq.server.common.paramcheck.PBParameterUtils;
-import com.tencent.tubemq.server.common.paramcheck.ParamCheckResult;
-import com.tencent.tubemq.server.common.utils.HasThread;
-import com.tencent.tubemq.server.common.utils.RowLock;
-import com.tencent.tubemq.server.common.utils.Sleeper;
-import com.tencent.tubemq.server.master.balance.DefaultLoadBalancer;
-import com.tencent.tubemq.server.master.balance.LoadBalancer;
-import com.tencent.tubemq.server.master.bdbstore.DefaultBdbStoreService;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TargetValidResult;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerEventManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodeproducer.ProducerInfoHolder;
-import com.tencent.tubemq.server.master.utils.Chore;
-import com.tencent.tubemq.server.master.utils.SimpleVisitTokenManage;
-import com.tencent.tubemq.server.master.web.WebServer;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -110,6 +31,85 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.commons.codec.binary.StringUtils;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.balance.ConsumerEvent;
+import org.apache.tubemq.corebase.balance.EventStatus;
+import org.apache.tubemq.corebase.balance.EventType;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
+import org.apache.tubemq.corebase.cluster.NodeAddrInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.ProducerInfo;
+import org.apache.tubemq.corebase.cluster.SubscribeInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.config.TLSConfig;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestB2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestC2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseRequestP2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseResponseM2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseResponseM2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.CloseResponseM2P;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.EnableBrokerFunInfo;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.EventProto;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestB2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestC2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartRequestP2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.HeartResponseM2P;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.MasterAuthorizedInfo;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.MasterBrokerAuthorizedInfo;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestB2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestC2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterRequestP2M;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2B;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2C;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster.RegisterResponseM2P;
+import org.apache.tubemq.corebase.utils.ConcurrentHashSet;
+import org.apache.tubemq.corebase.utils.DataConverterUtil;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corebase.utils.ThreadUtils;
+import org.apache.tubemq.corerpc.RpcConfig;
+import org.apache.tubemq.corerpc.RpcConstants;
+import org.apache.tubemq.corerpc.RpcServiceFactory;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.corerpc.service.MasterService;
+import org.apache.tubemq.server.Stoppable;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.common.aaaserver.CertificateMasterHandler;
+import org.apache.tubemq.server.common.aaaserver.CertifiedResult;
+import org.apache.tubemq.server.common.aaaserver.SimpleCertificateMasterHandler;
+import org.apache.tubemq.server.common.exception.HeartbeatException;
+import org.apache.tubemq.server.common.heartbeat.HeartbeatManager;
+import org.apache.tubemq.server.common.heartbeat.TimeoutInfo;
+import org.apache.tubemq.server.common.heartbeat.TimeoutListener;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorage;
+import org.apache.tubemq.server.common.offsetstorage.ZkOffsetStorage;
+import org.apache.tubemq.server.common.paramcheck.PBParameterUtils;
+import org.apache.tubemq.server.common.paramcheck.ParamCheckResult;
+import org.apache.tubemq.server.common.utils.HasThread;
+import org.apache.tubemq.server.common.utils.RowLock;
+import org.apache.tubemq.server.common.utils.Sleeper;
+import org.apache.tubemq.server.master.balance.DefaultLoadBalancer;
+import org.apache.tubemq.server.master.balance.LoadBalancer;
+import org.apache.tubemq.server.master.bdbstore.DefaultBdbStoreService;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TargetValidResult;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerEventManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodeproducer.ProducerInfoHolder;
+import org.apache.tubemq.server.master.utils.Chore;
+import org.apache.tubemq.server.master.utils.SimpleVisitTokenManage;
+import org.apache.tubemq.server.master.web.WebServer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/balance/DefaultLoadBalancer.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/balance/DefaultLoadBalancer.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java
index 955feea..f970025 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/balance/DefaultLoadBalancer.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/balance/DefaultLoadBalancer.java
@@ -15,22 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.balance;
+package org.apache.tubemq.server.master.balance;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorage;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorageInfo;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.NodeRebInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.RebProcessInfo;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -44,6 +30,20 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.concurrent.LinkedBlockingQueue;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorage;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorageInfo;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.NodeRebInfo;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.RebProcessInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/balance/LoadBalancer.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/balance/LoadBalancer.java
similarity index 84%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/balance/LoadBalancer.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/balance/LoadBalancer.java
index 51fe266..c1386d9 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/balance/LoadBalancer.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/balance/LoadBalancer.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.balance;
+package org.apache.tubemq.server.master.balance;
 
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.server.common.offsetstorage.OffsetStorage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
 import java.util.List;
 import java.util.Map;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.server.common.offsetstorage.OffsetStorage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
 
 
 public interface LoadBalancer {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/BdbStoreService.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/BdbStoreService.java
similarity index 83%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/BdbStoreService.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/BdbStoreService.java
index 6c6d7e6..7b264c7 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/BdbStoreService.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/BdbStoreService.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore;
-
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
+package org.apache.tubemq.server.master.bdbstore;
+
 import java.net.InetSocketAddress;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
 
 
 public interface BdbStoreService {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/DefaultBdbStoreService.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/DefaultBdbStoreService.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/DefaultBdbStoreService.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/DefaultBdbStoreService.java
index 372031a..b29b8ab 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/DefaultBdbStoreService.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/DefaultBdbStoreService.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore;
+package org.apache.tubemq.server.master.bdbstore;
 
 import com.sleepycat.je.DatabaseException;
 import com.sleepycat.je.Durability;
@@ -40,23 +40,6 @@ import com.sleepycat.persist.EntityCursor;
 import com.sleepycat.persist.EntityStore;
 import com.sleepycat.persist.PrimaryIndex;
 import com.sleepycat.persist.StoreConfig;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.Server;
-import com.tencent.tubemq.server.common.fileconfig.BDBConfig;
-import com.tencent.tubemq.server.master.MasterConfig;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
-import com.tencent.tubemq.server.master.utils.BdbStoreSamplePrint;
-import com.tencent.tubemq.server.master.web.model.ClusterGroupVO;
-import com.tencent.tubemq.server.master.web.model.ClusterNodeVO;
 import java.io.File;
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -69,6 +52,23 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.Server;
+import org.apache.tubemq.server.common.fileconfig.BDBConfig;
+import org.apache.tubemq.server.master.MasterConfig;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
+import org.apache.tubemq.server.master.utils.BdbStoreSamplePrint;
+import org.apache.tubemq.server.master.web.model.ClusterGroupVO;
+import org.apache.tubemq.server.master.web.model.ClusterNodeVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/MasterGroupStatus.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/MasterGroupStatus.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/MasterGroupStatus.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/MasterGroupStatus.java
index 3d2caeb..6902255 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/MasterGroupStatus.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/MasterGroupStatus.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore;
+package org.apache.tubemq.server.master.bdbstore;
 
 
 public class MasterGroupStatus {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/MasterNodeInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/MasterNodeInfo.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/MasterNodeInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/MasterNodeInfo.java
index 9f5accc..1736a1e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/MasterNodeInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/MasterNodeInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore;
+package org.apache.tubemq.server.master.bdbstore;
 
 
 public class MasterNodeInfo {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbBlackGroupEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBlackGroupEntity.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbBlackGroupEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBlackGroupEntity.java
index 3dc77e8..abf44df 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbBlackGroupEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBlackGroupEntity.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java
index ec2fd0a..4ce5370 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbBrokerConfEntity.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbConsumeGroupSettingEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbConsumeGroupSettingEntity.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbConsumeGroupSettingEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbConsumeGroupSettingEntity.java
index 69c0d7b..f285c12 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbConsumeGroupSettingEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbConsumeGroupSettingEntity.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbConsumerGroupEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbConsumerGroupEntity.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbConsumerGroupEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbConsumerGroupEntity.java
index 8ae39ea..879338a 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbConsumerGroupEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbConsumerGroupEntity.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFilterCondEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFilterCondEntity.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFilterCondEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFilterCondEntity.java
index 6094745..cd12356 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFilterCondEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFilterCondEntity.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java
index 2bc7038..4d0d53e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbGroupFlowCtrlEntity.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbTopicAuthControlEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicAuthControlEntity.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbTopicAuthControlEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicAuthControlEntity.java
index 61f303c..5bc5fb1 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbTopicAuthControlEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicAuthControlEntity.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java
index 553c0e3..cb8ef7e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/bdbstore/bdbentitys/BdbTopicConfEntity.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.bdbstore.bdbentitys;
+package org.apache.tubemq.server.master.bdbstore.bdbentitys;
 
 import com.sleepycat.persist.model.Entity;
 import com.sleepycat.persist.model.PrimaryKey;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.io.Serializable;
 import java.util.Date;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 
 
 @Entity
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerConfManage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerConfManage.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerConfManage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerConfManage.java
index 8a0456e..64d136b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerConfManage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerConfManage.java
@@ -15,30 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
-
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.exception.StandbyException;
-import com.tencent.tubemq.server.Server;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.common.fileconfig.BDBConfig;
-import com.tencent.tubemq.server.master.bdbstore.DefaultBdbStoreService;
-import com.tencent.tubemq.server.master.bdbstore.MasterGroupStatus;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
-import com.tencent.tubemq.server.master.web.model.ClusterGroupVO;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
+
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -53,6 +31,28 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.server.Server;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.common.fileconfig.BDBConfig;
+import org.apache.tubemq.server.master.bdbstore.DefaultBdbStoreService;
+import org.apache.tubemq.server.master.bdbstore.MasterGroupStatus;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
+import org.apache.tubemq.server.master.web.model.ClusterGroupVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolder.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolder.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolder.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolder.java
index 0f83547..84bee4b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolder.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolder.java
@@ -15,15 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
-
-import static com.tencent.tubemq.server.common.utils.WebParameterUtils.getBrokerManageStatusStr;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.protobuf.generated.ClientMaster;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.web.handler.WebBrokerDefConfHandler;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
+
+import static org.apache.tubemq.server.common.utils.WebParameterUtils.getBrokerManageStatusStr;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
@@ -34,6 +28,12 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.protobuf.generated.ClientMaster;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.web.handler.WebBrokerDefConfHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerSyncStatusInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerSyncStatusInfo.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerSyncStatusInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerSyncStatusInfo.java
index 894f71f..461a5f4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerSyncStatusInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerSyncStatusInfo.java
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
-
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.CheckSum;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
+
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.commons.codec.binary.StringUtils;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.CheckSum;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TargetValidResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TargetValidResult.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TargetValidResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TargetValidResult.java
index 1494777..6a44f97 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TargetValidResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TargetValidResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
 
 
 public class TargetValidResult {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManager.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManager.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManager.java
index 7ee4e99..02cf875 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManager.java
@@ -15,13 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.utils.ConcurrentHashSet;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,6 +24,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.utils.ConcurrentHashSet;
 
 /**
  * Topic Publication/Subscription info management
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerBandInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerBandInfo.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerBandInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerBandInfo.java
index fe8a538..7d03ca5 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerBandInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerBandInfo.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeconsumer;
+package org.apache.tubemq.server.master.nodemanage.nodeconsumer;
 
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
 
 
 public class ConsumerBandInfo {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManager.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManager.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManager.java
index 7d865f5..4bd288e 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManager.java
@@ -15,10 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeconsumer;
+package org.apache.tubemq.server.master.nodemanage.nodeconsumer;
 
-import com.tencent.tubemq.corebase.balance.ConsumerEvent;
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -27,6 +25,8 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.tubemq.corebase.balance.ConsumerEvent;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerInfoHolder.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerInfoHolder.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerInfoHolder.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerInfoHolder.java
index af33cf9..4198392 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerInfoHolder.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerInfoHolder.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeconsumer;
+package org.apache.tubemq.server.master.nodemanage.nodeconsumer;
 
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -26,6 +25,7 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
 
 
 public class ConsumerInfoHolder {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/NodeRebInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/NodeRebInfo.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/NodeRebInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/NodeRebInfo.java
index 68bff8d..2d4c074 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/NodeRebInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/NodeRebInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeconsumer;
+package org.apache.tubemq.server.master.nodemanage.nodeconsumer;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/RebProcessInfo.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/RebProcessInfo.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/RebProcessInfo.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/RebProcessInfo.java
index 3782bcd..c661d9a 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/RebProcessInfo.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/RebProcessInfo.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeconsumer;
+package org.apache.tubemq.server.master.nodemanage.nodeconsumer;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeproducer/ProducerInfoHolder.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeproducer/ProducerInfoHolder.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeproducer/ProducerInfoHolder.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeproducer/ProducerInfoHolder.java
index 5b3936d..dae39e9 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/nodemanage/nodeproducer/ProducerInfoHolder.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/nodemanage/nodeproducer/ProducerInfoHolder.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeproducer;
+package org.apache.tubemq.server.master.nodemanage.nodeproducer;
 
-import com.tencent.tubemq.corebase.cluster.ProducerInfo;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.tubemq.corebase.cluster.ProducerInfo;
 
 
 public class ProducerInfoHolder {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/BdbStoreSamplePrint.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/BdbStoreSamplePrint.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/BdbStoreSamplePrint.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/BdbStoreSamplePrint.java
index cb21916..a92acdc 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/BdbStoreSamplePrint.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/BdbStoreSamplePrint.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.utils;
+package org.apache.tubemq.server.master.utils;
 
 import com.sleepycat.je.rep.utilint.ServiceDispatcher;
-import com.tencent.tubemq.corebase.utils.AbstractSamplePrint;
 import java.io.IOException;
+import org.apache.tubemq.corebase.utils.AbstractSamplePrint;
 import org.slf4j.Logger;
 
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/Chore.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/Chore.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/Chore.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/Chore.java
index bf1cd37..8cd8312 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/Chore.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/Chore.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.utils;
+package org.apache.tubemq.server.master.utils;
 
-import com.tencent.tubemq.server.Stoppable;
-import com.tencent.tubemq.server.common.utils.HasThread;
-import com.tencent.tubemq.server.common.utils.Sleeper;
+import org.apache.tubemq.server.Stoppable;
+import org.apache.tubemq.server.common.utils.HasThread;
+import org.apache.tubemq.server.common.utils.Sleeper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/SimpleVisitTokenManage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/SimpleVisitTokenManage.java
similarity index 93%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/SimpleVisitTokenManage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/SimpleVisitTokenManage.java
index 4d826ae..9f9addd 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/utils/SimpleVisitTokenManage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/utils/SimpleVisitTokenManage.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.utils;
+package org.apache.tubemq.server.master.utils;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.daemon.AbstractDaemonService;
-import com.tencent.tubemq.server.master.MasterConfig;
 import java.util.concurrent.atomic.AtomicLong;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.daemon.AbstractDaemonService;
+import org.apache.tubemq.server.master.MasterConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/MasterStatusCheckFilter.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/MasterStatusCheckFilter.java
similarity index 92%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/MasterStatusCheckFilter.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/MasterStatusCheckFilter.java
index 72902a7..e03192d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/MasterStatusCheckFilter.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/MasterStatusCheckFilter.java
@@ -15,11 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web;
+package org.apache.tubemq.server.master.web;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import javax.servlet.Filter;
@@ -30,6 +27,9 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
 
 
 public class MasterStatusCheckFilter implements Filter {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/UserAuthFilter.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/UserAuthFilter.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/UserAuthFilter.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/UserAuthFilter.java
index 989cb2b..3d2e67b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/UserAuthFilter.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/UserAuthFilter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web;
+package org.apache.tubemq.server.master.web;
 
 import java.io.IOException;
 import javax.servlet.Filter;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/WebServer.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/WebServer.java
similarity index 77%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/WebServer.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/WebServer.java
index 0d2ffd3..079fbf5 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/WebServer.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/WebServer.java
@@ -15,23 +15,23 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web;
+package org.apache.tubemq.server.master.web;
 
-import com.tencent.tubemq.server.Server;
-import com.tencent.tubemq.server.master.MasterConfig;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.web.action.layout.Default;
-import com.tencent.tubemq.server.master.web.action.screen.Master;
-import com.tencent.tubemq.server.master.web.action.screen.Tubeweb;
-import com.tencent.tubemq.server.master.web.action.screen.Webapi;
-import com.tencent.tubemq.server.master.web.action.screen.cluster.ClusterManage;
-import com.tencent.tubemq.server.master.web.action.screen.config.BrokerDetail;
-import com.tencent.tubemq.server.master.web.action.screen.config.BrokerList;
-import com.tencent.tubemq.server.master.web.action.screen.config.TopicDetail;
-import com.tencent.tubemq.server.master.web.action.screen.config.TopicList;
-import com.tencent.tubemq.server.master.web.action.screen.consume.Detail;
-import com.tencent.tubemq.server.master.web.simplemvc.WebFilter;
-import com.tencent.tubemq.server.master.web.simplemvc.conf.WebConfig;
+import org.apache.tubemq.server.Server;
+import org.apache.tubemq.server.master.MasterConfig;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.web.action.layout.Default;
+import org.apache.tubemq.server.master.web.action.screen.Master;
+import org.apache.tubemq.server.master.web.action.screen.Tubeweb;
+import org.apache.tubemq.server.master.web.action.screen.Webapi;
+import org.apache.tubemq.server.master.web.action.screen.cluster.ClusterManage;
+import org.apache.tubemq.server.master.web.action.screen.config.BrokerDetail;
+import org.apache.tubemq.server.master.web.action.screen.config.BrokerList;
+import org.apache.tubemq.server.master.web.action.screen.config.TopicDetail;
+import org.apache.tubemq.server.master.web.action.screen.config.TopicList;
+import org.apache.tubemq.server.master.web.action.screen.consume.Detail;
+import org.apache.tubemq.server.master.web.simplemvc.WebFilter;
+import org.apache.tubemq.server.master.web.simplemvc.conf.WebConfig;
 import org.apache.velocity.tools.generic.DateTool;
 import org.apache.velocity.tools.generic.NumberTool;
 import org.mortbay.jetty.Handler;
@@ -54,7 +54,7 @@ public class WebServer implements Server {
     @Override
     public void start() throws Exception {
         WebConfig webConfig = new WebConfig();
-        webConfig.setActionPackage("com.tencent.tubemq.server.master.web.action");
+        webConfig.setActionPackage("org.apache.tubemq.server.master.web.action");
         webConfig.setResourcePath("/");
         webConfig.setVelocityConfigFilePath("/velocity.properties");
         webConfig.setStandalone(true);
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/layout/Default.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/layout/Default.java
similarity index 83%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/layout/Default.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/layout/Default.java
index 868a704..63077b0 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/layout/Default.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/layout/Default.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.layout;
+package org.apache.tubemq.server.master.web.action.layout;
 
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.web.action.screen.Tubeweb;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.web.action.screen.Tubeweb;
 
 
 public class Default extends Tubeweb {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Master.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Master.java
similarity index 92%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Master.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Master.java
index 92e1938..ff89138 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Master.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Master.java
@@ -15,24 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen;
+package org.apache.tubemq.server.master.web.action.screen;
 
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.cluster.ProducerInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.utils.ConcurrentHashSet;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.exception.StandbyException;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -40,6 +24,22 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.cluster.ProducerInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.utils.ConcurrentHashSet;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class Master implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Tubeweb.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Tubeweb.java
similarity index 82%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Tubeweb.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Tubeweb.java
index 9f206b5..4c0cd77 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Tubeweb.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Tubeweb.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen;
+package org.apache.tubemq.server.master.web.action.screen;
 
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
 import java.net.InetSocketAddress;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class Tubeweb implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Webapi.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Webapi.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Webapi.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Webapi.java
index 8dbe0c9..48e6130 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/Webapi.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/Webapi.java
@@ -15,30 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen;
+package org.apache.tubemq.server.master.web.action.screen;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.cluster.ConsumerInfo;
-import com.tencent.tubemq.corebase.cluster.Partition;
-import com.tencent.tubemq.corebase.utils.ConcurrentHashSet;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.corerpc.exception.StandbyException;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.NodeRebInfo;
-import com.tencent.tubemq.server.master.web.handler.WebAdminFlowRuleHandler;
-import com.tencent.tubemq.server.master.web.handler.WebAdminGroupCtrlHandler;
-import com.tencent.tubemq.server.master.web.handler.WebAdminTopicAuthHandler;
-import com.tencent.tubemq.server.master.web.handler.WebBrokerDefConfHandler;
-import com.tencent.tubemq.server.master.web.handler.WebBrokerTopicConfHandler;
-import com.tencent.tubemq.server.master.web.model.ClusterGroupVO;
-import com.tencent.tubemq.server.master.web.model.ClusterNodeVO;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -49,6 +27,28 @@ import java.util.Set;
 import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.cluster.ConsumerInfo;
+import org.apache.tubemq.corebase.cluster.Partition;
+import org.apache.tubemq.corebase.utils.ConcurrentHashSet;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.corerpc.exception.StandbyException;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.NodeRebInfo;
+import org.apache.tubemq.server.master.web.handler.WebAdminFlowRuleHandler;
+import org.apache.tubemq.server.master.web.handler.WebAdminGroupCtrlHandler;
+import org.apache.tubemq.server.master.web.handler.WebAdminTopicAuthHandler;
+import org.apache.tubemq.server.master.web.handler.WebBrokerDefConfHandler;
+import org.apache.tubemq.server.master.web.handler.WebBrokerTopicConfHandler;
+import org.apache.tubemq.server.master.web.model.ClusterGroupVO;
+import org.apache.tubemq.server.master.web.model.ClusterNodeVO;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 /**
  * Public APIs for master
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/cluster/ClusterManage.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/cluster/ClusterManage.java
similarity index 80%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/cluster/ClusterManage.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/cluster/ClusterManage.java
index 2d9487f..a6297a5 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/cluster/ClusterManage.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/cluster/ClusterManage.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen.cluster;
-
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.web.common.ClusterQueryResult;
-import com.tencent.tubemq.server.master.web.model.ClusterGroupVO;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
+package org.apache.tubemq.server.master.web.action.screen.cluster;
+
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.web.common.ClusterQueryResult;
+import org.apache.tubemq.server.master.web.model.ClusterGroupVO;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class ClusterManage implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/BrokerDetail.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/BrokerDetail.java
similarity index 80%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/BrokerDetail.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/BrokerDetail.java
index 117f59b..858ba61 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/BrokerDetail.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/BrokerDetail.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen.config;
+package org.apache.tubemq.server.master.web.action.screen.config;
 
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class BrokerDetail implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/BrokerList.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/BrokerList.java
similarity index 87%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/BrokerList.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/BrokerList.java
index b0d0dc1..13daa99 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/BrokerList.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/BrokerList.java
@@ -15,24 +15,24 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen.config;
+package org.apache.tubemq.server.master.web.action.screen.config;
 
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
-import com.tencent.tubemq.server.master.web.common.BrokerQueryResult;
-import com.tencent.tubemq.server.master.web.model.BrokerVO;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
+import org.apache.tubemq.server.master.web.common.BrokerQueryResult;
+import org.apache.tubemq.server.master.web.model.BrokerVO;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class BrokerList implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/TopicDetail.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/TopicDetail.java
similarity index 80%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/TopicDetail.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/TopicDetail.java
index e54f3ed..73de82d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/TopicDetail.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/TopicDetail.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen.config;
+package org.apache.tubemq.server.master.web.action.screen.config;
 
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class TopicDetail implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/TopicList.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/TopicList.java
similarity index 80%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/TopicList.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/TopicList.java
index 5c60807..a20592b 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/config/TopicList.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/config/TopicList.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen.config;
+package org.apache.tubemq.server.master.web.action.screen.config;
 
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class TopicList implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/consume/Detail.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/consume/Detail.java
similarity index 80%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/consume/Detail.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/consume/Detail.java
index 5af936c..14564d3 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/action/screen/consume/Detail.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/action/screen/consume/Detail.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.action.screen.consume;
+package org.apache.tubemq.server.master.web.action.screen.consume;
 
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
-import com.tencent.tubemq.server.master.web.simplemvc.RequestContext;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
+import org.apache.tubemq.server.master.web.simplemvc.RequestContext;
 
 
 public class Detail implements Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/BaseResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/BaseResult.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/BaseResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/BaseResult.java
index f3f2f4a..4bdbb75 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/BaseResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/BaseResult.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.common;
+package org.apache.tubemq.server.master.web.common;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
 import java.io.Serializable;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
@@ -27,6 +26,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.tubemq.corebase.utils.TStringUtils;
 
 
 /**
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/BrokerQueryResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/BrokerQueryResult.java
similarity index 88%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/BrokerQueryResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/BrokerQueryResult.java
index e1933a7..255ddda 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/BrokerQueryResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/BrokerQueryResult.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.common;
+package org.apache.tubemq.server.master.web.common;
 
-import com.tencent.tubemq.server.master.web.model.BrokerVO;
+import org.apache.tubemq.server.master.web.model.BrokerVO;
 
 
 public class BrokerQueryResult extends QueryResult<BrokerVO> {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/ClusterQueryResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/ClusterQueryResult.java
similarity index 88%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/ClusterQueryResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/ClusterQueryResult.java
index 02839e6..8ff1268 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/ClusterQueryResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/ClusterQueryResult.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.common;
+package org.apache.tubemq.server.master.web.common;
 
-import com.tencent.tubemq.server.master.web.model.ClusterGroupVO;
+import org.apache.tubemq.server.master.web.model.ClusterGroupVO;
 
 
 public class ClusterQueryResult extends QueryResult<ClusterGroupVO> {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/QueryResult.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/QueryResult.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/QueryResult.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/QueryResult.java
index f364412..9a96bff 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/common/QueryResult.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/common/QueryResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.common;
+package org.apache.tubemq.server.master.web.common;
 
 import java.util.List;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
index fedc5bc..695d6d8 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
@@ -15,17 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.handler;
+package org.apache.tubemq.server.master.web.handler;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.policies.FlowCtrlItem;
-import com.tencent.tubemq.corebase.policies.FlowCtrlRuleHandler;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashSet;
@@ -33,6 +24,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.policies.FlowCtrlItem;
+import org.apache.tubemq.corebase.policies.FlowCtrlRuleHandler;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFlowCtrlEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
index 5565427..eb1b7c4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
@@ -15,23 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.handler;
+package org.apache.tubemq.server.master.web.handler;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodeconsumer.NodeRebInfo;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -41,6 +26,21 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBlackGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumeGroupSettingEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerBandInfo;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.ConsumerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodeconsumer.NodeRebInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminTopicAuthHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminTopicAuthHandler.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminTopicAuthHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminTopicAuthHandler.java
index e1b13a9..adc17c4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebAdminTopicAuthHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminTopicAuthHandler.java
@@ -15,18 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.handler;
+package org.apache.tubemq.server.master.web.handler;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.TypeReference;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -34,6 +26,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebBrokerDefConfHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerDefConfHandler.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebBrokerDefConfHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerDefConfHandler.java
index e90b355..c6eb4f4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebBrokerDefConfHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerDefConfHandler.java
@@ -15,23 +15,9 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.handler;
+package org.apache.tubemq.server.master.web.handler;
 
 import static java.lang.Math.abs;
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.utils.AddressUtils;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -41,6 +27,20 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.utils.AddressUtils;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerInfoHolder;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
similarity index 98%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
index 81cbef9..1d8714d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
@@ -15,25 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.handler;
+package org.apache.tubemq.server.master.web.handler;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.TokenConstants;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
-import com.tencent.tubemq.corebase.cluster.TopicInfo;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.common.TServerConstants;
-import com.tencent.tubemq.server.common.TStatusConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
-import com.tencent.tubemq.server.master.TMaster;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
-import com.tencent.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
-import com.tencent.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -43,6 +26,23 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.TokenConstants;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.TopicInfo;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.common.TServerConstants;
+import org.apache.tubemq.server.common.TStatusConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
+import org.apache.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbBrokerConfEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbConsumerGroupEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbGroupFilterCondEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicAuthControlEntity;
+import org.apache.tubemq.server.master.bdbstore.bdbentitys.BdbTopicConfEntity;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerConfManage;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.BrokerSyncStatusInfo;
+import org.apache.tubemq.server.master.nodemanage.nodebroker.TopicPSInfoManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/BrokerVO.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/BrokerVO.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/BrokerVO.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/BrokerVO.java
index 58172f9..5bb61b0 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/BrokerVO.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/BrokerVO.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.model;
+package org.apache.tubemq.server.master.web.model;
 
 import java.util.Date;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/ClusterGroupVO.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/ClusterGroupVO.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/ClusterGroupVO.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/ClusterGroupVO.java
index 3c365ed..5059a39 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/ClusterGroupVO.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/ClusterGroupVO.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.model;
+package org.apache.tubemq.server.master.web.model;
 
 import java.util.List;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/ClusterNodeVO.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/ClusterNodeVO.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/ClusterNodeVO.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/ClusterNodeVO.java
index 90967f8..f1697fc 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/model/ClusterNodeVO.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/model/ClusterNodeVO.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.model;
+package org.apache.tubemq.server.master.web.model;
 
 
 public class ClusterNodeVO {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/Action.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/Action.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/Action.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/Action.java
index 4af4e18..d70aed1 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/Action.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/Action.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
 
 public interface Action {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/Context.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/Context.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/Context.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/Context.java
index 8be250c..d295b73 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/Context.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/Context.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
 import java.util.Set;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/ControlTool.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/ControlTool.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/ControlTool.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/ControlTool.java
index 7d385f1..bd96ba2 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/ControlTool.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/ControlTool.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/MappedContext.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/MappedContext.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/MappedContext.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/MappedContext.java
index b99d88b..525de36 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/MappedContext.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/MappedContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
 import java.util.Collections;
 import java.util.HashMap;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/RequestContext.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/RequestContext.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/RequestContext.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/RequestContext.java
index 79b3764..fc2eb2f 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/RequestContext.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/RequestContext.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.web.simplemvc.conf.WebConfig;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.web.simplemvc.conf.WebConfig;
 
 
 public class RequestContext extends MappedContext {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/RequestDispatcher.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/RequestDispatcher.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/RequestDispatcher.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/RequestDispatcher.java
index b3f20d0..f772ba4 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/RequestDispatcher.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/RequestDispatcher.java
@@ -15,11 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.web.simplemvc.conf.WebConfig;
-import com.tencent.tubemq.server.master.web.simplemvc.exception.TemplateNotFoundException;
 import java.io.File;
 import java.net.URL;
 import java.util.ArrayList;
@@ -28,6 +25,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.web.simplemvc.conf.WebConfig;
+import org.apache.tubemq.server.master.web.simplemvc.exception.TemplateNotFoundException;
 import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor;
 import org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor;
 import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/TemplateEngine.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/TemplateEngine.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/TemplateEngine.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/TemplateEngine.java
index a89b75f..6380990 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/TemplateEngine.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/TemplateEngine.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
 import java.io.Writer;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/VelocityTemplateEngine.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/VelocityTemplateEngine.java
similarity index 91%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/VelocityTemplateEngine.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/VelocityTemplateEngine.java
index 73f8b71..a1d7700 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/VelocityTemplateEngine.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/VelocityTemplateEngine.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.web.simplemvc.conf.WebConfig;
 import java.io.StringWriter;
 import java.io.Writer;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.web.simplemvc.conf.WebConfig;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/WebFilter.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/WebFilter.java
similarity index 95%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/WebFilter.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/WebFilter.java
index 01bda92..1b7cd54 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/WebFilter.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/WebFilter.java
@@ -15,12 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc;
+package org.apache.tubemq.server.master.web.simplemvc;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.web.simplemvc.conf.ConfigFileParser;
-import com.tencent.tubemq.server.master.web.simplemvc.conf.WebConfig;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
@@ -34,6 +30,10 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.log4j.PropertyConfigurator;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.web.simplemvc.conf.ConfigFileParser;
+import org.apache.tubemq.server.master.web.simplemvc.conf.WebConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/conf/ConfigFileParser.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/conf/ConfigFileParser.java
similarity index 97%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/conf/ConfigFileParser.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/conf/ConfigFileParser.java
index 4ae354d..acabd40 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/conf/ConfigFileParser.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/conf/ConfigFileParser.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc.conf;
+package org.apache.tubemq.server.master.web.simplemvc.conf;
 
-import com.tencent.tubemq.server.master.web.simplemvc.exception.InvalidConfigException;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.List;
+import org.apache.tubemq.server.master.web.simplemvc.exception.InvalidConfigException;
 import org.dom4j.Document;
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/conf/WebConfig.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/conf/WebConfig.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/conf/WebConfig.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/conf/WebConfig.java
index de4e821..26623e7 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/conf/WebConfig.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/conf/WebConfig.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc.conf;
+package org.apache.tubemq.server.master.web.simplemvc.conf;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.master.web.simplemvc.Action;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.master.web.simplemvc.Action;
 
 
 public class WebConfig {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/exception/InvalidConfigException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/exception/InvalidConfigException.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/exception/InvalidConfigException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/exception/InvalidConfigException.java
index c85f843..deb3017 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/exception/InvalidConfigException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/exception/InvalidConfigException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc.exception;
+package org.apache.tubemq.server.master.web.simplemvc.exception;
 
 
 public class InvalidConfigException extends Exception {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/exception/TemplateNotFoundException.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/exception/TemplateNotFoundException.java
similarity index 94%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/exception/TemplateNotFoundException.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/exception/TemplateNotFoundException.java
index 77a041c..808055d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/master/web/simplemvc/exception/TemplateNotFoundException.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/simplemvc/exception/TemplateNotFoundException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.web.simplemvc.exception;
+package org.apache.tubemq.server.master.web.simplemvc.exception;
 
 
 public class TemplateNotFoundException extends Exception {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/BdbGroupAdmin.java b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/BdbGroupAdmin.java
similarity index 99%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/tools/BdbGroupAdmin.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/tools/BdbGroupAdmin.java
index 3204278..c248b2d 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/BdbGroupAdmin.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/BdbGroupAdmin.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.tools;
+package org.apache.tubemq.server.tools;
 
 import com.sleepycat.je.EnvironmentFailureException;
 import com.sleepycat.je.rep.MasterStateException;
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/BrokerStartup.java b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/BrokerStartup.java
similarity index 88%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/tools/BrokerStartup.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/tools/BrokerStartup.java
index 4f5212c..a966278 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/BrokerStartup.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/BrokerStartup.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.tools;
+package org.apache.tubemq.server.tools;
 
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.TubeBroker;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.TubeBroker;
 
 public class BrokerStartup {
     public static void main(final String[] args) throws Exception {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/MasterStartup.java b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/MasterStartup.java
similarity index 89%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/tools/MasterStartup.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/tools/MasterStartup.java
index 1e7ed9e..a770f40 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/MasterStartup.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/MasterStartup.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.tools;
+package org.apache.tubemq.server.tools;
 
-import com.tencent.tubemq.server.master.MasterConfig;
-import com.tencent.tubemq.server.master.TMaster;
+import org.apache.tubemq.server.master.MasterConfig;
+import org.apache.tubemq.server.master.TMaster;
 
 public class MasterStartup {
     public static void main(final String[] args) throws Exception {
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/StoreRepairAdmin.java b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/StoreRepairAdmin.java
similarity index 96%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/tools/StoreRepairAdmin.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/tools/StoreRepairAdmin.java
index 257ea8c..a5d7862 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/StoreRepairAdmin.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/StoreRepairAdmin.java
@@ -15,17 +15,8 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.tools;
+package org.apache.tubemq.server.tools;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.msgstore.disk.FileSegment;
-import com.tencent.tubemq.server.broker.msgstore.disk.FileSegmentList;
-import com.tencent.tubemq.server.broker.msgstore.disk.RecordView;
-import com.tencent.tubemq.server.broker.msgstore.disk.Segment;
-import com.tencent.tubemq.server.broker.msgstore.disk.SegmentList;
-import com.tencent.tubemq.server.broker.msgstore.disk.SegmentType;
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
-import com.tencent.tubemq.server.common.utils.FileUtil;
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
@@ -39,6 +30,15 @@ import java.util.concurrent.ExecutorCompletionService;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.msgstore.disk.FileSegment;
+import org.apache.tubemq.server.broker.msgstore.disk.FileSegmentList;
+import org.apache.tubemq.server.broker.msgstore.disk.RecordView;
+import org.apache.tubemq.server.broker.msgstore.disk.Segment;
+import org.apache.tubemq.server.broker.msgstore.disk.SegmentList;
+import org.apache.tubemq.server.broker.msgstore.disk.SegmentType;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
+import org.apache.tubemq.server.common.utils.FileUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/ToolUtils.java b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/ToolUtils.java
similarity index 91%
rename from tubemq-server/src/main/java/com/tencent/tubemq/server/tools/ToolUtils.java
rename to tubemq-server/src/main/java/org/apache/tubemq/server/tools/ToolUtils.java
index 4f59c91..d2c503a 100644
--- a/tubemq-server/src/main/java/com/tencent/tubemq/server/tools/ToolUtils.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/tools/ToolUtils.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.tools;
+package org.apache.tubemq.server.tools;
 
-import com.tencent.tubemq.corebase.utils.TStringUtils;
-import com.tencent.tubemq.server.broker.BrokerConfig;
-import com.tencent.tubemq.server.broker.exception.StartupException;
-import com.tencent.tubemq.server.master.MasterConfig;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
+import org.apache.tubemq.corebase.utils.TStringUtils;
+import org.apache.tubemq.server.broker.BrokerConfig;
+import org.apache.tubemq.server.broker.exception.StartupException;
+import org.apache.tubemq.server.master.MasterConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tubemq-server/src/saveServerVersion.cmd b/tubemq-server/src/saveServerVersion.cmd
index dda2ca1..dfe5ab9 100755
--- a/tubemq-server/src/saveServerVersion.cmd
+++ b/tubemq-server/src/saveServerVersion.cmd
@@ -19,13 +19,13 @@
 set version=%1
 set outputDirectory=%2
 
-md %outputDirectory%\com\tencent\tubemq\server\common
-set tubeServerVersion=%outputDirectory%\com\tencent\tubemq\server\common\TubeServerVersion.java"
+md %outputDirectory%\org\apache\tubemq\server\common
+set tubeServerVersion=%outputDirectory%\org\apache\tubemq\server\common\TubeServerVersion.java"
 
 echo /* > %tubeServerVersion%
 echo  * Generated by src/saveServerVersion.cmd>> %tubeServerVersion%
 echo  */>> %tubeServerVersion%
-echo package com.tencent.tubemq.server.common;>> %tubeServerVersion%
+echo package org.apache.tubemq.server.common;>> %tubeServerVersion%
 echo,>> %tubeServerVersion%
 echo public class TubeServerVersion {>> %tubeServerVersion%
 echo     public static final String BROKER_VERSION = "%version%";>> %tubeServerVersion%
diff --git a/tubemq-server/src/saveServerVersion.sh b/tubemq-server/src/saveServerVersion.sh
index f8469b2..1d46a64 100755
--- a/tubemq-server/src/saveServerVersion.sh
+++ b/tubemq-server/src/saveServerVersion.sh
@@ -22,12 +22,12 @@ unset LC_CTYPE
 version=$1
 outputDirectory=$2
 
-mkdir -p "$outputDirectory/com/tencent/tubemq/server/common"
-cat >"$outputDirectory/com/tencent/tubemq/server/common/TubeServerVersion.java" <<EOF
+mkdir -p "$outputDirectory/org/apache/tubemq/server/common"
+cat >"$outputDirectory/org/apache/tubemq/server/common/TubeServerVersion.java" <<EOF
 /*
  * Generated by src/saveServerVersion.sh
  */
-package com.tencent.tubemq.server.common;
+package org.apache.tubemq.server.common;
 
 public class TubeServerVersion {
     public static final String BROKER_VERSION = "$version";
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/metadata/BrokerMetadataManageTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/metadata/BrokerMetadataManageTest.java
similarity index 98%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/metadata/BrokerMetadataManageTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/metadata/BrokerMetadataManageTest.java
index 261d7c8..82e5c02 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/metadata/BrokerMetadataManageTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/metadata/BrokerMetadataManageTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.tencent.tubemq.server.broker.metadata;
+package org.apache.tubemq.server.broker.metadata;
 
 import java.util.LinkedList;
 import java.util.List;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileReadViewTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileReadViewTest.java
similarity index 97%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileReadViewTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileReadViewTest.java
index e67b226..afa98d1 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileReadViewTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileReadViewTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentListTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentListTest.java
similarity index 96%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentListTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentListTest.java
index 1496b9c..8d66c54 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentListTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentListTest.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
-import com.tencent.tubemq.server.broker.utils.DataStoreUtils;
 import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.List;
+import org.apache.tubemq.server.broker.utils.DataStoreUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentTest.java
similarity index 98%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentTest.java
index 857ad95..0c581cd 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/disk/FileSegmentTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/disk/FileSegmentTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.disk;
+package org.apache.tubemq.server.broker.msgstore.disk;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStoreTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStoreTest.java
similarity index 97%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStoreTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStoreTest.java
index 9b9a5f8..dea1fa3 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/msgstore/mem/MsgMemStoreTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/msgstore/mem/MsgMemStoreTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.msgstore.mem;
+package org.apache.tubemq.server.broker.msgstore.mem;
 
 import java.nio.ByteBuffer;
 import org.junit.Test;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/stats/GroupCountServiceTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/stats/GroupCountServiceTest.java
similarity index 96%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/stats/GroupCountServiceTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/stats/GroupCountServiceTest.java
index 6d18937..742e900 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/stats/GroupCountServiceTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/stats/GroupCountServiceTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.stats;
+package org.apache.tubemq.server.broker.stats;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/utils/DataStoreUtilsTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/utils/DataStoreUtilsTest.java
similarity index 96%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/broker/utils/DataStoreUtilsTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/broker/utils/DataStoreUtilsTest.java
index ad05e36..d2e766e 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/broker/utils/DataStoreUtilsTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/broker/utils/DataStoreUtilsTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.broker.utils;
+package org.apache.tubemq.server.broker.utils;
 
 import java.nio.ByteBuffer;
 import org.junit.Test;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/common/HeartbeatManagerTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/common/HeartbeatManagerTest.java
similarity index 93%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/common/HeartbeatManagerTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/common/HeartbeatManagerTest.java
index 21b1291..14f91e6 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/common/HeartbeatManagerTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/common/HeartbeatManagerTest.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.common;
+package org.apache.tubemq.server.common;
 
-import com.tencent.tubemq.server.common.heartbeat.HeartbeatManager;
-import com.tencent.tubemq.server.common.heartbeat.TimeoutInfo;
-import com.tencent.tubemq.server.common.heartbeat.TimeoutListener;
+import org.apache.tubemq.server.common.heartbeat.HeartbeatManager;
+import org.apache.tubemq.server.common.heartbeat.TimeoutInfo;
+import org.apache.tubemq.server.common.heartbeat.TimeoutListener;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/common/PBParameterTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/common/PBParameterTest.java
similarity index 92%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/common/PBParameterTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/common/PBParameterTest.java
index 8599b7b..d1736e2 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/common/PBParameterTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/common/PBParameterTest.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.tencent.tubemq.server.common;
+package org.apache.tubemq.server.common;
 
-import com.tencent.tubemq.corebase.TErrCodeConstants;
-import com.tencent.tubemq.server.common.paramcheck.PBParameterUtils;
-import com.tencent.tubemq.server.common.paramcheck.ParamCheckResult;
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.tubemq.corebase.TErrCodeConstants;
+import org.apache.tubemq.server.common.paramcheck.PBParameterUtils;
+import org.apache.tubemq.server.common.paramcheck.ParamCheckResult;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/common/WebParameterTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/common/WebParameterTest.java
similarity index 94%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/common/WebParameterTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/common/WebParameterTest.java
index 12e6dc9..e48835d 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/common/WebParameterTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/common/WebParameterTest.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.tencent.tubemq.server.common;
+package org.apache.tubemq.server.common;
 
-import com.tencent.tubemq.corebase.TBaseConstants;
-import com.tencent.tubemq.server.common.utils.WebParameterUtils;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import org.apache.tubemq.corebase.TBaseConstants;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/MasterConfigTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/master/MasterConfigTest.java
similarity index 95%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/master/MasterConfigTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/master/MasterConfigTest.java
index 346d7cc..ef0b079 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/MasterConfigTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/master/MasterConfigTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master;
+package org.apache.tubemq.server.master;
 
 import org.junit.Test;
 
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolderTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolderTest.java
similarity index 93%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolderTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolderTest.java
index 10c84e8..658f67c 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolderTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodebroker/BrokerInfoHolderTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
 
 import static org.mockito.Mockito.mock;
-import com.tencent.tubemq.corebase.cluster.BrokerInfo;
+import org.apache.tubemq.corebase.cluster.BrokerInfo;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManagerTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManagerTest.java
similarity index 95%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManagerTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManagerTest.java
index 040c921..164d6cf 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManagerTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodebroker/TopicPSInfoManagerTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodebroker;
+package org.apache.tubemq.server.master.nodemanage.nodebroker;
 
 
-import com.tencent.tubemq.corebase.utils.ConcurrentHashSet;
 import java.util.Arrays;
 import java.util.HashSet;
+import org.apache.tubemq.corebase.utils.ConcurrentHashSet;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManagerTest.java b/tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManagerTest.java
similarity index 94%
rename from tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManagerTest.java
rename to tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManagerTest.java
index df4c664..56b7f6c 100644
--- a/tubemq-server/src/test/java/com/tencent/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManagerTest.java
+++ b/tubemq-server/src/test/java/org/apache/tubemq/server/master/nodemanage/nodeconsumer/ConsumerEventManagerTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package com.tencent.tubemq.server.master.nodemanage.nodeconsumer;
+package org.apache.tubemq.server.master.nodemanage.nodeconsumer;
 
 import static org.mockito.Mockito.mock;
-import com.tencent.tubemq.corebase.balance.ConsumerEvent;
+import org.apache.tubemq.corebase.balance.ConsumerEvent;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;